clawpad 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +9 -9
  3. package/.next/standalone/.next/build-manifest.json +3 -3
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/react-loadable-manifest.json +1 -1
  6. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  8. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.rsc +4 -4
  18. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  19. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  21. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/standalone/.next/server/app/api/ai/write/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/changes/[id]/route_client-reference-manifest.js +1 -1
  26. package/.next/standalone/.next/server/app/api/changes/record/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/changes/revert/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/changes/route_client-reference-manifest.js +1 -1
  29. package/.next/standalone/.next/server/app/api/changes/run/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/chat/abort/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/api/chat/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/files/pages/[...path]/route_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/api/files/recent/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/files/search/route_client-reference-manifest.js +1 -1
  35. package/.next/standalone/.next/server/app/api/files/spaces/[space]/pages/route.js +1 -1
  36. package/.next/standalone/.next/server/app/api/files/spaces/[space]/pages/route_client-reference-manifest.js +1 -1
  37. package/.next/standalone/.next/server/app/api/files/spaces/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/files/watch/route_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/api/gateway/detect/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/gateway/events/route_client-reference-manifest.js +1 -1
  41. package/.next/standalone/.next/server/app/api/gateway/features/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/gateway/history/route_client-reference-manifest.js +1 -1
  43. package/.next/standalone/.next/server/app/api/gateway/resolve/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/gateway/sessions/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/gateway/status/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/openclaw/commands/route_client-reference-manifest.js +1 -1
  47. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/settings/search-status/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/setup/bootstrap/route.js +83 -1
  50. package/.next/standalone/.next/server/app/api/setup/bootstrap/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/setup/bootstrap-workspace/route.js +1 -1
  52. package/.next/standalone/.next/server/app/api/setup/bootstrap-workspace/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/api/setup/status/route.js +1 -1
  54. package/.next/standalone/.next/server/app/api/setup/status/route_client-reference-manifest.js +1 -1
  55. package/.next/standalone/.next/server/app/api/setup/trigger-onboarding/route.js +123 -10
  56. package/.next/standalone/.next/server/app/api/setup/trigger-onboarding/route.js.nft.json +1 -1
  57. package/.next/standalone/.next/server/app/api/setup/trigger-onboarding/route_client-reference-manifest.js +1 -1
  58. package/.next/standalone/.next/server/app/index.html +1 -1
  59. package/.next/standalone/.next/server/app/index.rsc +4 -4
  60. package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  62. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  63. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  64. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  65. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/.next/server/app/settings/connection/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/settings/connection.html +1 -1
  68. package/.next/standalone/.next/server/app/settings/connection.rsc +4 -4
  69. package/.next/standalone/.next/server/app/settings/connection.segments/_full.segment.rsc +4 -4
  70. package/.next/standalone/.next/server/app/settings/connection.segments/_head.segment.rsc +1 -1
  71. package/.next/standalone/.next/server/app/settings/connection.segments/_index.segment.rsc +4 -4
  72. package/.next/standalone/.next/server/app/settings/connection.segments/_tree.segment.rsc +2 -2
  73. package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection/__PAGE__.segment.rsc +1 -1
  74. package/.next/standalone/.next/server/app/settings/connection.segments/settings/connection.segment.rsc +1 -1
  75. package/.next/standalone/.next/server/app/settings/connection.segments/settings.segment.rsc +1 -1
  76. package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/settings.html +1 -1
  78. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  79. package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  80. package/.next/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  81. package/.next/standalone/.next/server/app/settings.segments/_index.segment.rsc +4 -4
  82. package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  83. package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  84. package/.next/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  85. package/.next/standalone/.next/server/app/setup/page.js +2 -2
  86. package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
  87. package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/setup.html +1 -1
  89. package/.next/standalone/.next/server/app/setup.rsc +5 -5
  90. package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +5 -5
  91. package/.next/standalone/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  92. package/.next/standalone/.next/server/app/setup.segments/_index.segment.rsc +4 -4
  93. package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  94. package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  95. package/.next/standalone/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  96. package/.next/standalone/.next/server/app/workspace/[...path]/page.js +1 -1
  97. package/.next/standalone/.next/server/app/workspace/[...path]/page.js.nft.json +1 -1
  98. package/.next/standalone/.next/server/app/workspace/[...path]/page_client-reference-manifest.js +1 -1
  99. package/.next/standalone/.next/server/app/workspace/page.js +2 -2
  100. package/.next/standalone/.next/server/app/workspace/page.js.nft.json +1 -1
  101. package/.next/standalone/.next/server/app/workspace/page_client-reference-manifest.js +1 -1
  102. package/.next/standalone/.next/server/app/workspace/search/page.js +2 -2
  103. package/.next/standalone/.next/server/app/workspace/search/page.js.nft.json +1 -1
  104. package/.next/standalone/.next/server/app/workspace/search/page_client-reference-manifest.js +1 -1
  105. package/.next/standalone/.next/server/app/workspace/search.html +2 -2
  106. package/.next/standalone/.next/server/app/workspace/search.rsc +6 -6
  107. package/.next/standalone/.next/server/app/workspace/search.segments/_full.segment.rsc +6 -6
  108. package/.next/standalone/.next/server/app/workspace/search.segments/_head.segment.rsc +1 -1
  109. package/.next/standalone/.next/server/app/workspace/search.segments/_index.segment.rsc +4 -4
  110. package/.next/standalone/.next/server/app/workspace/search.segments/_tree.segment.rsc +2 -2
  111. package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search/__PAGE__.segment.rsc +2 -2
  112. package/.next/standalone/.next/server/app/workspace/search.segments/workspace/search.segment.rsc +1 -1
  113. package/.next/standalone/.next/server/app/workspace/search.segments/workspace.segment.rsc +2 -2
  114. package/.next/standalone/.next/server/app/workspace.html +2 -2
  115. package/.next/standalone/.next/server/app/workspace.rsc +6 -6
  116. package/.next/standalone/.next/server/app/workspace.segments/_full.segment.rsc +6 -6
  117. package/.next/standalone/.next/server/app/workspace.segments/_head.segment.rsc +1 -1
  118. package/.next/standalone/.next/server/app/workspace.segments/_index.segment.rsc +4 -4
  119. package/.next/standalone/.next/server/app/workspace.segments/_tree.segment.rsc +2 -2
  120. package/.next/standalone/.next/server/app/workspace.segments/workspace/__PAGE__.segment.rsc +2 -2
  121. package/.next/standalone/.next/server/app/workspace.segments/workspace.segment.rsc +2 -2
  122. package/.next/standalone/.next/server/app-paths-manifest.json +9 -9
  123. package/.next/standalone/.next/server/chunks/2470.js +3 -3
  124. package/.next/standalone/.next/server/chunks/3251.js +2 -3
  125. package/.next/standalone/.next/server/chunks/4098.js +9 -0
  126. package/.next/standalone/.next/server/chunks/{9703.js → 7035.js} +3 -3
  127. package/.next/standalone/.next/server/chunks/7772.js +1 -0
  128. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  129. package/.next/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  130. package/.next/standalone/.next/server/pages/404.html +1 -1
  131. package/.next/standalone/.next/server/pages/500.html +2 -2
  132. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  133. package/.next/standalone/package.json +2 -1
  134. package/.next/static/chunks/1178-f2f0bd687a63b9f8.js +4 -0
  135. package/.next/static/chunks/1592-8d48cfb007c02ef4.js +9 -0
  136. package/.next/static/chunks/{4839-8d9e473f5fea81c8.js → 20-4cfa0dd1c497eee3.js} +8 -8
  137. package/.next/static/chunks/3505-9fff91cc0bc3d611.js +1 -0
  138. package/.next/static/chunks/3678.620cb571eead466f.js +1 -0
  139. package/.next/static/chunks/385-4c7c8d3ad3b6b7db.js +1 -0
  140. package/.next/static/chunks/4559-722e02df6a03e69f.js +1 -0
  141. package/.next/static/chunks/6217-dcce2b95259e116b.js +1 -0
  142. package/.next/static/chunks/app/layout-c12666d2d05cce33.js +1 -0
  143. package/.next/static/chunks/app/setup/page-7eac0e007d7fcd58.js +1 -0
  144. package/.next/static/chunks/app/workspace/[...path]/page-5c4919e22385a024.js +1 -0
  145. package/.next/static/chunks/app/workspace/layout-9717963f2fdd1346.js +6 -0
  146. package/.next/static/chunks/app/workspace/page-3869e183f908f2fc.js +1 -0
  147. package/.next/static/chunks/app/workspace/search/page-d50c5815a7c7dc09.js +1 -0
  148. package/.next/static/chunks/{ba12c10f-9f20c2943b757ccd.js → ba12c10f-d2d630b861c021fb.js} +1 -1
  149. package/.next/static/chunks/{webpack-4017efb7c7e87263.js → webpack-2f676db6328b0d7d.js} +1 -1
  150. package/.next/static/css/a44c237eaaac8354.css +1 -0
  151. package/bin/clawpad.js +174 -9
  152. package/package.json +2 -1
  153. package/public/install.sh +32 -4
  154. package/skills/README.md +40 -0
  155. package/skills/workspace-manager/SKILL.md +449 -0
  156. package/.next/standalone/.next/server/chunks/8385.js +0 -9
  157. package/.next/static/chunks/3016-27e0c450e2ada8a3.js +0 -1
  158. package/.next/static/chunks/3678.7aa2a1e7fc03b615.js +0 -1
  159. package/.next/static/chunks/5488-cb187354d8aaa3d6.js +0 -1
  160. package/.next/static/chunks/7005-2786bffdf3d8496e.js +0 -9
  161. package/.next/static/chunks/8485-4d3e303f8e277e8d.js +0 -1
  162. package/.next/static/chunks/app/layout-8a46ab4a3e2d5cb0.js +0 -4
  163. package/.next/static/chunks/app/setup/page-a2a70f253bbf4382.js +0 -1
  164. package/.next/static/chunks/app/workspace/[...path]/page-d59a1f3dbc96308f.js +0 -4
  165. package/.next/static/chunks/app/workspace/layout-504ed80ab2d05d25.js +0 -10
  166. package/.next/static/chunks/app/workspace/page-677a7fccfea3cce2.js +0 -4
  167. package/.next/static/chunks/app/workspace/search/page-c00e5c231c4a1fdd.js +0 -1
  168. package/.next/static/css/3084c1365b9c9e06.css +0 -1
  169. /package/.next/static/{wrTc1IgxHQI9epHN29OBD → WjQpy-wj7aRX-ddVHKjXc}/_buildManifest.js +0 -0
  170. /package/.next/static/{wrTc1IgxHQI9epHN29OBD → WjQpy-wj7aRX-ddVHKjXc}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3505],{5214:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=t(17828)},17828:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,t(64054).createAsyncLocalStorage)()},21172:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=t(12115);function o(e,r){let t=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=t.current;e&&(t.current=null,e());let r=o.current;r&&(o.current=null,r())}else e&&(t.current=a(e,n)),r&&(o.current=a(r,n))},[e,r])}function a(e,r){if("function"!=typeof e)return e.current=r,()=>{e.current=null};{let t=e(r);return"function"==typeof t?t:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),e.exports=r.default)},21957:(e,r,t)=>{function n({moduleIds:e}){return null}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return n}}),t(95155),t(47650),t(5214),t(2451),t(53887)},31887:(e,r,t)=>{t.d(r,{UC:()=>re,q7:()=>rr,ZL:()=>e6,bL:()=>e3,l9:()=>e8});var n=t(12115),o=t(70379),a=t(47527),u=t(68599),l=t(98979),i=t(47650),d=t(42442),c=t(95155),s=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let t=(0,d.TL)(`Primitive.${r}`),o=n.forwardRef((e,n)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,c.jsx)(o?t:r,{...a,ref:n})});return o.displayName=`Primitive.${r}`,{...e,[r]:o}},{}),f=t(76094),p=t(1933),m=t(22138),v=t(32007),h=t(16313),w=t(89971),g=t(30945),y=t(5494),b=t(83935),x=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let t=(0,d.TL)(`Primitive.${r}`),o=n.forwardRef((e,n)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,c.jsx)(o?t:r,{...a,ref:n})});return o.displayName=`Primitive.${r}`,{...e,[r]:o}},{}),j=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,r)=>{let t=(0,d.TL)(`Primitive.${r}`),o=n.forwardRef((e,n)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,c.jsx)(o?t:r,{...a,ref:n})});return o.displayName=`Primitive.${r}`,{...e,[r]:o}},{}),M=t(17347),_="rovingFocusGroup.onEntryFocus",C={bubbles:!1,cancelable:!0},R="RovingFocusGroup",[k,P,D]=(0,f.N)(R),[K,O]=(0,u.A)(R,[D]),[S,I]=K(R),E=n.forwardRef((e,r)=>(0,c.jsx)(k.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,c.jsx)(k.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,c.jsx)(T,{...e,ref:r})})}));E.displayName=R;var T=n.forwardRef((e,r)=>{let{__scopeRovingFocusGroup:t,orientation:u,loop:i=!1,dir:d,currentTabStopId:s,defaultCurrentTabStopId:f,onCurrentTabStopIdChange:m,onEntryFocus:v,preventScrollOnEntryFocus:h=!1,...w}=e,g=n.useRef(null),y=(0,a.s)(r,g),b=(0,p.jH)(d),[x,k]=(0,l.i)({prop:s,defaultProp:f??null,onChange:m,caller:R}),[D,K]=n.useState(!1),O=(0,M.c)(v),I=P(t),E=n.useRef(!1),[T,A]=n.useState(0);return n.useEffect(()=>{let e=g.current;if(e)return e.addEventListener(_,O),()=>e.removeEventListener(_,O)},[O]),(0,c.jsx)(S,{scope:t,orientation:u,dir:b,loop:i,currentTabStopId:x,onItemFocus:n.useCallback(e=>k(e),[k]),onItemShiftTab:n.useCallback(()=>K(!0),[]),onFocusableItemAdd:n.useCallback(()=>A(e=>e+1),[]),onFocusableItemRemove:n.useCallback(()=>A(e=>e-1),[]),children:(0,c.jsx)(j.div,{tabIndex:D||0===T?-1:0,"data-orientation":u,...w,ref:y,style:{outline:"none",...e.style},onMouseDown:(0,o.mK)(e.onMouseDown,()=>{E.current=!0}),onFocus:(0,o.mK)(e.onFocus,e=>{let r=!E.current;if(e.target===e.currentTarget&&r&&!D){let r=new CustomEvent(_,C);if(e.currentTarget.dispatchEvent(r),!r.defaultPrevented){let e=I().filter(e=>e.focusable);F([e.find(e=>e.active),e.find(e=>e.id===x),...e].filter(Boolean).map(e=>e.ref.current),h)}}E.current=!1}),onBlur:(0,o.mK)(e.onBlur,()=>K(!1))})})}),A="RovingFocusGroupItem",L=n.forwardRef((e,r)=>{let{__scopeRovingFocusGroup:t,focusable:a=!0,active:u=!1,tabStopId:l,children:i,...d}=e,s=(0,w.B)(),f=l||s,p=I(A,t),m=p.currentTabStopId===f,v=P(t),{onFocusableItemAdd:h,onFocusableItemRemove:g,currentTabStopId:y}=p;return n.useEffect(()=>{if(a)return h(),()=>g()},[a,h,g]),(0,c.jsx)(k.ItemSlot,{scope:t,id:f,focusable:a,active:u,children:(0,c.jsx)(j.span,{tabIndex:m?0:-1,"data-orientation":p.orientation,...d,ref:r,onMouseDown:(0,o.mK)(e.onMouseDown,e=>{a?p.onItemFocus(f):e.preventDefault()}),onFocus:(0,o.mK)(e.onFocus,()=>p.onItemFocus(f)),onKeyDown:(0,o.mK)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void p.onItemShiftTab();if(e.target!==e.currentTarget)return;let r=function(e,r,t){var n;let o=(n=e.key,"rtl"!==t?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===r&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===r&&["ArrowUp","ArrowDown"].includes(o)))return N[o]}(e,p.orientation,p.dir);if(void 0!==r){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=v().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===r)o.reverse();else if("prev"===r||"next"===r){var t,n;"prev"===r&&o.reverse();let a=o.indexOf(e.currentTarget);o=p.loop?(t=o,n=a+1,t.map((e,r)=>t[(n+r)%t.length])):o.slice(a+1)}setTimeout(()=>F(o))}}),children:"function"==typeof i?i({isCurrentTabStop:m,hasTabStop:null!=y}):i})})});L.displayName=A;var N={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function F(e,r=!1){let t=document.activeElement;for(let n of e)if(n===t||(n.focus({preventScroll:r}),document.activeElement!==t))return}var B=t(22954),G=t(5174),U=["Enter"," "],V=["ArrowUp","PageDown","End"],H=["ArrowDown","PageUp","Home",...V],z={ltr:[...U,"ArrowRight"],rtl:[...U,"ArrowLeft"]},X={ltr:["ArrowLeft"],rtl:["ArrowRight"]},$="Menu",[q,W,Z]=(0,f.N)($),[Y,J]=(0,u.A)($,[Z,g.Bk,O]),Q=(0,g.Bk)(),ee=O(),[er,et]=Y($),[en,eo]=Y($),ea=e=>{let{__scopeMenu:r,open:t=!1,children:o,dir:a,onOpenChange:u,modal:l=!0}=e,i=Q(r),[d,s]=n.useState(null),f=n.useRef(!1),m=(0,M.c)(u),v=(0,p.jH)(a);return n.useEffect(()=>{let e=()=>{f.current=!0,document.addEventListener("pointerdown",r,{capture:!0,once:!0}),document.addEventListener("pointermove",r,{capture:!0,once:!0})},r=()=>f.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",r,{capture:!0}),document.removeEventListener("pointermove",r,{capture:!0})}},[]),(0,c.jsx)(g.bL,{...i,children:(0,c.jsx)(er,{scope:r,open:t,onOpenChange:m,content:d,onContentChange:s,children:(0,c.jsx)(en,{scope:r,onClose:n.useCallback(()=>m(!1),[m]),isUsingKeyboardRef:f,dir:v,modal:l,children:o})})})};ea.displayName=$;var eu=n.forwardRef((e,r)=>{let{__scopeMenu:t,...n}=e,o=Q(t);return(0,c.jsx)(g.Mz,{...o,...n,ref:r})});eu.displayName="MenuAnchor";var el="MenuPortal",[ei,ed]=Y(el,{forceMount:void 0}),ec=e=>{let{__scopeMenu:r,forceMount:t,children:n,container:o}=e,a=et(el,r);return(0,c.jsx)(ei,{scope:r,forceMount:t,children:(0,c.jsx)(b.C,{present:t||a.open,children:(0,c.jsx)(y.Z,{asChild:!0,container:o,children:n})})})};ec.displayName=el;var es="MenuContent",[ef,ep]=Y(es),em=n.forwardRef((e,r)=>{let t=ed(es,e.__scopeMenu),{forceMount:n=t.forceMount,...o}=e,a=et(es,e.__scopeMenu),u=eo(es,e.__scopeMenu);return(0,c.jsx)(q.Provider,{scope:e.__scopeMenu,children:(0,c.jsx)(b.C,{present:n||a.open,children:(0,c.jsx)(q.Slot,{scope:e.__scopeMenu,children:u.modal?(0,c.jsx)(ev,{...o,ref:r}):(0,c.jsx)(eh,{...o,ref:r})})})})}),ev=n.forwardRef((e,r)=>{let t=et(es,e.__scopeMenu),u=n.useRef(null),l=(0,a.s)(r,u);return n.useEffect(()=>{let e=u.current;if(e)return(0,B.Eq)(e)},[]),(0,c.jsx)(eg,{...e,ref:l,trapFocus:t.open,disableOutsidePointerEvents:t.open,disableOutsideScroll:!0,onFocusOutside:(0,o.mK)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>t.onOpenChange(!1)})}),eh=n.forwardRef((e,r)=>{let t=et(es,e.__scopeMenu);return(0,c.jsx)(eg,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>t.onOpenChange(!1)})}),ew=(0,d.TL)("MenuContent.ScrollLock"),eg=n.forwardRef((e,r)=>{let{__scopeMenu:t,loop:u=!1,trapFocus:l,onOpenAutoFocus:i,onCloseAutoFocus:d,disableOutsidePointerEvents:s,onEntryFocus:f,onEscapeKeyDown:p,onPointerDownOutside:w,onFocusOutside:y,onInteractOutside:b,onDismiss:x,disableOutsideScroll:j,...M}=e,_=et(es,t),C=eo(es,t),R=Q(t),k=ee(t),P=W(t),[D,K]=n.useState(null),O=n.useRef(null),S=(0,a.s)(r,O,_.onContentChange),I=n.useRef(0),T=n.useRef(""),A=n.useRef(0),L=n.useRef(null),N=n.useRef("right"),F=n.useRef(0),B=j?G.A:n.Fragment;n.useEffect(()=>()=>window.clearTimeout(I.current),[]),(0,v.Oh)();let U=n.useCallback(e=>{var r,t;return N.current===L.current?.side&&(r=e,!!(t=L.current?.area)&&function(e,r){let{x:t,y:n}=e,o=!1;for(let e=0,a=r.length-1;e<r.length;a=e++){let u=r[e],l=r[a],i=u.x,d=u.y,c=l.x,s=l.y;d>n!=s>n&&t<(c-i)*(n-d)/(s-d)+i&&(o=!o)}return o}({x:r.clientX,y:r.clientY},t))},[]);return(0,c.jsx)(ef,{scope:t,searchRef:T,onItemEnter:n.useCallback(e=>{U(e)&&e.preventDefault()},[U]),onItemLeave:n.useCallback(e=>{U(e)||(O.current?.focus(),K(null))},[U]),onTriggerLeave:n.useCallback(e=>{U(e)&&e.preventDefault()},[U]),pointerGraceTimerRef:A,onPointerGraceIntentChange:n.useCallback(e=>{L.current=e},[]),children:(0,c.jsx)(B,{...j?{as:ew,allowPinchZoom:!0}:void 0,children:(0,c.jsx)(h.n,{asChild:!0,trapped:l,onMountAutoFocus:(0,o.mK)(i,e=>{e.preventDefault(),O.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:d,children:(0,c.jsx)(m.qW,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:p,onPointerDownOutside:w,onFocusOutside:y,onInteractOutside:b,onDismiss:x,children:(0,c.jsx)(E,{asChild:!0,...k,dir:C.dir,orientation:"vertical",loop:u,currentTabStopId:D,onCurrentTabStopIdChange:K,onEntryFocus:(0,o.mK)(f,e=>{C.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,c.jsx)(g.UC,{role:"menu","aria-orientation":"vertical","data-state":eH(_.open),"data-radix-menu-content":"",dir:C.dir,...R,...M,ref:S,style:{outline:"none",...M.style},onKeyDown:(0,o.mK)(M.onKeyDown,e=>{let r=e.target.closest("[data-radix-menu-content]")===e.currentTarget,t=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;if(r){var o;let r,a,u,l,i,d;"Tab"===e.key&&e.preventDefault(),!t&&n&&(o=e.key,r=T.current+o,a=P().filter(e=>!e.disabled),u=document.activeElement,l=a.find(e=>e.ref.current===u)?.textValue,i=function(e,r,t){var n;let o=r.length>1&&Array.from(r).every(e=>e===r[0])?r[0]:r,a=t?e.indexOf(t):-1,u=(n=Math.max(a,0),e.map((r,t)=>e[(n+t)%e.length]));1===o.length&&(u=u.filter(e=>e!==t));let l=u.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return l!==t?l:void 0}(a.map(e=>e.textValue),r,l),d=a.find(e=>e.textValue===i)?.ref.current,function e(r){T.current=r,window.clearTimeout(I.current),""!==r&&(I.current=window.setTimeout(()=>e(""),1e3))}(r),d&&setTimeout(()=>d.focus()))}let a=O.current;if(e.target!==a||!H.includes(e.key))return;e.preventDefault();let u=P().filter(e=>!e.disabled).map(e=>e.ref.current);V.includes(e.key)&&u.reverse(),function(e){let r=document.activeElement;for(let t of e)if(t===r||(t.focus(),document.activeElement!==r))return}(u)}),onBlur:(0,o.mK)(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(I.current),T.current="")}),onPointerMove:(0,o.mK)(e.onPointerMove,e$(e=>{let r=e.target,t=F.current!==e.clientX;e.currentTarget.contains(r)&&t&&(N.current=e.clientX>F.current?"right":"left",F.current=e.clientX)}))})})})})})})});em.displayName=es;var ey=n.forwardRef((e,r)=>{let{__scopeMenu:t,...n}=e;return(0,c.jsx)(x.div,{role:"group",...n,ref:r})});ey.displayName="MenuGroup";var eb=n.forwardRef((e,r)=>{let{__scopeMenu:t,...n}=e;return(0,c.jsx)(x.div,{...n,ref:r})});eb.displayName="MenuLabel";var ex="MenuItem",ej="menu.itemSelect",eM=n.forwardRef((e,r)=>{let{disabled:t=!1,onSelect:u,...l}=e,d=n.useRef(null),s=eo(ex,e.__scopeMenu),f=ep(ex,e.__scopeMenu),p=(0,a.s)(r,d),m=n.useRef(!1);return(0,c.jsx)(e_,{...l,ref:p,disabled:t,onClick:(0,o.mK)(e.onClick,()=>{let e=d.current;if(!t&&e){let r=new CustomEvent(ej,{bubbles:!0,cancelable:!0});e.addEventListener(ej,e=>u?.(e),{once:!0}),e&&i.flushSync(()=>e.dispatchEvent(r)),r.defaultPrevented?m.current=!1:s.onClose()}}),onPointerDown:r=>{e.onPointerDown?.(r),m.current=!0},onPointerUp:(0,o.mK)(e.onPointerUp,e=>{m.current||e.currentTarget?.click()}),onKeyDown:(0,o.mK)(e.onKeyDown,e=>{let r=""!==f.searchRef.current;t||r&&" "===e.key||U.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});eM.displayName=ex;var e_=n.forwardRef((e,r)=>{let{__scopeMenu:t,disabled:u=!1,textValue:l,...i}=e,d=ep(ex,t),s=ee(t),f=n.useRef(null),p=(0,a.s)(r,f),[m,v]=n.useState(!1),[h,w]=n.useState("");return n.useEffect(()=>{let e=f.current;e&&w((e.textContent??"").trim())},[i.children]),(0,c.jsx)(q.ItemSlot,{scope:t,disabled:u,textValue:l??h,children:(0,c.jsx)(L,{asChild:!0,...s,focusable:!u,children:(0,c.jsx)(x.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":u||void 0,"data-disabled":u?"":void 0,...i,ref:p,onPointerMove:(0,o.mK)(e.onPointerMove,e$(e=>{u?d.onItemLeave(e):(d.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:(0,o.mK)(e.onPointerLeave,e$(e=>d.onItemLeave(e))),onFocus:(0,o.mK)(e.onFocus,()=>v(!0)),onBlur:(0,o.mK)(e.onBlur,()=>v(!1))})})})}),eC=n.forwardRef((e,r)=>{let{checked:t=!1,onCheckedChange:n,...a}=e;return(0,c.jsx)(eI,{scope:e.__scopeMenu,checked:t,children:(0,c.jsx)(eM,{role:"menuitemcheckbox","aria-checked":ez(t)?"mixed":t,...a,ref:r,"data-state":eX(t),onSelect:(0,o.mK)(a.onSelect,()=>n?.(!!ez(t)||!t),{checkForDefaultPrevented:!1})})})});eC.displayName="MenuCheckboxItem";var eR="MenuRadioGroup",[ek,eP]=Y(eR,{value:void 0,onValueChange:()=>{}}),eD=n.forwardRef((e,r)=>{let{value:t,onValueChange:n,...o}=e,a=(0,M.c)(n);return(0,c.jsx)(ek,{scope:e.__scopeMenu,value:t,onValueChange:a,children:(0,c.jsx)(ey,{...o,ref:r})})});eD.displayName=eR;var eK="MenuRadioItem",eO=n.forwardRef((e,r)=>{let{value:t,...n}=e,a=eP(eK,e.__scopeMenu),u=t===a.value;return(0,c.jsx)(eI,{scope:e.__scopeMenu,checked:u,children:(0,c.jsx)(eM,{role:"menuitemradio","aria-checked":u,...n,ref:r,"data-state":eX(u),onSelect:(0,o.mK)(n.onSelect,()=>a.onValueChange?.(t),{checkForDefaultPrevented:!1})})})});eO.displayName=eK;var eS="MenuItemIndicator",[eI,eE]=Y(eS,{checked:!1}),eT=n.forwardRef((e,r)=>{let{__scopeMenu:t,forceMount:n,...o}=e,a=eE(eS,t);return(0,c.jsx)(b.C,{present:n||ez(a.checked)||!0===a.checked,children:(0,c.jsx)(x.span,{...o,ref:r,"data-state":eX(a.checked)})})});eT.displayName=eS;var eA=n.forwardRef((e,r)=>{let{__scopeMenu:t,...n}=e;return(0,c.jsx)(x.div,{role:"separator","aria-orientation":"horizontal",...n,ref:r})});eA.displayName="MenuSeparator";var eL=n.forwardRef((e,r)=>{let{__scopeMenu:t,...n}=e,o=Q(t);return(0,c.jsx)(g.i3,{...o,...n,ref:r})});eL.displayName="MenuArrow";var[eN,eF]=Y("MenuSub"),eB="MenuSubTrigger",eG=n.forwardRef((e,r)=>{let t=et(eB,e.__scopeMenu),u=eo(eB,e.__scopeMenu),l=eF(eB,e.__scopeMenu),i=ep(eB,e.__scopeMenu),d=n.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:f}=i,p={__scopeMenu:e.__scopeMenu},m=n.useCallback(()=>{d.current&&window.clearTimeout(d.current),d.current=null},[]);return n.useEffect(()=>m,[m]),n.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),f(null)}},[s,f]),(0,c.jsx)(eu,{asChild:!0,...p,children:(0,c.jsx)(e_,{id:l.triggerId,"aria-haspopup":"menu","aria-expanded":t.open,"aria-controls":l.contentId,"data-state":eH(t.open),...e,ref:(0,a.t)(r,l.onTriggerChange),onClick:r=>{e.onClick?.(r),e.disabled||r.defaultPrevented||(r.currentTarget.focus(),t.open||t.onOpenChange(!0))},onPointerMove:(0,o.mK)(e.onPointerMove,e$(r=>{i.onItemEnter(r),!r.defaultPrevented&&(e.disabled||t.open||d.current||(i.onPointerGraceIntentChange(null),d.current=window.setTimeout(()=>{t.onOpenChange(!0),m()},100)))})),onPointerLeave:(0,o.mK)(e.onPointerLeave,e$(e=>{m();let r=t.content?.getBoundingClientRect();if(r){let n=t.content?.dataset.side,o="right"===n,a=r[o?"left":"right"],u=r[o?"right":"left"];i.onPointerGraceIntentChange({area:[{x:e.clientX+(o?-5:5),y:e.clientY},{x:a,y:r.top},{x:u,y:r.top},{x:u,y:r.bottom},{x:a,y:r.bottom}],side:n}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>i.onPointerGraceIntentChange(null),300)}else{if(i.onTriggerLeave(e),e.defaultPrevented)return;i.onPointerGraceIntentChange(null)}})),onKeyDown:(0,o.mK)(e.onKeyDown,r=>{let n=""!==i.searchRef.current;e.disabled||n&&" "===r.key||z[u.dir].includes(r.key)&&(t.onOpenChange(!0),t.content?.focus(),r.preventDefault())})})})});eG.displayName=eB;var eU="MenuSubContent",eV=n.forwardRef((e,r)=>{let t=ed(es,e.__scopeMenu),{forceMount:u=t.forceMount,...l}=e,i=et(es,e.__scopeMenu),d=eo(es,e.__scopeMenu),s=eF(eU,e.__scopeMenu),f=n.useRef(null),p=(0,a.s)(r,f);return(0,c.jsx)(q.Provider,{scope:e.__scopeMenu,children:(0,c.jsx)(b.C,{present:u||i.open,children:(0,c.jsx)(q.Slot,{scope:e.__scopeMenu,children:(0,c.jsx)(eg,{id:s.contentId,"aria-labelledby":s.triggerId,...l,ref:p,align:"start",side:"rtl"===d.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{d.isUsingKeyboardRef.current&&f.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:(0,o.mK)(e.onFocusOutside,e=>{e.target!==s.trigger&&i.onOpenChange(!1)}),onEscapeKeyDown:(0,o.mK)(e.onEscapeKeyDown,e=>{d.onClose(),e.preventDefault()}),onKeyDown:(0,o.mK)(e.onKeyDown,e=>{let r=e.currentTarget.contains(e.target),t=X[d.dir].includes(e.key);r&&t&&(i.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});function eH(e){return e?"open":"closed"}function ez(e){return"indeterminate"===e}function eX(e){return ez(e)?"indeterminate":e?"checked":"unchecked"}function e$(e){return r=>"mouse"===r.pointerType?e(r):void 0}eV.displayName=eU;var eq="DropdownMenu",[eW,eZ]=(0,u.A)(eq,[J]),eY=J(),[eJ,eQ]=eW(eq),e0=e=>{let{__scopeDropdownMenu:r,children:t,dir:o,open:a,defaultOpen:u,onOpenChange:i,modal:d=!0}=e,s=eY(r),f=n.useRef(null),[p,m]=(0,l.i)({prop:a,defaultProp:u??!1,onChange:i,caller:eq});return(0,c.jsx)(eJ,{scope:r,triggerId:(0,w.B)(),triggerRef:f,contentId:(0,w.B)(),open:p,onOpenChange:m,onOpenToggle:n.useCallback(()=>m(e=>!e),[m]),modal:d,children:(0,c.jsx)(ea,{...s,open:p,onOpenChange:m,dir:o,modal:d,children:t})})};e0.displayName=eq;var e1="DropdownMenuTrigger",e5=n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,disabled:n=!1,...u}=e,l=eQ(e1,t),i=eY(t);return(0,c.jsx)(eu,{asChild:!0,...i,children:(0,c.jsx)(s.button,{type:"button",id:l.triggerId,"aria-haspopup":"menu","aria-expanded":l.open,"aria-controls":l.open?l.contentId:void 0,"data-state":l.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...u,ref:(0,a.t)(r,l.triggerRef),onPointerDown:(0,o.mK)(e.onPointerDown,e=>{!n&&0===e.button&&!1===e.ctrlKey&&(l.onOpenToggle(),l.open||e.preventDefault())}),onKeyDown:(0,o.mK)(e.onKeyDown,e=>{!n&&(["Enter"," "].includes(e.key)&&l.onOpenToggle(),"ArrowDown"===e.key&&l.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});e5.displayName=e1;var e2=e=>{let{__scopeDropdownMenu:r,...t}=e,n=eY(r);return(0,c.jsx)(ec,{...n,...t})};e2.displayName="DropdownMenuPortal";var e7="DropdownMenuContent",e4=n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...a}=e,u=eQ(e7,t),l=eY(t),i=n.useRef(!1);return(0,c.jsx)(em,{id:u.contentId,"aria-labelledby":u.triggerId,...l,...a,ref:r,onCloseAutoFocus:(0,o.mK)(e.onCloseAutoFocus,e=>{i.current||u.triggerRef.current?.focus(),i.current=!1,e.preventDefault()}),onInteractOutside:(0,o.mK)(e.onInteractOutside,e=>{let r=e.detail.originalEvent,t=0===r.button&&!0===r.ctrlKey,n=2===r.button||t;(!u.modal||n)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});e4.displayName=e7,n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(ey,{...o,...n,ref:r})}).displayName="DropdownMenuGroup",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eb,{...o,...n,ref:r})}).displayName="DropdownMenuLabel";var e9=n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eM,{...o,...n,ref:r})});e9.displayName="DropdownMenuItem",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eC,{...o,...n,ref:r})}).displayName="DropdownMenuCheckboxItem",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eD,{...o,...n,ref:r})}).displayName="DropdownMenuRadioGroup",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eO,{...o,...n,ref:r})}).displayName="DropdownMenuRadioItem",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eT,{...o,...n,ref:r})}).displayName="DropdownMenuItemIndicator",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eA,{...o,...n,ref:r})}).displayName="DropdownMenuSeparator",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eL,{...o,...n,ref:r})}).displayName="DropdownMenuArrow",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eG,{...o,...n,ref:r})}).displayName="DropdownMenuSubTrigger",n.forwardRef((e,r)=>{let{__scopeDropdownMenu:t,...n}=e,o=eY(t);return(0,c.jsx)(eV,{...o,...n,ref:r,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})}).displayName="DropdownMenuSubContent";var e3=e0,e8=e5,e6=e2,re=e4,rr=e9},37206:(e,r,t)=>{t.d(r,{default:()=>o.a});var n=t(75707),o=t.n(n)},41112:(e,r,t)=>{function n({reason:e,children:r}){return r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}}),t(1980)},55711:(e,r,t)=>{t.d(r,{A:()=>n});let n=(0,t(90425).A)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]])},60285:(e,r,t)=>{t.d(r,{A:()=>n});let n=(0,t(90425).A)("ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]])},64054:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0});var t={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return l},createSnapshot:function(){return d}};for(var n in t)Object.defineProperty(r,n,{enumerable:!0,get:t[n]});let o=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class a{disable(){throw o}getStore(){}run(){throw o}exit(){throw o}enterWith(){throw o}static bind(e){return e}}let u="u">typeof globalThis&&globalThis.AsyncLocalStorage;function l(){return u?new u:new a}function i(e){return u?u.bind(e):a.bind(e)}function d(){return u?u.snapshot():function(e,...r){return e(...r)}}},68459:(e,r,t)=>{t.d(r,{A:()=>n});let n=(0,t(90425).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},68635:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return i}});let n=t(95155),o=t(12115),a=t(41112);function u(e){return{default:e&&"default"in e?e.default:e}}t(21957);let l={loader:()=>Promise.resolve(u(()=>null)),loading:null,ssr:!0},i=function(e){let r={...l,...e},t=(0,o.lazy)(()=>r.loader().then(u)),i=r.loading;function d(e){let u=i?(0,n.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,l=!r.ssr||!!r.loading,d=l?o.Suspense:o.Fragment,c=r.ssr?(0,n.jsxs)(n.Fragment,{children:[null,(0,n.jsx)(t,{...e})]}):(0,n.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(t,{...e})});return(0,n.jsx)(d,{...l?{fallback:u}:{},children:c})}return d.displayName="LoadableComponent",d}},75707:(e,r,t)=>{Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=t(73623)._(t(68635));function o(e,r){let t={};"function"==typeof e&&(t.loader=e);let o={...t,...r};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),e.exports=r.default)},80723:(e,r,t)=>{t.d(r,{A:()=>n});let n=(0,t(90425).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3678],{3678:(e,t,r)=>{r.r(t),r.d(t,{default:()=>N});var o=r(95155),i=r(12115),a=r(47650),l=r(70460),n=r(53983),s=r(20727),c=r(91492),u=r(86901),d=r(48368),p=r(97810),m=r(98307),f=r(32967),k=r(37618),g=r(27413),b=r(72140),w=r(74102),x=r(82482);r(65512);var h=r(66609),v=r(74825),y=r(68822),T=r(41585),C=r(31885),I=r(13545);let A={info:{icon:y.A,label:"Info",bgLight:"#e8f4fd",bgDark:"#1a2a3a",borderColor:"#3b82f6",textLight:"#1e40af",textDark:"#93c5fd"},warning:{icon:T.A,label:"Warning",bgLight:"#fef9e7",bgDark:"#2a2514",borderColor:"#f59e0b",textLight:"#92400e",textDark:"#fcd34d"},tip:{icon:C.A,label:"Tip",bgLight:"#ecfdf5",bgDark:"#0f291e",borderColor:"#10b981",textLight:"#065f46",textDark:"#6ee7b7"},error:{icon:I.A,label:"Error",bgLight:"#fef2f2",bgDark:"#2a1414",borderColor:"#ef4444",textLight:"#991b1b",textDark:"#fca5a5"}},M=(0,n.sq)({type:"callout",propSchema:{variant:{default:"info",values:["info","warning","tip","error"]}},content:"inline"},{render:({block:e,contentRef:t,editor:r})=>{let i=e.props.variant||"info",a=A[i],l=a.icon,n="u">typeof document&&document.documentElement.classList.contains("dark");return(0,o.jsxs)("div",{className:"callout-block","data-variant":i,style:{display:"flex",alignItems:"flex-start",gap:"12px",padding:"12px 16px",borderRadius:"8px",borderLeft:`4px solid ${a.borderColor}`,backgroundColor:n?a.bgDark:a.bgLight,margin:"4px 0",position:"relative"},children:[(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"4px",flexShrink:0},children:[(0,o.jsx)("select",{value:i,onChange:t=>{r.updateBlock(e,{props:{variant:t.target.value}})},contentEditable:!1,style:{background:"transparent",border:"none",cursor:"pointer",fontSize:"0",width:"20px",height:"20px",position:"absolute",top:"12px",left:"16px",opacity:0,zIndex:2},children:Object.entries(A).map(([e,t])=>(0,o.jsx)("option",{value:e,children:t.label},e))}),(0,o.jsx)("div",{style:{color:a.borderColor,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",position:"relative",zIndex:1},title:`Click to change type (${a.label})`,children:(0,o.jsx)(l,{size:20})})]}),(0,o.jsx)("div",{ref:t,style:{flex:1,minWidth:0,color:n?a.textDark:a.textLight}})]})},toExternalHTML:({block:e,contentRef:t})=>{let r=A[e.props.variant||"info"],i=r.icon;return(0,o.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",gap:"12px",padding:"12px 16px",borderRadius:"8px",borderLeft:`4px solid ${r.borderColor}`,backgroundColor:r.bgLight},children:[(0,o.jsx)(i,{size:20,style:{color:r.borderColor}}),(0,o.jsx)("div",{ref:t,style:{flex:1}})]})}}),j=v.B.create({blockSpecs:{...c.W,callout:M()}});var E=r(18496),F=r(89239);let S=new Map;function P(e){S.set(e.messageId,e)}function L(e){S.delete(e)}let z=[{action:"improve",label:"Improve",icon:u.A},{action:"simplify",label:"Simplify",icon:d.A},{action:"expand",label:"Expand",icon:p.A},{action:"summarize",label:"Summarize",icon:m.A},{action:"fix-grammar",label:"Fix grammar",icon:f.A}];function B({onAction:e,...t}){let r=(0,n.rm)(),i=(0,n.uw)(),a=(0,n.er)({editor:i,selector:({editor:e})=>{let{from:t,to:r}=e.prosemirrorState.selection;return t!==r}})??!1;return(0,o.jsxs)(n.PT,{...t,children:[(0,n.Db)(t.blockTypeSelectItems),(0,o.jsx)("div",{className:"mx-1 h-4 w-px bg-border"}),(0,o.jsxs)(r.Generic.Menu.Root,{position:"bottom-start",children:[(0,o.jsx)(r.Generic.Menu.Trigger,{children:(0,o.jsx)(r.FormattingToolbar.Button,{className:"bn-button",label:"Ask AI",mainTooltip:"Ask AI",isDisabled:!a,children:(0,o.jsxs)("span",{className:"flex items-center gap-1 text-xs",children:[(0,o.jsx)(u.A,{className:"h-3 w-3"}),"Ask AI"]})})}),(0,o.jsx)(r.Generic.Menu.Dropdown,{children:z.map(({action:t,label:i,icon:a})=>(0,o.jsx)(r.Generic.Menu.Item,{icon:(0,o.jsx)(a,{size:14}),onClick:()=>e(t),children:i},t))})]})]})}function D(e){let t=e.replace(/^---[\s\S]*?---/m,"").replace(/[#*_`~\[\]()>|\\-]/g," ").trim();return t?t.split(/\s+/).filter(Boolean).length:0}async function R(e,t,r){let o=await fetch("/api/ai/write",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:e,action:t,...r?{language:r}:{}})});if(!o.ok)throw Error(`AI write failed: ${o.status}`);let i=o.body?.getReader();if(!i)throw Error("No response body");let a=new TextDecoder,l="";for(;;){let{done:e,value:t}=await i.read();if(e)break;l+=a.decode(t,{stream:!0})}return l.trim()}function N({initialContent:e,filePath:t,onSave:r,onStatusChange:p,onWordCountChange:f,readOnly:v=!1}){let{resolvedTheme:y}=(0,l.D)(),T=(0,E.M)(e=>e.chatPanelOpen),C=(0,E.M)(e=>e.setChatPanelOpen),[I,A]=(0,i.useState)("idle"),M=(0,i.useRef)(null),z=(0,i.useRef)(e),N=(0,i.useRef)(t),_=(0,i.useRef)(!0),$=(0,i.useRef)(null),H=(0,i.useRef)(e),[O,V]=(0,i.useState)(null),[U,W]=(0,i.useState)(null),[q,G]=(0,i.useState)(null),[J,K]=(0,i.useState)(140),Q=(0,i.useRef)(null),[X,Y]=(0,i.useState)(null),Z=(0,i.useRef)(null),[ee,et]=(0,i.useState)(260),er=(0,i.useRef)(null),[eo,ei]=(0,i.useState)(null),ea=(0,n.Hx)({schema:j,domAttributes:{editor:{class:"clawpad-editor",style:"font-family: var(--font-geist-sans); font-size: 16px; line-height: 1.6;"}}});$.current!==ea&&($.current=ea,_.current=!0),(0,i.useEffect)(()=>{N.current=t},[t]),(0,i.useEffect)(()=>{Z.current=X},[X]);let el=(0,i.useCallback)((e,t,r=12)=>{let o=window.innerWidth-t-r;return Math.max(r,Math.min(e,o))},[]),en=(0,i.useCallback)((e,t)=>{let r=ea?._tiptapEditor;if(!r?.view||"number"!=typeof e||"number"!=typeof t)return null;try{let o=r.view.coordsAtPos(e,1),i=r.view.coordsAtPos(t,-1);return{left:o.left,bottom:i.bottom,width:Math.max(0,i.right-o.left)}}catch{return null}},[ea]),es=(0,i.useCallback)(e=>{if("u"<typeof document)return null;let t=ea.domElement;if(!t)return null;let r=t.querySelectorAll("done"===e?'[data-style-type="backgroundColor"][data-value="ai-preview-done"]':'[data-style-type="backgroundColor"][data-value="ai-preview-stream"]');if(0===r.length)return null;let o=r[0].getBoundingClientRect(),i=o.bottom;return r.forEach(e=>{let t=e.getBoundingClientRect();t.bottom>i&&(i=t.bottom)}),{left:o.left,bottom:i,width:o.width}},[ea]),ec=(0,i.useCallback)((e,t,r)=>e?{top:e.bottom+r,left:el(e.left,t)}:null,[el]),eu=(0,i.useMemo)(()=>eo?ec(eo.anchor,ee,8):null,[eo,ee,ec,8]);(0,i.useEffect)(()=>{U&&O?G(ec(U,J,8)):G(null)},[U,O,J,ec,8]),(0,i.useLayoutEffect)(()=>{O&&Q.current&&K(Q.current.getBoundingClientRect().width)},[O]),(0,i.useLayoutEffect)(()=>{eo?.messageId&&er.current&&et(er.current.getBoundingClientRect().width)},[eo?.messageId]);let ed=(0,i.useCallback)(e=>{A(e),p?.(e)},[p]),ep=(0,i.useCallback)(async e=>{ed("saving");try{let t=await fetch(`/api/files/pages/${encodeURIComponent(N.current)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e})});if(!t.ok)throw Error(`Save failed: ${t.status}`);ed("saved"),H.current=e,r?.(e)}catch(e){console.error("Failed to save:",e),ed("error")}},[ed,r]),em=(0,i.useMemo)(()=>async e=>{let t=(0,n.HN)(ea).filter(e=>"Divider"!==e.title),r=[{title:"Ask AI",onItemClick:async()=>{let e=window.prompt("What would you like AI to write?");if(!e?.trim())return;let t=ea.getTextCursorPosition().block;try{let r=await R(e,"continue"),o=await ea.tryParseMarkdownToBlocks(r);ea.insertBlocks(o,t,"after")}catch(e){console.error("Ask AI failed:",e)}},aliases:["ai","ask","prompt","generate"],group:"AI",icon:(0,o.jsx)(u.A,{size:18}),key:"ask_ai"},{title:"Extract Tasks",onItemClick:async()=>{let e=ea.document,t=await ea.blocksToMarkdownLossy(e);if(!t.trim())return;let r=ea.getTextCursorPosition().block;try{let e=(await R(t,"summarize")).split("\n").map(e=>e.replace(/^[-*•]\s*/,"").trim()).filter(Boolean).map(e=>({type:"checkListItem",props:{checked:!1},content:[{type:"text",text:e,styles:{}}]}));e.length>0&&ea.insertBlocks(e,r,"after")}catch(e){console.error("Extract tasks failed:",e)}},aliases:["tasks","todo","checklist","extract"],group:"AI",icon:(0,o.jsx)(m.A,{size:18}),key:"extract_tasks"},{title:"Improve Writing",onItemClick:async()=>{let e=ea.getTextCursorPosition().block,t=await ea.blocksToMarkdownLossy([e]);if(t.trim())try{let r=await R(t,"improve"),o=await ea.tryParseMarkdownToBlocks(r);ea.replaceBlocks([e],o)}catch(e){console.error("Improve writing failed:",e)}},aliases:["improve","rewrite","better"],group:"AI",icon:(0,o.jsx)(k.A,{size:18}),key:"improve_writing"},{title:"Summarize",onItemClick:async()=>{let e=ea.document,t=await ea.blocksToMarkdownLossy(e);if(!t.trim())return;let r=ea.getTextCursorPosition().block;try{let e=await R(t,"summarize"),o=await ea.tryParseMarkdownToBlocks(e);ea.insertBlocks(o,r,"after")}catch(e){console.error("Summarize failed:",e)}},aliases:["summarize","summary","tldr"],group:"AI",icon:(0,o.jsx)(d.A,{size:18}),key:"summarize"},{title:"Translate",onItemClick:async()=>{let e=window.prompt("Translate to which language?","Arabic");if(!e?.trim())return;let t=ea.getTextCursorPosition().block,r=await ea.blocksToMarkdownLossy([t]);if(r.trim())try{let o=await R(r,"translate",e),i=await ea.tryParseMarkdownToBlocks(o);ea.insertBlocks(i,t,"after")}catch(e){console.error("Translate failed:",e)}},aliases:["translate","language","arabic","english"],group:"AI",icon:(0,o.jsx)(g.A,{size:18}),key:"translate"},{title:"Daily Note",onItemClick:()=>{let e=new Date().toISOString().split("T")[0],t=ea.getTextCursorPosition().block;ea.insertBlocks([{type:"heading",props:{level:2},content:[{type:"text",text:e,styles:{}}]}],t,"after")},aliases:["daily","date","today","note"],group:"Insert",icon:(0,o.jsx)(b.A,{size:18}),key:"daily_note"},{title:"Callout",onItemClick:()=>{let e=ea.getTextCursorPosition().block;ea.insertBlocks([{type:"callout",props:{variant:"info"},content:[{type:"text",text:"Type your callout text here…",styles:{}}]}],e,"after")},aliases:["callout","info","warning","tip","note","admonition"],group:"Insert",icon:(0,o.jsx)(w.A,{size:18}),key:"callout"},{title:"Divider",onItemClick:()=>{let e=ea.getTextCursorPosition().block;ea.insertBlocks([{type:"divider"}],e,"after")},aliases:["divider","hr","line","separator","rule"],group:"Insert",icon:(0,o.jsx)(x.A,{size:18}),key:"divider"}];return(0,c.ac)([...r,...t],e)},[ea]);(0,i.useEffect)(()=>{let t=!1;return(async()=>{let r=ea.blocksToMarkdownLossy(ea.document),o=r.trim().length>0,i=o&&r!==H.current,a=r!==e&&(!i||!o);a&&(_.current=!0);try{if(a){let r=await ea.tryParseMarkdownToBlocks(e.trim()?e:" ");t||ea.replaceBlocks(ea.document,r)}}catch(e){console.error("Failed to parse markdown:",e)}finally{requestAnimationFrame(()=>{if(t)return;let r=a?e:ea.blocksToMarkdownLossy(ea.document);z.current=r,a&&(H.current=e),f?.(D(r)),_.current=!1})}})(),()=>{t=!0}},[ea,e,f]);let ef=(0,i.useCallback)(()=>{if(v)return;let e=ea.blocksToMarkdownLossy(ea.document);if(z.current=e,f?.(D(e)),!_.current){if(e===H.current)return void ed("saved");ed("unsaved"),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>ep(e),1e3)}},[ea,v,ed,ep,f]);(0,i.useEffect)(()=>()=>{M.current&&(clearTimeout(M.current),"unsaved"===I&&ep(z.current))},[]),(0,i.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key&&(e.preventDefault(),M.current&&clearTimeout(M.current),ep(z.current))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[ep]);let ek=(0,i.useCallback)(()=>{let e=ea.getSelection();return e?.blocks?e.blocks.map(e=>e.id):[]},[ea]),eg=(0,i.useCallback)((e,t)=>{let r=e?.state?.schema?.marks;if(!r)return null;let o=r.backgroundColor??r.highlight??r.textStyle;if(!o)return null;let i=o.spec?.attrs??{};return"stringValue"in i?o.create({stringValue:t}):"backgroundColor"in i?o.create({backgroundColor:t}):"color"in i?o.create({color:t}):o.create()},[]),eb=(0,i.useCallback)((e,t)=>{let r=e?.state?.schema?.marks;if(!r)return null;let o=r.textColor??r.textStyle;if(!o)return null;let i=o.spec?.attrs??{};return"stringValue"in i?o.create({stringValue:t}):"color"in i?o.create({color:t}):o.create()},[]),ew=(0,i.useCallback)((e,t,r,o)=>{let i=eg(e,"ai-preview-strike"),a=eg(e,"ai-preview-stream"),l=eg(e,"ai-preview-done");i&&t.removeMark(r,o,i),a&&t.removeMark(r,o,a),l&&t.removeMark(r,o,l);let n=eb(e,"ai-preview-strike");n&&t.removeMark(r,o,n)},[eg,eb]),ex=(0,i.useCallback)((e,t)=>{let r=e?.state?.storedMarks;if(!e||!r||0===r.length)return;let o=r.filter(e=>e.type?.name!=="strike"&&e.attrs?.backgroundColor!=="var(--cp-ai-preview-strike)"&&e.attrs?.backgroundColor!=="var(--cp-ai-preview-stream)"&&e.attrs?.backgroundColor!=="var(--cp-ai-preview-done)"&&e.attrs?.color!=="var(--cp-ai-preview-strike-text)"&&e.attrs?.stringValue!=="ai-preview-strike"&&e.attrs?.stringValue!=="ai-preview-stream"&&e.attrs?.stringValue!=="ai-preview-done"&&!0);if(o.length===r.length)return;if(t)return void t.setStoredMarks(o);let i=e.state.tr;i.setStoredMarks(o),i.setMeta("addToHistory",!1),e.view.dispatch(i)},[]),eh=(0,i.useCallback)((e,t,r)=>{let o=ea?._tiptapEditor;if(!o||e===t)return;let i=o.state.tr,a=o.state.schema.marks.strike;if(r){a&&i.addMark(e,t,a.create());let r=eg(o,"ai-preview-strike");r&&i.addMark(e,t,r);let l=eb(o,"ai-preview-strike");l&&i.addMark(e,t,l)}else a&&i.removeMark(e,t,a),ew(o,i,e,t);i.setMeta("addToHistory",!1),o.view.dispatch(i)},[ea,eg,eb,ew]),ev=(0,i.useCallback)((e,t,r="streaming")=>{let o=ea?._tiptapEditor;if(!o)return e;let i=o.state.tr;if(i.insertText(t,e.previewFrom,e.previewTo),t){let a=eg(o,"done"===r?"ai-preview-done":"ai-preview-stream");a&&i.addMark(e.previewFrom,e.previewFrom+t.length,a);let l=o.state.schema.marks.strike;l&&i.removeMark(e.previewFrom,e.previewFrom+t.length,l)}return i.setMeta("addToHistory",!1),o.view.dispatch(i),{...e,previewTo:e.previewFrom+t.length}},[ea,eg]),ey=(0,i.useCallback)(e=>{if(!X)return;let t=ea?._tiptapEditor;if(!t)return;let r=t.state.tr;if(X.previewFrom!==X.previewTo&&r.delete(X.previewFrom,X.previewTo),e?.removeStrike){ew(t,r,X.from,X.to);let e=t.state.schema.marks.strike;e&&r.removeMark(X.from,X.to,e)}ex(t,r),r.setMeta("addToHistory",!1),t.view.dispatch(r),Y(null)},[X,ea,ew,ex]),eT=(0,i.useCallback)(e=>{if(v)return;let t=crypto.randomUUID(),r=ek(),o=ea?._tiptapEditor,i="number"==typeof o?.state?.selection?.from?o.state.selection.from:void 0,a="number"==typeof o?.state?.selection?.to?o.state.selection.to:void 0;if("number"!=typeof i||"number"!=typeof a||i===a)return void h.oR.error("Select text to use AI");let l=("function"==typeof o?.state?.doc?.textBetween?o.state.doc.textBetween(i,a,"\n"):"").trim();if(!l)return void h.oR.error("Select text to use AI");let n=en(i,a);P({messageId:t,pagePath:N.current,action:e,selectionText:l,blockIds:r,selectionFrom:i,selectionTo:a,anchor:n??void 0,createdAt:Date.now()}),ei(null),V("loading"),W(n??null),Y({messageId:t,from:i,to:a,previewFrom:a,previewTo:a}),eh(i,a,!0),T||C(!0),window.dispatchEvent(new CustomEvent("clawpad:ai-action",{detail:{messageId:t,action:e,selection:l,pagePath:N.current}}))},[v,ek,T,C,ea,eh,en]);(0,i.useEffect)(()=>{let e=e=>{let t=e.detail?.messageId,r=e.detail?.text??"";if(!t)return;let o=S.get(t);if(!o||o.pagePath&&o.pagePath!==N.current)return;let i=o.anchor??("number"==typeof o.selectionFrom&&"number"==typeof o.selectionTo?en(o.selectionFrom,o.selectionTo):null);V("streaming"),W(i??null);let a=Z.current,l=a;a&&a.messageId===t||"number"!=typeof o.selectionFrom||"number"!=typeof o.selectionTo||(l={messageId:t,from:o.selectionFrom,to:o.selectionTo,previewFrom:o.selectionTo,previewTo:o.selectionTo},eh(o.selectionFrom,o.selectionTo,!0)),l&&Y(ev(l,r,"streaming"))};return window.addEventListener("clawpad:ai-stream",e),()=>window.removeEventListener("clawpad:ai-stream",e)},[eh,ev,en,es]),(0,i.useEffect)(()=>{let e=e=>{let t=e.detail?.messageId,r=e.detail?.text;if(!t||!r?.trim())return;let o=S.get(t);if(!o)return;if(o.pagePath&&o.pagePath!==N.current)return void L(t);let i=o.anchor??("number"==typeof o.selectionFrom&&"number"==typeof o.selectionTo?en(o.selectionFrom,o.selectionTo):null);V("done"),W(i??null);let a=r.trim(),l=Z.current,n=l;l&&l.messageId===t||"number"!=typeof o.selectionFrom||"number"!=typeof o.selectionTo||(n={messageId:t,from:o.selectionFrom,to:o.selectionTo,previewFrom:o.selectionTo,previewTo:o.selectionTo},eh(o.selectionFrom,o.selectionTo,!0));let s=n;n&&Y(s=ev(n,a,"done"));let c=(s?en(s.previewFrom,s.previewTo):null)??i??{left:0,bottom:0};ei({messageId:t,text:r.trim(),action:o.action,selectionText:o.selectionText,blockIds:o.blockIds,selectionFrom:o.selectionFrom,selectionTo:o.selectionTo,anchor:c}),requestAnimationFrame(()=>{let e=es("done");e&&ei(r=>r&&r.messageId===t?{...r,anchor:e}:r)})};return window.addEventListener("clawpad:ai-result",e),()=>window.removeEventListener("clawpad:ai-result",e)},[eh,ev,en,es]);let eC=(0,i.useCallback)(e=>{let t=r=>{for(let o of r){if(o?.id===e)return o;if(Array.isArray(o?.children)){let e=t(o.children);if(e)return e}}return null};return t(ea.document)},[ea]),eI=(0,i.useCallback)(()=>{if(!eo)return;let e=ea?._tiptapEditor,t=X?.from??eo.selectionFrom,r=X?.to??eo.selectionTo;if(!e||"number"!=typeof t||"number"!=typeof r)return void h.oR.error("Could not apply AI result: selection unavailable");let o=e.state.doc.textBetween(t,r,"\n").trim(),i=eo.selectionText.trim();if(i&&o!==i)return void h.oR.error("Could not apply AI result: selection changed");let a=e.state.tr;X&&X.previewFrom!==X.previewTo&&a.delete(X.previewFrom,X.previewTo),ew(e,a,t,r);let l=e.state.schema.marks.strike;l&&a.removeMark(t,r,l);let n=a.mapping.map(t),s=a.mapping.map(r);ex(e,a),a.insertText(eo.text,n,s),e.view.dispatch(a),L(eo.messageId),Y(null),V(null),W(null),ei(null)},[eo,ea,X,ew,ex]),eA=(0,i.useCallback)(async()=>{if(!eo)return;let e=eo.blockIds[eo.blockIds.length-1];if(!e)return void h.oR.error("Could not insert: no target block");let t=eC(e);if(!t)return void h.oR.error("Could not insert: target block missing");try{let e=await ea.tryParseMarkdownToBlocks(eo.text.trim());ey({removeStrike:!0}),ea.insertBlocks(e,t,"after"),L(eo.messageId),V(null),W(null),ei(null)}catch(e){console.error("Failed to insert AI result:",e),h.oR.error("Could not insert AI result")}},[eo,ea,eC,ey]),eM=(0,i.useCallback)(()=>{if(!eo)return;ey({removeStrike:!0}),L(eo.messageId);let e=crypto.randomUUID();P({messageId:e,pagePath:N.current,action:eo.action,selectionText:eo.selectionText,blockIds:eo.blockIds,selectionFrom:eo.selectionFrom,selectionTo:eo.selectionTo,anchor:eo.anchor,createdAt:Date.now()}),T||C(!0),window.dispatchEvent(new CustomEvent("clawpad:ai-action",{detail:{messageId:e,action:eo.action,selection:eo.selectionText,pagePath:N.current}})),V("loading"),W(eo.anchor),"number"==typeof eo.selectionFrom&&"number"==typeof eo.selectionTo&&(Y({messageId:e,from:eo.selectionFrom,to:eo.selectionTo,previewFrom:eo.selectionTo,previewTo:eo.selectionTo}),eh(eo.selectionFrom,eo.selectionTo,!0)),ei(null)},[eo,T,C,ey,eh]),ej=(0,i.useCallback)(()=>{eo&&(ey({removeStrike:!0}),L(eo.messageId),V(null),W(null),ei(null))},[eo,ey]),eE="u">typeof document?document.documentElement:null,eF=O&&"done"!==O&&q?(0,o.jsxs)("div",{ref:Q,className:"fixed z-50 flex items-center gap-2 rounded-full border bg-popover px-2 py-1 text-xs text-muted-foreground shadow-sm ai-preview-loading",style:{position:"fixed",top:q.top,left:q.left},children:[(0,o.jsx)("span",{className:"ai-preview-spinner"}),"loading"===O?"Thinking…":"Streaming…"]}):null,eS=eo&&eu?(0,o.jsxs)("div",{ref:er,className:"fixed z-50 flex flex-wrap gap-1 rounded-lg border bg-popover p-1 shadow-lg ai-preview-menu",style:{position:"fixed",top:eu.top,left:eu.left},children:[(0,o.jsx)(F.$,{size:"sm",className:"h-7 px-2 text-xs",onClick:eI,children:"Replace selection"}),(0,o.jsx)(F.$,{size:"sm",variant:"secondary",className:"h-7 px-2 text-xs",onClick:eA,children:"Insert below"}),(0,o.jsx)(F.$,{size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:eM,children:"Try again"}),(0,o.jsx)(F.$,{size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:ej,children:"Discard"})]}):null;return(0,o.jsxs)("div",{className:"clawpad-editor-wrapper",children:[(0,o.jsxs)(s.NP,{editor:ea,editable:!v,onChange:ef,theme:"dark"===y?"dark":"light","data-theming-css-variables-demo":!0,slashMenu:!1,formattingToolbar:!1,children:[(0,o.jsx)(n.ge,{triggerCharacter:"/",getItems:em}),(0,o.jsx)(n.T9,{formattingToolbar:e=>(0,o.jsx)(B,{...e,onAction:eT})})]}),eE?(0,a.createPortal)(eF,eE):eF,eE?(0,a.createPortal)(eS,eE):eS]})}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[385],{18460:(e,t,r)=>{r.d(t,{F:()=>n});var s=r(29722);let i=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,l=s.$,n=(e,t)=>r=>{var s;if((null==t?void 0:t.variants)==null)return l(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:n,defaultVariants:u}=t,h=Object.keys(n).map(e=>{let t=null==r?void 0:r[e],s=null==u?void 0:u[e];if(null===t)return null;let l=i(t)||i(s);return n[e][l]}),o=r&&Object.entries(r).reduce((e,t)=>{let[r,s]=t;return void 0===s||(e[r]=s),e},{});return l(e,h,null==t||null==(s=t.compoundVariants)?void 0:s.reduce((e,t)=>{let{class:r,className:s,...i}=t;return Object.entries(i).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...u,...o}[t]):({...u,...o})[t]===r})?[...e,r,s]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},73321:(e,t,r)=>{var s=r(74645);r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}}),r.o(s,"useSearchParams")&&r.d(t,{useSearchParams:function(){return s.useSearchParams}})},76094:(e,t,r)=>{r.d(t,{N:()=>h});var s=r(12115),i=r(68599),l=r(47527),n=r(42442),u=r(95155);function h(e){let t=e+"CollectionProvider",[r,h]=(0,i.A)(t),[o,f]=r(t,{collectionRef:{current:null},itemMap:new Map}),a=e=>{let{scope:t,children:r}=e,i=s.useRef(null),l=s.useRef(new Map).current;return(0,u.jsx)(o,{scope:t,itemMap:l,collectionRef:i,children:r})};a.displayName=t;let c=e+"CollectionSlot",d=(0,n.TL)(c),y=s.forwardRef((e,t)=>{let{scope:r,children:s}=e,i=f(c,r),n=(0,l.s)(t,i.collectionRef);return(0,u.jsx)(d,{ref:n,children:s})});y.displayName=c;let p=e+"CollectionItemSlot",k="data-radix-collection-item",m=(0,n.TL)(p),v=s.forwardRef((e,t)=>{let{scope:r,children:i,...n}=e,h=s.useRef(null),o=(0,l.s)(t,h),a=f(p,r);return s.useEffect(()=>(a.itemMap.set(h,{ref:h,...n}),()=>void a.itemMap.delete(h))),(0,u.jsx)(m,{...{[k]:""},ref:o,children:i})});return v.displayName=p,[{Provider:a,Slot:y,ItemSlot:v},function(t){let r=f(e+"CollectionConsumer",t);return s.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${k}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},h]}var o=new WeakMap;function f(e,t){var r,s;let i,l,n;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let u=(r=e,s=t,i=r.length,(n=(l=a(s))>=0?l:i+l)<0||n>=i?-1:n);return -1===u?void 0:e[u]}function a(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],o.set(this,!0)}set(e,t){return o.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,r){let s,i=this.has(t),l=this.#e.length,n=a(e),u=n>=0?n:l+n,h=u<0||u>=l?-1:u;if(h===this.size||i&&h===this.size-1||-1===h)return this.set(t,r),this;let o=this.size+ +!i;n<0&&u++;let f=[...this.#e],c=!1;for(let e=u;e<o;e++)if(u===e){let l=f[e];f[e]===t&&(l=f[e+1]),i&&this.delete(t),s=this.get(l),this.set(t,r)}else{c||f[e-1]!==t||(c=!0);let r=f[c?e:e-1],i=s;s=this.get(r),this.delete(r),this.set(r,i)}return this}with(t,r,s){let i=new e(this);return i.insert(t,r,s),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,r){let s=this.#e.indexOf(e);return -1===s?this:this.insert(s,t,r)}after(e){let t=this.#e.indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,r){let s=this.#e.indexOf(e);return -1===s?this:this.insert(s+1,t,r)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=f(this.#e,e);if(void 0!==t)return this.get(t)}entryAt(e){let t=f(this.#e,e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return f(this.#e,e)}from(e,t){let r=this.indexOf(e);if(-1===r)return;let s=r+t;return s<0&&(s=0),s>=this.size&&(s=this.size-1),this.at(s)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let s=r+t;return s<0&&(s=0),s>=this.size&&(s=this.size-1),this.keyAt(s)}find(e,t){let r=0;for(let s of this){if(Reflect.apply(e,t,[s,r,this]))return s;r++}}findIndex(e,t){let r=0;for(let s of this){if(Reflect.apply(e,t,[s,r,this]))return r;r++}return -1}filter(t,r){let s=[],i=0;for(let e of this)Reflect.apply(t,r,[e,i,this])&&s.push(e),i++;return new e(s)}map(t,r){let s=[],i=0;for(let e of this)s.push([e[0],Reflect.apply(t,r,[e,i,this])]),i++;return new e(s)}reduce(...e){let[t,r]=e,s=0,i=r??this.at(0);for(let r of this)i=0===s&&1===e.length?r:Reflect.apply(t,this,[i,r,s,this]),s++;return i}reduceRight(...e){let[t,r]=e,s=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let i=this.at(r);s=r===this.size-1&&1===e.length?i:Reflect.apply(t,this,[s,i,r,this])}return s}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),s=this.get(r);t.set(r,s)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let s=new e,i=this.size-1;if(void 0===t)return s;t<0&&(t+=this.size),void 0!==r&&r>0&&(i=r-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),r=this.get(t);s.set(t,r)}return s}every(e,t){let r=0;for(let s of this){if(!Reflect.apply(e,t,[s,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let s of this){if(Reflect.apply(e,t,[s,r,this]))return!0;r++}return!1}})}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4559],{1933:(e,t,n)=>{n.d(t,{jH:()=>a});var r=n(12115);n(95155);var o=r.createContext(void 0);function a(e){let t=r.useContext(o);return e||t||"ltr"}},5174:(e,t,n)=>{n.d(t,{A:()=>G});var r,o,a,c,i,u,l,d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function s(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var f=("function"==typeof SuppressedError&&SuppressedError,n(12115)),v="right-scroll-bar-position",p="width-before-scroll-bar";function m(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var h="u">typeof window?f.useLayoutEffect:f.useEffect,g=new WeakMap,y=(void 0===r&&(r={}),(void 0===o&&(o=function(e){return e}),a=[],c=!1,i={read:function(){if(c)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return a.length?a[a.length-1]:null},useMedium:function(e){var t=o(e,c);return a.push(t),function(){a=a.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(c=!0;a.length;){var t=a;a=[],t.forEach(e)}a={push:function(t){return e(t)},filter:function(){return a}}},assignMedium:function(e){c=!0;var t=[];if(a.length){var n=a;a=[],n.forEach(e),t=a}var r=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(r)};o(),a={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),a}}}}).options=d({async:!0,ssr:!1},r),i),b=function(){},E=f.forwardRef(function(e,t){var n,r,o,a,c=f.useRef(null),i=f.useState({onScrollCapture:b,onWheelCapture:b,onTouchMoveCapture:b}),u=i[0],l=i[1],v=e.forwardProps,p=e.children,E=e.className,w=e.removeScrollBar,S=e.enabled,C=e.shards,N=e.sideCar,k=e.noRelative,A=e.noIsolation,M=e.inert,R=e.allowPinchZoom,T=e.as,L=e.gapMode,x=s(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),P=(n=[c,t],r=function(e){return n.forEach(function(t){return m(t,e)})},(o=(0,f.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,a=o.facade,h(function(){var e=g.get(a);if(e){var t=new Set(e),r=new Set(n),o=a.current;t.forEach(function(e){r.has(e)||m(e,null)}),r.forEach(function(e){t.has(e)||m(e,o)})}g.set(a,n)},[n]),a),O=d(d({},x),u);return f.createElement(f.Fragment,null,S&&f.createElement(N,{sideCar:y,removeScrollBar:w,shards:C,noRelative:k,noIsolation:A,inert:M,setCallbacks:l,allowPinchZoom:!!R,lockRef:c,gapMode:L}),v?f.cloneElement(f.Children.only(p),d(d({},O),{ref:P})):f.createElement(void 0===T?"div":T,d({},O,{className:E,ref:P}),p))});E.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},E.classNames={fullWidth:p,zeroRight:v};var w=function(e){var t=e.sideCar,n=s(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return f.createElement(r,d({},n))};w.isSideCarExport=!0;var S=function(){var e=0,t=null;return{add:function(r){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=l||n.nc;return t&&e.setAttribute("nonce",t),e}())){var o,a;(o=t).styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r)),a=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(a)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},C=function(){var e=S();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},N=function(){var e=C();return function(t){return e(t.styles,t.dynamic),null}},k={left:0,top:0,right:0,gap:0},A=function(e){return parseInt(e||"",10)||0},M=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[A(n),A(r),A(o)]},R=function(e){if(void 0===e&&(e="margin"),"u"<typeof window)return k;var t=M(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},T=N(),L="data-scroll-locked",x=function(e,t,n,r){var o=e.left,a=e.top,c=e.right,i=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(i,"px ").concat(r,";\n }\n body[").concat(L,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(c,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(i,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(i,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(v," {\n right: ").concat(i,"px ").concat(r,";\n }\n \n .").concat(p," {\n margin-right: ").concat(i,"px ").concat(r,";\n }\n \n .").concat(v," .").concat(v," {\n right: 0 ").concat(r,";\n }\n \n .").concat(p," .").concat(p," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(L,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(i,"px;\n }\n")},P=function(){var e=parseInt(document.body.getAttribute(L)||"0",10);return isFinite(e)?e:0},O=function(){f.useEffect(function(){return document.body.setAttribute(L,(P()+1).toString()),function(){var e=P()-1;e<=0?document.body.removeAttribute(L):document.body.setAttribute(L,e.toString())}},[])},I=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;O();var a=f.useMemo(function(){return R(o)},[o]);return f.createElement(T,{styles:x(a,!t,o,n?"":"!important")})},F=!1;if("u">typeof window)try{var W=Object.defineProperty({},"passive",{get:function(){return F=!0,!0}});window.addEventListener("test",W,W),window.removeEventListener("test",W,W)}catch(e){F=!1}var j=!!F&&{passive:!1},D=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},_=function(e,t){var n=t.ownerDocument,r=t;do{if("u">typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),B(e,r)){var o=K(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},B=function(e,t){return"v"===e?D(t,"overflowY"):D(t,"overflowX")},K=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},X=function(e,t,n,r,o){var a,c=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),i=c*r,u=n.target,l=t.contains(u),d=!1,s=i>0,f=0,v=0;do{if(!u)break;var p=K(e,u),m=p[0],h=p[1]-p[2]-c*m;(m||h)&&B(e,u)&&(f+=h,v+=m);var g=u.parentNode;u=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!l&&u!==document.body||l&&(t.contains(u)||t===u));return s&&(o&&1>Math.abs(f)||!o&&i>f)?d=!0:!s&&(o&&1>Math.abs(v)||!o&&-i>v)&&(d=!0),d},Y=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},H=function(e){return[e.deltaX,e.deltaY]},q=function(e){return e&&"current"in e?e.current:e},U=0,Z=[];let z=(u=function(e){var t=f.useRef([]),n=f.useRef([0,0]),r=f.useRef(),o=f.useState(U++)[0],a=f.useState(N)[0],c=f.useRef(e);f.useEffect(function(){c.current=e},[e]),f.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(q),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var i=f.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!c.current.allowPinchZoom;var o,a=Y(e),i=n.current,u="deltaX"in e?e.deltaX:i[0]-a[0],l="deltaY"in e?e.deltaY:i[1]-a[1],d=e.target,s=Math.abs(u)>Math.abs(l)?"h":"v";if("touches"in e&&"h"===s&&"range"===d.type)return!1;var f=window.getSelection(),v=f&&f.anchorNode;if(v&&(v===d||v.contains(d)))return!1;var p=_(s,d);if(!p)return!0;if(p?o=s:(o="v"===s?"h":"v",p=_(s,d)),!p)return!1;if(!r.current&&"changedTouches"in e&&(u||l)&&(r.current=o),!o)return!0;var m=r.current||o;return X(m,t,e,"h"===m?u:l,!0)},[]),u=f.useCallback(function(e){if(Z.length&&Z[Z.length-1]===a){var n="deltaY"in e?H(e):Y(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(c.current.shards||[]).map(q).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?i(e,o[0]):!c.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),l=f.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=f.useCallback(function(e){n.current=Y(e),r.current=void 0},[]),s=f.useCallback(function(t){l(t.type,H(t),t.target,i(t,e.lockRef.current))},[]),v=f.useCallback(function(t){l(t.type,Y(t),t.target,i(t,e.lockRef.current))},[]);f.useEffect(function(){return Z.push(a),e.setCallbacks({onScrollCapture:s,onWheelCapture:s,onTouchMoveCapture:v}),document.addEventListener("wheel",u,j),document.addEventListener("touchmove",u,j),document.addEventListener("touchstart",d,j),function(){Z=Z.filter(function(e){return e!==a}),document.removeEventListener("wheel",u,j),document.removeEventListener("touchmove",u,j),document.removeEventListener("touchstart",d,j)}},[]);var p=e.removeScrollBar,m=e.inert;return f.createElement(f.Fragment,null,m?f.createElement(a,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?f.createElement(I,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},y.useMedium(u),w);var $=f.forwardRef(function(e,t){return f.createElement(E,d({},e,{ref:t,sideCar:z}))});$.classNames=E.classNames;let G=$},16313:(e,t,n)=>{let r;n.d(t,{n:()=>v});var o=n(12115),a=n(47527);n(47650);var c=n(42442),i=n(95155),u=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=(0,c.TL)(`Primitive.${t}`),r=o.forwardRef((e,r)=>{let{asChild:o,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,i.jsx)(o?n:t,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),l=n(17347),d="focusScope.autoFocusOnMount",s="focusScope.autoFocusOnUnmount",f={bubbles:!1,cancelable:!0},v=o.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:c,onUnmountAutoFocus:v,...y}=e,[b,E]=o.useState(null),w=(0,l.c)(c),S=(0,l.c)(v),C=o.useRef(null),N=(0,a.s)(t,e=>E(e)),k=o.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;o.useEffect(()=>{if(r){let e=function(e){if(k.paused||!b)return;let t=e.target;b.contains(t)?C.current=t:h(C.current,{select:!0})},t=function(e){if(k.paused||!b)return;let t=e.relatedTarget;null!==t&&(b.contains(t)||h(C.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&h(b)});return b&&n.observe(b,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[r,b,k.paused]),o.useEffect(()=>{if(b){g.add(k);let e=document.activeElement;if(!b.contains(e)){let t=new CustomEvent(d,f);b.addEventListener(d,w),b.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(h(r,{select:t}),document.activeElement!==n)return}(p(b).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&h(b))}return()=>{b.removeEventListener(d,w),setTimeout(()=>{let t=new CustomEvent(s,f);b.addEventListener(s,S),b.dispatchEvent(t),t.defaultPrevented||h(e??document.body,{select:!0}),b.removeEventListener(s,S),g.remove(k)},0)}}},[b,w,S,k]);let A=o.useCallback(e=>{if(!n&&!r||k.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){var a;let t,r=e.currentTarget,[c,i]=[m(t=p(a=r),a),m(t.reverse(),a)];c&&i?e.shiftKey||o!==i?e.shiftKey&&o===c&&(e.preventDefault(),n&&h(i,{select:!0})):(e.preventDefault(),n&&h(c,{select:!0})):o===r&&e.preventDefault()}},[n,r,k.paused]);return(0,i.jsx)(u.div,{tabIndex:-1,...y,ref:N,onKeyDown:A})});function p(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function m(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function h(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}v.displayName="FocusScope";var g=(r=[],{add(e){let t=r[0];e!==t&&t?.pause(),(r=y(r,e)).unshift(e)},remove(e){r=y(r,e),r[0]?.resume()}});function y(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}},22954:(e,t,n)=>{n.d(t,{Eq:()=>l});var r=new WeakMap,o=new WeakMap,a={},c=0,i=function(e){return e&&(e.host||i(e.parentNode))},u=function(e,t,n,u){var l=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var n=i(e);return n&&t.contains(n)?n:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});a[n]||(a[n]=new WeakMap);var d=a[n],s=[],f=new Set,v=new Set(l),p=function(e){!e||f.has(e)||(f.add(e),p(e.parentNode))};l.forEach(p);var m=function(e){!e||v.has(e)||Array.prototype.forEach.call(e.children,function(e){if(f.has(e))m(e);else try{var t=e.getAttribute(u),a=null!==t&&"false"!==t,c=(r.get(e)||0)+1,i=(d.get(e)||0)+1;r.set(e,c),d.set(e,i),s.push(e),1===c&&a&&o.set(e,!0),1===i&&e.setAttribute(n,"true"),a||e.setAttribute(u,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return m(t),f.clear(),c++,function(){s.forEach(function(e){var t=r.get(e)-1,a=d.get(e)-1;r.set(e,t),d.set(e,a),t||(o.has(e)||e.removeAttribute(u),o.delete(e)),a||e.removeAttribute(n)}),--c||(r=new WeakMap,r=new WeakMap,o=new WeakMap,a={})}},l=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("u"<typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),u(r,o,n,"aria-hidden")):function(){return null}}},32007:(e,t,n)=>{n.d(t,{Oh:()=>a});var r=n(12115),o=0;function a(){r.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??c()),document.body.insertAdjacentElement("beforeend",e[1]??c()),o++,()=>{1===o&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),o--}},[])}function c(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6217],{9921:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]])},21628:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},24356:(e,t,r)=>{r.d(t,{bL:()=>d,Qg:()=>i});var n=r(12115);r(47650);var l=r(42442),o=r(95155),a=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let r=(0,l.TL)(`Primitive.${t}`),a=n.forwardRef((e,n)=>{let{asChild:l,...a}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,o.jsx)(l?r:t,{...a,ref:n})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),i=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),s=n.forwardRef((e,t)=>(0,o.jsx)(a.span,{...e,ref:t,style:{...i,...e.style}}));s.displayName="VisuallyHidden";var d=s},27209:(e,t,r)=>{r.d(t,{q:()=>n});function n(e,[t,r]){return Math.min(r,Math.max(t,e))}},33210:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},48368:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},61878:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},64479:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]])},66088:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},89064:(e,t,r)=>{r.d(t,{UC:()=>eA,In:()=>eR,q7:()=>eE,VF:()=>eD,p4:()=>eL,ZL:()=>eP,bL:()=>eM,wn:()=>eH,PP:()=>eK,l9:()=>eT,WT:()=>eN,LM:()=>eI});var n=r(12115),l=r(47650),o=r(27209),a=r(70379),i=r(76094),s=r(47527),d=r(68599),u=r(1933),c=r(22138),p=r(32007),h=r(16313),f=r(89971),v=r(30945),m=r(5494),y=r(42442),w=r(95155),g=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let r=(0,y.TL)(`Primitive.${t}`),l=n.forwardRef((e,n)=>{let{asChild:l,...o}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,w.jsx)(l?r:t,{...o,ref:n})});return l.displayName=`Primitive.${t}`,{...e,[t]:l}},{}),x=r(17347),b=r(98979),S=r(66294),k=r(24356),C=r(22954),j=r(5174),M=[" ","Enter","ArrowUp","ArrowDown"],T=[" ","Enter"],N="Select",[R,P,A]=(0,i.N)(N),[I,E]=(0,d.A)(N,[A,v.Bk]),L=(0,v.Bk)(),[D,K]=I(N),[H,_]=I(N),B=e=>{let{__scopeSelect:t,children:r,open:l,defaultOpen:o,onOpenChange:a,value:i,defaultValue:s,onValueChange:d,dir:c,name:p,autoComplete:h,disabled:m,required:y,form:g}=e,x=L(t),[S,k]=n.useState(null),[C,j]=n.useState(null),[M,T]=n.useState(!1),P=(0,u.jH)(c),[A,I]=(0,b.i)({prop:l,defaultProp:o??!1,onChange:a,caller:N}),[E,K]=(0,b.i)({prop:i,defaultProp:s,onChange:d,caller:N}),_=n.useRef(null),B=!S||g||!!S.closest("form"),[V,q]=n.useState(new Set),z=Array.from(V).map(e=>e.props.value).join(";");return(0,w.jsx)(v.bL,{...x,children:(0,w.jsxs)(D,{required:y,scope:t,trigger:S,onTriggerChange:k,valueNode:C,onValueNodeChange:j,valueNodeHasChildren:M,onValueNodeHasChildrenChange:T,contentId:(0,f.B)(),value:E,onValueChange:K,open:A,onOpenChange:I,dir:P,triggerPointerDownPosRef:_,disabled:m,children:[(0,w.jsx)(R.Provider,{scope:t,children:(0,w.jsx)(H,{scope:e.__scopeSelect,onNativeOptionAdd:n.useCallback(e=>{q(t=>new Set(t).add(e))},[]),onNativeOptionRemove:n.useCallback(e=>{q(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),B?(0,w.jsxs)(eS,{"aria-hidden":!0,required:y,tabIndex:-1,name:p,autoComplete:h,value:E,onChange:e=>K(e.target.value),disabled:m,form:g,children:[void 0===E?(0,w.jsx)("option",{value:""}):null,Array.from(V)]},z):null]})})};B.displayName=N;var V="SelectTrigger",q=n.forwardRef((e,t)=>{let{__scopeSelect:r,disabled:l=!1,...o}=e,i=L(r),d=K(V,r),u=d.disabled||l,c=(0,s.s)(t,d.onTriggerChange),p=P(r),h=n.useRef("touch"),[f,m,y]=eC(e=>{let t=p().filter(e=>!e.disabled),r=t.find(e=>e.value===d.value),n=ej(t,e,r);void 0!==n&&d.onValueChange(n.value)}),x=e=>{u||(d.onOpenChange(!0),y()),e&&(d.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,w.jsx)(v.Mz,{asChild:!0,...i,children:(0,w.jsx)(g.button,{type:"button",role:"combobox","aria-controls":d.contentId,"aria-expanded":d.open,"aria-required":d.required,"aria-autocomplete":"none",dir:d.dir,"data-state":d.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":ek(d.value)?"":void 0,...o,ref:c,onClick:(0,a.mK)(o.onClick,e=>{e.currentTarget.focus(),"mouse"!==h.current&&x(e)}),onPointerDown:(0,a.mK)(o.onPointerDown,e=>{h.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(x(e),e.preventDefault())}),onKeyDown:(0,a.mK)(o.onKeyDown,e=>{let t=""!==f.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||m(e.key),(!t||" "!==e.key)&&M.includes(e.key)&&(x(),e.preventDefault())})})})});q.displayName=V;var z="SelectValue",O=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:n,style:l,children:o,placeholder:a="",...i}=e,d=K(z,r),{onValueNodeHasChildrenChange:u}=d,c=void 0!==o,p=(0,s.s)(t,d.onValueNodeChange);return(0,S.N)(()=>{u(c)},[u,c]),(0,w.jsx)(g.span,{...i,ref:p,style:{pointerEvents:"none"},children:ek(d.value)?(0,w.jsx)(w.Fragment,{children:a}):o})});O.displayName=z;var F=n.forwardRef((e,t)=>{let{__scopeSelect:r,children:n,...l}=e;return(0,w.jsx)(g.span,{"aria-hidden":!0,...l,ref:t,children:n||"▼"})});F.displayName="SelectIcon";var W=e=>(0,w.jsx)(m.Z,{asChild:!0,...e});W.displayName="SelectPortal";var U="SelectContent",$=n.forwardRef((e,t)=>{let r=K(U,e.__scopeSelect),[o,a]=n.useState();return((0,S.N)(()=>{a(new DocumentFragment)},[]),r.open)?(0,w.jsx)(Y,{...e,ref:t}):o?l.createPortal((0,w.jsx)(Z,{scope:e.__scopeSelect,children:(0,w.jsx)(R.Slot,{scope:e.__scopeSelect,children:(0,w.jsx)("div",{children:e.children})})}),o):null});$.displayName=U;var[Z,Q]=I(U),X=(0,y.TL)("SelectContent.RemoveScroll"),Y=n.forwardRef((e,t)=>{let{__scopeSelect:r,position:l="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:i,onPointerDownOutside:d,side:u,sideOffset:f,align:v,alignOffset:m,arrowPadding:y,collisionBoundary:g,collisionPadding:x,sticky:b,hideWhenDetached:S,avoidCollisions:k,...M}=e,T=K(U,r),[N,R]=n.useState(null),[A,I]=n.useState(null),E=(0,s.s)(t,e=>R(e)),[L,D]=n.useState(null),[H,_]=n.useState(null),B=P(r),[V,q]=n.useState(!1),z=n.useRef(!1);n.useEffect(()=>{if(N)return(0,C.Eq)(N)},[N]),(0,p.Oh)();let O=n.useCallback(e=>{let[t,...r]=B().map(e=>e.ref.current),[n]=r.slice(-1),l=document.activeElement;for(let r of e)if(r===l||(r?.scrollIntoView({block:"nearest"}),r===t&&A&&(A.scrollTop=0),r===n&&A&&(A.scrollTop=A.scrollHeight),r?.focus(),document.activeElement!==l))return},[B,A]),F=n.useCallback(()=>O([L,N]),[O,L,N]);n.useEffect(()=>{V&&F()},[V,F]);let{onOpenChange:W,triggerPointerDownPosRef:$}=T;n.useEffect(()=>{if(N){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-($.current?.x??0)),y:Math.abs(Math.round(t.pageY)-($.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():N.contains(r.target)||W(!1),document.removeEventListener("pointermove",t),$.current=null};return null!==$.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[N,W,$]),n.useEffect(()=>{let e=()=>W(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[W]);let[Q,Y]=eC(e=>{let t=B().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=ej(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),ee=n.useCallback((e,t,r)=>{let n=!z.current&&!r;(void 0!==T.value&&T.value===t||n)&&(D(e),n&&(z.current=!0))},[T.value]),et=n.useCallback(()=>N?.focus(),[N]),er=n.useCallback((e,t,r)=>{let n=!z.current&&!r;(void 0!==T.value&&T.value===t||n)&&_(e)},[T.value]),en="popper"===l?J:G,el=en===J?{side:u,sideOffset:f,align:v,alignOffset:m,arrowPadding:y,collisionBoundary:g,collisionPadding:x,sticky:b,hideWhenDetached:S,avoidCollisions:k}:{};return(0,w.jsx)(Z,{scope:r,content:N,viewport:A,onViewportChange:I,itemRefCallback:ee,selectedItem:L,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:F,selectedItemText:H,position:l,isPositioned:V,searchRef:Q,children:(0,w.jsx)(j.A,{as:X,allowPinchZoom:!0,children:(0,w.jsx)(h.n,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,a.mK)(o,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,w.jsx)(c.qW,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:d,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,w.jsx)(en,{role:"listbox",id:T.contentId,"data-state":T.open?"open":"closed",dir:T.dir,onContextMenu:e=>e.preventDefault(),...M,...el,onPlaced:()=>q(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...M.style},onKeyDown:(0,a.mK)(M.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||Y(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=B().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>O(t)),e.preventDefault()}})})})})})})});Y.displayName="SelectContentImpl";var G=n.forwardRef((e,t)=>{let{__scopeSelect:r,onPlaced:l,...a}=e,i=K(U,r),d=Q(U,r),[u,c]=n.useState(null),[p,h]=n.useState(null),f=(0,s.s)(t,e=>h(e)),v=P(r),m=n.useRef(!1),y=n.useRef(!0),{viewport:x,selectedItem:b,selectedItemText:k,focusSelectedItem:C}=d,j=n.useCallback(()=>{if(i.trigger&&i.valueNode&&u&&p&&x&&b&&k){let e=i.trigger.getBoundingClientRect(),t=p.getBoundingClientRect(),r=i.valueNode.getBoundingClientRect(),n=k.getBoundingClientRect();if("rtl"!==i.dir){let l=n.left-t.left,a=r.left-l,i=e.left-a,s=e.width+i,d=Math.max(s,t.width),c=window.innerWidth-10,p=(0,o.q)(a,[10,Math.max(10,c-d)]);u.style.minWidth=s+"px",u.style.left=p+"px"}else{let l=t.right-n.right,a=window.innerWidth-r.right-l,i=window.innerWidth-e.right-a,s=e.width+i,d=Math.max(s,t.width),c=window.innerWidth-10,p=(0,o.q)(a,[10,Math.max(10,c-d)]);u.style.minWidth=s+"px",u.style.right=p+"px"}let a=v(),s=window.innerHeight-20,d=x.scrollHeight,c=window.getComputedStyle(p),h=parseInt(c.borderTopWidth,10),f=parseInt(c.paddingTop,10),y=parseInt(c.borderBottomWidth,10),w=h+f+d+parseInt(c.paddingBottom,10)+y,g=Math.min(5*b.offsetHeight,w),S=window.getComputedStyle(x),C=parseInt(S.paddingTop,10),j=parseInt(S.paddingBottom,10),M=e.top+e.height/2-10,T=b.offsetHeight/2,N=h+f+(b.offsetTop+T);if(N<=M){let e=a.length>0&&b===a[a.length-1].ref.current;u.style.bottom="0px";let t=Math.max(s-M,T+(e?j:0)+(p.clientHeight-x.offsetTop-x.offsetHeight)+y);u.style.height=N+t+"px"}else{let e=a.length>0&&b===a[0].ref.current;u.style.top="0px";let t=Math.max(M,h+x.offsetTop+(e?C:0)+T);u.style.height=t+(w-N)+"px",x.scrollTop=N-M+x.offsetTop}u.style.margin="10px 0",u.style.minHeight=g+"px",u.style.maxHeight=s+"px",l?.(),requestAnimationFrame(()=>m.current=!0)}},[v,i.trigger,i.valueNode,u,p,x,b,k,i.dir,l]);(0,S.N)(()=>j(),[j]);let[M,T]=n.useState();(0,S.N)(()=>{p&&T(window.getComputedStyle(p).zIndex)},[p]);let N=n.useCallback(e=>{e&&!0===y.current&&(j(),C?.(),y.current=!1)},[j,C]);return(0,w.jsx)(ee,{scope:r,contentWrapper:u,shouldExpandOnScrollRef:m,onScrollButtonChange:N,children:(0,w.jsx)("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:M},children:(0,w.jsx)(g.div,{...a,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});G.displayName="SelectItemAlignedPosition";var J=n.forwardRef((e,t)=>{let{__scopeSelect:r,align:n="start",collisionPadding:l=10,...o}=e,a=L(r);return(0,w.jsx)(v.UC,{...a,...o,ref:t,align:n,collisionPadding:l,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});J.displayName="SelectPopperPosition";var[ee,et]=I(U,{}),er="SelectViewport",en=n.forwardRef((e,t)=>{let{__scopeSelect:r,nonce:l,...o}=e,i=Q(er,r),d=et(er,r),u=(0,s.s)(t,i.onViewportChange),c=n.useRef(0);return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,w.jsx)(R.Slot,{scope:r,children:(0,w.jsx)(g.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:(0,a.mK)(o.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=d;if(n?.current&&r){let e=Math.abs(c.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,l=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(l<n){let o=l+e,a=Math.min(n,o),i=o-a;r.style.height=a+"px","0px"===r.style.bottom&&(t.scrollTop=i>0?i:0,r.style.justifyContent="flex-end")}}}c.current=t.scrollTop})})})]})});en.displayName=er;var el="SelectGroup",[eo,ea]=I(el);n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=(0,f.B)();return(0,w.jsx)(eo,{scope:r,id:l,children:(0,w.jsx)(g.div,{role:"group","aria-labelledby":l,...n,ref:t})})}).displayName=el;var ei="SelectLabel";n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=ea(ei,r);return(0,w.jsx)(g.div,{id:l.id,...n,ref:t})}).displayName=ei;var es="SelectItem",[ed,eu]=I(es),ec=n.forwardRef((e,t)=>{let{__scopeSelect:r,value:l,disabled:o=!1,textValue:i,...d}=e,u=K(es,r),c=Q(es,r),p=u.value===l,[h,v]=n.useState(i??""),[m,y]=n.useState(!1),x=(0,s.s)(t,e=>c.itemRefCallback?.(e,l,o)),b=(0,f.B)(),S=n.useRef("touch"),k=()=>{o||(u.onValueChange(l),u.onOpenChange(!1))};if(""===l)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,w.jsx)(ed,{scope:r,value:l,disabled:o,textId:b,isSelected:p,onItemTextChange:n.useCallback(e=>{v(t=>t||(e?.textContent??"").trim())},[]),children:(0,w.jsx)(R.ItemSlot,{scope:r,value:l,disabled:o,textValue:h,children:(0,w.jsx)(g.div,{role:"option","aria-labelledby":b,"data-highlighted":m?"":void 0,"aria-selected":p&&m,"data-state":p?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...d,ref:x,onFocus:(0,a.mK)(d.onFocus,()=>y(!0)),onBlur:(0,a.mK)(d.onBlur,()=>y(!1)),onClick:(0,a.mK)(d.onClick,()=>{"mouse"!==S.current&&k()}),onPointerUp:(0,a.mK)(d.onPointerUp,()=>{"mouse"===S.current&&k()}),onPointerDown:(0,a.mK)(d.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:(0,a.mK)(d.onPointerMove,e=>{S.current=e.pointerType,o?c.onItemLeave?.():"mouse"===S.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,a.mK)(d.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:(0,a.mK)(d.onKeyDown,e=>{(c.searchRef?.current===""||" "!==e.key)&&(T.includes(e.key)&&k()," "===e.key&&e.preventDefault())})})})})});ec.displayName=es;var ep="SelectItemText",eh=n.forwardRef((e,t)=>{let{__scopeSelect:r,className:o,style:a,...i}=e,d=K(ep,r),u=Q(ep,r),c=eu(ep,r),p=_(ep,r),[h,f]=n.useState(null),v=(0,s.s)(t,e=>f(e),c.onItemTextChange,e=>u.itemTextRefCallback?.(e,c.value,c.disabled)),m=h?.textContent,y=n.useMemo(()=>(0,w.jsx)("option",{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:x,onNativeOptionRemove:b}=p;return(0,S.N)(()=>(x(y),()=>b(y)),[x,b,y]),(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(g.span,{id:c.textId,...i,ref:v}),c.isSelected&&d.valueNode&&!d.valueNodeHasChildren?l.createPortal(i.children,d.valueNode):null]})});eh.displayName=ep;var ef="SelectItemIndicator",ev=n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return eu(ef,r).isSelected?(0,w.jsx)(g.span,{"aria-hidden":!0,...n,ref:t}):null});ev.displayName=ef;var em="SelectScrollUpButton",ey=n.forwardRef((e,t)=>{let r=Q(em,e.__scopeSelect),l=et(em,e.__scopeSelect),[o,a]=n.useState(!1),i=(0,s.s)(t,l.onScrollButtonChange);return(0,S.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){a(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,w.jsx)(ex,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ey.displayName=em;var ew="SelectScrollDownButton",eg=n.forwardRef((e,t)=>{let r=Q(ew,e.__scopeSelect),l=et(ew,e.__scopeSelect),[o,a]=n.useState(!1),i=(0,s.s)(t,l.onScrollButtonChange);return(0,S.N)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,w.jsx)(ex,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eg.displayName=ew;var ex=n.forwardRef((e,t)=>{let{__scopeSelect:r,onAutoScroll:l,...o}=e,i=Q("SelectScrollButton",r),s=n.useRef(null),d=P(r),u=n.useCallback(()=>{null!==s.current&&(window.clearInterval(s.current),s.current=null)},[]);return n.useEffect(()=>()=>u(),[u]),(0,S.N)(()=>{let e=d().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[d]),(0,w.jsx)(g.div,{"aria-hidden":!0,...o,ref:t,style:{flexShrink:0,...o.style},onPointerDown:(0,a.mK)(o.onPointerDown,()=>{null===s.current&&(s.current=window.setInterval(l,50))}),onPointerMove:(0,a.mK)(o.onPointerMove,()=>{i.onItemLeave?.(),null===s.current&&(s.current=window.setInterval(l,50))}),onPointerLeave:(0,a.mK)(o.onPointerLeave,()=>{u()})})});n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,w.jsx)(g.div,{"aria-hidden":!0,...n,ref:t})}).displayName="SelectSeparator";var eb="SelectArrow";n.forwardRef((e,t)=>{let{__scopeSelect:r,...n}=e,l=L(r),o=K(eb,r),a=Q(eb,r);return o.open&&"popper"===a.position?(0,w.jsx)(v.i3,{...l,...n,ref:t}):null}).displayName=eb;var eS=n.forwardRef(({__scopeSelect:e,value:t,...r},l)=>{let o,a=n.useRef(null),i=(0,s.s)(l,a),d=(o=n.useRef({value:t,previous:t}),n.useMemo(()=>(o.current.value!==t&&(o.current.previous=o.current.value,o.current.value=t),o.current.previous),[t]));return n.useEffect(()=>{let e=a.current;if(!e)return;let r=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(d!==t&&r){let n=new Event("change",{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[d,t]),(0,w.jsx)(g.select,{...r,style:{...k.Qg,...r.style},ref:i,defaultValue:t})});function ek(e){return""===e||void 0===e}function eC(e){let t=(0,x.c)(e),r=n.useRef(""),l=n.useRef(0),o=n.useCallback(e=>{let n=r.current+e;t(n),function e(t){r.current=t,window.clearTimeout(l.current),""!==t&&(l.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),a=n.useCallback(()=>{r.current="",window.clearTimeout(l.current)},[]);return n.useEffect(()=>()=>window.clearTimeout(l.current),[]),[r,o,a]}function ej(e,t,r){var n,l;let o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,a=r?e.indexOf(r):-1,i=(n=e,l=Math.max(a,0),n.map((e,t)=>n[(l+t)%n.length]));1===o.length&&(i=i.filter(e=>e!==r));let s=i.find(e=>e.textValue.toLowerCase().startsWith(o.toLowerCase()));return s!==r?s:void 0}eS.displayName="SelectBubbleInput";var eM=B,eT=q,eN=O,eR=F,eP=W,eA=$,eI=en,eE=ec,eL=eh,eD=ev,eK=ey,eH=eg},90718:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("brain",[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]])},94514:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(90425).A)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{3163:(e,t,n)=>{"use strict";n.d(t,{e:()=>r});var a=n(1934);let s=0,r=(0,a.v)(e=>({items:[],addItem:t=>e(e=>({items:[{...t,id:`activity-${Date.now()}-${++s}`},...e.items].slice(0,20)})),clear:()=>e({items:[]})}))},25044:(e,t,n)=>{"use strict";n.d(t,{Toaster:()=>u});var a=n(95155),s=n(12651),r=n(68822),o=n(41585),i=n(26620),c=n(6296),l=n(70460),d=n(66609);let u=({...e})=>{let{theme:t="system"}=(0,l.D)();return(0,a.jsx)(d.l$,{theme:t,className:"toaster group",icons:{success:(0,a.jsx)(s.A,{className:"size-4"}),info:(0,a.jsx)(r.A,{className:"size-4"}),warning:(0,a.jsx)(o.A,{className:"size-4"}),error:(0,a.jsx)(i.A,{className:"size-4"}),loading:(0,a.jsx)(c.A,{className:"size-4 animate-spin"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},...e})}},31328:(e,t,n)=>{"use strict";n.d(t,{z:()=>r});var a=n(1934);let s="http://127.0.0.1:18789",r=(0,a.v)((e,t)=>({connected:!1,connecting:!1,wsStatus:"disconnected",wsError:void 0,reason:null,url:s,token:void 0,agentName:void 0,source:void 0,sessions:[],agentStatus:"idle",error:void 0,detect:async()=>{try{let t=await fetch("/api/gateway/detect");if(!t.ok)throw Error("Failed to detect gateway");let n=await t.json();n&&e({url:n.url||s,token:n.token||void 0,agentName:n.agentName||void 0,source:n.source||void 0})}catch(t){e({reason:"server_unreachable",error:`Detection failed: ${String(t)}`})}},connect:async()=>{let{url:n}=t();e({connecting:!0,error:void 0,reason:null});try{let a=await fetch("/api/gateway/status");if(!a.ok)throw Error("Failed to check gateway status");let s=await a.json();s.connected?(e({connected:!0,connecting:!1,agentName:s.agentName||t().agentName,reason:null,error:void 0}),t().loadSessions()):e({connected:!1,connecting:!1,reason:s.reason??"gateway_unreachable",error:s.error||`Cannot connect to ${n}`})}catch(t){e({connected:!1,connecting:!1,reason:"server_unreachable",error:`ClawPad server unreachable: ${String(t)}`})}},disconnect:()=>{e({connected:!1,connecting:!1,wsStatus:"disconnected",reason:null,sessions:[],agentStatus:"idle",error:void 0})},loadSessions:async()=>{try{let t=await fetch("/api/gateway/sessions");if(!t.ok)return;let n=(await t.json()).sessions??[],a=n.some(e=>"active"===e.status),s=n.some(e=>"thinking"===e.status);e({sessions:n,agentStatus:a?"active":s?"thinking":"idle"})}catch{}},setUrl:t=>e({url:t}),setToken:t=>e({token:t||void 0}),setWSStatus:(n,a)=>{e({wsStatus:n,wsError:"connected"===n?void 0:a?.error}),"connected"===n?e({connected:!0,connecting:!1,reason:null,error:void 0}):"connecting"===n||"reconnecting"===n?e({connected:!1,connecting:!0,reason:a?.reason??"gateway_unreachable"}):e({connected:!1,connecting:!1,reason:a?.reason??t().reason??"gateway_unreachable"})},setAgentStatus:t=>e({agentStatus:t})}))},37279:(e,t,n)=>{"use strict";n.d(t,{Providers:()=>w});var a=n(95155),s=n(70460),r=n(29905),o=n(35625),i=n(70872),c=n(12115),l=n(3163),d=n(31328),u=n(46794),m=n(18496),p=n(83099),g=n(60464);function h(){let e,t,n,a,s,r,o,i,h,w,f,v,y=(0,d.z)(e=>e.detect),S=(0,d.z)(e=>e.connect);return(0,c.useEffect)(()=>{y().then(()=>S())},[y,S]),e=(0,l.e)(e=>e.addItem),t=(0,d.z)(e=>e.setWSStatus),n=(0,d.z)(e=>e.setAgentStatus),a=(0,u.b)(e=>e.addEvent),s=(0,c.useRef)(new Map),r=(0,c.useRef)(0),o=(0,c.useRef)(0),i=(0,c.useRef)(0),(0,c.useEffect)(()=>{o.current=Date.now(),i.current=Date.now();let c=null,l=null,d=null,u=!1,g=n=>{let a,s;if(u||l)return;let o=r.current+1,i=(s=.2*(a=Math.min(3e4,2e3*Math.pow(1.6,r.current)))*(2*Math.random()-1),Math.max(500,Math.round(a+s)));r.current=o,t("reconnecting",{error:n?`${n}. Retrying in ${Math.round(i/1e3)}s (attempt ${o})`:`Reconnecting in ${Math.round(i/1e3)}s (attempt ${o})`,reason:"gateway_unreachable"}),6===o&&e({type:"sub-agent",description:"Gateway reconnection is taking longer than expected",timestamp:Date.now()}),l=setTimeout(()=>{l=null,h()},i)};function h(){u||(t("connecting",{reason:"gateway_unreachable"}),c=new EventSource("/api/gateway/events"),o.current=Date.now(),c.onopen=()=>{o.current=Date.now()},c.addEventListener("status",e=>{try{let n=JSON.parse(e.data);if(t(n.status,{error:n.error,code:n.code,reason:n.reason??void 0}),o.current=Date.now(),"connected"===n.status){r.current=0,l&&(clearTimeout(l),l=null);let e=m.M.getState();e.loadRecentPages({force:!0,silent:!0}),e.loadSpaces({force:!0,silent:!0});let t=p.W.getState();t.sessionKey&&t.loadChangeSets()}}catch{}}),c.addEventListener("gateway",t=>{try{let s=JSON.parse(t.data);(function(t){let{event:s,payload:r}=t;switch(s){case"agent":!function(t){i.current=Date.now();let a=t.stream,s=t.runId??"unknown",r=t.sessionKey??"main";if(!a){("final"===t.state||"aborted"===t.state||"error"===t.state)&&f(s,r,"error"===t.state);return}switch(a){case"lifecycle":{let e=t.data?.phase;"start"===e?w(s,r):("end"===e||"error"===e)&&f(s,r,"error"===e);break}case"assistant":w(s,r),n("active");break;case"tool":{var o;w(s,r),n("active");let a=t.data?.name??void 0;a&&e({type:"tool-used",description:`Using ${{Read:"file reader",Edit:"file editor",Write:"file writer",exec:"terminal",web_search:"web search",web_fetch:"web fetcher",browser:"browser",message:"messenger",image:"image analyzer",tts:"text-to-speech",nodes:"node manager",canvas:"canvas",process:"process manager"}[o=a]??o}`,timestamp:Date.now()})}}}(r);break;case"chat":e({type:"chat-message",description:"New chat message",timestamp:Date.now()});break;case"heartbeat":var o;let c,l;c=(o=r).ts,l=o.status,"number"!=typeof c||Number.isNaN(c)||"string"!=typeof l||a({...o,ts:c,status:l})}})(s),o.current=Date.now()}catch{}}),c.onerror=()=>{c?.close(),c=null,t("disconnected",{error:"Event stream disconnected",reason:"gateway_unreachable"}),u||g("Event stream disconnected")})}function w(t,a){s.current.has(t)||(s.current.set(t,a),i.current=Date.now(),n("thinking"),e({type:"sub-agent",description:"Agent started thinking",timestamp:Date.now()}),window.dispatchEvent(new CustomEvent("clawpad:agent-lifecycle",{detail:{phase:"start",runId:t,sessionKey:a,timestamp:Date.now()}})))}function f(t,a,r){s.current.delete(t),i.current=Date.now(),0===s.current.size&&n("idle");let o=p.W.getState();o.activeRun?.runId===t&&(o.setActiveRun(null),o.clearActiveFiles()),e({type:"sub-agent",description:r?"Agent errored":"Agent finished",timestamp:Date.now()}),window.dispatchEvent(new CustomEvent("clawpad:agent-lifecycle",{detail:{phase:"end",runId:t,sessionKey:a,timestamp:Date.now(),error:!!r}}))}return h(),d=setInterval(()=>{if(u)return;let e=Date.now()-o.current,t=Date.now()-i.current;if(s.current.size>0&&t>2e4)for(let[e,t]of Array.from(s.current.entries()))f(e,t);e>45e3&&(c?.close(),c=null,g("Connection stale"))},1e4),()=>{u=!0,l&&clearTimeout(l),d&&clearInterval(d),c?.close()}},[e,t,n,a]),h=(0,l.e)(e=>e.addItem),w=(0,c.useRef)(null),f=(0,c.useRef)(new Set),v=(0,c.useRef)(!1),(0,c.useEffect)(()=>{let e=null,t=null,n=!1,a=0;return!function s(){n||(e=new EventSource("/api/files/watch"),a=0,e.onmessage=e=>{try{let t=JSON.parse(e.data);if("connected"===t.type||"error"===t.type)return;let n=t.path??"",a=n.split("/").pop()?.replace(/\.md$/,"")??n,s={"file-changed":`Edited ${a}`,"file-added":`Created ${a}`,"file-removed":`Deleted ${a}`};h({type:t.type,description:s[t.type]??`${t.type}: ${a}`,path:t.path,timestamp:t.timestamp??Date.now()}),window.dispatchEvent(new CustomEvent("clawpad:file-change",{detail:t}));let r=n.includes("/")?n.split("/")[0]:g.Sz,o="file-added"===t.type||"file-removed"===t.type;r&&f.current.add(r),o&&(v.current=!0),w.current||(w.current=setTimeout(()=>{w.current=null;let{loadRecentPages:e,loadPages:t,loadSpaces:n,pagesBySpace:a}=m.M.getState();for(let e of f.current)a.has(e)&&t(e,{force:!0,silent:!0});f.current.clear(),e({force:!0,silent:!0}),v.current&&(n({force:!0,silent:!0}),v.current=!1)},250))}catch{}},e.onerror=()=>{if(e?.close(),e=null,!n){let e=Math.min(3e4,2e3*Math.pow(1.6,a)),n=.2*e*(2*Math.random()-1);a+=1,t=setTimeout(s,Math.max(500,Math.round(e+n)))}})}(),()=>{n=!0,e?.close(),t&&clearTimeout(t),w.current&&(clearTimeout(w.current),w.current=null)}},[h]),(0,c.useEffect)(()=>{let e=async e=>{await fetch("/api/changes/run",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionKey:e.sessionKey,runId:e.runId,status:e.status,..."start"===e.status?{startedAt:new Date(e.timestamp??Date.now()).toISOString()}:{endedAt:new Date(e.timestamp??Date.now()).toISOString()}})})},t=async t=>{let n=t.detail;if(n?.runId&&n?.sessionKey){if("start"===n.phase){let t=p.W.getState().activeRun;t&&t.runId!==n.runId&&await e({sessionKey:t.sessionKey,runId:t.runId,status:"end",timestamp:n.timestamp??Date.now()}),p.W.getState().setSessionKey(n.sessionKey),p.W.getState().setActiveRun({runId:n.runId,sessionKey:n.sessionKey,startedAt:n.timestamp??Date.now()}),p.W.getState().clearActiveFiles(),await e({sessionKey:n.sessionKey,runId:n.runId,status:"start",timestamp:n.timestamp??Date.now()})}"end"===n.phase&&(p.W.getState().setSessionKey(n.sessionKey),await e({sessionKey:n.sessionKey,runId:n.runId,status:"end",timestamp:n.timestamp??Date.now()}),p.W.getState().setActiveRun(null),p.W.getState().clearActiveFiles(),p.W.getState().loadChangeSets())}},n=async e=>{let t=e.detail;if(!t?.path||!t.type||"connected"===t.type||"error"===t.type)return;let{activeRun:n}=p.W.getState();n&&(p.W.getState().touchFile(t.path),await fetch("/api/changes/record",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionKey:n.sessionKey,runId:n.runId,path:t.path,eventType:t.type,timestamp:t.timestamp??Date.now()})}))};return window.addEventListener("clawpad:agent-lifecycle",t),window.addEventListener("clawpad:file-change",n),()=>{window.removeEventListener("clawpad:agent-lifecycle",t),window.removeEventListener("clawpad:file-change",n)}},[]),null}function w({children:e}){let[t]=(0,c.useState)(()=>new r.E({defaultOptions:{queries:{staleTime:6e4,refetchOnWindowFocus:!1}}}));return(0,a.jsx)(s.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,disableTransitionOnChange:!0,children:(0,a.jsx)(o.Ht,{client:t,children:(0,a.jsxs)(i.Bc,{delayDuration:300,children:[(0,a.jsx)(h,{}),e]})})})}},46794:(e,t,n)=>{"use strict";n.d(t,{b:()=>a});let a=(0,n(1934).v)(e=>({lastEvent:void 0,events:[],updatedAt:void 0,addEvent:t=>e(e=>{let n=function(e,t){if(t)return t;let n=(e??"").toLowerCase();if(n){if("failed"===n)return"error";if("sent"===n)return"alert";if(n.startsWith("ok"))return"ok"}}(t.status,t.indicatorType),a={...t,indicatorType:n,actionable:"alert"===n||"error"===n},s=[a,...e.events];return s.length>20&&(s.length=20),{lastEvent:a,events:s,updatedAt:Date.now()}}),clear:()=>e({lastEvent:void 0,events:[],updatedAt:void 0})}))},49397:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,7086,23)),Promise.resolve().then(n.t.bind(n,84438,23)),Promise.resolve().then(n.t.bind(n,51743,23)),Promise.resolve().then(n.bind(n,37279)),Promise.resolve().then(n.bind(n,25044))},51743:()=>{},70872:(e,t,n)=>{"use strict";n.d(t,{Bc:()=>o,ZI:()=>l,k$:()=>c,m_:()=>i});var a=n(95155);n(12115);var s=n(28935),r=n(52799);function o({delayDuration:e=0,...t}){return(0,a.jsx)(s.Kq,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function i({...e}){return(0,a.jsx)(o,{children:(0,a.jsx)(s.bL,{"data-slot":"tooltip",...e})})}function c({...e}){return(0,a.jsx)(s.l9,{"data-slot":"tooltip-trigger",...e})}function l({className:e,sideOffset:t=0,children:n,...o}){return(0,a.jsx)(s.ZL,{children:(0,a.jsxs)(s.UC,{"data-slot":"tooltip-content",sideOffset:t,className:(0,r.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...o,children:[n,(0,a.jsx)(s.i3,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},83099:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});let a=(0,n(1934).v)((e,t)=>({sessionKey:null,activeRun:null,activeFiles:new Set,lastFileTouchAt:null,changeSets:[],review:{open:!1,changeSetId:null,filePath:null},dismissed:new Set,loading:!1,error:void 0,setSessionKey:t=>e({sessionKey:t}),setActiveRun:t=>e({activeRun:t,...t?{}:{lastFileTouchAt:null}}),touchFile:t=>e(e=>{let n=new Set(e.activeFiles);return n.add(t),{activeFiles:n,lastFileTouchAt:Date.now()}}),clearActiveFiles:()=>e({activeFiles:new Set,lastFileTouchAt:null}),loadChangeSets:async()=>{let n=t().sessionKey;if(n){e({loading:!0,error:void 0});try{let t=await fetch(`/api/changes?sessionKey=${encodeURIComponent(n)}`);if(!t.ok)throw Error("Failed to load change sets");let a=await t.json();e({changeSets:a,loading:!1})}catch(t){e({loading:!1,error:String(t)})}}},openReview:(t,n)=>e({review:{open:!0,changeSetId:t,filePath:n}}),closeReview:()=>e({review:{open:!1,changeSetId:null,filePath:null}}),dismissChangeSet:t=>e(e=>{let n=new Set(e.dismissed);return n.add(t),{dismissed:n}})}))}},e=>{e.O(0,[1817,3334,330,9907,528,3496,6522,1178,8441,3794,7358],()=>e(e.s=49397)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[620],{7814:(e,t,s)=>{"use strict";function a(e){let t=e.replace(/\.md$/,"").split("/").filter(Boolean).map(e=>encodeURIComponent(e));return 0===t.length?"/workspace":`/workspace/${t.join("/")}`}s.d(t,{C:()=>a})},13545:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(90425).A)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]])},39667:(e,t,s)=>{Promise.resolve().then(s.bind(s,69676))},48368:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(90425).A)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},52799:(e,t,s)=>{"use strict";s.d(t,{cn:()=>n});var a=s(29722),r=s(622);function n(...e){return(0,r.QP)((0,a.$)(e))}},60529:(e,t,s)=>{"use strict";s.d(t,{p:()=>n});var a=s(95155);s(12115);var r=s(52799);function n({className:e,type:t,...s}){return(0,a.jsx)("input",{type:t,"data-slot":"input",className:(0,r.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...s})}},69676:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>C});var a=s(95155),r=s(12115),n=s(73321),i=s(80642),o=s(24821),l=s(89239),d=s(60529),c=s(70872),u=s(6296),m=s(94514),p=s(13545),x=s(21362),g=s(42129),h=s(86901),f=s(48368),y=s(49619);let b=(0,s(90425).A)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var j=s(93571),v=s(7814);let N={enter:e=>({x:e>0?80:-80,opacity:0}),center:{x:0,opacity:1},exit:e=>({x:e>0?-80:80,opacity:0})},w=[{id:"engineering-devops",icon:"\uD83C\uDFD7️",label:"Engineering & DevOps",description:"Infrastructure, runbooks, architecture, and delivery workflows."},{id:"research-academia",icon:"\uD83D\uDD2C",label:"Research & Academia",description:"Projects, literature reviews, experiments, and writing drafts."},{id:"business-consulting",icon:"\uD83C\uDFE2",label:"Business & Consulting",description:"Clients, strategy, meetings, and engagement tracking."},{id:"creative-writing",icon:"✍️",label:"Creative & Writing",description:"Drafts, research, world-building, and idea capture."},{id:"personal-knowledge",icon:"\uD83D\uDCDD",label:"Personal Knowledge (PARA)",description:"Projects, areas, resources, and archives."},{id:"other",icon:"✨",label:"Other",description:"General starter structure that your agent can customize."}],k={"engineering-devops":["infrastructure","devops","architecture","security","team","daily-notes"],"research-academia":["projects","literature","experiments","writing","notes"],"business-consulting":["clients","projects","meetings","strategy","templates","daily-notes"],"creative-writing":["projects","drafts","research","world-building","ideas","daily-notes"],"personal-knowledge":["projects","areas","resources","archive","daily-notes"],other:["projects","notes","resources","daily-notes"]};function C(){let[e,t]=(0,r.useState)(1),[s,l]=(0,r.useState)(1),d=(0,n.useRouter)(),[c,u]=(0,r.useState)(null),[m,p]=(0,r.useState)(!0),[x,g]=(0,r.useState)(""),[h,f]=(0,r.useState)(null),[y,b]=(0,r.useState)(!0),[j,w]=(0,r.useState)(!1),[C,z]=(0,r.useState)(!1),[E,M]=(0,r.useState)(null),[T,I]=(0,r.useState)(!1),[U,$]=(0,r.useState)("engineering-devops"),[_,R]=(0,r.useState)(""),[F,W]=(0,r.useState)(!1),[L,D]=(0,r.useState)("both"),[Y,B]=(0,r.useState)(""),[H,q]=(0,r.useState)([]),[K,V]=(0,r.useState)("welcome-to-clawpad.md");(0,r.useEffect)(()=>{fetch("/api/gateway/detect").then(e=>e.json()).then(e=>{u(e),p(!1)}).catch(()=>{u({found:!1}),p(!1)})},[]),(0,r.useEffect)(()=>{fetch("/api/setup/status?includeCounts=true").then(e=>e.json()).then(e=>{f(e),b(!1)}).catch(()=>b(!1))},[]),(0,r.useEffect)(()=>{let e=new Set(k[U]??[]);q(t=>t.filter(t=>e.has(t)))},[U]),(0,r.useEffect)(()=>{F&&q(e=>e.length>0?e:[...k[U]??[]])},[F,U]);let Z=(0,r.useCallback)(s=>{l(s>e?1:-1),t(s)},[e]),G=async()=>{w(!0),M(null),I(!1);try{let e=await fetch("/api/setup/trigger-onboarding",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceType:U,customUseCase:"other"===U?_:void 0,importEnabled:F,importMode:L,importSourcePaths:Y.split("\n").map(e=>e.trim()).filter(Boolean),importTargetSpaces:H})});if(!e.ok){let t=await e.json().catch(()=>null);throw Error(t?.error||"Failed to set up workspace")}let t=await e.json().catch(()=>null);I(!!t?.onboardingTriggered);let s="string"==typeof t?.welcomePage?.path&&t.welcomePage.path.trim()?t.welcomePage.path.trim():null,a=Array.isArray(t?.scaffoldResult?.pages)?t.scaffoldResult.pages.find(e=>"object"==typeof e&&null!==e&&"string"==typeof e.path&&"error"!==e.status)?.path??null:null;V(s??a??"welcome-to-clawpad.md"),z(!0);let r=await fetch("/api/setup/status?includeCounts=true");r.ok&&f(await r.json())}catch(e){M(e?.message||"Could not create workspace. Please retry.")}finally{w(!1)}},J=(0,r.useCallback)(async()=>{let e=K.endsWith(".md")?K:`${K}.md`,t=encodeURIComponent(e),s=(0,v.C)(e);for(let e=0;e<3;e+=1){try{if((await fetch(`/api/files/pages/${t}`,{cache:"no-store"})).ok)return void d.push(s)}catch{}await new Promise(e=>setTimeout(e,200))}d.push("/workspace")},[d,K]);return(0,a.jsx)("div",{className:"flex min-h-screen items-center justify-center px-4 bg-background",children:(0,a.jsxs)("div",{className:"w-full max-w-md",children:[(0,a.jsx)(i.N,{mode:"wait",custom:s,children:(0,a.jsx)(o.P.div,{custom:s,variants:N,initial:"enter",animate:"center",exit:"exit",transition:{duration:.3,ease:"easeInOut"},children:(0,a.jsxs)("div",{className:"rounded-xl border bg-card p-8 shadow-lg",children:[1===e&&(0,a.jsx)(A,{gateway:c,detecting:m,manualUrl:x,onManualUrlChange:g,onNext:()=>Z(2)}),2===e&&(0,a.jsx)(P,{status:h,loading:y,bootstrapping:j,bootstrapped:C,bootstrapError:E,gatewayConnected:c?.found??!1,workspaceUseCase:U,customUseCase:_,importEnabled:F,importMode:L,importSourcePathsText:Y,importTargetSpaces:H,onWorkspaceUseCaseChange:$,onCustomUseCaseChange:R,onImportEnabledChange:W,onImportModeChange:D,onImportSourcePathsTextChange:B,onImportTargetSpacesChange:q,onBootstrap:G,onNext:()=>Z(3)}),3===e&&(0,a.jsx)(O,{onNext:()=>Z(4)}),4===e&&(0,a.jsx)(S,{onboardingTriggered:T,onOpen:J})]})},e)}),(0,a.jsx)("div",{className:"flex items-center justify-center gap-2 mt-6",children:[1,2,3,4].map(t=>(0,a.jsx)("div",{className:`h-1.5 rounded-full transition-all duration-300 ${t===e?"w-8 bg-primary":t<e?"w-4 bg-primary/40":"w-4 bg-muted"}`},t))})]})})}function A({gateway:e,detecting:t,manualUrl:s,onManualUrlChange:r,onNext:n}){return(0,a.jsxs)("div",{className:"space-y-6 text-center",children:[(0,a.jsx)(o.P.div,{initial:{scale:.8,opacity:0},animate:{scale:1,opacity:1},transition:{delay:.1,duration:.3},className:"mx-auto flex h-20 w-20 items-center justify-center rounded-2xl bg-muted/60 ring-1 ring-border/60",children:(0,a.jsx)(j.R,{variant:"icon",size:44,alt:""})}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"Welcome to ClawPad"}),(0,a.jsxs)("p",{className:"text-muted-foreground text-sm",children:["The workspace for"," ",(0,a.jsx)(z,{text:"OpenClaw is your local AI agent platform that runs on your machine.",children:"OpenClaw"})]})]}),(0,a.jsx)("div",{className:"rounded-lg border bg-muted/30 p-4 text-left",children:t?(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)(u.A,{className:"h-5 w-5 animate-spin text-muted-foreground"}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("p",{className:"text-sm font-medium",children:["Detecting"," ",(0,a.jsx)(z,{text:"The gateway is the local server that connects ClawPad to your AI agent. It usually runs at ws://127.0.0.1:18789.",children:"OpenClaw"}),"…"]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Looking for your local gateway"})]})]}):e?.found?(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-green-100 dark:bg-green-900/30",children:(0,a.jsx)(m.A,{className:"h-4 w-4 text-green-600 dark:text-green-400"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium text-green-700 dark:text-green-400",children:"OpenClaw Detected"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:e.agentName?`Agent: ${e.agentName}`:`Found via ${e.source}`})]})]}):(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-yellow-100 dark:bg-yellow-900/30",children:(0,a.jsx)(p.A,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-400"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium text-yellow-700 dark:text-yellow-400",children:"OpenClaw Not Detected"}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"You can still use ClawPad as a local workspace"})]})]}),(0,a.jsx)(d.p,{placeholder:"ws://127.0.0.1:18789",value:s,onChange:e=>r(e.target.value),className:"text-sm"})]})}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)(l.$,{size:"lg",className:"w-full",onClick:n,children:[e?.found?"Next":"Continue Without Agent",(0,a.jsx)(x.A,{className:"ml-1 h-4 w-4"})]}),!e?.found&&!t&&(0,a.jsx)("button",{onClick:n,className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Skip for now"})]})]})}function P({status:e,loading:t,bootstrapping:s,bootstrapped:r,bootstrapError:n,gatewayConnected:i,workspaceUseCase:c,customUseCase:p,importEnabled:h,importMode:f,importSourcePathsText:y,importTargetSpaces:b,onWorkspaceUseCaseChange:j,onCustomUseCaseChange:v,onImportEnabledChange:N,onImportModeChange:C,onImportSourcePathsTextChange:A,onImportTargetSpacesChange:P,onBootstrap:O,onNext:S}){let E=e?.hasWorkspace||r,M=k[c]??[];return(0,a.jsxs)("div",{className:"space-y-6 text-center",children:[(0,a.jsx)(o.P.div,{initial:{scale:.8,opacity:0},animate:{scale:1,opacity:1},transition:{delay:.1,duration:.3},className:"mx-auto flex h-20 w-20 items-center justify-center rounded-2xl bg-muted",children:(0,a.jsx)(g.A,{className:"h-10 w-10 text-muted-foreground"})}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("h1",{className:"text-2xl font-semibold tracking-tight",children:["Set Up Your"," ",(0,a.jsx)(z,{text:"A workspace is a folder of markdown files that both you and your AI agent can read and edit.",children:"Workspace"})]}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"ClawPad reads and writes markdown files on disk"})]}),(0,a.jsx)("div",{className:"rounded-lg border bg-muted/30 px-4 py-3 font-mono text-sm",children:"~/.openclaw/pages/"}),t?(0,a.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-muted-foreground py-2",children:[(0,a.jsx)(u.A,{className:"h-4 w-4 animate-spin"}),"Checking workspace…"]}):E?(0,a.jsxs)("div",{className:"rounded-lg border bg-green-50 dark:bg-green-900/20 p-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-center gap-2 mb-2",children:[(0,a.jsx)(m.A,{className:"h-5 w-5 text-green-600 dark:text-green-400"}),(0,a.jsx)("span",{className:"text-sm font-medium text-green-700 dark:text-green-400",children:"Your workspace is ready"})]}),e&&(0,a.jsxs)("p",{className:"text-xs text-muted-foreground",children:[e.totalSpaces," spaces \xb7 ",e.totalPages," pages"]})]}):(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"What will you mainly use ClawPad for?"}),(0,a.jsx)("div",{className:"space-y-2 text-left",children:w.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>j(e.id),className:`w-full rounded-lg border p-3 transition-colors ${c===e.id?"border-primary bg-primary/5":"hover:bg-muted/30"}`,children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{children:e.icon}),(0,a.jsx)("span",{className:"text-sm font-medium",children:e.label})]}),(0,a.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e.description})]},e.id))}),"other"===c&&(0,a.jsx)(d.p,{placeholder:"Describe your use case (optional)",value:p,onChange:e=>v(e.target.value),className:"text-sm"}),(0,a.jsxs)("div",{className:"rounded-lg border bg-muted/20 p-3 text-left space-y-3",children:[(0,a.jsxs)("label",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[(0,a.jsx)("input",{type:"checkbox",className:"mt-0.5",checked:h,onChange:e=>N(e.target.checked)}),(0,a.jsx)("span",{children:"Bring existing documents with OpenClaw during setup"})]}),h&&(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("p",{className:"text-xs font-medium text-foreground",children:"Import mode"}),(0,a.jsx)("div",{className:"grid grid-cols-3 gap-1.5",children:["copy","derive","both"].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>C(e),className:`rounded-md border px-2 py-1 text-xs capitalize transition-colors ${f===e?"border-primary bg-primary/10 text-foreground":"hover:bg-muted/40"}`,children:e},e))})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("p",{className:"text-xs font-medium text-foreground",children:"Local source paths"}),(0,a.jsx)("textarea",{className:"min-h-20 w-full rounded-md border bg-background px-2 py-1.5 text-xs",placeholder:"/Users/you/Documents\n~/Desktop/project-notes",value:y,onChange:e=>A(e.target.value)}),(0,a.jsx)("p",{className:"text-[11px] text-muted-foreground",children:"One path per line."})]}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)("p",{className:"text-xs font-medium text-foreground",children:"Target spaces"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5",children:M.map(e=>{let t=b.includes(e);return(0,a.jsx)("button",{type:"button",onClick:()=>{b.includes(e)?P(b.filter(t=>t!==e)):P([...b,e].sort((e,t)=>e.localeCompare(t)))},className:`rounded-md border px-2 py-1 text-[11px] transition-colors ${t?"border-primary bg-primary/10 text-foreground":"hover:bg-muted/40"}`,children:e},e)})})]})]})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:i?"ClawPad will scaffold this structure and trigger OpenClaw to continue setup.":"ClawPad will scaffold this structure locally. You can connect OpenClaw later."}),(0,a.jsx)(l.$,{size:"lg",className:"w-full",onClick:O,disabled:s,children:s?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(u.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Setting Up Workspace…"]}):"Set Up Workspace"}),n&&(0,a.jsx)("div",{className:"rounded-lg border border-red-300/60 bg-red-50 px-3 py-2 text-xs text-red-700 dark:border-red-900/60 dark:bg-red-950/20 dark:text-red-300",children:n})]}),E&&(0,a.jsxs)(l.$,{size:"lg",className:"w-full",onClick:S,children:["Next",(0,a.jsx)(x.A,{className:"ml-1 h-4 w-4"})]})]})}function O({onNext:e}){return(0,a.jsxs)("div",{className:"space-y-6 text-center",children:[(0,a.jsxs)("div",{className:"relative mx-auto h-28 w-28",children:[E.map((e,t)=>(0,a.jsx)(o.P.div,{initial:{opacity:0,scale:0,x:0,y:0},animate:{opacity:[0,1,1,0],scale:[0,1,1,.5],x:e.x,y:e.y},transition:{duration:1.2,delay:.4+.05*t,ease:"easeOut"},className:"absolute left-1/2 top-1/2 h-2 w-2 rounded-full",style:{backgroundColor:e.color}},t)),(0,a.jsx)(o.P.div,{initial:{scale:0,opacity:.8},animate:{scale:2.5,opacity:0},transition:{duration:.8,delay:.2,ease:"easeOut"},className:"absolute inset-0 m-auto h-20 w-20 rounded-full border-2 border-green-400"}),(0,a.jsx)(o.P.div,{initial:{scale:0,opacity:0},animate:{scale:1,opacity:1},transition:{type:"spring",stiffness:200,damping:15,delay:.1},className:"absolute inset-0 m-auto flex h-20 w-20 items-center justify-center rounded-2xl bg-green-100 dark:bg-green-900/30",children:(0,a.jsx)(o.P.div,{initial:{pathLength:0,opacity:0},animate:{pathLength:1,opacity:1},transition:{delay:.4,duration:.4},children:(0,a.jsx)(m.A,{className:"h-10 w-10 text-green-600 dark:text-green-400"})})})]}),(0,a.jsxs)(o.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.5},className:"space-y-2",children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"You're All Set! \uD83C\uDF89"}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:"Your workspace is ready. Let's see what you can do."})]}),(0,a.jsxs)(o.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.7},className:"rounded-lg border bg-muted/30 p-4 text-left space-y-2",children:[(0,a.jsx)("p",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Keyboard Shortcuts"}),(0,a.jsxs)("div",{className:"space-y-1.5 text-sm text-muted-foreground",children:[(0,a.jsxs)("p",{children:[(0,a.jsx)("kbd",{className:"rounded border bg-muted px-1.5 py-0.5 text-xs font-mono",children:"⌘K"})," ","Search across all pages"]}),(0,a.jsxs)("p",{children:[(0,a.jsx)("kbd",{className:"rounded border bg-muted px-1.5 py-0.5 text-xs font-mono",children:"⌘N"})," ","Create a new page"]}),(0,a.jsxs)("p",{children:[(0,a.jsx)("kbd",{className:"rounded border bg-muted px-1.5 py-0.5 text-xs font-mono",children:"⌘⇧L"})," ","Open AI chat panel"]})]})]}),(0,a.jsx)(o.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.9},children:(0,a.jsxs)(l.$,{size:"lg",className:"w-full",onClick:e,children:["What's Next?",(0,a.jsx)(x.A,{className:"ml-1 h-4 w-4"})]})})]})}function S({onboardingTriggered:e,onOpen:t}){let s=e?[{icon:h.A,title:"Chat with your agent",desc:"Your agent is ready to help you set up. Check the chat panel!",color:"text-purple-500",bg:"bg-purple-100 dark:bg-purple-900/30"},{icon:f.A,title:"Create pages together",desc:"Ask your agent to create documents, plans, or notes.",color:"text-blue-500",bg:"bg-blue-100 dark:bg-blue-900/30"},{icon:y.A,title:"Organize your workspace",desc:"Your agent can help structure folders based on your needs.",color:"text-green-500",bg:"bg-green-100 dark:bg-green-900/30"}]:[{icon:f.A,title:"Create your first page",desc:"Hit ⌘N to start a new page in any space.",color:"text-blue-500",bg:"bg-blue-100 dark:bg-blue-900/30"},{icon:y.A,title:"Connect your agent",desc:"Your OpenClaw agent can read and edit pages in real-time.",color:"text-green-500",bg:"bg-green-100 dark:bg-green-900/30"},{icon:h.A,title:"Try AI writing",desc:"Press ⌘⇧L to chat with your agent and generate content.",color:"text-purple-500",bg:"bg-purple-100 dark:bg-purple-900/30"}];return(0,a.jsxs)("div",{className:"space-y-6 text-center",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:e?"Your Agent is Ready!":"What's Next?"}),(0,a.jsx)("p",{className:"text-muted-foreground text-sm",children:e?"Your agent has started setting up your workspace.":"Here are some things to try first."})]}),(0,a.jsx)("div",{className:"space-y-3 text-left",children:s.map((e,t)=>(0,a.jsxs)(o.P.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.1+.15*t,duration:.3},className:"flex items-start gap-3 rounded-lg border p-3 hover:bg-muted/30 transition-colors",children:[(0,a.jsx)("div",{className:`mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${e.bg}`,children:(0,a.jsx)(e.icon,{className:`h-4 w-4 ${e.color}`})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:e.desc})]})]},e.title))}),(0,a.jsx)(o.P.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.6},children:(0,a.jsxs)(l.$,{size:"lg",className:"w-full",onClick:t,children:["Open Welcome Page",(0,a.jsx)(x.A,{className:"ml-1 h-4 w-4"})]})})]})}function z({children:e,text:t}){return(0,a.jsxs)(c.m_,{children:[(0,a.jsx)(c.k$,{asChild:!0,children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-0.5 underline decoration-dotted underline-offset-2 cursor-help",children:[e,(0,a.jsx)(b,{className:"inline h-3 w-3 text-muted-foreground"})]})}),(0,a.jsx)(c.ZI,{side:"top",className:"max-w-[220px]",children:t})]})}let E=[{x:-40,y:-35,color:"#4A9EFF"},{x:35,y:-40,color:"#00A67E"},{x:-35,y:25,color:"#9333EA"},{x:40,y:20,color:"#F59E0B"},{x:-15,y:-45,color:"#EF4444"},{x:20,y:-30,color:"#10B981"},{x:-45,y:5,color:"#6366F1"},{x:45,y:-10,color:"#F97316"},{x:0,y:40,color:"#EC4899"},{x:-25,y:35,color:"#14B8A6"},{x:30,y:35,color:"#8B5CF6"},{x:10,y:-50,color:"#F43F5E"}]},70872:(e,t,s)=>{"use strict";s.d(t,{Bc:()=>i,ZI:()=>d,k$:()=>l,m_:()=>o});var a=s(95155);s(12115);var r=s(28935),n=s(52799);function i({delayDuration:e=0,...t}){return(0,a.jsx)(r.Kq,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function o({...e}){return(0,a.jsx)(i,{children:(0,a.jsx)(r.bL,{"data-slot":"tooltip",...e})})}function l({...e}){return(0,a.jsx)(r.l9,{"data-slot":"tooltip-trigger",...e})}function d({className:e,sideOffset:t=0,children:s,...i}){return(0,a.jsx)(r.ZL,{children:(0,a.jsxs)(r.UC,{"data-slot":"tooltip-content",sideOffset:t,className:(0,n.cn)("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...i,children:[s,(0,a.jsx)(r.i3,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}},83935:(e,t,s)=>{"use strict";s.d(t,{C:()=>i});var a=s(12115),r=s(47527),n=s(66294),i=e=>{var t;let s,i,{present:l,children:d}=e,c=function(e){var t,s;let[r,i]=a.useState(),l=a.useRef(null),d=a.useRef(e),c=a.useRef("none"),[u,m]=(t=e?"mounted":"unmounted",s={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},a.useReducer((e,t)=>s[e][t]??e,t));return a.useEffect(()=>{let e=o(l.current);c.current="mounted"===u?e:"none"},[u]),(0,n.N)(()=>{let t=l.current,s=d.current;if(s!==e){let a=c.current,r=o(t);e?m("MOUNT"):"none"===r||t?.display==="none"?m("UNMOUNT"):s&&a!==r?m("ANIMATION_OUT"):m("UNMOUNT"),d.current=e}},[e,m]),(0,n.N)(()=>{if(r){let e,t=r.ownerDocument.defaultView??window,s=s=>{let a=o(l.current).includes(CSS.escape(s.animationName));if(s.target===r&&a&&(m("ANIMATION_END"),!d.current)){let s=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=s)})}},a=e=>{e.target===r&&(c.current=o(l.current))};return r.addEventListener("animationstart",a),r.addEventListener("animationcancel",s),r.addEventListener("animationend",s),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",a),r.removeEventListener("animationcancel",s),r.removeEventListener("animationend",s)}}m("ANIMATION_END")},[r,m]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:a.useCallback(e=>{l.current=e?getComputedStyle(e):null,i(e)},[])}}(l),u="function"==typeof d?d({present:c.isPresent}):a.Children.only(d),m=(0,r.s)(c.ref,(t=u,(i=(s=Object.getOwnPropertyDescriptor(t.props,"ref")?.get)&&"isReactWarning"in s&&s.isReactWarning)?t.ref:(i=(s=Object.getOwnPropertyDescriptor(t,"ref")?.get)&&"isReactWarning"in s&&s.isReactWarning)?t.props.ref:t.props.ref||t.ref));return"function"==typeof d||c.isPresent?a.cloneElement(u,{ref:m}):null};function o(e){return e?.animationName||"none"}i.displayName="Presence"},86901:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(90425).A)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]])},89239:(e,t,s)=>{"use strict";s.d(t,{$:()=>l});var a=s(95155);s(12115);var r=s(18460),n=s(42442),i=s(52799);let o=(0,r.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function l({className:e,variant:t="default",size:s="default",asChild:r=!1,...l}){let d=r?n.bL:"button";return(0,a.jsx)(d,{"data-slot":"button","data-variant":t,"data-size":s,className:(0,i.cn)(o({variant:t,size:s,className:e})),...l})}},93571:(e,t,s)=>{"use strict";s.d(t,{R:()=>l});var a=s(95155),r=s(5772),n=s(52799);let i=265/235,o=1152/235;function l({variant:e="icon",size:t=24,className:s,imageClassName:l,lightImageClassName:d,darkImageClassName:c,theme:u="auto",alt:m="ClawPad",priority:p=!1}){let x="icon"===e,g=Math.round(t*(x?i:o));return(0,a.jsx)("span",{className:(0,n.cn)("inline-flex items-center",s),children:(0,a.jsx)(r.default,{src:x?"/brand/icon.png":"/brand/logo.png",width:g,height:t,alt:m,priority:p,className:(0,n.cn)("block",l,"dark"===u?c:"light"===u?d:void 0)})})}}},e=>{e.O(0,[330,9907,5403,3496,1592,8441,3794,7358],()=>e(e.s=39667)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8118],{1022:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,98500,23)),Promise.resolve().then(s.bind(s,58206)),Promise.resolve().then(s.bind(s,92232))},42317:(e,t,s)=>{"use strict";s.d(t,{L:()=>r});var n=s(95155),a=s(86846);function r(){return(0,n.jsxs)("div",{className:"mx-auto w-full max-w-[720px] px-6",children:[(0,n.jsxs)("div",{className:"pt-20 pb-4",children:[(0,n.jsx)(a.E,{className:"h-10 w-2/3 mb-3"}),(0,n.jsx)(a.E,{className:"h-4 w-1/3"})]}),(0,n.jsxs)("div",{className:"space-y-3 pt-6",children:[(0,n.jsx)(a.E,{className:"h-4 w-full"}),(0,n.jsx)(a.E,{className:"h-4 w-[92%]"}),(0,n.jsx)(a.E,{className:"h-4 w-[78%]"}),(0,n.jsx)("div",{className:"h-3"}),(0,n.jsx)(a.E,{className:"h-4 w-full"}),(0,n.jsx)(a.E,{className:"h-4 w-[85%]"}),(0,n.jsx)(a.E,{className:"h-4 w-[65%]"}),(0,n.jsx)("div",{className:"h-3"}),(0,n.jsx)(a.E,{className:"h-4 w-[90%]"}),(0,n.jsx)(a.E,{className:"h-4 w-[70%]"})]})]})}},58206:(e,t,s)=>{"use strict";s.d(t,{PageDiffFallback:()=>i});var n=s(95155),a=s(83099),r=s(87293);function i({filePath:e,fallback:t}){let s=(0,a.W)(e=>e.review),i=(0,a.W)(e=>e.closeReview);return s.open&&s.changeSetId&&s.filePath===e?(0,n.jsx)(r.W,{changeSetId:s.changeSetId,filePath:e,onExit:i}):(0,n.jsx)(n.Fragment,{children:t})}},83099:(e,t,s)=>{"use strict";s.d(t,{W:()=>n});let n=(0,s(1934).v)((e,t)=>({sessionKey:null,activeRun:null,activeFiles:new Set,lastFileTouchAt:null,changeSets:[],review:{open:!1,changeSetId:null,filePath:null},dismissed:new Set,loading:!1,error:void 0,setSessionKey:t=>e({sessionKey:t}),setActiveRun:t=>e({activeRun:t,...t?{}:{lastFileTouchAt:null}}),touchFile:t=>e(e=>{let s=new Set(e.activeFiles);return s.add(t),{activeFiles:s,lastFileTouchAt:Date.now()}}),clearActiveFiles:()=>e({activeFiles:new Set,lastFileTouchAt:null}),loadChangeSets:async()=>{let s=t().sessionKey;if(s){e({loading:!0,error:void 0});try{let t=await fetch(`/api/changes?sessionKey=${encodeURIComponent(s)}`);if(!t.ok)throw Error("Failed to load change sets");let n=await t.json();e({changeSets:n,loading:!1})}catch(t){e({loading:!1,error:String(t)})}}},openReview:(t,s)=>e({review:{open:!0,changeSetId:t,filePath:s}}),closeReview:()=>e({review:{open:!1,changeSetId:null,filePath:null}}),dismissChangeSet:t=>e(e=>{let s=new Set(e.dismissed);return s.add(t),{dismissed:s}})}))},86846:(e,t,s)=>{"use strict";s.d(t,{E:()=>r});var n=s(95155),a=s(52799);function r({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"skeleton",className:(0,a.cn)("bg-accent animate-pulse rounded-md",e),...t})}},87293:(e,t,s)=>{"use strict";s.d(t,{W:()=>u});var n=s(95155),a=s(12115),r=s(80723),i=s(55711),d=s(89239),o=s(52799),l=s(66609),c=s(83099);function u({changeSetId:e,filePath:t,onExit:s}){let[o,u]=(0,a.useState)(null),[x,h]=(0,a.useState)(!0),[f,p]=(0,a.useState)(!1),v=(0,c.W)(e=>e.loadChangeSets),g=(0,a.useCallback)(async()=>{h(!0);try{let t=await fetch(`/api/changes/${encodeURIComponent(e)}`);if(!t.ok)throw Error("Failed to load diff");let s=await t.json();u(s)}catch(e){l.oR.error("Could not load diff")}finally{h(!1)}},[e]);(0,a.useEffect)(()=>{g()},[g]);let b=o?.files.find(e=>e.path===t),w=async()=>{p(!0);try{if(!(await fetch("/api/changes/revert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({changeSetId:e,mode:"file",path:t})})).ok)throw Error("Undo failed");await g(),await v()}catch{l.oR.error("Undo failed")}finally{p(!1)}},j=async s=>{p(!0);try{if(!(await fetch("/api/changes/revert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({changeSetId:e,mode:"hunk",path:t,hunkId:s})})).ok)throw Error("Undo failed");await g(),await v()}catch{l.oR.error("Could not apply undo")}finally{p(!1)}};return x?(0,n.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:"Loading diff…"}):b?(0,n.jsxs)("div",{className:"flex min-h-full flex-col",children:[(0,n.jsxs)("div",{className:"sticky top-0 z-10 flex items-center justify-between border-b bg-background/90 px-4 py-2 backdrop-blur",children:[(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)(d.$,{variant:"ghost",size:"icon",onClick:s,children:(0,n.jsx)(r.A,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{className:"text-sm font-medium",children:"Review changes"}),(0,n.jsx)("div",{className:"text-xs text-muted-foreground",children:t})]})]}),(0,n.jsxs)(d.$,{variant:"outline",size:"sm",onClick:w,disabled:f,children:[(0,n.jsx)(i.A,{className:"mr-2 h-3.5 w-3.5"}),"Undo file"]})]}),(0,n.jsx)("div",{className:"flex-1 px-4 py-6",children:(0,n.jsx)(m,{file:b,onUndoHunk:j,busy:f})})]}):(0,n.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-sm text-muted-foreground",children:[(0,n.jsx)("span",{children:"No diff available for this file."}),(0,n.jsx)(d.$,{variant:"outline",size:"sm",onClick:s,children:"Back to document"})]})}function m({file:e,onUndoHunk:t,busy:s}){if(e.tooLarge)return(0,n.jsx)("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:"File is too large to diff."});let a=e.hunks??[];return 0===a.length?(0,n.jsx)("div",{className:"rounded-md border border-border p-4 text-sm text-muted-foreground",children:"No differences found."}):(0,n.jsx)("div",{className:"space-y-4",children:a.map((e,a)=>(0,n.jsxs)("div",{className:"overflow-hidden rounded-lg border border-border",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between bg-muted/60 px-3 py-1.5 text-xs text-muted-foreground",children:[(0,n.jsxs)("span",{children:["Hunk ",a+1," \xb7 +",e.adds," −",e.removes]}),(0,n.jsx)(d.$,{size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:()=>t(e.id),disabled:s,children:"Undo"})]}),(0,n.jsx)("div",{className:"bg-background",children:(0,n.jsx)("pre",{className:"whitespace-pre-wrap px-3 py-2 text-xs leading-relaxed",children:e.lines.map((t,s)=>{let a=t[0],r=t.slice(1);return(0,n.jsxs)("div",{className:(0,o.cn)("rounded-sm px-1","+"===a&&"bg-emerald-500/15 text-emerald-700 dark:text-emerald-300","-"===a&&"bg-rose-500/15 text-rose-700 dark:text-rose-300 line-through"),children:[(0,n.jsx)("span",{className:"mr-2 text-muted-foreground/70",children:a}),r]},`${e.id}-${s}`)})})})]},e.id))})}},89239:(e,t,s)=>{"use strict";s.d(t,{$:()=>o});var n=s(95155);s(12115);var a=s(18460),r=s(42442),i=s(52799);let d=(0,a.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function o({className:e,variant:t="default",size:s="default",asChild:a=!1,...o}){let l=a?r.bL:"button";return(0,n.jsx)(l,{"data-slot":"button","data-variant":t,"data-size":s,className:(0,i.cn)(d({variant:t,size:s,className:e})),...o})}},92232:(e,t,s)=>{"use strict";s.d(t,{PageEditor:()=>E});var n=s(95155),a=s(12115),r=s(37206),i=s(73321),d=s(60285),o=s(68459),l=s(66609),c=s(42317),u=s(89239),m=s(31887),x=s(52799);function h({...e}){return(0,n.jsx)(m.bL,{"data-slot":"dropdown-menu",...e})}function f({...e}){return(0,n.jsx)(m.l9,{"data-slot":"dropdown-menu-trigger",...e})}function p({className:e,sideOffset:t=4,...s}){return(0,n.jsx)(m.ZL,{children:(0,n.jsx)(m.UC,{"data-slot":"dropdown-menu-content",sideOffset:t,className:(0,x.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",e),...s})})}function v({className:e,inset:t,variant:s="default",...a}){return(0,n.jsx)(m.q7,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":s,className:(0,x.cn)("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}var g=s(18496),b=s(83099),w=s(87293);let j=(0,r.default)(()=>Promise.all([s.e(3266),s.e(8425),s.e(7105),s.e(1375),s.e(5004),s.e(277),s.e(2545),s.e(4034),s.e(9352),s.e(6361),s.e(3678)]).then(s.bind(s,3678)),{loadableGenerated:{webpack:()=>[3678]},ssr:!1,loading:()=>(0,n.jsx)(c.L,{})}),y=["\uD83D\uDCDD","\uD83D\uDCC4","\uD83D\uDCCB","\uD83D\uDCCC","\uD83D\uDCCE","\uD83D\uDCD1","\uD83D\uDCD2","\uD83D\uDCD3","\uD83D\uDCD4","\uD83D\uDCD5","\uD83D\uDCD6","\uD83D\uDCD7","\uD83D\uDCD8","\uD83D\uDCD9","\uD83C\uDFAF","\uD83D\uDE80","\uD83D\uDCA1","\uD83D\uDD25","⚡","\uD83C\uDFA8","\uD83E\uDDE0","\uD83D\uDCBB","\uD83D\uDD27","\uD83D\uDCCA","\uD83D\uDDC2️","✨","\uD83C\uDF1F","\uD83D\uDC4B","\uD83C\uDF99️","\uD83C\uDFB5","\uD83D\uDCF7","\uD83D\uDD2C","\uD83C\uDFD7️","\uD83D\uDDFA️","\uD83E\uDDE9"],N=(0,a.memo)(function({status:e}){return"idle"===e?null:(0,n.jsx)("span",{className:`text-xs transition-opacity duration-300 ${{idle:"text-text-muted",saved:"text-success",saving:"text-text-muted",unsaved:"text-warning",error:"text-error"}[e]} ${"saved"===e?"animate-fade-out":""}`,children:{idle:"",saved:"Saved",saving:"Saving…",unsaved:"Unsaved changes",error:"Save failed"}[e]})}),k=(0,a.memo)(function({filePath:e}){let t=e.replace(/\.md$/,"").split("/").map(e=>e.replace(/[-_]+/g," ").replace(/\b\w/g,e=>e.toUpperCase()));return(0,n.jsx)("nav",{className:"flex items-center gap-1 text-[13px] text-text-muted",children:t.map((e,s)=>(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[s>0&&(0,n.jsx)("span",{className:"text-text-muted/50",children:"/"}),(0,n.jsx)("span",{className:s===t.length-1?"text-text-secondary":"",children:e})]},s))})});function S({icon:e,onSelect:t}){let[s,r]=(0,a.useState)(!1),i=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(s)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e);function e(e){i.current&&!i.current.contains(e.target)&&r(!1)}},[s]),(0,n.jsxs)("div",{ref:i,className:"relative inline-block",children:[(0,n.jsx)("button",{type:"button",onClick:()=>r(!s),className:"text-4xl leading-none hover:bg-surface-hover rounded-lg p-1 transition-colors cursor-pointer md:text-4xl text-3xl",title:"Change icon",children:e||"\uD83D\uDCC4"}),s&&(0,n.jsx)("div",{className:"absolute top-full left-0 z-50 mt-1 grid grid-cols-7 gap-1 rounded-lg border border-border bg-popover p-2 shadow-lg",children:y.map(e=>(0,n.jsx)("button",{type:"button",onClick:()=>{t(e),r(!1)},className:"flex items-center justify-center w-8 h-8 rounded hover:bg-surface-hover transition-colors text-lg cursor-pointer min-h-[44px] min-w-[44px] md:min-h-0 md:min-w-0",children:e},e))})]})}let C=(0,a.memo)(function({status:e,wordCount:t,modified:s}){let[r,i]=(0,a.useState)(!1);(0,a.useEffect)(()=>{i(!0)},[]);let d=new Date(s),o=r?d.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):"",l=r?d.toLocaleDateString(void 0,{month:"short",day:"numeric"}):"";return(0,n.jsxs)("div",{className:"sticky bottom-0 z-10 flex items-center justify-between border-t border-border bg-background/80 backdrop-blur-sm px-4 py-1.5 text-xs text-text-muted md:px-6 max-md:bottom-14",children:[(0,n.jsxs)("div",{className:"flex items-center gap-4",children:[(0,n.jsx)(N,{status:e}),(0,n.jsxs)("span",{className:"hidden sm:inline",children:[t," words"]})]}),(0,n.jsxs)("span",{className:"hidden sm:inline",children:["Last edited"," ",(0,n.jsx)("span",{suppressHydrationWarning:!0,children:l})," at"," ",(0,n.jsx)("span",{suppressHydrationWarning:!0,children:o})]}),(0,n.jsx)("span",{className:"sm:hidden",children:(0,n.jsx)(N,{status:e})})]})});function E({initialContent:e,meta:t,filePath:s}){let r=(0,i.useRouter)(),{deletePage:m}=(0,g.M)(),x=(0,b.W)(e=>e.review),y=(0,b.W)(e=>e.closeReview),[N,E]=(0,a.useState)(t),[R,z]=(0,a.useState)(e),[P,T]=(0,a.useState)(0),[F,$]=(0,a.useState)(t.icon),[U,_]=(0,a.useState)("idle"),[I,L]=(0,a.useState)(0),[W,A]=(0,a.useState)(t.modified),[D,O]=(0,a.useState)(!1),K=(0,a.useRef)(null),H=(0,a.useRef)(null),J=(0,a.useRef)(t.title),M=(0,a.useRef)("idle"),q=(0,a.useRef)(e),B=(0,a.useRef)(0),G=(0,a.useRef)(null),V=(0,a.useRef)(null),Z=(0,a.useRef)(null),Q=(0,a.useRef)(s);(0,a.useEffect)(()=>{M.current=U},[U]),(0,a.useEffect)(()=>{Q.current=s},[s]),(0,a.useEffect)(()=>{O(!0)},[]),(0,a.useEffect)(()=>{E(t),z(e),T(e=>e+1),$(t.icon),A(t.modified),_("idle"),L(0),J.current=t.title,q.current=e,B.current=0,G.current=null,V.current&&(l.oR.dismiss(V.current),V.current=null)},[s,e,t]);let X=(0,a.useCallback)(e=>{H.current&&clearTimeout(H.current),H.current=setTimeout(async()=>{try{let t=await fetch(`/api/files/pages/${encodeURIComponent(s)}`);if(!t.ok)return;let n=await t.json();await fetch(`/api/files/pages/${encodeURIComponent(s)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:n.content,meta:{...e}})});let a=new Date().toISOString();B.current=Date.now(),A(a),E(t=>({...t,...e,modified:a}))}catch(e){console.error("Failed to save meta:",e)}},800)},[s]),Y=(0,a.useCallback)(()=>{let e=K.current?.textContent?.trim()||"Untitled";e!==J.current&&(J.current=e,X({title:e,icon:F}))},[F,X]),ee=(0,a.useCallback)(e=>{if("Enter"===e.key){e.preventDefault();let t=document.querySelector(".clawpad-editor .ProseMirror");t?.focus()}},[]),et=(0,a.useCallback)(e=>{$(e);let t=K.current?.textContent?.trim()||J.current||"Untitled";J.current=t,X({title:t,icon:e})},[X]),es=(0,a.useCallback)(e=>{let t=new Date().toISOString();q.current=e,B.current=Date.now(),A(t),E(e=>({...e,modified:t}))},[]),en=(0,a.useCallback)(async()=>{try{await m(s),r.push("/workspace")}catch(e){console.error("Failed to delete page:",e)}},[m,s,r]),ea=(0,a.useCallback)((e,t)=>{G.current=null,V.current&&(l.oR.dismiss(V.current),V.current=null),E(t),$(t.icon),A(t.modified),z(e),T(e=>e+1),_("idle"),q.current=e},[]),er=(0,a.useCallback)(async(e=!1)=>{try{let t=await fetch(`/api/files/pages/${encodeURIComponent(Q.current)}`);if(!t.ok){404===t.status&&(l.oR.error("This page was deleted."),r.push("/workspace"));return}let s=await t.json(),n=s.content??"",a=s.meta;if(("unsaved"===M.current||"saving"===M.current)&&!e){G.current={content:n,meta:a},V.current||(V.current=(0,l.oR)("This page changed on disk",{action:{label:"Reload",onClick:()=>er(!0)},duration:6e3}));return}if(n===q.current&&!e){E(a),$(a.icon),A(a.modified);return}ea(n,a)}catch(e){console.error("Failed to refresh page:",e)}},[ea,r]);return((0,a.useEffect)(()=>{J.current=N.title,K.current&&(K.current.textContent=N.title)},[N.title,s]),(0,a.useEffect)(()=>{let e=e=>{let t=e.detail;if(t?.path&&t.path===Q.current){if("file-removed"===t.type){l.oR.error("This page was deleted."),r.push("/workspace");return}t.timestamp&&1e3>Math.abs(t.timestamp-B.current)||(Z.current&&clearTimeout(Z.current),Z.current=setTimeout(()=>{er()},250))}};return window.addEventListener("clawpad:file-change",e),()=>{window.removeEventListener("clawpad:file-change",e),Z.current&&(clearTimeout(Z.current),Z.current=null)}},[er,r]),(0,a.useEffect)(()=>()=>{H.current&&clearTimeout(H.current)},[]),x.open&&x.changeSetId&&x.filePath===s)?(0,n.jsx)(w.W,{changeSetId:x.changeSetId,filePath:s,onExit:y}):(0,n.jsxs)("div",{className:"flex min-h-full flex-col max-md:pb-14",children:[(0,n.jsxs)("div",{className:"mx-auto w-full flex-1 px-3 md:px-8",style:{maxWidth:"var(--clawpad-editor-width, 720px)"},children:[(0,n.jsxs)("div",{className:"pt-12 pb-1 md:pt-20",children:[(0,n.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,n.jsx)(S,{icon:F,onSelect:et}),D?(0,n.jsxs)(h,{children:[(0,n.jsx)(f,{asChild:!0,children:(0,n.jsxs)(u.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-foreground",children:[(0,n.jsx)(d.A,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Page actions"})]})}),(0,n.jsx)(p,{align:"end",className:"w-44",children:(0,n.jsxs)(v,{className:"text-destructive focus:text-destructive",onClick:en,children:[(0,n.jsx)(o.A,{className:"mr-2 h-4 w-4"}),"Delete"]})})]}):(0,n.jsxs)(u.$,{variant:"ghost",size:"icon",className:"h-8 w-8 text-muted-foreground hover:text-foreground",disabled:!0,children:[(0,n.jsx)(d.A,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Page actions"})]})]}),(0,n.jsx)("h1",{ref:K,className:"mt-2 text-2xl font-semibold leading-tight tracking-tight outline-none md:text-[2rem] empty:before:content-['Untitled'] empty:before:text-text-muted",contentEditable:!0,suppressContentEditableWarning:!0,onInput:Y,onKeyDown:ee,spellCheck:!1,dir:"auto"}),(0,n.jsx)("div",{className:"mt-2 mb-4 md:mb-6",children:(0,n.jsx)(k,{filePath:s})})]}),(0,n.jsx)(a.Suspense,{fallback:(0,n.jsx)(c.L,{}),children:(0,n.jsx)(j,{initialContent:R,filePath:s,onSave:es,onStatusChange:_,onWordCountChange:L,readOnly:!1},`${s}-${P}`)})]}),(0,n.jsx)(C,{status:U,wordCount:I,modified:W})]})}}},e=>{e.O(0,[330,9907,528,4559,8500,385,3505,1178,8441,3794,7358],()=>e(e.s=1022)),_N_E=e.O()}]);