koboyo 0.4.0 → 0.5.1

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 (169) hide show
  1. package/README.md +26 -0
  2. package/assets/editor/assets/ContextMenuTrigger-C6XZ9rqq.js +1 -0
  3. package/assets/editor/assets/{IconHelp-CaEwHrsN.js → IconHelp-Bf6OkQYw.js} +2 -2
  4. package/assets/editor/assets/IconReplace-CYUD1RLF.js +1 -0
  5. package/assets/editor/assets/IconSquare-Ce_qY-mF.js +1 -0
  6. package/assets/editor/assets/MenuSubmenuTrigger-CTLO1z_0.js +1 -0
  7. package/assets/editor/assets/{PopoverPopup-B3Y0VRYc.js → PopoverPopup-CvnB7nJs.js} +1 -1
  8. package/assets/editor/assets/asset-glyph-Dxg-7b67.js +1 -0
  9. package/assets/editor/assets/build-pips-DsgLkk6R.js +1 -0
  10. package/assets/editor/assets/build-visibility-0Y4EP2Ka.js +1 -0
  11. package/assets/editor/assets/builders-hABCgtrj.js +1 -0
  12. package/assets/editor/assets/{chrome-layout-BzPU9far.js → chrome-layout-500Q9pcx.js} +1 -1
  13. package/assets/editor/assets/code-panel-CHMqHqc6.js +18 -0
  14. package/assets/editor/assets/color-swatches-BC1-16T-.js +1 -0
  15. package/assets/editor/assets/{command-palette-BR-_ChOL.js → command-palette-BNj4FPOh.js} +1 -1
  16. package/assets/editor/assets/connector-labels-piWvprqQ.js +2 -0
  17. package/assets/editor/assets/{copy-image-dialog-BzGP7Xw8.js → copy-image-dialog-BdQfoSGr.js} +1 -1
  18. package/assets/editor/assets/core-DnS-1skV.js +1 -0
  19. package/assets/editor/assets/create-Bd0K44Bi.js +1 -0
  20. package/assets/editor/assets/custom-shape-view-_TxDE4zO.js +1 -0
  21. package/assets/editor/assets/custom-shapes-D3n9PjCN.js +1 -0
  22. package/assets/editor/assets/diagram-fingerprint-CtYYDDQV.js +3 -0
  23. package/assets/editor/assets/edit-NIyQT3d_.js +1 -0
  24. package/assets/editor/assets/editor-CpiNbiMQ.js +1 -0
  25. package/assets/editor/assets/{elk-api-C4wlHVIw.js → elk-api-DfUWdVFD.js} +1 -1
  26. package/assets/editor/assets/elk-worker-loader-D09QKxa0.js +3 -0
  27. package/assets/editor/assets/embed-input-D77Udvni.js +1 -0
  28. package/assets/editor/assets/excalidraw-D0kr_KKg.js +1 -0
  29. package/assets/editor/assets/export-DUFOrZJ-.js +6 -0
  30. package/assets/editor/assets/export-HJI2Aq3h.js +2 -0
  31. package/assets/editor/assets/export-dialog-Edoe6LBK.js +1 -0
  32. package/assets/editor/assets/flow-layer-DX6oKkg8.js +1 -0
  33. package/assets/editor/assets/flow-panel-BsbC8WAJ.js +1 -0
  34. package/assets/editor/assets/flow-stage-DFvraJ0j.js +1 -0
  35. package/assets/editor/assets/{flow-start-CpAvU-9P.js → flow-start-D_gK7Gur.js} +1 -1
  36. package/assets/editor/assets/flows-BAU4NQGk.js +3 -0
  37. package/assets/editor/assets/frames-C-jROub3.js +5 -0
  38. package/assets/editor/assets/generate-BWJhhTxM.js +26 -0
  39. package/assets/editor/assets/geometry-CVRSymIE.js +1 -0
  40. package/assets/editor/assets/icon-picker-cggWIJiD.js +1 -0
  41. package/assets/editor/assets/icons-K7FjuB-c.js +2 -0
  42. package/assets/editor/assets/{image-library-JQu_tb8P.js → image-library-BG41F2Zi.js} +1 -1
  43. package/assets/editor/assets/{index-DBrN0u0i.css → index-B0dKwEIM.css} +1 -1
  44. package/assets/editor/assets/index-BSs3RHtR.js +25 -0
  45. package/assets/editor/assets/layout-offthread-3DtYtT7h.js +18 -0
  46. package/assets/editor/assets/layout.worker-B99h3Wv0.js +28 -0
  47. package/assets/editor/assets/menu-rOnlAYaK.js +1 -0
  48. package/assets/editor/assets/mermaid-paste-C1_G99Lz.js +1 -0
  49. package/assets/editor/assets/panel-controls-BT48HF6c.js +1 -0
  50. package/assets/editor/assets/{panel-shell-BnMOHgWM.js → panel-shell-CSvihB5L.js} +1 -1
  51. package/assets/editor/assets/plan-BS_pzMjA.js +1 -0
  52. package/assets/editor/assets/presentation-DlKoEXsq.js +1 -0
  53. package/assets/editor/assets/{presenter-keys-Bs3LnmOa.js → presenter-keys-uSrN0NG3.js} +1 -1
  54. package/assets/editor/assets/rich-paste-route-Bx69sREx.js +1 -0
  55. package/assets/editor/assets/ride-overlay-ChaS8O9D.js +1 -0
  56. package/assets/editor/assets/selection-overlay-primitives-DXtdWjNx.js +1 -0
  57. package/assets/editor/assets/shape-meta-CZ0aZy7a.js +1 -0
  58. package/assets/editor/assets/shape-render-PK6dqxxf.js +1 -0
  59. package/assets/editor/assets/shapes-CHDGoELO.js +11 -0
  60. package/assets/editor/assets/shared-DKcKntwk.js +1 -0
  61. package/assets/editor/assets/{slide-notes-dialog-BQBXpep6.js → slide-notes-dialog-CypGkEmF.js} +1 -1
  62. package/assets/editor/assets/slides-panel-D22Fponu.js +26 -0
  63. package/assets/editor/assets/table-PnIQtvp1.js +7 -0
  64. package/assets/editor/assets/text-breaks-BDwq8Wxj.js +7 -0
  65. package/assets/editor/assets/{theme-palette-Dl_G_VIJ.js → theme-palette-DZtiNUYJ.js} +1 -1
  66. package/assets/editor/assets/tidy-browser-DqAPzbkG.js +1 -0
  67. package/assets/editor/assets/tidy-scope-CQinfwtO.js +1 -0
  68. package/assets/editor/assets/tldraw-DSRiyEEW.js +2 -0
  69. package/assets/editor/assets/tool-catalog-DM8xoisn.js +1 -0
  70. package/assets/editor/assets/tool-drawer-hovu85Xd.js +1 -0
  71. package/assets/editor/assets/{tooltip-CyBz17g8.js → tooltip-ClTJbfBH.js} +1 -1
  72. package/assets/editor/assets/tree-Ch-RF7UJ.js +1 -0
  73. package/assets/editor/assets/use-export-command-CZva79qg.js +2 -0
  74. package/assets/editor/assets/use-grid-keyboard-nav-BhzrY178.js +0 -0
  75. package/assets/editor/assets/{use-icon-node-BxqH7H27.js → use-icon-node-B5V42drv.js} +1 -1
  76. package/assets/editor/assets/{use-key-held-094C3Mn3.js → use-key-held-DRn09Hq8.js} +1 -1
  77. package/assets/editor/assets/use-web-environment-Ce65LEhf.js +1 -0
  78. package/assets/editor/assets/useTriggerFocusGuards-Mibi8yYw.js +1 -0
  79. package/assets/editor/assets/web-card-BTru0lge.js +1 -0
  80. package/assets/editor/assets/web-card-font-BbZEq3En.js +1 -0
  81. package/assets/editor/assets/web-controls-DIAT8wcZ.js +1 -0
  82. package/assets/editor/assets/web-embed-dialog-CnaSzcu9.js +1 -0
  83. package/assets/editor/assets/web-embed-url-CHu4SU82.js +1 -0
  84. package/assets/editor/assets/web-embeds-I3saJ_yp.js +1 -0
  85. package/assets/editor/assets/web-html-dialog-DpkLs7qD.js +1 -0
  86. package/assets/editor/assets/web-runtime-DNdRiAlf.js +1 -0
  87. package/assets/editor/assets/web-widget-limits-DeMquLIR.js +1 -0
  88. package/assets/editor/assets/web-widgets-DsFUBhiq.js +325 -0
  89. package/assets/editor/assets/widget-source-C3N9ZKTz.js +2 -0
  90. package/assets/editor/assets/widget-target-C9a207gT.js +1 -0
  91. package/assets/editor/index.html +46 -40
  92. package/dist/koboyo.js +605 -269
  93. package/package.json +3 -3
  94. package/skills/koboyo/SKILL.md +8 -3
  95. package/skills/koboyo/references/architecture.md +3 -1
  96. package/skills/koboyo/references/bpmn.md +1 -1
  97. package/skills/koboyo/references/chart.md +1 -1
  98. package/skills/koboyo/references/cycle.md +1 -1
  99. package/skills/koboyo/references/erd.md +1 -1
  100. package/skills/koboyo/references/flowchart.md +1 -1
  101. package/skills/koboyo/references/funnel.md +1 -1
  102. package/skills/koboyo/references/gantt.md +1 -1
  103. package/skills/koboyo/references/gitgraph.md +1 -1
  104. package/skills/koboyo/references/journey.md +1 -1
  105. package/skills/koboyo/references/matrix.md +1 -1
  106. package/skills/koboyo/references/mindmap.md +1 -1
  107. package/skills/koboyo/references/orgchart.md +1 -1
  108. package/skills/koboyo/references/pyramid.md +1 -1
  109. package/skills/koboyo/references/sankey.md +1 -1
  110. package/skills/koboyo/references/sequence.md +1 -1
  111. package/skills/koboyo/references/statemachine.md +1 -1
  112. package/skills/koboyo/references/timeline.md +1 -1
  113. package/skills/koboyo/references/venn.md +1 -1
  114. package/skills/koboyo/references/wireframe.md +1 -1
  115. package/assets/editor/assets/MenuSubmenuTrigger-KacA9GM8.js +0 -1
  116. package/assets/editor/assets/asset-glyph-C1E6cGwM.js +0 -1
  117. package/assets/editor/assets/build-pips-BV-uwXlP.js +0 -1
  118. package/assets/editor/assets/build-visibility-DyML9SHt.js +0 -1
  119. package/assets/editor/assets/builders-DMHAOPEv.js +0 -1
  120. package/assets/editor/assets/chart-4iRduYdU.js +0 -7
  121. package/assets/editor/assets/code-panel-koBUgEWp.js +0 -43
  122. package/assets/editor/assets/connector-labels-CrEgadsC.js +0 -2
  123. package/assets/editor/assets/core-CmsJyU_-.js +0 -1
  124. package/assets/editor/assets/diagram-fingerprint-WGQ5iVXx.js +0 -3
  125. package/assets/editor/assets/edit-C0sBxxsg.js +0 -1
  126. package/assets/editor/assets/editor-BeufBV54.js +0 -1
  127. package/assets/editor/assets/elk-worker-loader-CVBdN1je.js +0 -3
  128. package/assets/editor/assets/excalidraw-BwgRIDi9.js +0 -1
  129. package/assets/editor/assets/export-Bce6ra0N.js +0 -2
  130. package/assets/editor/assets/export-K2VWg76n.js +0 -6
  131. package/assets/editor/assets/export-dialog-x2n2a4KX.js +0 -1
  132. package/assets/editor/assets/flow-layer-ewaL7g2y.js +0 -1
  133. package/assets/editor/assets/flow-panel-BzXNGGke.js +0 -1
  134. package/assets/editor/assets/flow-stage-Ba_CAggI.js +0 -1
  135. package/assets/editor/assets/flows-Cj7AFMIA.js +0 -3
  136. package/assets/editor/assets/frames-Cp1QD3LR.js +0 -1
  137. package/assets/editor/assets/icon-picker-Cg39IKNJ.js +0 -1
  138. package/assets/editor/assets/icon-sources-CZI1h18s.js +0 -1
  139. package/assets/editor/assets/icons-DzW1j-r3.js +0 -2
  140. package/assets/editor/assets/index-CBPPqsiR.js +0 -24
  141. package/assets/editor/assets/layout-offthread-mRHRulkS.js +0 -18
  142. package/assets/editor/assets/layout.worker-CekYkaxO.js +0 -27
  143. package/assets/editor/assets/menu-B9BAk63v.js +0 -1
  144. package/assets/editor/assets/panel-controls-DWVXiNUZ.js +0 -1
  145. package/assets/editor/assets/plan-CkgM52Yh.js +0 -1
  146. package/assets/editor/assets/presentation-DJUO0t7I.js +0 -1
  147. package/assets/editor/assets/reflow-DaYiVkwp.js +0 -1
  148. package/assets/editor/assets/registry-rEGZW7Ab.js +0 -1
  149. package/assets/editor/assets/ride-overlay-Hx90v4ZK.js +0 -1
  150. package/assets/editor/assets/selection-overlay-primitives-BRp854AD.js +0 -1
  151. package/assets/editor/assets/shape-meta-COE2ATNh.js +0 -1
  152. package/assets/editor/assets/shared-DjLCTIA9.js +0 -1
  153. package/assets/editor/assets/slides-D686obFO.js +0 -15
  154. package/assets/editor/assets/slides-panel-BEJCevJi.js +0 -26
  155. package/assets/editor/assets/style-BENGW2ZV.js +0 -1
  156. package/assets/editor/assets/text-breaks-DM4W6y5f.js +0 -7
  157. package/assets/editor/assets/tidy-browser-dF3BON7J.js +0 -1
  158. package/assets/editor/assets/tidy-scope-BGG3ZXvZ.js +0 -1
  159. package/assets/editor/assets/tldraw-CE87oKyq.js +0 -2
  160. package/assets/editor/assets/tool-catalog-DXPhX2S1.js +0 -1
  161. package/assets/editor/assets/tool-drawer-CWOX_njp.js +0 -1
  162. package/assets/editor/assets/tree-KSgPjntC.js +0 -1
  163. package/assets/editor/assets/use-export-command-sC9UHj3_.js +0 -2
  164. package/assets/editor/assets/use-grid-keyboard-nav-DhQKecO1.js +0 -0
  165. package/assets/editor/assets/web-controls-CLE9zr7i.js +0 -1
  166. package/assets/editor/assets/web-embed-dialog-XUNelFFM.js +0 -1
  167. package/assets/editor/assets/web-html-dialog-BcAyzH5D.js +0 -1
  168. package/assets/editor/assets/web-shape-C941TGTy.js +0 -1
  169. package/assets/editor/assets/widget-source-CHujvUeA.js +0 -1
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{$t as n,A as r,An as i,At as a,B as o,Bt as s,Cn as c,D as l,Dn as u,Dt as d,Et as f,F as p,Ft as m,Gt as h,H as g,I as _,J as v,Jt as y,Kt as b,L as x,Lt as ee,M as S,Mn as C,N as w,Nn as T,Nt as E,On as te,Ot as D,P as O,Pt as ne,R as k,Tn as A,U as j,Ut as re,W as M,Wt as N,X as P,Xt as ie,Y as ae,Yt as F,Z as oe,_ as se,_n as I,_t as L,b as R,ct as z,d as B,dt as ce,et as le,f as V,ft as H,h as U,ht as W,in as ue,it as G,j as K,jn as q,jt as J,kn as Y,kt as X,l as de,mn as Z,mt as fe,n as pe,nn as me,o as he,p as ge,pn as _e,pt as ve,qt as ye,r as be,s as xe,tn as Se,ut as Ce,v as we,vn as Te,vt as Ee,w as De,wn as Oe,x as ke,y as Ae,yt as je}from"./useScrollLock-CQpr0n6U.js";import{t as Me}from"./jsx-runtime-DKdBMi_L.js";import{a as Ne,i as Pe,n as Fe,o as Ie,r as Le,t as Re}from"./usePositioner-AtbrPc7w.js";import{n as ze,t as Be}from"./useButton-CLQYGhRJ.js";import{a as Ve,i as He,r as Ue}from"./tooltip-ClTJbfBH.js";import{a as We,n as Ge,t as Ke}from"./useTriggerFocusGuards-Mibi8yYw.js";import{t as qe}from"./createReactComponent-C51FAx3B.js";import{t as Je}from"./useBaseUiId-D2RfU0uY.js";import{n as Ye,t as Xe}from"./useAnchoredPopupScrollLock-i8D5Dm1d.js";import{n as Ze,t as Qe}from"./surface-Dke4SWpE.js";var Q=e(t(),1),$e=`Escape`;function et(e,t,n){switch(e){case`vertical`:return t;case`horizontal`:return n;default:return t||n}}function tt(e,t){return et(t,e===`ArrowUp`||e===`ArrowDown`,e===`ArrowLeft`||e===`ArrowRight`)}function nt(e,t,n){return et(t,e===`ArrowDown`,n?e===`ArrowLeft`:e===`ArrowRight`)||e===`Enter`||e===` `||e===``}function rt(e,t,n){return et(t,n?e===ye:e===y,e===b)}function it(e,t,n,r){return t===`both`||t===`horizontal`&&r?e===$e:et(t,n?e===y:e===ye,e===F)}function at(e,t){let{listRef:n,activeIndex:r,onNavigate:i=()=>{},enabled:c=!0,selectedIndex:l=null,allowEscape:y=!1,loopFocus:b=!1,nested:x=!1,rtl:S=!1,virtual:w=!1,focusItemOnOpen:T=`auto`,focusItemOnHover:te=!0,openOnArrowKeyDown:O=!0,disabledIndices:k=void 0,orientation:A=`vertical`,parentOrientation:M,id:P,resetOnPointerLeave:ie=!0,externalTree:ae,grid:F}=t,se=F!=null,L=`rootStore`in e?e.rootStore:e,R=L.useState(`open`),z=L.useState(`floatingElement`),B=L.useState(`domReferenceElement`),ce=L.context.dataRef,le=ee(z),V=s(B),H=g(le),U=p(),W=_(ae),G=Q.useRef(T),K=Q.useRef(l??-1),q=Q.useRef(null),J=Q.useRef(!0),Y=u(e=>{i(K.current===-1?null:K.current,e)}),X=Q.useRef(!!z),de=Q.useRef(R),Z=Q.useRef(!1),fe=Q.useRef(!1),pe=Q.useRef(null),he=g(k),ge=g(R),_e=g(l),ve=g(ie),ye=me(),be=me(),xe=u(()=>{function e(e){w?W?.events.emit(`virtualfocus`,e):pe.current=o(e,{sync:Z.current,preventScroll:!0})}let t=n.current[K.current],r=fe.current;t&&e(t),(Z.current?e=>e():e=>ye.request(e))(()=>{let i=n.current[K.current]||t;i&&(t||e(i),De&&(r||!J.current)&&i.scrollIntoView?.({block:`nearest`,inline:`nearest`}))})});C(()=>{ce.current.orientation=A},[ce,A]),C(()=>{c&&(R&&z?(K.current=l??-1,G.current&&l!=null&&(fe.current=!0,Y())):X.current&&(K.current=-1,Y()))},[c,R,z,l,Y]),C(()=>{if(c){if(!R){Z.current=!1;return}if(z)if(r==null){if(Z.current=!1,_e.current!=null)return;if(X.current&&(K.current=-1,xe()),(!de.current||!X.current)&&G.current&&(q.current!=null||G.current===!0&&q.current==null)){let e=0,t=()=>{n.current[0]==null?(e<2&&(e?e=>be.request(e):queueMicrotask)(t),e+=1):(K.current=q.current==null||nt(q.current,A,S)||x?D(n):d(n),q.current=null,Y())};t()}}else a(n.current,r)||(K.current=r,xe(),fe.current=!1)}},[c,R,z,r,_e,x,n,A,S,Y,xe,be]),C(()=>{if(!c||z||!W||w||!X.current)return;let e=W.nodesRef.current,t=e.find(e=>e.id===U)?.context?.elements.floating,n=re(ue(B??t??null)),r=e.some(e=>e.context&&N(e.context.elements.floating,n));t&&!r&&J.current&&t.focus({preventScroll:!0})},[c,z,B,W,U,w]),C(()=>{de.current=R,X.current=!!z}),C(()=>{R||(q.current=null,G.current=T)},[R,T]);let Se=r!=null,Ce=u(e=>{if(!ge.current)return;let t=n.current.indexOf(e.currentTarget);t!==-1&&(K.current!==t||r!==t)&&(K.current=t,Y(e))}),we=u(()=>M??W?.nodesRef.current.find(e=>e.id===U)?.context?.dataRef?.current.orientation),Te=u(()=>D(n,he.current)),Ee=u(e=>{if(J.current=!1,Z.current=!0,e.which===229||!ge.current&&e.currentTarget===H.current)return;if(x&&it(e.key,A,S,se)){tt(e.key,we())||m(e),L.setOpen(!1,j(oe,e.nativeEvent)),I(B)&&(w?W?.events.emit(`virtualfocus`,B):B.focus());return}let t=K.current,r=D(n,k),i=d(n,k);if(V||(e.key===`Home`&&(m(e),K.current=r,Y(e)),e.key===`End`&&(m(e),K.current=i,Y(e))),F!=null){let t=F(e,K.current,n,A,b,S,k,r,i);if(t!=null&&(K.current=t,Y(e)),A===`both`)return}if(tt(e.key,A)){if(m(e),R&&!w&&re(e.currentTarget.ownerDocument)===e.currentTarget){K.current=nt(e.key,A,S)?r:i,Y(e);return}nt(e.key,A,S)?b?t>=i?y&&t!==n.current.length?K.current=-1:(Z.current=!1,K.current=r):K.current=f(n.current,{startingIndex:t,disabledIndices:k}):K.current=Math.min(i,f(n.current,{startingIndex:t,disabledIndices:k})):b?t<=r?y&&t!==-1?K.current=n.current.length:(Z.current=!1,K.current=i):K.current=f(n.current,{startingIndex:t,decrement:!0,disabledIndices:k}):K.current=Math.max(r,f(n.current,{startingIndex:t,decrement:!0,disabledIndices:k})),a(n.current,K.current)&&(K.current=-1),Y(e)}}),De=Q.useMemo(()=>({onFocus(e){Z.current=!0,Ce(e)},onClick:({currentTarget:e})=>e.focus({preventScroll:!0}),onMouseMove(e){Z.current=!0,fe.current=!1,te&&Ce(e)},onPointerLeave(e){if(!ge.current||!J.current||e.pointerType===`touch`)return;Z.current=!0;let t=e.relatedTarget;if(!(!te||n.current.includes(t))&&ve.current&&(pe.current?.(),pe.current=null,K.current=-1,Y(e),!w)){let e=H.current,t=re(ue(e));e&&N(e,t)&&e.focus({preventScroll:!0})}}}),[Ce,ge,H,te,n,Y,ve,w]),Oe=Q.useMemo(()=>w&&R&&Se&&{"aria-activedescendant":`${P}-${r}`},[w,R,Se,P,r]),ke=Q.useMemo(()=>({"aria-orientation":A===`both`?void 0:A,...V?{}:Oe,onKeyDown(e){if(e.key===`Tab`&&e.shiftKey&&R&&!w){let t=h(e.nativeEvent);if(t&&!N(H.current,t))return;m(e),L.setOpen(!1,j(v,e.nativeEvent)),I(B)&&B.focus();return}Ee(e)},onPointerMove(){J.current=!0}}),[Oe,Ee,H,A,V,L,R,w,B]),Ae=Q.useMemo(()=>{function e(e){L.setOpen(!0,j(oe,e.nativeEvent,e.currentTarget))}function t(e){T===`auto`&&E(e.nativeEvent)&&(G.current=!w)}function n(e){G.current=T,T===`auto`&&ne(e.nativeEvent)&&(G.current=!0)}return{onKeyDown(t){let n=L.select(`open`);J.current=!1;let r=t.key.startsWith(`Arrow`),i=rt(t.key,we(),S),a=tt(t.key,A),o=(x?i:a)||t.key===`Enter`||t.key.trim()===``;if(w&&n)return Ee(t);if(!(!n&&!O&&r)){if(o){let e=tt(t.key,we());q.current=x&&e?null:t.key}if(x){i&&(m(t),n?(K.current=Te(),Y(t)):e(t));return}a&&(_e.current!=null&&(K.current=_e.current),m(t),!n&&O?e(t):Ee(t),n&&Y(t))}},onFocus(e){L.select(`open`)&&!w&&(K.current=-1,Y(e))},onPointerDown:n,onPointerEnter:n,onMouseDown:t,onClick:t}},[Ee,T,Te,x,Y,L,O,A,we,S,_e,w]),je=Q.useMemo(()=>({...Oe,...Ae}),[Oe,Ae]);return Q.useMemo(()=>c?{reference:je,floating:ke,item:De,trigger:Ae}:{},[c,je,ke,Ae,De])}function ot(e,t){let{listRef:n,elementsRef:r,activeIndex:i,onMatch:a,disabledIndices:o,onTyping:s,enabled:c=!0,resetMs:l=750,selectedIndex:d=null}=t,f=`rootStore`in e?e.rootStore:e,p=f.useState(`open`),h=Se(),g=Q.useRef(``),_=Q.useRef(d??i??-1),v=Q.useRef(null),y=u(e=>{function t(e){let t=r?.current[e];return!t||X(t)}function c(e){return t(e)?o==null||!J(Oe,e,o):!1}function u(e,t,n=0){if(e.length===0)return-1;let r=(n%e.length+e.length)%e.length,i=t.toLowerCase();for(let t=0;t<e.length;t+=1){let n=(r+t)%e.length;if(!(!e[n]?.toLowerCase().startsWith(i)||!c(n)))return n}return-1}let f=n.current;if(g.current.length>0&&e.key===` `&&(m(e),s?.(!0)),g.current.length>0&&g.current[0]!==` `&&u(f,g.current)===-1&&e.key!==` `&&s?.(!1),f==null||e.key.length!==1||e.ctrlKey||e.metaKey||e.altKey)return;p&&e.key!==` `&&(m(e),s?.(!0));let y=g.current===``;y&&(_.current=d??i??-1),f.every((e,t)=>e&&c(t)?e[0]?.toLowerCase()!==e[1]?.toLowerCase():!0)&&g.current===e.key&&(g.current=``,_.current=v.current),g.current+=e.key,h.start(l,()=>{g.current=``,_.current=v.current,s?.(!1)});let b=((y?d??i??-1:_.current)??0)+1,x=u(f,g.current,b);x===-1?e.key!==` `&&(g.current=``,s?.(!1)):(a?.(x),v.current=x)}),b=u(e=>{let t=e.relatedTarget,n=f.select(`domReferenceElement`),r=f.select(`floatingElement`);N(n,t)||N(r,t)||(h.clear(),g.current=``,_.current=v.current,s?.(!1))});C(()=>{!p&&d!==null||(h.clear(),v.current=null,g.current!==``&&(g.current=``))},[p,d,h]),C(()=>{p&&g.current===``&&(_.current=d??i??-1)},[p,d,i]);let x=Q.useMemo(()=>({onKeyDown:y,onBlur:b}),[y,b]);return Q.useMemo(()=>c?{reference:x,floating:x}:{},[c,x])}var st=qe(`outline`,`dots`,`Dots`,[[`path`,{d:`M4 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-0`}],[`path`,{d:`M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M18 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}]]),ct=qe(`outline`,`player-play`,`PlayerPlay`,[[`path`,{d:`M7 4v16l13 -8l-13 -8`,key:`svg-0`}]]),lt=Q.createContext(void 0);function ut(e=!0){let t=Q.useContext(lt);if(t===void 0&&!e)throw Error(q(25));return t}var dt=Q.createContext(void 0);function ft(e){let t=Q.useContext(dt);if(t===void 0&&!e)throw Error(q(33));return t}var pt=Q.createContext(void 0);function mt(e){let t=Q.useContext(pt);if(t===void 0&&!e)throw Error(q(36));return t}function ht(e){let{closeOnClick:t,highlighted:r,id:i,nodeId:a,store:o,typingRef:s,itemRef:c,itemMetadata:l}=e,{events:u}=o.useState(`floatingTreeRoot`),d=o.useState(`open`),f=ut(!0),p=f!==void 0;return Q.useMemo(()=>({id:i,role:`menuitem`,tabIndex:d&&r?0:-1,onKeyDown(e){e.key===` `&&s?.current&&e.preventDefault()},onMouseMove(e){a&&u.emit(`itemhover`,{nodeId:a,target:e.currentTarget})},onClick(e){t&&u.emit(`close`,{domEvent:e,reason:P})},onMouseUp(e){if(f){let t=f.initialCursorPointRef.current;if(f.initialCursorPointRef.current=null,p&&t&&Math.abs(e.clientX-t.x)<=1&&Math.abs(e.clientY-t.y)<=1||p&&!n&&e.button===2)return}c.current&&o.context.allowMouseUpTriggerRef.current&&(!p||e.button===2)&&(!l||l.type===`regular-item`)&&c.current.click()}}),[t,r,i,u,a,d,o,s,c,f,p,l])}var gt={type:`regular-item`};function _t(e){let{closeOnClick:t,disabled:n=!1,highlighted:r,id:i,store:a,typingRef:o=a.context.typingRef,nativeButton:s,itemMetadata:c,nodeId:l}=e,u=a.useState(`disabled`),d=n||u,f=Q.useRef(null),{getButtonProps:p,buttonRef:m}=Be({disabled:d,focusableWhenDisabled:!0,native:s,composite:!0}),h=ht({closeOnClick:t,highlighted:r,id:i,nodeId:l,store:a,typingRef:o,itemRef:f,itemMetadata:c}),g=Q.useCallback(e=>L(h,{onMouseEnter(){c.type===`submenu-trigger`&&c.setActive()}},e,p),[h,p,c]),_=Ee(f,m);return Q.useMemo(()=>({getItemProps:g,itemRef:_}),[g,_])}var vt=Q.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function yt(){return Q.useContext(vt)}var bt=function(e){return e[e.None=0]=`None`,e[e.GuessFromOrder=1]=`GuessFromOrder`,e}({});function xt(e={}){let{label:t,metadata:n,textRef:r,indexGuessBehavior:i,index:a}=e,{register:o,unregister:s,subscribeMapChange:c,elementsRef:l,labelsRef:u,nextIndexRef:d}=yt(),f=Q.useRef(-1),[p,m]=Q.useState(a??(i===bt.GuessFromOrder?()=>{if(f.current===-1){let e=d.current;d.current+=1,f.current=e}return f.current}:-1)),h=Q.useRef(null),g=Q.useCallback(e=>{if(h.current=e,p!==-1&&e!==null&&(l.current[p]=e,u)){let n=t!==void 0;u.current[p]=n?t:r?.current?.textContent??e.textContent}},[p,l,u,t,r]);return C(()=>{if(a!=null)return;let e=h.current;if(e)return o(e,n),()=>{s(e)}},[a,o,s,n]),C(()=>{if(a==null)return c(e=>{let t=h.current?e.get(h.current)?.index:null;t!=null&&m(t)})},[a,c,m]),{ref:g,index:p}}var St=Q.forwardRef(function(e,t){let{render:n,className:r,id:i,label:a,nativeButton:o=!1,disabled:s=!1,closeOnClick:c=!0,style:l,...u}=e,d=xt({label:a}),f=ft(!0),p=Je(i),{store:m}=mt(),h=m.useState(`isActive`,d.index),g=m.useState(`itemProps`),{getItemProps:_,itemRef:v}=_t({closeOnClick:c,disabled:s,highlighted:h,id:p,store:m,nativeButton:o,nodeId:f?.context.nodeId,itemMetadata:gt});return W(`div`,e,{state:{disabled:s,highlighted:h},props:[g,u,_],ref:[v,t,d.ref]})}),$=Me(),Ct={...he,...ve},wt=Q.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,...o}=e,{store:s}=mt(),{side:c,align:l}=ft(),u=Ye(!0)!=null,d=s.useState(`open`),f=s.useState(`transitionStatus`),p=s.useState(`popupProps`),m=s.useState(`mounted`),h=s.useState(`instantType`),g=s.useState(`activeTriggerElement`),_=s.useState(`parent`),v=s.useState(`lastOpenChangeReason`),y=s.useState(`rootId`),b=s.useState(`floatingRootContext`),x=s.useState(`floatingTreeRoot`),ee=s.useState(`closeDelay`),S=s.useState(`activeTriggerElement`),C=s.useState(`hoverEnabled`),w=s.useState(`disabled`),T=s.useState(`openMethod`),E=_.type===`context-menu`;ce({open:d,ref:s.context.popupRef,onComplete(){d&&s.context.onOpenChangeComplete?.(!0)}}),Q.useEffect(()=>{function e(e){s.setOpen(!1,j(e.reason,e.domEvent))}return x.events.on(`close`,e),()=>{x.events.off(`close`,e)}},[x.events,s]),Ie(b,{enabled:C&&!w&&!E&&_.type!==`menubar`,closeDelay:ee});let te=Q.useCallback(e=>{s.set(`popupElement`,e)},[s]),D=W(`div`,e,{state:{transitionStatus:f,side:c,align:l,open:d,nested:_.type===`menu`,instant:h},ref:[t,s.context.popupRef,te],stateAttributesMapping:Ct,props:[p,{onKeyDown(e){u&&be.has(e.key)&&e.stopPropagation()}},Fe(f),o,{"data-rootownerid":y}]}),O=_.type===void 0||E;return(g||_.type===`menubar`&&v!==`outside-press`)&&(O=!0),(0,$.jsx)(K,{context:b,openInteractionType:T,modal:E,disabled:!m,returnFocus:a===void 0?O:a,initialFocus:_.type!==`menu`,restoreFocus:!0,externalTree:_.type===`menubar`?void 0:x,previousFocusableElement:S,nextFocusableElement:_.type===void 0?s.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:_.type===void 0?s.context.beforeContentFocusGuardRef:void 0,children:D})}),Tt=Q.createContext(void 0);function Et(){let e=Q.useContext(Tt);if(e===void 0)throw Error(q(32));return e}var Dt=Q.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=mt();return i.useState(`mounted`)||n?(0,$.jsx)(Tt.Provider,{value:n,children:(0,$.jsx)(k,{ref:t,...r})}):null});function Ot(e){let{children:t,elementsRef:n,labelsRef:r,onMapChange:i}=e,a=u(i),o=Q.useRef(0),s=T(At).current,c=T(kt).current,[l,d]=Q.useState(0),f=Q.useRef(l),p=u((e,t)=>{c.set(e,t??null),f.current+=1,d(f.current)}),m=u(e=>{c.delete(e),f.current+=1,d(f.current)}),h=Q.useMemo(()=>{let e=new Map;return Array.from(c.keys()).filter(e=>e.isConnected).sort(jt).forEach((t,n)=>{let r=c.get(t)??{};e.set(t,{...r,index:n})}),e},[c,l]);C(()=>{if(typeof MutationObserver!=`function`||h.size===0)return;let e=new MutationObserver(e=>{let t=new Set,n=e=>t.has(e)?t.delete(e):t.add(e);e.forEach(e=>{e.removedNodes.forEach(n),e.addedNodes.forEach(n)}),t.size===0&&(f.current+=1,d(f.current))});return h.forEach((t,n)=>{n.parentElement&&e.observe(n.parentElement,{childList:!0})}),()=>{e.disconnect()}},[h]),C(()=>{f.current===l&&(n.current.length!==h.size&&(n.current.length=h.size),r&&r.current.length!==h.size&&(r.current.length=h.size),o.current=h.size),a(h)},[a,h,n,r,l]),C(()=>()=>{n.current=[]},[n]),C(()=>()=>{r&&(r.current=[])},[r]);let g=u(e=>(s.add(e),()=>{s.delete(e)}));C(()=>{s.forEach(e=>e(h))},[s,h]);let _=Q.useMemo(()=>({register:p,unregister:m,subscribeMapChange:g,elementsRef:n,labelsRef:r,nextIndexRef:o}),[p,m,g,n,r,o]);return(0,$.jsx)(vt.Provider,{value:_,children:t})}function kt(){return new Map}function At(){return new Set}function jt(e,t){let n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}var Mt=Q.forwardRef(function(e,t){let{anchor:n,positionMethod:r=`absolute`,className:i,render:a,side:o,align:s,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=z,style:g,..._}=e,{store:v}=mt(),y=Et(),b=ut(!0),x=v.useState(`parent`),ee=v.useState(`floatingRootContext`),w=v.useState(`floatingTreeRoot`),T=v.useState(`mounted`),E=v.useState(`open`),te=v.useState(`modal`),D=v.useState(`openMethod`),O=v.useState(`activeTriggerElement`),ne=v.useState(`transitionStatus`),k=v.useState(`positionerElement`),A=v.useState(`instantType`),re=v.useState(`hasViewport`),M=v.useState(`lastOpenChangeReason`),N=v.useState(`floatingNodeId`),P=v.useState(`floatingParentNodeId`),ie=ee.useState(`domReferenceElement`),ae=Q.useRef(null),F=H(k,!1,!1),oe=n,se=c,I=l,L=s,R=h;x.type===`context-menu`&&(oe=n??x.context?.anchor,L??=`start`,!o&&L!==`center`&&(I=e.alignOffset??2,se=e.sideOffset??-5));let B=o,ce=L;x.type===`menu`?(B??=`inline-end`,ce??=`start`,R=e.collisionAvoidance??Ce):x.type===`menubar`&&(B??=x.context.orientation===`vertical`?`inline-end`:`bottom`,ce??=`start`);let V=x.type===`context-menu`,U=Le({anchor:oe,floatingRootContext:ee,positionMethod:b?`fixed`:r,mounted:T,side:B,sideOffset:se,align:ce,alignOffset:I,arrowPadding:V?0:f,collisionBoundary:u,collisionPadding:d,sticky:p,nodeId:N,keepMounted:y,disableAnchorTracking:m,collisionAvoidance:R,shiftCrossAxis:V&&!(`side`in R&&R.side===`flip`),externalTree:w,adaptiveOrigin:re?Pe:void 0});Q.useEffect(()=>{function e(e){e.open&&(e.parentNodeId===N&&v.set(`hoverEnabled`,!1),e.nodeId!==N&&e.parentNodeId===v.select(`floatingParentNodeId`)&&v.setOpen(!1,j(le)))}return w.events.on(`menuopenchange`,e),()=>{w.events.off(`menuopenchange`,e)}},[v,w.events,N]),Q.useEffect(()=>{if(v.select(`floatingParentNodeId`)==null)return;function e(e){if(e.open||e.nodeId!==v.select(`floatingParentNodeId`))return;let t=e.reason??`sibling-open`;v.setOpen(!1,j(t))}return w.events.on(`menuopenchange`,e),()=>{w.events.off(`menuopenchange`,e)}},[w.events,v]);let W=Se();Q.useEffect(()=>{E||W.clear()},[E,W]),Q.useEffect(()=>{function e(e){if(!(!E||e.nodeId!==v.select(`floatingParentNodeId`)))if(e.target&&O&&O!==e.target){let e=v.select(`closeDelay`);e>0?W.isStarted()||W.start(e,()=>{v.setOpen(!1,j(le))}):v.setOpen(!1,j(le))}else W.clear()}return w.events.on(`itemhover`,e),()=>{w.events.off(`itemhover`,e)}},[w.events,E,O,v,W]),Q.useEffect(()=>{let e={open:E,nodeId:N,parentNodeId:P,reason:v.select(`lastOpenChangeReason`)};w.events.emit(`menuopenchange`,e)},[w.events,E,v,N,P]),C(()=>{let e=ie,t=ae.current;if(e&&(ae.current=e),t&&e&&e!==t){v.set(`instantType`,void 0);let e=new AbortController;return F(()=>{v.set(`instantType`,`trigger-change`)},e.signal),()=>{e.abort()}}},[ie,F,v]);let ue={open:E,side:U.side,align:U.align,anchorHidden:U.anchorHidden,nested:x.type===`menu`,instant:A},G=x.type===`menubar`&&x.context.modal;Xe(E&&(G||te&&M!==`trigger-hover`),D===`touch`,k,O);let K=Re(e,ue,{styles:U.positionerStyles,transitionStatus:ne,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!T,inert:!E}),q=T&&x.type!==`menu`&&(x.type!==`menubar`&&te&&M!==`trigger-hover`||x.type===`menubar`&&x.context.modal),J=null;return x.type===`menubar`?J=x.context.contentElement:x.type===void 0&&(J=O),(0,$.jsxs)(dt.Provider,{value:U,children:[q&&(0,$.jsx)(pe,{ref:x.type===`context-menu`||x.type===`nested-context-menu`?x.context.internalBackdropRef:null,inert:fe(!E),cutout:J}),(0,$.jsx)(S,{id:N,children:(0,$.jsx)(Ot,{elementsRef:v.context.itemDomElements,labelsRef:v.context.itemLabels,children:K})})]})}),Nt=Q.createContext(null);function Pt(e){let t=Q.useContext(Nt);if(t===null&&!e)throw Error(q(5));return t}var Ft={...B,disabled:i(e=>e.parent.type===`menubar`&&e.parent.context.disabled||e.disabled),modal:i(e=>(e.parent.type===void 0||e.parent.type===`context-menu`)&&(e.modal??!0)),openMethod:i(e=>e.openMethod),allowMouseEnter:i(e=>e.allowMouseEnter),highlightItemOnHover:i(e=>e.highlightItemOnHover),stickIfOpen:i(e=>e.stickIfOpen),parent:i(e=>e.parent),rootId:i(e=>e.parent.type===`menu`?e.parent.store.select(`rootId`):e.parent.type===void 0?e.rootId:e.parent.context.rootId),activeIndex:i(e=>e.activeIndex),isActive:i((e,t)=>e.activeIndex===t),hoverEnabled:i(e=>e.hoverEnabled),instantType:i(e=>e.instantType),lastOpenChangeReason:i(e=>e.openChangeReason),floatingTreeRoot:i(e=>e.parent.type===`menu`?e.parent.store.select(`floatingTreeRoot`):e.floatingTreeRoot),floatingNodeId:i(e=>e.floatingNodeId),floatingParentNodeId:i(e=>e.floatingParentNodeId),itemProps:i(e=>e.itemProps),closeDelay:i(e=>e.closeDelay),hasViewport:i(e=>e.hasViewport),keyboardEventRelay:i(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type===`menu`)return e.parent.store.select(`keyboardEventRelay`)})},It=class e extends c{constructor(e){super({...Lt(),...e},{positionerRef:Q.createRef(),popupRef:Q.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:Q.createRef(),beforeContentFocusGuardRef:Q.createRef(),onOpenChangeComplete:void 0,triggerElements:new V},Ft),this.unsubscribeParentListener=this.observe(`parent`,e=>{if(this.unsubscribeParentListener?.(),e.type===`menu`){let t=e.store.select(`rootId`),n=e.store.select(`floatingTreeRoot`),r=e.store.select(`keyboardEventRelay`);this.unsubscribeParentListener=e.store.subscribe(()=>{let i=e.store.select(`rootId`),a=e.store.select(`floatingTreeRoot`),o=e.store.select(`keyboardEventRelay`);t===i&&n===a&&r===o||(t=i,n=a,r=o,this.notifyAll())}),this.context.allowMouseUpTriggerRef=e.store.context.allowMouseUpTriggerRef;return}e.type!==void 0&&(this.context.allowMouseUpTriggerRef=e.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,t){this.state.floatingRootContext.context.events.emit(`setOpen`,{open:e,eventDetails:t})}static useStore(t,n){let r=T(()=>new e(n)).current;return t??r}unsubscribeParentListener=null};function Lt(){return{...de(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new x,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:A,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}var Rt=Q.createContext(void 0);function zt(){return Q.useContext(Rt)}var Bt=te(function(e){let{children:t,open:n,onOpenChange:i,onOpenChangeComplete:a,defaultOpen:o=!1,disabled:s=!1,modal:c,loopFocus:d=!0,orientation:f=`vertical`,actionsRef:m,closeParentOnEsc:h=!1,handle:g,triggerId:_,defaultTriggerId:v=null,highlightItemOnHover:y=!0}=e,b=ut(!0),x=mt(!0),ee=Pt(!0),S=zt(),T=Q.useMemo(()=>S&&x?{type:`menu`,store:x.store}:ee?{type:`menubar`,context:ee}:b&&!x?{type:`context-menu`,context:b}:{type:void 0},[b,x,ee,S]),E=It.useStore(g?.store,{open:o,openProp:n,activeTriggerId:v,triggerIdProp:_,parent:T});Ae(E,n,o,v),E.useControlledProp(`openProp`,n),E.useControlledProp(`triggerIdProp`,_),E.useContextCallback(`onOpenChangeComplete`,a);let te=G(),D=G(),ne=E.useState(`floatingTreeRoot`),k=O(ne),re=p(),M=E.useState(`open`),N=E.useState(`activeTriggerElement`),P=E.useState(`positionerElement`),ie=E.useState(`hoverEnabled`),F=E.useState(`disabled`),oe=E.useState(`lastOpenChangeReason`),I=E.useState(`parent`),z=E.useState(`activeIndex`),B=E.useState(`payload`),ce=E.useState(`floatingParentNodeId`),le=Q.useRef(null),V=Q.useRef(I.type!==`context-menu`),H=Se(),W=Q.useRef(!0),ue=Se(),K=ce!=null,{openMethod:q,triggerProps:J}=Ge(M);E.useSyncedValues({disabled:s,highlightItemOnHover:y,modal:I.type===void 0?c:void 0,openMethod:q,rootId:te}),we(E);let{forceUnmount:Y}=R(M,E,()=>{E.update({allowMouseEnter:!1,stickIfOpen:!0})});C(()=>{b&&!x?E.update({parent:{type:`context-menu`,context:b},floatingNodeId:k,floatingParentNodeId:re}):x&&E.update({floatingNodeId:k,floatingParentNodeId:re})},[b,x,k,re,E]),Q.useEffect(()=>{if(M||(le.current=null),I.type===`context-menu`){if(!M){H.clear(),V.current=!1;return}H.start(500,()=>{V.current=!0})}},[H,M,I.type]),C(()=>{!M&&!ie&&E.set(`hoverEnabled`,!0)},[M,ie,E]);let X=u((e,t)=>{let n=t.reason;if(M===e&&t.trigger===N&&oe===n)return;let r=U(t);if(!e&&t.trigger==null&&(t.trigger=N??void 0),i?.(e,t),t.isCanceled)return;E.state.floatingRootContext.dispatchOpenChange(e,t);let a=t.event;if(e===!1&&a?.type===`click`&&a.pointerType===`touch`&&!W.current)return;e&&n===`trigger-focus`?(W.current=!1,ue.start(300,()=>{W.current=!0})):(W.current=!0,ue.clear());let o=(n===`trigger-press`||n===`item-press`)&&a.detail===0&&a?.isTrusted,s=!e&&(n===`escape-key`||n==null),c={open:e,openChangeReason:n};le.current=t.event??null,se(c,e,t.trigger,r()),E.update(c),I.type===`menubar`&&(n===`trigger-focus`||n===`focus-out`||n===`trigger-hover`||n===`list-navigation`||n===`sibling-open`)?E.set(`instantType`,`group`):o||s?E.set(`instantType`,o?`click`:`dismiss`):E.set(`instantType`,void 0)}),de=l({popupStore:E,floatingId:D,nested:re!=null,onOpenChange:X}),Z=de.context.events;Q.useEffect(()=>{let e=({open:e,eventDetails:t})=>X(e,t);return Z.on(`setOpen`,e),()=>{Z?.off(`setOpen`,e)}},[Z,X]);let fe=Q.useCallback(()=>{E.setOpen(!1,j(ae))},[E]);Q.useImperativeHandle(m,()=>({unmount:Y,close:fe}),[Y,fe]);let pe;I.type===`context-menu`&&(pe=I.context),Q.useImperativeHandle(pe?.positionerRef,()=>P,[P]),Q.useImperativeHandle(pe?.actionsRef,()=>({setOpen:X}),[X]);let me=r(de,{enabled:!F,bubbles:{escapeKey:h&&I.type===`menu`},outsidePress(){return I.type!==`context-menu`||le.current?.type===`contextmenu`||V.current},externalTree:K?ne:void 0}),he=Ne(),_e=Q.useCallback(e=>{E.select(`activeIndex`)!==e&&E.set(`activeIndex`,e)},[E]),ve=at(de,{enabled:!F,listRef:E.context.itemDomElements,activeIndex:z,nested:I.type!==void 0,loopFocus:d,orientation:f,parentOrientation:I.type===`menubar`?I.context.orientation:void 0,rtl:he===`rtl`,disabledIndices:Oe,onNavigate:_e,openOnArrowKeyDown:I.type!==`context-menu`,externalTree:K?ne:void 0,focusItemOnHover:y}),ye=Q.useCallback(e=>{E.context.typingRef.current=e},[E]),be=ot(de,{enabled:!F,listRef:E.context.itemLabels,elementsRef:E.context.itemDomElements,activeIndex:z,resetMs:500,onMatch:e=>{M&&e!==z&&E.set(`activeIndex`,e)},onTyping:ye});ke(E,{floatingRootContext:de,activeTriggerProps:Q.useMemo(()=>{let e=L(be.reference,ve.reference,me.reference,{onMouseMove(){E.set(`allowMouseEnter`,!0)}},J);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=M,e},[E,be.reference,ve.reference,me.reference,J,M]),inactiveTriggerProps:Q.useMemo(()=>{let e=L(ve.trigger,me.trigger,J);return e[`aria-haspopup`]=`menu`,e[`aria-expanded`]=!1,e},[ve.trigger,me.trigger,J]),popupProps:Q.useMemo(()=>L(ge,{id:D,role:`menu`,"aria-labelledby":N?.id,onMouseMove(){E.set(`allowMouseEnter`,!0),I.type===`menu`&&E.set(`hoverEnabled`,!1)},onClick(){E.select(`hoverEnabled`)&&E.set(`hoverEnabled`,!1)},onKeyDown(e){let t=E.select(`keyboardEventRelay`);t&&!e.isPropagationStopped()&&t(e)}},be.floating,ve.floating,me.floating),[N,D,I.type,E,be.floating,ve.floating,me.floating]),itemProps:ve.item??A});let xe=Q.useMemo(()=>({store:E,parent:T}),[E,T]),Ce=(0,$.jsx)(pt.Provider,{value:xe,children:typeof t==`function`?t({payload:B}):t});return I.type===void 0||I.type===`context-menu`?(0,$.jsx)(w,{externalTree:ne,children:Ce}):Ce});function Vt(e){let t=e.getBoundingClientRect(),n=Z(e);if(ie)return t;let r=n.getComputedStyle(e,`::before`),i=n.getComputedStyle(e,`::after`);if(!(r.content!==`none`||i.content!==`none`))return t;let a=parseFloat(r.width)||0,o=parseFloat(r.height)||0,s=parseFloat(i.width)||0,c=parseFloat(i.height)||0,l=Math.max(t.width,a,s),u=Math.max(t.height,o,c),d=l-t.width,f=u-t.height;return{left:t.left-d/2,right:t.right+d/2,top:t.top-f/2,bottom:t.bottom+f/2}}function Ht(e={}){let{highlightItemOnHover:t,highlightedIndex:n,onHighlightedIndexChange:r}=ze(),{ref:i,index:a}=xt(e),o=n===a,s=Q.useRef(null),c=Ee(i,s);return{compositeProps:{tabIndex:o?0:-1,onFocus(){r(a)},onMouseMove(){let e=s.current;if(!t||!e)return;let n=e.hasAttribute(`disabled`)||e.ariaDisabled===`true`;!o&&!n&&e.focus()}},compositeRef:c,index:a}}function Ut(e){let{render:t,className:n,style:r,state:i=A,props:a=Oe,refs:o=Oe,metadata:s,stateAttributesMapping:c,tag:l=`div`,...u}=e,{compositeProps:d,compositeRef:f}=Ht({metadata:s});return W(l,e,{state:i,ref:[...o,f],props:[d,...a,u],stateAttributesMapping:c})}function Wt(e){if(I(e)&&e.hasAttribute(`data-rootownerid`))return e.getAttribute(`data-rootownerid`)??void 0;if(!Te(e))return Wt(_e(e))}function Gt(e){let{enabled:t=!0,mouseDownAction:n,open:r}=e,i=Q.useRef(!1);return Q.useMemo(()=>t?{onMouseDown:e=>{(n===`open`&&!r||n===`close`&&r)&&(i.current=!0,ue(e.currentTarget).addEventListener(`click`,()=>{i.current=!1},{once:!0}))},onClick:e=>{i.current&&(i.current=!1,e.preventBaseUIHandler())}}:A,[t,n,r])}var Kt=2,qt=Y(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,id:s,openOnHover:c,delay:l=100,closeDelay:d=0,handle:f,payload:m,...h}=e,g=mt(!0),v=f?.store??g?.store;if(!v)throw Error(q(85));let y=Je(s),b=v.useState(`isTriggerActive`,y),ee=v.useState(`floatingRootContext`),S=v.useState(`isOpenedByTrigger`,y),C=v.useState(`triggerPopupId`,y),w=Q.useRef(null),T=Yt(),E=ze(!0),te=_(),D=Q.useMemo(()=>te??new x,[te]),{registerTrigger:ne,isMountedByThisTrigger:k}=De(y,w,v,{payload:m,closeDelay:d,parent:T,floatingTreeRoot:D,floatingNodeId:O(D),floatingParentNodeId:p(),keyboardEventRelay:E?.relayKeyboardEvent}),j=T.type===`menubar`,re=v.useState(`disabled`),P=a||re||j&&T.context.disabled,{getButtonProps:ie,buttonRef:ae}=Be({disabled:P,native:o});Q.useEffect(()=>{!S&&T.type===void 0&&(v.context.allowMouseUpTriggerRef.current=!1)},[v,S,T.type]);let F=Q.useRef(null),oe=Se(),se=u(e=>{if(!F.current)return;oe.clear(),v.context.allowMouseUpTriggerRef.current=!1;let t=e.target;if(N(F.current,t)||N(v.select(`positionerElement`),t)||t===F.current||t!=null&&Wt(t)===v.select(`rootId`))return;let n=Vt(F.current);e.clientX>=n.left-Kt&&e.clientX<=n.right+Kt&&e.clientY>=n.top-Kt&&e.clientY<=n.bottom+Kt||D.events.emit(`close`,{domEvent:e,reason:M})});Q.useEffect(()=>{S&&v.select(`lastOpenChangeReason`)===`trigger-hover`&&ue(F.current).addEventListener(`mouseup`,se,{once:!0})},[S,se,v]);let I=j&&T.context.hasSubmenuOpen,R=He(ee,{enabled:(c??I)&&!P&&T.type!==`context-menu`&&(!j||I&&!k),handleClose:Ue({blockPointerEvents:!j}),mouseOnly:!0,move:!1,restMs:T.type===void 0?l:void 0,delay:{close:d},triggerElementRef:w,externalTree:D,isActiveTrigger:b,isClosing:()=>v.select(`transitionStatus`)===`ending`}),z=Jt(S,v.select(`lastOpenChangeReason`)),B=We(ee,{enabled:!P&&T.type!==`context-menu`,event:S&&j?`click`:`mousedown`,toggle:!0,ignoreMouse:!1,stickIfOpen:T.type===void 0&&z}),ce=Ve(ee,{enabled:!P&&I}),le=Gt({open:S,enabled:j,mouseDownAction:`open`}),V=Q.useMemo(()=>L(ce.reference,B.reference),[ce.reference,B.reference]),H=v.useState(`triggerProps`,k),{preFocusGuardRef:U,handlePreFocusGuardFocus:G,handleFocusTargetFocus:K}=Ke(v,w),J={disabled:P,open:S},Y=[F,t,ae,ne,w],X=[V,R??A,H,{"aria-haspopup":`menu`,"aria-controls":C,id:y,onMouseDown:e=>{v.select(`open`)||(oe.start(200,()=>{v.context.allowMouseUpTriggerRef.current=!0}),ue(e.currentTarget).addEventListener(`mouseup`,se,{once:!0}))}},j?{role:`menuitem`}:{},le,h,ie],de=W(`button`,e,{enabled:!j,stateAttributesMapping:xe,state:J,ref:Y,props:X});return j?(0,$.jsx)(Ut,{tag:`button`,render:n,className:r,style:i,state:J,refs:Y,props:X,stateAttributesMapping:xe}):S?(0,$.jsxs)(Q.Fragment,{children:[(0,$.jsx)(je,{ref:U,onFocus:G},`${y}-pre-focus-guard`),(0,$.jsx)(Q.Fragment,{children:de},y),(0,$.jsx)(je,{ref:v.context.triggerFocusTargetRef,onFocus:K},`${y}-post-focus-guard`)]}):(0,$.jsx)(Q.Fragment,{children:de},y)});function Jt(e,t){let n=Se(),[r,i]=Q.useState(!1);return C(()=>{e&&t===`trigger-hover`?(i(!0),n.start(500,()=>{i(!1)})):e||(n.clear(),i(!1))},[e,t,n]),r}function Yt(){let e=ut(!0),t=mt(!0),n=Pt(!0);return Q.useMemo(()=>n?{type:`menubar`,context:n}:e&&!t?{type:`context-menu`,context:e}:{type:void 0},[e,t,n])}var Xt=Q.forwardRef(function(e,t){let{className:n,render:r,orientation:i=`horizontal`,style:a,...o}=e;return W(`div`,e,{state:{orientation:i},ref:t,props:[{role:`separator`,"aria-orientation":i},o]})}),Zt=(0,Q.forwardRef)(function(e,t){let{className:n,...r}=e;return(0,$.jsx)(wt,{ref:t,className:Qe(Ze.popup,`outline-none`,n),...r})}),Qt=(0,Q.forwardRef)(function(e,t){let{className:n,...r}=e;return(0,$.jsx)(St,{ref:t,className:Qe(Ze.menuItem,n),...r})});function $t(e){return(0,$.jsxs)(St,{className:Ze.menuItem,"data-testid":e.testId,disabled:e.disabled,onClick:e.onClick,children:[(0,$.jsx)(`span`,{className:`text-[var(--chrome-fg-400)]`,children:e.icon}),(0,$.jsx)(`span`,{children:e.children})]})}function en(){return(0,$.jsx)(Xt,{className:`mx-1 my-1 h-px bg-[var(--chrome-divider)]`})}export{ct as C,ut as S,_t as _,Xt as a,ft as b,Bt as c,Mt as d,Dt as f,gt as g,xt as h,en as i,Rt as l,St as m,Qt as n,qt as o,wt as p,Zt as r,Wt as s,$t as t,zt as u,pt as v,st as w,lt as x,mt as y};
@@ -0,0 +1 @@
1
+ import{h as e}from"./shapes-CHDGoELO.js";import{t}from"./layout-offthread-3DtYtT7h.js";import{n,t as r}from"./generate-BWJhhTxM.js";async function i(i,a){let o=n(i);if(o.converted?.language!==`mermaid`||!o.converted.family)return null;let s=await r(o,{origin:{x:0,y:0},layout:t,allowErrors:!1});if(s.status!==`built`)return null;let c={x:Math.round(a.x-(s.bounds.x+s.bounds.width/2)),y:Math.round(a.y-(s.bounds.y+s.bounds.height/2))};return{shapes:s.shapes.map(t=>e(t,c)),primaryId:s.primary?.id??null}}export{i as mermaidPasteShapes};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{c as n,ht as r,jn as i,ot as a,s as o,w as s,yt as c}from"./useScrollLock-CQpr0n6U.js";import{t as l}from"./jsx-runtime-DKdBMi_L.js";import{t as u}from"./useButton-CLQYGhRJ.js";import{i as d,r as f,t as p}from"./tooltip-ClTJbfBH.js";import{a as m,i as h,r as g,t as _}from"./useTriggerFocusGuards-Mibi8yYw.js";import{lt as v}from"./shapes-CHDGoELO.js";import{i as ee,st as y,w as b}from"./geometry-CVRSymIE.js";import{a as x,d as te,o as S}from"./editor-CpiNbiMQ.js";import{t as C}from"./createReactComponent-C51FAx3B.js";import{n as ne}from"./useValueChanged-SqLfIDi5.js";import{t as re}from"./IconMinus-BcaDLts8.js";import{t as w}from"./IconPlus-D4tAoi-A.js";import{a as T,i as E,l as D,o as ie,r as O,t as k}from"./PopoverPopup-CvnB7nJs.js";import{t as ae}from"./useBaseUiId-D2RfU0uY.js";import{n as A}from"./surface-Dke4SWpE.js";import{c as j}from"./chrome-C2RCq3SI.js";var M=e(t(),1),N=l();function P(){return typeof window>`u`?null:window.EyeDropper??null}function F(){return P()!==null}async function I(){let e=P();if(!e)return null;try{return(await new e().open()).sRGBHex.toLowerCase()}catch{return null}}var oe=C(`outline`,`color-picker`,`ColorPicker`,[[`path`,{d:`M11 7l6 6`,key:`svg-0`}],[`path`,{d:`M4 16l11.7 -11.7a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4l-11.7 11.7h-4v-4`,key:`svg-1`}]]),L=C(`outline`,`palette`,`Palette`,[[`path`,{d:`M12 21a9 9 0 0 1 0 -18c4.97 0 9 3.582 9 8c0 1.06 -.474 2.078 -1.318 2.828c-.844 .75 -1.989 1.172 -3.182 1.172h-2.5a2 2 0 0 0 -1 3.75a1.3 1.3 0 0 1 -1 2.25`,key:`svg-0`}],[`path`,{d:`M7.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-1`}],[`path`,{d:`M11.5 7.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-2`}],[`path`,{d:`M15.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0`,key:`svg-3`}]]),R=M.forwardRef(function(e,t){let{render:l,className:p,style:h,disabled:v=!1,nativeButton:ee=!0,handle:y,payload:b,openOnHover:x=!1,delay:te=300,closeDelay:S=0,id:C,...ne}=e,re=ie(!0),w=y?.store??re?.store;if(!w)throw Error(i(74));let T=ae(C),E=w.useState(`isTriggerActive`,T),D=w.useState(`floatingRootContext`),O=w.useState(`isOpenedByTrigger`,T),k=w.useState(`triggerPopupId`,T),A=M.useRef(null),{registerTrigger:j,isMountedByThisTrigger:P}=s(T,A,w,{payload:b,disabled:v,openOnHover:x,closeDelay:S}),F=w.useState(`openChangeReason`),I=w.useState(`stickIfOpen`),oe=w.useState(`openMethod`),L=w.useState(`focusManagerModal`),R=d(D,{enabled:!v&&D!=null&&x&&(oe!==`touch`||F!==`trigger-press`),mouseOnly:!0,move:!1,handleClose:f(),restMs:te,delay:{close:S},triggerElementRef:A,isActiveTrigger:E,isClosing:()=>w.select(`transitionStatus`)===`ending`}),se=m(D,{enabled:D!=null,stickIfOpen:I}),z=g(()=>w.select(`open`),e=>{w.set(`openMethod`,e)}),B=w.useState(`triggerProps`,P),{getButtonProps:ce,buttonRef:le}=u({disabled:v,native:ee}),V={open(e){return e&&F===`trigger-press`?o.open(e):n.open(e)}},{preFocusGuardRef:H,handlePreFocusGuardFocus:U,handleFocusTargetFocus:W}=_(w,A),G=r(`button`,e,{state:{disabled:v,open:O},ref:[le,t,j,A],props:[se.reference,R,B,z,{[a]:``,id:T,"aria-haspopup":`dialog`,"aria-expanded":O,"aria-controls":k},ne,ce],stateAttributesMapping:V});return P&&!L?(0,N.jsxs)(M.Fragment,{children:[(0,N.jsx)(c,{ref:H,onFocus:U}),(0,N.jsx)(M.Fragment,{children:G},T),(0,N.jsx)(c,{ref:w.context.triggerFocusTargetRef,onFocus:W})]}):(0,N.jsx)(M.Fragment,{children:G},T)});function se(e){let{label:t,value:n,testId:r,onCommit:i}=e,a=Math.round(n*10)/10,[o,s]=(0,M.useState)(String(a)),c=(0,M.useRef)(!1),l=(0,M.useRef)(!1);(0,M.useEffect)(()=>{c.current||s(String(a))},[a]);function u(){let e=Number(o);Number.isFinite(e)&&e!==a&&i(e),s(String(a))}return(0,N.jsxs)(`label`,{className:`flex items-center gap-1.5 rounded-lg bg-[var(--chrome-rest)] px-2 py-1 ring-1 ring-[var(--chrome-ring)]`,children:[(0,N.jsx)(`span`,{className:`w-3 shrink-0 text-center text-[11px] text-[var(--chrome-fg-400)]`,children:t}),(0,N.jsx)(`input`,{type:`number`,"data-testid":r,value:o,onFocus:e=>{c.current=!0,e.target.select()},onBlur:()=>{if(c.current=!1,l.current){l.current=!1,s(String(a));return}u()},onChange:e=>s(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key===`Enter`&&e.currentTarget.blur(),e.key===`Escape`&&(l.current=!0,e.currentTarget.blur())},className:`w-16 bg-transparent text-[12px] tabular-nums text-[var(--chrome-fg-900)] outline-none [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`})]})}function z(e,t){let n=10**t;return Math.round(e*n)/n}function B(e){let{value:t,onChange:n,min:r,max:i,label:a,onMouseDown:o,fullWidth:s,testId:c}=e,{onNudgeStart:l,onNudgeEnd:u}=e,d=e.step??1,f=e.precision??0,[p,m]=(0,M.useState)(null),h=(0,M.useRef)(!1),g=(0,M.useRef)(t);(0,M.useEffect)(()=>{g.current=t},[t]);function _(e){let t=ee(z(e,f),r,i);m(null),t!==g.current&&(g.current=t,n(t))}function v(e){if(p===null)return;let t=Number(e);if(e.trim()===``||!Number.isFinite(t)){m(null);return}_(t)}function y(){h.current&&(h.current=!1,u?.())}function b(e){h.current||(h.current=!0,l?.()),_(g.current+e)}return(0,N.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg bg-[var(--chrome-rest)] ${s?`w-full`:``}`,children:[(0,N.jsx)(`button`,{type:`button`,"aria-label":`Decrease ${a.toLowerCase()}`,"data-testid":c?`${c}-down`:void 0,"data-keep-open":!0,onMouseDown:o,onClick:()=>{_(g.current-d)},className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-l-lg text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)]`,children:(0,N.jsx)(re,{size:14,stroke:2})}),(0,N.jsx)(`input`,{type:`text`,inputMode:`decimal`,"aria-label":a,"data-testid":c?`${c}-value`:void 0,onMouseDown:o,value:p??String(z(t,f)),onChange:e=>m(e.target.value),onBlur:e=>{y(),v(e.target.value)},onKeyUp:e=>{(e.key===`ArrowUp`||e.key===`ArrowDown`)&&y()},onKeyDown:e=>{if(e.key===`Enter`){v(e.currentTarget.value),e.currentTarget.blur();return}if(e.key===`ArrowUp`){e.preventDefault(),b(d);return}e.key===`ArrowDown`&&(e.preventDefault(),b(-d))},className:`bg-transparent text-center text-[13px] tabular-nums text-[var(--chrome-fg-800)] outline-none ${s?`min-w-0 flex-1`:`w-10`}`}),(0,N.jsx)(`button`,{type:`button`,"aria-label":`Increase ${a.toLowerCase()}`,"data-testid":c?`${c}-up`:void 0,"data-keep-open":!0,onMouseDown:o,onClick:()=>{_(g.current+d)},className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-r-lg text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)]`,children:(0,N.jsx)(w,{size:14,stroke:2})})]})}function ce(e){let{value:t,onChange:n,onMouseDown:r,onNudgeStart:i,onNudgeEnd:a,testId:o}=e;return(0,N.jsx)(B,{value:t,onChange:n,min:8,max:240,label:`Font size`,onMouseDown:r,onNudgeStart:i,onNudgeEnd:a,testId:o})}function le(e){return{onPointerDown:e.beginTransaction,onPointerUp:e.endTransaction,onBlur:e.endTransaction}}function V(){return(V=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function H(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function U(e){var t=(0,M.useRef)(e),n=(0,M.useRef)(function(e){t.current&&t.current(e)});return t.current=e,n.current}var W=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},G=function(e){return`touches`in e},K=function(e){return e&&e.ownerDocument.defaultView||self},ue=function(e,t,n){var r=e.getBoundingClientRect(),i=G(t)?function(e,t){for(var n=0;n<e.length;n++)if(e[n].identifier===t)return e[n];return e[0]}(t.touches,n):t;return{left:W((i.pageX-(r.left+K(e).pageXOffset))/r.width),top:W((i.pageY-(r.top+K(e).pageYOffset))/r.height)}},de=function(e){!G(e)&&e.preventDefault()},fe=M.memo(function(e){var t=e.onMove,n=e.onKey,r=e.onEnd,i=H(e,[`onMove`,`onKey`,`onEnd`]),a=(0,M.useRef)(null),o=U(t),s=U(n),c=U(r),l=(0,M.useRef)(null),u=(0,M.useRef)(!1),d=(0,M.useMemo)(function(){var e=function(e){de(e),(G(e)?e.touches.length>0:e.buttons>0)&&a.current?o(ue(a.current,e,l.current)):(n(!1),c())},t=function(){n(!1),c()};function n(n){var r=u.current,i=K(a.current),o=n?i.addEventListener:i.removeEventListener;o(r?`touchmove`:`mousemove`,e),o(r?`touchend`:`mouseup`,t)}return[function(e){var t=e.nativeEvent,r=a.current;if(r&&(de(t),!function(e,t){return t&&!G(e)}(t,u.current)&&r)){if(G(t)){u.current=!0;var i=t.changedTouches||[];i.length&&(l.current=i[0].identifier)}r.focus(),o(ue(r,t,l.current)),n(!0)}},function(e){var t=e.which||e.keyCode;t<37||t>40||(e.preventDefault(),s({left:t===39?.05:t===37?-.05:0,top:t===40?.05:t===38?-.05:0}))},function(e){var t=e.which||e.keyCode;t>=37&&t<=40&&c()},n]},[s,o,c]),f=d[0],p=d[1],m=d[2],h=d[3];return(0,M.useEffect)(function(){return h},[h]),M.createElement(`div`,V({},i,{onTouchStart:f,onMouseDown:f,className:`react-colorful__interactive`,ref:a,onKeyDown:p,onKeyUp:m,tabIndex:0,role:`slider`}))}),q=function(e){return e.filter(Boolean).join(` `)},pe=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=q([`react-colorful__pointer`,e.className]);return M.createElement(`div`,{className:a,style:{top:100*i+`%`,left:100*n+`%`}},M.createElement(`div`,{className:`react-colorful__pointer-fill`,style:{backgroundColor:t}}))},J=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n};360/(2*Math.PI);var me=function(e){return ye(Y(e))},Y=function(e){return e[0]===`#`&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?J(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?J(parseInt(e.substring(6,8),16)/255,2):1}},he=function(e){return ve(_e(e))},ge=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:J(e.h),s:J(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:J(i/2),a:J(r,2)}},X=function(e){var t=ge(e);return`hsl(`+t.h+`, `+t.s+`%, `+t.l+`%)`},_e=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:J(255*[r,s,o,o,c,r][l]),g:J(255*[c,r,r,s,o,o][l]),b:J(255*[o,o,c,r,r,s][l]),a:J(i,2)}},Z=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},ve=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?Z(J(255*i)):``;return`#`+Z(t)+Z(n)+Z(r)+a},ye=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:J(60*(s<0?s+6:s)),s:J(a?o/a*100:0),v:J(a/255*100),a:i}},be=M.memo(function(e){var t=e.hue,n=e.onChange,r=e.onChangeEnd,i=q([`react-colorful__hue`,e.className]);return M.createElement(`div`,{className:i},M.createElement(fe,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:W(t+360*e.left,0,360)})},onEnd:r,"aria-label":`Hue`,"aria-valuenow":J(t),"aria-valuemax":`360`,"aria-valuemin":`0`},M.createElement(pe,{className:`react-colorful__hue-pointer`,left:t/360,color:X({h:t,s:100,v:100,a:1})})))}),xe=M.memo(function(e){var t=e.hsva,n=e.onChange,r=e.onChangeEnd,i={backgroundColor:X({h:t.h,s:100,v:100,a:1})};return M.createElement(`div`,{className:`react-colorful__saturation`,style:i},M.createElement(fe,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:W(t.s+100*e.left,0,100),v:W(t.v-100*e.top,0,100)})},onEnd:r,"aria-label":`Color`,"aria-valuetext":`Saturation `+J(t.s)+`%, Brightness `+J(t.v)+`%`},M.createElement(pe,{className:`react-colorful__saturation-pointer`,top:1-t.v/100,left:t.s/100,color:X(t)})))}),Se=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},Ce=function(e,t){return e.toLowerCase()===t.toLowerCase()||Se(Y(e),Y(t))};function we(e,t,n,r){var i=U(n),a=U(r),o=(0,M.useState)(function(){return e.toHsva(t)}),s=o[0],c=o[1],l=(0,M.useRef)({color:t,hsva:s}),u=(0,M.useRef)(!1);return(0,M.useEffect)(function(){if(!e.equal(t,l.current.color)){var n=e.toHsva(t);l.current={hsva:n,color:t},c(n),u.current=!1}},[t,e]),(0,M.useEffect)(function(){var t;Se(s,l.current.hsva)||e.equal(t=e.fromHsva(s),l.current.color)||(l.current={hsva:s,color:t},i(t),u.current=!0)},[s,e,i]),[s,(0,M.useCallback)(function(e){c(function(t){return Object.assign({},t,e)})},[]),(0,M.useCallback)(function(){u.current&&(u.current=!1,a(l.current.color))},[a])]}var Te,Ee=typeof window<`u`?M.useLayoutEffect:M.useEffect,De=function(){return Te||(typeof __webpack_nonce__<`u`?__webpack_nonce__:void 0)},Oe=new Map,ke=function(e){Ee(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!Oe.has(t)){var n=t.createElement(`style`);n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,Oe.set(t,n);var r=De();r&&n.setAttribute(`nonce`,r),t.head.appendChild(n)}},[])},Ae=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=e.onChangeEnd,s=H(e,[`className`,`colorModel`,`color`,`onChange`,`onChangeEnd`]),c=(0,M.useRef)(null);ke(c);var l=we(n,i,a,o),u=l[0],d=l[1],f=l[2],p=q([`react-colorful`,t]);return M.createElement(`div`,V({},s,{ref:c,className:p}),M.createElement(xe,{hsva:u,onChange:d,onChangeEnd:f}),M.createElement(be,{hue:u.h,onChange:d,onChangeEnd:f,className:`react-colorful__last-control`}))},je={defaultColor:`000`,toHsva:me,fromHsva:function(e){return he({h:e.h,s:e.s,v:e.v,a:1})},equal:Ce},Me=function(e){return M.createElement(Ae,V({},e,{colorModel:je}))},Ne=/^#?([0-9A-F]{3,8})$/i,Pe=function(e){var t=e.color,n=t===void 0?``:t,r=e.onChange,i=e.onBlur,a=e.escape,o=e.validate,s=e.format,c=e.process,l=H(e,[`color`,`onChange`,`onBlur`,`escape`,`validate`,`format`,`process`]),u=(0,M.useState)(function(){return a(n)}),d=u[0],f=u[1],p=U(r),m=U(i),h=(0,M.useCallback)(function(e){var t=a(e.target.value);f(t),o(t)&&p(c?c(t):t)},[a,c,o,p]),g=(0,M.useCallback)(function(e){o(e.target.value)||f(a(n)),m(e)},[n,a,o,m]);return(0,M.useEffect)(function(){f(a(n))},[n,a]),M.createElement(`input`,V({},l,{value:s?s(d):d,spellCheck:`false`,onChange:h,onBlur:g}))},Fe=function(e){return`#`+e},Ie=function(e){var t=e.prefixed,n=e.alpha,r=H(e,[`prefixed`,`alpha`]),i=(0,M.useCallback)(function(e){return e.replace(/([^0-9A-F]+)/gi,``).substring(0,n?8:6)},[n]),a=(0,M.useCallback)(function(e){return function(e,t){var n=Ne.exec(e),r=n?n[1].length:0;return r===3||r===6||!!t&&r===4||!!t&&r===8}(e,n)},[n]);return M.createElement(Pe,V({},r,{escape:i,format:t?Fe:void 0,process:Fe,validate:a}))};function Le(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||t===`SELECT`||e.isContentEditable}function Q(){let{textEditGuard:e}=x(),t=S(e=>te(e.editSession)),n=(0,M.useRef)(null),r=(0,M.useCallback)(()=>{if(!t)return;let r=document.activeElement;if(r instanceof HTMLElement&&r.isContentEditable){let e=window.getSelection(),t=e&&e.rangeCount>0&&r.contains(e.anchorNode)?e.getRangeAt(0).cloneRange():null;n.current={node:r,range:t}}e.guard()},[t,e]),i=(0,M.useCallback)(e=>{!t||Le(e.target)||e.preventDefault()},[t]),a=(0,M.useCallback)(()=>{let r=n.current;if(!(!t||!r||!r.node.isContentEditable)&&document.activeElement!==r.node&&(e.guard(),r.node.focus(),r.range)){let e=window.getSelection();e?.removeAllRanges(),e?.addRange(r.range.cloneRange())}},[t,e]);return{active:t,onPointerDown:r,onMouseDown:i,focusProps:t?{initialFocus:!1,finalFocus:!1}:{},restore:a}}function Re(e){return`repeating-conic-gradient(#e5e7eb 0% 25%, white 0% 50%) 50% / ${e}px ${e}px`}var ze=Re(7);function $(e){let{background:t,active:n,onClick:r,border:i,opacity:a,testId:o,ariaLabel:s,onMouseDown:c}=e;return(0,N.jsx)(`button`,{type:`button`,"data-testid":o,"aria-label":s,"aria-pressed":s?n:void 0,onMouseDown:c,onClick:r,className:`h-7 w-7 cursor-pointer rounded-lg transition-transform ${n?`ring-2 ring-[var(--chrome-fg-900)] ring-offset-2 ring-offset-[var(--chrome-popup)]`:`hover:scale-110`}`,style:{background:t,opacity:a,border:i??`1px solid var(--chrome-swatch-edge)`}})}function Be(e){let{color:t,active:n,onClick:r,onMouseDown:i}=e;return(0,N.jsx)($,{background:t===`transparent`?ze:v(t),active:n,onClick:r,onMouseDown:i,testId:`color-${t}`})}var Ve=`linear-gradient(to top right, transparent calc(50% - 1px), #e03131 calc(50% - 1px), #e03131 calc(50% + 1px), transparent calc(50% + 1px)), #ffffff`;function He(e){let{active:t,onClick:n,testId:r,onMouseDown:i}=e;return(0,N.jsx)($,{background:Ve,active:t,onClick:n,onMouseDown:i,testId:r,ariaLabel:`None`})}function Ue(e,t){return(0,N.jsx)(`span`,{className:`flex h-5 w-5 items-center justify-center rounded-full`,style:{background:e===`transparent`?Re(6):v(e),border:`1px solid var(--chrome-swatch-edge)`,boxShadow:`inset 0 0 0 1px rgba(0,0,0,0.04)`},children:t})}function We(e){let{hue:t,fillStyle:n,active:r,onClick:i,testId:a}=e,o=y(t,n),s=t===`transparent`,c=o.fill;(s||o.fill===`none`)&&(c=ze);let l=n===`outline`?`1.5px solid ${o.stroke}`:`1px solid var(--chrome-swatch-edge)`;return(0,N.jsx)($,{background:c,active:r,onClick:i,border:l,opacity:o.fillOpacity,testId:a})}function Ge(e){let{onPick:t}=e;return F()?(0,N.jsx)(p,{label:`Pick colour from screen`,children:(0,N.jsx)(`button`,{type:`button`,"aria-label":`Pick colour from screen`,onClick:()=>{I().then(e=>{e&&t(e)}).catch(()=>void 0)},className:`shrink-0 cursor-pointer text-[var(--chrome-fg-500)] transition-colors hover:text-[var(--chrome-fg-900)]`,children:(0,N.jsx)(oe,{size:16,stroke:1.75})})}):null}function Ke(e){e.currentTarget.setPointerCapture(e.pointerId)}function qe(e){let{active:t,picked:n,onChange:r,baseTestId:i,onMouseDown:a,onOpenChange:o}=e,s=x(),c=Q();function l(e){o?.(e),e||c.restore()}return(0,N.jsxs)(T,{onOpenChange:l,children:[(0,N.jsx)(p,{label:`Custom color`,children:(0,N.jsx)(R,{"aria-label":`Custom color`,"data-testid":`${i}-custom`,onPointerDown:c.onPointerDown,onMouseDown:c.onMouseDown,className:`flex h-7 w-7 cursor-pointer items-center justify-center rounded-lg border border-[var(--chrome-ring)] text-[var(--chrome-fg-900)] transition-transform ${t?`ring-2 ring-[var(--chrome-fg-900)] ring-offset-2 ring-offset-[var(--chrome-popup)]`:`hover:scale-110 data-[popup-open]:scale-110`}`,children:(0,N.jsx)(L,{size:16,stroke:1.75})})}),(0,N.jsx)(E,{children:(0,N.jsx)(O,{side:`right`,align:`center`,sideOffset:14,collisionPadding:8,className:`outline-none`,children:(0,N.jsxs)(k,{"data-overlay":!0,"data-panel-popup":!0,"data-editor-runtime-id":s.id,"data-testid":`${i}-popover`,"data-caret-safe":!0,...c.focusProps,onPointerDown:c.onPointerDown,onMouseDown:e=>{a?.(e),c.onMouseDown(e)},className:`w-52 space-y-2 p-2.5 ${A.popup}`,children:[(0,N.jsx)(`div`,{onPointerDown:Ke,children:(0,N.jsx)(Me,{color:n,onChange:r,style:{width:`100%`,height:150}})}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-[var(--chrome-ring)] px-2 py-1.5`,children:[(0,N.jsx)(`span`,{className:`h-5 w-5 shrink-0 rounded border border-[var(--chrome-ring)]`,style:{background:n}}),(0,N.jsx)(Ie,{prefixed:!0,"data-testid":`${i}-hex-input`,color:n,onChange:r,className:`w-full bg-transparent text-sm uppercase tracking-wide text-[var(--chrome-fg-700)] outline-none`}),(0,N.jsx)(Ge,{onPick:r})]})]})})})]})}function Je(e){let{title:t,value:n,onChange:r,testId:i,customFallback:a=`#1e1e1e`,colors:o=b,header:s,noneTestId:c,onMouseDown:l,onOpenChange:u}=e,d=n!==`transparent`&&n!==`auto`&&n!==`none`&&!o.includes(n),f=d?n:a;return(0,N.jsxs)(`div`,{className:`space-y-2`,children:[t&&(0,N.jsx)(`div`,{className:`px-1 text-[11px] text-[var(--chrome-fg-500)]`,children:t}),s,(0,N.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[c&&(0,N.jsx)(He,{active:n===`none`,onClick:()=>r(`none`),testId:c,onMouseDown:l}),o.map(e=>(0,N.jsx)(Be,{color:e,active:n===e,onClick:()=>r(e),onMouseDown:l},e)),(0,N.jsx)(qe,{active:d,picked:f,onChange:r,baseTestId:i,onMouseDown:l,onOpenChange:u})]})]})}function Ye(e){let{value:t,autoColor:n,noneOption:r,colors:i,customFallback:a,testId:o,ariaLabel:s,onPick:c}=e,l=x(),u=Q(),d=t===`none`?`None`:t===`auto`?`Auto`:`Custom`,f=t===`none`?Ve:t===`auto`?n:v(t);function p(){let e=t===`auto`;return(0,N.jsxs)(`button`,{type:`button`,"data-testid":`${o}-auto`,"aria-pressed":e,onClick:()=>c(`auto`),className:`flex w-full items-center rounded-md px-2 py-1.5 text-[12px] transition-colors ${j(e)}`,children:[(0,N.jsx)(`span`,{className:`flex-1 text-left`,children:`Auto`}),e&&(0,N.jsx)(ne,{size:13,stroke:2})]})}return(0,N.jsxs)(T,{onOpenChange:e=>{e||u.restore()},children:[(0,N.jsxs)(R,{"aria-label":s,"data-testid":`${o}-value`,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,className:`flex w-24 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--chrome-ring)] px-2 py-1 text-[12px] text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)] data-[popup-open]:bg-[var(--chrome-hover)]`,children:[(0,N.jsx)(`span`,{className:`h-3 w-3 shrink-0 rounded-full`,style:{background:f,border:`1px solid rgba(0,0,0,.18)`}}),(0,N.jsx)(`span`,{className:`flex-1 text-left`,children:d}),(0,N.jsx)(h,{size:11,stroke:2,className:`shrink-0 text-[var(--chrome-fg-500)]`})]}),(0,N.jsx)(E,{children:(0,N.jsx)(O,{side:`right`,align:`center`,sideOffset:14,collisionPadding:8,className:`outline-none`,children:(0,N.jsxs)(k,{"data-overlay":!0,"data-panel-popup":!0,"data-editor-runtime-id":l.id,"data-testid":`${o}-menu`,"data-caret-safe":!0,...u.focusProps,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,className:`w-[228px] space-y-2 p-2.5 ${A.popup}`,children:[p(),(0,N.jsx)(Je,{value:t,onChange:c,testId:`${o}-color`,noneTestId:r?`${o}-none`:void 0,customFallback:a,colors:i})]})})})]})}var Xe=`flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg bg-[var(--chrome-rest)] text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)]`;function Ze(e){let{active:t,onClick:n,children:r,testId:i,ariaLabel:a}=e;return(0,N.jsx)(`button`,{type:`button`,"data-testid":i,"aria-label":a,"aria-pressed":t,onClick:n,className:`flex h-8 min-w-8 flex-1 items-center justify-center rounded-lg px-2 transition-colors ${j(t)}`,children:r})}function Qe(){return(0,N.jsx)(`span`,{className:`mx-0.5 h-6 w-px bg-[var(--chrome-divider)]`})}function $e(e){let{type:t,onAlign:n,Icon:r}=e;return(0,N.jsx)(`button`,{type:`button`,"aria-label":t,onClick:()=>n(t),className:Xe,children:(0,N.jsx)(r,{size:16,stroke:1.75})})}function et(e){let{axis:t,onDistribute:n,Icon:r}=e,i=t===`horizontal`?`Distribute horizontally`:`Distribute vertically`;return(0,N.jsx)(p,{label:i,children:(0,N.jsx)(`button`,{type:`button`,"aria-label":i,onClick:()=>n(t),className:`flex h-8 flex-1 cursor-pointer items-center justify-center rounded-lg bg-[var(--chrome-rest)] text-[var(--chrome-fg-600)] transition-colors hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-800)]`,children:(0,N.jsx)(r,{size:16,stroke:1.75})})})}function tt(e){let{action:t,label:n,onReorder:r,Icon:i}=e;return(0,N.jsx)(p,{label:n,children:(0,N.jsx)(`button`,{type:`button`,"aria-label":n,onClick:()=>r(t),className:Xe,children:(0,N.jsx)(i,{size:16,stroke:1.75})})})}function nt(e){let{trigger:t,label:n,children:r,caret:i,closeOnPick:a,testId:o}=e,s=x(),[c,l]=(0,M.useState)(!1),u=Q();function d(e){l(e),e||u.restore()}function f(e){if(!(e.target instanceof Element))return;let t=e.target.closest(`button`);t&&(a||u.active&&!t.hasAttribute(`aria-haspopup`)&&!t.hasAttribute(`data-keep-open`))&&d(!1)}return(0,N.jsxs)(T,{open:c,onOpenChange:d,children:[(0,N.jsx)(p,{label:n,children:(0,N.jsxs)(R,{"aria-label":n,"data-testid":o,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,className:`flex h-8 cursor-pointer items-center justify-center gap-1 rounded-lg px-2 text-[var(--chrome-fg-900)] transition-colors hover:bg-[var(--chrome-hover)] data-[popup-open]:bg-[var(--chrome-hover)]`,children:[t,i&&(0,N.jsx)(D,{})]})}),(0,N.jsx)(E,{children:(0,N.jsx)(O,{side:`top`,align:`center`,sideOffset:8,collisionPadding:8,children:(0,N.jsx)(k,{"data-overlay":!0,"data-panel-popup":!0,"data-editor-runtime-id":s.id,"data-caret-safe":!0,...u.focusProps,className:`p-2.5 ${A.popup}`,onPointerDown:u.onPointerDown,onMouseDown:u.onMouseDown,onClick:f,children:r})})})]})}export{R as _,tt as a,qe as c,Ue as d,Q as f,le as g,se as h,Qe as i,Ye as l,B as m,$e as n,Ze as o,ce as p,et as r,Je as s,nt as t,We as u,L as v,I as y};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-DKdBMi_L.js";import{i as t,n,r,t as i}from"./DialogRoot-DUeVfNhS.js";import{r as a}from"./chrome-layout-BzPU9far.js";var o=e();function s(e){let{width:s,testId:c,ariaLabel:l,onDismiss:u,children:d}=e,f=a(),p={onPointerDown:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),onContextMenu:e=>{e.preventDefault(),e.stopPropagation()}};return f===`sheet`?(0,o.jsx)(i,{open:!0,onOpenChange:e=>!e&&u(),children:(0,o.jsxs)(n,{children:[(0,o.jsx)(t,{className:`fixed inset-0 bg-gray-900/15`}),(0,o.jsxs)(r,{"data-overlay":!0,"data-testid":c,"aria-label":l,className:`fixed inset-x-0 bottom-0 flex h-[85dvh] cursor-auto flex-col rounded-t-2xl bg-[var(--chrome-popup)] pb-[env(safe-area-inset-bottom)] shadow-[0_-8px_40px_rgba(0,0,0,0.18)] outline-none ring-1 ring-[var(--chrome-ring)]`,...p,children:[(0,o.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mt-2 h-1 w-9 shrink-0 rounded-full bg-[var(--chrome-divider)]`}),d]})]})}):(0,o.jsx)(`div`,{className:`absolute bottom-0 right-0 top-[var(--koboyo-host-inset-top)] flex cursor-auto flex-col border-l border-[var(--chrome-ring)] bg-[var(--chrome-popup)]`,style:{width:s},"data-overlay":!0,"data-testid":c,...p,children:d})}export{s as t};
1
+ import{t as e}from"./jsx-runtime-DKdBMi_L.js";import{i as t,n,r,t as i}from"./DialogRoot-DUeVfNhS.js";import{r as a}from"./chrome-layout-500Q9pcx.js";var o=e();function s(e){let{width:s,testId:c,ariaLabel:l,onDismiss:u,children:d}=e,f=a(),p={onPointerDown:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),onContextMenu:e=>{e.preventDefault(),e.stopPropagation()}};return f===`sheet`?(0,o.jsx)(i,{open:!0,onOpenChange:e=>!e&&u(),children:(0,o.jsxs)(n,{children:[(0,o.jsx)(t,{className:`fixed inset-0 bg-gray-900/15`}),(0,o.jsxs)(r,{"data-overlay":!0,"data-testid":c,"aria-label":l,className:`fixed inset-x-0 bottom-0 flex h-[85dvh] cursor-auto flex-col rounded-t-2xl bg-[var(--chrome-popup)] pb-[env(safe-area-inset-bottom)] shadow-[0_-8px_40px_rgba(0,0,0,0.18)] outline-none ring-1 ring-[var(--chrome-ring)]`,...p,children:[(0,o.jsx)(`div`,{"aria-hidden":!0,className:`mx-auto mt-2 h-1 w-9 shrink-0 rounded-full bg-[var(--chrome-divider)]`}),d]})]})}):(0,o.jsx)(`div`,{className:`absolute bottom-0 right-0 top-[var(--koboyo-host-inset-top)] flex cursor-auto flex-col border-l border-[var(--chrome-ring)] bg-[var(--chrome-popup)]`,style:{width:s},"data-overlay":!0,"data-testid":c,...p,children:d})}export{s as t};
@@ -0,0 +1 @@
1
+ import{Ln as e,Rn as t,fn as n,in as r,k as i}from"./shapes-CHDGoELO.js";import{A as a,F as o,T as s,b as c}from"./frames-C-jROub3.js";function l(e){let t=d(e);return`${e.groupId??t.shape.id}@${t.index}`}function u(e){return e.groupId??e.shapes[0].id}function d(e){return e.items[0]}function f(e){return e.withPrevious?`with`:d(e).animation.afterPrevious?`after`:`click`}var p={enter:`rise`,emphasis:`pulse`,exit:`fade`},m={enter:`fade`,emphasis:`pulse`,exit:`fade`};function h(e,t,i=`enter`){let a=r(t,i)?t:p[i];return n(e,a)?a:m[i]}function g(e,t=`enter`){return t===`enter`?n(e,`draw`)?`draw`:p.enter:p[t]}function _(e){return e.animations??[]}function v(e){return _(e).length>0}function y(e,t){let n=s(e,t),r=[];for(let e of n)_(e).forEach((t,n)=>{r.push({shape:e,animation:t,index:n,start:0,row:``})});let i=[...r].sort((e,t)=>e.animation.step-t.animation.step),a=[],o=null;for(let e of i)(o===null||e.animation.step!==o)&&(a.push({index:a.length,items:[],afterPrevious:e.animation.afterPrevious===!0}),o=e.animation.step),a[a.length-1].items.push(e);let c=w(n);for(let e of a){let t=0;for(let n of E(e.items,c)){t+=Math.max(0,d(n).animation.delay??0);let e=l(n);for(let r of n.items)r.start=t,r.row=e}}return a}function b(e){let t=new Map,n=e.filter(v);if(n.length===0)return t;let r=o(e);for(let i of c(e)){let e=new Map;for(let t of n)if(a(i,t,r))for(let n of _(t))e.has(n.step)||e.set(n.step,n.afterPrevious===!0);if(e.size===0)continue;let o=[...e.entries()].sort((e,t)=>e[0]-t[0]).filter(([,e],t)=>t===0||!e);t.set(i.id,o.length)}return t}function x(e,t){return s(e,t).filter(e=>!v(e))}var S=new Set;function C(e,t){return w(s(e,t))}function w(e){let t=new Map;for(let n of e){if(!n.groupId)continue;let e=t.get(n.groupId);if(e){e.push(n);continue}t.set(n.groupId,[n])}let n=new Set;for(let[e,r]of t)r.length<2||new Set(r.map(T)).size===1&&n.add(e);return n}function T(e){return _(e).map(e=>`${e.kind}:${e.step}`).join(`,`)}function E(e,t){let n=[],r=new Map;for(let i of e){let e=i.shape.groupId;if(!e||!t.has(e)){n.push({items:[i]});continue}let a=`${e}@${i.index}`,o=r.get(a);if(o){o.items.push(i);continue}let s={items:[i],groupId:e};r.set(a,s),n.push(s)}return n}function D(e,t){let n=[],r=new Map;for(let i of e){let e=i.groupId;if(!e||!t.has(e)){n.push({shapes:[i]});continue}let a=r.get(e);if(a){a.shapes.push(i);continue}let o={shapes:[i],groupId:e};r.set(e,o),n.push(o)}return n}function O(e,t=S){return e.flatMap(e=>E(e.items,t).map((e,t)=>({...e,withPrevious:t>0})))}function k(e,t,n=S){return I(D(s(e,t),n),t)}function A(e,t,n=S){return I(D(x(e,t),n),t)}function j(e){let t=0;return e.map((e,n)=>((n===0||!e.afterPrevious)&&(t+=1),t))}function M(e,t){let n=new Map,r=new Map;for(let t of e)for(let e of t.items){let i=e.shape.id;if(e.animation.kind===`enter`){n.set(i,Math.min(n.get(i)??t.index,t.index));continue}e.animation.kind===`exit`&&r.set(i,Math.max(r.get(i)??t.index,t.index))}let i=new Set;for(let[e,r]of n)r>t&&i.add(e);for(let[e,n]of r)n<=t&&i.add(e);return i}function N(e){let t=new Map,n=new Map;for(let r of e)for(let e of r.items){let i=e.shape.id;if(e.animation.kind===`enter`){t.set(i,Math.min(t.get(i)??r.index,r.index));continue}e.animation.kind===`exit`&&n.set(i,Math.max(n.get(i)??r.index,r.index))}let r=new Set;for(let i of e)for(let e of i.items){if(e.animation.kind===`enter`)continue;let a=e.shape.id,o=t.get(a),s=n.get(a);(o===void 0||o<=i.index)&&(s??i.index)>=i.index||r.add(`${a}@${e.index}`)}return r}function P(e){return`${e.shape.id}@${e.index}`}function F(i){return t.filter(t=>e.some(e=>r(e,t)&&n(i,e)))}function I(e,t){let n=Math.max(16,t.height*.06),r=e.map(e=>({unit:e,box:L(e)})).sort((e,t)=>e.box.y-t.box.y),i=[];for(let e of r){let t=i[i.length-1];if(t&&e.box.y-t.top<n){t.items.push(e);continue}i.push({top:e.box.y,items:[e]})}return i.flatMap(e=>e.items.sort((e,t)=>e.box.x-t.box.x).map(e=>e.unit))}function L(e){let t=i(e.shapes[0]);for(let n of e.shapes.slice(1)){let e=i(n),r=Math.max(t.x+t.width,e.x+e.width),a=Math.max(t.y+t.height,e.y+e.height),o=Math.min(t.x,e.x),s=Math.min(t.y,e.y);t={x:o,y:s,width:r-o,height:a-s}}return t}export{C as _,h as a,I as b,M as c,b as d,y as f,D as g,g as h,k as i,P as l,A as m,O as n,l as o,f as p,j as r,d as s,_ as t,F as u,u as v,N as y};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{ft as r,k as i}from"./shapes-CHDGoELO.js";import{a,i as o,st as s}from"./geometry-CVRSymIE.js";import{a as c,o as l}from"./editor-CpiNbiMQ.js";import{B as u,T as d,V as f,b as p,x as m}from"./frames-C-jROub3.js";import{a as h,c as g,i as _,l as v,n as y,r as b,u as x}from"./presenter-keys-uSrN0NG3.js";import{t as S}from"./IconChevronLeft-D7e7QC0h.js";import{t as C}from"./IconChevronRight-csfMBSUs.js";import{c as w,n as ee,o as te,t as ne}from"./build-visibility-0Y4EP2Ka.js";import{t as T}from"./IconX-KrRqxr2j.js";import{n as E}from"./core-DnS-1skV.js";import{c as D,f as re}from"./plan-BS_pzMjA.js";import{a as O,o as k}from"./chrome-C2RCq3SI.js";import{c as A,o as j,t as M,u as N}from"./flows-BAU4NQGk.js";import{a as P,t as F}from"./flow-stage-DFvraJ0j.js";var I=e(t(),1),L=450,R=10,ie=50,ae=1.5;function oe(e,t){return Math.abs(e)<ie||Math.abs(e)<Math.abs(t)*ae?null:e<0?`next`:`previous`}function se(e){let t=(0,I.useRef)(e);t.current=e;let n=(0,I.useRef)(null),r=(0,I.useRef)(!1);(0,I.useEffect)(()=>()=>{n.current&&clearTimeout(n.current.timer)},[]);function i(){let e=n.current;return e?(clearTimeout(e.timer),n.current=null,e.lasering&&t.current.laser.end(),e):null}function a(e){if(n.current){i(),r.current=!0;return}r.current=!1;let a={x:e.clientX,y:e.clientY},o={id:e.pointerId,start:a,lasering:!1,moved:!1,timer:setTimeout(()=>{o.lasering=!0,t.current.laser.start(a)},L)};n.current=o}function o(e){let r=n.current;if(!r||r.id!==e.pointerId)return;let i={x:e.clientX,y:e.clientY};if(r.lasering){t.current.laser.move(i);return}(Math.abs(i.x-r.start.x)>R||Math.abs(i.y-r.start.y)>R)&&(clearTimeout(r.timer),r.moved=!0)}function s(e){let a=n.current;if(!a||a.id!==e.pointerId)return;if(i(),a.lasering){r.current=!0;return}if(!a.moved)return;r.current=!0;let o=oe(e.clientX-a.start.x,e.clientY-a.start.y);o&&t.current.onSwipe(o)}function c(){i()&&(r.current=!0)}function l(){let e=r.current;return r.current=!1,e}return{down:a,move:o,up:s,cancel:c,consumeClick:l}}function ce(){let[e,t]=(0,I.useState)(null),n=(0,I.useRef)(null),r=e=>{n.current=e,t(e)};return{blank:e,toggle:e=>r(n.current===e?null:e),lift:()=>n.current?(r(null),!0):!1}}function z(e,t){return e[t]?.length??0}function B(e,t){return e.step+1<z(t,e.position)?{position:e.position,step:e.step+1}:e.position+1>=t.length?`end`:H(e.position+1,`forward`,t)}function V(e,t){let n=t[e.position]??[],r=e.step-1;for(;r>=-1&&n[r+1]===!0;)--r;return r>=-1?{position:e.position,step:r}:e.position===0?e:H(e.position-1,`back`,t)}function le(e,t){return B(e,t)!==`end`}function ue(e,t){let n=V(e,t);return n.position!==e.position||n.step!==e.step}function H(e,t,n){return t===`forward`?{position:e,step:-1}:{position:e,step:z(n,e)-1}}function de(e){let{shapes:t,slides:n,playable:r,index:a}=e,{store:s}=c(),l=ee(),u=r.length,d=(0,I.useMemo)(()=>r.map(e=>{let r=n[e];return[...re(t,r).map(e=>e.afterPrevious),...j(t,r).map(()=>!1)]}),[r,t,n]),f=e=>{let t=r.findIndex(t=>t>=e);return t===-1?u-1:t},[p,m]=(0,I.useState)(-1),[h,g]=(0,I.useState)(null),_=(0,I.useRef)(-1),v=(0,I.useRef)(null),y=(0,I.useRef)(!1),b=e=>s.getState().setPresentingIndex(e);function x(e){u!==0&&b(r[o(e,0,u-1)])}function S(e){_.current=e,m(e),g(y.current?e:null)}function C(){return{position:f(s.getState().presentingIndex??0),step:_.current}}function w(){l.finish();let e=C(),t=B(e,d);if(t===`end`){b(null);return}if(t.position===e.position){y.current=!0,S(t.step);return}v.current=t.step,x(t.position)}function ne(){l.finish();let e=C(),t=V(e,d);if(t.position===e.position){S(t.step);return}v.current=t.step,x(t.position)}let T=(0,I.useRef)(w);T.current=w;let E=u>0?f(Math.min(a,n.length-1)):-1,O=E>=0?n[r[E]]:void 0,k=(0,I.useMemo)(()=>O?re(t,O):[],[t,O]),A=(0,I.useMemo)(()=>O?j(t,O):[],[t,O]),M=p>=k.length?A[p-k.length]??null:null,N=(0,I.useMemo)(()=>{let e=h===null?void 0:k[h];return new Set(e?.items.filter(e=>e.animation.kind===`exit`).map(e=>e.shape.id)??[])},[k,h]),P=(0,I.useMemo)(()=>{let e=D(k,p);for(let t of N)e.delete(t);return e},[k,p,N]),F=(0,I.useRef)(null);(0,I.useLayoutEffect)(()=>{if(!O||F.current===O.id)return;F.current=O.id,l.cancel();let e=v.current??-1;v.current=null,y.current=!1,S(e)}),(0,I.useLayoutEffect)(()=>{if(!y.current)return;y.current=!1;let e=k[p];!O||!e||l.play(e,i(O)).then(()=>{g(e=>e===p?null:e)})},[p,k,O,l]);let L=(0,I.useRef)(!1);return(0,I.useEffect)(()=>{if(h!==null){L.current=!0;return}L.current&&(L.current=!1,l.cancel())},[h,l]),(0,I.useEffect)(()=>{let e=k[p+1];if(!e||!e.afterPrevious)return;let t=p>=0?k[p]:void 0,n=t?te(t):0,r=setTimeout(()=>T.current(),n);return()=>clearTimeout(r)},[p,k]),{count:u,deckSteps:d,position:E,slide:O,step:p,pending:P,flowStop:M,next:w,prev:ne,goTo:b,goToPosition:x}}function fe(e){let t=(0,I.useRef)({digits:``,timer:null});(0,I.useEffect)(()=>{let n=t.current,r=()=>{n.digits=``,n.timer&&=(clearTimeout(n.timer),null)};function i(t){let i=y(t,n.digits.length>0);if(!i)return;t.preventDefault(),t.stopPropagation();let a=e.current;switch(i.type){case`escape`:a.escape();return;case`notes`:a.toggleNotes();return;case`black`:case`white`:a.toggleBlank(i.type);return;case`digit`:n.digits=(n.digits+i.digit).slice(-4),n.timer&&clearTimeout(n.timer),n.timer=setTimeout(r,1500);return;case`jump`:{let e=Number(n.digits)-1;r(),a.goTo(e);return}case`next`:a.next();return;case`prev`:a.prev();return;case`first`:a.goTo(0);return;case`last`:a.goTo(a.count-1);return}}return window.addEventListener(`keydown`,i,{capture:!0}),()=>window.removeEventListener(`keydown`,i,{capture:!0})},[e])}var U=3;function pe(e){let{overlayRef:t,slideRef:n,view:r}=e,{store:a,viewportAnimation:s}=c(),l=(0,I.useRef)(1),u=e=>{let t=n.current;if(!t)return;let o=m(i(t),r()),s=l.current,c=s<=1?o:f(o,o.zoom*s,e);a.getState().setViewport(c)},d=(e,t)=>{let n=o(l.current*e,1,U);n!==l.current&&(l.current=n,u(t))},p=(0,I.useCallback)(()=>{l.current=1},[]),g=(0,I.useRef)(d);return g.current=d,(0,I.useEffect)(()=>{let e=t.current;if(!e)return;let n=_(e=>{e.anchor&&g.current(e.zoomFactor,e.anchor)}),r=e=>{e.preventDefault(),e.stopPropagation(),!(!e.ctrlKey&&!e.metaKey)&&n.queue(t=>{t.zoomFactor*=h(e.deltaY),t.anchor={x:e.clientX,y:e.clientY}})},i=b(e,e=>{n.queue(t=>{t.zoomFactor*=e.factor,t.anchor={x:e.clientX,y:e.clientY}})});return e.addEventListener(`wheel`,r,{passive:!1}),()=>{e.removeEventListener(`wheel`,r),i.stop(),n.cancel()}},[t]),{isZoomed:()=>l.current>1,zoomToCursor:u,reset:()=>{if(l.current===1)return;l.current=1;let e=n.current;if(!e)return;let t=a.getState();s.animate(t.viewport,m(i(e),r()),e=>a.getState().setViewport(e),t.presentationAnimation?200:0)},clear:p}}var W=`var(--canvas-bg)`,me=`#000000`,G=1;function he(e,t){return e.rotation!==0||e.opacity<1?!1:e.x<=t.x+G&&e.y<=t.y+G&&e.x+e.width>=t.x+t.width-G&&e.y+e.height>=t.y+t.height-G}function ge(e,t){if(e.type!==`image`&&e.type!==`rectangle`||!he(e,t))return null;if(e.type===`image`)return me;if(e.kind!==`rectangle`)return null;let n=s(e.fill,e.fillStyle??`pastel`).fill;return n===`none`?null:n}function _e(e,t){for(let n=t.length-1;n>=0;--n){let r=ge(t[n],e);if(r)return r}return!e.fill||e.fill===`transparent`?W:r(e.fill)}var K=n(),q=14,J=16,Y=72;function ve(e){let{slide:t,stop:n,shapes:r,viewport:i}=e,a=(0,I.useMemo)(()=>E(r,t),[r,t]),o=n.flow.steps[n.index],s=M(t.flows??[],n.flow.id),l=A(a,[...s,...n.flow.steps],s.length+n.index),u=(0,I.useRef)(null),[d,f]=(0,I.useState)(null),{measurement:p}=c(),m=X((o?N(o).flatMap(e=>a.find(t=>t.id===e)??[]):[]).map(e=>P(e,i,10,p)));return(0,I.useLayoutEffect)(()=>{let e=u.current,t=e?.offsetParent;if(!e||!t||!m){f(null);return}let n=e.offsetWidth,r=e.offsetHeight,i={width:t.clientWidth,height:t.clientHeight-Y},a=m.top+m.height+q,o=a+r<=i.height?a:Math.max(J,m.top-q-r),s=m.left+m.width/2,c=Math.min(Math.max(J,s-n/2),i.width-n-J);f({left:c,top:o})},[m?`${m.left},${m.top},${m.width},${m.height}`:``,o?.title,o?.text]),(0,K.jsxs)(`div`,{className:`pointer-events-none absolute inset-0`,"data-testid":`flow-presented`,children:[(0,K.jsx)(F,{frameId:t.id,flow:n.flow,targets:a,index:n.index,viewport:i,lead:s}),o&&(0,K.jsxs)(`div`,{ref:u,"data-testid":`flow-present-caption`,className:`absolute z-10 flex max-w-[min(420px,calc(100%-32px))] items-start gap-3 rounded-2xl bg-[var(--chrome-popup)] px-4 py-3 shadow-[0_8px_32px_rgba(0,0,0,0.18)] ring-1 ring-[var(--chrome-ring)] transition-[left,top] duration-300`,style:d??{left:J,bottom:88,visibility:m?`hidden`:`visible`},children:[(0,K.jsx)(`span`,{className:`mt-0.5 flex h-6 min-w-6 shrink-0 items-center justify-center rounded-full px-1.5 text-[12px] font-medium tabular-nums text-white ${o.fails?`bg-[var(--flow-fail)]`:`bg-[var(--flow-accent)]`}`,children:n.index+1}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-[15px] font-medium leading-snug text-[var(--chrome-fg-900)]`,children:o.title}),o.text&&(0,K.jsx)(`p`,{className:`mt-0.5 text-[13px] leading-relaxed text-[var(--chrome-fg-600)]`,children:o.text}),(o.payload||o.fails||l!==`call`)&&(0,K.jsx)(`p`,{className:`mt-1 text-[11px] text-[var(--chrome-fg-500)]`,children:[o.fails?`Fails here`:``,l===`async`?`Fire and forget`:l===`reply`?`Reply`:``,o.payload?`Carries ${o.payload}`:``].filter(Boolean).join(` · `)})]})]})]})}function X(e){if(e.length===0)return null;let t=Math.min(...e.map(e=>e.left)),n=Math.min(...e.map(e=>e.top)),r=Math.max(...e.map(e=>e.left+e.width)),i=Math.max(...e.map(e=>e.top+e.height));return{left:t,top:n,width:r-t,height:i-n}}var ye=2500,be=480,xe={black:`#000000`,white:`#ffffff`};function Se(e,t){let{fromViewport:n,toViewport:r}=e,i=r.x-n.x,o=r.y-n.y,s=r.zoom-n.zoom,c=t.zoom-n.zoom,l=s;return Math.abs(i)>=Math.abs(o)&&Math.abs(i)>=Math.abs(s)?(c=t.x-n.x,l=i):Math.abs(o)>=Math.abs(s)&&(c=t.y-n.y,l=o),l===0?1:a(c/l)}function Ce(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n,width:e.width+(t.width-e.width)*n,height:e.height+(t.height-e.height)*n}}var we=0;function Te(e){let t=0,n=()=>we!==e,r=()=>{if(n()){document.removeEventListener(`fullscreenchange`,r);return}document.fullscreenElement&&document.exitFullscreen().catch(()=>{t+=1,t<10&&window.setTimeout(r,50)})};document.addEventListener(`fullscreenchange`,r);let i=()=>{if(!document.fullscreenElement||n()){document.removeEventListener(`fullscreenchange`,r);return}window.setTimeout(i,250)};window.setTimeout(i,250),window.setTimeout(()=>document.removeEventListener(`fullscreenchange`,r),5e3),r()}function Z(e){return l(e=>e.presentingIndex!==null)?(0,K.jsx)(Ee,{containerRef:e.containerRef}):null}function Ee(e){let{containerRef:t}=e,{store:n,viewportAnimation:r}=c(),a=(0,I.useRef)(null),o=l(e=>e.presentingIndex)??0,s=l(e=>e.shapes),f=l(e=>e.viewport),h=l(e=>e.presentationAnimation),_=(0,I.useMemo)(()=>p(s),[s]),y=(0,I.useMemo)(()=>_.flatMap((e,t)=>e.slideSkipped?[]:[t]),[_]),[b,ee]=(0,I.useState)(!0),[te,E]=(0,I.useState)(!1),D=(0,I.useRef)(null),re=(0,I.useRef)(n.getState().viewport),A=v(),j=se({laser:A,onSwipe:e=>e===`next`?Q.current.next():Q.current.prev()}),M=(0,I.useRef)(`mouse`),N=(0,I.useRef)(null),P=(0,I.useRef)(!1),F=e=>{let t=N.current;return t?Ce(t.fromBounds,t.toBounds,Se(t,e)):null},[L,R]=(0,I.useState)(!1),ie=(0,I.useRef)(Date.now()),[ae,oe]=(0,I.useState)(0);(0,I.useEffect)(()=>{let e=setInterval(()=>oe(Math.floor((Date.now()-ie.current)/1e3)),1e3);return()=>clearInterval(e)},[]);let z=`${String(Math.floor(ae/60)).padStart(2,`0`)}:${String(ae%60).padStart(2,`0`)}`,B=(0,I.useCallback)(()=>{let e=t.current;return{width:e?.clientWidth??window.innerWidth,height:e?.clientHeight??window.innerHeight}},[t]),V=(0,I.useRef)(!1);(0,I.useEffect)(()=>{let e=n.getState(),i=e.selectedIds;e.setSelectedIds(new Set),e.endEdit(),e.setLockRevealId(null),e.setHoveredId(null);let a=t.current,o=()=>E(!0);V.current=!0,we+=1;let s=we;Promise.resolve(a?.requestFullscreen?.()).then(()=>{if(!V.current){Te(s);return}o()},o);let c=!1,l=()=>{if(!document.fullscreenElement){c&&n.getState().setPresentingIndex(null);return}c=!0,o()};document.addEventListener(`fullscreenchange`,l);let u=re.current;return()=>{V.current=!1,document.removeEventListener(`fullscreenchange`,l),Te(s);let{shapes:e,setSelectedIds:t}=n.getState(),a=new Set(e.map(e=>e.id));t(new Set([...i].filter(e=>a.has(e)))),r.animate(n.getState().viewport,u,e=>n.getState().setViewport(e),0)}},[n,r,t]);let H=de({shapes:s,slides:_,playable:y,index:o}),{count:U,deckSteps:W,position:me,slide:G,step:he,pending:ge,flowStop:q}=H,J=(0,I.useRef)(G);J.current=G;let Y=ce(),X=Y.blank,Z=pe({overlayRef:a,slideRef:J,view:B}),Ee=Z.clear;function De(){Y.lift()||H.next()}function Oe(){Y.lift()||H.prev()}function ke(e){Y.lift()||H.goToPosition(e)}let Ae={next:De,prev:Oe,goTo:ke,count:U,toggleNotes:()=>R(e=>!e),toggleBlank:Y.toggle,escape:()=>{if(Z.isZoomed()){Z.reset();return}n.getState().setPresentingIndex(null)}},Q=(0,I.useRef)(Ae);Q.current=Ae,fe(Q),(0,I.useEffect)(()=>{if(!G||!te)return;let e=e=>n.getState().setViewport(e);Ee();let a=n.getState(),o=i(G),s=B(),c=m(o,s);N.current={fromBounds:F(a.viewport)??o,toBounds:o,fromViewport:a.viewport,toViewport:c},r.animate(a.viewport,c,e,a.presentationAnimation?be:0);let l=()=>{let t=B();if(t.width===s.width&&t.height===s.height)return;s=t;let i=m(o,t),a=n.getState().viewport;if(r.isAnimating()){N.current={fromBounds:o,toBounds:o,fromViewport:a,toViewport:i},r.animate(a,i,e,be);return}r.cancel(),N.current={fromBounds:o,toBounds:o,fromViewport:i,toViewport:i},e(i)},u=t.current,d=new ResizeObserver(l);return u&&d.observe(u),()=>d.disconnect()},[G,te,B,n,r,t,Ee]),(0,I.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>{e.preventDefault(),e.stopPropagation(),M.current!==`touch`&&Q.current.prev()};return e.addEventListener(`contextmenu`,t),()=>e.removeEventListener(`contextmenu`,t)},[]);function $(){ee(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>ee(!1),ye)}(0,I.useEffect)(()=>($(),()=>{D.current&&clearTimeout(D.current)}),[]),(0,I.useEffect)(()=>{U===0&&n.getState().setPresentingIndex(null)},[U,n]);function je(){let e=j.consumeClick(),t=A.consumeMoved();e||t||De()}let Me={position:me,step:he},Ne=b?`opacity-100`:`opacity-0 pointer-events-none`,Pe=(0,I.useMemo)(()=>G?_e(G,d(s,G)):`var(--canvas-bg)`,[G,s]),Fe=(()=>{if(!G)return null;let{width:e,height:t}=B(),n=F(f)??i(G),r=u({x:n.x,y:n.y},f),a=u({x:n.x+n.width,y:n.y+n.height},f);return`M0 0H${e}V${t}H0Z M${r.x} ${r.y}H${a.x}V${a.y}H${r.x}Z`})();return(0,K.jsxs)(`div`,{ref:a,"data-testid":`presentation`,"data-overlay":!0,className:`absolute inset-0 z-50`,style:{cursor:x,touchAction:`none`,userSelect:`none`,WebkitTouchCallout:`none`},onPointerDown:e=>{if(e.stopPropagation(),$(),M.current=e.pointerType,e.button===0){if(P.current=!0,e.currentTarget.setPointerCapture(e.pointerId),e.pointerType===`touch`){j.down(e);return}A.start({x:e.clientX,y:e.clientY})}},onPointerMove:e=>{if(e.stopPropagation(),$(),e.pointerType===`touch`){j.move(e);return}A.move({x:e.clientX,y:e.clientY}),Z.isZoomed()&&!P.current&&Z.zoomToCursor({x:e.clientX,y:e.clientY})},onPointerUp:e=>{if(P.current=!1,e.pointerType===`touch`){j.up(e);return}A.end()},onPointerCancel:e=>{if(P.current=!1,e.pointerType===`touch`){j.cancel();return}A.end()},onDoubleClick:e=>e.stopPropagation(),onClick:je,children:[(0,K.jsx)(ne,{pending:ge}),Fe&&(0,K.jsx)(`svg`,{className:`absolute inset-0 h-full w-full`,"aria-hidden":!0,children:(0,K.jsx)(`path`,{"data-testid":`presentation-mask`,d:Fe,fillRule:`evenodd`,fill:Pe,style:h?{transition:`fill ${be}ms ease`}:void 0})}),q&&G&&(0,K.jsx)(ve,{slide:G,stop:q,shapes:s,viewport:f}),X&&(0,K.jsx)(`div`,{"data-testid":`presentation-blank`,"data-blank":X,className:`absolute inset-0`,style:{backgroundColor:xe[X]}}),(0,K.jsx)(g,{trail:A.trail}),(0,K.jsx)(`div`,{className:`absolute right-4 top-4 transition-opacity duration-300 ${Ne}`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,K.jsxs)(`div`,{className:`flex items-center gap-0.5 ${k}`,children:[(0,K.jsx)(`button`,{type:`button`,"aria-label":`Toggle speaker notes`,"data-testid":`presentation-notes-toggle`,onClick:()=>R(e=>!e),className:`${O} ${L?`bg-[var(--chrome-hover)]`:``}`,children:(0,K.jsx)(w,{size:16,stroke:1.75})}),(0,K.jsx)(`button`,{type:`button`,"aria-label":`End presentation`,"data-testid":`presentation-exit`,onClick:()=>H.goTo(null),className:O,children:(0,K.jsx)(T,{size:16,stroke:1.75})})]})}),L&&(0,K.jsx)(`div`,{"data-testid":`presentation-notes`,className:`absolute bottom-4 left-4 w-[min(360px,40vw)]`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,K.jsxs)(`div`,{className:`${k} px-3.5 py-3`,children:[(0,K.jsxs)(`div`,{className:`mb-1 flex items-center justify-between text-[11px] uppercase tracking-wide text-[var(--chrome-fg-400)]`,children:[(0,K.jsx)(`span`,{children:`Notes`}),(0,K.jsx)(`span`,{className:`tabular-nums normal-case`,children:z})]}),(0,K.jsx)(`div`,{className:`max-h-[30vh] overflow-y-auto whitespace-pre-wrap text-[13px] leading-relaxed text-[var(--chrome-fg-800)]`,children:G?.notes?.trim()?G.notes:(0,K.jsx)(`span`,{className:`text-[var(--chrome-fg-400)]`,children:`No notes for this slide.`})})]})}),(0,K.jsx)(`div`,{className:`absolute bottom-4 left-1/2 -translate-x-1/2 transition-opacity duration-300 ${Ne}`,onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:(0,K.jsxs)(`div`,{className:`flex items-center gap-0.5 ${k}`,children:[(0,K.jsx)(`button`,{type:`button`,"aria-label":`Previous slide`,"data-testid":`presentation-prev`,disabled:!ue(Me,W),onClick:Oe,className:`${O} disabled:pointer-events-none disabled:text-[var(--chrome-fg-300)]`,children:(0,K.jsx)(S,{size:16,stroke:1.75})}),(0,K.jsxs)(`span`,{"data-testid":`presentation-counter`,className:`min-w-[52px] px-1 text-center text-[13px] tabular-nums text-[var(--chrome-fg-700)]`,children:[me+1,` / `,U]}),(0,K.jsx)(`span`,{"data-testid":`presentation-clock`,className:`border-l border-[var(--chrome-divider)] px-2 text-[13px] tabular-nums text-[var(--chrome-fg-400)]`,children:z}),(0,K.jsx)(`button`,{type:`button`,"aria-label":`Next slide`,"data-testid":`presentation-next`,disabled:!le(Me,W),onClick:De,className:`${O} disabled:pointer-events-none disabled:text-[var(--chrome-fg-300)]`,children:(0,K.jsx)(C,{size:16,stroke:1.75})})]})})]})}export{Z as Presentation};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{br as r,xr as i}from"./slides-D686obFO.js";import{_ as a}from"./selection-overlay-primitives-BRp854AD.js";var o=`var(--presentation-cursor, default)`,s=e(t(),1),c=6,l=1200,u=500,d=5,f=2;function p(e,t){return e.length<2?``:r(i(e.map(e=>[e.x,e.y]),{size:d,thinning:0,smoothing:.5,streamline:.32,simulatePressure:!1,last:!t}))}function m(){let e=(0,s.useRef)([]),t=(0,s.useRef)([]),n=(0,s.useRef)(null),r=(0,s.useRef)(!1),i=(0,s.useRef)(!1),[a,o]=(0,s.useState)(``);(0,s.useEffect)(()=>{let i=0,a=()=>{let s=performance.now();if(!r.current&&n.current!=null&&e.current.length>0&&s-n.current>=l){let r=e.current;e.current=[],n.current=null,t.current.push({strokes:r,start:s,total:r.reduce((e,t)=>e+t.length,0),removed:0})}for(let e of t.current){let t=Math.min(1,(s-e.start)/u),n=Math.floor(t*t*e.total);for(;e.removed<n&&e.strokes.length>0;){let t=e.strokes[0];t.shift(),e.removed+=1,t.length===0&&e.strokes.shift()}}t.current=t.current.filter(e=>e.strokes.length>0);let c=e.current,d=[];for(let e of t.current)for(let t of e.strokes)d.push(p(t,!1));for(let e=0;e<c.length;e+=1){let t=r.current&&e===c.length-1;d.push(p(c[e],t))}let f=d.filter(Boolean).join(` `);o(e=>f===e?e:f),i=requestAnimationFrame(a)};return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},[]);function d(t){r.current=!0,i.current=!1,n.current=null,e.current.push([t])}function m(t){if(!r.current)return;let n=e.current[e.current.length-1],a=n[0];(Math.abs(t.x-a.x)>c||Math.abs(t.y-a.y)>c)&&(i.current=!0);let o=n[n.length-1];(Math.abs(t.x-o.x)>=f||Math.abs(t.y-o.y)>=f)&&n.push(t)}function h(){r.current&&(r.current=!1,i.current||e.current.pop(),n.current=e.current.length>0?performance.now():null)}function g(){let e=i.current;return i.current=!1,e}return{trail:a,start:d,move:m,end:h,consumeMoved:g}}var h=n();function g(e){let{trail:t}=e;return t?(0,h.jsx)(`svg`,{"data-testid":`laser-trail`,className:`pointer-events-none absolute inset-0 h-full w-full`,children:(0,h.jsx)(`path`,{d:t,fill:`#e8590c`,opacity:.8})}):null}function _(e){let{trail:t}=e;return t?(0,h.jsx)(`svg`,{"data-testid":`eraser-trail`,className:`pointer-events-none absolute inset-0 h-full w-full`,children:(0,h.jsx)(`path`,{d:t,fill:`#94a3b8`,opacity:.55})}):null}function v(){let e=m();return(0,h.jsx)(`div`,{"data-testid":`laser-overlay`,className:`absolute inset-0 cursor-crosshair`,onPointerDown:t=>{t.stopPropagation(),t.button===0&&(t.currentTarget.setPointerCapture(t.pointerId),e.start({x:t.clientX,y:t.clientY}))},onPointerMove:t=>{t.stopPropagation(),e.move({x:t.clientX,y:t.clientY})},onPointerUp:()=>e.end(),onPointerCancel:()=>e.end(),onDoubleClick:e=>e.stopPropagation(),children:(0,h.jsx)(g,{trail:e.trail})})}var y=10,b=1;function x(e){return 1+-(Math.abs(e)>y?y*Math.sign(e):e)/100*b}function S(e){let t=null,n=null;function r(){n=null;let r=t;t=null,r&&e(r)}return{queue(e){t||={zoomFactor:1,anchor:null,dx:0,dy:0},e(t),n===null&&(n=requestAnimationFrame(r))},cancel(){t=null,n!==null&&(cancelAnimationFrame(n),n=null)}}}function C(e,t){let n=new Set,r=null,i=null;function o(e){e.pointerType===`touch`&&n.add(e.pointerId)}function s(e){n.delete(e.pointerId)}function c(e){n.size>0||(r=e.scale,i=e.target)}function l(e){if(r===null)return;let n=e,a=r>0?n.scale/r:1;r=n.scale,a!==1&&t({factor:a,clientX:n.clientX,clientY:n.clientY,target:i})}function u(){r=null,i=null}window.addEventListener(`pointerdown`,o,{capture:!0}),window.addEventListener(`pointerup`,s,{capture:!0}),window.addEventListener(`pointercancel`,s,{capture:!0}),e.addEventListener(`gesturestart`,c),e.addEventListener(`gesturechange`,l),e.addEventListener(`gestureend`,u);let d=a(()=>{n.clear(),r=null,i=null});return{isActive:()=>r!==null,stop(){window.removeEventListener(`pointerdown`,o,{capture:!0}),window.removeEventListener(`pointerup`,s,{capture:!0}),window.removeEventListener(`pointercancel`,s,{capture:!0}),e.removeEventListener(`gesturestart`,c),e.removeEventListener(`gesturechange`,l),e.removeEventListener(`gestureend`,u),d()}}}var w=[{help:`→ / Space`,label:`Next slide (presenting)`,bindings:[{keys:[`ArrowRight`,`ArrowDown`,`PageDown`,` `,`Enter`],command:`next`}]},{help:`← / ⌫`,label:`Previous slide (presenting)`,bindings:[{keys:[`ArrowLeft`,`ArrowUp`,`PageUp`,`Backspace`],command:`prev`}]},{help:`Home / End`,label:`First / last slide (presenting)`,bindings:[{keys:[`Home`],command:`first`},{keys:[`End`],command:`last`}]},{help:`1…9 ⏎`,label:`Jump to slide (presenting)`,bindings:[]},{help:`N`,label:`Speaker notes (presenting)`,bindings:[{keys:[`n`,`N`],command:`notes`}]},{help:`B / W`,label:`Black / white screen (presenting)`,bindings:[{keys:[`b`,`B`],command:`black`},{keys:[`w`,`W`],command:`white`}]},{help:`Esc`,label:`End presentation`,bindings:[{keys:[`Escape`],command:`escape`}]}],T=new Map(w.flatMap(e=>e.bindings.flatMap(e=>e.keys.map(t=>[t,e.command]))));function E(e,t){if(e.key===`Escape`)return{type:`escape`};if(e.metaKey||e.ctrlKey||e.altKey)return null;if(/^[0-9]$/.test(e.key))return{type:`digit`,digit:e.key};if(e.key===`Enter`&&t)return{type:`jump`};let n=T.get(e.key);return n?{type:n}:null}export{x as a,g as c,S as i,m as l,E as n,_ as o,C as r,v as s,w as t,o as u};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{_n as r,vn as i}from"./shapes-CHDGoELO.js";import{h as a}from"./selection-overlay-primitives-DXtdWjNx.js";var o=`var(--presentation-cursor, default)`,s=e(t(),1),c=6,l=1200,u=500,d=5,f=2;function p(e,t){return e.length<2?``:r(i(e.map(e=>[e.x,e.y]),{size:d,thinning:0,smoothing:.5,streamline:.32,simulatePressure:!1,last:!t}))}function m(){let e=(0,s.useRef)([]),t=(0,s.useRef)([]),n=(0,s.useRef)(null),r=(0,s.useRef)(!1),i=(0,s.useRef)(!1),[a,o]=(0,s.useState)(``);(0,s.useEffect)(()=>{let i=0,a=()=>{let s=performance.now();if(!r.current&&n.current!=null&&e.current.length>0&&s-n.current>=l){let r=e.current;e.current=[],n.current=null,t.current.push({strokes:r,start:s,total:r.reduce((e,t)=>e+t.length,0),removed:0})}for(let e of t.current){let t=Math.min(1,(s-e.start)/u),n=Math.floor(t*t*e.total);for(;e.removed<n&&e.strokes.length>0;){let t=e.strokes[0];t.shift(),e.removed+=1,t.length===0&&e.strokes.shift()}}t.current=t.current.filter(e=>e.strokes.length>0);let c=e.current,d=[];for(let e of t.current)for(let t of e.strokes)d.push(p(t,!1));for(let e=0;e<c.length;e+=1){let t=r.current&&e===c.length-1;d.push(p(c[e],t))}let f=d.filter(Boolean).join(` `);o(e=>f===e?e:f),i=requestAnimationFrame(a)};return i=requestAnimationFrame(a),()=>cancelAnimationFrame(i)},[]);function d(t){r.current=!0,i.current=!1,n.current=null,e.current.push([t])}function m(t){if(!r.current)return;let n=e.current[e.current.length-1],a=n[0];(Math.abs(t.x-a.x)>c||Math.abs(t.y-a.y)>c)&&(i.current=!0);let o=n[n.length-1];(Math.abs(t.x-o.x)>=f||Math.abs(t.y-o.y)>=f)&&n.push(t)}function h(){r.current&&(r.current=!1,i.current||e.current.pop(),n.current=e.current.length>0?performance.now():null)}function g(){let e=i.current;return i.current=!1,e}return{trail:a,start:d,move:m,end:h,consumeMoved:g}}var h=n();function g(e){let{trail:t}=e;return t?(0,h.jsx)(`svg`,{"data-testid":`laser-trail`,className:`pointer-events-none absolute inset-0 h-full w-full`,children:(0,h.jsx)(`path`,{d:t,fill:`#e8590c`,opacity:.8})}):null}function _(e){let{trail:t}=e;return t?(0,h.jsx)(`svg`,{"data-testid":`eraser-trail`,className:`pointer-events-none absolute inset-0 h-full w-full`,children:(0,h.jsx)(`path`,{d:t,fill:`#94a3b8`,opacity:.55})}):null}function v(){let e=m();return(0,h.jsx)(`div`,{"data-testid":`laser-overlay`,className:`absolute inset-0 cursor-crosshair`,onPointerDown:t=>{t.stopPropagation(),t.button===0&&(t.currentTarget.setPointerCapture(t.pointerId),e.start({x:t.clientX,y:t.clientY}))},onPointerMove:t=>{t.stopPropagation(),e.move({x:t.clientX,y:t.clientY})},onPointerUp:()=>e.end(),onPointerCancel:()=>e.end(),onDoubleClick:e=>e.stopPropagation(),children:(0,h.jsx)(g,{trail:e.trail})})}var y=10,b=1;function x(e){return 1+-(Math.abs(e)>y?y*Math.sign(e):e)/100*b}function S(e){let t=null,n=null;function r(){n=null;let r=t;t=null,r&&e(r)}return{queue(e){t||={zoomFactor:1,anchor:null,dx:0,dy:0},e(t),n===null&&(n=requestAnimationFrame(r))},cancel(){t=null,n!==null&&(cancelAnimationFrame(n),n=null)}}}function C(e,t){let n=new Set,r=null,i=null;function o(e){e.pointerType===`touch`&&n.add(e.pointerId)}function s(e){n.delete(e.pointerId)}function c(e){n.size>0||(r=e.scale,i=e.target)}function l(e){if(r===null)return;let n=e,a=r>0?n.scale/r:1;r=n.scale,a!==1&&t({factor:a,clientX:n.clientX,clientY:n.clientY,target:i})}function u(){r=null,i=null}window.addEventListener(`pointerdown`,o,{capture:!0}),window.addEventListener(`pointerup`,s,{capture:!0}),window.addEventListener(`pointercancel`,s,{capture:!0}),e.addEventListener(`gesturestart`,c),e.addEventListener(`gesturechange`,l),e.addEventListener(`gestureend`,u);let d=a(()=>{n.clear(),r=null,i=null});return{isActive:()=>r!==null,stop(){window.removeEventListener(`pointerdown`,o,{capture:!0}),window.removeEventListener(`pointerup`,s,{capture:!0}),window.removeEventListener(`pointercancel`,s,{capture:!0}),e.removeEventListener(`gesturestart`,c),e.removeEventListener(`gesturechange`,l),e.removeEventListener(`gestureend`,u),d()}}}var w=[{help:`→ / Space`,label:`Next slide (presenting)`,bindings:[{keys:[`ArrowRight`,`ArrowDown`,`PageDown`,` `,`Enter`],command:`next`}]},{help:`← / ⌫`,label:`Previous slide (presenting)`,bindings:[{keys:[`ArrowLeft`,`ArrowUp`,`PageUp`,`Backspace`],command:`prev`}]},{help:`Home / End`,label:`First / last slide (presenting)`,bindings:[{keys:[`Home`],command:`first`},{keys:[`End`],command:`last`}]},{help:`1…9 ⏎`,label:`Jump to slide (presenting)`,bindings:[]},{help:`N`,label:`Speaker notes (presenting)`,bindings:[{keys:[`n`,`N`],command:`notes`}]},{help:`B / W`,label:`Black / white screen (presenting)`,bindings:[{keys:[`b`,`B`],command:`black`},{keys:[`w`,`W`],command:`white`}]},{help:`Esc`,label:`End presentation`,bindings:[{keys:[`Escape`],command:`escape`}]}],T=new Map(w.flatMap(e=>e.bindings.flatMap(e=>e.keys.map(t=>[t,e.command]))));function E(e,t){if(e.key===`Escape`)return{type:`escape`};if(e.metaKey||e.ctrlKey||e.altKey)return null;if(/^[0-9]$/.test(e.key))return{type:`digit`,digit:e.key};if(e.key===`Enter`&&t)return{type:`jump`};let n=T.get(e.key);return n?{type:n}:null}export{x as a,g as c,S as i,m as l,E as n,_ as o,C as r,v as s,w as t,o as u};
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./web-widget-limits-DeMquLIR.js";import{i as n}from"./web-embeds-I3saJ_yp.js";import{n as r}from"./embed-input-D77Udvni.js";function i(e){let t;try{t=new URL(e.trim())}catch{return null}return t.protocol!==`https:`||t.username!==``||t.password!==``||t.port!==``?null:t}function a(e){return e.hostname.toLowerCase().replace(/\.$/,``)}function o(e){let t=i(e);if(!t)return!1;let n=a(t);return n===`maps.app.goo.gl`?t.pathname.length>1:n===`goo.gl`&&/^\/maps\/[^/]+/.test(t.pathname)}var s=/^#([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,c=/^(rgba?|hsla?|oklch)\(([^()]*)\)$/i,l=/#[0-9a-f]+\b|(?:rgba?|hsla?|oklch)\([^()]*\)/iy,u=/[\s,;]*/y,d=/^["']?(?:--|\$|@)?([A-Za-z_][\w-]*)["']?\s*:\s*["']?(.+?)["']?\s*[;,]?$/,f=/^([^{}:]*:?[\w-]*\s*\{|\})$/;function p(e,t){let n=t.trim().replace(/\s+/g,` `);return!s.test(n)&&!c.test(n)?null:{name:e,value:n}}function m(e){let t=[],n=0;for(;n<e.length&&(u.lastIndex=n,u.exec(e),n=u.lastIndex,!(n>=e.length));){l.lastIndex=n;let r=l.exec(e),i=r?p(null,r[0]):null;if(!i)return null;t.push(i),n=l.lastIndex}return t}function h(e){let t=e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``),n=[];for(let e of t){let t=d.exec(e);if(t){let e=p(t[1],t[2]);if(!e)return null;n.push(e);continue}if(f.test(e))continue;let r=m(e);if(!r||(n.push(...r),n.length>24))return null}return n.length===0||n.length>24?null:n}function g(e,t,n){return Math.min(n,Math.max(t,e))}function _(e){return Math.round(g(e,0,255)).toString(16).padStart(2,`0`)}function v(e){let t=`#${_(e.r)}${_(e.g)}${_(e.b)}`;return e.a>=1?t:`${t}${_(e.a*255)}`}function y(e){let t=s.exec(e);if(!t)return null;let n=t[1];n.length<=4&&(n=n.replace(/(.)/g,`$1$1`));let r=e=>Number.parseInt(n.slice(e,e+2),16);return{r:r(0),g:r(2),b:r(4),a:n.length===8?r(6)/255:1}}function b(e){let t=/^([+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?)(%|deg|turn|rad)?$/i.exec(e);return t?{value:Number(t[1]),unit:(t[2]??``).toLowerCase()}:null}function x(e){let t=e.trim();if(t.includes(`,`)){let e=t.split(`,`).map(e=>e.trim());return e.length===3?{channels:e,alpha:null}:e.length===4?{channels:e.slice(0,3),alpha:e[3]}:null}let[n,r,i]=t.split(`/`).map(e=>e.trim());if(i!==void 0)return null;let a=n.split(/\s+/).filter(e=>e!==``);return a.length===3?{channels:a,alpha:r??null}:null}function S(e){if(e===null)return 1;let t=b(e);return!t||t.unit!==``&&t.unit!==`%`?null:g(t.unit===`%`?t.value/100:t.value,0,1)}function C(e){let t=b(e);return!t||t.unit===`%`?null:t.unit===`turn`?t.value*360:t.unit===`rad`?t.value*180/Math.PI:t.value}function w(e){let t=e.map(e=>{let t=b(e);return!t||t.unit!==``&&t.unit!==`%`?null:t.unit===`%`?t.value/100*255:t.value});if(t.some(e=>e===null))return null;let[n,r,i]=t;return{r:n,g:r,b:i}}function T(e){let t=b(e);return!t||t.unit!==`%`&&!(t.unit===``&&t.value===0)?null:g(t.value/100,0,1)}function E(e){let t=C(e[0]),n=T(e[1]),r=T(e[2]);if(t===null||n===null||r===null)return null;let i=(t%360+360)%360/360,a=(1-Math.abs(2*r-1))*n,o=e=>{let t=((i+e)%1+1)%1*6,n=Math.min(Math.max(Math.min(t,4-t),0),1);return(r-a/2+a*n)*255};return{r:o(1/3),g:o(0),b:o(-1/3)}}function D(e){let t=g(e,0,1);return(t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055)*255}function O(e){let t=b(e[0]),n=b(e[1]),r=e[2].toLowerCase()===`none`?0:C(e[2]);if(!t||!n||r===null||t.unit!==``&&t.unit!==`%`||n.unit!==``&&n.unit!==`%`)return null;let i=t.unit===`%`?t.value/100:t.value,a=n.unit===`%`?n.value/100*.4:n.value,o=r*Math.PI/180,s=a*Math.cos(o),c=a*Math.sin(o),l=[(i+.3963377774*s+.2158037573*c)**3,(i-.1055613458*s-.0638541728*c)**3,(i-.0894841775*s-1.291485548*c)**3];return{r:D(4.0767416621*l[0]-3.3077115913*l[1]+.2309699292*l[2]),g:D(-1.2684380046*l[0]+2.6097574011*l[1]-.3413193965*l[2]),b:D(-.0041960863*l[0]-.7034186147*l[1]+1.707614701*l[2])}}function k(e){let t=c.exec(e);if(!t)return null;let n=x(t[2]),r=n?S(n.alpha):null;if(!n||r===null)return null;let i=t[1].toLowerCase(),a;return a=i.startsWith(`rgb`)?w(n.channels):i.startsWith(`hsl`)?E(n.channels):O(n.channels),a?{...a,a:r}:null}function A(e){let t=e.trim(),n=y(t)??k(t);return n?v(n):null}function j(e){let t=h(e);if(!t)return null;let n=[];for(let e of t){let t=A(e.value);if(!t)return null;n.push({...e,hex:t})}return n}function M(e){let t=e.trim();return/^(<!doctype\s+html\b|<html[\s>])/i.test(t)?t:null}var N=/^(flowchart|graph|sequenceDiagram|classDiagram|stateDiagram|stateDiagram-v2|erDiagram|gantt|mindmap|timeline|journey|pie|gitGraph)(\s.*)?$/;function P(e){let t=e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e!==``&&!e.startsWith(`%%`));return t.length<2?!1:N.test(t[0])}var F=200,I=20;function L(e){return e==null?``:typeof e==`string`||typeof e==`number`||typeof e==`boolean`?String(e):null}function R(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function z(e){let t=e.trim();if(!t.startsWith(`[`))return null;let n;try{n=JSON.parse(t)}catch{return null}if(!Array.isArray(n)||n.length===0||n.length>F)return null;let r=[],i=new Set;for(let e of n){if(!R(e))return null;for(let t of Object.keys(e))i.has(t)||(i.add(t),r.push(t))}if(r.length===0||r.length>I)return null;let a=[r];for(let e of n){let t=[];for(let n of r){let r=L(e[n]);if(r===null)return null;t.push(r)}a.push(t)}return a}var B=`Couldn't open that map link`;async function V(e,t,r){let i=null;try{i=await t.resolveShortLink?.(e)??null}catch{i=null}let a=i?n(i):null;if(!a||a.provider!==`google-maps`){r(B);return}t.pasteEmbed(a)}async function H(n,i,a,s){let c=n.plainText,l=M(c);if(l)return e(l)>131072?(s(`That page is too big for a widget (max ${t/1024} KB)`),!0):(a.pasteHtmlWidget(l),!0);if(a.resolveShortLink&&o(c))return await V(c.trim(),a,s),!0;let u=r(c);if(u)return a.pasteEmbed(u),!0;if(h(c)){let e=j(c);return e?e.length===1&&a.hasSelection()?(a.applyColor(e[0].hex),s(`Applied ${e[0].value}`),!0):(a.pasteColors(e),!0):!1}if(P(c))return a.pasteMermaid(c.trim()),!0;let d=i?null:z(c);return d?(a.pasteGrid(d),!0):!1}export{H as pasteRichText};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{It as r,Nt as i,Pn as a,j as o,k as s,on as c}from"./shapes-CHDGoELO.js";import{c as l,f as u,i as d,n as f,o as p,y as m}from"./geometry-CVRSymIE.js";import{o as ee,s as te}from"./editor-CpiNbiMQ.js";import{B as h,z as ne}from"./frames-C-jROub3.js";import{n as re}from"./renderer-environment-D3n3hbug.js";import{r as ie,s as ae,t as g}from"./IconHelp-Bf6OkQYw.js";import{t as oe}from"./editable-target-BTLnvKNi.js";import{t as se}from"./createReactComponent-C51FAx3B.js";import{n as _,r as ce,t as le}from"./IconTrash-C8w6ThWx.js";import{t as v}from"./IconArrowLeft-B4Zcy-Fc.js";import{n as ue,t as y}from"./IconPlayerStopFilled-D4qdct2R.js";import{t as de}from"./IconEraser-CYfXj27R.js";import{t as fe}from"./IconFocusCentered-Cn8rbfRI.js";import{t as pe}from"./IconPencil-D_pQsAyv.js";import{t as me}from"./IconX-KrRqxr2j.js";import{t as he}from"./IconPlayerPlayFilled-DVAWmYt7.js";import{t as ge}from"./storage-CvDRYh5V.js";import{s as _e}from"./chrome-C2RCq3SI.js";import{i as b,n as x,r as S,t as C}from"./DialogRoot-DUeVfNhS.js";import{n as ve,t as w}from"./DialogTitle-D5au2NAn.js";import{t as ye}from"./DialogDescription-Ddhk2rmF.js";import{n as be}from"./connector-labels-piWvprqQ.js";var xe=se(`outline`,`volume-off`,`VolumeOff`,[[`path`,{d:`M15 8a5 5 0 0 1 1.912 4.934m-1.377 2.602a5 5 0 0 1 -.535 .464`,key:`svg-0`}],[`path`,{d:`M17.7 5a9 9 0 0 1 2.362 11.086m-1.676 2.299a9 9 0 0 1 -.686 .615`,key:`svg-1`}],[`path`,{d:`M9.069 5.054l.431 -.554a.8 .8 0 0 1 1.5 .5v2m0 4v8a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l1.294 -1.664`,key:`svg-2`}],[`path`,{d:`M3 3l18 18`,key:`svg-3`}]]),Se=se(`outline`,`volume`,`Volume`,[[`path`,{d:`M15 8a5 5 0 0 1 0 8`,key:`svg-0`}],[`path`,{d:`M17.7 5a9 9 0 0 1 0 14`,key:`svg-1`}],[`path`,{d:`M6 15h-2a1 1 0 0 1 -1 -1v-4a1 1 0 0 1 1 -1h2l3.5 -4.5a.8 .8 0 0 1 1.5 .5v14a.8 .8 0 0 1 -1.5 .5l-3.5 -4.5`,key:`svg-2`}]]),T=e(t(),1),E=200,D=24,O=48,k=new Set([`ellipse`,`oval`,`double-circle`,`delay`]);function A(e,t){return`${e}:${t}`}function j(e){if(e.bendStyle===`elbow`)return r(e);let t={x:e.x,y:e.y},n={x:e.x2,y:e.y2};if(Math.abs(e.bend)<.5)return[t,n];let a=i(e),o={x:2*a.x-(t.x+n.x)/2,y:2*a.y-(t.y+n.y)/2},s=[];for(let e=0;e<=D;e++){let r=e/D,i=1-r;s.push({x:i*i*t.x+2*i*r*o.x+r*r*n.x,y:i*i*t.y+2*i*r*o.y+r*r*n.y})}return s}function M(e,t){let{x:n,y:r,width:i,height:a}=t,o=e.type===`rectangle`?e.kind:null;if(o&&k.has(o)){let e=[];for(let t=0;t<=O;t++){let o=t/O*Math.PI*2;e.push({x:n+i/2+Math.cos(o)*i/2,y:r+a/2+Math.sin(o)*a/2})}return e}return o===`diamond`?[{x:n+i/2,y:r},{x:n+i,y:r+a/2},{x:n+i/2,y:r+a},{x:n,y:r+a/2},{x:n+i/2,y:r}]:o===`triangle`?[{x:n+i/2,y:r},{x:n+i,y:r+a},{x:n,y:r+a},{x:n+i/2,y:r}]:[{x:n,y:r},{x:n+i,y:r},{x:n+i,y:r+a},{x:n,y:r+a},{x:n,y:r}]}var N=6;function Ce(e){if(e.length<3)return e;let t=[e[0]];for(let n=1;n<e.length-1;n++){let r=t[t.length-1];Math.hypot(e[n].x-r.x,e[n].y-r.y)>=N&&t.push(e[n])}return t.push(e[e.length-1]),t}function P(e){if(e.type===`draw`)return[Ce(e.points)];if(e.type===`line`)return[e.points];if(e.type===`polygon`)return e.points.length>2?[[...e.points,e.points[0]]]:[];if(e.type===`arrow`)return[j(e)];if(e.type===`text`||a(e)||!c(e)&&e.type!==`table`)return[];let t=s(e),n=M(e,t),r=o(e);if(!r)return[n];let i={x:t.x+t.width/2,y:t.y+t.height/2},l=r*Math.PI/180;return[n.map(e=>m(e,i,l))]}function F(e,t){let n=Math.floor(Math.min(t.a.x,t.b.x)/E),r=Math.floor(Math.max(t.a.x,t.b.x)/E),i=Math.floor(Math.min(t.a.y,t.b.y)/E),a=Math.floor(Math.max(t.a.y,t.b.y)/E);for(let o=n;o<=r;o++)for(let n=i;n<=a;n++){let r=A(o,n),i=e.get(r);i?i.push(t):e.set(r,[t])}}function we(e,t){for(let n=1;n<t.length;n++){let r=t[n-1],i=t[n];!Number.isFinite(r.x+r.y+i.x+i.y)||r.x===i.x&&r.y===i.y||(F(e.cells,{a:r,b:i}),e.bottom=Math.max(e.bottom,r.y,i.y),e.empty=!1)}}function Te(e){return e.flatMap(P)}function Ee(e,t=[]){let n={cells:new Map,bottom:-1/0,empty:!0};for(let t of e)we(n,t);for(let e of t)we(n,Ce(e));return n}function De(e,t,n){let r=Math.floor((t.x-n)/E),i=Math.floor((t.x+n)/E),a=Math.floor((t.y-n)/E),o=Math.floor((t.y+n)/E),s=[];for(let t=r;t<=i;t++)for(let n=a;n<=o;n++){let r=e.cells.get(A(t,n));r&&s.push(...r)}return s}function Oe(e,t){let n=Math.floor(t.x/E),r=Math.floor(e.bottom/E);for(let i=Math.floor(t.y/E);i<=r;i++)for(let{a:r,b:a}of e.cells.get(A(n,i))??[]){let e=Math.min(r.x,a.x),n=Math.max(r.x,a.x);if(t.x<e||t.x>n)continue;let i=n===e?0:(t.x-r.x)/(a.x-r.x);if(Math.max(r.y,a.y)>=t.y&&r.y+(a.y-r.y)*i>=t.y)return!0}return!1}var ke=1500,I={x:8,y:-40},Ae={x:11,y:-29},je=7,Me=.1,L=.02,R=5e3,Ne=32,Pe=1300,Fe=1100,z=650,B=7,V=10,Ie=1,H=.15,Le=2.5,Re=3,ze=8,Be=1.2,Ve=1700,He=2400,Ue=.2,We=620,Ge=.15,Ke=1.4,qe=700,Je=4e3,Ye=160,Xe={left:!1,right:!1,boost:!1,duck:!1};function Ze(e,t){return{position:{...e},velocity:{...t},grounded:!1,normal:null}}function Qe(e,t){return{...Ze(e,t),spin:0}}function $e(e){let t={x:0,y:0};return{left:Qe({x:e.x-23,y:e.y},t),right:Qe({x:e.x+23,y:e.y},t),facing:1,ducking:!1,rider:null,crashedFor:0,jumpBuffer:0,outcome:`riding`,distance:0,topSpeed:0,air:0,longestAir:0,angle:0,airTurn:0,groundTurn:0,leanLock:0,wasGrounded:!1,touchedDown:!1,lastGroundY:e.y,startY:e.y,trail:[{...e}],events:[]}}function U(e){return Math.hypot(e.x,e.y)}function W(e,t,n){return{x:e.x+(t.x-e.x)*n,y:e.y+(t.y-e.y)*n}}function et(e){return W(e.left.position,e.right.position,.5)}function tt(e){return U(W(e.left.velocity,e.right.velocity,.5))}function nt(e,t,n){let r=W(e,t,.5),i=Math.atan2(t.y-e.y,t.x-e.x),a=Math.cos(i),o=Math.sin(i);return{x:r.x+n.x*a-n.y*o,y:r.y+n.x*o+n.y*a}}function rt(e,t){let{position:n,velocity:r}=e;r.y+=ke*t,r.x*=1-L*t,r.y*=1-L*t;let i=U(r);i>R&&(r.x=r.x/i*R,r.y=r.y/i*R),n.x+=r.x*t,n.y+=r.y*t}function it(e,t,n,r){let{position:i,velocity:a}=e,o=0,s=0;for(let e of De(t,i,n)){let t=p(i,e.a,e.b),r=i.x-t.x,c=i.y-t.y,l=Math.hypot(r,c);if(l>=n)continue;let u,d;if(l>1e-6)u=r/l,d=c/l;else{let t=e.b.x-e.a.x,n=e.b.y-e.a.y,r=Math.hypot(t,n);u=n/r,d=-t/r,d>0&&(u=-u,d=-d)}i.x+=u*(n-l),i.y+=d*(n-l);let f=a.x*u+a.y*d;f<0&&(a.x-=1.1*f*u,a.y-=1.1*f*d),o+=u,s+=d}let c=Math.hypot(o,s);e.grounded=c>0,e.normal=e.grounded?{x:o/c,y:s/c}:null,e.grounded&&(a.x*=1-Me*r,a.y*=1-Me*r)}function at(e,t,n){return De(e,t,n).some(e=>l(p(t,e.a,e.b),t)<n)}function G(e,t){let n=t.position.x-e.position.x,r=t.position.y-e.position.y,i=Math.hypot(n,r)||1;return{x:n/i,y:r/i}}function ot(e,t){let n=t.position.x-e.position.x,r=t.position.y-e.position.y,i=Math.hypot(n,r)||1,a=n/i,o=r/i,s=(i-46)/2;e.position.x+=a*s,e.position.y+=o*s,t.position.x-=a*s,t.position.y-=o*s;let c=(t.velocity.x-e.velocity.x)*a+(t.velocity.y-e.velocity.y)*o;t.velocity.x-=a*c*.5,t.velocity.y-=o*c*.5,e.velocity.x+=a*c*.5,e.velocity.y+=o*c*.5}function st(e,t,n){let{left:r,right:i}=e,a=G(r,i),o=!!t.right-+!!t.left,s=r.grounded||i.grounded;o!==0&&s&&(e.facing=o>0?1:-1);let c={x:a.x*e.facing,y:a.y*e.facing};if(o!==0&&s)for(let e of[r,i]){if(!e.normal)continue;let t=-e.normal.y,r=e.normal.x;t*c.x+r*c.y<0&&(t=-t,r=-r),e.velocity.x*t+e.velocity.y*r<Fe&&(e.velocity.x+=t*Pe*n,e.velocity.y+=r*Pe*n)}if(o!==0&&!s&&(r.velocity.x+i.velocity.x)/2*o<Fe)for(let e of[r,i])e.velocity.x+=o*z*n;if(t.boost&&(r.velocity.x+i.velocity.x)/2*c.x+(r.velocity.y+i.velocity.y)/2*c.y<He)for(let e of[r,i])e.velocity.x+=c.x*Ve*n,e.velocity.y+=c.y*Ve*n}function ct(e,t,n){return((t.velocity.x-e.velocity.x)*-n.y+(t.velocity.y-e.velocity.y)*n.x)/46}function lt(e,t,n,r,i){let a=(i-r)*23;t.velocity.x+=-n.y*a,t.velocity.y+=n.x*a,e.velocity.x-=-n.y*a,e.velocity.y-=n.x*a}function ut(e,t){let{left:n,right:r}=e,i=G(n,r),a=ct(n,r,i),o=Math.atan2(i.y,i.x),s=d(-o*Le,-3,Re);lt(n,r,i,a,Math.abs(o)>Be&&a*o>0?s:a+(s-a)*Math.min(1,ze*t))}function dt(e,t,n){let{left:r,right:i}=e,a=G(r,i),o=ct(r,i,a);lt(r,i,a,o,o+(t*B-o)*Math.min(1,V*n))}function ft(e){let t=G(e.left,e.right);return Math.atan2(t.y,t.x)}function pt(e,t){let n=t-e;return n>Math.PI?n-=Math.PI*2:n<-Math.PI&&(n+=Math.PI*2),n}function mt(e,t=0){return Math.floor((Math.abs(e)+t)/(Math.PI*2))}function ht(e){e.outcome===`riding`&&(e.jumpBuffer=Ge)}function gt(e){let{left:t,right:n}=e;if(e.jumpBuffer<=0||!t.grounded&&!n.grounded)return;let r=G(t,n);for(let e of[t,n])e.velocity.x+=r.y*We,e.velocity.y-=r.x*We;e.jumpBuffer=0,e.events.push({kind:`jump`})}function _t(e,t,n,r){if(e.outcome===`fell`)return;let i=Math.max(U(e.left.velocity),U(e.right.velocity),e.rider?U(e.rider.velocity):0),a=Math.min(Ne,Math.max(1,Math.ceil(i*r/(11*.4)))),o=r/a;for(let r=0;r<a;r++){let r=et(e);if(e.outcome===`riding`){e.ducking=n.duck,st(e,n,o);let t=!!n.right-+!!n.left,r=!e.left.grounded&&!e.right.grounded;r&&e.wasGrounded&&(e.leanLock=t),t!==e.leanLock&&(e.leanLock=0),e.wasGrounded=!r,e.touchedDown||=!r,r&&(t!==0&&e.leanLock===0&&e.touchedDown?dt(e,t,o):ut(e,o)),gt(e)}rt(e.left,o),rt(e.right,o),ot(e.left,e.right),it(e.left,t,11,o),it(e.right,t,11,o);let i=G(e.left,e.right);for(let t of[e.left,e.right]){let e=t.velocity.x*i.x+t.velocity.y*i.y;t.spin+=e/11*o}let a=ft(e),s=pt(e.angle,a);if(e.angle=a,e.left.grounded||e.right.grounded?e.groundTurn+=s:(e.airTurn+=s,e.air<=H&&(e.groundTurn+=s)),e.outcome===`riding`){let t=et(e);e.distance+=l(r,t)}if(e.rider)rt(e.rider,o),it(e.rider,t,je,o);else{let n=e.ducking?Ae:I,r=nt(e.left.position,e.right.position,{x:n.x*e.facing,y:n.y});if(at(t,r,je)){let t=W(e.left.velocity,e.right.velocity,.5);e.rider=Ze(r,{x:t.x,y:t.y-250}),e.outcome=`crashed`,e.events.push({kind:`crash`})}}}let s=et(e);if(e.outcome===`riding`&&(e.topSpeed=Math.max(e.topSpeed,tt(e))),e.left.grounded||e.right.grounded){if(e.outcome===`riding`){e.air>Ue&&e.events.push({kind:`land`,strength:Math.min(1,e.air/1.2),air:e.air});let t=mt(e.airTurn,Ie);if(t>0){let n=e.airTurn*e.facing>0?`frontflip`:`backflip`;e.events.push({kind:`trick`,trick:{kind:n,count:t}})}mt(e.groundTurn)>0&&(e.events.push({kind:`trick`,trick:{kind:`loop`}}),e.groundTurn-=Math.sign(e.groundTurn)*Math.PI*2)}e.air=0,e.airTurn=0,e.lastGroundY=s.y}else e.outcome===`riding`&&(e.air+=r,e.longestAir=Math.max(e.longestAir,e.air),e.air>H&&(e.groundTurn=0));e.outcome===`crashed`&&(e.crashedFor+=r),e.jumpBuffer=Math.max(0,e.jumpBuffer-r);let c=e.trail[e.trail.length-1];l(c,s)>6&&(e.trail.push(s),e.trail.length>Ye&&e.trail.shift());let u=Math.max(t.bottom,e.startY)+Je,d=s.y-e.lastGroundY>qe&&!Oe(t,s);(s.y>u||d)&&(e.outcome=`fell`)}function vt(e){return e.outcome===`fell`||e.crashedFor>Ke}function K(e){return W(e.left,e.right,.5)}function yt(e){return{left:{x:e.x-23,y:e.y},right:{x:e.x+23,y:e.y},leftSpin:0,rightSpin:0,facing:1,ducking:!1,rider:null,riderSpin:0}}function bt(e){return{left:{...e.left.position},right:{...e.right.position},leftSpin:e.left.spin,rightSpin:e.right.spin,facing:e.facing,ducking:e.ducking,rider:e.rider?{...e.rider.position}:null,riderSpin:e.crashedFor*9}}function xt(e,t,n){return{left:W(e.left,t.left,n),right:W(e.right,t.right,n),leftSpin:e.leftSpin+(t.leftSpin-e.leftSpin)*n,rightSpin:e.rightSpin+(t.rightSpin-e.rightSpin)*n,facing:t.facing,ducking:t.ducking,rider:t.rider?W(e.rider??t.rider,t.rider,n):null,riderSpin:e.riderSpin+(t.riderSpin-e.riderSpin)*n}}var q=n(),St=`#e03131`,Ct=`#f76707`,J=`var(--canvas-ink)`;function wt(e){let{x:t,spin:n}=e;return(0,q.jsxs)(`g`,{transform:`translate(${t} 0) rotate(${n*180/Math.PI})`,children:[(0,q.jsx)(`circle`,{r:10,fill:`none`,stroke:J,strokeWidth:2.5}),(0,q.jsx)(`path`,{d:`M -9 0 L 9 0 M 0 -9 L 0 9`,stroke:J,strokeWidth:1,opacity:.6})]})}function Tt(e){let{rearSpin:t,frontSpin:n,riding:r,boosting:i,ducking:a}=e,o={x:-3,y:2},s=t*.6,c=e=>({x:o.x+Math.cos(s+e)*6,y:o.y+Math.sin(s+e)*6}),l=c(0),u=c(Math.PI),d=a?{x:-7,y:-17}:{x:-7,y:-20},f=a?{x:6,y:-23}:{x:4,y:-34},p=a?Ae:I,m=a?`M 6 -24 L -7 -23 L -12 -19`:`M 5 -33 L -8 -31 L -13 -27`,ee=e=>{let t={x:(d.x+e.x)/2+6,y:(d.y+e.y)/2-3};return`M ${d.x} ${d.y} L ${t.x} ${t.y} L ${e.x} ${e.y}`};return(0,q.jsxs)(`g`,{strokeLinecap:`round`,strokeLinejoin:`round`,fill:`none`,children:[i&&(0,q.jsx)(`path`,{d:`M -30 -19 L ${-44-(Math.sin(t*7)+1)*5} -16 L -30 -13 Z`,fill:Ct,stroke:Ct,strokeWidth:1.5}),(0,q.jsx)(`rect`,{x:-30,y:-19,width:16,height:6,rx:3,fill:`var(--canvas-bg)`,stroke:J,strokeWidth:2}),(0,q.jsx)(wt,{x:-23,spin:t}),(0,q.jsx)(wt,{x:23,spin:n}),r&&(0,q.jsx)(`path`,{d:ee(u),stroke:J,strokeWidth:2.5,opacity:.45}),(0,q.jsx)(`path`,{d:`M -23 0 L ${o.x} ${o.y} L 14 -16 L 23 0 M -23 0 L -8 -17 L ${o.x} ${o.y} M -12 -18 L -4 -18 M 14 -16 L 12 -23 L 18 -24`,stroke:J,strokeWidth:2.5}),r&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`path`,{d:`${ee(l)} M ${d.x} ${d.y} L ${f.x} ${f.y} L 16 -23`,stroke:J,strokeWidth:2.5}),(0,q.jsx)(`circle`,{cx:p.x,cy:p.y,r:6,fill:`var(--canvas-bg)`,stroke:J,strokeWidth:2.5}),(0,q.jsx)(`path`,{d:m,stroke:`#e03131`,strokeWidth:3})]})]})}function Et(){return(0,q.jsxs)(`g`,{strokeLinecap:`round`,fill:`none`,stroke:J,strokeWidth:2.5,children:[(0,q.jsx)(`circle`,{r:6,fill:`var(--canvas-bg)`}),(0,q.jsx)(`path`,{d:`M 0 6 L 0 20 M 0 11 L -9 16 M 0 11 L 9 14 M 0 20 L -6 30 M 0 20 L 7 29`}),(0,q.jsx)(`path`,{d:`M -3 6 L -14 9`,stroke:St,strokeWidth:3})]})}function Dt(e,t){let n=[e[0]];for(let r=1;r<e.length;r++){let i=e[r-1],a=e[r],o=Math.ceil(l(i,a)/t);for(let e=1;e<=o;e++){let t=e/o;n.push({x:i.x+(a.x-i.x)*t,y:i.y+(a.y-i.y)*t})}}return n}function Ot(e){let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x),i=Math.max(i,a.y);return{minX:t,minY:n,maxX:r,maxY:i}}function kt(e,t,n,r){let i=[],a=!1;for(let o of e){let e=Ot(o);if(!(Math.min(t.x,n.x)-r<=e.maxX&&Math.max(t.x,n.x)+r>=e.minX&&Math.min(t.y,n.y)-r<=e.maxY&&Math.max(t.y,n.y)+r>=e.minY)){i.push(o);continue}let s=[],c=!1;for(let e of Dt(o,r/2))u(e,t,n)<=r?(c=!0,s.length>1&&i.push(s),s=[]):s.push(e);if(!c){i.push(o);continue}a=!0,s.length>1&&i.push(s)}return a?i:e}function At(e,t){let n=e;for(let e of t)for(let t=0;t<e.points.length;t++)n=kt(n,e.points[Math.max(0,t-1)],e.points[t],e.radius);return n}var jt=260,Mt=2.2,Nt={smoke:-60,dust:500,spark:900};function Y(e,t,n,r,i,a,o,s){for(let c=0;c<r;c++){let r=Math.random()*Math.PI*2,c=Math.random()*a;e.push({kind:t,x:n.x+(Math.random()-.5)*4,y:n.y+(Math.random()-.5)*4,vx:i.x+Math.cos(r)*c,vy:i.y+Math.sin(r)*c,age:0,life:o*(.6+Math.random()*.8),size:s*(.7+Math.random()*.6)})}e.length>jt&&e.splice(0,e.length-jt)}function Pt(e,t){let n=0;for(let r of e)r.age+=t,!(r.age>=r.life)&&(r.vx*=1-Mt*t,r.vy=r.vy*(1-Mt*t)+Nt[r.kind]*t,r.x+=r.vx*t,r.y+=r.vy*t,e[n++]=r);e.length=n}var X=.05;function Ft(e,t){let n=e.createBuffer(1,e.sampleRate*t,e.sampleRate),r=n.getChannelData(0);for(let e=0;e<r.length;e++)r[e]=Math.random()*2-1;return n}function It(e,t){let n=e.createBufferSource();return n.buffer=t,n.loop=!0,n.start(),n}function Lt(e){let t=typeof window>`u`?void 0:window.AudioContext??window.webkitAudioContext;if(!t)return null;let n=new t;n.resume().catch(()=>void 0);let r=n.createGain();r.gain.value=e?0:.6,r.connect(n.destination);let i=Ft(n,2),a=n.createBiquadFilter();a.type=`lowpass`,a.frequency.value=300;let o=n.createGain();o.gain.value=0,It(n,i).connect(a).connect(o).connect(r);let s=n.createOscillator();s.type=`sawtooth`,s.frequency.value=70;let c=n.createBiquadFilter();c.type=`lowpass`,c.frequency.value=700;let l=n.createGain();l.gain.value=0,s.connect(c).connect(l).connect(r),s.start();let u=n.createBiquadFilter();u.type=`bandpass`,u.frequency.value=1800,u.Q.value=.7;let d=n.createGain();d.gain.value=0,It(n,i).connect(u).connect(d).connect(r);let f=(e,t,i,a)=>{let o=n.currentTime,s=n.createOscillator();s.type=`sine`,s.frequency.setValueAtTime(e,o),s.frequency.exponentialRampToValueAtTime(t,o+a);let c=n.createGain();c.gain.setValueAtTime(i,o),c.gain.exponentialRampToValueAtTime(.001,o+a),s.connect(c).connect(r),s.start(o),s.stop(o+a)},p=(e,t,a)=>{let o=n.currentTime,s=n.createBufferSource();s.buffer=i;let c=n.createBiquadFilter();c.type=`lowpass`,c.frequency.value=e;let l=n.createGain();l.gain.setValueAtTime(t,o),l.gain.exponentialRampToValueAtTime(.001,o+a),s.connect(c).connect(l).connect(r),s.start(o),s.stop(o+a)};return{update:({speed:e,grounded:t,boosting:r,running:i})=>{let c=n.currentTime,u=Math.min(1,e/1500);o.gain.setTargetAtTime(i&&t?.05+u*.25:0,c,X),a.frequency.setTargetAtTime(250+u*1400,c,X);let f=i&&r;l.gain.setTargetAtTime(f?.1:0,c,X),s.frequency.setTargetAtTime(60+u*90,c,X),d.gain.setTargetAtTime(f?.18:0,c,X)},land:e=>{f(140,45,.25+e*.45,.25),p(900,.15+e*.2,.18)},jump:()=>{f(180,520,.3,.14),p(2400,.08,.1)},trick:()=>{let e=n.currentTime;[660,990].forEach((t,i)=>{let a=e+i*.09,o=n.createOscillator();o.type=`triangle`,o.frequency.setValueAtTime(t,a);let s=n.createGain();s.gain.setValueAtTime(.001,e),s.gain.setValueAtTime(.18,a),s.gain.exponentialRampToValueAtTime(.001,a+.22),o.connect(s).connect(r),o.start(a),o.stop(a+.24)})},crash:()=>{p(1400,.6,.6),f(110,35,.7,.45)},setMuted:e=>{r.gain.setTargetAtTime(e?0:.6,n.currentTime,X)},close:()=>{n.close().catch(()=>void 0)}}}var Rt=1/120,zt=.05,Bt=5,Vt=.25,Ht=260,Z=48,Ut={x:-32,y:-16},Wt=100,Gt=150,Kt=50,qt=1,Jt=1.4,Yt=40,Xt=22;function Zt(e){return e.lift+e.age/Jt*Yt}function Qt(e){if(e.kind===`loop`)return`Loop!`;let t=e.kind===`backflip`?`Backflip`:`Frontflip`;return e.count>1?`${e.count}× ${t}!`:`${t}!`}function $t(e){return e.kind===`loop`?Gt:Wt*e.count*e.count}function en(){let e=0,t=null,n={bike:null,pose:null,blendFrom:null,controls:{...Xe},particles:[],callouts:[],score:0,running:!1,following:!0,returning:!1,play(e,r){t??=Lt(r),n.bike=$e(e),n.pose=bt(n.bike),n.blendFrom=null,n.returning=!1,n.following=!0,n.running=!0,n.score=0,n.callouts=[]},stop(e){let r=n.bike,i=r?{distance:r.distance,topSpeed:r.topSpeed,longestAir:r.longestAir,score:n.score,outcome:e}:null;return n.bike=null,n.pose=null,n.controls={...Xe},t?.update({speed:0,grounded:!1,boosting:!1,running:!1}),n.returning=n.following,n.running=!1,i},setMuted(e){t?.setMuted(e)},close(){t?.close(),t=null},tick(t,r,a,o,s){let c=Math.min(zt,t),l=n.bike,u=null;if(l&&n.running){for(e+=c;e>=Rt;)n.blendFrom=bt(l),_t(l,r,n.controls,Rt),e-=Rt;let t=bt(l);if(n.pose=xt(n.blendFrom??t,t,e/Rt),i(l,t),vt(l))return{camera:null,ended:n.stop(l.outcome===`fell`?`fell`:`crashed`),moved:!1};!n.following&&tn(K(n.pose),a,o)&&(n.following=!0),n.following&&(u=nn(l,n.pose))}else e=0,n.returning&&s&&(u=s);let d=null;if(u){let e=1-Math.exp(-c*Bt),t=a.width/2-u.x*o.zoom-o.x,r=a.height/2-u.y*o.zoom-o.y;!n.running&&Math.hypot(t,r)<1&&(n.returning=!1),d={...o,x:o.x+t*e,y:o.y+r*e}}if(n.particles.length>0&&Pt(n.particles,c),n.callouts.length>0){for(let e of n.callouts)e.age+=c;n.callouts=n.callouts.filter(e=>e.age<Jt)}return{camera:d,ended:null,moved:n.running||n.particles.length>0||n.callouts.length>0}}};function r(e,t,r){n.score+=t;let i=K(r),a=0,o=n.callouts.map(Zt).sort((e,t)=>e-t);for(let e of o)e<a+Xt&&(a=Math.max(a,e+Xt));n.callouts.push({text:`${e} +${t}`,at:{x:i.x,y:i.y-60},age:0,lift:a})}function i(e,i){let a=n.particles,o=n.controls.boost&&e.outcome===`riding`;if(o){let t=nt(i.left,i.right,{x:Ut.x*e.facing,y:Ut.y}),n={x:(e.left.velocity.x+e.right.velocity.x)*.15,y:(e.left.velocity.y+e.right.velocity.y)*.15};Y(a,`smoke`,t,2,n,90,.9,7),Y(a,`spark`,t,1,n,160,.25,2.5)}for(let n of e.events)if(n.kind===`jump`){t?.jump();for(let e of[i.left,i.right])Y(a,`dust`,{x:e.x,y:e.y+11},4,{x:0,y:-40},120,.45,3.5)}else if(n.kind===`trick`)t?.trick(),r(Qt(n.trick),$t(n.trick),i);else if(n.kind===`land`){n.air>=qt&&r(`Big air ${n.air.toFixed(1)}s`,Math.round(n.air*Kt),i),t?.land(n.strength);for(let e of[i.left,i.right])Y(a,`dust`,{x:e.x,y:e.y+11},6,{x:0,y:-80},160+n.strength*200,.6,4)}else t?.crash(),Y(a,`dust`,i.rider??K(i),18,{x:0,y:-120},320,.8,5);e.events.length=0,t?.update({speed:tt(e),grounded:e.left.grounded||e.right.grounded,boosting:o,running:e.outcome===`riding`})}return n}function tn(e,t,n){let r=e.x*n.zoom+n.x,i=e.y*n.zoom+n.y;return r<Z||i<Z||r>t.width-Z||i>t.height-Z}function nn(e,t){let n=K(t),r={x:(e.left.velocity.x+e.right.velocity.x)/2,y:(e.left.velocity.y+e.right.velocity.y)/2},i=Math.min(1,Ht/(Math.hypot(r.x,r.y)*Vt||1));return{x:n.x+r.x*Vt*i,y:n.y+r.y*Vt*i}}var rn=e=>Math.round(e/50),an=e=>Math.round(e/10);function Q(e){let{label:t,value:n,fresh:r}=e;return(0,q.jsxs)(`span`,{className:`flex items-baseline gap-1`,children:[(0,q.jsx)(`span`,{className:`tabular-nums ${r?`font-semibold text-[var(--canvas-selection)]`:`text-[var(--chrome-fg-900)]`}`,children:n}),(0,q.jsx)(`span`,{className:`text-[var(--chrome-fg-500)]`,children:t})]})}function on(e){let{live:t,last:n,best:r,newBest:i,hint:a}=e;return(0,q.jsx)(`div`,{className:`pointer-events-none flex flex-col items-center ${ae}`,children:(0,q.jsxs)(`div`,{"data-overlay":!0,"data-ride-hud":!0,onPointerDown:e=>e.stopPropagation(),className:`pointer-events-auto flex h-8 items-center gap-3 rounded-xl px-3 text-[12px] text-[var(--chrome-fg-600)] ${_e}`,children:[t&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Q,{label:`km/h`,value:String(an(t.speed))}),(0,q.jsx)(Q,{label:`m`,value:String(rn(t.distance))}),(0,q.jsx)(Q,{label:`s air`,value:t.longestAir.toFixed(1)}),(0,q.jsx)(Q,{label:`pts`,value:String(t.score)})]}),!t&&n&&(0,q.jsxs)(q.Fragment,{children:[(i.distance||i.score)&&(0,q.jsx)(`span`,{className:`font-semibold text-[var(--canvas-selection)]`,children:`New best!`}),(0,q.jsx)(Q,{label:`m last`,value:String(rn(n.distance))}),n.score>0&&(0,q.jsx)(Q,{label:`pts`,value:String(n.score)}),(0,q.jsx)(Q,{label:`m best`,value:String(rn(r.distance)),fresh:i.distance}),r.score>0&&(0,q.jsx)(Q,{label:`pts best`,value:String(r.score),fresh:i.score})]}),a&&(0,q.jsx)(`span`,{className:`text-[var(--chrome-fg-500)]`,children:a})]})})}function $(e){let{label:t,title:n,active:r,onClick:i,children:a}=e;return(0,q.jsx)(`button`,{type:`button`,"aria-label":t,"aria-pressed":r,title:n,onClick:i,className:`flex h-9 min-w-9 cursor-pointer touch-none select-none items-center justify-center rounded-lg px-2 transition-colors ${r?`bg-[var(--canvas-selection)]/15 text-[var(--canvas-selection)]`:`text-[var(--chrome-fg-600)] hover:bg-[var(--chrome-hover)] hover:text-[var(--chrome-fg-900)]`}`,children:a})}function sn(e){let{inkTool:t,hasDrawings:n,running:r,following:i,muted:a}=e,{onInkTool:o,onResetDrawings:s,onPlay:c,onStop:l}=e,{onFollow:u,onToggleMuted:d,onExit:f,onHelp:p}=e;return(0,q.jsxs)(`div`,{"data-overlay":!0,"data-ride-hud":!0,onPointerDown:e=>e.stopPropagation(),onDoubleClick:e=>e.stopPropagation(),className:`pointer-events-auto absolute bottom-[calc(1rem+env(safe-area-inset-bottom))] left-1/2 flex -translate-x-1/2 items-center gap-1 rounded-xl p-1 ${_e}`,children:[(0,q.jsx)($,{label:`Pen`,title:`Pen (P) — ride mode drawings aren't saved`,active:t===`pen`,onClick:()=>o(`pen`),children:(0,q.jsx)(pe,{size:18,stroke:1.75})}),(0,q.jsx)($,{label:`Eraser`,title:`Eraser (E)`,active:t===`eraser`,onClick:()=>o(`eraser`),children:(0,q.jsx)(de,{size:18,stroke:1.75})}),n&&(0,q.jsx)($,{label:`Reset drawings`,title:`Clear ride drawings and bring back anything erased`,onClick:s,children:(0,q.jsx)(le,{size:18,stroke:1.75})}),(0,q.jsx)(`span`,{className:`mx-1 h-5 w-px bg-[var(--chrome-ring)]`}),(0,q.jsxs)(`button`,{type:`button`,"data-testid":`ride-play`,"aria-label":r?`Stop`:`Play`,title:r?`Back to the start`:`Play (Space)`,onClick:r?l:c,className:`flex h-9 cursor-pointer items-center gap-1.5 rounded-lg bg-[var(--canvas-selection)] px-3 text-[13px] font-medium text-white transition-opacity hover:opacity-90`,children:[r?(0,q.jsx)(y,{size:14}):(0,q.jsx)(he,{size:14}),r?`Stop`:`Play`]}),r&&!i&&(0,q.jsx)($,{label:`Follow the bike`,title:`Follow the bike`,onClick:u,children:(0,q.jsx)(fe,{size:18,stroke:1.75})}),(0,q.jsx)(`span`,{className:`mx-1 h-5 w-px bg-[var(--chrome-ring)]`}),(0,q.jsx)($,{label:a?`Unmute`:`Mute`,title:a?`Sound off`:`Sound on`,onClick:d,children:a?(0,q.jsx)(xe,{size:18,stroke:1.75}):(0,q.jsx)(Se,{size:18,stroke:1.75})}),(0,q.jsx)($,{label:`How to play`,title:`How to play (?)`,onClick:p,children:(0,q.jsx)(g,{size:18,stroke:1.75})}),(0,q.jsx)($,{label:`Exit ride mode`,title:`Exit ride mode (Esc)`,onClick:f,children:(0,q.jsx)(me,{size:18,stroke:1.75})})]})}var cn=(0,T.memo)(sn),ln={"←":v,"→":ue,"↑":_,"↓":ce};function un(e){let t=ln[e.name];return(0,q.jsx)(`kbd`,{className:`flex h-6 min-w-6 items-center justify-center rounded-md bg-[var(--chrome-hover)] px-1.5 text-[11px] text-[var(--chrome-fg-600)] ring-1 ring-[var(--chrome-ring)]`,children:t?(0,q.jsx)(t,{size:13,stroke:2}):e.name})}var dn=[[[[`Space`],`Start playing`],[[`←`,`→`],`Drive`],[[`↑`],`Jump`],[[`R`],`Restart`],[[`B`],`Move bike to cursor`],[[`P`],`Pen`],[[`E`],`Eraser`]],[[[`↓`],`Duck`],[[`Shift`],`Boost`],[[`←`,`→`],`Flip, in the air`],[[`⌘`,`Z`],`Undo a stroke`],[[`?`],`These shortcuts`],[[`Esc`],`Leave ride mode`]]];function fn(){return(0,q.jsxs)(`svg`,{viewBox:`0 0 420 96`,className:`h-24 w-full`,"aria-hidden":!0,children:[(0,q.jsx)(`path`,{d:`M 0 82 L 150 82 Q 250 82 300 40`,fill:`none`,stroke:`var(--canvas-selection)`,strokeWidth:3,strokeLinecap:`round`}),(0,q.jsx)(`g`,{transform:`translate(110 71)`,children:(0,q.jsx)(Tt,{rearSpin:0,frontSpin:0,riding:!0,boosting:!1,ducking:!1})})]})}var pn=(0,T.memo)(function(e){let{open:t,onClose:n}=e;return(0,q.jsx)(C,{open:t,onOpenChange:e=>{e||n()},children:(0,q.jsxs)(x,{children:[(0,q.jsx)(b,{"data-overlay":!0,className:`fixed inset-0 z-50 bg-gray-900/15`}),(0,q.jsxs)(S,{"data-overlay":!0,"data-testid":`ride-guide`,onKeyDown:e=>{e.stopPropagation(),e.key===`Escape`&&(e.preventDefault(),n())},className:`fixed left-1/2 top-1/2 z-50 flex w-[min(480px,92vw)] overflow-hidden -translate-x-1/2 -translate-y-1/2 flex-col gap-4 rounded-2xl bg-[var(--chrome-popup)] p-5 outline-none ring-1 ring-[var(--chrome-ring)]`,children:[(0,q.jsx)(`div`,{className:`-mx-5 -mt-5 rounded-t-2xl bg-[var(--chrome-hover)] px-5 pt-4`,children:(0,q.jsx)(fn,{})}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,q.jsx)(w,{className:`text-[15px] font-medium text-[var(--chrome-fg-900)]`,children:`Ride your canvas`}),(0,q.jsx)(ye,{className:`text-[13px] leading-relaxed text-[var(--chrome-fg-500)]`,children:`Nothing you draw or erase changes your work.`})]}),(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-x-6`,children:dn.map((e,t)=>(0,q.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(([e,t])=>(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[13px] text-[var(--chrome-fg-600)]`,children:[(0,q.jsx)(`span`,{children:t}),(0,q.jsx)(`span`,{className:`flex gap-1`,children:e.map(e=>(0,q.jsx)(un,{name:e},e))})]},t))},t))}),(0,q.jsx)(ve,{className:`h-9 w-full cursor-pointer rounded-xl bg-[var(--chrome-fg-900)] text-[13px] font-medium text-[var(--chrome-popup)] outline-none transition-opacity hover:opacity-90 active:scale-[0.99]`,children:`Start Playing`})]})]})})}),mn=new Set([`ArrowLeft`,`KeyA`]),hn=new Set([`ArrowRight`,`KeyD`]),gn=new Set([`ArrowUp`,`KeyW`,`Space`]),_n=new Set([`ShiftLeft`,`ShiftRight`]),vn=new Set([`ArrowDown`,`KeyS`]),yn=new Set([`Equal`,`Minus`,`Digit0`,`Digit1`]);function bn(e){return mn.has(e)?`left`:hn.has(e)?`right`:_n.has(e)?`boost`:vn.has(e)?`duck`:null}function xn(e,t,n){let r=(0,T.useRef)(t);r.current=t;let i=(0,T.useRef)(n);i.current=n,(0,T.useEffect)(()=>{let t=t=>{if(i.current||oe(t.target))return;let n=t.metaKey||t.ctrlKey;if(n&&yn.has(t.code)||t.shiftKey&&!n&&t.code===`KeyR`)return;t.stopImmediatePropagation();let a=r.current;if(t.key===`Escape`){t.preventDefault(),a.escape();return}if(n&&t.code===`KeyZ`){t.preventDefault(),a.undo();return}if(!n&&t.code===`KeyP`){a.pickTool(`pen`);return}if(!n&&t.code===`KeyE`){a.pickTool(`eraser`);return}if(!n&&t.code===`KeyB`){a.placeBike();return}if(t.key===`?`){t.preventDefault(),a.help();return}let o=e.bike;if(!n&&t.code===`KeyR`){t.preventDefault(),t.repeat||a.restart();return}if(t.code===`Space`&&!e.running){t.preventDefault(),t.repeat||a.play();return}if(!e.running||!o)return;let s=bn(t.code);if(!(!gn.has(t.code)&&!s)){if(t.preventDefault(),t.repeat||(e.following=!0),s){e.controls[s]=!0;return}t.repeat||ht(o)}},n=t=>{let n=bn(t.code);n&&(e.controls[n]=!1)},a=()=>{e.controls={...Xe}};return window.addEventListener(`keydown`,t,!0),window.addEventListener(`keyup`,n,!0),window.addEventListener(`blur`,a),()=>{window.removeEventListener(`keydown`,t,!0),window.removeEventListener(`keyup`,n,!0),window.removeEventListener(`blur`,a)}},[e])}var Sn=`koboyo.ride-muted`,Cn=`koboyo.ride-guide-seen`,wn={smoke:`#adb5bd`,dust:`#b08968`,spark:`#f76707`},Tn=`var(--canvas-selection)`,En=12,Dn=50,On=3,kn=new WeakMap;function An(e){return e.map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `)}var jn=(0,T.memo)(function(e){let{ink:t,cuts:n,inkWidth:r}=e;return(0,q.jsxs)(q.Fragment,{children:[n.map((e,t)=>(0,q.jsx)(`path`,{d:An(e.points.length>1?e.points:[e.points[0],e.points[0]]),fill:`none`,stroke:`var(--canvas-bg)`,strokeWidth:e.radius*2,strokeLinecap:`round`,strokeLinejoin:`round`},t)),t.map((e,t)=>(0,q.jsx)(`path`,{"data-testid":`ride-ink`,d:An(e),fill:`none`,stroke:Tn,strokeWidth:r,vectorEffect:`non-scaling-stroke`,strokeLinecap:`round`,strokeLinejoin:`round`},t))]})});function Mn(e,t){return e.map((e,n)=>{let r=h(e,t);return`${n===0?`M`:`L`} ${r.x} ${r.y}`}).join(` `)}function Nn(e,t){let n=s(e);return e.type!==`arrow`&&e.type!==`line`?[n]:[n,...be(e,t)]}function Pn(){let e=te(),t=re(),n=ee(e=>e.viewport),r=ee(e=>e.shapes),i=(0,T.useRef)(null),[a]=(0,T.useState)(()=>kn.get(e)),o=(0,T.useRef)(a?.start??null),[s]=(0,T.useState)(en),c=(0,T.useRef)(null),u=(0,T.useRef)(null),d=(0,T.useRef)(null),p=(0,T.useRef)(0),m=(0,T.useRef)(null),ae=(0,T.useRef)([]),[g,se]=(0,T.useState)(!1),[_,ce]=(0,T.useState)(!0),le=(0,T.useRef)(_);le.current=_;let[v,ue]=(0,T.useState)(null),[y,de]=(0,T.useState)(a?.best??{distance:0,score:0}),[fe,pe]=(0,T.useState)({distance:!1,score:!1}),me=(0,T.useRef)(y);me.current=y;let[he,_e]=(0,T.useState)(()=>ge.getString(Sn)===`1`),b=(0,T.useMemo)(()=>Te(r),[r]),[x,S]=(0,T.useState)(()=>({ink:a?.ink??[],cuts:a?.cuts??[],lines:a?At(b,a.cuts):b})),{ink:C,cuts:ve}=x,[w,ye]=(0,T.useState)(`pen`),[be,xe]=(0,T.useState)(null),[Se,E]=(0,T.useState)(()=>ge.getString(Cn)!==`1`),[,D]=(0,T.useState)(0);(0,T.useEffect)(()=>{S(e=>e.lines===b&&e.cuts.length===0?e:{...e,lines:At(b,e.cuts)})},[b]);let O=(0,T.useMemo)(()=>Ee(x.lines,C),[x.lines,C]),k=(0,T.useRef)(x),A=(0,T.useRef)(b);A.current=b,k.current=x;let j=(0,T.useCallback)(()=>{let e=ae.current;e.push(k.current),e.length>Dn&&e.shift()},[]),M=(0,T.useRef)(O);M.current=O;let N=(0,T.useCallback)(e=>{s.following=e,ce(e)},[s]),Ce=(0,T.useCallback)(()=>{_e(e=>{let t=!e;return ge.setString(Sn,t?`1`:`0`),s.setMuted(t),t})},[s]);(0,T.useEffect)(()=>()=>s.close(),[s]),(0,T.useEffect)(()=>()=>{kn.set(e,{ink:k.current.ink,cuts:k.current.cuts,start:o.current,best:me.current})},[e]),(0,T.useLayoutEffect)(()=>{let t=i.current;if(!t)return;let n=t.getBoundingClientRect(),r=e.getState().viewport,a=e=>e.x>=0&&e.y>=0&&e.x<=n.width&&e.y<=n.height,s=ie.at&&{x:ie.at.x-n.left,y:ie.at.y-n.top};if(s&&a(s)){o.current=ne(s,r),D(e=>e+1);return}let c=o.current;c&&a(h(c,r))||(o.current=ne({x:n.width*.3,y:n.height*.4},r),D(e=>e+1))},[e]),(0,T.useEffect)(()=>{e.getState().setSelectedIds(new Set)},[e]),(0,T.useEffect)(()=>{let e=e=>{oe(e.target)||e.stopImmediatePropagation()};return window.addEventListener(`paste`,e,!0),window.addEventListener(`cut`,e,!0),()=>{window.removeEventListener(`paste`,e,!0),window.removeEventListener(`cut`,e,!0)}},[]);let P=(0,T.useCallback)(()=>{let e=o.current;e&&(s.play(e,he),N(!0),se(!0),pe({distance:!1,score:!1}))},[s,he,N]),F=(0,T.useCallback)(e=>{if(e){let t=me.current,n={distance:e.distance>t.distance&&t.distance>0,score:e.score>t.score&&t.score>0};ue(e),pe(n),de({distance:Math.max(t.distance,e.distance),score:Math.max(t.score,e.score)})}se(!1)},[]),De=(0,T.useCallback)(()=>F(s.stop(`stopped`)),[s,F]),ke=(0,T.useCallback)(()=>{s.running&&F(s.stop(`stopped`)),P()},[s,F,P]),Ae=(0,T.useCallback)(()=>e.getState().setRideMode(!1),[e]),je=(0,T.useCallback)(()=>{s.running&&F(s.stop(`stopped`)),s.controls={...Xe},E(!0)},[s,F]),Me=(0,T.useCallback)(()=>{ge.setString(Cn,`1`),E(!1)},[]);xn(s,{escape:()=>{if(u.current){u.current=null,D(e=>e+1);return}Ae()},undo:()=>{let e=ae.current.pop();e&&S({...e,lines:At(A.current,e.cuts)})},pickTool:ye,placeBike:()=>{let e=m.current;!e||s.running||(o.current=e,D(e=>e+1))},play:P,restart:ke,help:je},Se),(0,T.useEffect)(()=>{let e=i.current?.parentElement;if(!e)return;let t=e=>{e.target instanceof Element&&e.target.closest(`[data-ride-hud]`)||(s.returning=!1,s.running&&s.following&&N(!1))};return e.addEventListener(`pointerdown`,t,!0),e.addEventListener(`wheel`,t,{capture:!0,passive:!0}),()=>{e.removeEventListener(`pointerdown`,t,!0),e.removeEventListener(`wheel`,t,!0)}},[s,N]),(0,T.useEffect)(()=>{let t=0,n=performance.now(),r=a=>{t=requestAnimationFrame(r);let c=(a-n)/1e3;n=a;let l=i.current;if(!l)return;let u=s.tick(c,M.current,{width:l.clientWidth,height:l.clientHeight},e.getState().viewport,o.current);if(u.ended){F(u.ended);return}if(s.following&&!le.current&&N(!0),u.camera){e.getState().setViewport(u.camera);return}u.moved&&D(e=>e+1)};return t=requestAnimationFrame(r),()=>cancelAnimationFrame(t)},[s,e,F,N]);let L=t=>{let n=i.current?.getBoundingClientRect();return ne({x:t.clientX-(n?.left??0),y:t.clientY-(n?.top??0)},e.getState().viewport)},R=(n,r,i)=>{let a=En/e.getState().viewport.zoom,o={x:Math.min(n.x,r.x)-a,y:Math.min(n.y,r.y)-a,width:Math.abs(r.x-n.x)+a*2,height:Math.abs(r.y-n.y)+a*2},s=e.getState().shapes.some(e=>Nn(e,t.text).some(e=>f(e,o)));S(e=>{let t=kt(e.ink,n,r,a);if(!s)return t===e.ink?e:{...e,ink:t};let o=e.cuts[e.cuts.length-1];return{ink:t,cuts:o?.gesture===i?[...e.cuts.slice(0,-1),{...o,points:[...o.points,r]}]:[...e.cuts,{gesture:i,radius:a,points:[n,r]}],lines:kt(e.lines,n,r,a)}})},Ne=()=>{let e=u.current;if(u.current=null,e&&e.points.length>1){let t=e.points;j(),S(e=>({...e,ink:[...e.ink,t]}))}else D(e=>e+1)},Pe=(0,T.useCallback)(()=>N(!0),[N]),Fe=(0,T.useCallback)(()=>{j(),S({ink:[],cuts:[],lines:A.current})},[j]),z=o.current,B=s.bike,V=g?s.pose:z?yt(z):null,Ie=V?K(V):null,H=Ie?h(Ie,n):null,Le=V?Math.atan2(V.right.y-V.left.y,V.right.x-V.left.x):0,Re=V?.rider?h(V.rider,n):null,ze=u.current,Be=g&&B?.outcome===`riding`&&s.controls.boost,Ve=Math.max(1.5,3*n.zoom),He;return He=g?B?.outcome===`crashed`?`Ouch!`:``:O.empty||z&&!Oe(O,z)?`Draw a track under the bike, then press Play`:v?.outcome===`crashed`?`Crashed! Press Play to go again`:v?.outcome===`fell`?`Fell off the world. Press Play to go again`:`Drag the bike, or press B to park it under the cursor. Space to play`,(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{ref:i,"data-testid":`ride-overlay`,className:`absolute inset-0 ${w===`pen`?`cursor-crosshair`:`cursor-none`}`,onPointerDown:e=>{if(e.button!==0)return;e.stopPropagation(),e.currentTarget.setPointerCapture(e.pointerId);let t=L(e);if(w===`pen`)u.current={pointerId:e.pointerId,points:[t]};else{j();let n=++p.current;d.current={pointerId:e.pointerId,last:t,gesture:n},R(t,t,n)}},onPointerMove:t=>{t.buttons<=1&&t.stopPropagation();let n=L(t);m.current=n,w===`eraser`&&xe(n);let r=u.current;if(r&&r.pointerId===t.pointerId){let t=r.points[r.points.length-1],i=On/e.getState().viewport.zoom;l(t,n)>=i&&(r.points.push(n),we(M.current,[t,n]),D(e=>e+1))}else d.current?.pointerId===t.pointerId&&(R(d.current.last,n,d.current.gesture),d.current.last=n)},onPointerUp:e=>{if(u.current?.pointerId===e.pointerId&&Ne(),d.current?.pointerId===e.pointerId){d.current=null;let e=ae.current;e[e.length-1]===k.current&&e.pop()}},onPointerCancel:()=>{u.current=null,d.current=null},onPointerLeave:()=>{m.current=null,xe(null)},onDoubleClick:e=>e.stopPropagation(),onContextMenu:e=>{e.preventDefault(),e.stopPropagation()},onDragOver:e=>{e.preventDefault(),e.stopPropagation()},onDrop:e=>{e.preventDefault(),e.stopPropagation()},children:[(0,q.jsxs)(`svg`,{className:`pointer-events-none absolute inset-0 h-full w-full`,children:[(0,q.jsxs)(`g`,{transform:`translate(${n.x} ${n.y}) scale(${n.zoom})`,children:[(0,q.jsx)(jn,{ink:C,cuts:ve,inkWidth:Ve}),ze&&(0,q.jsx)(`path`,{d:An(ze.points),fill:`none`,stroke:Tn,strokeWidth:Ve,vectorEffect:`non-scaling-stroke`,strokeLinecap:`round`,strokeLinejoin:`round`})]}),w===`eraser`&&be&&(0,q.jsx)(`circle`,{cx:h(be,n).x,cy:h(be,n).y,r:En,fill:`none`,stroke:`var(--chrome-fg-500)`,strokeWidth:1.5}),g&&B&&B.trail.length>1&&(0,q.jsx)(`path`,{d:Mn(B.trail,n),fill:`none`,stroke:`#e03131`,strokeOpacity:.3,strokeWidth:Math.max(1.5,3*n.zoom),strokeLinecap:`round`,strokeLinejoin:`round`}),s.particles.map((e,t)=>{let r=h(e,n),i=e.age/e.life,a=e.kind===`smoke`?1+i*2:1;return(0,q.jsx)(`circle`,{cx:r.x,cy:r.y,r:e.size*a*n.zoom,fill:wn[e.kind],opacity:(1-i)*(e.kind===`smoke`?.45:.8)},t)}),V&&H&&(0,q.jsx)(`g`,{opacity:g?1:.85,transform:`translate(${H.x} ${H.y}) rotate(${Le*180/Math.PI}) scale(${n.zoom*V.facing} ${n.zoom})`,children:(0,q.jsx)(Tt,{rearSpin:V.facing===1?V.leftSpin:-V.rightSpin,frontSpin:V.facing===1?V.rightSpin:-V.leftSpin,riding:!V.rider,boosting:Be,ducking:V.ducking})}),s.callouts.map((e,t)=>{let r=h(e.at,n),i=e.age/Jt;return(0,q.jsx)(`text`,{x:r.x,y:r.y-Zt(e),textAnchor:`middle`,fontSize:16,fontWeight:700,fill:`var(--canvas-selection)`,stroke:`var(--canvas-bg)`,strokeWidth:4,paintOrder:`stroke`,opacity:Math.min(1,(1-i)*2),children:e.text},t)}),V&&Re&&(0,q.jsx)(`g`,{transform:`translate(${Re.x} ${Re.y}) rotate(${V.riderSpin*180/Math.PI}) scale(${n.zoom})`,children:(0,q.jsx)(Et,{})})]}),!g&&H&&(0,q.jsx)(`div`,{"data-ride-hud":!0,"data-testid":`ride-start-handle`,title:`Drag to move the start`,className:`pointer-events-auto absolute cursor-grab touch-none active:cursor-grabbing`,style:{left:H.x-34*n.zoom,top:H.y+(I.y-8)*n.zoom,width:68*n.zoom,height:(11-I.y+8)*n.zoom},onPointerDown:e=>{if(e.stopPropagation(),e.button!==0||!o.current)return;e.currentTarget.setPointerCapture(e.pointerId);let t=L(e);c.current={pointerId:e.pointerId,offset:{x:t.x-o.current.x,y:t.y-o.current.y}}},onPointerMove:e=>{let t=c.current;if(!t||t.pointerId!==e.pointerId)return;e.stopPropagation();let n=L(e);o.current={x:n.x-t.offset.x,y:n.y-t.offset.y},D(e=>e+1)},onPointerUp:()=>{c.current=null},onPointerCancel:()=>{c.current=null},onDoubleClick:e=>e.stopPropagation()}),(0,q.jsx)(on,{live:g&&B?{speed:tt(B),distance:B.distance,longestAir:B.longestAir,score:s.score}:null,last:v,best:y,newBest:fe,hint:He}),(0,q.jsx)(cn,{inkTool:w,hasDrawings:C.length>0||ve.length>0,running:g,following:_,muted:he,onInkTool:ye,onResetDrawings:Fe,onPlay:P,onStop:De,onFollow:Pe,onToggleMuted:Ce,onExit:Ae,onHelp:je})]}),(0,q.jsx)(pn,{open:Se,onClose:Me})]})}export{Pn as RideOverlay};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";import{t as n}from"./jsx-runtime-DKdBMi_L.js";import{E as r,k as i}from"./shapes-CHDGoELO.js";import{_ as a,a as o,b as s,g as c,h as l}from"./editor-CpiNbiMQ.js";function u(e){function t(){document.hidden&&e()}return window.addEventListener(`blur`,e),document.addEventListener(`visibilitychange`,t),()=>{window.removeEventListener(`blur`,e),document.removeEventListener(`visibilitychange`,t)}}var d=e(t(),1),f=n();function p(e){return l(e).selection?.handles?.(e)??{edges:a,corners:c}}var m=`coarse:before:absolute coarse:before:-inset-[18px] coarse:before:content-['']`;function h(e,t,n,r=0){let i=t/2;e.includes(`w`)?i=-r:e.includes(`e`)&&(i=t+r);let a=n/2;return e.includes(`n`)?a=-r:e.includes(`s`)&&(a=n+r),{x:i,y:a}}function g(e,t){return r(e,t)}function _(e,t,n,r){let a=i(e,r);return{x:(a.x+a.width/2-t.x)*n,y:(a.y+a.height/2-t.y)*n}}function v(e,t){let n=g(e,t);return[{x:n.x,y:n.y},{x:n.x+n.width,y:n.y},{x:n.x+n.width,y:n.y+n.height},{x:n.x,y:n.y+n.height}].map(s(e,t).toWorld).reduce((e,t)=>t.y<e.y-.5||Math.abs(t.y-e.y)<=.5&&t.x<e.x?t:e)}var y=[`ew-resize`,`nwse-resize`,`ns-resize`,`nesw-resize`],b={e:0,se:45,s:90,sw:135,w:180,nw:225,n:270,ne:315};function x(e,t){let n=(((b[e]??0)+t)%180+180)%180;return y[Math.round(n/45)%4]}function S(e){let t=o().measurement,[n,r]=(0,d.useState)(()=>g(e,t));return(0,d.useLayoutEffect)(()=>{let n=g(e,t);r(e=>e.x===n.x&&e.y===n.y&&e.width===n.width&&e.height===n.height?e:n)},[e,t]),n}var C=15;function w(e,t){return t===void 0?0:Math.max(0,t-(e-C/2))}function T(e){let{position:t,cursor:n,round:r,testId:i,minHitTop:a,onPointerDown:o,onDoubleClick:s}=e,c=w(t.y,a),l=a===void 0?void 0:Math.min(0,Math.max(-15,a-(t.y+c-C/2)));return(0,f.jsx)(`div`,{"data-testid":i,onPointerDown:o,onDoubleClick:s?e=>{e.stopPropagation(),s()}:void 0,className:`absolute flex h-[15px] w-[15px] -translate-x-1/2 -translate-y-1/2 items-center justify-center coarse:before:absolute coarse:before:-inset-[15px] coarse:before:top-[var(--handle-touch-top,-15px)] coarse:before:content-['']`,style:{left:t.x,top:t.y+c,cursor:n,pointerEvents:`all`,...l===void 0?{}:{"--handle-touch-top":`${l}px`}},children:(0,f.jsx)(`div`,{className:`pointer-events-none h-[9px] w-[9px] border border-[var(--canvas-selection)] bg-white ${r?`rounded-full`:`rounded-[2px]`}`,style:c?{translate:`0 ${-c}px`}:void 0})})}function E(e){let{position:t,onPointerDown:n}=e;return(0,f.jsxs)(`div`,{"data-testid":`sticky-duplicate`,onPointerDown:n,className:`group absolute flex h-[22px] w-[22px] -translate-x-1/2 -translate-y-1/2 items-center justify-center`,style:{left:t.x,top:t.y,cursor:`grab`,pointerEvents:`all`},children:[(0,f.jsx)(`div`,{className:`absolute inset-0 rounded-full bg-[var(--canvas-selection)]/25 opacity-0 transition-opacity group-hover:opacity-100`}),(0,f.jsx)(`div`,{className:`h-[7px] w-[7px] rounded-full bg-[var(--canvas-selection)]`})]})}var D=7,O=10,k=10,A=8,j=12,M=8;function N(){return typeof window<`u`&&window.matchMedia(`(pointer: coarse)`).matches}function P(e){return e?N()?{inward:0,outward:j}:{inward:0,outward:A}:N()?{inward:O,outward:k}:{inward:3,outward:D}}function F(e,t){let n=P(e);if(t===void 0||n.outward<=t)return n;let r=Math.max(0,t);return{inward:n.inward+n.outward-r,outward:r}}function I(e){return 4*e}function L(e){let{edge:t,cursor:n,testId:r,along:i,across:a,inset:o,outwardLimit:s,onPointerDown:c}=e,l=o??(i<24?0:M),{inward:u,outward:d}=F(a<24,s);return(0,f.jsx)(`div`,{"data-testid":r,onPointerDown:c,className:`absolute`,style:{...t===`w`||t===`e`?{top:l,bottom:l,width:u+d,[t===`w`?`left`:`right`]:-d}:{left:l,right:l,height:u+d,[t===`n`?`top`:`bottom`]:-d},cursor:n,pointerEvents:`all`}})}function R(){return N()?20:14}var z=`url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20width%3D'24'%20height%3D'24'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cg%20stroke%3D'white'%20stroke-width%3D'4'%3E%3Cpolyline%20points%3D'23%204%2023%2010%2017%2010'%2F%3E%3Cpath%20d%3D'M20.49%2015a9%209%200%201%201-2.12-9.36L23%2010'%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D'black'%20stroke-width%3D'2'%3E%3Cpolyline%20points%3D'23%204%2023%2010%2017%2010'%2F%3E%3Cpath%20d%3D'M20.49%2015a9%209%200%201%201-2.12-9.36L23%2010'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 12 12, grabbing`;function B(e){let{position:t,onPointerDown:n,testId:r}=e;return(0,f.jsx)(`div`,{"data-testid":r,onPointerDown:n,className:`absolute h-[9px] w-[9px] -translate-x-1/2 -translate-y-1/2 rounded-full border border-[var(--canvas-selection)] bg-white ${m}`,style:{left:t.x,top:t.y,cursor:z,pointerEvents:`all`}})}export{m as a,_ as c,x as d,S as f,u as h,B as i,I as l,p as m,L as n,h as o,g as p,T as r,R as s,E as t,v as u};
@@ -0,0 +1 @@
1
+ import{H as e,P as t,Y as n}from"./shapes-CHDGoELO.js";function r(r){let i=t(r).rawText(r);return e(i)?n(i):i}function i(e){return t(e).kindName(e)}var a=34;function o(e){let t=r(e).replace(/\s+/g,` `).trim();return t?t.length>a?`${t.slice(0,a-1)}…`:t:e.type===`icon`&&e.name?s(e.name):s(i(e))}function s(e){let t=e.replace(/[-_]+/g,` `).trim();return t.charAt(0).toUpperCase()+t.slice(1)}export{r as n,o as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{t}from"./react-lCSYwAWP.js";var n=e(t(),1),r=.32;function i(e,t){return t?e*r:e}function a(e,t){return{onPointerEnter:()=>t(e),onPointerLeave:()=>t(null)}}function o(e,t){e.key===`Escape`&&(e.stopPropagation(),t(),e.currentTarget.blur())}function s(e,t){(0,n.useEffect)(()=>{if(!t)return;let n=e.current;if(!n)return;let r=requestAnimationFrame(()=>{n.focus();let e=window.getSelection();if(e){let t=document.createRange();t.selectNodeContents(n),e.removeAllRanges(),e.addRange(t)}});return()=>cancelAnimationFrame(r)},[e,t])}export{s as i,i as n,a as r,o as t};