@ahpd/web 0.0.0-stage → 0.1.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 (176) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -2
  3. package/dist/app/ahpw.svg +8 -0
  4. package/dist/app/assets/ActionList-Bawu-Lja.css +1 -0
  5. package/dist/app/assets/ActionList-DZ9lLGRe.js +1 -0
  6. package/dist/app/assets/ActivityBarItem-Cyes10aK.css +1 -0
  7. package/dist/app/assets/ActivityBarItem-DVzJQ1uh.js +1 -0
  8. package/dist/app/assets/Alert-CHZkhmDE.js +1 -0
  9. package/dist/app/assets/Alert-D6FTUHBY.css +1 -0
  10. package/dist/app/assets/Audio-C0yEXr8X.js +1 -0
  11. package/dist/app/assets/Audio-DZmBckTU.css +1 -0
  12. package/dist/app/assets/Badge-BDEW5PFb.js +1 -0
  13. package/dist/app/assets/Badge-B_GtDNjv.css +1 -0
  14. package/dist/app/assets/BarChart-29IHwYQG.css +1 -0
  15. package/dist/app/assets/BarChart-BX8Dbz7S.js +1 -0
  16. package/dist/app/assets/BarLayout-CkfGX1E0.js +1 -0
  17. package/dist/app/assets/Button-CRZ1_3KW.css +1 -0
  18. package/dist/app/assets/Button-_R1oktDz.js +1 -0
  19. package/dist/app/assets/ButtonBar-CpWwS0s7.js +1 -0
  20. package/dist/app/assets/ButtonBar-DfHeNg1i.css +1 -0
  21. package/dist/app/assets/Card-BAqJm0ZO.js +1 -0
  22. package/dist/app/assets/Card-BZxOMaUR.css +1 -0
  23. package/dist/app/assets/CheckBox-Br18O83H.css +1 -0
  24. package/dist/app/assets/CheckBox-Dkn59EbO.js +1 -0
  25. package/dist/app/assets/ChoicePicker-BX-KNSVk.css +1 -0
  26. package/dist/app/assets/ChoicePicker-Cg4Cj6B2.js +1 -0
  27. package/dist/app/assets/Column-BQyN2Mnc.js +1 -0
  28. package/dist/app/assets/Column-Df5lN6aE.css +1 -0
  29. package/dist/app/assets/Composer-C54KOyHb.js +2 -0
  30. package/dist/app/assets/ContextMenu-D3PBPRRl.js +1 -0
  31. package/dist/app/assets/DataTable-D5MTEmlc.css +1 -0
  32. package/dist/app/assets/DataTable-DsRcsDHs.js +1 -0
  33. package/dist/app/assets/DateTimeInput-Ccmu6vbY.js +1 -0
  34. package/dist/app/assets/DateTimeInput-x1XGuNl0.css +1 -0
  35. package/dist/app/assets/DetailHeader-D4ulpmi_.css +1 -0
  36. package/dist/app/assets/DetailHeader-DvDOX8aJ.js +1 -0
  37. package/dist/app/assets/DetailList-BeikDUyt.css +1 -0
  38. package/dist/app/assets/DetailList-Yalgw0YM.js +1 -0
  39. package/dist/app/assets/Details-Bgo6JIBm.js +1 -0
  40. package/dist/app/assets/DiffPage-BFnOf1p9.js +1 -0
  41. package/dist/app/assets/Divider-Bp3vn6nH.js +1 -0
  42. package/dist/app/assets/Divider-MNeVl6_n.css +1 -0
  43. package/dist/app/assets/Divisor-D4gUgDSw.css +1 -0
  44. package/dist/app/assets/Divisor-hrrJK3bw.js +1 -0
  45. package/dist/app/assets/Donut-BJmeC9Mu.js +1 -0
  46. package/dist/app/assets/Donut-BwdpL6WL.css +1 -0
  47. package/dist/app/assets/Edit-DuGIlEIV.js +1 -0
  48. package/dist/app/assets/Explorer-BkMOyBlc.js +1 -0
  49. package/dist/app/assets/Explorer-CjLkoKLM.js +1 -0
  50. package/dist/app/assets/Explorer-CwDdWpNn.js +1 -0
  51. package/dist/app/assets/Explorer-DXZ2epSi.js +1 -0
  52. package/dist/app/assets/ExplorerList-Cecr_ZQS.js +1 -0
  53. package/dist/app/assets/Field-CJtqXD7H.js +1 -0
  54. package/dist/app/assets/Field-DpS1bv_y.css +1 -0
  55. package/dist/app/assets/FieldGroup-2u9EmHRU.js +1 -0
  56. package/dist/app/assets/FieldGroup-B_DfbBby.css +1 -0
  57. package/dist/app/assets/FilePage-Bo_9WZiQ.js +1 -0
  58. package/dist/app/assets/Filter-C9Z9GcBH.js +1 -0
  59. package/dist/app/assets/FloatingLayout-8Wke63p3.js +1 -0
  60. package/dist/app/assets/Form-BKda3NBV.css +1 -0
  61. package/dist/app/assets/Form-D7L1aboH.js +1 -0
  62. package/dist/app/assets/FormActions-DK5QnUct.css +1 -0
  63. package/dist/app/assets/FormActions-DTJXRhkf.js +1 -0
  64. package/dist/app/assets/FormSection-BmWfSm92.js +1 -0
  65. package/dist/app/assets/FormSection-DSe5kU1s.css +1 -0
  66. package/dist/app/assets/Grid-BSSvEO5L.css +1 -0
  67. package/dist/app/assets/Grid-BmJ1BSH9.js +1 -0
  68. package/dist/app/assets/Icon-BFMW_Ijn.css +1 -0
  69. package/dist/app/assets/Icon-CIQ7doud.js +1 -0
  70. package/dist/app/assets/Image-dnPnniEL.css +1 -0
  71. package/dist/app/assets/Image-krGhoZYB.js +1 -0
  72. package/dist/app/assets/Info-1oWO89--.js +1 -0
  73. package/dist/app/assets/InlineLayout-Cnpt0vI0.js +1 -0
  74. package/dist/app/assets/LineChart-DnF4pqRu.css +1 -0
  75. package/dist/app/assets/LineChart-DxnWTKNr.js +1 -0
  76. package/dist/app/assets/Link-Bmovln50.css +1 -0
  77. package/dist/app/assets/Link-DbBfZpn0.js +1 -0
  78. package/dist/app/assets/List-BCNZ5z-i.css +1 -0
  79. package/dist/app/assets/List-BqbZ9K9S.js +1 -0
  80. package/dist/app/assets/LocaleToggle-BVab8iNa.css +1 -0
  81. package/dist/app/assets/LocaleToggle-CBvJEvFm.js +1 -0
  82. package/dist/app/assets/LogPage-DXOU5UzZ.js +1 -0
  83. package/dist/app/assets/LoginForm-BJhoxJyJ.css +1 -0
  84. package/dist/app/assets/LoginForm-C7ZmFVLz.js +1 -0
  85. package/dist/app/assets/Markdown-BaxWPZc1.js +4 -0
  86. package/dist/app/assets/Markdown-D4ts0B_q.css +1 -0
  87. package/dist/app/assets/MarkdownPage-8oL61A0c.js +1 -0
  88. package/dist/app/assets/Modal-BPnVnP2R.js +1 -0
  89. package/dist/app/assets/MountTitle-DXPuKAFo.js +1 -0
  90. package/dist/app/assets/New-DHihaOkV.js +3 -0
  91. package/dist/app/assets/Page-BkOqYXfd.js +1 -0
  92. package/dist/app/assets/Page-D7hXrdQj.js +2 -0
  93. package/dist/app/assets/Page-DOVek_br.js +1 -0
  94. package/dist/app/assets/Pagination-CmWBkMlC.js +1 -0
  95. package/dist/app/assets/Palette-CEQLzNFd.js +1 -0
  96. package/dist/app/assets/PortaLock-BME0nNtM.css +1 -0
  97. package/dist/app/assets/PortaLock-CC2pIbs8.js +2 -0
  98. package/dist/app/assets/RailLayout-MV_LU2y0.js +1 -0
  99. package/dist/app/assets/Row-BpA7AC-I.js +1 -0
  100. package/dist/app/assets/Row-DtfZU_4a.css +1 -0
  101. package/dist/app/assets/ScenaProvider-6A3TJumQ.js +1 -0
  102. package/dist/app/assets/SchemaForm-B_SWmx0L.css +1 -0
  103. package/dist/app/assets/SchemaForm-D6mGj6Xh.js +1 -0
  104. package/dist/app/assets/Settings-wnbeCcl1.js +1 -0
  105. package/dist/app/assets/SigillumGate-BVebugTV.js +1 -0
  106. package/dist/app/assets/SingleLayout-BNVy245Q.js +1 -0
  107. package/dist/app/assets/Slider-0-pV25N6.css +1 -0
  108. package/dist/app/assets/Slider-BW21RHZe.js +1 -0
  109. package/dist/app/assets/SpatialLayout-Bm8uhLD2.js +1 -0
  110. package/dist/app/assets/SpatialLayout-DzIS1m9Q.css +1 -0
  111. package/dist/app/assets/Spinner-B-iOhBZq.js +1 -0
  112. package/dist/app/assets/Spinner-B56wMtzv.css +1 -0
  113. package/dist/app/assets/SplitLayout-BuZpjDyP.js +1 -0
  114. package/dist/app/assets/Splitter-M7YGn5I8.js +1 -0
  115. package/dist/app/assets/StackLayout-CbP6W0Er.js +1 -0
  116. package/dist/app/assets/StatusDot-BwqhMthP.js +1 -0
  117. package/dist/app/assets/StatusDot-DzzNqTRg.css +1 -0
  118. package/dist/app/assets/TabLayout-AUuJvVjp.js +1 -0
  119. package/dist/app/assets/TabPanelLayout-BDz30u7O.js +1 -0
  120. package/dist/app/assets/Tabs-BYb2LuJK.css +1 -0
  121. package/dist/app/assets/Tabs-uqIKAux6.js +1 -0
  122. package/dist/app/assets/TerminalPage-BrP-ENHg.css +1 -0
  123. package/dist/app/assets/TerminalPage-DbF4N79y.js +18 -0
  124. package/dist/app/assets/Text-D2KlerVw.css +1 -0
  125. package/dist/app/assets/Text-MPtQvYE-.js +1 -0
  126. package/dist/app/assets/TextField-DnSHrmJM.js +1 -0
  127. package/dist/app/assets/ThemeModeToggle-B0EIvYRF.js +1 -0
  128. package/dist/app/assets/ThemeModeToggle-D_xGqGsG.css +1 -0
  129. package/dist/app/assets/ThemePicker-BxbcsOmU.css +1 -0
  130. package/dist/app/assets/ThemePicker-DHw8lqsi.js +1 -0
  131. package/dist/app/assets/Video-5WNSpY2W.js +1 -0
  132. package/dist/app/assets/Video-Dj-rxrve.css +1 -0
  133. package/dist/app/assets/_field-parts-BuPjFCuf.js +1 -0
  134. package/dist/app/assets/_field-parts-CfQcSJYh.css +1 -0
  135. package/dist/app/assets/_field-parts-DannIEUW.css +1 -0
  136. package/dist/app/assets/_utils-DZVsX11M.js +1 -0
  137. package/dist/app/assets/actions-DTKyI167.js +1 -0
  138. package/dist/app/assets/channel-BScxZDq2.js +1 -0
  139. package/dist/app/assets/colors-BieSUSt7.js +1 -0
  140. package/dist/app/assets/data-BvTv-4oH.js +2 -0
  141. package/dist/app/assets/diff-eyYjrmkY.js +3 -0
  142. package/dist/app/assets/emojis-XibTG-gy.js +1 -0
  143. package/dist/app/assets/index-Cu7ySznN.js +15 -0
  144. package/dist/app/assets/index-DgTMhxdP.css +1 -0
  145. package/dist/app/assets/jsx-runtime-BguD1OXD.js +1 -0
  146. package/dist/app/assets/link-DK7OzQXZ.js +1 -0
  147. package/dist/app/assets/mount-context-DZgEFVFG.js +1 -0
  148. package/dist/app/assets/preload-helper-BaNbYf_w.js +1 -0
  149. package/dist/app/assets/react-CybPckBe.js +1 -0
  150. package/dist/app/assets/sigillum-Bev0l9LS.js +1 -0
  151. package/dist/app/assets/styles-yrzHRgom.js +1 -0
  152. package/dist/app/assets/surface-presentation-CT86pw6J.js +1 -0
  153. package/dist/app/assets/terminal-BSweq0Uj.js +1 -0
  154. package/dist/app/assets/text-DJDdwKmv.js +1 -0
  155. package/dist/app/assets/turn-BoF7W1h6.js +3 -0
  156. package/dist/app/assets/useI18n-BTsfCYkN.js +1 -0
  157. package/dist/app/assets/useStore-BQkzWMs-.js +2 -0
  158. package/dist/app/assets/useStoreLabel-CK2AU1rh.js +1 -0
  159. package/dist/app/assets/words-BMjqrsOT.js +1 -0
  160. package/dist/app/assets/words-CrqnRMW4.js +1 -0
  161. package/dist/app/index.html +50 -0
  162. package/dist/cli/main.js +21 -0
  163. package/dist/cli/main.js.map +1 -0
  164. package/dist/cli/proxy.js +101 -0
  165. package/dist/cli/proxy.js.map +1 -0
  166. package/dist/cli/serve.js +207 -0
  167. package/dist/cli/serve.js.map +1 -0
  168. package/dist/cli/server.js +32 -0
  169. package/dist/cli/server.js.map +1 -0
  170. package/dist/plugin/index.d.ts +6 -0
  171. package/dist/plugin/index.js +12 -0
  172. package/dist/plugin/index.js.map +1 -0
  173. package/dist/plugin/static.d.ts +9 -0
  174. package/dist/plugin/static.js +77 -0
  175. package/dist/plugin/static.js.map +1 -0
  176. package/package.json +85 -4
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./emojis-XibTG-gy.js";import{t as r}from"./ContextMenu-D3PBPRRl.js";var i=t(),a=e();function o({title:e,actions:t,rows:o,selected:s,onOpen:c,notice:l,filterLabel:u}){let[d,f]=(0,i.useState)(null),[p,m]=(0,i.useState)(``),[h,g]=(0,i.useState)(new Set),_=e=>g(t=>{let n=new Set(t);return n.delete(e)||n.add(e),n}),v=p.trim().toLowerCase(),y=v===``?o:o.filter(e=>[e.title,...e.lines.filter(e=>typeof e==`string`)].join(` `).toLowerCase().includes(v)),b=(e,t)=>{e.preventDefault(),f({x:e.clientX,y:e.clientY,items:t.menu})};return(0,a.jsxs)(`div`,{className:`web-explorer`,children:[(0,a.jsxs)(`div`,{className:`web-explorer__title`,children:[(0,a.jsx)(`span`,{children:e}),(0,a.jsx)(`span`,{className:`web-explorer__actions`,children:t.map(e=>(0,a.jsx)(`button`,{type:`button`,className:`web-explorer__action`,title:e.label,"aria-label":e.label,"aria-pressed":e.on,"data-on":e.on===!0?`true`:`false`,"data-busy":e.busy===!0?`true`:void 0,disabled:e.busy===!0,onClick:t=>{if(e.menu===void 0)return e.run?.();let n=t.currentTarget.getBoundingClientRect();f({x:n.left,y:n.bottom,items:e.menu})},children:(0,a.jsx)(`span`,{className:`web-explorer__icon`,children:e.icon})},e.label))})]}),u===void 0?null:(0,a.jsx)(`input`,{className:`web-explorer__filter`,type:`search`,value:p,placeholder:u,"aria-label":u,onChange:e=>m(e.target.value)}),(0,a.jsxs)(`div`,{className:`web-explorer__scroll`,children:[l==null?null:(0,a.jsx)(`div`,{className:`web-explorer__notice`,children:l}),(0,a.jsx)(`ul`,{className:`web-explorer__list`,role:`listbox`,"aria-label":e,children:y.map((e,t)=>{let r=e.group,o=r!==void 0&&y[t-1]?.group?.key!==r.key,l=o?y.filter(e=>e.group?.key===r.key).length:0,u=r!==void 0&&h.has(r.key);return(0,a.jsxs)(i.Fragment,{children:[o?(0,a.jsx)(`li`,{className:`web-explorer__group`,role:`presentation`,children:(0,a.jsxs)(`button`,{type:`button`,"aria-expanded":!u,onClick:()=>_(r.key),children:[(0,a.jsx)(`span`,{className:`web-explorer__fold`,"aria-hidden":`true`,children:u?n.caretRight:n.caretDown}),(0,a.jsx)(`span`,{className:`web-explorer__group-label`,children:r.label}),(0,a.jsx)(`span`,{className:`web-explorer__count`,children:l})]})}):null,u?null:(0,a.jsxs)(`li`,{role:`option`,"aria-selected":e.key===s,tabIndex:0,className:`web-row`,"data-selected":e.key===s?`true`:`false`,onClick:()=>c(e.key),onKeyDown:t=>{if((t.key===`Enter`||t.key===` `)&&(t.preventDefault(),c(e.key)),t.key===`ContextMenu`||t.shiftKey&&t.key===`F10`){t.preventDefault();let n=t.currentTarget.getBoundingClientRect();f({x:n.left+24,y:n.bottom,items:e.menu})}},onContextMenu:t=>b(t,e),children:[(0,a.jsx)(`span`,{className:`web-row__dot`,"data-dot":e.dot,title:e.dotLabel,"aria-label":e.dotLabel}),(0,a.jsxs)(`span`,{className:`web-row__body`,children:[(0,a.jsxs)(`span`,{className:`web-row__head`,children:[(0,a.jsx)(`span`,{className:`web-row__title`,"data-strong":e.strong===!0?`true`:`false`,children:e.title}),e.time===void 0?null:(0,a.jsx)(`span`,{className:`web-row__time`,children:e.time}),e.action===void 0?null:(0,a.jsx)(`button`,{type:`button`,className:`web-row__action`,title:e.action.label,"aria-label":e.action.label,onClick:t=>{t.stopPropagation(),e.action?.run()},onKeyDown:e=>e.stopPropagation(),children:e.action.icon})]}),e.lines.map((e,t)=>(0,a.jsx)(`span`,{className:`web-row__line`,children:e},t))]})]})]},e.key)})}),v!==``&&y.length===0?(0,a.jsx)(`p`,{className:`web-note web-explorer__empty`,children:`Nothing matches.`}):null]}),d===null?null:(0,a.jsx)(r,{spec:{items:d.items},x:d.x,y:d.y,onClose:()=>f(null)})]})}export{o as t};
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./jsx-runtime-BguD1OXD.js";import{r as n}from"./Form-D7L1aboH.js";var r=t(),i=e({Field:()=>s,FieldError:()=>o,FieldHint:()=>a});function a({text:e}){return e?(0,r.jsx)(`span`,{className:`oo-field__hint oo-field-row__hint`,children:e}):null}function o({name:e,error:t}){let{errors:i}=n(),a=t??(e?i?.[e]:void 0);return a?(0,r.jsx)(`span`,{className:`oo-field__error oo-field-row__error`,children:a}):null}function s({name:e,label:t,hint:n,required:i,typeTag:s,error:c,children:l}){return(0,r.jsxs)(`div`,{className:`oo-field-row`,children:[t?(0,r.jsxs)(`span`,{className:`oo-field-row__labelline`,children:[(0,r.jsx)(`span`,{className:`oo-field-row__label`,children:t}),i?(0,r.jsx)(`span`,{className:`oo-field__required oo-field-row__required`,children:`*`}):null,s?(0,r.jsx)(`span`,{className:`oo-field__type oo-field-row__type`,children:s}):null]}):null,(0,r.jsx)(a,{text:n}),(0,r.jsx)(`div`,{className:`oo-field-row__control`,children:l}),(0,r.jsx)(o,{name:e,error:c})]})}export{i as n,s as t};
@@ -0,0 +1 @@
1
+ .oo-field-row{gap:var(--oo-spacing-xs);flex-direction:column;display:flex}.oo-field-row__labelline{align-items:baseline;gap:var(--oo-spacing-xs);display:flex}.oo-field-row__label{font-size:var(--oo-font-size-sm);color:var(--oo-color-text);font-weight:600}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";var t=e();function n({legend:e,children:n}){return(0,t.jsxs)(`fieldset`,{className:`oo-field-group`,children:[e?(0,t.jsx)(`legend`,{className:`oo-field-group__legend`,children:e}):null,n]})}export{n as FieldGroup};
@@ -0,0 +1 @@
1
+ .oo-field-group{gap:var(--oo-spacing-md);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);padding:var(--oo-spacing-md);flex-direction:column;margin:0;display:flex}.oo-field-group__legend{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);padding:0 var(--oo-spacing-xs);font-weight:600}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./Spinner-B-iOhBZq.js";import{t as r}from"./Alert-CHZkhmDE.js";import{i}from"./diff-eyYjrmkY.js";import{n as a,t as o}from"./text-DJDdwKmv.js";var s=t(),c=e(),l=5e3;function u({uri:e,line:t,end:u}){let d=a(e),f=(0,s.useRef)(null);if((0,s.useEffect)(()=>{f.current?.scrollIntoView({block:`center`})},[d,t]),e===void 0)return(0,c.jsx)(r,{tone:`warning`,message:`No file was named.`});let p=(0,c.jsx)(o,{uri:e});if(d===null)return(0,c.jsxs)(`div`,{className:`web-file`,children:[p,(0,c.jsx)(n,{label:`Reading the file`})]});if(`error`in d)return(0,c.jsxs)(`div`,{className:`web-file`,children:[p,(0,c.jsx)(r,{tone:`danger`,title:`Not readable`,message:d.error})]});if(d.text===null)return(0,c.jsxs)(`div`,{className:`web-file`,children:[p,(0,c.jsx)(`p`,{className:`web-note`,children:`This file is not text.`})]});let m=i(d.text),h=m.slice(0,l),g=t??-1,_=u??g;return(0,c.jsxs)(`div`,{className:`web-file`,children:[p,(0,c.jsxs)(`div`,{className:`web-file__body`,children:[(0,c.jsx)(`table`,{className:`web-code`,children:(0,c.jsx)(`tbody`,{children:h.map((e,t)=>{let n=t+1;return(0,c.jsxs)(`tr`,{"data-hit":n>=g&&n<=_?`true`:`false`,...n===g?{ref:f}:{},children:[(0,c.jsx)(`td`,{className:`web-code__number`,children:n}),(0,c.jsx)(`td`,{className:`web-code__text`,children:e})]},n)})})}),m.length>l?(0,c.jsxs)(`p`,{className:`web-note`,children:[`Showing the first `,l,` of `,m.length,` lines.`]}):null]})]})}export{u as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useI18n-BTsfCYkN.js";var i=e();function a({namespace:e,fields:a}){let d=n(),{t:f}=r(`query`),p=t(`$/${e}/query`),m=p?.where??[],h=t=>d.store.set(`$/${e}/query`,{...p??{page:1,pageSize:50},...t,page:1}),g=e=>e.value??!0,_=e=>m.some(t=>t.field===e.field&&t.value===g(e)),v=e=>{let t=m.filter(t=>t.field!==e.field),n=_(e)?t:[...t,{field:e.field,op:e.op??`eq`,value:g(e)}];h({where:n})};return(0,i.jsxs)(`div`,{style:o,children:[(0,i.jsx)(`input`,{style:s,placeholder:f(`search`,`Search…`),value:p?.q??``,onChange:e=>h({q:e.currentTarget.value})}),a?.length?(0,i.jsx)(`div`,{style:c,children:a.map(e=>(0,i.jsx)(`button`,{type:`button`,style:{...l,..._(e)?u:{}},onClick:()=>v(e),children:e.label??e.field},e.field))}):null]})}var o={display:`flex`,flexDirection:`column`,gap:6,padding:8},s={boxSizing:`border-box`,width:`100%`,padding:`6px 8px`,background:`var(--oo-color-canvas, #16181d)`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,outline:`none`,fontSize:13,color:`var(--oo-color-text, #e6e8eb)`},c={display:`flex`,flexWrap:`wrap`,gap:4},l={appearance:`none`,border:`1px solid var(--oo-color-border, #2b2f37)`,background:`none`,borderRadius:999,padding:`2px 8px`,fontSize:11,cursor:`pointer`,color:`var(--oo-color-muted, #8a8f98)`},u={color:`#fff`,background:`var(--oo-color-accent, #4c7fff)`,borderColor:`var(--oo-color-accent, #4c7fff)`};export{a as Filter};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";var t=e();function n({mounts:e,renderMount:n}){return(0,t.jsx)(`div`,{className:`oo-layout oo-layout--floating`,style:{position:`absolute`,inset:0,pointerEvents:`none`},children:e.map(e=>(0,t.jsx)(`div`,{style:{pointerEvents:`auto`},children:n(e)},e.key))})}export{n as FloatingLayout};
@@ -0,0 +1 @@
1
+ .oo-form{gap:var(--oo-form-gap,var(--oo-spacing-md));padding:var(--oo-form-padding,var(--oo-spacing-md));flex-direction:column;display:flex}.oo-form[data-loading=true]{opacity:.55;pointer-events:none;transition:opacity .2s}
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";var r=n(),i=t(),a=e({Form:()=>c,FormContext:()=>o,useFormContext:()=>s}),o=(0,r.createContext)({});function s(){return(0,r.useContext)(o)}function c({children:e,errors:t,namespace:n,gap:r,loading:a,onSubmit:s,style:c}){let l={...r===void 0?null:{gap:r},...c};return(0,i.jsx)(o.Provider,{value:{errors:t,namespace:n},children:(0,i.jsx)(`form`,{className:`oo-form`,"data-loading":a?`true`:void 0,style:l,onSubmit:e=>{e.preventDefault(),s?.()},children:e})})}export{a as n,s as r,o as t};
@@ -0,0 +1 @@
1
+ .oo-form-actions{gap:var(--oo-spacing-sm);align-items:center;display:flex}.oo-form-actions[data-align=end]{justify-content:flex-end}.oo-form-actions[data-align=between]{justify-content:space-between}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./Button-_R1oktDz.js";var n=e();function r({actions:e,align:r=`start`,children:i}){return(0,n.jsxs)(`div`,{className:`oo-form-actions`,"data-align":r,children:[e?e.filter(e=>!e.hidden).map((e,r)=>(0,n.jsx)(t,{type:e.type??`button`,label:e.icon?`${e.icon} ${e.label}`:e.label,variant:e.variant,disabled:e.disabled,onClick:e.onClick},r)):null,i]})}export{r as FormActions};
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./jsx-runtime-BguD1OXD.js";var n=t(),r=e({FormSection:()=>i});function i({title:e,children:t}){return(0,n.jsxs)(`section`,{className:`oo-form-section`,children:[(0,n.jsx)(`header`,{className:`oo-form-section__header`,children:e}),(0,n.jsx)(`div`,{className:`oo-form-section__body`,children:t})]})}export{r as n,i as t};
@@ -0,0 +1 @@
1
+ .oo-form-section{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.oo-form-section__header{font-size:var(--oo-font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--oo-color-muted);border-bottom:1px solid var(--oo-color-border);padding-bottom:var(--oo-spacing-xs);font-weight:600}.oo-form-section__body{gap:var(--oo-spacing-md);flex-direction:column;display:flex}
@@ -0,0 +1 @@
1
+ .oo-grid{width:100%;min-width:0;display:grid}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{r as t,t as n}from"./_utils-DZVsX11M.js";var r=e();function i(e){return typeof e==`number`?`${e}px`:e}function a({children:e,minColumnWidth:a=220,columns:o,gap:s,align:c=`stretch`,weight:l,style:u}){let d={gridTemplateColumns:o?`repeat(${o}, minmax(0, 1fr))`:`repeat(auto-fit, minmax(${i(a)}, 1fr))`,gap:s??`var(--oo-grid-gap, 12px)`,alignItems:n(c,`stretch`),...t(l),...u};return(0,r.jsx)(`div`,{className:`oo-grid`,style:d,children:e})}export{a as Grid};
@@ -0,0 +1 @@
1
+ .oo-icon{min-width:14px;color:rgb(var(--oo-color,var(--oo-color-muted)));flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-block}
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./jsx-runtime-BguD1OXD.js";var n=t(),r=e({Icon:()=>u,NAMED_GLYPH:()=>c,toMonochromeEmoji:()=>s}),i=`︎`,a=`️`,o=/[\p{Extended_Pictographic}\u2194-\u21AA\u231A-\u231B\u23E9-\u23F3\u2460-\u24FF\u25A0-\u25FF\u2600-\u27BF\u2B00-\u2BFF]/u;function s(e){let t=Array.from(String(e)),n=``;for(let e=0;e<t.length;e++){let r=t[e];if(r===a){n+=i;continue}if(r===i){n+=r;continue}n+=r;let s=t[e+1];o.test(r)&&s!==i&&s!==a&&(n+=i)}return n}var c={accountCircle:`👤`,add:`+`,arrowBack:`←`,arrowDown:`↓`,arrowForward:`→`,arrowLeft:`←`,arrowRight:`→`,arrowUp:`↑`,attachFile:s(`📎`),calendarToday:s(`📅`),call:s(`📞`),camera:s(`📷`),chatModeAsk:s(`❓`),chatModeAuto:s(`⚡`),chatModeDirect:s(`📨`),chatModePlan:`🗒`,check:`✓`,chevronDown:`⮟`,chevronUp:`⮝`,close:`✕`,closePanel:`⨉`,copy:`⎘`,cut:`✂`,delete:`🗑`,download:s(`⏬`),edit:`✎`,error:`!`,event:s(`📅`),fastForward:s(`⏩`),favorite:`♥`,favoriteOff:`♡`,fileText:`▤`,folder:s(`📁`),folderNormal:s(`📁`),folderOpen:s(`📂`),help:`?`,home:`⌂`,imageVideo:`🖼`,info:`ℹ`,locationOn:s(`📍`),lock:s(`🔒`),lockOpen:s(`🔓`),mail:`✉`,menu:`☰`,mobileGo:s(`📲`),mobileOff:s(`📴`),mobileStatus:s(`📳`),moreHoriz:`⋯`,moreVert:`⋮`,notifications:s(`🔔`),notificationsOff:s(`🔕`),pause:`⏸`,payment:s(`💳`),person:s(`👤`),phone:s(`📞`),photo:s(`🖼`),pin:s(`📌`),play:`▶`,print:s(`🖨`),profile:s(`♙`),recordAudio:s(`🎙`),refresh:`↻`,reload:s(`⟳`),rewind:`⏪`,route:s(`⤳`),run:s(`▶`),save:s(`✓`),search:s(`⌕`),send:`➤`,settings:`⚙`,share:`↗`,shoppingCart:s(`🛒`),skipNext:`⏭`,skipPrevious:`⏮`,star:`★`,starHalf:`⯨`,starOff:`☆`,stop:`⏹`,trash:s(`🗑`),unpin:s(`📍`),upload:s(`⏫`),visibility:`👁`,visibilityOff:s(`🕶`),volumeDown:s(`🔉`),volumeMute:s(`🔇`),volumeOff:s(`🔇`),volumeUp:s(`🔊`),warning:`⚠`};function l(e){return Object.prototype.hasOwnProperty.call(c,e)}function u({name:e=`•`,size:t=16,color:r,style:i}){if(typeof e==`object`&&e&&`path`in e)return(0,n.jsx)(`span`,{"aria-hidden":!0,className:`oo-icon oo-icon--svg`,style:{width:t,height:t,color:r,display:`inline-flex`,...i},children:(0,n.jsx)(`svg`,{viewBox:`0 0 24 24`,width:t,height:t,fill:`currentColor`,xmlns:`http://www.w3.org/2000/svg`,children:(0,n.jsx)(`path`,{d:e.path})})});let a=typeof e==`string`&&l(e)?c[e]:e;return(0,n.jsx)(`span`,{"aria-hidden":!0,className:`oo-icon`,style:{fontSize:t,color:r,...i},children:a})}export{r as n,c as r,u as t};
@@ -0,0 +1 @@
1
+ .oo-image{display:block}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";var t=e();function n(e){switch(e){case`cover`:return`cover`;case`contain`:return`contain`;case`none`:return`none`;case`scaleDown`:return`scale-down`;default:return`fill`}}function r({url:e,description:r,fit:i=`fill`,variant:a,width:o,height:s,style:c,src:l,alt:u}){let d=e??l;return d?(0,t.jsx)(`img`,{className:`oo-image`,"data-variant":a,src:d,alt:r??u??``,style:{width:o,height:s,objectFit:n(i),...c}}):null}export{r as Image};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{i as a,n as o,o as s,r as c,x as l}from"./data-BvTv-4oH.js";import{n as u,t as d}from"./words-CrqnRMW4.js";import{t as f}from"./Badge-BDEW5PFb.js";import{t as p}from"./Alert-CHZkhmDE.js";import{t as m}from"./Text-MPtQvYE-.js";import{t as h}from"./DetailList-Yalgw0YM.js";import{m as g}from"./index-Cu7ySznN.js";import{a as _}from"./turn-BoF7W1h6.js";var v=t(),y=e(),b={connected:{tone:`success`,text:`Connected`},connecting:{tone:`info`,text:`Connecting`},reconnecting:{tone:`warning`,text:`Reconnecting`},disconnected:{tone:`default`,text:`Disconnected`},failed:{tone:`danger`,text:`Failed`}};function x(e){let[t,n]=(0,v.useState)(null),[r,i]=(0,v.useState)(null);return(0,v.useEffect)(()=>{n(null),i(null)},[e]),{status:t,error:r}}function S(){let[e,t]=(0,v.useState)(()=>Date.now());return(0,v.useEffect)(()=>{let e=window.setInterval(()=>t(Date.now()),1e3);return()=>window.clearInterval(e)},[]),e}function C(){let e=r(),t=n(c),v=n(s),C=n(`$/ahp/agents`)??[],w=n(a),T=n(o),{status:E,error:D}=x(t?.generation??0),O=S(),k=b[t?.status??`disconnected`]??b.disconnected,A=E?.startedAt===void 0?NaN:Date.parse(E.startedAt),j=[{label:`Status`,value:k.text}];v!=null&&(j.push({label:`Host`,value:v.label}),v.protocolVersion!==null&&j.push({label:`Protocol`,value:v.protocolVersion}),v.connectedAt!==null&&j.push({label:`Connected`,value:`${_(v.connectedAt)} \u{00B7} ${d(O-v.connectedAt)}`}),j.push({label:`Client`,value:(0,y.jsx)(`code`,{children:v.clientId})},{label:`Server sequence`,value:String(v.serverSeq)},{label:`Following`,value:`${v.subscriptions} channels`})),t?.error!==null&&t?.error!==void 0&&j.push({label:`Last error`,value:t.error});let M=[];E!==null&&(Number.isNaN(A)||M.push({label:`Started`,value:`${_(A)} \u{00B7} up ${d(O-A)}`}),E.pid!==void 0&&M.push({label:`Process`,value:String(E.pid)}),E.url!==void 0&&M.push({label:`Address`,value:(0,y.jsx)(`code`,{children:E.url})}),E.automations!==void 0&&M.push({label:`Automations kept in`,value:E.automations}),(E.paths??[]).length>0&&M.push({label:`Sessions kept in`,value:(0,y.jsx)(`span`,{className:`web-lines`,children:E.paths.map(e=>(0,y.jsx)(`code`,{children:e},e))})}));let N=[{label:`Agents`,value:(0,y.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void e.commands.execute(`sidebar.activate`,{section:g}),children:C.length===0?`None`:C.map(e=>e.displayName).join(`, `)})},{label:`Default folder`,value:w==null?`None`:(0,y.jsx)(`code`,{children:u(w)})}];v?.activeSessions!==null&&v?.activeSessions!==void 0&&N.push({label:`Active sessions`,value:String(v.activeSessions)}),N.push({label:`Automations`,value:T==null?`Not offered`:[T.create===void 0?`Read only`:`Clients can create them`,T.schedules?.minIntervalMinutes===void 0?void 0:`at most every ${T.schedules.minIntervalMinutes} minutes`,T.runCancellation===void 0?void 0:`runs can be stopped`].filter(e=>e!==void 0).join(`, `)});let P=v?.terminals??[];return(0,y.jsxs)(`div`,{className:`web-page`,children:[(0,y.jsxs)(`div`,{className:`web-page__head`,children:[(0,y.jsxs)(`div`,{className:`web-chat__title`,children:[(0,y.jsx)(m,{variant:`h2`,text:`Host`}),(0,y.jsx)(f,{tone:k.tone,text:k.text})]}),(0,y.jsxs)(`div`,{className:`web-page__actions`,children:[t?.status===`connected`?null:(0,y.jsx)(i,{label:`Reconnect now`,variant:`primary`,onClick:l}),(0,y.jsx)(i,{label:`Settings`,onClick:()=>void e.commands.execute(`ahp.openSettings`)})]})]}),(0,y.jsx)(m,{variant:`h3`,text:`Connection`}),(0,y.jsx)(h,{items:j,columns:2}),E===null&&D===null?null:(0,y.jsx)(m,{variant:`h3`,text:`Daemon`}),D===null?null:(0,y.jsx)(p,{tone:`warning`,message:`The daemon's status is not readable: ${D}`}),M.length===0?null:(0,y.jsx)(h,{items:M,columns:2}),(0,y.jsx)(m,{variant:`h3`,text:`Offers`}),(0,y.jsx)(h,{items:N,columns:2}),(0,y.jsx)(m,{variant:`h3`,text:`Terminals`}),P.length===0?(0,y.jsx)(`p`,{className:`web-note`,children:`No terminals open.`}):(0,y.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,y.jsx)(`thead`,{children:(0,y.jsxs)(`tr`,{children:[(0,y.jsx)(`th`,{children:`Title`}),(0,y.jsx)(`th`,{children:`State`})]})}),(0,y.jsx)(`tbody`,{children:P.map(e=>{let t=e.lifecycle;return(0,y.jsxs)(`tr`,{children:[(0,y.jsx)(`td`,{children:e.title}),(0,y.jsx)(`td`,{children:t.status===`exited`?`Exited${t.exitCode===void 0?``:` (${t.exitCode})`}`:`Running`})]},e.resource)})})]})]})}export{C as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";var t=e();function n({mounts:e,renderMount:n}){return(0,t.jsx)(`div`,{className:`oo-layout oo-layout--inline`,style:{display:`flex`,flexDirection:`row`,alignItems:`center`,gap:`var(--oo-spacing-md)`,height:`100%`},children:e.map(e=>(0,t.jsx)(`div`,{style:{display:`contents`},children:n(e)},e.key))})}export{n as InlineLayout};
@@ -0,0 +1 @@
1
+ .oo-linechart{display:block;overflow:visible}.oo-linechart__axis{stroke:var(--oo-color-border);stroke-width:1px}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";var t=e(),n=`var(--oo-color-accent)`;function r({series:e,height:r=80,width:i=`100%`,fill:a,showAxis:o,style:s}){let c=(e??[]).map(e=>({...e,points:e.points??[]})),l=c.flatMap(e=>e.points),u=l.length>0?Math.min(...l):0,d=(l.length>0?Math.max(...l):1)-u||1,f=e=>e.map((t,n)=>`${e.length>1?n/(e.length-1)*100:0},${100-(t-u)/d*100}`).join(` `);return(0,t.jsxs)(`svg`,{className:`oo-linechart`,viewBox:`0 0 100 100`,preserveAspectRatio:`none`,style:{width:i,height:r,...s},children:[o?(0,t.jsx)(`line`,{className:`oo-linechart__axis`,x1:`0`,y1:`100`,x2:`100`,y2:`100`,vectorEffect:`non-scaling-stroke`}):null,c.map((e,r)=>{let i=e.color??n,o=f(e.points);return o?(0,t.jsxs)(`g`,{children:[a?(0,t.jsx)(`polygon`,{points:`0,100 ${o} 100,100`,fill:i,opacity:.15}):null,(0,t.jsx)(`polyline`,{points:o,fill:`none`,stroke:i,strokeWidth:2,strokeLinejoin:`round`,strokeLinecap:`round`,vectorEffect:`non-scaling-stroke`})]},r):null})]})}function i({points:e,color:n,height:i=24,fill:a,style:o}){return(0,t.jsx)(r,{series:[{points:e,color:n}],height:i,fill:a,style:o})}export{r as LineChart,i as Sparkline};
@@ -0,0 +1 @@
1
+ .oo-link{color:var(--oo-color-accent);cursor:pointer;text-decoration:none}.oo-link:hover{text-decoration:underline}.oo-link[data-disabled=true]{color:var(--oo-color-muted);cursor:not-allowed;text-decoration:none}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{r as t}from"./_utils-DZVsX11M.js";var n=e(),r=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,i=/^\+?\d[\d\s().-]*$/;function a(e){let t=e.trim();return/^tel:\/\//i.test(t)?{href:`tel:${t.slice(6)}`,kind:`tel`}:/^email:\/\//i.test(t)?{href:`mailto:${t.slice(8)}`,kind:`email`}:/^mailto:/i.test(t)?{href:t,kind:`email`}:/^tel:/i.test(t)?{href:t,kind:`tel`}:/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?{href:t,kind:`web`}:r.test(t)?{href:`mailto:${t}`,kind:`email`}:i.test(t)?{href:`tel:${t}`,kind:`tel`}:{href:`https://${t}`,kind:`web`}}function o({href:e,label:r,children:i,external:o,disabled:s,onClick:c,weight:l,style:u}){let d=e?a(e):null,f=i??r??e??``,p=o??d?.kind===`web`;return(0,n.jsx)(`a`,{className:`oo-link`,href:s?void 0:d?.href,target:p?`_blank`:void 0,rel:p?`noopener noreferrer`:void 0,"data-kind":d?.kind,"data-disabled":s||void 0,style:{...t(l),...u},onClick:e=>{if(s){e.preventDefault();return}c?.(e)},children:f})}export{o as Link};
@@ -0,0 +1 @@
1
+ .oo-list{gap:var(--oo-list-gap,var(--oo-spacing-sm));padding:var(--oo-list-padding,0);box-sizing:border-box;display:flex}.oo-list[data-direction=vertical]{flex-direction:column;overflow:hidden auto}.oo-list[data-direction=horizontal]{flex-direction:row;overflow:auto hidden}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{r as t,t as n}from"./_utils-DZVsX11M.js";var r=e();function i({children:e,direction:i=`vertical`,align:a=`stretch`,weight:o,gap:s,padding:c,maxHeight:l,style:u}){let d={alignItems:n(a),...s===void 0?null:{gap:s},...c===void 0?null:{padding:c},...l===void 0?null:{maxHeight:l},...t(o),...u};return(0,r.jsx)(`div`,{className:`oo-list`,"data-direction":i,style:d,children:e})}export{i as List};
@@ -0,0 +1 @@
1
+ .oo-locale-toggle{align-items:center;gap:6px;font-size:13px;line-height:1;display:inline-flex}.oo-locale-toggle__sep{color:var(--oo-color-muted,#8a8f98);opacity:.4;-webkit-user-select:none;user-select:none}.oo-locale-toggle__item{appearance:none;cursor:pointer;font:inherit;color:var(--oo-color-muted,#8a8f98);background:0 0;border:none;border-radius:4px;margin:0;padding:2px 4px;transition:color .12s}.oo-locale-toggle__item:hover{color:var(--oo-color-text,#e6e8eb);background:0 0}.oo-locale-toggle__item--active{color:var(--oo-color-accent,#4c7fff);font-weight:600}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useI18n-BTsfCYkN.js";var r=t(),i=e();function a({display:e=`text`,locales:t,separator:a=`|`,className:s,style:c}){let{locale:l,locales:u,setLocale:d}=n(),f=t?t.map(e=>u.find(t=>t.locale===e)).filter(Boolean):u;return(0,i.jsx)(`div`,{className:[`oo-locale-toggle`,s].filter(Boolean).join(` `),style:c,role:`group`,children:f.map((t,n)=>(0,i.jsxs)(r.Fragment,{children:[n>0&&a!=null?(0,i.jsx)(`span`,{className:`oo-locale-toggle__sep`,"aria-hidden":`true`,children:a}):null,(0,i.jsx)(`button`,{type:`button`,className:`oo-locale-toggle__item`+(t.locale===l?` oo-locale-toggle__item--active`:``),"aria-pressed":t.locale===l,title:t.name??t.locale,onClick:()=>d(t.locale),children:o(t,e)})]},t.locale))})}function o(e,t){let n=(e.language??e.locale).toUpperCase();return t===`emoji`?e.emoji??n:t===`both`&&e.emoji?`${e.emoji} ${n}`:n}export{a as LocaleToggle};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{A as r,D as i,E as a,M as o,N as s,P as c,j as l,k as u}from"./data-BvTv-4oH.js";import{t as d}from"./emojis-XibTG-gy.js";var f=t(),p=e(),m=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform)?`Cmd+click to open`:`Ctrl+click to open`,h={connection:`Connection`,session:`Session`,terminal:`Terminal`,traffic:`Traffic`};function g(e,t){return t.startsWith(`ahp-terminal:`)?{tip:`Open the terminal`,run:()=>void e.commands.execute(`ahp.openTerminal`,{uri:t})}:(e.store.get(`$/ahp/sessions`)??[]).some(e=>e.resource===t)?{tip:`Open the session`,run:()=>void e.commands.execute(`ahp.openSession`,{resource:t})}:t.startsWith(`file:`)?{tip:`Open the file`,run:()=>void e.commands.execute(`ahp.openFile`,{uri:t})}:/^https?:/i.test(t)?{tip:`Open the page`,run:()=>void window.open(t,`_blank`,`noopener`)}:null}function _(e){if(typeof e==`string`)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return JSON.stringify(e,null,2)??String(e)}var v=e=>void navigator.clipboard?.writeText(e).catch(()=>void 0),y=(0,f.memo)(function({entry:e,open:t,onToggle:r}){let i=n(),a=s(e.text).map((e,t)=>{if(e.kind===`text`)return(0,p.jsx)(`span`,{children:e.text},t);let n=g(i,e.text);return n===null?(0,p.jsx)(`span`,{children:e.text},t):(0,p.jsx)(`a`,{className:`web-log__link`,title:`${n.tip} (${m})`,onClick:e=>{(e.ctrlKey||e.metaKey)&&(e.stopPropagation(),n.run())},children:e.text},t)});return(0,p.jsxs)(`div`,{className:`web-log__row`,"data-open":t||void 0,"data-level":e.level,children:[(0,p.jsxs)(`div`,{className:`web-log__line`,role:`button`,tabIndex:0,"aria-expanded":t,onClick:()=>r(e.id),onKeyDown:t=>{t.key===`Enter`&&r(e.id)},children:[(0,p.jsx)(`span`,{className:`web-log__caret`,children:t?d.caretDown:d.caretRight}),(0,p.jsx)(`span`,{className:`web-log__time`,children:u(e.at)}),(0,p.jsx)(`span`,{className:`web-log__level`,children:e.level.toUpperCase()}),(0,p.jsx)(`span`,{className:`web-log__scope`,"data-scope":e.scope,children:(0,p.jsx)(`span`,{children:h[e.scope]})}),(0,p.jsx)(`span`,{className:`web-log__text`,children:a}),t?(0,p.jsx)(`button`,{type:`button`,className:`web-log__icon`,title:`Copy the line`,onClick:t=>{t.stopPropagation(),v(l(e))},children:d.copy}):null]}),t&&e.detail!==void 0?(0,p.jsx)(`pre`,{className:`web-log__detail`,children:_(e.detail)}):null]})});function b(){let e=c(),[t,n]=(0,f.useState)([]),[s,l]=(0,f.useState)(`info`),[u,m]=(0,f.useState)(``),[g,_]=(0,f.useState)(new Set),b=(0,f.useMemo)(()=>r(e,{scopes:t.length===0?i.filter(e=>e!==`traffic`):t,minLevel:t.includes(`traffic`)?`debug`:s,query:u}),[e,t,s,u]),x=(0,f.useCallback)(e=>{_(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),S=e=>n(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),C=()=>l(a[(a.indexOf(s)+1)%a.length]??`info`),w=(0,f.useRef)(null),T=(0,f.useRef)(!0);return(0,f.useEffect)(()=>{let e=w.current;if(e===null)return;let t=()=>{T.current=e.scrollHeight-e.scrollTop-e.clientHeight<24};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[]),(0,f.useLayoutEffect)(()=>{let e=w.current;e!==null&&T.current&&(e.scrollTop=e.scrollHeight)},[b]),(0,p.jsxs)(`div`,{className:`web-log`,children:[(0,p.jsxs)(`div`,{className:`web-log__bar`,children:[(0,p.jsx)(`button`,{type:`button`,className:`web-log__chip`,"data-on":t.length===0||void 0,onClick:()=>n([]),children:`All`}),i.map(e=>(0,p.jsxs)(`button`,{type:`button`,className:`web-log__chip`,"data-on":t.includes(e)||void 0,onClick:()=>S(e),children:[(0,p.jsx)(`span`,{className:`web-log__dot`,"data-scope":e}),h[e]]},e)),(0,p.jsx)(`span`,{className:`web-log__rule`}),(0,p.jsxs)(`button`,{type:`button`,className:`web-log__chip`,title:`Least severe level shown`,disabled:t.includes(`traffic`),onClick:C,children:[t.includes(`traffic`)?`debug`:s,` and up`]}),(0,p.jsx)(`input`,{className:`web-log__search`,type:`search`,placeholder:`Filter (!word excludes)`,value:u,onChange:e=>m(e.target.value)}),(0,p.jsx)(`button`,{type:`button`,className:`web-log__icon`,title:`Copy the lines shown`,onClick:()=>v(o(b)),children:d.copy})]}),(0,p.jsxs)(`div`,{className:`web-log__list`,ref:w,children:[b.length===0?(0,p.jsxs)(`p`,{className:`web-note`,children:[`Nothing logged`,e.length===0?` yet`:` matches the filter`,`.`]}):null,b.map(e=>(0,p.jsx)(y,{entry:e,open:g.has(e.id),onToggle:x},e.id))]})]})}export{b as default};
@@ -0,0 +1 @@
1
+ .porta-form{gap:var(--oo-spacing-md);flex-direction:column;max-width:360px;display:flex}.porta-form__oauth{gap:var(--oo-spacing-xs);flex-direction:column;display:flex}.porta-form__divider{align-items:center;gap:var(--oo-spacing-sm);color:var(--oo-color-muted);font-size:var(--oo-font-size-xs);text-transform:uppercase;letter-spacing:.5px;display:flex}.porta-form__divider:before,.porta-form__divider:after{content:"";background:var(--oo-color-border);flex:1;height:1px}.porta-form__fields{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.porta-form__two-step{gap:var(--oo-spacing-xs);padding:var(--oo-spacing-sm);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);flex-direction:column;display:flex}.porta-form__two-step-label{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted)}.porta-form__two-step-row{gap:var(--oo-spacing-xs);align-items:flex-end;display:flex}.porta-form__two-step-row .oo-field{flex:1}.porta-form__otp-digits{gap:4px;display:flex}.porta-form__otp-digit{text-align:center;border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);width:32px;height:36px;color:inherit;font:inherit;font-family:var(--oo-font-mono);background:0 0}.porta-form__otp-digit:focus{outline:2px solid var(--oo-color-accent);outline-offset:-2px}.porta-form__footer{justify-content:space-between;align-items:center;gap:var(--oo-spacing-sm);display:flex}.porta-form__error{color:var(--oo-color-danger);font-size:var(--oo-font-size-xs)}.porta-form__pending{color:var(--oo-color-muted);font-size:var(--oo-font-size-xs)}.porta-form__aux{gap:var(--oo-spacing-md);display:flex}.porta-form__aux button{color:var(--oo-color-accent);cursor:pointer;font:inherit;font-size:var(--oo-font-size-xs);background:0 0;border:none;padding:0;text-decoration:underline}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./useI18n-BTsfCYkN.js";import{t as a}from"./sigillum-Bev0l9LS.js";import{t as o}from"./Button-_R1oktDz.js";/* empty css */import{F as s}from"./index-Cu7ySznN.js";var c=t(),l=e();function u(e){return e&&typeof e==`object`&&`path`in e?e.path:void 0}function d(e,t=``){let r=n(u(e));return u(e)?r??t:(typeof e==`string`?e:void 0)??t}function f({provider:e,pending:t,fire:n,t:r}){let i=d(e.label,e.id);return(0,l.jsx)(o,{label:`${e.icon?`${e.icon} `:``}${r(`auth/providerLabel`,{provider:i,fallback:`Continue with {provider}`})}`,disabled:t,onClick:()=>n(`sigillum.signin`,{providerId:e.id,credentials:{}})})}function p({field:e}){let t=e.label&&typeof e.label==`object`&&`path`in e.label?u(e.label):void 0,r=n(t);return t?(0,l.jsx)(l.Fragment,{children:r??``}):(0,l.jsx)(l.Fragment,{children:typeof e.label==`string`?e.label:``})}function m({providers:e,allowSignup:t=!1,allowForgotPassword:u=!1,onSignup:m,onForgotPassword:_}){let v=r(),y=s(),{t:b}=i(),x=!!n(a.pending),S=n(a.error)??null,C=n(a.challenge)??null,w=(0,c.useMemo)(()=>e?y.providers.filter(t=>e.includes(t.id)):y.providers,[y.providers,e]),T=w.filter(e=>e.kind===`oauth-button`),E=w.filter(e=>e.kind===`form-fields`),D=w.filter(e=>e.kind===`otp`),O=w.filter(e=>e.kind===`magic-link`),k=(0,c.useMemo)(()=>{let e=[],t=new Set;for(let n of E)for(let r of n.fields??[])t.has(r.name)||(t.add(r.name),e.push({field:r,ownerId:n.id}));return e},[E]),[A,j]=(0,c.useState)({});function M(e,t){j(n=>({...n,[e]:t}))}function N(e,t){v.commands.execute(e,t)}function P(e){if(e.preventDefault(),E.length===0)return;let t=E.find(e=>e.id===`password`)??E[0];t&&N(`sigillum.signin`,{providerId:t.id,credentials:A})}let F=k.length>0||D.length>0||O.length>0,I=d((E.find(e=>e.id===`password`)??E[0])?.label,b(`auth/signIn`,`Sign in`));return(0,l.jsxs)(`form`,{className:`porta-form`,onSubmit:P,children:[T.length>0?(0,l.jsx)(`div`,{className:`porta-form__oauth`,children:T.map(e=>(0,l.jsx)(f,{provider:e,pending:x,fire:N,t:b},e.id))}):null,T.length>0&&F?(0,l.jsx)(`div`,{className:`porta-form__divider`,children:`or`}):null,k.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`div`,{className:`porta-form__fields`,children:k.map(({field:e})=>(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.label&&typeof e.label==`object`&&`t`in e.label?b(e.label.t,{...e.label.args,fallback:`???`}):(0,l.jsx)(p,{field:e})}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.type,name:e.name,autoComplete:e.autoComplete,required:e.required,placeholder:e.placeholder,value:A[e.name]??``,onChange:t=>M(e.name,t.currentTarget.value)})]},e.name))}),(0,l.jsx)(o,{type:`submit`,variant:`primary`,label:I,disabled:x})]}):null,D.map(e=>(0,l.jsx)(h,{provider:e,challenge:C,pending:x,fire:N},e.id)),O.map(e=>(0,l.jsx)(g,{provider:e,challenge:C,pending:x,fire:N},e.id)),(0,l.jsxs)(`div`,{className:`porta-form__footer`,children:[(0,l.jsxs)(`span`,{children:[x?(0,l.jsx)(`span`,{className:`porta-form__pending`,children:`Working…`}):null,S?(0,l.jsx)(`span`,{className:`porta-form__error`,children:S}):null]}),(0,l.jsxs)(`div`,{className:`porta-form__aux`,children:[u?(0,l.jsx)(`button`,{type:`button`,onClick:_,children:b(`auth/forgotPassword`,`Forgot password?`)}):null,t?(0,l.jsx)(`button`,{type:`button`,onClick:m,children:b(`auth/createAccount`,`Create account`)}):null]})]})]})}function h({provider:e,challenge:t,pending:n,fire:r}){let{t:a}=i(`auth`),s=d(e.label,e.id),u=t?.providerId===e.id,f=e.otp?.digits??6,[p,m]=(0,c.useState)(``),[h,g]=(0,c.useState)(``);return(0,l.jsxs)(`div`,{className:`porta-form__two-step`,children:[(0,l.jsxs)(`span`,{className:`porta-form__two-step-label`,children:[e.icon?`${e.icon} `:``,s]}),u?(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsx)(_,{digits:f,value:h,onChange:g}),(0,l.jsx)(o,{label:`Verify`,variant:`primary`,disabled:n||h.length!==f,onClick:()=>r(`sigillum.verifyOtp`,{providerId:e.id,code:h})})]}):(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.otp?.channel===`sms`?a(`phoneLabel`,`Phone number`):a(`emailLabel`,`Email address`)}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.otp?.channel===`sms`?`tel`:`email`,value:p,placeholder:e.otp?.channel===`sms`?`+1 555 …`:`you@example.com`,onChange:e=>m(e.currentTarget.value)})]}),(0,l.jsx)(o,{label:e.otp?.sendLabel??a(`sendCode`,`Send code`),disabled:n||!p,onClick:()=>r(`sigillum.requestOtp`,{providerId:e.id,value:p})})]})]})}function g({provider:e,challenge:t,pending:n,fire:r}){let{t:a}=i(`auth`),s=d(e.label,e.id),u=t?.providerId===e.id,[f,p]=(0,c.useState)(``);return(0,l.jsxs)(`div`,{className:`porta-form__two-step`,children:[(0,l.jsxs)(`span`,{className:`porta-form__two-step-label`,children:[e.icon?`${e.icon} `:``,s]}),u?(0,l.jsxs)(`span`,{className:`porta-form__pending`,children:[`Check your `,e.magicLink?.channel??`inbox`,` for the link.`]}):(0,l.jsxs)(`div`,{className:`porta-form__two-step-row`,children:[(0,l.jsxs)(`label`,{className:`oo-field`,children:[(0,l.jsx)(`span`,{className:`oo-field__label`,children:e.magicLink?.channel===`sms`?a(`phoneLabel`,`Phone number`):a(`emailLabel`,`Email address`)}),(0,l.jsx)(`input`,{className:`oo-input`,type:e.magicLink?.channel===`sms`?`tel`:`email`,value:f,placeholder:e.magicLink?.channel===`sms`?`+1 555 …`:`you@example.com`,onChange:e=>p(e.currentTarget.value)})]}),(0,l.jsx)(o,{label:e.magicLink?.sendLabel??a(`sendLink`,`Send link`),disabled:n||!f,onClick:()=>r(`sigillum.requestOtp`,{providerId:e.id,value:f})})]})]})}function _({digits:e,value:t,onChange:n}){let r=(0,c.useRef)([]);(0,c.useEffect)(()=>{r.current=r.current.slice(0,e)},[e]);let i=t.padEnd(e,` `).slice(0,e).split(``);function a(t,a){let o=i.slice();o[t]=a.slice(-1)||` `,n(o.join(``).trimEnd()),a&&t+1<e&&r.current[t+1]?.focus()}return(0,l.jsx)(`div`,{className:`porta-form__otp-digits`,children:Array.from({length:e}).map((e,t)=>(0,l.jsx)(`input`,{ref:e=>{r.current[t]=e},className:`porta-form__otp-digit`,inputMode:`numeric`,maxLength:1,value:i[t]?.trim()??``,onChange:e=>a(t,e.currentTarget.value),onKeyDown:e=>{e.key===`Backspace`&&!i[t]?.trim()&&t>0&&r.current[t-1]?.focus()}},t))})}export{m as LoginForm,m as default};
@@ -0,0 +1,4 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";var n=t(),r=e();function i({text:e=``,style:t,className:n}){let i=new Map,a=_(e.split(/\r?\n/),i),o=[],s={notes:i,order:o},c=a.map((e,t)=>b(e,t,s));return(0,r.jsxs)(`div`,{className:[`oo-markdown`,n].filter(Boolean).join(` `),style:t,children:[c,o.length===0?null:(0,r.jsx)(`ol`,{className:`oo-markdown__notes`,children:o.map(e=>(0,r.jsx)(`li`,{id:x(e),children:D(i.get(e)??``,s)},e))})]})}var a=/^ {0,3}(#{1,6})\s+(.*?)(?:\s+#+)?\s*$/,o=/^ {0,3}(`{3,}|~{3,})\s*([^`\s]*)/,s=/^ {0,3}([-*_])(?:\s*\1){2,}\s*$/,c=/^ {0,3}>/,l=/^(\s*)([-*+]|\d{1,9}[.)])\s+(.*)$/,u=/^\[\^([^\]]+)\]:\s*(.*)$/,d=/^\s*\|?\s*:?-+:?\s*(\|\s*:?-+:?\s*)*\|?\s*$/;function f(e,t){return a.test(e)||o.test(e)||s.test(e)||c.test(e)||l.test(e)||e.includes(`|`)&&t!==void 0&&d.test(t)}function p(e){let t=0;for(let n of e)if(n===` `)t+=1;else if(n===` `)t+=4;else break;return t}function m(e,t){let n=0,r=0;for(;n<e.length&&r<t;){if(e[n]===` `)r+=1;else if(e[n]===` `)r+=4;else break;n+=1}return e.slice(n)}function h(e){let t=e.trim();t.startsWith(`|`)&&(t=t.slice(1)),t.endsWith(`|`)&&!t.endsWith(`\\|`)&&(t=t.slice(0,-1));let n=[],r=``,i=!1;for(let e=0;e<t.length;e+=1){let a=t[e];if(a===`\\`&&t[e+1]===`|`){r+=`|`,e+=1;continue}if(a==="`"&&(i=!i),a===`|`&&!i){n.push(r.trim()),r=``;continue}r+=a}return n.push(r.trim()),n}function g(e){let t=e.startsWith(`:`),n=e.endsWith(`:`);return t&&n?`center`:n?`right`:t?`left`:null}function _(e,t){let n=[],r=0;for(;r<e.length;){let i=e[r]??``;if(i.trim()===``){r+=1;continue}let v=o.exec(i);if(v){let t=v[1]??"```",a=p(i),o=[];for(r+=1;r<e.length;){let n=e[r]??``,i=/^ {0,3}(`{3,}|~{3,})\s*$/.exec(n);if(i&&i[1][0]===t[0]&&i[1].length>=t.length)break;o.push(m(n,a)),r+=1}r+=1,n.push({kind:`code`,lang:(v[2]??``).toLowerCase(),body:o.join(`
2
+ `)});continue}let y=a.exec(i);if(y){n.push({kind:`h`,level:y[1].length,text:y[2]??``}),r+=1;continue}if(s.test(i)){n.push({kind:`hr`}),r+=1;continue}if(c.test(i)){let i=[];for(;r<e.length&&(e[r]??``).trim()!==``;){let t=e[r]??``;i.push(c.test(t)?t.replace(/^ {0,3}> ?/,``):t),r+=1}n.push({kind:`quote`,blocks:_(i,t)});continue}let b=u.exec(i);if(b){let n=[b[2]??``];for(r+=1;r<e.length&&p(e[r]??``)>=2&&(e[r]??``).trim()!==``;)n.push((e[r]??``).trim()),r+=1;t.set(b[1],n.join(` `));continue}let x=l.exec(i);if(x){let a=p(i),o=/\d/.test(x[2][0]),s=o?parseInt(x[2],10):1,c=[];for(;r<e.length;){let n=l.exec(e[r]??``);if(!n||p(e[r]??``)!==a||/\d/.test(n[2][0])!==o)break;let i=a+n[2].length+1,s=n[3]??``,u=null,d=/^\[([ xX])\]\s+(.*)$/.exec(s);d&&(u=d[1]!==` `,s=d[2]??``);let h=[s];for(r+=1;r<e.length;){let t=e[r]??``;if(t.trim()===``){let t=e[r+1];if(t!==void 0&&t.trim()!==``&&p(t)>=i){h.push(``),r+=1;continue}break}let n=p(t);if(n>a&&n>=Math.min(i,a+2)){h.push(m(t,Math.min(n,i))),r+=1;continue}if(n<=a&&!f(t,e[r+1])){h.push(t.trim()),r+=1;continue}break}c.push({checked:u,blocks:_(h,t)});let g=r;for(;g<e.length&&(e[g]??``).trim()===``;)g+=1;let v=l.exec(e[g]??``);g>r&&v&&p(e[g]??``)===a&&/\d/.test(v[2][0])===o&&(r=g)}n.push({kind:`list`,ordered:o,start:s,items:c});continue}let S=e[r+1];if(i.includes(`|`)&&S!==void 0&&d.test(S)){let t=h(i),a=h(S).map(g),o=[];for(r+=2;r<e.length&&(e[r]??``).trim()!==``&&(e[r]??``).includes(`|`)&&!f(e[r]??``,void 0);)o.push(h(e[r]??``)),r+=1;n.push({kind:`table`,head:t,align:a,rows:o});continue}let C=[i];for(r+=1;r<e.length&&(e[r]??``).trim()!==``&&!f(e[r]??``,e[r+1])&&!u.test(e[r]??``);)C.push(e[r]??``),r+=1;n.push({kind:`p`,lines:C.map(e=>e.trim())})}return n}function v(e,t){let[n,...i]=e.blocks,a=n?.kind===`p`?y(n.lines,t):n===void 0?null:b(n,0,t);return(0,r.jsxs)(r.Fragment,{children:[e.checked===null?null:(0,r.jsx)(`input`,{type:`checkbox`,checked:e.checked,disabled:!0,readOnly:!0,className:`oo-markdown__task`}),a,i.map((e,n)=>b(e,n+1,t))]})}function y(e,t){return e.map((i,a)=>(0,r.jsxs)(n.Fragment,{children:[D(i,t),a<e.length-1?(0,r.jsx)(`br`,{}):null]},a))}function b(e,t,n){switch(e.kind){case`h`:{let i=`h${e.level}`;return(0,r.jsx)(i,{children:D(e.text,n)},t)}case`p`:return(0,r.jsx)(`p`,{children:y(e.lines,n)},t);case`hr`:return(0,r.jsx)(`hr`,{},t);case`quote`:return(0,r.jsx)(`blockquote`,{children:e.blocks.map((e,t)=>b(e,t,n))},t);case`list`:{let i=e.items.map((e,t)=>(0,r.jsx)(`li`,{"data-task":e.checked===null?void 0:`true`,children:v(e,n)},t));return e.ordered?(0,r.jsx)(`ol`,{start:e.start===1?void 0:e.start,children:i},t):(0,r.jsx)(`ul`,{children:i},t)}case`code`:return(0,r.jsx)(`pre`,{"data-lang":e.lang||void 0,children:(0,r.jsx)(`code`,{children:j(e.lang,e.body)})},t);case`table`:{let i=e.head.length,a=(e,t)=>e[t]??``,o=t=>{let n=e.align[t];return n?{textAlign:n}:void 0};return(0,r.jsx)(`div`,{className:`oo-markdown__table`,children:(0,r.jsxs)(`table`,{children:[(0,r.jsx)(`thead`,{children:(0,r.jsx)(`tr`,{children:e.head.map((e,t)=>(0,r.jsx)(`th`,{style:o(t),children:D(e,n)},t))})}),(0,r.jsx)(`tbody`,{children:e.rows.map((e,t)=>(0,r.jsx)(`tr`,{children:Array.from({length:i},(t,i)=>(0,r.jsx)(`td`,{style:o(i),children:D(a(e,i),n)},i))},t))})]})},t)}}}var x=e=>`oo-fn-${e.replace(/[^\w-]/g,`_`)}`;function S(e){let t=e.trim(),n=/^([a-z][a-z0-9+.-]*):/i.exec(t);return n===null||/^(https?|mailto|file|vscode|ahp[a-z-]*)$/i.test(n[1])?t:null}var C=e=>/^(https?|mailto):/i.test(e)?`web`:`local`;function w(e,t,n,r){let i=0;for(let a=t;a<e.length;a+=1){if(e[a]===`\\`){a+=1;continue}if(e[a]===n)i+=1;else if(e[a]===r&&(--i,i===0))return a}return-1}var T=/[!-/:-@[-`{-~]/,E=/[\p{L}\p{N}]/u;function D(e,t){let i=[],a=0,o=``,s=0;function c(){o&&=(i.push(o),``)}function l(e){c(),i.push((0,r.jsx)(n.Fragment,{children:e},s++))}function u(t){if(e.slice(a,a+t.length)!==t)return null;let n=e[a+t.length];if(n===void 0||n===` `||n===t[0]||t[0]===`_`&&a>0&&E.test(e[a-1]))return null;let r=a+t.length+1;for(;r<=e.length;){let n=e.indexOf(t,r);if(n<0)return null;let i=e[n-1],o=e[n+t.length];if(i!==` `&&!(t[0]===`_`&&o!==void 0&&E.test(o))&&o!==t[0])return{inner:e.slice(a+t.length,n),end:n+t.length};r=n+1}return null}for(;a<e.length;){let n=e[a];if(n===`\\`&&a+1<e.length&&T.test(e[a+1])){o+=e[a+1],a+=2;continue}if(n==="`"){let t=1;for(;e[a+t]==="`";)t+=1;let n="`".repeat(t),i=e.indexOf(n,a+t);if(i>0){let n=e.slice(a+t,i);n.startsWith(` `)&&n.endsWith(` `)&&n.trim()!==``&&(n=n.slice(1,-1)),l((0,r.jsx)(`code`,{children:n})),a=i+t;continue}o+=n,a+=t;continue}if(n===`[`&&e[a+1]===`^`){let n=e.indexOf(`]`,a+2),i=n>0?e.slice(a+2,n):``;if(i!==``&&t.notes.has(i)){t.order.includes(i)||t.order.push(i);let e=t.order.indexOf(i)+1;l((0,r.jsx)(`sup`,{className:`oo-markdown__ref`,title:t.notes.get(i),children:e})),a=n+1;continue}}if(n===`[`||n===`!`&&e[a+1]===`[`){let i=n===`!`,o=i?a+1:a,s=w(e,o,`[`,`]`);if(s>0&&e[s+1]===`(`){let n=w(e,s+1,`(`,`)`);if(n>0){let c=e.slice(o+1,s),u=S(e.slice(s+2,n).trim().replace(/\s+"[^"]*"$/,``).replace(/^<(.*)>$/,`$1`));if(i)l(u===null?c:(0,r.jsx)(`img`,{src:u,alt:c}));else if(u===null)l(D(c,t));else{let e=C(u);l((0,r.jsx)(`a`,{href:u,"data-kind":e,...e===`web`?{target:`_blank`,rel:`noreferrer noopener`}:{},children:D(c,t)}))}a=n+1;continue}}}if(n===`<`){let t=/^<((?:https?|mailto):[^\s<>]+)>/i.exec(e.slice(a));if(t){l((0,r.jsx)(`a`,{href:t[1],"data-kind":`web`,target:`_blank`,rel:`noreferrer noopener`,children:t[1]})),a+=t[0].length;continue}}if((n===`h`||n===`H`)&&(a===0||!E.test(e[a-1]))){let t=/^https?:\/\/[^\s<>]*[^\s<>.,;:!?'")\]*_~]/i.exec(e.slice(a));if(t){l((0,r.jsx)(`a`,{href:t[0],"data-kind":`web`,target:`_blank`,rel:`noreferrer noopener`,children:t[0]})),a+=t[0].length;continue}}let i=u(`**`)??u(`__`);if(i){l((0,r.jsx)(`strong`,{children:D(i.inner,t)})),a=i.end;continue}let s=u(`~~`);if(s){l((0,r.jsx)(`del`,{children:D(s.inner,t)})),a=s.end;continue}let c=u(`*`)??u(`_`);if(c){l((0,r.jsx)(`em`,{children:D(c.inner,t)})),a=c.end;continue}o+=n,a+=1}return c(),i}var O={js:`c`,jsx:`c`,ts:`c`,tsx:`c`,mjs:`c`,cjs:`c`,javascript:`c`,typescript:`c`,java:`c`,kotlin:`c`,kt:`c`,scala:`c`,swift:`c`,dart:`c`,c:`c`,h:`c`,cpp:`c`,"c++":`c`,cc:`c`,hpp:`c`,cs:`c`,csharp:`c`,"objective-c":`c`,objc:`c`,go:`c`,golang:`c`,rust:`c`,rs:`c`,php:`c`,zig:`c`,groovy:`c`,proto:`c`,py:`hash`,python:`hash`,rb:`hash`,ruby:`hash`,sh:`hash`,bash:`hash`,zsh:`hash`,shell:`hash`,console:`hash`,yaml:`hash`,yml:`hash`,toml:`hash`,ini:`hash`,conf:`hash`,perl:`hash`,pl:`hash`,r:`hash`,make:`hash`,makefile:`hash`,dockerfile:`hash`,docker:`hash`,nix:`hash`,powershell:`hash`,ps1:`hash`,sql:`sql`,psql:`sql`,mysql:`sql`,sqlite:`sql`,lua:`sql`,haskell:`sql`,hs:`sql`,css:`css`,scss:`css`,less:`css`,html:`markup`,xml:`markup`,svg:`markup`,vue:`markup`,json:`json`,jsonc:`json`,json5:`json`,diff:`diff`,patch:`diff`},k=new Set(`abstract and as assert async await break case catch class const continue def default defer del do elif else enum except export extends extern false final finally fn for foreach from func function go goto if impl implements import in instanceof interface is lambda let loop match mod module mut namespace new nil none None not null or override package pass private protected pub public raise readonly return self Self static struct super switch then this throw throws trait true True False try type typeof undefined union unless unsafe until use using var void when where while with yield fi esac done local echo export select insert update delete into values set create table alter drop index primary key references join left right inner outer on group by order having limit begin end local function nil elseif repeat`.split(` `));function A(e){let t=String.raw`"(?:\\.|[^"\\\n])*"|'(?:\\.|[^'\\\n])*'`,n=String.raw`\b(?:0[xXbBoO][\da-fA-F_]+|\d[\d_]*(?:\.\d+)?(?:[eE][+-]?\d+)?)\b`,r=String.raw`[A-Za-z_$][\w$]*`;switch(e){case`c`:return new RegExp(String.raw`(\/\/[^\n]*|\/\*[\s\S]*?\*\/)|(${t}|\x60(?:\\.|[^\x60\\])*\x60)|(${n})|(${r})`,`g`);case`hash`:return new RegExp(String.raw`((?:^|(?<=\s))#[^\n]*)|(${t})|(${n})|(${r})`,`g`);case`sql`:return new RegExp(String.raw`(--[^\n]*|\/\*[\s\S]*?\*\/)|(${t})|(${n})|(${r})`,`g`);case`css`:return new RegExp(String.raw`(\/\*[\s\S]*?\*\/)|(${t})|(#[\da-fA-F]{3,8}\b|-?\d+(?:\.\d+)?(?:px|em|rem|%|vh|vw|s|ms|deg)?)|(@[\w-]+|!important)`,`g`);case`markup`:return new RegExp(String.raw`(<!--[\s\S]*?-->)|(${t})|()(<\/?[\w:-]+|\/?>)`,`g`);case`json`:return new RegExp(String.raw`()("(?:\\.|[^"\\\n])*")|(-?${n})|(\b(?:true|false|null)\b)`,`g`);case`diff`:return null}}function j(e,t){let n=O[e];if(n===void 0)return t;if(n===`diff`)return t.split(`
3
+ `).map((e,t,n)=>{let i=/^(\+\+\+|---|@@|diff |index )/.test(e)?`meta`:e.startsWith(`+`)?`add`:e.startsWith(`-`)?`del`:null,a=t<n.length-1?`
4
+ `:``;return i===null?e+a:(0,r.jsxs)(`span`,{className:`oo-tok-${i}`,children:[e,a]},t)});let i=A(n);if(i===null)return t;let a=[],o=0,s=0;for(let e of t.matchAll(i)){let i=e.index??0,[,c,l,u,d]=e,f=null;if(c)f=`comment`;else if(l)f=`string`;else if(u)f=`number`;else if(d){let e=n===`c`||n===`hash`||n===`sql`,t=k.has(d)||n===`sql`&&k.has(d.toLowerCase());f=!e||t?`keyword`:null}f!==null&&(i>o&&a.push(t.slice(o,i)),a.push((0,r.jsx)(`span`,{className:`oo-tok-${f}`,children:e[0]},s++)),o=i+e[0].length)}return o<t.length&&a.push(t.slice(o)),a}export{i as t};
@@ -0,0 +1 @@
1
+ .oo-markdown{color:inherit;font-size:var(--oo-font-size-md);overflow-wrap:anywhere;line-height:1.6}.oo-markdown>:first-child{margin-top:0}.oo-markdown>:last-child{margin-bottom:0}.oo-markdown h1{margin:12px 0 6px;font-size:22px;font-weight:700}.oo-markdown h2{margin:16px 0 6px;font-size:18px;font-weight:600}.oo-markdown h3{margin:12px 0 4px;font-size:15px;font-weight:600}.oo-markdown h4,.oo-markdown h5,.oo-markdown h6{margin:10px 0 4px;font-size:1em;font-weight:600}.oo-markdown h6{color:var(--oo-color-muted)}.oo-markdown p{margin:6px 0 10px}.oo-markdown ul,.oo-markdown ol{margin:6px 0 10px;padding-left:22px}.oo-markdown li{margin-bottom:3px}.oo-markdown li>ul,.oo-markdown li>ol{margin:3px 0 0}.oo-markdown li>p{margin:3px 0}.oo-markdown li[data-task]{list-style:none}.oo-markdown__task{vertical-align:middle;margin:0 6px 0 -18px}.oo-markdown a{color:var(--oo-color-accent);text-decoration:none}.oo-markdown a:hover{text-decoration:underline}.oo-markdown a[data-kind=local]{font-family:var(--oo-font-mono);font-size:.92em}.oo-markdown del{color:var(--oo-color-muted)}.oo-markdown img{max-width:100%}.oo-markdown hr{border:0;border-top:1px solid var(--oo-color-border);margin:12px 0}.oo-markdown blockquote{border-left:3px solid var(--oo-color-border);color:var(--oo-color-muted);margin:6px 0 10px;padding:2px 0 2px 12px}.oo-markdown code{font-family:var(--oo-font-mono);color:var(--oo-color-accent);background:var(--oo-color-active);border-radius:3px;padding:1px 5px;font-size:.92em}.oo-markdown pre{background:var(--oo-color-active);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-md,8px);padding:var(--oo-spacing-md);font-size:12px;font-family:var(--oo-font-mono);margin:6px 0 10px;overflow-x:auto}.oo-markdown pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.oo-markdown__table{margin:6px 0 10px;overflow-x:auto}.oo-markdown table{border-collapse:collapse;font-size:.95em}.oo-markdown th,.oo-markdown td{border:1px solid var(--oo-color-border);text-align:left;vertical-align:top;padding:4px 10px}.oo-markdown th{background:var(--oo-color-active);font-weight:600}.oo-markdown__ref{color:var(--oo-color-accent);cursor:help;padding:0 1px}.oo-markdown__notes{border-top:1px solid var(--oo-color-border);color:var(--oo-color-muted);margin:12px 0 0;padding:8px 0 0 22px;font-size:.9em}.oo-markdown .oo-tok-comment{color:var(--oo-color-muted);font-style:italic}.oo-markdown .oo-tok-string{color:color-mix(in srgb, var(--oo-color-green) 75%, var(--oo-color-text))}.oo-markdown .oo-tok-number{color:color-mix(in srgb, var(--oo-color-orange) 75%, var(--oo-color-text))}.oo-markdown .oo-tok-keyword{color:color-mix(in srgb, var(--oo-color-violet) 75%, var(--oo-color-text))}.oo-markdown .oo-tok-add{color:var(--oo-color-success)}.oo-markdown .oo-tok-del{color:var(--oo-color-danger)}.oo-markdown .oo-tok-meta{color:var(--oo-color-info)}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Spinner-B-iOhBZq.js";import{t as i}from"./Markdown-BaxWPZc1.js";import{t as a}from"./Alert-CHZkhmDE.js";import{n as o,t as s}from"./text-DJDdwKmv.js";import{n as c}from"./link-DK7OzQXZ.js";t();var l=e(),u=e=>e.replace(/\/[^/]*$/,``);function d({uri:e}){let t=n(),d=o(e);if(e===void 0)return(0,l.jsx)(a,{tone:`warning`,message:`No file was named.`});let f=(0,l.jsx)(s,{uri:e});return d===null?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(r,{label:`Reading the file`})]}):`error`in d?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(a,{tone:`danger`,title:`Not readable`,message:d.error})]}):d.text===null?(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(`p`,{className:`web-note`,children:`This file is not text.`})]}):(0,l.jsxs)(`div`,{className:`web-file`,children:[f,(0,l.jsx)(`div`,{className:`web-file__body`,children:(0,l.jsx)(`div`,{className:`web-file__doc`,onClick:n=>{let r=n.target.closest(`a`);if(r===null)return;let i=r.getAttribute(`href`)??``;if(i.startsWith(`#`))return;n.preventDefault();let a=c(i,u(e));a===null?/^(https?|mailto):/i.test(i)&&window.open(i,`_blank`,`noopener`):t.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line,end:a.end})},children:(0,l.jsx)(i,{text:d.text})})})]})}export{d as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{o as n}from"./mount-context-DZgEFVFG.js";import{r}from"./Icon-CIQ7doud.js";var i=e(),a=t();function o({open:e,defaultOpen:t,title:o,child:s,children:c,onClose:l,dismissable:u=!0}){let d=n(`open`),[f,p]=(0,a.useState)(e??t??!1);(0,a.useEffect)(()=>{e!==void 0&&p(t=>t===e?t:e)},[e]);function m(){u&&(p(!1),d(!1),l?.())}if(!f)return null;let h=s??c;return(0,i.jsx)(`div`,{onClick:m,style:{position:`fixed`,inset:0,background:`rgba(0,0,0,0.4)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:2e3},children:(0,i.jsxs)(`div`,{onClick:e=>e.stopPropagation(),style:{background:`var(--oo-color-canvas, #fff)`,color:`inherit`,border:`1px solid var(--oo-color-border)`,borderRadius:`var(--oo-radius-sm, 4px)`,padding:16,minWidth:320,maxWidth:`80vw`,maxHeight:`80vh`,overflow:`auto`},children:[o?(0,i.jsxs)(`div`,{style:{fontWeight:600,marginBottom:8,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,i.jsx)(`span`,{children:o}),u?(0,i.jsx)(`button`,{type:`button`,onClick:m,style:{background:`transparent`,border:`none`,cursor:`pointer`,font:`inherit`,color:`inherit`},"aria-label":`Close`,children:r.closePanel}):null]}):null,h]})})}export{o as Modal};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{c as t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useStoreLabel-CK2AU1rh.js";import{V as i}from"./index-Cu7ySznN.js";var a=e();function o(e,t=``){let i=n(),a=e?i.components.get(e.component.component)?.props:void 0;return r(e?.props?.title??a?.title,``,e?.dataContext)||t}function s({mount:e,fallback:t,iconClassName:i,titleClassName:o,style:s}){let c=n(),l=e?c.components.get(e.component.component)?.props:void 0,u=r(e?.props?.title??l?.title,``,e?.dataContext)||(t??``),d=e?.props?.icon??l?.icon;return(0,a.jsxs)(`span`,{title:u,style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0,...s},children:[d?(0,a.jsx)(`span`,{className:i,"aria-hidden":!0,children:d}):null,(0,a.jsx)(`span`,{className:o,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:u})]})}function c(e,n){let r=e.components.get(n.component.component)?.props,a=n.props?.title??r?.title;if(a==null)return n.key;if(typeof a==`string`)return a;if(`t`in a)return i(a.t);let o=t(e.store,n.dataContext,a.path);return o==null?n.key:String(o)}export{c as n,o as r,s as t};
@@ -0,0 +1,3 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{f as a,g as o,i as s,w as c,y as l}from"./data-BvTv-4oH.js";import{i as u,n as d,r as f}from"./words-CrqnRMW4.js";import{t as p}from"./emojis-XibTG-gy.js";import{t as m}from"./Alert-CHZkhmDE.js";import{a as h,i as g,n as _,o as v,r as y}from"./Composer-C54KOyHb.js";import{t as b}from"./Text-MPtQvYE-.js";var x=t(),S=e(),C=300;function w({name:e,schema:t,value:n,choices:r,set:i}){let a=t.title||e,o=n??t.default;if(t.type===`boolean`)return(0,S.jsx)(v,{label:a,...t.description===void 0?{}:{title:t.description},value:o===!0,onChange:i});let s=r??(t.enum??[]).map((e,n)=>({value:String(e),label:t.enumLabels?.[n]??String(e)}));if(s.length>0){let e=s.some(e=>e.value===String(o??``))?s:[{value:String(o??``),label:o===void 0?`default`:String(o)},...s];return(0,S.jsx)(y,{label:a,...t.description===void 0?{}:{title:t.description},value:String(o??``),options:e,onChange:e=>i(t.type===`number`?Number(e):e)})}return(0,S.jsx)(h,{label:a,...t.description===void 0?{}:{title:t.description},value:o==null?``:String(o),onChange:e=>i(t.type===`number`?e===``?void 0:Number(e):e)})}function T({provider:e}){let t=r(),v=n(`$/ahp/agents`)??[],T=n(s),[E,D]=(0,x.useState)(e??``),[O,k]=(0,x.useState)(``),[A,j]=(0,x.useState)(``),[M,N]=(0,x.useState)(``),[P,F]=(0,x.useState)({}),[I,L]=(0,x.useState)(null),[R,z]=(0,x.useState)({}),[B,V]=(0,x.useState)(!1),[H,U]=(0,x.useState)(null),W=(0,x.useRef)(null);(0,x.useEffect)(()=>{E===``&&v[0]!==void 0&&D(v[0].provider)},[v,E]),(0,x.useEffect)(()=>{O===``&&T!=null&&k(d(T))},[T,O]),(0,x.useEffect)(()=>_(W.current),[M]);let G=O.trim()===``?void 0:f(O),K=JSON.stringify([E,G,P]);(0,x.useEffect)(()=>{if(E===``)return;let e=!0,t=window.setTimeout(()=>{c(`resolveSessionConfig`,{channel:a,provider:E,...G===void 0?{}:{workingDirectory:G},config:P}).then(t=>{if(!e)return;let n=t;L({schema:n.schema.properties,values:n.values})}).catch(()=>{e&&L(null)})},C);return()=>{e=!1,window.clearTimeout(t)}},[K]);let q=Object.entries(I?.schema??{}).filter(([,e])=>e.enumDynamic===!0).map(([e])=>e).join(`
2
+ `);(0,x.useEffect)(()=>{if(q===``)return;let e=!0;for(let t of q.split(`
3
+ `))c(`sessionConfigCompletions`,{channel:a,provider:E,...G===void 0?{}:{workingDirectory:G},config:P,property:t}).then(n=>{let r=n.items;e&&z(e=>({...e,[t]:r.map(e=>({value:e.value,label:e.label}))}))}).catch(()=>void 0);return()=>{e=!1}},[q,E,G]);let J=v.find(e=>e.provider===E),Y=(0,x.useMemo)(()=>Object.entries(I?.schema??{}).filter(([e,t])=>t.readOnly!==!0&&e!==`model`),[I]),X=I?.schema.model,Z=X===void 0?(J?.models??[]).map(e=>({value:e.id,label:e.name})):R.model??(X.enum??[]).map((e,t)=>({value:String(e),label:X.enumLabels?.[t]??String(e)})),Q=async()=>{if(E===``)return;V(!0),U(null);let e=`${E}:/${u()}`,n=M.trim(),{model:r,...i}=P;try{if(await c(`createSession`,{channel:e,provider:E,...G===void 0?{}:{workingDirectories:[G]},...Object.keys(i).length===0?{}:{config:i}}),await t.commands.execute(`ahp.openSession`,{resource:e}),t.surfaces.close(`session:new`),n!==``){let t=(await l(e))?.defaultChat;if(t!==void 0){let e={text:n,origin:{kind:`user`},...A===``?{}:{model:{id:A}}};o(t,{type:`chat/turnStarted`,turnId:u(),startedAt:new Date().toISOString(),message:e})}}}catch(e){U(e instanceof Error?e.message:String(e))}finally{V(!1)}};return v.length===0?(0,S.jsx)(m,{tone:`warning`,message:`This daemon offers no agent.`}):(0,S.jsxs)(`div`,{className:`web-new`,children:[(0,S.jsx)(b,{variant:`h2`,text:`New session`}),J?.description===void 0||J.description===``?null:(0,S.jsx)(`p`,{className:`web-note`,children:J.description}),(0,S.jsxs)(`div`,{className:`web-composer web-new__composer`,children:[(0,S.jsxs)(`div`,{className:`web-composer__chips`,children:[(0,S.jsx)(y,{label:`Agent`,value:E,options:v.map(e=>({value:e.provider,label:e.displayName})),onChange:e=>{D(e),j(``),F({}),z({})}}),Z.length===0?null:(0,S.jsx)(y,{label:`Model`,value:A,options:[{value:``,label:`default`},...Z],onChange:j}),(0,S.jsx)(h,{label:p.folder,title:`A folder on the daemon's machine`,value:O,placeholder:`/path/to/project`,width:220,onChange:k}),Y.map(([e,t])=>(0,S.jsx)(w,{name:e,schema:t,value:P[e]??I?.values[e],choices:R[e],set:t=>F(n=>({...n,[e]:t}))},e)),I===null&&E!==``?(0,S.jsx)(g,{label:`Reading settings`}):null]}),(0,S.jsx)(`div`,{className:`web-composer__bar`,children:(0,S.jsx)(`textarea`,{ref:W,className:`web-composer__text`,rows:3,value:M,"aria-label":`First message`,placeholder:`What should it do? Enter starts the session; leave it empty to start without a message.`,onChange:e=>N(e.currentTarget.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),Q())}})}),(0,S.jsxs)(`div`,{className:`web-composer__actions`,children:[(0,S.jsx)(`span`,{className:`web-composer__hint`,children:`Enter starts, Shift+Enter breaks the line`}),(0,S.jsx)(i,{label:B?`Starting`:M.trim()===``?`Create`:`Start`,variant:`primary`,size:`sm`,disabled:B||E===``,onClick:()=>void Q()})]})]}),H===null?null:(0,S.jsx)(m,{tone:`danger`,title:`Not created`,message:H})]})}export{T as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{G as a,d as o,n as s,w as c}from"./data-BvTv-4oH.js";import{n as l,t as u}from"./words-CrqnRMW4.js";import{t as d}from"./Badge-BDEW5PFb.js";import{t as f}from"./Spinner-B-iOhBZq.js";import{t as p}from"./Markdown-BaxWPZc1.js";import{t as m}from"./Alert-CHZkhmDE.js";import{t as h}from"./Text-MPtQvYE-.js";import{t as g}from"./DetailList-Yalgw0YM.js";import{c as _,d as v,l as y,r as b,s as x,u as S}from"./index-Cu7ySznN.js";import{r as C}from"./turn-BoF7W1h6.js";import{t as w}from"./channel-BScxZDq2.js";import{a as T,i as E,r as D,t as O}from"./actions-DTKyI167.js";var k=t(),A=e(),j={running:{tone:`info`,text:`Running`},failed:{tone:`danger`,text:`Last run failed`},on:{tone:`success`,text:`On`},off:{tone:`default`,text:`Off`}},M={pending:{tone:`default`,text:`Waiting`},running:{tone:`info`,text:`Running`},completed:{tone:`success`,text:`Done`},failed:{tone:`danger`,text:`Failed`},cancelled:{tone:`default`,text:`Stopped`}};function N(e){let t=e;if(String(t.kind)!==`trigger`)return`By hand`;let n=t.scheduledFor===void 0?``:` for ${S(t.scheduledFor)}`;return`${t.catchUp===!0?`Catch-up`:`Scheduled`}${n}`}var P=e=>(0,A.jsx)(`span`,{className:`web-lines`,children:e.map((e,t)=>(0,A.jsx)(`span`,{children:e},t))});function F(e){let{definition:t}=e,n=t.session,r=n.workingDirectories??[],i=t.triggers.filter(e=>`schedule`in e),a=t.triggers.filter(e=>!(`schedule`in e)),o=(t.disableConditions??[]).map(e=>`max`in e?`After ${e.max} runs`:`After ${S(e.date)}`),s=[{label:`Agent`,value:n.provider??`The host default`},{label:`Model`,value:n.model?.id??`The agent default`}];r.length>0&&s.push({label:`Folder`,value:P(r.map(l))}),n.config!==void 0&&Object.keys(n.config).length>0&&s.push({label:`Settings`,value:P(Object.entries(n.config).map(([e,t])=>`${e}: ${String(t)}`))});for(let e of i)`schedule`in e&&(s.push({label:`Schedule`,value:P([b(e.schedule.expression),(0,A.jsx)(`span`,{className:`web-method`,children:`${e.schedule.expression} \u{00B7} ${e.schedule.timeZone}`},`raw`)])}),s.push({label:`Missed runs`,value:String(e.misfirePolicy)===`runOnce`?`Run once when back`:`Skipped`}));i.length===0&&a.length===0&&s.push({label:`Schedule`,value:`Run by hand only`});for(let e of a)`schedule`in e||s.push({label:`Event`,value:`${e.title}${e.events.length===0?``:`: ${e.events.map(e=>e.title).join(`, `)}`}`});return o.length>0&&s.push({label:`Turns off`,value:P(o)}),e.nextRunAt!==void 0&&t.enabled&&s.push({label:`Next run`,value:S(e.nextRunAt)}),s.push({label:`Runs`,value:String(e.runCount??e.runs.length)}),(e.customizations?.length??0)>0&&s.push({label:`Customizations`,value:String(e.customizations?.length)}),s.push({label:`Created`,value:S(e.createdAt)},{label:`Changed`,value:S(e.modifiedAt)}),s}function I({resource:e}){let t=r(),{state:l,error:b}=w(o,a),P=n(s),[I,L]=(0,k.useState)(null);if(b!==null)return(0,A.jsx)(m,{tone:`danger`,title:`No automations`,message:b});if(l===void 0)return(0,A.jsx)(f,{label:`Reading the automations`});let R=l.entries.find(t=>t.resource===e);if(R===void 0)return(0,A.jsx)(m,{tone:`warning`,message:`This automation is gone.`});let z=e=>R.operations.map(String).includes(e),B=j[y(R)],V=_(R),H=e=>L(e instanceof Error?e.message:String(e));return(0,A.jsxs)(`div`,{className:`web-page`,children:[(0,A.jsxs)(`div`,{className:`web-page__head`,children:[(0,A.jsxs)(`div`,{className:`web-chat__title`,children:[(0,A.jsx)(h,{variant:`h2`,text:v(R)}),(0,A.jsx)(d,{tone:B.tone,text:B.text})]}),(0,A.jsxs)(`div`,{className:`web-page__actions`,children:[z(`run`)?(0,A.jsx)(i,{label:`Run now`,variant:`primary`,onClick:()=>void E(R).catch(H)}):null,z(`update`)?(0,A.jsx)(i,{label:R.definition.enabled?`Turn off`:`Turn on`,onClick:()=>T(R,!R.definition.enabled)}):null,z(`update`)?(0,A.jsx)(i,{label:`Edit`,onClick:()=>void t.commands.execute(`ahp.editAutomation`,{resource:R.resource})}):null,z(`remove`)?(0,A.jsx)(i,{label:`Delete`,onClick:()=>void D(R)}):null]})]}),I===null?null:(0,A.jsx)(m,{tone:`danger`,message:I}),(0,A.jsx)(g,{items:F(R),columns:2}),(0,A.jsx)(h,{variant:`h3`,text:`Message`}),(0,A.jsx)(`div`,{className:`web-automation__message`,children:(0,A.jsx)(p,{text:R.definition.message.text})}),(0,A.jsx)(h,{variant:`h3`,text:`Runs`}),V.length===0?(0,A.jsx)(`p`,{className:`web-note`,children:`No runs yet.`}):(0,A.jsxs)(`table`,{className:`web-runs`,children:[(0,A.jsx)(`thead`,{children:(0,A.jsxs)(`tr`,{children:[(0,A.jsx)(`th`,{children:`Status`}),(0,A.jsx)(`th`,{children:`How`}),(0,A.jsx)(`th`,{children:`Started`}),(0,A.jsx)(`th`,{children:`Took`}),(0,A.jsx)(`th`,{children:`Tokens`}),(0,A.jsx)(`th`,{})]})}),(0,A.jsx)(`tbody`,{children:V.map(e=>{let n=x(e),r=M[n.status]??{tone:`default`,text:n.status},a=n.status===`running`||n.status===`pending`;return(0,A.jsxs)(`tr`,{children:[(0,A.jsxs)(`td`,{children:[(0,A.jsx)(d,{tone:r.tone,text:r.text}),n.error===void 0?null:(0,A.jsx)(`div`,{className:`web-note`,children:n.error})]}),(0,A.jsx)(`td`,{children:N(e.origin)}),(0,A.jsx)(`td`,{children:S(n.at)}),(0,A.jsx)(`td`,{children:n.took===void 0?``:u(n.took)}),(0,A.jsx)(`td`,{children:n.input===void 0&&n.output===void 0?``:`\u{2191}${C(n.input??0)} \u{2193}${C(n.output??0)}`}),(0,A.jsxs)(`td`,{className:`web-runs__actions`,children:[e.primarySession===void 0?null:(0,A.jsx)(i,{label:`Open session`,size:`sm`,onClick:()=>void t.commands.execute(`ahp.openSession`,{resource:e.primarySession})}),a&&P?.runCancellation!==void 0?(0,A.jsx)(i,{label:`Stop`,size:`sm`,onClick:()=>O(e.resource)}):null]})]},e.resource)})})]}),R.runsNextCursor===void 0?null:(0,A.jsx)(i,{label:`Load older runs`,onClick:()=>void c(`fetchAutomationRuns`,{channel:o,automation:R.resource,cursor:R.runsNextCursor}).catch(H)})]})}export{I as default};
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./Button-_R1oktDz.js";import{F as a,I as o,L as s,V as c,c as l,g as u,q as d,v as f,w as p,z as m}from"./data-BvTv-4oH.js";import{a as h,n as g,t as _}from"./words-CrqnRMW4.js";import{t as v}from"./emojis-XibTG-gy.js";import{t as y}from"./Badge-BDEW5PFb.js";import{t as b}from"./Spinner-B-iOhBZq.js";import{t as x}from"./Markdown-BaxWPZc1.js";import{t as S}from"./Alert-CHZkhmDE.js";import{t as ee}from"./Composer-C54KOyHb.js";import{t as te}from"./Text-MPtQvYE-.js";import{T as C,g as ne,w}from"./index-Cu7ySznN.js";import{a as T,n as E,r as D,t as O}from"./turn-BoF7W1h6.js";import{t as k}from"./channel-BScxZDq2.js";import{n as A,t as j}from"./link-DK7OzQXZ.js";var M=t(),N=(0,M.createContext)(null),P={picked:[],text:``,other:!1};function F(e){return String(e.kind)===`boolean`?[{id:`yes`,label:`Yes`},{id:`no`,label:`No`}]:`options`in e?e.options:[]}function re(e){let t=String(e.kind);return t===`single-select`||t===`multi-select`||t===`boolean`}function I(e){return`allowFreeformInput`in e&&e.allowFreeformInput===!0}function ie(e,t){let n=String(e.kind),r=t.other?t.text.trim():``,i=e=>({state:`submitted`,value:e});if(n===`text`)return t.text.trim()===``?void 0:i({kind:`text`,value:t.text});if(n===`number`||n===`integer`){let e=Number(t.text);return t.text.trim()===``||Number.isNaN(e)?void 0:i({kind:`number`,value:e})}if(n===`boolean`)return t.picked[0]===void 0?void 0:i({kind:`boolean`,value:t.picked[0]===`yes`});if(n===`multi-select`)return t.picked.length===0&&r===``?void 0:i({kind:`selected-many`,value:t.picked,...r===``?{}:{freeformValues:[r]}});let a=t.picked[0];return a===void 0?r===``?void 0:i({kind:`text`,value:r}):i({kind:`selected`,value:a,...r===``?{}:{freeformValues:[r]}})}function ae(e){let t=e?.value;if(t===void 0)return P;let n=t.freeformValues?.[0],r=e=>n===void 0?e:{...e,text:n,other:!0};switch(t.kind){case`text`:return{picked:[],text:String(t.value??``),other:!0};case`number`:return{...P,text:String(t.value??``)};case`boolean`:return{...P,picked:[t.value===!0?`yes`:`no`]};case`selected`:return r({...P,picked:[String(t.value)]});case`selected-many`:return r({...P,picked:Array.isArray(t.value)?t.value.map(String):[]});default:return P}}function oe(e,t){let n=t?.value;if(n===void 0)return`Skipped`;let r=t=>F(e).find(e=>e.id===t)?.label??t,i=n.freeformValues??[];switch(n.kind){case`boolean`:return n.value===!0?`Yes`:`No`;case`selected`:return[r(String(n.value)),...i].join(`, `);case`selected-many`:return[...Array.isArray(n.value)?n.value.map(e=>r(String(e))):[],...i].join(`, `);default:return String(n.value??``)}}var L=e(),R=new Map,se=`The agent has a question`;function ce(e){let t=String(e.kind),n=[];return t===`single-select`&&n.push(`Pick one`),t===`multi-select`&&n.push(`Pick any`),t===`text`&&n.push(`Type an answer`),(t===`number`||t===`integer`)&&n.push(`Type a number`),I(e)&&n.push(`or write your own`),`${n.join(`, `)}${e.required===!0?``:` (optional)`}`}function le({question:e,draft:t,set:n,next:r}){let i=String(e.kind),a=i===`multi-select`,o=e=>{n(a?{...t,picked:t.picked.includes(e)?t.picked.filter(t=>t!==e):[...t.picked,e]}:{...t,picked:[e],other:!1})},s=e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),r())};return re(e)?(0,L.jsxs)(`div`,{className:`web-ask__options`,role:a?`group`:`radiogroup`,children:[F(e).map((e,n)=>{let r=t.picked.includes(e.id);return(0,L.jsxs)(`button`,{type:`button`,className:`web-ask__option`,role:a?`checkbox`:`radio`,"aria-checked":r,"data-on":r,onClick:()=>o(e.id),children:[(0,L.jsx)(`span`,{className:`web-ask__mark`,"data-many":a,"aria-hidden":`true`}),(0,L.jsxs)(`span`,{className:`web-ask__option-body`,children:[(0,L.jsxs)(`span`,{className:`web-ask__option-label`,children:[(0,L.jsx)(`span`,{className:`web-ask__key`,children:n+1}),e.label,e.recommended===!0?(0,L.jsx)(`span`,{className:`web-ask__tag`,children:`Recommended`}):null]}),e.description===void 0?null:(0,L.jsx)(`span`,{className:`web-ask__option-hint`,children:e.description})]})]},e.id)}),I(e)?(0,L.jsxs)(`div`,{className:`web-ask__option web-ask__other`,"data-on":t.other,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-ask__mark`,"data-many":a,role:a?`checkbox`:`radio`,"aria-checked":t.other,"aria-label":`Other`,onClick:()=>n({...t,other:!t.other||!a,...a?{}:{picked:[]}})}),(0,L.jsx)(`input`,{className:`web-field`,value:t.text,placeholder:`Other: write your own answer`,onFocus:()=>{t.other||n({...t,other:!0,...a?{}:{picked:[]}})},onChange:e=>n({...t,text:e.target.value,other:!0,...a?{}:{picked:[]}}),onKeyDown:s})]}):null]}):i===`number`||i===`integer`?(0,L.jsx)(`input`,{className:`web-field`,type:`number`,autoFocus:!0,value:t.text,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s}):(0,L.jsx)(`textarea`,{className:`web-field web-ask__text`,rows:3,autoFocus:!0,value:t.text,placeholder:`Your answer`,onChange:e=>n({...t,text:e.target.value}),onKeyDown:s})}function z({request:e,send:t,live:n,response:r}){let a=e.questions??[],[o,s]=(0,M.useState)(()=>Object.fromEntries(a.map(t=>[t.id,ae(e.answers?.[t.id])]))),[c,l]=(0,M.useState)(0),[u,d]=(0,M.useState)(()=>R.get(e.id)??null),f=Object.fromEntries(a.flatMap(e=>{let t=ie(e,o[e.id]??P);return t===void 0?[]:[[e.id,t]]})),p=a.filter(e=>e.required===!0&&f[e.id]===void 0),m=e.message!==void 0&&e.message!==se?e.message:void 0,h=n=>{let r={response:n,answers:n===`accept`?f:{}};R.set(e.id,r),d(r),t({type:`chat/inputCompleted`,requestId:e.id,response:n,...n===`accept`&&Object.keys(f).length>0?{answers:f}:{}})},g=r??u?.response;if(g!==void 0||!n){let t=u?.answers??e.answers??{};return(0,L.jsxs)(`div`,{className:`web-ask`,"data-done":`true`,children:[(0,L.jsxs)(`div`,{className:`web-ask__head`,children:[(0,L.jsx)(`span`,{className:`web-ask__title`,children:g===`decline`?`Question declined`:g===void 0?`Question not answered`:`Question answered`}),u!==null&&r===void 0&&n?(0,L.jsx)(`span`,{className:`web-note`,children:`Sending to the agent`}):null]}),g===`accept`?(0,L.jsx)(`dl`,{className:`web-ask__summary`,children:a.map(e=>(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{children:e.title??e.message}),(0,L.jsx)(`dd`,{children:oe(e,t[e.id])})]},e.id))}):null]})}let _=a[c],v=c>=a.length-1,y=_===void 0?void 0:f[_.id],b=_!==void 0&&_.required===!0&&y===void 0,S=()=>{b||(v?p.length===0&&h(`accept`):l(c+1))};return(0,L.jsxs)(`div`,{className:`web-ask`,tabIndex:-1,onKeyDown:e=>{let t=e.target;if(_===void 0||t.closest(`input, textarea`)!==null||!/^[1-9]$/.test(e.key))return;let n=F(_)[Number(e.key)-1];if(n===void 0)return;let r=o[_.id]??P,i=String(_.kind)===`multi-select`,a=i?r.picked.includes(n.id)?r.picked.filter(e=>e!==n.id):[...r.picked,n.id]:[n.id];s({...o,[_.id]:{...r,picked:a,...i?{}:{other:!1}}})},children:[(0,L.jsxs)(`div`,{className:`web-ask__head`,children:[(0,L.jsxs)(`span`,{className:`web-ask__title`,children:[(0,L.jsx)(`span`,{className:`web-ask__icon`,"aria-hidden":`true`,children:`?`}),m===void 0?`The agent asks`:`The agent asks:`]}),a.length>1?(0,L.jsxs)(`span`,{className:`web-ask__steps`,"aria-label":`Question ${c+1} of ${a.length}`,children:[a.map((e,t)=>(0,L.jsx)(`button`,{type:`button`,className:`web-ask__step`,"data-here":t===c,"data-done":f[e.id]!==void 0,title:e.title??e.message,onClick:()=>l(t)},e.id)),(0,L.jsxs)(`span`,{className:`web-ask__count`,children:[c+1,` of `,a.length]})]}):null]}),m===void 0?null:(0,L.jsx)(`div`,{className:`web-ask__message`,children:(0,L.jsx)(x,{text:m})}),e.url===void 0?null:(0,L.jsx)(`a`,{className:`web-link`,href:e.url,target:`_blank`,rel:`noreferrer`,children:e.url}),_===void 0?null:(0,L.jsxs)(`section`,{className:`web-ask__question`,children:[_.title===void 0?null:(0,L.jsx)(`span`,{className:`web-ask__chip`,children:_.title}),(0,L.jsx)(`div`,{className:`web-ask__text-line`,children:_.message}),(0,L.jsx)(`div`,{className:`web-ask__hint`,children:ce(_)}),(0,L.jsx)(le,{question:_,draft:o[_.id]??P,set:e=>s({...o,[_.id]:e}),next:S})]},_.id),(0,L.jsxs)(`div`,{className:`web-ask__actions`,children:[(0,L.jsx)(i,{label:`Decline`,size:`sm`,onClick:()=>h(`decline`)}),(0,L.jsx)(`span`,{className:`web-ask__spacer`}),c>0?(0,L.jsx)(i,{label:`Back`,size:`sm`,onClick:()=>l(c-1)}):null,v?(0,L.jsx)(i,{label:`Answer`,variant:`primary`,size:`sm`,disabled:p.length>0,onClick:()=>h(`accept`)}):(0,L.jsx)(i,{label:`Next`,variant:`primary`,size:`sm`,disabled:b,onClick:S})]}),v&&p.length>0&&!b?(0,L.jsx)(`p`,{className:`web-note`,children:p.length===1?`One question still needs an answer.`:`${p.length} questions still need an answer.`}):null]})}var ue=[`command`,`file_path`,`path`,`pattern`,`query`,`url`,`description`],de=`ahpd.startedAt`,fe=`ahpd.durationMs`;function B(e){let t=`toolInput`in e?e.toolInput:void 0;if(typeof t==`string`&&t.trim()!==``)try{return JSON.parse(t)}catch{return t}}function pe(e){let t=B(e);return t===void 0?``:typeof t==`string`?t:JSON.stringify(t,null,2)}function me(e){let t=B(e);if(typeof t!=`object`||!t)return``;let n=t;for(let e of ue){let t=n[e];if(typeof t==`string`&&t.trim()!==``)return t.trim().split(`
2
+ `)[0]}return``}function he(e){let t=B(e);if(typeof t!=`object`||!t)return;let n=t;for(let e of[`file_path`,`notebook_path`,`path`]){let t=n[e];if(typeof t==`string`&&t.startsWith(`/`))return`file://${t}`}}function ge(e){let t=(e.status===`completed`||e.status===`pending-result-confirmation`?h(e.pastTenseMessage):``)||h(`invocationMessage`in e?e.invocationMessage:void 0)||e.intention||``,n=e.displayName||e.toolName;if(t!==``&&t!==n&&t!==e.toolName)return t;let r=me(e);return r===``?n:`${n} ${r}`}function V(e){let t=e._meta?.[fe];return typeof t==`number`?t:void 0}function _e(e){let t=e._meta?.[de];if(typeof t!=`string`)return;let n=Date.parse(t);return Number.isNaN(n)?void 0:n}var ve={Bash:`terminal`,terminal:`terminal`,shell:`terminal`,Read:`read`,read_file:`read`,NotebookRead:`read`,Glob:`search`,Grep:`search`,WebSearch:`search`,search:`search`,Edit:`edit`,MultiEdit:`edit`,Write:`edit`,NotebookEdit:`edit`,write_file:`edit`,edit_file:`edit`,Task:`subagent`,Agent:`subagent`,WebFetch:`web`,fetch:`web`};function ye(e){let t=e._meta?.toolKind;if(t===`terminal`||t===`read`||t===`search`||t===`subagent`)return t;let n=ve[e.toolName];if(n!==void 0)return n;let r=`content`in e&&Array.isArray(e.content)?e.content:[];return r.some(e=>e.type===`fileEdit`)?`edit`:r.some(e=>e.type===`terminal`)?`terminal`:`other`}function be(e){switch(e.status){case`streaming`:return`preparing`;case`pending-confirmation`:return`approval`;case`running`:return`running`;case`auth-required`:return`sign-in`;case`pending-result-confirmation`:return`review`;case`completed`:return e.success?`done`:`failed`;case`cancelled`:return`cancelled`;default:return`running`}}var xe=e=>e.replace(/\u001b\[[0-9;?]*[ -/]*[@-~]/g,``);function Se(e){let t=`content`in e&&Array.isArray(e.content)?e.content:[],n=[];for(let e of t){let t=String(e.type??``);if(t===`text`&&typeof e.text==`string`&&e.text!==``)n.push({kind:`text`,text:e.text});else if(t===`terminal`){let t=e.result;n.push({kind:`terminal`,title:String(e.title??`Terminal`),text:xe(t?.preview??``),...t?.exitCode===void 0?{}:{exitCode:t.exitCode},truncated:t?.truncated===!0})}else if(t===`fileEdit`){let t=e.before,r=e.after,i=r?.uri??t?.uri??``,a=e.diff;n.push({kind:`file`,path:g(i),file:i,...t?.content?.uri===void 0?{}:{before:t.content.uri},...r?.content?.uri===void 0?{}:{after:r.content.uri},...a?.added===void 0?{}:{added:a.added},...a?.removed===void 0?{}:{removed:a.removed}})}else t===`subagent`?n.push({kind:`note`,text:`Ran ${String(e.agentName??e.title??`a subagent`)}`}):t===`resource`&&n.push({kind:`note`,text:`Read ${g(String(e.uri??``))}`})}if(e.status===`completed`||e.status===`pending-result-confirmation`){let t=e.error?.message.trim(),r=n.some(e=>(e.kind===`text`||e.kind===`terminal`)&&t!==void 0&&e.text.includes(t));t!==void 0&&t!==``&&!r&&n.push({kind:`note`,text:t})}if(e.status===`cancelled`){let t=h(e.reasonMessage)||{denied:`Denied.`,skipped:`Skipped.`,"result-denied":`Result rejected.`}[String(e.reason)]||`Cancelled.`;n.push({kind:`note`,text:t})}return n}var Ce=/\[([^\]]+)\]\(([^)\s]+)\)|`([^`]+)`/g;function we(e,t){let n=[],r=0;for(let t of e.matchAll(Ce))t.index>r&&n.push({text:e.slice(r,t.index)}),t[1]===void 0?n.push({text:t[3],href:t[3],code:!0}):n.push({text:t[1],href:t[2]}),r=t.index+t[0].length;if(n.length>0)return r<e.length&&n.push({text:e.slice(r)}),n;let i=t?.replace(/^file:\/\//,``),a=i===void 0?-1:e.indexOf(i);return i===void 0||a<0?[{text:e}]:[...a>0?[{text:e.slice(0,a)}]:[],{text:i,href:t},...a+i.length<e.length?[{text:e.slice(a+i.length)}]:[]]}var H=`pending-confirmation`,Te=`pending-result-confirmation`,U={preparing:{glyph:v.pending,label:`Preparing`},approval:{glyph:v.waiting,label:`Needs approval`},running:{glyph:v.running,label:`Running`},"sign-in":{glyph:v.waiting,label:`Needs sign-in`},review:{glyph:v.waiting,label:`Review result`},done:{glyph:v.check,label:`Done`},failed:{glyph:v.cross,label:`Failed`},cancelled:{glyph:v.cross,label:`Cancelled`}};function Ee(){let e=r(),t=(0,M.useContext)(N);return n=>{let r=n.target,i=r.closest(`a`);if(i!==null){let r=i.getAttribute(`href`)??``,a=A(r,t);n.preventDefault(),a===null?/^(https?|mailto):/i.test(r)&&window.open(r,`_blank`,`noopener`):e.commands.execute(`ahp.openFile`,{uri:a.uri,line:a.line,end:a.end});return}let a=r.closest(`code`);if(a===null||a.closest(`pre`)!==null)return;let o=j(a.textContent??``,t);o!==null&&f(o.uri).then(t=>{t===`file`&&e.commands.execute(`ahp.openFile`,{uri:o.uri,line:o.line,end:o.end})})}}var De={terminal:v.terminal,read:v.read,search:v.search,edit:v.edit,subagent:v.subagent,web:v.web,other:v.dot};function Oe({line:e,file:t}){let n=r(),i=(0,M.useContext)(N);return(0,L.jsx)(`span`,{className:`web-tool__line`,children:we(e,t).map((e,t)=>{let r=e.href===void 0?null:e.code===!0?j(e.href,i):A(e.href,i);if(r===null)return e.code===!0?(0,L.jsx)(`code`,{children:e.text},t):(0,L.jsx)(`span`,{children:e.text},t);let a=e=>{e.stopPropagation(),e.preventDefault(),n.commands.execute(`ahp.openFile`,{uri:r.uri,line:r.line,end:r.end})};return(0,L.jsx)(`span`,{role:`link`,tabIndex:0,className:`web-tool__ref`,title:`Open ${g(r.uri)}`,onClick:a,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&a(e)},children:e.text},t)})})}function W({title:e,text:t}){let[n,r]=(0,M.useState)(!1);return(0,L.jsxs)(`section`,{className:`web-tool__block`,children:[(0,L.jsxs)(`div`,{className:`web-tool__block-head`,children:[(0,L.jsx)(`span`,{children:e}),(0,L.jsx)(`button`,{type:`button`,className:`web-tool__copy`,onClick:()=>{navigator.clipboard?.writeText(t).then(()=>{r(!0),window.setTimeout(()=>r(!1),1200)}).catch(()=>void 0)},children:n?`Copied`:`Copy`})]}),(0,L.jsx)(`pre`,{className:`web-tool__pre`,children:t})]})}function ke({out:e}){let t=r();switch(e.kind){case`text`:return(0,L.jsx)(W,{title:`Output`,text:e.text});case`terminal`:return(0,L.jsx)(W,{title:`${e.title}${e.exitCode===void 0?``:` \u{00B7} exit ${e.exitCode}`}${e.truncated?` · cut short`:``}`,text:e.text===``?`No output.`:e.text});case`file`:return(0,L.jsxs)(`p`,{className:`web-tool__file`,children:[(0,L.jsx)(`button`,{type:`button`,className:`web-link`,title:e.before===void 0&&e.after===void 0?`Open the file`:`Open the change`,onClick:()=>void(e.before===void 0&&e.after===void 0?t.commands.execute(`ahp.openFile`,{uri:e.file}):t.commands.execute(`ahp.openDiff`,{file:e.file,...e.before===void 0?{}:{before:e.before},...e.after===void 0?{}:{after:e.after}})),children:e.path}),e.added===void 0?null:(0,L.jsxs)(`span`,{className:`web-diff--add`,children:[`+`,e.added]}),e.removed===void 0?null:(0,L.jsxs)(`span`,{className:`web-diff--remove`,children:[`-`,e.removed]})]});case`note`:return(0,L.jsx)(`p`,{className:`web-note`,children:e.text})}}function G({call:e,send:t,live:n,turnId:a}){let o=be(e),s=n&&(o===`approval`||o===`review`||o===`sign-in`),[c,l]=(0,M.useState)(!1),u=c||s,d=V(e),f=pe(e),p=Se(e),m=e.displayName||e.toolName,h=e.status===H?e.riskAssessment:void 0,v=he(e),y=r();return(0,L.jsxs)(`div`,{className:`web-tool`,"data-outcome":o,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":u,title:U[o].label,onClick:()=>l(!c),children:[(0,L.jsx)(`span`,{className:`web-tool__mark`,"aria-label":U[o].label,children:De[ye(e)]}),(0,L.jsx)(Oe,{line:ge(e),file:v}),o===`failed`||o===`cancelled`?(0,L.jsx)(`span`,{className:`web-tool__state`,children:U[o].label}):null,d===void 0||d<1e3?null:(0,L.jsx)(`span`,{className:`web-tool__time`,children:_(d)})]}),u?(0,L.jsxs)(`div`,{className:`web-tool__body`,children:[(0,L.jsxs)(`dl`,{className:`web-tool__facts`,children:[(0,L.jsx)(`dt`,{children:`Tool`}),(0,L.jsxs)(`dd`,{children:[(0,L.jsx)(`code`,{children:e.toolName}),m===e.toolName?null:` (${m})`]}),(0,L.jsx)(`dt`,{children:`Status`}),(0,L.jsx)(`dd`,{children:U[o].label}),v===void 0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`File`}),(0,L.jsx)(`dd`,{children:(0,L.jsx)(`button`,{type:`button`,className:`web-link`,onClick:()=>void y.commands.execute(`ahp.openFile`,{uri:v}),children:g(v)})})]}),e.intention===void 0?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`Why`}),(0,L.jsx)(`dd`,{children:e.intention})]}),h===void 0||h.status!==`complete`?null:(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`dt`,{children:`Risk`}),(0,L.jsx)(`dd`,{children:`${h.safety}/10 safe \u{00B7} ${h.reason}`})]})]}),f===``?null:(0,L.jsx)(W,{title:`Arguments`,text:f}),p.map((e,t)=>(0,L.jsx)(ke,{out:e},t)),n&&e.status===H?(0,L.jsx)(Ae,{call:e,send:t,turnId:a}):null,n&&e.status===Te?(0,L.jsxs)(`div`,{className:`web-tool__actions`,children:[(0,L.jsx)(i,{label:`Accept result`,variant:`primary`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!0})}),(0,L.jsx)(i,{label:`Reject`,onClick:()=>t({type:`chat/toolCallResultConfirmed`,turnId:a,toolCallId:e.toolCallId,approved:!1})})]}):null]}):null]})}function K({text:e,running:t}){let[n,r]=(0,M.useState)(!1),i=e.replace(/[*_`#>]/g,``).replace(/\s+/g,` `).trim();return(0,L.jsxs)(`div`,{className:`web-tool`,"data-outcome":t?`running`:`thought`,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-tool__row`,"aria-expanded":n,onClick:()=>r(!n),children:[(0,L.jsx)(`span`,{className:`web-tool__mark`,"aria-hidden":`true`,children:v.thinking}),(0,L.jsxs)(`span`,{className:`web-tool__line`,children:[`Thinking: `,i]})]}),n?(0,L.jsx)(`div`,{className:`web-tool__body web-md`,children:(0,L.jsx)(x,{text:e})}):null]})}function Ae({call:e,send:t,turnId:n}){let r=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!0,confirmed:`user-action`,...r===void 0?{}:{selectedOptionId:r}}),a=r=>t({type:`chat/toolCallConfirmed`,turnId:n,toolCallId:e.toolCallId,approved:!1,reason:`denied`,...r===void 0?{}:{selectedOptionId:r}}),o=e.status===H?e.options??[]:[],s=e.status===H?h(e.confirmationTitle):``;return(0,L.jsxs)(`div`,{className:`web-tool__confirm`,children:[s===``?null:(0,L.jsx)(x,{text:s}),(0,L.jsx)(`div`,{className:`web-tool__actions`,children:o.length===0?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(i,{label:`Approve`,variant:`primary`,onClick:()=>r()}),(0,L.jsx)(i,{label:`Deny`,onClick:()=>a()})]}):o.map(e=>(0,L.jsx)(i,{label:e.label,...e.kind===`approve`?{variant:`primary`}:{},onClick:()=>e.kind===`approve`?r(e.id):a(e.id)},e.id))})]})}var je=(0,M.memo)(function({part:e,send:t,live:n,turnId:i}){let a=Ee(),o=r();switch(String(e.kind)){case`markdown`:return`content`in e?(0,L.jsx)(`div`,{className:`web-md`,onClick:a,children:(0,L.jsx)(x,{text:e.content})}):null;case`contentRef`:{let t=`uri`in e?String(e.uri):``;return(0,L.jsx)(`button`,{type:`button`,className:`web-chip`,onClick:()=>void o.commands.execute(`ahp.openFile`,{uri:t}),children:`${v.file} ${g(t).split(`/`).pop()??t}`})}case`reasoning`:return`content`in e&&e.content!==``?(0,L.jsx)(K,{text:e.content,running:!1}):null;case`toolCall`:return`toolCall`in e?(0,L.jsx)(G,{call:e.toolCall,send:t,live:n,turnId:i}):null;case`inputRequest`:return`request`in e?(0,L.jsx)(z,{request:e.request,send:t,live:n,response:`response`in e&&e.response!==void 0?String(e.response):void 0}):null;case`error`:return(0,L.jsx)(S,{tone:`danger`,message:`error`in e&&e.error.message!==``?e.error.message:`The agent reported an error.`});case`systemNotification`:return(0,L.jsx)(`p`,{className:`web-note`,children:`content`in e?h(e.content):``});default:return null}}),Me=new Set([`completed`,`cancelled`]),Ne=new Set([`pending-confirmation`,`pending-result-confirmation`,`auth-required`]);function Pe(e){let t=String(e.kind);if(t===`toolCall`&&`toolCall`in e)return{kind:`tool`,key:e.toolCall.toolCallId,call:e.toolCall};if(t===`reasoning`&&`content`in e){let t=String(e.content);return t.trim()===``?void 0:{kind:`reasoning`,key:`id`in e?String(e.id):``,text:t}}if(!(t===`markdown`&&`content`in e&&String(e.content).trim()===``))return null}function Fe(e,t,n){return e.kind===`tool`?n.ended||Me.has(String(e.call.status)):!(t&&n.live)}function q(e){return e.kind===`tool`&&Ne.has(String(e.call.status))}function Ie(e){return e.kind===`tool`&&`success`in e.call&&e.call.success===!1}function Le(e,t,n){let r=[],i=[],a=[],o=e=>{let n=a[0];if(n!==void 0){let o={kind:`activity`,id:`act:${n.key}`,steps:a,live:e&&t,ended:!t};r.push(o),i.push(o)}a=[]};e.forEach((e,t)=>{let n=Pe(e);if(n!==void 0){if(n!==null){a.push(n);return}o(!1),r.push({kind:`part`,part:e,index:t})}}),o(!0);let s=i.length===1?i[0]:void 0;return s!==void 0&&!t&&n!==void 0&&(s.turnMs=n),r}function Re(e){let t=1/0,n=-1/0;for(let r of e){if(r.kind!==`tool`)continue;let e=_e(r.call),i=V(r.call);if(e===void 0||i===void 0)return;t=Math.min(t,e),n=Math.max(n,e+i)}return n>=t?n-t:void 0}var J=(e,t)=>e===void 0||e<1e3?void 0:t(e);function ze(e,t){let n=[];if(e.done>0){n.push({text:e.done===1?`Completed 1 step`:`Completed ${e.done} steps`}),e.failed>0&&n.push({text:` (${e.failed} failed)`,failed:!0});let r=J(e.took,t);r!==void 0&&n.push({text:` in ${r}`})}let r=e.doing;if(r!==void 0){let e;if(r.what===`thinking`)e=`Thinking`;else{let n=`${r.what===`waiting`?`Waiting on`:`Working on`} ${r.name}`,i=J(r.for,t);e=i===void 0?n:`${n} for ${i}`}n.push({text:n.length>0?` \u{00B7} ${e}`:e})}return n}var Y=new Map,X=new Map;function Z(e,t){t?Y.has(e)||Y.set(e,Date.now()):Y.has(e)&&!X.has(e)&&X.set(e,Date.now())}function Be(e,t){let n=Y.get(e);return n===void 0?void 0:(X.get(e)??t)-n}function Ve(e,t){if(e.kind===`reasoning`)return{what:`thinking`};let n=e.call.displayName||e.call.toolName,r=Be(e.key,t);return{what:q(e)?`waiting`:`working`,name:n,...r===void 0?{}:{for:r}}}function He({group:e,send:t,turnId:n}){let[r,i]=(0,M.useState)(!1),[a,o]=(0,M.useState)(()=>Date.now()),s=e.steps.length-1,c=e.steps.map((t,n)=>Fe(t,n===s,e)),l=c.lastIndexOf(!1),u=l<0?void 0:e.steps[l];Z(e.id,e.live),e.steps.forEach((e,t)=>Z(e.key,!c[t])),(0,M.useEffect)(()=>{if(u===void 0)return;let e=window.setInterval(()=>o(Date.now()),1e3);return()=>window.clearInterval(e)},[u?.key]);let d=e.live&&e.steps.some(q),f=r||d,p=c.filter(Boolean).length,m=u===void 0?a:Y.get(u.key),h=Y.get(e.id),g=e.live?h===void 0||m===void 0?void 0:m-h:Re(e.steps)??Be(e.id,a)??e.turnMs,y=ze({done:p,failed:e.steps.filter(Ie).length,...g===void 0?{}:{took:g},...u===void 0?{}:{doing:Ve(u,a)}},_);return(0,L.jsxs)(`div`,{className:`web-activity`,"data-live":u!==void 0,children:[(0,L.jsxs)(`button`,{type:`button`,className:`web-activity__line`,"aria-expanded":f,onClick:()=>i(!r),children:[(0,L.jsx)(`span`,{children:y.map((e,t)=>e.failed?(0,L.jsx)(`span`,{className:`web-activity__failed`,children:e.text},t):e.text)}),(0,L.jsx)(`span`,{className:`web-activity__chev`,"aria-hidden":`true`,children:f?v.caretDown:v.caretRight})]}),f?(0,L.jsx)(`div`,{className:`web-activity__steps`,children:e.steps.map((r,i)=>r.kind===`tool`?(0,L.jsx)(G,{call:r.call,send:t,live:!e.ended,turnId:n},r.key):(0,L.jsx)(K,{text:r.text,running:!c[i]},r.key))}):null]})}var Ue={cancelled:`Stopped`,error:`Ended with an error`};function We(e){let[t,n]=(0,M.useState)(()=>Date.now());return(0,M.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),t}function Ge({text:e}){let[t,n]=(0,M.useState)(!1);return(0,L.jsx)(`button`,{type:`button`,className:`web-turn__copy`,title:t?`Copied`:`Copy`,"aria-label":t?`Copied`:`Copy the reply`,onClick:()=>{navigator.clipboard?.writeText(e).then(()=>{n(!0),window.setTimeout(()=>n(!1),1200)}).catch(()=>void 0)},children:t?v.check:v.copy})}function Ke({facts:e,state:t,live:n,text:r}){let i=We(n),a=n?e.startedAt===void 0?void 0:i-e.startedAt:e.duration,o=[];return e.startedAt!==void 0&&o.push(T(e.startedAt)),a!==void 0&&o.push(n?`${_(a)} so far`:_(a)),(e.input!==void 0||e.output!==void 0)&&o.push(`\u{2191}${D(e.input??0)} \u{2193}${D(e.output??0)}`),e.cacheRead!==void 0&&e.cacheRead>0&&o.push(`${D(e.cacheRead)} cached`),e.model!==void 0&&o.push(e.model),e.tools>0&&o.push(e.tools===1?`1 tool call`:`${e.tools} tool calls`),(0,L.jsxs)(`div`,{className:`web-turn__facts`,children:[n||r===``?null:(0,L.jsx)(Ge,{text:r}),o.join(` · `),t===void 0||Ue[t]===void 0?null:(0,L.jsx)(`span`,{className:`web-turn__ended`,"data-state":t,children:Ue[t]})]})}var Q=[];function qe({attachments:e}){let t=r();return(0,L.jsx)(`div`,{className:`web-turn__attached`,children:e.map((e,n)=>{let r=e,i=typeof r.uri==`string`&&r.displayKind!==`directory`?r.uri:void 0,a=C(e),o=(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`web-attachment__icon`,children:w(e)}),(0,L.jsx)(`span`,{className:`web-attachment__label`,children:a})]});return i===void 0?(0,L.jsx)(`span`,{className:`web-attachment`,title:a,children:o},n):(0,L.jsx)(`button`,{type:`button`,className:`web-attachment`,title:`Open ${a}`,onClick:()=>void t.commands.execute(`ahp.openFile`,{uri:i}),children:o},n)})})}var $=(0,M.memo)(function({turn:e,live:t,send:n,open:r=Q}){let i=`state`in e?String(e.state):void 0,a=e.responseParts;return(0,L.jsxs)(`article`,{className:`web-turn`,children:[(0,L.jsxs)(`div`,{className:`web-turn__ask`,children:[e.message.text,e.message.attachments===void 0||e.message.attachments.length===0?null:(0,L.jsx)(qe,{attachments:e.message.attachments})]}),(0,L.jsxs)(`div`,{className:`web-turn__answer`,children:[Le(a,t,O(e).duration).map(r=>r.kind===`activity`?(0,L.jsx)(He,{group:r,send:n,turnId:e.id},r.id):(0,L.jsx)(je,{part:r.part,send:n,live:t,turnId:e.id},r.index)),t?r.map(e=>(0,L.jsx)(z,{request:e,send:n,live:!0,response:void 0},e.id)):null,t&&a.length===0?(0,L.jsx)(b,{label:`Working`}):null]}),(0,L.jsx)(Ke,{facts:O(e),...i===void 0?{}:{state:i},live:t,text:E(e)})]})});function Je({chatUri:e,cursor:t}){let[n,r]=(0,M.useState)(!1),[a,o]=(0,M.useState)(null);return(0,L.jsxs)(`div`,{className:`web-chat__older`,children:[(0,L.jsx)(i,{label:n?`Loading`:`Load older turns`,disabled:n,onClick:()=>{r(!0),o(null),p(`fetchTurns`,{channel:e,cursor:t}).catch(e=>o(e instanceof Error?e.message:String(e))).finally(()=>r(!1))}}),a===null?null:(0,L.jsx)(`span`,{className:`web-note`,children:a})]})}function Ye(e,t,n){let r=(0,M.useRef)({turn:void 0,requests:new Map});if(r.current.turn!==n?.id&&(r.current={turn:n?.id,requests:new Map}),n===void 0)return Q;for(let n of e??[])String(n.kind)===`chatInput`&&n.chat===t&&`request`in n&&r.current.requests.set(n.id,n.request);let i=new Set(n.responseParts.flatMap(e=>`request`in e?[e.request.id]:[])),a=[...r.current.requests.values()].filter(e=>!i.has(e.id));return a.length===0?Q:a}function Xe({resource:e}){let t=r(),i=n(l)?.find(t=>t.resource===e),f=k(e,d),p=f.state?.defaultChat??i?.defaultChat,h=k(p,c),g=(0,M.useRef)(null),_=(0,M.useRef)(!0),v=(0,M.useCallback)(e=>{p!==void 0&&u(p,e)},[p]),x=h.state?.turns.length??0,C=Ye(f.state?.inputNeeded,p,h.state?.activeTurn),w=(h.state?.activeTurn?.responseParts??[]).reduce((e,t)=>e+1+(`content`in t&&typeof t.content==`string`?t.content.length:0),0);(0,M.useEffect)(()=>{_.current&&g.current?.scrollIntoView({block:`end`})},[x,w]),(0,M.useEffect)(()=>{e!==void 0&&t.store.get(`$/ahp/activeSession`)===void 0&&t.store.set(ne,e)},[t,e]);let T=i!==void 0&&!m(i.status);if((0,M.useEffect)(()=>{T&&e!==void 0&&u(e,{type:`session/isReadChanged`,isRead:!0})},[T,e,x]),i===void 0)return(0,L.jsx)(S,{tone:`warning`,message:`This session is gone.`});let E=s(i.status),D=String(f.state?.lifecycle??`ready`),O=h.state?.activity??i.activity;return(0,L.jsxs)(`div`,{className:`web-chat`,children:[(0,L.jsx)(`header`,{className:`web-chat__head`,children:(0,L.jsxs)(`div`,{className:`web-chat__title`,children:[(0,L.jsx)(te,{variant:`h2`,text:i.title===``?`Untitled`:i.title}),(0,L.jsx)(y,{tone:o[E],text:a[E]}),O===void 0||O===``?null:(0,L.jsx)(`span`,{className:`web-note`,children:O})]})}),(0,L.jsxs)(`div`,{className:`web-chat__turns`,onScroll:e=>{let t=e.currentTarget;_.current=t.scrollHeight-t.scrollTop-t.clientHeight<48},children:[D===`creating`?(0,L.jsx)(b,{label:`Starting the session`}):null,D===`failed`?(0,L.jsx)(S,{tone:`danger`,title:`The session did not start`,message:f.state?.creationError?.message??`No reason given.`}):null,f.error===null?null:(0,L.jsx)(S,{tone:`danger`,title:`Session not readable`,message:f.error}),h.error===null?null:(0,L.jsx)(S,{tone:`danger`,title:`Chat not readable`,message:h.error}),p!==void 0&&h.state===void 0&&h.error===null?(0,L.jsx)(b,{label:`Reading the chat`}):null,p===void 0||h.state?.turnsNextCursor===void 0?null:(0,L.jsx)(Je,{chatUri:p,cursor:h.state.turnsNextCursor}),(0,L.jsxs)(N.Provider,{value:i.workingDirectories?.[0]??null,children:[h.state?.turns.map(e=>(0,L.jsx)($,{turn:e,live:!1,send:v},e.id)),h.state?.activeTurn===void 0?null:(0,L.jsx)($,{turn:h.state.activeTurn,live:!0,send:v,open:C})]}),h.state!==void 0&&x===0&&h.state.activeTurn===void 0?(0,L.jsx)(`p`,{className:`web-note`,children:`No messages yet.`}):null,(0,L.jsx)(`div`,{ref:g})]}),h.state===void 0||p===void 0?null:(0,L.jsx)(ee,{chatUri:p,activeId:h.state.activeTurn?.id,activeStart:h.state.activeTurn?.startedAt,queued:h.state.queuedMessages,steering:h.state.steeringMessage,draft:h.state.draft,lastModel:h.state.turns.at(-1)?.message.model?.id,config:f.state?.config,summary:i,send:v})]})}export{Xe as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./Button-_R1oktDz.js";import"./data-BvTv-4oH.js";import{t as i}from"./Badge-BDEW5PFb.js";import{t as a}from"./Markdown-BaxWPZc1.js";import{t as o}from"./Alert-CHZkhmDE.js";import{t as s}from"./Text-MPtQvYE-.js";import{t as c}from"./DetailList-Yalgw0YM.js";import{a as l,i as u,n as d,r as f,t as p}from"./words-BMjqrsOT.js";var m=e(),h={disabled:`Turned off by policy`,unconfigured:`Not set up`};function g({provider:e}){let g=n(),_=t(`$/ahp/agents`)??[],v=t(`$/ahp/sessions`)??[],y=_.find(t=>t.provider===e);if(y===void 0)return(0,m.jsx)(o,{tone:`warning`,message:`This daemon no longer offers this agent.`});let b=p(y),x=(y.customizations??[]).map(d),S=l(y),C=v.filter(e=>e.provider===y.provider).length,w=[{label:`Provider`,value:(0,m.jsx)(`code`,{children:y.provider})},{label:`Models`,value:u(y)},{label:`Sessions`,value:String(C)},{label:`Can`,value:b.length===0?`One chat in one folder per session`:b.join(`; `)}];return(0,m.jsxs)(`div`,{className:`web-page`,children:[(0,m.jsxs)(`div`,{className:`web-page__head`,children:[(0,m.jsxs)(`div`,{className:`web-chat__title`,children:[(0,m.jsx)(s,{variant:`h2`,text:y.displayName}),S.some(e=>e.required)?(0,m.jsx)(i,{tone:`warning`,text:`Needs sign-in`}):null]}),(0,m.jsx)(`div`,{className:`web-page__actions`,children:(0,m.jsx)(r,{label:`New session`,variant:`primary`,onClick:()=>void g.commands.execute(`ahp.newSession`,{provider:y.provider})})})]}),y.description===``?null:(0,m.jsx)(a,{text:y.description}),(0,m.jsx)(c,{items:w,columns:2}),(0,m.jsx)(s,{variant:`h3`,text:`Models`}),y.models.length===0?(0,m.jsx)(`p`,{className:`web-note`,children:`This agent lists no models; it picks its own.`}):(0,m.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,m.jsx)(`thead`,{children:(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`th`,{children:`Name`}),(0,m.jsx)(`th`,{children:`Id`}),(0,m.jsx)(`th`,{children:`Limits`}),(0,m.jsx)(`th`,{})]})}),(0,m.jsx)(`tbody`,{children:y.models.map(e=>(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`td`,{children:e.name}),(0,m.jsx)(`td`,{children:(0,m.jsx)(`code`,{children:e.id})}),(0,m.jsx)(`td`,{children:f(e)}),(0,m.jsx)(`td`,{children:e.policyState===void 0?``:h[String(e.policyState)]??``})]},e.id))})]}),x.length===0?null:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(s,{variant:`h3`,text:`Customizations`}),(0,m.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,m.jsx)(`thead`,{children:(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`th`,{children:`Name`}),(0,m.jsx)(`th`,{children:`Kind`}),(0,m.jsx)(`th`,{children:`State`})]})}),(0,m.jsx)(`tbody`,{children:x.map((e,t)=>(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`td`,{children:e.name}),(0,m.jsx)(`td`,{children:e.kind}),(0,m.jsx)(`td`,{children:e.state})]},t))})]})]}),S.length===0?null:(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(s,{variant:`h3`,text:`Sign-in`}),(0,m.jsxs)(`table`,{className:`web-runs web-table`,children:[(0,m.jsx)(`thead`,{children:(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`th`,{children:`Resource`}),(0,m.jsx)(`th`,{children:`Scopes`}),(0,m.jsx)(`th`,{})]})}),(0,m.jsx)(`tbody`,{children:S.map(e=>(0,m.jsxs)(`tr`,{children:[(0,m.jsx)(`td`,{children:e.name}),(0,m.jsx)(`td`,{children:e.scopes}),(0,m.jsx)(`td`,{children:e.required?`Required`:`Optional`})]},e.name))})]})]})]})}export{g as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./useStore-BQkzWMs-.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useI18n-BTsfCYkN.js";var i=e();function a({namespace:e,count:a=`items`,pageSizes:l,always:u=!1}){let d=n(),{t:f}=r(`query`),p=t(`$/${e}/view`),m=t(`$/${e}/query`),h=p?.total??0,g=m?.pageSize??50,_=Math.max(1,Math.ceil(h/g)),v=Math.min(Math.max(1,m?.page??1),_);if(h<=g&&!u&&!l?.length)return null;let y=h===0?0:(v-1)*g+1,b=Math.min(v*g,h),x=t=>d.store.set(`$/${e}/query`,{...m,...t}),S=e=>x({page:Math.min(_,Math.max(1,e))}),C=a===`pages`?f(`pageOf`,{page:v,pages:_,fallback:`{page} / {pages}`}):h===0?f(`noItems`,{fallback:`nothing`}):f(`itemRange`,{first:y,last:b,total:h,fallback:`{first} – {last} of {total}`});return(0,i.jsxs)(`div`,{style:o,children:[(0,i.jsx)(`button`,{style:s,disabled:v<=1,onClick:()=>S(v-1),"aria-label":`Previous`,children:`‹`}),(0,i.jsx)(`span`,{style:{fontSize:12,color:`var(--oo-color-muted, #8a8f98)`,fontVariantNumeric:`tabular-nums`},"aria-live":`polite`,children:C}),(0,i.jsx)(`button`,{style:s,disabled:v>=_,onClick:()=>S(v+1),"aria-label":`Next`,children:`›`}),l&&l.length>0?(0,i.jsx)(`select`,{style:c,value:g,"aria-label":f(`perPage`,{fallback:`Rows per page`}),onChange:e=>x({page:1,pageSize:Number(e.currentTarget.value)}),children:[...new Set([...l,g])].sort((e,t)=>e-t).map(e=>(0,i.jsx)(`option`,{value:e,children:f(`perPageOption`,{size:e,fallback:`{size} / page`})},e))}):null]})}var o={display:`flex`,alignItems:`center`,justifyContent:`center`,gap:10,padding:`6px 8px`,borderTop:`1px solid var(--oo-color-border, #2b2f37)`},s={appearance:`none`,background:`none`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-text, #e6e8eb)`,cursor:`pointer`,width:24,height:24,lineHeight:`20px`},c={appearance:`none`,background:`var(--oo-color-canvas, #14171c)`,border:`1px solid var(--oo-color-border, #2b2f37)`,borderRadius:4,color:`var(--oo-color-muted, #8a8f98)`,cursor:`pointer`,font:`inherit`,fontSize:11,padding:`2px 4px`};export{a as Pagination};
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{t as r}from"./useStore-BQkzWMs-.js";import{n as i}from"./ScenaProvider-6A3TJumQ.js";import{o as a}from"./data-BvTv-4oH.js";import{t as o}from"./emojis-XibTG-gy.js";import{t as s}from"./ActionList-DZ9lLGRe.js";import{a as c,o as l,r as u,u as d}from"./terminal-BSweq0Uj.js";var f=e((e=>{var t=n();function r(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function i(){}var a={d:{f:i,r:function(){throw Error(r(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for(`react.portal`),s=Symbol.for(`react.recoverable`),c=Symbol.for(`react.optimistic_key`);function l(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:r==null?null:r===c?c:``+r,children:e,containerInfo:t,implementation:n}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function d(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,e.browser=function(e){return{$$typeof:s,_reason:e}},e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(r(299));return l(e,t,null,n)},e.flushSync=function(e){var t=u.T,n=a.p;try{if(u.T=null,a.p=2,e)return e()}finally{u.T=t,a.p=n,a.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,a.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&a.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin),i=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?a.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:i,fetchPriority:o}):n===`script`&&a.d.X(e,{crossOrigin:r,integrity:i,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=d(t.as,t.crossOrigin);a.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??a.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=d(n,t.crossOrigin);a.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=d(t.as,t.crossOrigin);a.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else a.d.m(e)}},e.requestFormReset=function(e){a.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return u.H.useFormState(e,t,n)},e.useFormStatus=function(){return u.H.useHostTransitionStatus()},e.version=`19.3.0`})),p=e(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=f()})),m=n(),h=p(),g=o.terminal;function _(e,t){let n=l(e.claim,t);return n.kind===`you`?`Yours`:n.kind===`session`?`Held by a session`:`Held by another client`}function v(e,t){if(!c(e))return _(e,t);let n=u(e);return`${_(e,t)}, exited${n===null?``:` with ${n}`}`}function y(e,t){let n=e.store.get(a),r=t.trim().toLowerCase();return(n?.terminals??[]).filter(e=>r===``||`terminal ${d(e)}`.toLowerCase().includes(r)).map(t=>({title:`Terminal: ${d(t)}`,description:v(t,n?.clientId??null),icon:g,group:`Terminals`,onSelect:n=>{n.closeMenu(),e.commands.execute(`ahp.openTerminal`,{uri:t.resource})}}))}var b=t(),x=`$/ahp/palette/open`,S=`ahp:palette`;function C(){return r(`$/ahp/palette/open`)===!0?(0,h.createPortal)((0,b.jsx)(w,{}),document.body):null}function w(){let e=i(),[t,n]=(0,m.useState)(``),o=(0,m.useRef)(null),c=()=>e.store.set(x,!1),l=(0,m.useMemo)(()=>({pushList:()=>void 0,replaceList:()=>void 0,openInline:()=>void 0,openPopover:()=>void 0,back:()=>void 0,closeMenu:c,keepOpen:()=>void 0,insertAtCursor:()=>void 0,replaceActiveToken:()=>void 0,query:``}),[]),u=r(a),d=(0,m.useMemo)(()=>({query:{slot:S,q:t},extraItems:y(e,t)}),[e,t,u]);return(0,b.jsx)(`div`,{className:`web-palette`,onMouseDown:e=>{e.target===e.currentTarget&&c()},children:(0,b.jsxs)(`div`,{className:`web-palette__box`,role:`dialog`,"aria-label":`Command palette`,onClick:e=>{e.target.closest(`.oo-action-list__row`)!==null&&c()},children:[(0,b.jsx)(`input`,{className:`web-field web-palette__input`,autoFocus:!0,value:t,placeholder:`Type a command or a terminal`,"aria-label":`Command`,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{if(e.key===`Escape`){e.preventDefault(),c();return}o.current?.handleKey(e)===!0&&e.key===`Enter`&&c()}}),(0,b.jsx)(s,{spec:d,hostCtx:l,manageKeys:!1,ref:o})]})})}export{p as a,g as i,S as n,C as r,x as t};
@@ -0,0 +1 @@
1
+ .porta-locked{gap:var(--oo-spacing-md);padding:var(--oo-spacing-md);border:1px dashed var(--oo-color-border);border-radius:var(--oo-radius-sm);background:var(--oo-color-surface);flex-direction:column;display:flex}.porta-locked__title{color:var(--oo-color-muted);font-weight:600;font-size:var(--oo-font-size-sm)}
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./LoginForm-C7ZmFVLz.js","./jsx-runtime-BguD1OXD.js","./react-CybPckBe.js","./useStore-BQkzWMs-.js","./ScenaProvider-6A3TJumQ.js","./mount-context-DZgEFVFG.js","./useI18n-BTsfCYkN.js","./index-Cu7ySznN.js","./Palette-CEQLzNFd.js","./data-BvTv-4oH.js","./emojis-XibTG-gy.js","./ActionList-DZ9lLGRe.js","./colors-BieSUSt7.js","./ActionList-Bawu-Lja.css","./terminal-BSweq0Uj.js","./styles-yrzHRgom.js","./surface-presentation-CT86pw6J.js","./preload-helper-BaNbYf_w.js","./sigillum-Bev0l9LS.js","./Button-_R1oktDz.js","./_utils-DZVsX11M.js","./Button-CRZ1_3KW.css","./words-CrqnRMW4.js","./index-DgTMhxdP.css","./LoginForm-BJhoxJyJ.css","./_field-parts-CfQcSJYh.css"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./useStore-BQkzWMs-.js";import{t as r}from"./preload-helper-BaNbYf_w.js";import{t as i}from"./sigillum-Bev0l9LS.js";import{P as a}from"./index-Cu7ySznN.js";var o=t(),s=e(),c=(0,o.lazy)(()=>r(()=>import(`./LoginForm-C7ZmFVLz.js`).then(e=>({default:e.LoginForm})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url));function l({permission:e,fallback:t,title:r,child:l,children:u}){let d=n(i.session)??null;return a(d,e)?l??u:(0,s.jsxs)(`div`,{className:`porta-locked`,children:[(0,s.jsx)(`span`,{className:`porta-locked__title`,children:r??(e?`Sign in required (${e})`:`Sign in required`)}),t??(0,s.jsx)(o.Suspense,{fallback:null,children:(0,s.jsx)(c,{})})]})}export{l as PortaLock,l as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";var t=e();function n(e){return typeof e==`string`}function r(e){let t=e.component.pos;return n(t)&&t===`bottom`?`bottom`:`top`}function i({mounts:e,renderMount:n,presentation:i}){let a=[],o=[];for(let t of e)(r(t)===`bottom`?o:a).push(t);let s=i===`bar`,c=s?`row`:`column`,l=s?{marginLeft:`auto`}:{marginTop:`auto`};return(0,t.jsxs)(`div`,{className:`oo-layout oo-layout--rail`,"data-orientation":s?`horizontal`:`vertical`,style:{display:`flex`,flexDirection:c,height:s?void 0:`100%`,width:s?`100%`:void 0,alignItems:s?`center`:void 0},children:[(0,t.jsx)(`div`,{className:`oo-rail__top`,style:{display:`flex`,flexDirection:c},children:a.map(e=>(0,t.jsx)(`div`,{style:{display:`contents`},children:n(e)},e.key))}),(0,t.jsx)(`div`,{className:`oo-rail__bottom`,style:{display:`flex`,flexDirection:c,...l},children:o.map(e=>(0,t.jsx)(`div`,{style:{display:`contents`},children:n(e)},e.key))})]})}export{i as RailLayout};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{n as t,r as n,t as r}from"./_utils-DZVsX11M.js";var i=e();function a({children:e,justify:a=`start`,align:o=`stretch`,weight:s,gap:c,wrap:l=!1,style:u}){return(0,i.jsx)(`div`,{className:`oo-row`,"data-align":r(o),"data-weight":s,"data-justify":t(a),style:{...n(s)},children:(0,i.jsx)(`section`,{style:{flexWrap:l?`wrap`:`nowrap`,justifyContent:t(a,u?.justifyContent),alignItems:r(o,u?.alignItems),"--oo-row-gap":c===void 0?void 0:typeof c==`number`?`${c}px`:c,...u},children:e})})}export{a as Row};
@@ -0,0 +1 @@
1
+ .oo-row{--oo-row-gap:var(--oo-spacing-md);display:flex}.oo-row>section{gap:var(--oo-row-gap,var(--oo-spacing-md));flex-direction:row;width:100%;min-height:100%;display:flex}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";var n=e(),r=t(),i=(0,r.createContext)(null);function a({scena:e,children:t}){return(0,n.jsx)(i.Provider,{value:e,children:t})}function o(){let e=(0,r.useContext)(i);if(!e)throw Error(`useScena must be used inside <ScenaProvider> or <Scena>`);return e}export{o as n,a as t};
@@ -0,0 +1 @@
1
+ .oo-schema-form{gap:var(--oo-spacing-md);flex-direction:column;display:flex}.oo-schema-form__modebar{gap:var(--oo-spacing-xs);align-self:flex-end;display:flex}.oo-schema-form__modebar button{font:inherit;font-size:var(--oo-font-size-xs);padding:2px var(--oo-spacing-sm);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);color:inherit;cursor:pointer;background:0 0}.oo-schema-form__modebar button[data-active=true]{background:var(--oo-color-active);border-color:var(--oo-color-accent)}.oo-schema-form__modebar .oo-schema-form__reset{color:var(--oo-color-warning);border-color:var(--oo-color-warning)}.oo-schema-form__json{box-sizing:border-box;width:100%;font-family:var(--oo-font-mono);font-size:var(--oo-font-size-xs);resize:vertical;padding:var(--oo-spacing-sm);border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);background:var(--oo-color-canvas);color:inherit}.oo-schema-form__empty{font-size:var(--oo-font-size-xs);color:var(--oo-color-muted);font-style:italic}.oo-schema-form__union{gap:var(--oo-spacing-sm);flex-direction:column;display:flex}.oo-schema-form__array{gap:var(--oo-spacing-xs);flex-direction:column;display:flex}.oo-schema-form__array-item{gap:var(--oo-spacing-xs);align-items:flex-start;display:flex}.oo-schema-form__array-control{flex:1}.oo-schema-form__array-remove{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);color:var(--oo-color-danger);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);cursor:pointer;background:0 0;font-weight:700}.oo-schema-form__array-add{border:1px solid var(--oo-color-border);border-radius:var(--oo-radius-sm);color:inherit;padding:var(--oo-spacing-xs) var(--oo-spacing-sm);cursor:pointer;background:0 0;align-self:flex-start}
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./jsx-runtime-BguD1OXD.js";import{t as n}from"./react-CybPckBe.js";import{o as r,r as i}from"./mount-context-DZgEFVFG.js";import{t as a}from"./Markdown-BaxWPZc1.js";import{r as o}from"./Icon-CIQ7doud.js";import{t as s}from"./TextField-DnSHrmJM.js";import{t as c}from"./CheckBox-Dkn59EbO.js";import{t as l}from"./ChoicePicker-Cg4Cj6B2.js";import{t as u}from"./Form-D7L1aboH.js";import{t as d}from"./Field-CJtqXD7H.js";import{t as f}from"./FormSection-BmWfSm92.js";var p=n(),m=t();function h(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function g(e,t){if(e===t)return!0;if(e===null||t===null||typeof e!=typeof t)return!1;if(Array.isArray(e)||Array.isArray(t))return!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>g(e,t[n]));if(typeof e==`object`&&typeof t==`object`){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&g(e[n],t[n]))}return!1}function _(e){let t=e.type;if(Array.isArray(t))return t.find(e=>e!==`null`)??`string`;if(!t&&Array.isArray(e.oneOf)){let t=e.oneOf.find(e=>e.type&&e.type!==`null`)?.type;if(t)return t}if(!t&&Array.isArray(e.anyOf)){let t=e.anyOf.find(e=>e.type&&e.type!==`null`)?.type;if(t)return t}return!t&&e.items?`array`:!t&&e.properties?`object`:t??`string`}function v(e){return Array.isArray(e.oneOf)&&e.oneOf.length>0?e.oneOf:Array.isArray(e.anyOf)&&e.anyOf.length>0?e.anyOf:[]}function y(e){return v(e).map(t=>({...t,description:t.description??e.description}))}function b(e){return e.items?Array.isArray(e.items)?null:e.items:{type:`string`}}function x(e){let t=v(e);if(t.length>0)return x(t[0]);if(e.default!==void 0)return e.default;if(e.const!==void 0)return e.const;let n=_(e);if(n===`boolean`)return!1;if(n===`number`||n===`integer`)return 0;if(n===`array`)return[];if(n===`object`){let t={},n=e.properties??{},r=new Set(e.required??[]);for(let[e,i]of Object.entries(n))(i.default!==void 0||i.const!==void 0||r.has(e))&&(t[e]=x(i));return t}return``}function S(e){return typeof e==`string`?e.replace(/\s*\[textarea(?::\d+)?\]/,``):e}function C(e){if(e.format===`textarea`)return 4;let t=e.description?.match(/\[textarea(?::(\d+))?\]/);return t?t[1]?parseInt(t[1],10):4:null}var w=e({SchemaForm:()=>E});function T(e,t){return!!(e.format&&t?.[e.format])}function E({schema:e,value:t,defaultValue:n,onChange:o,errors:s,namespace:c,header:l,formatRenderers:v,jsonTextRoot:b,jsonTextFields:x,baseline:C,onDirtyChange:w,style:O}){let k=r(`value`),[A,j]=(0,p.useState)(t??n??{}),[M,N]=(0,p.useState)(`fields`),[P,F]=(0,p.useState)(()=>JSON.stringify(t??n??{},null,2)),I=b??!0,L=x??I,R=(0,p.useRef)(t??n??{}),z=C??R.current,B=!g(A,z);(0,p.useEffect)(()=>{t!==void 0&&j(e=>e===t?e:t)},[t]),(0,p.useEffect)(()=>{w?.(B)},[B]);let V=e.properties;if(!V||Object.keys(V).length===0)return(0,m.jsx)(`div`,{className:`oo-schema-form__empty`,children:`No parameters defined.`});let H=new Set(e.required??[]);function U(e){j(e),k(e),o?.(e)}function W(e,t){U({...A,[e]:t})}function G(){F(JSON.stringify(A,null,2)),N(`json`)}function K(){U(z),F(JSON.stringify(z,null,2))}function q(e,t){let n=t[`x-show-if`];if(n&&A[n.field]!==n.value)return null;let r=_(t),i=(t.enum?.length??0)>0||(t[`x-enumOptions`]?.length??0)>0,a=t=>W(e,t),o={label:t.title??e,hint:S(t.description),required:H.has(e),error:s?.[e],typeTag:i?`enum`:r},l=c?`${c}_${e}`:void 0;return r===`object`&&!i&&!T(t,v)?(0,m.jsx)(f,{title:o.label??e,children:(0,m.jsx)(E,{schema:{type:`object`,properties:t.properties??{},required:t.required??[]},value:h(A[e])?A[e]:{},baseline:h(z[e])?z[e]:{},onChange:a,namespace:l,formatRenderers:v,jsonTextRoot:L})},e):y(t).length>0||r===`array`||T(t,v)?(0,m.jsx)(d,{name:e,label:o.label,hint:o.hint,required:o.required,typeTag:o.typeTag,error:o.error,children:(0,m.jsx)(D,{field:t,value:A[e],onChange:a,required:o.required,error:o.error,namespace:l,formatRenderers:v,jsonTextFields:L})},e):(0,m.jsx)(D,{field:t,value:A[e],onChange:a,meta:o,required:o.required,error:o.error,namespace:l,formatRenderers:v},e)}let J=M===`fields`?Object.entries(V).map(([e,t])=>q(e,t)):null,Y=I||B?(0,m.jsxs)(`div`,{className:`oo-schema-form__modebar`,children:[I?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`button`,{type:`button`,"data-active":M===`fields`,onClick:()=>N(`fields`),children:`fields`}),(0,m.jsx)(`button`,{type:`button`,"data-active":M===`json`,onClick:G,children:`json`})]}):null,B?(0,m.jsx)(`button`,{type:`button`,className:`oo-schema-form__reset`,onClick:K,children:`reset`}):null]}):null,X=M===`json`?(0,m.jsx)(`textarea`,{className:`oo-schema-form__json`,value:P,spellCheck:!1,rows:16,onChange:e=>{F(e.target.value);try{let t=JSON.parse(e.target.value);h(t)&&U(t)}catch{}}}):l?(0,m.jsx)(f,{title:l,children:J}):J;return(0,m.jsx)(u.Provider,{value:{errors:s,namespace:c},children:(0,m.jsx)(i.Provider,{value:null,children:(0,m.jsxs)(`div`,{className:`oo-schema-form`,style:O,children:[e.description?(0,m.jsx)(a,{text:e.description}):null,Y,X]})})})}function D({field:e,value:t,onChange:n,meta:r,required:i,error:a,namespace:o,formatRenderers:u,jsonTextFields:d}){let f=y(e),[g,v]=(0,p.useState)(0);if(f.length>0){let e=f[g]?g:0,r=f[e]??f[0],i=f.map((e,t)=>{let n=_(e),r=e.const===void 0?e.enum&&e.enum.length===1?e.enum[0]:e.title??n:String(e.const);return{value:String(t),label:e.title?`${e.title} (${r})`:r}});return(0,m.jsxs)(`div`,{className:`oo-schema-form__union`,children:[(0,m.jsx)(l,{options:i,value:String(e),onChange:e=>{let t=Number(e),r=Number.isFinite(t)?Math.max(0,Math.min(t,f.length-1)):0;v(r),n(x(f[r]))}}),(0,m.jsx)(D,{field:r,value:t,onChange:n,namespace:o,formatRenderers:u,jsonTextFields:d})]})}if(e.format&&u?.[e.format]){let r=u[e.format];return(0,m.jsx)(r,{value:t,onChange:n,field:e,error:a})}let b=_(e);if(e.enum&&e.enum.length>0||e[`x-enumOptions`]&&e[`x-enumOptions`].length>0){let a=e[`x-enumOptions`],o=a?a.map(e=>({value:e.value,label:e.description?`${e.label} — ${e.description}`:e.label})):e.enum??[],s=i?o:[{value:``,label:`— select —`},...o];return(0,m.jsx)(l,{options:s,value:String(t??e.default??``),onChange:e=>n(e),label:r?.label,hint:r?.hint,error:r?.error,required:r?.required,typeTag:r?.typeTag})}if(b===`boolean`)return(0,m.jsx)(c,{value:!!(t??e.default??!1),onChange:e=>n(e),label:r?.label,hint:r?.hint,error:r?.error,required:r?.required});if(b===`number`||b===`integer`)return(0,m.jsx)(s,{type:`number`,value:t===void 0?``:String(t),min:e.minimum,max:e.maximum,onChange:e=>n(e===``?void 0:Number(e)),label:r?.label,hint:r?.hint,error:r?.error,required:r?.required,typeTag:r?.typeTag});if(b===`color`)return(0,m.jsx)(s,{type:`color`,value:t===void 0?``:String(t),min:e.minimum,max:e.maximum,onChange:e=>n(e===``?void 0:Number(e)),label:r?.label,hint:r?.hint,error:r?.error,required:r?.required,typeTag:r?.typeTag});if(b===`array`)return(0,m.jsx)(O,{field:e,value:t,onChange:n,namespace:o,formatRenderers:u,jsonTextFields:d});if(b===`object`)return(0,m.jsx)(E,{schema:{type:`object`,properties:e.properties??{},required:e.required??[]},value:h(t)?t:{},onChange:e=>n(e),namespace:o,formatRenderers:u,jsonTextRoot:d});let S=C(e);return(0,m.jsx)(s,{type:e.format===`password`?`password`:`text`,multiline:S!==null,rows:S??void 0,value:String(t??e.default??``),onChange:e=>n(e),label:r?.label,hint:r?.hint,error:r?.error,required:r?.required,typeTag:r?.typeTag})}function O({field:e,value:t,onChange:n,namespace:r,formatRenderers:i,jsonTextFields:a}){let c=Array.isArray(t)?t:[],l=b(e);return l?(0,m.jsxs)(`div`,{className:`oo-schema-form__array`,children:[c.map((e,t)=>(0,m.jsxs)(`div`,{className:`oo-schema-form__array-item`,children:[(0,m.jsx)(`div`,{className:`oo-schema-form__array-control`,children:(0,m.jsx)(D,{field:l,value:e,onChange:e=>n(c.map((n,r)=>r===t?e:n)),namespace:r,formatRenderers:i,jsonTextFields:a})}),(0,m.jsx)(`button`,{type:`button`,className:`oo-schema-form__array-remove`,onClick:()=>n(c.filter((e,n)=>n!==t)),"aria-label":`Remove item`,children:o.closePanel})]},t)),(0,m.jsx)(`button`,{type:`button`,className:`oo-btn oo-schema-form__array-add`,onClick:()=>n([...c,x(l)]),children:`+ add item`})]}):(0,m.jsx)(s,{multiline:!0,rows:5,value:JSON.stringify(c,null,2),onChange:e=>{try{let t=JSON.parse(e);Array.isArray(t)&&n(t)}catch{}}})}export{w as n,E as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./Button-_R1oktDz.js";import{Y as r,f as i,g as a}from"./data-BvTv-4oH.js";import{t as o}from"./Spinner-B-iOhBZq.js";import{t as s}from"./Alert-CHZkhmDE.js";import{t as c}from"./Text-MPtQvYE-.js";import{t as l}from"./SchemaForm-D6mGj6Xh.js";import{t as u}from"./channel-BScxZDq2.js";var d=t();function f(e,t){return Object.fromEntries(Object.entries(t).filter(([t,n])=>JSON.stringify(n)!==JSON.stringify(e[t])))}var p=e();function m(){let{state:e,error:t}=u(i,r),m=e?.config,[h,g]=(0,d.useState)({}),[_,v]=(0,d.useState)(!1),y=(0,d.useMemo)(()=>m?.values??{},[m]);if((0,d.useEffect)(()=>{g(y)},[y]),t!==null)return(0,p.jsx)(s,{tone:`danger`,title:`Settings not readable`,message:t});if(e===void 0)return(0,p.jsx)(o,{label:`Reading the settings`});if(m===void 0)return(0,p.jsx)(s,{tone:`info`,message:`This host publishes no settings.`});let b=f(y,h),x=Object.keys(b).length>0;return(0,p.jsxs)(`div`,{className:`web-page`,children:[(0,p.jsx)(c,{variant:`h2`,text:`Host settings`}),(0,p.jsx)(l,{schema:m.schema,value:h,onChange:e=>{g(e),v(!1)},baseline:y}),(0,p.jsxs)(`div`,{className:`web-page__actions`,children:[(0,p.jsx)(n,{label:`Save`,variant:`primary`,disabled:!x,onClick:()=>{a(i,{type:`root/configChanged`,config:b}),v(!0)}}),(0,p.jsx)(n,{label:`Reset`,disabled:!x,onClick:()=>g(y)}),_&&!x?(0,p.jsx)(`span`,{className:`web-note`,children:`Saved.`}):null]})]})}export{m as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./useStore-BQkzWMs-.js";import{t}from"./sigillum-Bev0l9LS.js";import{P as n}from"./index-Cu7ySznN.js";function r({permission:r,fallback:i=null,child:a,children:o}){let s=e(t.session)??null;return n(s,r)?a??o:i}export{r as Sigillum,r as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{n}from"./ScenaProvider-6A3TJumQ.js";import{t as r}from"./useI18n-BTsfCYkN.js";import{t as i}from"./ContextMenu-D3PBPRRl.js";import{r as a}from"./MountTitle-DXPuKAFo.js";import{V as o}from"./index-Cu7ySznN.js";var s=t();function c(e,t){if(e==null)return``;if(typeof e==`string`)return e;if(`t`in e)return t.translate(e.t);if(`path`in e){let n=t.get(e.path);return n==null?``:String(n)}return``}var l=e();function u({title:e,icon:t,color:a,actions:u=[]}){let p=n();r();let[m,h]=(0,s.useState)(null),g=e=>void p.commands.execute(e),_=e=>c(e,{get:e=>p.store.get(e),translate:o}),v=e=>_(e.label),y=_(e);function b(e){e.stopPropagation();let t=e.currentTarget.getBoundingClientRect();h({x:t.right,y:t.bottom+2})}return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(`div`,{className:`oo-section-header`,"data-color":a,style:d,children:[(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[t?(0,l.jsx)(`span`,{className:`oo-section-header__icon`,"aria-hidden":!0,children:t}):null,(0,l.jsx)(`span`,{className:`oo-section-header__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`},children:y})]}),(0,l.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:2},children:[u.map(e=>{let t=v(e);return(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:t,"aria-label":t,onClick:()=>g(e.command),style:f,children:e.icon??t??`•`},e.command)}),u.length?(0,l.jsx)(`button`,{className:`oo-btn oo-btn--icon`,"data-variant":`ghost`,type:`button`,title:`More actions`,"aria-label":`More actions`,onClick:b,style:f,children:`⋯`}):null]})]}),m?(0,l.jsx)(i,{x:m.x,y:m.y,onClose:()=>h(null),spec:{footerHints:!0,items:u.map(e=>({title:v(e)||e.command,icon:e.icon,onSelect:t=>{g(e.command),t.closeMenu()}}))}}):null]})}var d={flex:`0 0 auto`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,background:`var(--oo-color-surface)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,textTransform:`uppercase`,letterSpacing:`0.06em`,userSelect:`none`,minWidth:0,minHeight:32},f={background:`transparent`,border:`none`,font:`inherit`,fontSize:`var(--oo-font-size-sm)`,lineHeight:1,padding:`2px 5px`,borderRadius:4};function p({mounts:e,state:t,renderMount:r}){let i=n(),o=e.find(e=>e.key===t.activeContainerKey)??e[e.length-1],s=o?i.components.get(o.component.component)?.props:void 0,c=o?.props?.title??s?.title,d=a(o,``),f=o?.props?.icon??s?.icon,p=o?.props?.color??s?.color,m=o?.props?.actions??s?.actions,h=!!(c||m&&m.length);return(0,l.jsxs)(`div`,{className:`oo-layout oo-layout--single`,style:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`,minHeight:0},children:[h?(0,l.jsx)(u,{title:d||o?.key||``,icon:f,color:p,actions:m}):null,(0,l.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:e.length===0?(0,l.jsx)(`div`,{style:{padding:24,color:`var(--oo-color-muted)`},children:`Nothing open.`}):e.map(e=>(0,l.jsx)(`div`,{className:`oo-layout__mount`,"data-active":e===o||void 0,style:{position:`absolute`,inset:0,overflow:`auto`,display:e===o?`block`:`none`},children:r(e)},e.key))})]})}export{p as SingleLayout};
@@ -0,0 +1 @@
1
+ .oo-slider{width:100%}.oo-slider__value{margin-left:var(--oo-spacing-sm)}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{o as n}from"./mount-context-DZgEFVFG.js";import{r}from"./_utils-DZVsX11M.js";import{i,n as a,r as o,t as s}from"./_field-parts-BuPjFCuf.js";var c=t(),l=e();function u({value:e,defaultValue:t,min:u=0,max:d=100,step:f=1,label:p,disabled:m,showValue:h=!0,weight:g,checks:_,style:v,hint:y,error:b,required:x,typeTag:S,onChange:C}){let w=n(`value`),[T,E]=(0,c.useState)(e??t??u);(0,c.useEffect)(()=>{e!==void 0&&E(t=>t===e?t:e)},[e]);function D(e){let t=Number(e.currentTarget.value);E(t),w(t),C?.(t)}let O=Number(u),k=Number(d),A=Number.isFinite(O)?O:0,j=Number.isFinite(k)?Math.max(A+1,k):A+100,M=Math.min(typeof f==`number`&&Number.isFinite(f)&&f>0?f:1,Math.min(j-A,1));return(0,l.jsxs)(`label`,{className:`oo-field`,style:r(g),children:[(0,l.jsx)(o,{label:p,required:x,typeTag:S,extra:h?(0,l.jsx)(`span`,{className:`oo-slider__value`,children:T}):null}),(0,l.jsx)(a,{text:y}),(0,l.jsx)(`div`,{className:`oo-control`,children:(0,l.jsx)(`input`,{className:`oo-slider`,type:`range`,value:T,min:u,max:d,step:M,disabled:m,onChange:D,style:v})}),(0,l.jsx)(s,{text:b}),(0,l.jsx)(i,{checks:_})]})}export{u as Slider};
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{t}from"./react-CybPckBe.js";import{t as n}from"./colors-BieSUSt7.js";import{n as r}from"./ScenaProvider-6A3TJumQ.js";import{t as i}from"./ContextMenu-D3PBPRRl.js";import{r as a}from"./Icon-CIQ7doud.js";import{r as o}from"./MountTitle-DXPuKAFo.js";var s=t(),c=e();function l({className:e,style:t,direction:n=`row`,align:r,justify:i,gap:a,children:o}){let s={...t};return r!==void 0&&(s.alignItems=r),i!==void 0&&(s.justifyContent=i),a!==void 0&&(s.gap=a),(0,c.jsx)(`div`,{className:[`oo-toolbar`,e].filter(Boolean).join(` `),"data-direction":n,style:s,children:o})}var u=(0,s.createContext)(null);function d(){let e=(0,s.useContext)(u);if(!e)throw Error(`useCampus() must be used inside <CampusView>`);return e}var f=(0,s.createContext)(1);function p(){return(0,s.useContext)(f)}var m={n:`ns-resize`,s:`ns-resize`,e:`ew-resize`,w:`ew-resize`,ne:`nesw-resize`,sw:`nesw-resize`,nw:`nwse-resize`,se:`nwse-resize`},h={w:80,h:60};function g(e,t,n,r,i,a){let o=t.x,s=t.y,c=t.w,l=t.h;return e.includes(`w`)&&(o=t.x+n,c=t.w-n),e.includes(`e`)&&(c=t.w+n),e.includes(`n`)&&(s=t.y+r,l=t.h-r),e.includes(`s`)&&(l=t.h+r),c<i.w&&(e.includes(`w`)&&(o=t.x+(t.w-i.w)),c=i.w),l<i.h&&(e.includes(`n`)&&(s=t.y+(t.h-i.h)),l=i.h),isFinite(a)&&(o<-a&&(e.includes(`w`)&&(c=t.x+t.w- -a),o=-a),s<-a&&(e.includes(`n`)&&(l=t.y+t.h- -a),s=-a),o+c>a&&(c=a-o),s+l>a&&(l=a-s)),{x:o,y:s,w:c,h:l}}function _(e,t,n,r){let i=e.x+t,a=e.y+n;return isFinite(r)&&(i=Math.max(-r,Math.min(r-e.w,i)),a=Math.max(-r,Math.min(r-e.h,a))),{...e,x:i,y:a}}function v({bounds:e,onCommit:t,minSize:n=h,resizable:r=!0,movable:i=!0,dragHandle:a=`[data-campus-drag]`,selected:o=!1,zIndex:l,children:u,onPointerDownCapture:f,onClick:m,onContextMenu:v,className:b,style:x,bodyStyle:S}){let{viewportRef:C,maxDepth:w}=d(),T=p(),[E,D]=(0,s.useState)(null),O=(0,s.useRef)(null),k=(0,s.useRef)(null),A=(0,s.useRef)(null);(0,s.useEffect)(()=>{D(null)},[e.x,e.y,e.w,e.h]);function j(){A.current&&=(D(A.current),null),k.current=null}function M(t,n){n.preventDefault(),n.stopPropagation(),n.currentTarget.setPointerCapture(n.pointerId),O.current={mode:t,startX:n.clientX,startY:n.clientY,start:E??e}}function N(e){if(!i)return;let t=e.target;t&&t.closest(a)&&M(`move`,e)}function P(e){let t=O.current;if(!t)return;let r=C.current.scale*T||1,i=(e.clientX-t.startX)/r,a=(e.clientY-t.startY)/r,o=t.mode===`move`?_(t.start,i,a,w):g(t.mode,t.start,i,a,n,w);A.current=o,k.current===null&&(k.current=requestAnimationFrame(j))}function F(n){if(!O.current)return;k.current!==null&&(cancelAnimationFrame(k.current),j()),n.currentTarget.releasePointerCapture(n.pointerId);let r=A.current??E??e;A.current=null,O.current=null,t(r)}let I=E??e,L={position:`absolute`,left:I.x,top:I.y,width:I.w,height:I.h,display:`flex`,flexDirection:`column`,overflow:`hidden`,zIndex:l??(o?10:1),background:`var(--oo-color-canvas)`,border:`1px solid ${o?`var(--oo-color-accent)`:`var(--oo-color-border)`}`,borderRadius:`var(--oo-radius-sm)`,boxShadow:o?`var(--oo-shadow-lg)`:`var(--oo-shadow-md)`,...x};return(0,c.jsxs)(`div`,{className:[`oo-campus-nodus`,b].filter(Boolean).join(` `),"data-selected":o,style:L,onPointerDownCapture:f,onPointerDown:N,onPointerMove:P,onPointerUp:F,onClick:m,onContextMenu:v,children:[(0,c.jsx)(`div`,{style:{flex:1,minHeight:0,display:`flex`,flexDirection:`column`,overflow:`hidden`,...S},children:u}),r?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(y,{mode:`n`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`s`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`e`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`w`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`nw`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`ne`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`sw`,startDrag:M,onPointerMove:P,endDrag:F}),(0,c.jsx)(y,{mode:`se`,startDrag:M,onPointerMove:P,endDrag:F})]}):null]})}function y({mode:e,startDrag:t,onPointerMove:n,endDrag:r}){let i=e.length===2,a;if(i)a={position:`absolute`,width:12,height:12,cursor:m[e],touchAction:`none`,zIndex:1,...e.includes(`n`)?{top:-6}:{bottom:-6},...e.includes(`w`)?{left:-6}:{right:-6}};else{let t=e===`n`||e===`s`;a={position:`absolute`,cursor:m[e],touchAction:`none`,zIndex:1,...t?{left:12,right:12,height:6,...e===`n`?{top:-3}:{bottom:-3}}:{top:12,bottom:12,width:6,...e===`w`?{left:-3}:{right:-3}}}}return(0,c.jsx)(`div`,{className:`oo-campus-nodus-resize oo-campus-nodus-resize--${e}`,onPointerDown:n=>t(e,n),onPointerMove:n,onPointerUp:r,style:a})}function b({zoom:e=1,pan:t,zIndex:n,className:r,style:i,children:a}){let o=t?.x??0,s=t?.y??0,l=o!==0||s!==0||e!==1?`translate(${o}px, ${s}px) scale(${e})`:void 0;return(0,c.jsx)(f.Provider,{value:e,children:(0,c.jsx)(`div`,{className:[`oo-campus-stratum`,r].filter(Boolean).join(` `),style:{position:`absolute`,left:0,top:0,width:0,height:0,transformOrigin:`0 0`,transform:l,zIndex:n,...i},children:a})})}function x({className:e,style:t,children:n}){return n==null||n===!1?null:(0,c.jsx)(`div`,{className:[`oo-campus-velum`,e].filter(Boolean).join(` `),style:{position:`absolute`,inset:0,pointerEvents:`none`,zIndex:30,...t},children:n})}var S=.1,C=4,w=1.1,T=9,E=.95,D=40,O=140;function k(e,t,n){return Math.max(t,Math.min(n,e))}function A(e){return`translate(${e.panX}px, ${e.panY}px) scale(${e.scale})`}function j(e,t,n,r,i){let a=k(e.scale,r,i);if(!isFinite(n))return{...e,scale:a};let{panX:o,panY:s}=e,c=n*a,l=n*a;return o=2*c>=t.w?k(o,t.w-c,c):t.w/2,s=2*l>=t.h?k(s,t.h-l,l):t.h/2,{scale:a,panX:o,panY:s}}function M({viewport:e,onViewportChange:t,maxDepth:n=1/0,minScale:r=S,maxScale:i=C,zoomStep:a=w,showGrid:o=!0,onBackgroundClick:l,onBackgroundContextMenu:d,nodes:f,nodeTypes:p,nodeLayers:m,defaultLayer:h,onNodeCommit:g,onNodeSelect:_,onNodeContextMenu:v,className:y,style:D,children:M,ref:F}){let I=(0,s.useRef)(null),L=(0,s.useRef)(null),R=(0,s.useRef)(a),ee=(0,s.useRef)(r),z=(0,s.useRef)(i),B=(0,s.useRef)(Q),[V,H]=(0,s.useState)({w:0,h:0});(0,s.useEffect)(()=>{let e=I.current;if(!e)return;function t(){let t=e.getBoundingClientRect();H({w:t.width,h:t.height})}t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);let U=(0,s.useRef)(e),W=(0,s.useRef)(new Set),G=(0,s.useCallback)(e=>(W.current.add(e),()=>{W.current.delete(e)}),[]);function K(){W.current.forEach(e=>e())}function q(e){let t=L.current;t&&(t.style.transform=A(e))}let te=(0,s.useRef)(t);te.current=t;let J=(0,s.useRef)(null);function ne(){J.current!==null&&window.clearTimeout(J.current),J.current=window.setTimeout(()=>{J.current=null,te.current(U.current)},O)}(0,s.useEffect)(()=>()=>{J.current!==null&&window.clearTimeout(J.current)},[]),(0,s.useEffect)(()=>{let t=U.current;(e.scale!==t.scale||e.panX!==t.panX||e.panY!==t.panY)&&(U.current=e,q(e),K())},[e]);let Y=(0,s.useRef)(null),X=(0,s.useRef)(null);function Z(e){let t=j(e,V,n,r,i);U.current=t,q(t),K(),ne()}function Q(e){Y.current=e,X.current===null&&(X.current=requestAnimationFrame(()=>{X.current=null;let e=Y.current;Y.current=null,e&&Z(e)}))}(0,s.useEffect)(()=>{R.current=a,ee.current=r,z.current=i,B.current=Q}),(0,s.useEffect)(()=>{let e=I.current;if(!e)return;function t(t){if(!e)return;let n=e.getBoundingClientRect(),r=U.current;if(t.ctrlKey||t.metaKey){t.preventDefault();let e=t.clientX-n.left,i=t.clientY-n.top,a=t.deltaY<0?R.current:1/R.current,o=k(r.scale*a,ee.current,z.current),s=(e-r.panX)/r.scale,c=(i-r.panY)/r.scale;B.current({scale:o,panX:e-s*o,panY:i-c*o})}else{t.preventDefault();let e=-(t.shiftKey?t.deltaY:t.deltaX),n=-(t.shiftKey?0:t.deltaY);B.current({scale:r.scale,panX:r.panX+e,panY:r.panY+n})}}return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]);let $=(0,s.useRef)(null);function re(e){return e===I.current||e===L.current}function ie(e){if(!re(e.target))return;e.currentTarget.setPointerCapture(e.pointerId);let t=U.current;$.current={startX:e.clientX,startY:e.clientY,startPanX:t.panX,startPanY:t.panY,moved:!1}}function ae(e){let t=$.current;if(!t)return;let n=e.clientX-t.startX,r=e.clientY-t.startY;!t.moved&&n*n+r*r<T||(!t.moved&&I.current&&(I.current.style.cursor=`grabbing`),t.moved=!0,Q({scale:U.current.scale,panX:t.startPanX+n,panY:t.startPanY+r}))}function oe(e){let t=$.current;t&&(e.currentTarget.releasePointerCapture(e.pointerId),$.current=null,I.current&&(I.current.style.cursor=``),t.moved||l?.())}function se(e){re(e.target)&&d?.(e)}(0,s.useImperativeHandle)(F,()=>({fitToView(e){let t=V;if(t.w===0||t.h===0)return;let a=e??(isFinite(n)?{x:-n,y:-n,w:2*n,h:2*n}:{x:0,y:0,w:0,h:0});if(a.w<=0||a.h<=0)return;let o=k(Math.min(t.w/a.w,t.h/a.h)*E,r,i),s=a.x+a.w/2,c=a.y+a.h/2;Z({scale:o,panX:t.w/2-s*o,panY:t.h/2-c*o})},centerOn(e,t){let n=V,r=U.current;n.w!==0&&n.h!==0&&Z({scale:r.scale,panX:n.w/2-e*r.scale,panY:n.h/2-t*r.scale})},resetViewport(){Z({scale:1,panX:0,panY:0})},zoomBy(e){ce(U.current.scale*e)},zoomToScale(e){ce(e)}}),[V,n,r,i]);function ce(e){let t=V;if(t.w===0||t.h===0)return;let n=U.current,a=k(e,r,i);if(a===n.scale)return;let o=t.w/2,s=t.h/2,c=(o-n.panX)/n.scale,l=(s-n.panY)/n.scale;Z({scale:a,panX:o-c*a,panY:s-l*a})}let le=(0,s.useMemo)(()=>{let e=Object.entries(m??{}).map(([e,t])=>({name:e,config:t})).sort((e,t)=>e.config.index-t.config.index),t=h??e[0]?.name??`default`,n=new Map;for(let e of f??[]){let r=e.layer&&m?.[e.layer]?e.layer:t,i=n.get(r);i?i.push(e):n.set(r,[e])}let r=[],i=new Set;for(let{name:t,config:a}of e)r.push({name:t,config:a,nodes:n.get(t)??[]}),i.add(t);for(let[e,t]of n)i.has(e)||r.push({name:e,config:{index:r.length},nodes:t});return r},[f,m,h]),ue=(0,s.useMemo)(()=>({viewportRef:U,subscribeViewport:G,container:V,maxDepth:n}),[G,V,n]);return(0,c.jsx)(u.Provider,{value:ue,children:(0,c.jsxs)(`div`,{ref:I,className:[`oo-campus`,y].filter(Boolean).join(` `),onPointerDown:ie,onPointerMove:ae,onPointerUp:oe,onContextMenu:se,style:{position:`relative`,width:`100%`,height:`100%`,overflow:`hidden`,background:`var(--oo-color-surface)`,touchAction:`none`,cursor:`default`,...D},children:[o?(0,c.jsx)(P,{}):null,(0,c.jsx)(`div`,{ref:L,className:`oo-campus-world`,style:{position:`absolute`,left:0,top:0,width:0,height:0,transform:A(U.current),transformOrigin:`0 0`},children:le.map(e=>(0,c.jsx)(b,{zoom:e.config.zoom,pan:e.config.pan,zIndex:e.config.index,children:e.nodes.map(e=>{let t=p?.[e.type];return t?(0,c.jsx)(N,{node:e,onCommit:g,onSelect:_,onContextMenu:v,children:(0,c.jsx)(t,{id:e.id,selected:!!e.selected,data:e.data})},e.id):null})},e.name))}),(0,c.jsx)(x,{children:M})]})})}function N({node:e,onCommit:t,onSelect:n,onContextMenu:r,children:i}){return(0,c.jsx)(v,{bounds:e.bounds,selected:e.selected,resizable:e.resizable,movable:e.movable,onCommit:n=>t?.(e.id,n),onPointerDownCapture:()=>{e.selected||n?.(e.id)},onContextMenu:t=>{t.preventDefault(),t.stopPropagation(),n?.(e.id),r?.(e.id,t)},children:i})}function P(){let{viewportRef:e,subscribeViewport:t}=d(),{panX:n,panY:r,scale:i}=(0,s.useSyncExternalStore)(t,()=>e.current),a=D*i,o=a<6?0:a>200?.04:Math.min(.12,a/200);if(o<=0)return null;let l=(n%a+a)%a,u=(r%a+a)%a,f=`rgba(128, 128, 128, ${o})`;return(0,c.jsx)(`div`,{className:`oo-campus-grid`,"aria-hidden":!0,style:{position:`absolute`,inset:0,pointerEvents:`none`,backgroundImage:`linear-gradient(to right, ${f} 1px, transparent 1px),linear-gradient(to bottom, ${f} 1px, transparent 1px)`,backgroundSize:`${a}px ${a}px, ${a}px ${a}px`,backgroundPosition:`${l}px ${u}px, ${l}px ${u}px`}})}var F=160,I=110,L=12,R={bottom:12,right:12};function ee({nodes:e,onJumpTo:t,width:r=F,height:i=I,padding:a=L,anchor:o=R,className:l,style:u}){let{viewportRef:f,subscribeViewport:p,container:m}=d(),h=(0,s.useSyncExternalStore)(p,()=>f.current);if(m.w===0||m.h===0)return null;let g=1/0,_=1/0,v=-1/0,y=-1/0;for(let t of e)g=Math.min(g,t.bounds.x),_=Math.min(_,t.bounds.y),v=Math.max(v,t.bounds.x+t.bounds.w),y=Math.max(y,t.bounds.y+t.bounds.h);let b=-h.panX/h.scale,x=-h.panY/h.scale,S=b+m.w/h.scale,C=x+m.h/h.scale;isFinite(g)?(g=Math.min(g,b),_=Math.min(_,x),v=Math.max(v,S),y=Math.max(y,C)):(g=b,_=x,v=S,y=C);let w=Math.max(1,v-g),T=Math.max(1,y-_),E=r-a*2,D=i-a*2,O=Math.min(E/w,D/T);function k(e,t){return[a+(e-g)*O,a+(t-_)*O]}function A(e){let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top;t((r-a)/O+g,(i-a)/O+_)}let[j,M]=k(b,x),N=(S-b)*O,P=(C-x)*O;return(0,c.jsxs)(`div`,{className:[`oo-campus-mappa`,l].filter(Boolean).join(` `),onClick:A,onPointerDown:e=>e.stopPropagation(),style:{position:`absolute`,...o,width:r,height:i,pointerEvents:`auto`,background:`rgba(20, 20, 24, 0.75)`,backdropFilter:`blur(6px)`,WebkitBackdropFilter:`blur(6px)`,borderRadius:`var(--oo-radius-sm, 4px)`,boxShadow:`0 6px 20px rgba(0, 0, 0, 0.32)`,cursor:`crosshair`,zIndex:40,overflow:`hidden`,...u},children:[e.map(e=>{let[t,r]=k(e.bounds.x,e.bounds.y),i=Math.max(2,e.bounds.w*O),a=Math.max(2,e.bounds.h*O);return(0,c.jsx)(`div`,{title:e.id,style:{position:`absolute`,left:t,top:r,width:i,height:a,background:n(e.color,.85),border:e.selected?`1px solid rgba(255, 255, 255, 0.9)`:`1px solid rgba(255, 255, 255, 0.18)`,borderRadius:2,boxSizing:`border-box`}},e.id)}),(0,c.jsx)(`div`,{style:{position:`absolute`,left:j,top:M,width:N,height:P,border:`1px solid rgba(255, 255, 255, 0.9)`,background:`rgba(255, 255, 255, 0.06)`,pointerEvents:`none`,boxSizing:`border-box`}})]})}function z({selected:e,data:t}){let{mount:n,renderMount:i,onClose:s}=t,l=r().components.get(n.component.component)?.props,u=o(n,n.key),d=n.props?.icon??l?.icon,f=n.props?.color??l?.color;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{className:`oo-spatial-card__header`,"data-campus-drag":!0,"data-color":f,style:{padding:`var(--oo-spacing-xs) var(--oo-spacing-sm)`,borderBottom:`1px solid var(--oo-color-border)`,fontSize:`var(--oo-font-size-xs)`,color:e?`inherit`:`var(--oo-color-muted)`,background:e?`var(--oo-color-active)`:`var(--oo-color-surface)`,display:`flex`,justifyContent:`space-between`,alignItems:`center`,cursor:`grab`,userSelect:`none`,touchAction:`none`,flex:`0 0 auto`},children:[(0,c.jsxs)(`span`,{title:u,style:{display:`inline-flex`,alignItems:`center`,gap:6,minWidth:0},children:[d?(0,c.jsx)(`span`,{className:`oo-spatial-card__icon`,"aria-hidden":!0,children:d}):null,(0,c.jsx)(`span`,{className:`oo-spatial-card__title`,style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:u})]}),(0,c.jsx)(`span`,{onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.stopPropagation(),s()},title:`Close`,style:{cursor:`pointer`},children:a.closePanel})]}),(0,c.jsx)(`div`,{className:`oo-spatial-card__body`,style:{flex:1,overflow:`auto`,minHeight:0},children:i(n)})]})}var B=960,V=768,H=36,U=40,W=16,G=8e3;function K(e,t,n){if(n===`grid`&&t>0){let n=Math.max(1,Math.floor(Math.sqrt(t))),r=e%n,i=Math.floor(e/n);return{x:W+r*976,y:W+i*784,w:B,h:V}}return{x:U+e*H,y:U+e*H,w:B,h:V}}var q={scale:1,panX:0,panY:0},te={},J=1.1,ne={card:z};function Y({surface:e,mounts:t,state:n,setState:a,renderMount:o,onClose:u,onActivate:d}){let f=r(),[p,m]=(0,s.useState)(null),[h,g]=(0,s.useState)(null),_=n.spatial?.arrangement??`cascade`,v=n.spatial?.bounds??te,y=n.spatial?.selectedKey,b=n.spatial?.viewport??q,x=(0,s.useRef)({arrangement:_,bounds:v,selectedKey:y,viewport:b});x.current={arrangement:_,bounds:v,selectedKey:y,viewport:b};function S(e){let t={...x.current,...e};x.current=t,a({spatial:t})}function C(e){S({viewport:e})}let w=(0,s.useMemo)(()=>{let e={};return t.forEach((n,r)=>{_===`manual`?e[n.key]=v[n.key]??K(r,t.length,`cascade`):e[n.key]=K(r,t.length,_)}),e},[t,_,v]);function T(e){if(e===`manual`){let e={};for(let n of t)e[n.key]=w[n.key];S({arrangement:`manual`,bounds:e})}else S({arrangement:e,bounds:{}})}function E(e,n){if(x.current.arrangement!==`manual`){let r={};for(let e of t)r[e.key]=w[e.key];r[e]=n,S({arrangement:`manual`,bounds:r,selectedKey:e});return}S({bounds:{...x.current.bounds,[e]:n},selectedKey:e})}function D(e){x.current.selectedKey!==e&&(S({selectedKey:e}),e&&d(e))}let O=(0,s.useRef)(null);function k(){if(t.length===0){O.current?.fitToView();return}let e=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of t){let t=w[a.key];t&&(e=Math.min(e,t.x),n=Math.min(n,t.y),r=Math.max(r,t.x+t.w),i=Math.max(i,t.y+t.h))}isFinite(e)&&O.current?.fitToView({x:e,y:n,w:r-e,h:i-n})}function A(){let e=y;if(!e)return;let t=w[e];t&&O.current?.centerOn(t.x+t.w/2,t.y+t.h/2)}function j(e){let t=w[e];t&&O.current?.centerOn(t.x+t.w/2,t.y+t.h/2)}function N(e){let n=t.findIndex(t=>t.key===e);n<0||E(e,K(n,t.length,`cascade`))}let P=(0,s.useRef)({fitToView:k,resetViewport:()=>O.current?.resetViewport(),centerOnSelected:A,setArrangement:T,centerOnCard:j,resetBoundsForCard:N});P.current={fitToView:k,resetViewport:()=>O.current?.resetViewport(),centerOnSelected:A,setArrangement:T,centerOnCard:j,resetBoundsForCard:N},(0,s.useEffect)(()=>{let e=[f.commands.register({id:`surface.fitToView`,title:`Fit to view`,description:`Frame all cards`,icon:`⛶`,color:`blue`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{P.current.fitToView(),e.host?.closeMenu()}}),f.commands.register({id:`surface.resetZoom`,title:`Reset zoom`,icon:`↺`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{P.current.resetViewport(),e.host?.closeMenu()}}),f.commands.register({id:`surface.centerSelected`,title:`Center on selected`,icon:`◎`,color:`teal`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/hasSelection == true`,run:e=>{P.current.centerOnSelected(),e.host?.closeMenu()}}),f.commands.register({id:`surface.setArrangement.cascade`,title:`Arrange: Cascade`,icon:`▤`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "cascade"`,run:e=>{P.current.setArrangement(`cascade`),e.host?.closeMenu()}}),f.commands.register({id:`surface.setArrangement.grid`,title:`Arrange: Grid`,icon:`▦`,color:`violet`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "grid"`,run:e=>{P.current.setArrangement(`grid`),e.host?.closeMenu()}}),f.commands.register({id:`surface.setArrangement.manual`,title:`Arrange: Manual`,icon:`✥`,slots:[`surface:context`],when:`$/surface/layoutId == "spatial" && $/surface/arrangement != "manual"`,run:e=>{P.current.setArrangement(`manual`),e.host?.closeMenu()}}),f.commands.register({id:`card.centerOn`,title:`Center on this card`,icon:`◎`,color:`teal`,slots:[`card:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{let t=e.store.get(`$/tab/key`);t&&(P.current.centerOnCard(t),e.host?.closeMenu())}}),f.commands.register({id:`card.resetBounds`,title:`Reset bounds`,description:`Recompute size + position`,icon:`↺`,slots:[`card:context`],when:`$/surface/layoutId == "spatial"`,run:e=>{let t=e.store.get(`$/tab/key`);t&&(P.current.resetBoundsForCard(t),e.host?.closeMenu())}})];return()=>{for(let t of e)t.dispose()}},[f]);let F=(0,s.useMemo)(()=>t.map(e=>({id:e.key,type:`card`,bounds:w[e.key],selected:e.key===y,data:{mount:e,renderMount:o,onClose:()=>u(e.key)}})),[t,w,y,o,u]),I=t.flatMap(e=>{let t=w[e.key];if(!t)return[];let n=f.components.get(e.component.component)?.opens?.color;return[{id:e.key,bounds:t,color:n,selected:e.key===y}]});function L(e){e.preventDefault(),m({x:e.clientX,y:e.clientY})}return t.length===0?(0,c.jsx)(`div`,{style:{padding:24,color:`var(--oo-color-muted)`},children:`Nothing open.`}):(0,c.jsxs)(`div`,{className:`oo-layout oo-layout--spatial`,style:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,c.jsxs)(l,{className:`oo-spatial-toolbar`,children:[(0,c.jsxs)(`label`,{style:{display:`flex`,gap:6,alignItems:`center`},children:[(0,c.jsx)(`span`,{style:{color:`var(--oo-color-muted)`},children:`arrange:`}),(0,c.jsxs)(`select`,{value:_,onChange:e=>T(e.target.value),children:[(0,c.jsx)(`option`,{value:`cascade`,children:`cascade`}),(0,c.jsx)(`option`,{value:`grid`,children:`grid`}),(0,c.jsx)(`option`,{value:`manual`,children:`manual`})]})]}),(0,c.jsx)(`button`,{type:`button`,onClick:()=>O.current?.zoomBy(1/J),title:`Zoom out`,"aria-label":`Zoom out`,children:`−`}),(0,c.jsx)(Q,{value:b.scale,onCommit:e=>O.current?.zoomToScale(e)}),(0,c.jsx)(`button`,{type:`button`,onClick:()=>O.current?.zoomBy(J),title:`Zoom in`,"aria-label":`Zoom in`,children:`+`}),(0,c.jsx)(`button`,{type:`button`,onClick:k,title:`Fit all cards to viewport`,children:`Fit`}),(0,c.jsx)(`button`,{type:`button`,onClick:()=>O.current?.resetViewport(),title:`Reset zoom + pan`,children:`Reset`}),(0,c.jsxs)(`span`,{style:{color:`var(--oo-color-muted)`,fontSize:`var(--oo-font-size-xs)`},children:[`drag header to move · drag edges to resize · ctrl+wheel zooms · drag empty area to pan · first drag locks to `,(0,c.jsx)(`em`,{children:`manual`})]})]}),(0,c.jsx)(`div`,{style:{flex:1,minHeight:0,position:`relative`},children:(0,c.jsx)(M,{ref:O,viewport:b,onViewportChange:C,maxDepth:G,nodes:F,nodeTypes:ne,onNodeCommit:(e,t)=>E(e,t),onNodeSelect:e=>D(e),onNodeContextMenu:(e,t)=>g({x:t.clientX,y:t.clientY,key:e}),onBackgroundClick:()=>D(void 0),onBackgroundContextMenu:L,children:(0,c.jsx)(ee,{nodes:I,onJumpTo:(e,t)=>O.current?.centerOn(e,t)})})}),y?(0,c.jsx)(X,{selectedKey:y,onCenter:()=>j(y),onReset:()=>N(y),onClose:()=>u(y),onDeselect:()=>D(void 0)}):null,p?(0,c.jsx)(i,{x:p.x,y:p.y,onClose:()=>m(null),spec:{query:{slot:`surface:context`},footerHints:!0},context:{"$/surface/name":e,"$/surface/layoutId":`spatial`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/surface/arrangement":_,"$/surface/hasSelection":!!y}}):null,h?(0,c.jsx)(i,{x:h.x,y:h.y,onClose:()=>g(null),spec:{query:{slot:`card:context`},footerHints:!0},context:{"$/surface/name":e,"$/surface/layoutId":`spatial`,"$/surface/mountCount":t.length,"$/surface/closedHistory":0,"$/surface/arrangement":_,"$/tab/key":h.key,"$/tab/index":t.findIndex(e=>e.key===h.key),"$/tab/canSplit":!1,"$/tab/canMove":!1,"$/tab/isActive":h.key===y,"$/tab/isPinned":!1,"$/group/tabCount":t.length}}):null]})}function X({selectedKey:e,onCenter:t,onReset:n,onClose:r,onDeselect:i}){return(0,c.jsxs)(`div`,{className:`oo-spatial-footer`,role:`toolbar`,"aria-label":`Selected card actions`,style:{position:`absolute`,bottom:16,left:`50%`,transform:`translateX(-50%)`,display:`flex`,alignItems:`center`,gap:4,padding:`6px 8px`,background:`rgba(20, 20, 24, 0.78)`,backdropFilter:`blur(8px)`,WebkitBackdropFilter:`blur(8px)`,borderRadius:9999,color:`#fff`,fontSize:`var(--oo-font-size-xs)`,boxShadow:`0 6px 20px rgba(0, 0, 0, 0.32)`,pointerEvents:`auto`,zIndex:50},onPointerDown:e=>e.stopPropagation(),children:[(0,c.jsx)(`span`,{style:{padding:`0 8px`,color:`rgba(255, 255, 255, 0.65)`,fontFamily:`var(--oo-font-mono)`,maxWidth:180,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},title:e,children:e}),(0,c.jsx)(Z,{icon:`◎`,label:`Center on this card`,onClick:t}),(0,c.jsx)(Z,{icon:`↺`,label:`Reset bounds`,onClick:n}),(0,c.jsx)(Z,{icon:`✕`,label:`Close`,onClick:r,variant:`danger`}),(0,c.jsx)(Z,{icon:`⊗`,label:`Deselect`,onClick:i})]})}function Z({icon:e,label:t,onClick:n,variant:r}){return(0,c.jsx)(`button`,{type:`button`,onClick:n,title:t,"aria-label":t,style:{width:28,height:28,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,border:`none`,borderRadius:`50%`,background:`rgba(255, 255, 255, 0.08)`,color:r===`danger`?`rgb(255, 130, 130)`:`#fff`,cursor:`pointer`,font:`inherit`,lineHeight:1},onMouseEnter:e=>{e.currentTarget.style.background=`rgba(255, 255, 255, 0.18)`},onMouseLeave:e=>{e.currentTarget.style.background=`rgba(255, 255, 255, 0.08)`},children:e})}function Q({value:e,onCommit:t}){let n=Math.round(e*100),[r,i]=(0,s.useState)(`${n}`),[a,o]=(0,s.useState)(!1);!a&&r!==`${n}`&&i(`${n}`);function l(){let e=parseInt(r,10);Number.isFinite(e)&&e>0?t(e/100):i(`${n}`),o(!1)}return(0,c.jsx)(`input`,{type:`text`,inputMode:`numeric`,value:a?r:`${n}%`,onFocus:e=>{o(!0),i(`${n}`),requestAnimationFrame(()=>e.target.select?.())},onChange:e=>i(e.target.value.replace(/[^\d]/g,``)),onBlur:l,onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),e.target.blur()):e.key===`Escape`&&(e.preventDefault(),i(`${n}`),o(!1),e.target.blur())},title:`Zoom percent`,"aria-label":`Zoom percent`,style:{width:56,textAlign:`center`,font:`inherit`,padding:`2px 4px`,border:`1px solid var(--oo-color-border)`,borderRadius:`var(--oo-radius-sm, 4px)`,background:`var(--oo-color-canvas)`,color:`inherit`}})}export{Y as SpatialLayout};
@@ -0,0 +1 @@
1
+ .oo-toolbar{align-items:center;gap:var(--oo-spacing-sm);padding:var(--oo-spacing-xs) var(--oo-spacing-sm);border-bottom:1px solid var(--oo-color-border);background:var(--oo-color-surface);color:inherit;font-size:var(--oo-font-size-sm);min-height:var(--oo-toolbar-height,32px);-webkit-user-select:none;user-select:none;flex:none;display:flex}.oo-toolbar[data-direction=column]{border-bottom:none;border-right:1px solid var(--oo-color-border);min-height:0;min-width:var(--oo-toolbar-height,32px);flex-direction:column;align-items:stretch}
@@ -0,0 +1 @@
1
+ import{t as e}from"./jsx-runtime-BguD1OXD.js";import{r as t}from"./colors-BieSUSt7.js";var n=e();function r({label:e,size:r=16,color:i,inline:a=!0,style:o,className:s}){let c={"--oo-spinner-size":`${r}px`,"--oo-spinner-color":i?t(i):`var(--oo-color-accent)`,...a?{display:`inline-flex`}:{display:`flex`},...o};return(0,n.jsxs)(`span`,{role:`status`,"aria-live":`polite`,"aria-label":e??`Loading`,className:[`oo-spinner-wrap`,s].filter(Boolean).join(` `),style:c,children:[(0,n.jsx)(`span`,{className:`oo-spinner`,"aria-hidden":!0}),e?(0,n.jsx)(`span`,{className:`oo-spinner__label`,children:e}):null]})}export{r as t};
@@ -0,0 +1 @@
1
+ .oo-spinner-wrap{align-items:center;gap:var(--oo-spacing-sm);font-size:var(--oo-font-size-sm);color:var(--oo-color-muted)}.oo-spinner{width:var(--oo-spinner-size,16px);height:var(--oo-spinner-size,16px);border:2px solid var(--oo-color-border);border-top-color:var(--oo-spinner-color,var(--oo-color-accent));border-radius:50%;flex:none;animation:.8s linear infinite oo-spin;display:inline-block}@keyframes oo-spin{to{transform:rotate(360deg)}}.oo-spinner__label{line-height:1}