@forsion/unit 2.13.5 → 2.13.6

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 (179) hide show
  1. package/README.md +2 -2
  2. package/main.mjs +20 -4
  3. package/package.json +1 -1
  4. package/release.json +6 -5
  5. package/web/assets/{ArtificialView-BD1yHz1N.js → ArtificialView-DHqb9CTL.js} +1 -1
  6. package/web/assets/{AutomationBuilder-B09c-5Bi.js → AutomationBuilder-CzBKmOiw.js} +1 -1
  7. package/web/assets/{CalendarConfigView-Bd-ZDGPO.js → CalendarConfigView-Blw47NCs.js} +1 -1
  8. package/web/assets/CalendarSide-CFSzme3H.js +1 -0
  9. package/web/assets/CalendarView-B8sQfgZt.js +3 -0
  10. package/web/assets/{CapabilityMenu-DyHTEYLr.js → CapabilityMenu-Dzn6RbB1.js} +1 -1
  11. package/web/assets/{Chrome-C7F6fdDp.js → Chrome-owLewFu4.js} +1 -1
  12. package/web/assets/{CodeView-BGOnrGhB.js → CodeView-E18NDilX.js} +3 -3
  13. package/web/assets/{CtxMenuButtons-BYjrbUKS.js → CtxMenuButtons-CAiwQkOK.js} +1 -1
  14. package/web/assets/DashboardGridView-CBbYKcCo.js +25 -0
  15. package/web/assets/EventCard-D9uQe7g4.js +1 -0
  16. package/web/assets/{ExcalidrawCanvas-lwJCN6uB.js → ExcalidrawCanvas-BSOERegJ.js} +1 -1
  17. package/web/assets/{FloatingToc-DO7SH8Ku.js → FloatingToc-iK08Qpjc.js} +1 -1
  18. package/web/assets/GitCloneDialog-DfY0kqhP.js +1 -0
  19. package/web/assets/{HomepageView-CHJEhf9c.js → HomepageView-BCqFe1Ym.js} +3 -3
  20. package/web/assets/{ImageStudioPanels-CgVf0wiq.js → ImageStudioPanels-DdwihAkT.js} +2 -2
  21. package/web/assets/ImageStudioView-gJSYrmu1.js +1 -0
  22. package/web/assets/{InlineAiPanel-CdIPINsA.js → InlineAiPanel-CjYOW0_0.js} +1 -1
  23. package/web/assets/InlineFiles-3g2jMUeA.js +1 -0
  24. package/web/assets/{MarkdownBlock-DSItkLhu.js → MarkdownBlock-DjsGkPZ_.js} +24 -24
  25. package/web/assets/{ModelPill--CU3XTIQ.js → ModelPill-DgyXBsL9.js} +2 -2
  26. package/web/assets/MuseLibraryView-D_HBijmU.js +2 -0
  27. package/web/assets/{MuseView-CvsO62Fo.js → MuseView-BVDlmM6i.js} +3 -3
  28. package/web/assets/{PageHistoryPanel-CDh7nm78.js → PageHistoryPanel-B1EAPZeX.js} +2 -2
  29. package/web/assets/{PdfAnnotator-DafvjP3U.js → PdfAnnotator-bdB9evsY.js} +1 -1
  30. package/web/assets/{PenRow-CEy-s6SF.js → PenRow-DCOIGlfY.js} +1 -1
  31. package/web/assets/PluginToolCard-BXE5vA1h.js +2 -0
  32. package/web/assets/{ProductView-AUqnTwmQ.js → ProductView-l5Q7uBy6.js} +1 -1
  33. package/web/assets/{SettingsPage-B9mmkWaM.js → SettingsPage-fjxfS_Mt.js} +2 -2
  34. package/web/assets/{StudioGuestSurface-OOhRA8nt.js → StudioGuestSurface-360CWUwf.js} +1 -1
  35. package/web/assets/TodoListView-BsPt2GUU.js +1 -0
  36. package/web/assets/{Tooltip-DOYi44eY.js → Tooltip-CuXpWtdJ.js} +1 -1
  37. package/web/assets/UnifiedPage-6xbFLtXT.js +712 -0
  38. package/web/assets/{ViewSelectionBar-WmSWMFsR.js → ViewSelectionBar-C5FDh7fO.js} +2 -2
  39. package/web/assets/{appStore-DDOkzWDA.js → appStore-BskcSDl6.js} +114 -115
  40. package/web/assets/{arrow-up-right-BptN64d-.js → arrow-up-right-DEykpgsH.js} +1 -1
  41. package/web/assets/{astryxBridge-BL56QfEv.js → astryxBridge-B2IZdPvo.js} +1 -1
  42. package/web/assets/automationListSource-Cm09JKkK.js +1 -0
  43. package/web/assets/{boardSurface-CP4HNmcm.js → boardSurface-Dv-aVaUJ.js} +1 -1
  44. package/web/assets/{calendarNavStore-DCi7VBmM.js → calendarNavStore-FKStA7Hh.js} +1 -1
  45. package/web/assets/{canvasPrefs-ArsX3NFO.js → canvasPrefs-CMulOS0k.js} +1 -1
  46. package/web/assets/{chatBoxSurface-DRsDr-MT.js → chatBoxSurface-BR_G6cxG.js} +1 -1
  47. package/web/assets/{chevron-up-ChXNh14u.js → chevron-up-C_EDOZzI.js} +1 -1
  48. package/web/assets/{client-fKy9CWk0.js → client-DD5czSuF.js} +1 -1
  49. package/web/assets/{code-xml-DCCD9eCS.js → code-xml-vTB4LtTf.js} +1 -1
  50. package/web/assets/{codeStudioStore-BgLfCDK2.js → codeStudioStore-OswE1_s0.js} +1 -1
  51. package/web/assets/{contextMenuSurface-BF593l2M.js → contextMenuSurface-DqdYEGuH.js} +1 -1
  52. package/web/assets/{copy-plus-ClKrSgM7.js → copy-plus-CVHqDNny.js} +1 -1
  53. package/web/assets/create-DZWy4zBR.js +14 -0
  54. package/web/assets/{dashboardSurface-C6cbR3oG.js → dashboardSurface-Co4byEQm.js} +1 -1
  55. package/web/assets/dbStore-Bc2lC8ZI.js +2 -0
  56. package/web/assets/deskCapture-BfTzH2aO.js +1 -0
  57. package/web/assets/{diff2html-Di8qIz6O.js → diff2html-0MkNy2ws.js} +1 -1
  58. package/web/assets/{docx-preview-B-URZXdP.js → docx-preview-CwNWZegI.js} +1 -1
  59. package/web/assets/{draft-CBSW5tHx.js → draft-DTzuTatQ.js} +2 -2
  60. package/web/assets/{drawingStore-CGvTqqYW.js → drawingStore-BD5m2eqn.js} +1 -1
  61. package/web/assets/{file-down-Z913cCyQ.js → file-down-Cjo_T6By.js} +1 -1
  62. package/web/assets/{floatingTocSurface-DGwTiqvU.js → floatingTocSurface-D3IIVNnq.js} +1 -1
  63. package/web/assets/{foldActions-DGIPTmE1.js → foldActions-utwZpRrA.js} +1 -1
  64. package/web/assets/{folder-1OJQeDI1.js → folder-DiaFWdCg.js} +1 -1
  65. package/web/assets/{folder-minus-D_j1SwHu.js → folder-minus-DUEOcs12.js} +1 -1
  66. package/web/assets/{folder-plus-DP9sFr26.js → folder-plus-Cmhq0GcR.js} +1 -1
  67. package/web/assets/{gestures-ZhFAENNZ.js → gestures-Bx9M0le5.js} +1 -1
  68. package/web/assets/{git-branch-BMajF2cu.js → git-branch-DzGWffyD.js} +1 -1
  69. package/web/assets/{homeCardStatus-5R7XkxFL.js → homeCardStatus-NAk4A77P.js} +1 -1
  70. package/web/assets/{i18n.generated-DW_l6CkR.js → i18n.generated-D4-Wu9Wh.js} +1 -1
  71. package/web/assets/imageStudio-D67oElIb.js +4 -0
  72. package/web/assets/{index-COzdD7mZ.js → index-3VWZ1rsL.js} +1 -1
  73. package/web/assets/{index-bF04pF8q.js → index-58wBjkHy.js} +1 -1
  74. package/web/assets/{index-Cg1FWM_p.js → index-B9_zH7f5.js} +1 -1
  75. package/web/assets/index-BQrMYjou.js +1 -0
  76. package/web/assets/{index-D-ClOPbg.js → index-BWrWMYua.js} +1 -1
  77. package/web/assets/{index-C--E96Ul.js → index-BdLJBf4-.js} +1 -1
  78. package/web/assets/{index-CI2esW1X.js → index-Bf3W92Hb.js} +1 -1
  79. package/web/assets/{index-B8A3nKeL.js → index-BjmPaLFA.js} +1 -1
  80. package/web/assets/{index-BeW45J9J.js → index-Bv-vJTzF.js} +1 -1
  81. package/web/assets/{index-BnJguNqI.js → index-C7yb62gg.js} +1 -1
  82. package/web/assets/{index-CtRdzpNh.js → index-C9gBBMYv.js} +1 -1
  83. package/web/assets/index-CiQ59Kib.js +1 -0
  84. package/web/assets/{index-DfhEDV2T.js → index-CzTUjEMt.js} +1 -1
  85. package/web/assets/{index-BYKR7EVg.js → index-D4Qx6o3E.js} +1 -1
  86. package/web/assets/{index-jzlU5luC.js → index-DDBcn3UD.js} +1 -1
  87. package/web/assets/{index-CtCYv9bF.js → index-DEADY94l.js} +1 -1
  88. package/web/assets/{index-CWXpOSI2.js → index-DGTKsPAQ.js} +1 -1
  89. package/web/assets/{index-SpegRFQV.js → index-DRwDqvjf.js} +1 -1
  90. package/web/assets/{index-BDZIQnEx.js → index-DexVkoxH.js} +1 -1
  91. package/web/assets/{index-uhvJ8AiJ.js → index-IMOhRWY8.js} +1 -1
  92. package/web/assets/{index-Dr6YmrrT.js → index-XjvpYHIo.js} +1 -1
  93. package/web/assets/{index-fDB1l4d-.js → index-YuejkHoJ.js} +51 -37
  94. package/web/assets/{index-CVLDDD5Z.js → index-pH0266gX.js} +1 -1
  95. package/web/assets/{index-BniT-A2n.js → index-sQl_bGM_.js} +1 -1
  96. package/web/assets/{index-CPfmhZ3Z.js → index-vbNFy5lS.js} +1 -1
  97. package/web/assets/{invitePage-iOT1zBvp.js → invitePage-BT_rFfab.js} +1 -1
  98. package/web/assets/{ipc-SAPDwyQ4.js → ipc-8cxXGSZK.js} +1 -1
  99. package/web/assets/{jszip.min-B3n1FGCb.js → jszip.min-By4OI3XR.js} +1 -1
  100. package/web/assets/launchpad-BX4jQyF4.js +2 -0
  101. package/web/assets/{layout-grid-oIyIGbc5.js → layout-grid-CzxXbCDa.js} +1 -1
  102. package/web/assets/{linkFollow-uke1Xtit.js → linkFollow-J2c0wSgB.js} +4 -4
  103. package/web/assets/{listFold-BeNv2v6M.js → listFold-B_2Xqxn_.js} +1 -1
  104. package/web/assets/{lock-open-D2nMg0ga.js → lock-open-DVWCLSZm.js} +1 -1
  105. package/web/assets/{log-out-D70NCXC4.js → log-out-CdKTS7HC.js} +1 -1
  106. package/web/assets/{magnet-Cqmm97W8.js → magnet-BmVcZ9U4.js} +1 -1
  107. package/web/assets/main-CForzSFD.js +15 -0
  108. package/web/assets/{markdownEditorSurface-zUzFity2.js → markdownEditorSurface-Bs8FJNHu.js} +1 -1
  109. package/web/assets/{mediaPlayer-DB4KUvua.js → mediaPlayer-O9pVRl_k.js} +1 -1
  110. package/web/assets/{message-square-plus-BvUfAAZm.js → message-square-plus-CspBv9iG.js} +1 -1
  111. package/web/assets/{messages-GQUjmbwW.js → messages-CG7ywZ-K.js} +1 -1
  112. package/web/assets/{minimize-2-CMhzL6ZW.js → minimize-2-Bq4vUin-.js} +1 -1
  113. package/web/assets/mobileEntry-CptXQ4Ov.js +13 -0
  114. package/web/assets/modelPickerSurface-C0SkjaPL.js +1 -0
  115. package/web/assets/{nativeDownload-DsGyUSJ5.js → nativeDownload-DlnT8U-y.js} +1 -1
  116. package/web/assets/{nativeSheetMenu--iihXNVd.js → nativeSheetMenu-CVC51DzC.js} +1 -1
  117. package/web/assets/{pageStore-ys8L4rjF.css → pageStore-BC6Z18n7.css} +1 -1
  118. package/web/assets/{pageStore-CyvNZEYX.js → pageStore-D_fKLv-o.js} +7 -7
  119. package/web/assets/{pageTree-Ci2qzrs1.js → pageTree-DtDKozTg.js} +3 -3
  120. package/web/assets/{pen-line-DC3lbEY1.js → pen-line-ho1GgAe2.js} +1 -1
  121. package/web/assets/{pen-tool-DD5_N4lZ.js → pen-tool-CV-FKFEZ.js} +1 -1
  122. package/web/assets/{pencil--sWwxHdP.js → pencil-BgF4Kiqp.js} +1 -1
  123. package/web/assets/{phoneList-DKRMxQHf.js → phoneList-BLVdQcXY.js} +1 -1
  124. package/web/assets/pluginChat-C6t6DWhY.js +2 -0
  125. package/web/assets/{react-b7FrqRQR.js → react-DOzedx9n.js} +1 -1
  126. package/web/assets/recordSurface-C9SRNjy4.js +1 -0
  127. package/web/assets/{redo-2-CqlqhWrI.js → redo-2-DWZTaEz-.js} +1 -1
  128. package/web/assets/{rotate-ccw-D8kni6Ni.js → rotate-ccw-CyZpL7MX.js} +1 -1
  129. package/web/assets/{selectionActions-DIq0xDm8.js → selectionActions-C2a8ImJm.js} +1 -1
  130. package/web/assets/selectionBarSurface-DaXlyy1s.js +1 -0
  131. package/web/assets/{sessionTitle-Ctp4iNKu.js → sessionTitle-BtZ1BteL.js} +1 -1
  132. package/web/assets/settingsPageSurface-Cg8FNZq3.js +1 -0
  133. package/web/assets/{sharePage-CY04XCAf.js → sharePage-vnghra3Q.js} +2 -2
  134. package/web/assets/{shareViewer-DweNF8Ch.js → shareViewer-CWJQHiV-.js} +1 -1
  135. package/web/assets/{star-B0sZEmbj.js → star-ZEpUQwnX.js} +1 -1
  136. package/web/assets/tableSurface-DfEdzVDn.js +1 -0
  137. package/web/assets/{tanguProbe-B8Qv2vcm.js → tanguProbe-BboOas-a.js} +6 -6
  138. package/web/assets/{terminalView-BLGdmdl7.js → terminalView-xp8ARBLi.js} +1 -1
  139. package/web/assets/{type-Dt7RNB9g.js → type-CMyP4cKt.js} +1 -1
  140. package/web/assets/{undo-2-QimgpLBn.js → undo-2-C4ZCsMsx.js} +1 -1
  141. package/web/assets/{unitAccount-DL3jfd84.js → unitAccount-DNxfGo3c.js} +1 -1
  142. package/web/assets/{unitBridge-BSsCy1zP.js → unitBridge-Bq0n1ZM6.js} +1 -1
  143. package/web/assets/{unitCloudTransport-CI_6H0TU.js → unitCloudTransport-CErylgEO.js} +1 -1
  144. package/web/assets/{unitOwnerAccess-CiQ7nD7E.js → unitOwnerAccess-7s-3dfNM.js} +1 -1
  145. package/web/assets/{unitShim-Dl2ksNp-.js → unitShim-BfheyIG8.js} +3 -3
  146. package/web/assets/{upload-Dy7svciS.js → upload-VtCrluEO.js} +1 -1
  147. package/web/assets/userSpaces-BpeYjLni.js +1 -0
  148. package/web/assets/viewportLock-cVUalJAI.js +738 -0
  149. package/web/assets/{zoom-in-DDEtY_Go.js → zoom-in-C7R8s9x-.js} +1 -1
  150. package/web/index.html +2 -2
  151. package/web/assets/CalendarSide-B0RVbOsg.js +0 -1
  152. package/web/assets/CalendarView-BHio-n_r.js +0 -3
  153. package/web/assets/DashboardGridView-CR-R_qV8.js +0 -25
  154. package/web/assets/EventCard-QyYorE1_.js +0 -1
  155. package/web/assets/GitCloneDialog-CbW-RJak.js +0 -1
  156. package/web/assets/ImageStudioView-4WcX0_V4.js +0 -1
  157. package/web/assets/InlineFiles-CAIyTk1n.js +0 -1
  158. package/web/assets/MuseLibraryView-PlS7HAlV.js +0 -2
  159. package/web/assets/PluginToolCard-DCzLhsCA.js +0 -2
  160. package/web/assets/TodoListView-BkgMe44I.js +0 -1
  161. package/web/assets/UnifiedPage-s7-tDSwG.js +0 -712
  162. package/web/assets/automationListSource-B1jz6q0t.js +0 -1
  163. package/web/assets/create-DYmVT68X.js +0 -14
  164. package/web/assets/dbStore-BIG5Mfh2.js +0 -1
  165. package/web/assets/deskCapture-q-jRDIcc.js +0 -1
  166. package/web/assets/imageStudio-DC_syDtx.js +0 -4
  167. package/web/assets/index-CIKPZc3Q.js +0 -1
  168. package/web/assets/index-CmsN2Zm2.js +0 -1
  169. package/web/assets/launchpad-CcmSwlJl.js +0 -2
  170. package/web/assets/main-B9aT0WXG.js +0 -15
  171. package/web/assets/mobileEntry-BnHzrdoC.js +0 -13
  172. package/web/assets/modelPickerSurface-Dtz40Ae2.js +0 -1
  173. package/web/assets/pluginChat-82zZt47Y.js +0 -2
  174. package/web/assets/recordSurface-vUX25Z8R.js +0 -1
  175. package/web/assets/selectionBarSurface-B94e5JW_.js +0 -1
  176. package/web/assets/settingsPageSurface-C9TA3mJg.js +0 -1
  177. package/web/assets/tableSurface-CSBYBw5P.js +0 -1
  178. package/web/assets/userSpaces-oMHIWgYe.js +0 -1
  179. package/web/assets/viewportLock-BZq5PTeN.js +0 -738
@@ -0,0 +1,3 @@
1
+ import{u as Rt,r as u,j as r,a as re,t as Zt}from"./index-YuejkHoJ.js";import{p as Ue,am as Ve,F as _e,T as Ke,X as Ze,ad as Te,u as Re,h as Ge,aj as ze,R as rt,bt as Je,as as ue,br as Qe,aA as tn,a7 as en}from"./pageStore-D_fKLv-o.js";import"./client-DD5czSuF.js";import{A as ve}from"./astryxBridge-B2IZdPvo.js";import{aQ as nn,b4 as an,pC as sn,pD as rn,pE as me,pF as Ne,pG as Pe,pH as ee,pe as ln,ph as on,nH as Le,eI as et,pI as B,pJ as ye,pK as pt,pL as Ie,pM as cn,pN as we,pO as dn,pP as un,pQ as mn,pR as fn,pS as hn,pT as pn,pU as Gt,pV as be,pW as yn,pX as Lt,pY as Q,pZ as Ct,p_ as ie,p$ as It,q0 as gn,q1 as xn,q2 as Ae,q3 as At,q4 as vn,pd as wn,q5 as bn,q6 as kn,ps as Mn,q7 as He,q8 as ke,q9 as Dn,pi as Ye,qa as $t,qb as Me,qc as De,qd as Ce,pr as Cn,qe,qf as se,qg as En,qh as Jt}from"./appStore-BskcSDl6.js";import{u as v,H as Sn}from"./calendarNavStore-FKStA7Hh.js";import{c as jn,E as $n}from"./EventCard-D9uQe7g4.js";import{R as Tn}from"./redo-2-DWZTaEz-.js";import{U as Rn}from"./undo-2-C4ZCsMsx.js";import{C as zn,a as Nn}from"./copy-plus-CVHqDNny.js";import{n as Pn}from"./nativeDownload-DlnT8U-y.js";import{p as ne,d as fe,B as Qt,D as Ln,a as te,b as ae,T as de}from"./draft-DTzuTatQ.js";import{Z as In,a as An}from"./zoom-in-C7R8s9x-.js";import{R as Hn}from"./rotate-ccw-CyZpL7MX.js";import"./react-DOzedx9n.js";import"./dbStore-Bc2lC8ZI.js";import"./ipc-8cxXGSZK.js";import"./drawingStore-BD5m2eqn.js";import"./chevron-up-C_EDOZzI.js";const Yn=[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]],qn=Ue("scissors",Yn);re({"calevmenu.copy":{zh:"复制",en:"Copy"},"calevmenu.cut":{zh:"剪切",en:"Cut"},"calevmenu.clone":{zh:"克隆",en:"Clone"},"calevmenu.paste":{zh:"粘贴",en:"Paste"},"calevmenu.delete":{zh:"删除",en:"Delete"},"calevmenu.undo":{zh:"撤销",en:"Undo"},"calevmenu.redo":{zh:"重做",en:"Redo"},"calevmenu.summary":{zh:"复制摘要",en:"Copy summary"},"calevmenu.back":{zh:"返回详情",en:"Back to details"},"calevmenu.readonly":{zh:"此来源只支持查看和复制摘要。",en:"This source supports viewing and copying a summary."},"calevmenu.fixedTime":{zh:"系统时间属性不可移动。",en:"System time properties cannot be moved."},"calevmenu.note":{zh:"此事件关联笔记文件,删除时需确认。",en:"This event is a note file. Deletion requires confirmation."}});const On={copy:an,cut:qn,clone:Nn,paste:zn,delete:nn,undo:Rn,redo:Tn,summary:_e},Ee={copy:"C",cut:"X",clone:"D",paste:"V",undo:"Z",redo:"⇧Z",delete:"Del"};function Se({at:l,mobile:d,writable:h,note:p,hasClip:y,onRun:M,onClose:H,hasEvent:I=!0,canCut:O=!0}){const{t:z}=Rt(),P=u.useRef(null);u.useEffect(()=>{P.current?.querySelector("button:not([disabled])")?.focus();const x=j=>{P.current?.contains(j.target)||H()};return d||window.addEventListener("pointerdown",x),()=>window.removeEventListener("pointerdown",x)},[]);const C=I?h?["copy","cut","clone","paste","summary","delete","undo","redo"]:["summary"]:["paste","undo","redo"],V=r.jsxs("div",{ref:P,className:`amx-cal-eventmenu${d?" phone":""}`,role:"menu",onKeyDown:x=>{if(x.key==="Escape"||d&&x.key==="ArrowLeft"){x.preventDefault(),x.stopPropagation(),H();return}const j=Array.from(P.current?.querySelectorAll("button:not([disabled])")??[]);if(["ArrowDown","ArrowUp","Home","End"].includes(x.key)){x.preventDefault();const A=j.indexOf(document.activeElement),F=x.key==="Home"?0:x.key==="End"?j.length-1:(A+(x.key==="ArrowDown"?1:-1)+j.length)%j.length;j[F]?.focus()}},children:[d&&r.jsxs("button",{role:"menuitem",onClick:H,children:[r.jsx(Ve,{size:16}),z("calevmenu.back")]}),I&&(!h||p)&&r.jsx("p",{children:z(p?"calevmenu.note":"calevmenu.readonly")}),C.map(x=>{const j=On[x];return r.jsxs("button",{role:"menuitem","aria-label":z(`calevmenu.${x}`),className:x==="delete"?"danger":"",title:x==="cut"&&!O?z("calevmenu.fixedTime"):void 0,disabled:x==="cut"&&!O||x==="paste"&&!y||x==="undo"&&!sn()||x==="redo"&&!rn(),onClick:()=>M(x),children:[r.jsx(j,{size:16}),r.jsx("span",{children:z(`calevmenu.${x}`)}),!d&&Ee[x]&&r.jsx("kbd",{"aria-hidden":"true",children:x==="delete"?"Del":`${navigator.platform.includes("Mac")?"⌘":"Ctrl+"}${Ee[x]}`})]},x)})]});return d?V:Ke.createPortal(r.jsx(Ze,{x:l.x,y:l.y,className:"ctx-menu amx-cal-menu-position",children:V}),document.body)}re({"calside.newEvent":{zh:"新事件",en:"New event"},"calside.calendar":{zh:"日历",en:"Calendar"},"calside.save":{zh:"保存",en:"Save"},"calside.cancel":{zh:"取消",en:"Cancel"},"calside.discard":{zh:"放弃未保存的事件?",en:"Discard this unsaved event?"},"calside.paste":{zh:"在此粘贴事件",en:"Paste event here"},"calside.hint":{zh:"标题在格子里直接打。Enter 保存,Esc 取消;没写标题不会新建。",en:"Type the title right in the grid. Enter saves, Esc cancels; nothing is created without a title."}});const Bn=300,Fn=300;function Xn({rootRef:l,onPasted:d}){const{t:h}=Rt(),p=v(i=>i.draft),y=me(i=>i.clip),M=Te==="mobile"||!!window.tangu?.mobile,H=v(i=>i.draftApi),I=Ne(),O=Re(i=>i.vaultRoot)??"",z=Pe(i=>i.byVault),[P,C]=u.useState(null),V=p?`${p.day}|${p.endDay}|${p.startMin}|${p.endMin}`:"",x=()=>{(!p?.title.trim()||window.confirm(h("calside.discard")))&&H?.cancel()};if(Ge(M&&p?{mode:"page",title:h("calside.newEvent"),back:h("calside.cancel"),onBack:x}:null),u.useLayoutEffect(()=>{if(!M||!p)return;const i=b=>{b.preventDefault(),b.detail?.probe||x()};return window.addEventListener("forsion:mobile-back",i),()=>window.removeEventListener("forsion:mobile-back",i)},[M,p]),u.useLayoutEffect(()=>{if(!V||M){C(null);return}const i=()=>{const b=document.querySelector(".amx-cal-draft-input")?.closest(".amx-cal-draft"),S=b?.closest(".amx-cal-tscroll, .amx-cal-mscroll")?.getBoundingClientRect(),_=b?.getBoundingClientRect();if(!_||!S||_.bottom<S.top||_.top>S.bottom||_.right<S.left||_.left>S.right){C(null);return}C(jn({left:_.left,top:_.top,right:_.right,bottom:_.bottom,zoom:rt(b)||1},{w:Bn,h:Fn,maxRight:l.current?.getBoundingClientRect().right}))};return i(),window.addEventListener("scroll",i,!0),window.addEventListener("resize",i),()=>{window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",i)}},[V,l]),!p||!P&&!M)return null;const j=I.filter(i=>!i.db.readonly),A=ne(I,p.dbPath,ee(O,z))?.db.path,F=ln(fe(p)),q=i=>{const b=v.getState().draft;b&&v.getState().setDraft({...b,dbPath:i})},Y=i=>i.preventDefault();return r.jsxs("section",{className:`amx-cal-cardwrap amx-cal-draftcard${M?" amx-cal-drawer":""}`,"data-kb-rise":M?"bar":void 0,style:M?void 0:P,role:"dialog","aria-modal":"false","aria-label":h("calside.newEvent"),onMouseDown:M?void 0:Y,onPointerDown:i=>i.stopPropagation(),children:[M?r.jsxs(r.Fragment,{children:[r.jsx("button",{className:"amx-cal-drawer-grab","aria-label":h("calside.cancel"),onClick:x,children:r.jsx("span",{})}),r.jsx("input",{className:"amx-cal-card-title",value:p.title,placeholder:h("calside.newEvent"),"aria-label":h("calside.newEvent"),onChange:i=>v.getState().setDraft({...p,title:i.target.value})}),r.jsx(on,{value:fe(p),onChange:i=>{const b=Le(i);if(!b)return;const S=et(b.start),_=b.end?et(b.end):B(S,30);v.getState().setDraft({...p,hasEnd:!!b.end,day:b.start.slice(0,10),endDay:(b.end??b.start).slice(0,10),startMin:b.allDay?null:S.getHours()*60+S.getMinutes(),endMin:b.allDay?0:(_.getTime()-et(b.start.slice(0,10)).getTime())/6e4})}})]}):r.jsx("div",{className:"amx-cal-draft-title",children:p.title||r.jsx("span",{className:"ph",children:h("calside.newEvent")})}),F&&r.jsxs("div",{className:"amx-cal-draft-time",children:[r.jsxs("span",{className:"amx-cal-card-timehead",children:[F.head,F.badge&&r.jsx("span",{className:"amx-cal-card-badge",children:F.badge})]}),F.date&&r.jsx("span",{className:"amx-cal-card-timesub",children:F.date})]}),r.jsx("div",{className:"amx-cal-draft-label",children:h("calside.calendar")}),r.jsx("div",{className:"amx-cal-draft-cals",children:j.map(i=>r.jsxs("button",{className:`amx-cal-draft-cal${i.db.path===A?" on":""}`,onMouseDown:Y,onClick:()=>q(i.db.path),children:[r.jsx("i",{style:{background:ye(O,z,i.db.path,I.indexOf(i))}}),r.jsx("span",{children:i.db.name}),i.db.path===A&&r.jsx(ze,{size:13})]},i.db.path))}),!M&&r.jsx("p",{className:"amx-cal-draft-hint",children:h("calside.hint")}),M&&y&&r.jsx("button",{onClick:()=>{if(p.title.trim()&&!window.confirm(h("calside.discard")))return;const i=pt();Ie(A?I.find(b=>b.db.path===A)?.db:void 0,B(et(p.day),p.startMin??0)).then(b=>{b&&pt()===i&&v.getState().draft===p&&(H?.cancel(),d?.(`${b.db.path}::${b.id}`))})},children:h("calside.paste")}),r.jsxs("div",{className:"amx-cal-draft-actions",children:[r.jsx("button",{className:"amx-cal-draft-cancel",onMouseDown:M?void 0:Y,onClick:M?x:()=>H?.cancel(),children:h("calside.cancel")}),r.jsx("button",{className:"amx-cal-draft-save",disabled:!p.title.trim(),onMouseDown:Y,onClick:()=>H?.commit(),children:h("calside.save")})]})]})}re({"calkeys.modeDay":{zh:"日",en:"Day"},"calkeys.modeWeek":{zh:"周",en:"Week"},"calkeys.mode3day":{zh:"3 日",en:"3 days"},"calkeys.modeMonth":{zh:"月",en:"Month"}});const Oe=[{id:"day",get label(){return Zt("calkeys.modeDay")},key:"d"},{id:"week",get label(){return Zt("calkeys.modeWeek")},key:"w"},{id:"3day",get label(){return Zt("calkeys.mode3day")},key:"3"},{id:"month",get label(){return Zt("calkeys.modeMonth")},key:"m"}];function Wn(l){const d=(l.metaKey||l.ctrlKey)&&!l.altKey;if(d&&(l.shiftKey&&l.key.toLowerCase()==="z"||l.key.toLowerCase()==="y"))return{kind:"redo"};if(d&&!l.shiftKey&&(l.key==="z"||l.key==="Z"))return{kind:"undo"};if(d&&l.key.toLowerCase()==="x")return{kind:"cut"};if(d&&(l.key==="d"||l.key==="D"))return{kind:"duplicate"};if(d&&(l.key==="c"||l.key==="C"))return{kind:"copy"};if(d&&(l.key==="v"||l.key==="V"))return{kind:"paste"};if(l.metaKey||l.ctrlKey||l.altKey)return null;if(l.key==="ContextMenu"||l.shiftKey&&l.key==="F10")return{kind:"menu"};if(l.key==="Delete"||l.key==="Backspace")return{kind:"delete"};if(l.key==="ArrowLeft")return{kind:"prev"};if(l.key==="ArrowRight")return{kind:"next"};if(l.key==="Escape")return{kind:"escape"};if(l.key==="Enter")return{kind:"rename"};if(l.key==="c"||l.key==="C")return{kind:"new"};if(l.key==="t"||l.key==="T")return{kind:"today"};const h=Oe.find(p=>p.key===l.key.toLowerCase());return h?{kind:"mode",mode:h.id}:null}const Ft=l=>l.end?.getTime()??l.start.getTime()+3600*1e3;function Un(l){const d=[...l].sort((p,y)=>p.start.getTime()-y.start.getTime()||Ft(p)-Ft(y)),h=new Map;for(let p=0;p<d.length;){let y=p+1,M=Ft(d[p]);for(;y<d.length&&d[y].start.getTime()<M;)M=Math.max(M,Ft(d[y])),y+=1;const H=d.slice(p,y),I=[],O=H.map(P=>{let C=I.findIndex(V=>V<=P.start.getTime());return C<0&&(C=I.length),I[C]=Ft(P),{ev:P,lane:C}}),z=Math.max(1,I.length);for(const{ev:P,lane:C}of O)h.set(P.key,{lane:C,laneCount:z,leftPct:C/z*100,widthPct:100/z});p=y}return h}re({"calview.untitled":{zh:"未命名",en:"Untitled"},"calview.newEventTitle":{zh:"新事件",en:"New event"},"calview.newEvent":{zh:"新建事件",en:"New event"},"calview.today":{zh:"今天",en:"Today"},"calview.prevPage":{zh:"上一页",en:"Previous"},"calview.nextPage":{zh:"下一页",en:"Next"},"calview.weekNo":{zh:"第 {n} 周",en:"Week {n}"},"calview.zoomOut":{zh:"缩小时间轴",en:"Zoom out timeline"},"calview.zoomIn":{zh:"放大时间轴",en:"Zoom in timeline"},"calview.densityReset":{zh:"恢复默认密度",en:"Reset to default density"},"calview.weekStart":{zh:"一周开始于",en:"Week starts on"},"calview.weekStartAuto":{zh:"跟随语言({day})",en:"Match language ({day})"},"calview.sunday":{zh:"周日",en:"Sunday"},"calview.monday":{zh:"周一",en:"Monday"},"calview.empty":{zh:"还没有日历事件。单击时间格新建,按住拖出时长,或按 C。",en:"No calendar events yet. Click a time slot to add one, drag to set its length, or press C."},"calview.emptyNoDb":{zh:"还没有日历。在左栏「日历」右边点 +,选一个含日期属性的多维表。",en:'No calendars yet. Use + next to "Calendars" in the left panel to pick a database with a date property.'},"calview.allDay":{zh:"全天",en:"All-day"},"calview.a11yAllDayEvent":{zh:"{title},全天事件",en:"{title}, all-day event"},"calview.allDayDragHint":{zh:"{title}(可拖入时间格设为定时)",en:"{title} (drag into a time slot to schedule it)"},"calview.a11yEvent":{zh:"{title},{time}",en:"{title}, {time}"},"calview.a11yEventRange":{zh:"{title},{start} 至 {end}",en:"{title}, {start} to {end}"},"calview.a11yDone":{zh:"标记完成:{title}",en:"Mark done: {title}"},"calview.monthFirst":{zh:"{m}月1",en:"{m}/1"},"calview.moreItems":{zh:"还有 {n} 项",en:"{n} more"},"calview.viewOptions":{zh:"显示选项",en:"Display options"},"calview.a11yMoreEvents":{zh:"查看 {m} 月 {d} 日全部 {n} 个事件",en:"View all {n} events on {m}/{d}"},"calview.a11yDayEvents":{zh:"{m} 月 {d} 日事件",en:"Events on {m}/{d}"},"calview.dayHeading":{zh:"{m} 月 {d} 日",en:"{m}/{d}"},"calview.closeAgenda":{zh:"关闭日程列表",en:"Close agenda list"},"calview.resizeStart":{zh:"调整开始时间",en:"Adjust start time"},"calview.resizeEnd":{zh:"调整结束时间",en:"Adjust end time"}});const wt=26,je=8.4,he=34,Xt=150,$e=40,N=!(Te==="mobile"||typeof window<"u"&&window.tangu?.mobile);function Vn(l,d,h){const p=[];return l.forEach(({db:y,dateCol:M,checkboxCol:H},I)=>{if(vn(d,h,y.path))return;const O=ye(d,h,y.path,I);for(const z of y.rows){const P=typeof z.cells[M]=="string"?z.cells[M]:"",C=Le(P);C&&p.push({key:`${y.path}::${z.rowId}`,color:O,db:y,row:z,colId:M,title:z.name,raw:P,start:et(C.start),end:C.end?et(C.end):null,allDay:C.allDay,readonly:!!y.readonly&&!y.writeCell||wn(y.columns.find(V=>V.id===M)?.type??""),check:H,done:H?z.cells[H]===!0:void 0})}}),p}const _n=l=>N&&!!l.check&&l.allDay&&!l.end,tt=l=>`${String(l.getHours()).padStart(2,"0")}:${String(l.getMinutes()).padStart(2,"0")}`,yt=l=>`${String(Math.floor(l/60)).padStart(2,"0")}:${String(l%60).padStart(2,"0")}`,X=l=>$t(l,!0),ut=l=>{const d=l.currentTarget,h=d.getBoundingClientRect();return{left:h.left,top:h.top,right:h.right,bottom:h.bottom,zoom:rt(d)||1}},Wt=(l,d,h)=>d?`${$t(l,h)}/${$t(d,h)}`:$t(l,h),Dt=(l,d,h,p=l.allDay)=>Ye(l.db,l.row,l.colId,l.raw,Wt(d,h,p),l.title),Tt=l=>({"--amx-event-color":l}),ge=(l,d,h)=>{const p=Q(h).getTime(),y=Q(l).getTime()<p,M=Q(d??l).getTime()>p;return`${y?" continues-left":""}${M?" continues-right":""}`};function pe(){const l=v.getState();l.draft&&(l.draft.title.trim()?l.draftApi?.commit():l.setDraft(null))}const Be=l=>l.draft?`${l.draft.day}|${l.draft.endDay}|${l.draft.startMin}|${l.draft.endMin}`:"";function xa({leafId:l}={}){const{t:d}=Rt(),h=cn(),p=we(s=>s.pref),y=Ne(),M=dn(),H=un(),I=mn(),O=fn(),z=Re(s=>s.vaultRoot)??"",P=Pe(s=>s.byVault),C=v(s=>s.mode),V=v(s=>s.setMode);Je(l,{modes:Oe.map(s=>({value:s.id,label:s.label,hotkey:s.key.toUpperCase()})),value:C,onChange:s=>V(s)});const x=v(s=>s.hourPx),j=v(s=>s.setHourPx),A=v(s=>s.jumpNonce),F=v(s=>s.selection),q=v(s=>!!s.draft),[Y,i]=u.useState(null),[b,S]=u.useState(null),[_,$]=u.useState(!1),[gt,xt]=u.useState(null),[ct,it]=u.useState(!1),[lt,L]=u.useState(!1),W=me(s=>s.clip),K=u.useRef(void 0),Et=u.useRef(null),nt=u.useRef(null),St=u.useRef(null);u.useEffect(()=>{C!=="month"&&(St.current=null)},[C]);const dt=u.useRef(null),G=u.useRef(null),J=u.useRef(0);u.useEffect(()=>{if(!A)return;const s=v.getState().jumpDate;s&&nt.current?.goto(et(s))},[A]),hn();const mt=u.useMemo(()=>[...y.map(s=>({db:s.db,dateCol:s.dateCol,checkboxCol:s.checkboxCol})),...[...M,...H,...I,...O].map(s=>({db:s,dateCol:pn(s)?.id})).filter(s=>!!s.dateCol)],[y,M,H,I,O]),U=u.useMemo(()=>Vn(mt,z,P),[mt,z,P]),f=u.useRef(U);f.current=U;const o=u.useMemo(()=>U.map(s=>s.title?s:{...s,title:d("calview.untitled")}),[U,d]),k=Y?.key??F?.key??null,T=k?U.find(s=>s.key===k)??null:null;dt.current=T;const at=ne(y,null,ee(z,P)),ot=s=>{const c=ne(y,s,ee(z,P));return c?ye(z,P,c.db.path,y.indexOf(c)):"var(--accent)"},D=(s,c)=>{if(++J.current,N)pe();else{if(v.getState().draft?.title.trim()&&!window.confirm(d("calside.discard")))return;v.getState().setDraft(null)}G.current=null;const t=f.current.find(e=>e.key===s);t&&v.getState().setSelection({key:s,target:t}),S(null),$(!1),L(!1),K.current=void 0,i({key:s,at:c})},Z=s=>{const c=f.current.find(t=>t.key===s);if(!c){G.current=s;return}if(v.getState().setSelection({key:s,target:c}),!N){const t=ht.current?.querySelector(`[data-key="${CSS.escape(s)}"]`);if(t){const e=t.getBoundingClientRect();$(!1),i({key:s,at:{left:e.left,top:e.top,right:e.right,bottom:e.bottom,zoom:rt(t)||1}})}}};u.useEffect(()=>{const s=v.getState();Y&&!U.some(a=>a.key===Y.key)&&(i(null),S(null));const c=G.current;c&&U.some(a=>a.key===c)&&(G.current=null,Z(c));const t=v.getState().selection;if(!t)return;const e=U.find(a=>a.key===t.key);e?e!==t.target&&s.setSelection({key:t.key,target:e}):s.setSelection(null)},[U]),u.useLayoutEffect(()=>{i(null),S(null),xt(null),Gt(),J.current++,G.current=null,K.current=void 0,dt.current=null;const s=v.getState();return s.setDraft(null),s.setSelection(null),()=>{Gt()}},[z]);const ft=()=>{++J.current;const s=v.getState(),c=!!s.draft||!!s.selection||!!Y;if(N)pe();else if(s.draft){if(s.draft.title.trim()&&!window.confirm(d("calside.discard")))return!0;s.setDraft(null)}return s.selection&&s.setSelection(null),i(null),S(null),K.current=void 0,c},bt=s=>{if(++J.current,!at)return;const c=v.getState();c.setSelection(null),i(null),K.current=B(et(s.day),s.startMin??0),c.setDraft({...s,scope:pt(),title:"",dbPath:W&&y.some(t=>t.db.path===W.event.db.path)?W.event.db.path:null})},zt=u.useRef(async()=>{});zt.current=async()=>{const s=v.getState(),c=s.draft;if(!c)return;if(c.scope!==pt()){s.setDraft(null);return}s.setDraft(null);const t=ne(y,c.dbPath,ee(z,P));if(!t)return;const e=s.selection,a=J.current,n=pt(),m=await be(t.db,t.dateCol,fe(c),c.title.trim()||d("calview.newEventTitle"));ue("calendar.event"),a===J.current&&n===pt()&&!v.getState().draft&&v.getState().selection===e&&Z(`${t.db.path}::${m}`)},u.useEffect(()=>(v.getState().setDraftApi({commit:()=>{zt.current()},cancel:()=>v.getState().setDraft(null)}),()=>{const c=v.getState();c.setDraftApi(null),c.setDraft(null),c.setSelection(null)}),[]);const Ht=async(s,c,t)=>{if(!at)return;if(!N){const g=X(s);bt({day:g,endDay:g,startMin:c,endMin:c===null?0:c+30});return}const{db:e,dateCol:a}=at;let n;if(c===null)n=$t(s,!0);else{const g=B(Q(s),c);n=`${$t(g,!1)}/${$t(B(g,30),!1)}`}const m=await be(e,a,n,d("calview.newEventTitle"));ue("calendar.event"),i({key:`${e.path}::${m}`,at:t})},vt=()=>{const s=new Date,c=X(s);if(nt.current?.today(),C==="month"){bt({day:c,endDay:c,startMin:null,endMin:0});return}const[t,e]=ae(Math.ceil((s.getHours()*60+s.getMinutes())/15)*15,0,!0);bt({day:c,endDay:c,startMin:t,endMin:e})},Yt=u.useRef(vt);Yt.current=vt;const kt=u.useRef(ft);kt.current=ft;const Nt=s=>{const c=dt.current;switch(S(null),ht.current?.focus({preventScroll:!0}),s){case"copy":c&&ke(c);break;case"cut":c&&ke(c,!0);break;case"clone":{const t=J.current,e=pt();c&&He(c).then(a=>{a&&t===J.current&&e===pt()&&(i(null),Z(`${c.db.path}::${a}`))});break}case"paste":{const t=v.getState().draft;if(t?.title.trim()&&!window.confirm(d("calside.discard")))break;const e=J.current,a=pt(),n=K.current??(t?B(et(t.day),t.startMin??0):void 0);Ie(n?void 0:c?.db,n).then(m=>{!m||e!==J.current||pt()!==a||v.getState().draft!==t||(v.getState().setDraft(null),i(null),Z(`${m.db.path}::${m.id}`))});break}case"delete":if(!c||c.db.readonly)break;Mn(c.db,c.row,c.title),v.getState().setSelection(null),i(null),W?.cut&&W.event.row.rowId===c.row.rowId&&W.event.db.path===c.db.path&&Gt();break;case"undo":kn();break;case"redo":bn();break;case"summary":c&&navigator.clipboard?.writeText(`${c.title}
2
+ ${c.raw}
3
+ ${c.db.name}`).catch(()=>Pn({level:"warning",text:d("calclip.failed")}));break}},Ut=u.useRef(Nt);Ut.current=Nt;const Vt=()=>{b?S(null):kt.current()};u.useEffect(()=>{if(N||!Y&&!b)return;const s=c=>{c.preventDefault(),c.detail?.probe||Vt()};return window.addEventListener("forsion:mobile-back",s),()=>window.removeEventListener("forsion:mobile-back",s)},[Y,b]);const ht=u.useRef(null);u.useEffect(()=>{const s=c=>{const t=ht.current;if(!t||!t.getClientRects().length)return;const e=c.target;if(c.isComposing||e?.closest('[role="menu"]')||e&&e.closest("input, textarea, select, [contenteditable]"))return;const a=v.getState().sideEl,n=document.activeElement;if(n?.closest('[role="dialog"]')&&!n.closest(".amx-cal-cardcatch.calendar"))return;const m=!!n?.closest(".amx-calcfg");if(n&&n!==document.body&&!t.contains(n)&&!a?.contains(n)&&!m&&n.closest(".dv-react-part"))return;const g=Wn(c);if(!g||m&&!["today","prev","next","mode"].includes(g.kind))return;const R=dt.current,E=v.getState();switch(g.kind){case"copy":case"cut":case"paste":case"duplicate":case"delete":case"undo":case"redo":Ut.current(g.kind==="duplicate"?"clone":g.kind);break;case"menu":{if(!R)return;const w=t.querySelector(`[data-key="${CSS.escape(R.key)}"]`)?.getBoundingClientRect();w&&S({x:w.left,y:w.bottom});break}case"new":if(!N)return;Yt.current();break;case"today":nt.current?.today();break;case"rename":{if(e?.closest("button")&&!e.closest(".amx-cal-event, .amx-cal-chip-ev")||!R)return;if(L(!0),Y)break;if(!E.selection)return;const w=t.querySelector(`[data-key="${CSS.escape(E.selection.key)}"]`)??t.querySelector(`.amx-cal-mcell[data-date="${X(R.start)}"], .amx-cal-daycol2[data-date="${X(R.start)}"]`);if(!w)return;const st=w.getBoundingClientRect();i({key:E.selection.key,at:{left:st.left,top:st.top,right:st.right,bottom:st.bottom,zoom:rt(w)||1}}),E.setSelection(null);break}case"escape":if(me.getState().clip?.cut&&Gt(),b){S(null);break}if(E.draft)E.setDraft(null);else if(E.selection||Y)kt.current();else return;break;case"prev":nt.current?.prev();break;case"next":nt.current?.next();break;case"mode":E.setMode(g.mode);break}c.preventDefault()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[Y,b]);const[le,oe]=u.useState(7);u.useLayoutEffect(()=>{const s=ht.current;if(!s)return;const c=()=>{if(!s.clientWidth)return;const e=s.clientWidth-52;oe(e>=588?7:e>=252?3:1)};c();const t=new ResizeObserver(c);return t.observe(s),()=>t.disconnect()},[]);const Pt=Math.min(C==="week"?7:C==="3day"?3:1,le),qt=s=>d(s===1?"calview.monday":"calview.sunday"),_t=[{value:"auto",label:d("calview.weekStartAuto",{day:qt(Dn())})},{value:0,label:qt(0)},{value:1,label:qt(1)}],Ot=(s,c)=>{const t=y.find(n=>n.db.path===s.dbPath),e=t?.db.rows.find(n=>n.rowId===s.rowId);if(!t||!e||t.db.readonly)return;const a=typeof e.cells[t.dateCol]=="string"?e.cells[t.dateCol]:"";Ye(t.db,e,t.dateCol,a,c,e.name)},ce=s=>s?r.jsx(ze,{size:14}):r.jsx("span",{style:{display:"inline-block",width:14}}),Kt={events:o,selectedKey:k,cutKey:W?.cut?`${W.event.db.path}::${W.event.row.rowId}`:null,onPick:D,canCreate:!!at,onDismiss:ft,onDraft:bt,colorOf:ot,onTodoDrop:Ot,titleRef:Et,onGesture:s=>{it(!!s),xt(c=>c?.key===s?.key&&c?.raw===s?.raw?c:s),s&&(v.getState().selection?.key!==s.key&&v.getState().setSelection({key:s.key,target:s}),$(!0))}};return r.jsxs("div",{className:`amx-cal${N?"":" mobile"}${!N&&(Y||q)?` drawer-open${_&&Y?" drawer-small":""}`:""}`,ref:ht,tabIndex:-1,"data-cut-key":W?.cut?`${W.event.db.path}::${W.event.row.rowId}`:void 0,onContextMenu:s=>{if(s.target.closest(".amx-cal-cardwrap, input, textarea"))return;const c=s.target.closest("[data-key]"),t=f.current.find(a=>a.key===c?.dataset.key);if(t){s.preventDefault(),s.stopPropagation();const a=c.getBoundingClientRect();N?(v.getState().setSelection({key:t.key,target:t}),i(null),K.current=void 0):D(t.key,{left:a.left,top:a.top,right:a.right,bottom:a.bottom,zoom:rt(c)||1}),S({x:s.clientX,y:s.clientY});return}const e=s.target.closest("[data-date]");if(e?.dataset.date){s.preventDefault(),s.stopPropagation(),ft();const a=e.classList.contains("amx-cal-daycol2")?Math.max(0,Math.min(1425,Lt((s.clientY-e.getBoundingClientRect().top)/(rt(e)||1)/x*60))):0;K.current=B(et(e.dataset.date),a),S({x:s.clientX,y:s.clientY})}},children:[r.jsx(ve,{children:r.jsxs("header",{className:"amx-cal-bar",children:[r.jsxs("div",{className:"amx-cal-nav",children:[r.jsx(Qe,{leafId:l}),r.jsx("span",{className:"amx-cal-title",ref:Et})]}),r.jsxs("div",{className:"amx-cal-modes",children:[r.jsx(Qt,{size:"sm",variant:"secondary",label:d("calview.today"),onClick:()=>nt.current?.today()}),r.jsx(Qt,{size:"sm",variant:"ghost",isIconOnly:!0,icon:r.jsx(yn,{size:14}),label:d("calview.prevPage"),onClick:()=>nt.current?.prev()}),r.jsx(Qt,{size:"sm",variant:"ghost",isIconOnly:!0,icon:r.jsx(tn,{size:14}),label:d("calview.nextPage"),onClick:()=>nt.current?.next()}),r.jsxs(Ln,{button:{label:d("calview.viewOptions"),isIconOnly:!0,icon:r.jsx(en,{size:14}),variant:"ghost",size:"sm"},menuWidth:208,children:[C!=="month"&&r.jsx(te,{icon:r.jsx(In,{size:14}),label:d("calview.zoomOut"),onClick:()=>j(x-8)}),C!=="month"&&r.jsx(te,{icon:r.jsx(An,{size:14}),label:d("calview.zoomIn"),onClick:()=>j(x+8)}),C!=="month"&&r.jsx(te,{icon:r.jsx(Hn,{size:14}),label:d("calview.densityReset"),endContent:`${x}px`,onClick:()=>j(Sn)}),C!=="month"&&r.jsx("div",{className:"amx-cal-menusep",role:"separator"}),r.jsx("div",{className:"amx-cal-menulabel",children:d("calview.weekStart")}),_t.map(s=>r.jsx(te,{icon:ce(p===s.value),label:s.label,onClick:()=>we.getState().setPref(s.value)},String(s.value)))]})]})]})}),o.length===0&&r.jsxs("div",{className:"amx-cal-empty",children:[d(at?"calview.empty":"calview.emptyNoDb"),at&&N&&r.jsx(ve,{children:r.jsx(Qt,{size:"sm",variant:"secondary",label:d("calview.newEvent"),onClick:vt})})]}),C==="month"?r.jsx(Gn,{ref:nt,anchorRef:St,...Kt,onCreate:(s,c)=>{Ht(s,null,c)}},`dow${h}`):r.jsx(Zn,{ref:nt,n:Pt,weekStartDow:C==="week"&&Pt===7?h:null,...Kt,onCreate:(s,c,t)=>{Ht(s,c,t)}}),T&&Y&&(!N||!ct)&&r.jsx($n,{calendar:!0,focusTitle:lt,ev:gt??T,at:Y.at,collapsed:!N&&_,onExpand:()=>$(!1),maxRight:ht.current?.getBoundingClientRect().right,onClose:Vt,onActions:s=>{const c=s.currentTarget.getBoundingClientRect();S({x:c.left,y:c.bottom}),$(!1)},actions:!N&&b?r.jsx(Se,{at:b,mobile:!0,canCut:!T.readonly,writable:!T.db.readonly,note:T.db.isNoteView,hasClip:!!W,onRun:Nt,onClose:()=>S(null)}):void 0},T.key),b&&(N||!Y)&&r.jsx(Se,{at:b,mobile:!1,hasEvent:!!T,canCut:!T?.readonly,writable:!T?.db.readonly,note:!!T?.db.isNoteView,hasClip:!!W,onRun:Nt,onClose:()=>S(null)}),r.jsx(Xn,{rootRef:ht,onPasted:Z})]})}function Fe({first:l=!0}){const{t:d}=Rt(),h=v(p=>p.draft?.title??"");return!l||!N?r.jsx("span",{className:"amx-cal-event-title",children:h||d("calview.newEventTitle")}):r.jsx("input",{className:"amx-cal-draft-input",autoFocus:!0,value:h,placeholder:d("calview.newEventTitle"),"aria-label":d("calview.newEventTitle"),onChange:p=>{const y=v.getState();y.draft&&y.setDraft({...y.draft,title:p.target.value})},onKeyDown:p=>{if(!p.nativeEvent.isComposing)if(p.key==="Enter"){p.preventDefault();const y=v.getState();y.draft?.title.trim()?y.draftApi?.commit():y.setDraft(null)}else p.key==="Escape"&&(p.preventDefault(),v.getState().setDraft(null))},onBlur:p=>{p.relatedTarget instanceof Element&&p.relatedTarget.closest(".amx-cal-draftcard")||document.hasFocus()&&pe()}})}const Xe={onPointerDown:l=>l.stopPropagation(),onMouseDown:l=>{l.target instanceof HTMLInputElement||l.preventDefault()}};function We({day:l,colorOf:d}){const h=v(p=>p.draft);return h?r.jsxs("div",{className:`amx-cal-chip-ev amx-cal-draft selected${ge(et(h.day),et(h.endDay),l)}`,style:Tt(d(h.dbPath)),...Xe,children:[h.startMin!==null&&r.jsx("span",{className:"amx-cal-chip-t",children:yt(h.startMin)}),r.jsx(Fe,{first:X(l)===h.day})]}):null}function Kn({hourPx:l,colorOf:d}){const h=v(y=>y.draft);if(!h||h.startMin===null)return null;const p=(h.endMin-h.startMin)/60*l;return r.jsxs("div",{className:`amx-cal-event amx-cal-draft selected${p<he?" short":""}`,style:{...Tt(d(h.dbPath)),top:h.startMin/60*l,height:Math.max(14,p),left:2,width:"calc(100% - 4px)"},...Xe,children:[r.jsx(Fe,{}),r.jsx("span",{className:"amx-cal-event-t",children:p<he?yt(h.startMin):`${yt(h.startMin)}–${yt(h.endMin)}`})]})}const Zn=u.forwardRef(function({n:d,weekStartDow:h,events:p,selectedKey:y,cutKey:M,onPick:H,canCreate:I,onDismiss:O,onDraft:z,colorOf:P,onTodoDrop:C,onCreate:V,titleRef:x,onGesture:j},A){const{t:F}=Rt(),q=u.useRef(null),Y=u.useRef(null),[i,b]=u.useState(0),[S,_]=u.useState(0),$=v(t=>t.hourPx),gt=v(t=>t.setVisibleRange),xt=v(Be),ct=xt?xt.split("|"):null,it=()=>{Y.current&&q.current&&(Y.current.style.transform=`translateY(${-q.current.scrollTop}px)`)},lt=u.useMemo(()=>Q(new Date),[]),L=u.useMemo(()=>{const t=Ct(lt,-Xt);return Array.from({length:Xt*2+1},(e,a)=>Ct(t,a))},[lt]),W=t=>h==null?t:Math.max(0,t-(L[t].getDay()-h+7)%7),K=u.useRef(Xt),Et=u.useRef(void 0),nt=u.useRef(!1),St=u.useRef(""),dt=u.useRef(-1),G=u.useRef(null),J=u.useRef(null),mt=()=>{J.current&&(J.current.style.display="none")},U=u.useRef(null),f=u.useRef(null),[o,k]=u.useState(()=>{const t=new Date;return t.getHours()*60+t.getMinutes()});u.useEffect(()=>{const t=setInterval(()=>{const e=new Date;k(e.getHours()*60+e.getMinutes())},3e4);return()=>clearInterval(t)},[]),u.useEffect(()=>()=>gt(null,null),[gt]);const T=B(lt,o).getTime(),at=()=>{const t=q.current;if(!t||!i)return;const e=Math.max(0,Math.min(L.length-d,Math.round(t.scrollLeft/i)));K.current=e;const a=L[e+Math.floor((d-1)/2)],n=qe(a),m=F("calview.weekNo",{n:En(a)});n+m!==St.current&&(St.current=n+m,x.current&&(x.current.textContent=n,x.current.dataset.week=m)),e*8+d!==dt.current&&(dt.current=e*8+d,gt(X(L[e]),X(L[Math.min(L.length-1,e+d-1)])),t.querySelector(".amx-cal-allday2.lead")?.classList.remove("lead"),t.querySelector(`.amx-cal-allday2[data-date="${X(L[e])}"]`)?.classList.add("lead"))},ot=()=>{const t=q.current,e=t?.clientWidth?t.querySelector(".amx-cal-daycol2"):null;e&&_(Math.max(0,e.offsetTop-(wt+14)))};u.useLayoutEffect(()=>{const t=q.current;if(!t)return;const e=d>=3?84:180,a=()=>{t.clientWidth&&(b(Math.max(e,t.clientWidth/d)),ot())};a();const n=new ResizeObserver(a);return n.observe(t),()=>n.disconnect()},[d]),u.useLayoutEffect(ot,[p,i,d,xt]),u.useLayoutEffect(()=>{const t=q.current;if(!(!t||!i)){if(!nt.current){K.current=Xt,nt.current=!0;const e=t.querySelector(".amx-cal-daycol2"),a=e?e.offsetTop:wt+14;t.scrollTop=Math.max(0,a+o/60*$-t.clientHeight/2)}Et.current!==h&&(Et.current=h,K.current=W(K.current)),t.scrollLeft=K.current*i,at(),it()}},[i,h]);const D=u.useRef($);u.useLayoutEffect(()=>{const t=q.current,e=D.current;if(D.current=$,!t||e===$)return;const a=t.querySelector(".amx-cal-daycol2"),n=a?a.offsetTop:wt+14,m=t.clientHeight/2,g=(t.scrollTop+m-n)/e;t.scrollTop=Math.max(0,n+g*$-m),it()},[$]),u.useEffect(()=>{const t=q.current;if(!t)return;const e=a=>{if(!a.ctrlKey&&!a.metaKey)return;a.preventDefault();const n=v.getState();n.setHourPx(n.hourPx*(a.deltaY<0?1.12:1/1.12))};return t.addEventListener("wheel",e,{passive:!1}),()=>t.removeEventListener("wheel",e)},[]),u.useImperativeHandle(A,()=>({prev:()=>q.current?.scrollBy({left:-d*i,behavior:"smooth"}),next:()=>q.current?.scrollBy({left:d*i,behavior:"smooth"}),today:()=>q.current?.scrollTo({left:W(Xt)*i,behavior:"smooth"}),goto:t=>{if(!i)return;const e=Math.min(L.length-d,W(Math.max(0,Math.min(L.length-1,It(Q(t),L[0])))));q.current?.scrollTo({left:e*i,behavior:"smooth"})}}),[d,i,L,h]);const Z=wt+14+S,ft=(t,e=0)=>{const a=q.current,n=a.getBoundingClientRect(),m=rt(a)||1,g=Math.max(0,Math.min(L.length-1,Math.floor(((t.clientX-n.left)/m+a.scrollLeft)/i))),R=((t.clientY-n.top)/m-e+a.scrollTop-Z)/$*60;return{col:g,raw:R,min:Math.max(0,Math.min(1425,Math.floor(R/15)*15))}},bt=(t,e,a)=>{if(e.stopPropagation(),vt(),t.readonly||e.button!==0||!N&&y!==t.key)return;mt();const n=e.currentTarget.closest(".amx-cal-event"),m=n.getBoundingClientRect(),g=rt(n)||1,R=(e.clientY-m.top)/g,E=Math.min(je,m.height/g/4),w=a??(N&&y===t.key?R<E?"start":m.height/g-R<E?"end":"move":"move"),st=Ce(t.start,t.end,$),jt=Math.max(14,st.height),Mt=n.querySelector(".amx-cal-event-t");n.setPointerCapture(e.pointerId),U.current={mode:w,ev:t,el:n,tEl:Mt,t0:Mt?.textContent??"",pid:e.pointerId,x0:e.clientX,y0:e.clientY,zoom:g,top0:st.top,h0:jt,grabOffY:R,durMin:t.end?(t.end.getTime()-t.start.getTime())/6e4:60,msDur:t.end?t.end.getTime()-t.start.getTime():0,col0:It(Q(t.start),L[0]),min0:t.start.getHours()*60+t.start.getMinutes(),dup:N&&w==="move"&&e.altKey&&!t.db.readonly,shadow:null,dyMin:0,moved:!1,target:null}},zt=t=>{const e=U.current;if(!e||t.pointerId!==e.pid){if(N&&t.currentTarget.classList.contains("selected")){const E=t.currentTarget,w=E.getBoundingClientRect(),st=(t.clientY-w.top)/(rt(E)||1),jt=Math.min(je,w.height/(rt(E)||1)/4);E.style.cursor=st<jt||w.height/(rt(E)||1)-st<jt?"ns-resize":"grab"}return}if(e.last=t,t.pointerType==="mouse"&&t.buttons===0){Ht(e.ev,t);return}if(e.mode==="move"){if(!e.moved&&Math.hypot(t.clientX-e.x0,t.clientY-e.y0)<=3||!i||!q.current)return;if(!e.moved){e.moved=!0,e.el.classList.add("dragging"),j?.(e.ev);const Bt=e.el.cloneNode(!0);Bt.classList.remove("dragging","selected"),Bt.classList.add(e.dup?"dup-src":"drag-shadow"),Bt.removeAttribute("aria-label"),e.el.parentElement?.insertBefore(Bt,e.el),e.shadow=Bt}const E=ft(t,e.grabOffY),w=Math.max(0,Math.min(1440-Math.min(e.durMin,1440),Lt(E.raw))),st=w===Lt(e.min0)&&E.col===e.col0,jt=st?e.min0:w;e.target=st?null:{iso:X(L[E.col]),topMin:w},e.el.style.transform=`translate(${(E.col-e.col0)*i}px, ${(jt-e.min0)/60*$}px)`;const Mt=B(L[E.col],jt);j?.({...e.ev,raw:Wt(Mt,e.ev.end?new Date(Mt.getTime()+e.msDur):null,!1)});const xe=e.msDur?`${tt(Mt)}–${tt(new Date(Mt.getTime()+e.msDur))}`:tt(Mt);e.tEl&&(e.tEl.textContent=st?e.t0:E.col!==e.col0?`${De(L[E.col].getDay())} ${xe}`:xe);return}const a=Lt((t.clientY-e.y0)/e.zoom/$*60),m=((e.ev.end??B(e.ev.start,60)).getTime()-e.ev.start.getTime())/6e4,g=e.mode==="start"?Math.max(-e.min0,Math.min(m-15,a)):Math.max(15-m,a);if(!e.moved&&Math.abs(t.clientY-e.y0)<5)return;e.moved||(e.moved=!0,e.el.classList.add("dragging")),e.dyMin=g;const R=g/60*$;if(e.mode==="end"?e.el.style.height=`${Math.max(14,e.h0+R)}px`:(e.el.style.top=`${e.top0+R}px`,e.el.style.height=`${Math.max(14,e.h0-R)}px`),g!==0&&e.tEl){const E=e.ev.end??B(e.ev.start,60);if(e.mode==="end"){let w=B(E,g);w.getTime()<=e.ev.start.getTime()&&(w=B(e.ev.start,15)),e.tEl.textContent=`${tt(e.ev.start)}–${tt(w)} · ${Jt(Math.round((w.getTime()-e.ev.start.getTime())/6e4))}`,j?.({...e.ev,raw:Wt(e.ev.start,w,!1)})}else{let w=B(e.ev.start,g);w.getTime()>=E.getTime()&&(w=B(E,-15)),e.tEl.textContent=`${tt(w)}–${tt(E)} · ${Jt(Math.round((E.getTime()-w.getTime())/6e4))}`,j?.({...e.ev,raw:Wt(w,E,!1)})}}},Ht=(t,e)=>{const a=U.current;if(a&&e.pointerId!==a.pid||(U.current=null,!a))return;if(j?.(null),a.el.classList.remove("dragging"),a.mode==="move"){if(a.el.style.transform="",a.shadow?.remove(),!a.target){a.tEl&&(a.tEl.textContent=a.t0),a.moved||H(t.key,ut(e));return}const m=B(Q(et(a.target.iso)),a.target.topMin),g=t.end?new Date(m.getTime()+a.msDur):null;if(a.tEl&&(a.tEl.textContent=a.t0),a.dup){const R=Wt(m,g,t.allDay);He(t,R);return}Dt(t,m,g);return}if(a.el.style.top=`${a.top0}px`,a.el.style.height=`${a.h0}px`,a.dyMin===0){a.tEl&&(a.tEl.textContent=a.t0),a.moved||H(t.key,ut(e));return}const n=t.end??B(t.start,60);if(a.mode==="end"){let m=B(n,a.dyMin);m.getTime()<=t.start.getTime()&&(m=B(t.start,15)),Dt(t,t.start,m)}else{let m=B(t.start,a.dyMin);m.getTime()>=n.getTime()&&(m=B(n,-15)),Dt(t,m,n)}},vt=()=>{const t=U.current;U.current=null,t&&(j?.(null),t.el.classList.remove("dragging"),t.el.style.transform="",t.el.style.top=`${t.top0}px`,t.el.style.height=`${t.h0}px`,t.shadow?.remove(),t.tEl&&(t.tEl.textContent=t.t0))},Yt=u.useRef(zt);Yt.current=zt,u.useEffect(()=>{const t=a=>{(a.type==="blur"||a.key==="Escape")&&vt()},e=window.setInterval(()=>{const a=U.current,n=q.current;if(!a?.moved||!a.last||!n)return;const m=n.getBoundingClientRect(),g=a.last.clientX,R=a.last.clientY,E=g<m.left+24?-12:g>m.right-24?12:0,w=R<m.top+Z+24?-12:R>m.bottom-24?12:0;(E||w)&&(n.scrollBy(E,w),Yt.current(a.last))},32);return window.addEventListener("blur",t),window.addEventListener("keydown",t),()=>{clearInterval(e),window.removeEventListener("blur",t),window.removeEventListener("keydown",t),vt()}},[]);const kt=u.useRef(null),Nt=(t,e)=>{if(e.stopPropagation(),e.button!==0||t.readonly||!N&&y!==t.key)return;const a=e.currentTarget.getBoundingClientRect(),n=Math.min(8,a.width/4);kt.current={x:e.clientX,y:e.clientY,mode:y===t.key&&N?e.clientX-a.left<n?"start":a.right-e.clientX<n?"end":"move":"move"},e.currentTarget.setPointerCapture(e.pointerId)},Ut=(t,e)=>{const a=kt.current;if(kt.current=null,!a)return;if(Math.hypot(e.clientX-a.x,e.clientY-a.y)<5){H(t.key,ut(e));return}const n=document.elementFromPoint(e.clientX,e.clientY)?.closest(".amx-cal-allday2");if(n?.dataset.date){const R=et(n.dataset.date);if(a.mode==="start")Dt(t,R>(t.end??t.start)?t.end??t.start:R,t.end,!0);else if(a.mode==="end")Dt(t,t.start,R<t.start?t.start:R,!0);else{const E=It(R,t.start);Dt(t,se(t.start,E),t.end?se(t.end,E):null,!0)}return}const m=document.elementFromPoint(e.clientX,e.clientY)?.closest(".amx-cal-daycol2"),g=m?.getAttribute("data-date");if(m&&g){const R=m.getBoundingClientRect(),E=Math.max(0,Math.min(1410,Lt((e.clientY-R.top)/(rt(m)||1)/$*60))),w=B(Q(et(g)),E);Dt(t,w,B(w,30),!1);return}H(t.key,ut(e))},Vt=t=>{const e=J.current;if(!e)return;const a=t.target,n=v.getState();if(!N||!I||t.pointerType==="touch"||U.current||n.draft||n.selection||!i||!a.closest(".amx-cal-daycol2")||a.closest(".amx-cal-event, .amx-cal-draft")){mt();return}const m=ft(t),[g,R]=ae(m.min,m.min,!0);e.style.display="block",e.style.left=`${m.col*i+2}px`,e.style.width=`${i-4}px`,e.style.top=`${Z+g/60*$}px`,e.style.height=`${(R-g)/60*$}px`},ht=t=>t.moved?ae(Math.min(t.min,t.cur.min),Math.max(t.min,t.cur.min)+15,!1):ae(t.min,t.min,!0),le=t=>{if(!N||t.button!==0||t.pointerType==="touch")return;const e=t.target;if(e.closest(".amx-cal-event, .amx-cal-chip-ev, .amx-cal-draft"))return;const a=e.closest(".amx-cal-allday2")?"all":e.closest(".amx-cal-daycol2")?"time":null;if(!a||!i)return;mt();const n=O();if(q.current?.closest(".amx-cal")?.focus({preventScroll:!0}),n||!I)return;t.preventDefault();const m=ft(t);t.currentTarget.setPointerCapture(t.pointerId),f.current={pid:t.pointerId,zone:a,col:m.col,min:m.min,cur:m,x0:t.clientX,y0:t.clientY,moved:!1}},oe=t=>{const e=f.current;if(!e){Vt(t);return}if(t.pointerId!==e.pid)return;if(t.pointerType==="mouse"&&t.buttons===0){Pt();return}if(!e.moved&&Math.hypot(t.clientX-e.x0,t.clientY-e.y0)<4)return;e.moved=!0,e.cur=ft(t);const a=G.current;if(a)if(a.style.display="block",e.zone==="time"){const[n,m]=ht(e);a.style.left=`${e.col*i+2}px`,a.style.width=`${i-4}px`,a.style.top=`${Z+n/60*$}px`,a.style.height=`${(m-n)/60*$}px`,a.textContent=`${yt(n)}–${yt(m)} · ${Jt(m-n)}`}else{const n=Math.min(e.col,e.cur.col),m=Math.max(e.col,e.cur.col);a.style.left=`${n*i+4}px`,a.style.width=`${(m-n+1)*i-8}px`,a.style.top=`${wt+14+3}px`,a.style.height="20px",a.textContent=m>n?Jt((m-n+1)*1440):""}},Pt=t=>{const e=f.current;if(!(e&&t&&t.pointerId!==e.pid)&&(f.current=null,G.current&&(G.current.style.display="none"),!!e))if(e.zone==="time"){const[a,n]=ht(e);z({day:X(L[e.col]),endDay:X(L[e.col]),startMin:a,endMin:n})}else{const[a,n]=e.moved?[Math.min(e.col,e.cur.col),Math.max(e.col,e.cur.col)]:[e.col,e.col];z({day:X(L[a]),endDay:X(L[n]),startMin:null,endMin:0})}},qt=()=>{f.current=null,G.current&&(G.current.style.display="none")},_t=t=>{const e=t.target,a=e.closest(".amx-cal-allday2")?"all":e.closest(".amx-cal-daycol2")?"time":null;if(!a||!i)return null;const n=ft(t),m=X(L[n.col]),g=Math.min(n.min,1410);return{zone:a,col:n.col,s:g,value:a==="all"?m:`${m}T${yt(g)}/${m}T${yt(g+30)}`}},Ot=()=>{G.current&&(G.current.style.display="none")},ce=t=>{if(!C||!t.dataTransfer.types.includes(de))return;t.preventDefault(),t.dataTransfer.dropEffect="move";const e=_t(t),a=G.current;if(a){if(!e){Ot();return}a.style.display="block",a.style.left=`${e.col*i+(e.zone==="all"?4:2)}px`,a.style.width=`${i-(e.zone==="all"?8:4)}px`,a.style.top=`${e.zone==="all"?wt+14+3:Z+e.s/60*$}px`,a.style.height=e.zone==="all"?"20px":`${30/60*$}px`,a.textContent=e.zone==="all"?"":`${yt(e.s)}–${yt(e.s+30)}`}},Kt=t=>{if(!C||!t.dataTransfer.types.includes(de))return;t.preventDefault(),Ot();const e=_t(t);if(e)try{C(JSON.parse(t.dataTransfer.getData(de)),e.value)}catch{}},s=u.useMemo(()=>{const t=p.filter(n=>n.allDay&&!_n(n)).sort((n,m)=>+Q(n.start)-+Q(m.start)||+Q(m.end??m.start)-+Q(n.end??n.start)),e=[],a=new Map;for(const n of t){const m=+Q(n.start);let g=e.findIndex(R=>R<m);g<0&&(g=e.length),e[g]=+Q(n.end??n.start),a.set(n.key,g)}return{list:t,lane:a}},[p]),c=t=>!!ct&&ct[2]==="null"&&X(t)>=ct[0]&&X(t)<=ct[1];return r.jsxs("div",{className:"amx-cal-timerow",style:{"--amx-hour-px":`${$}px`},children:[r.jsx("div",{className:"amx-cal-gutterfixed",children:r.jsxs("div",{className:"amx-cal-gutterinner",children:[r.jsx("div",{className:"amx-cal-gcorner",style:{height:wt+14}}),r.jsx("div",{className:"amx-cal-gallday",style:{height:S},children:F("calview.allDay")}),r.jsxs("div",{className:"amx-cal-ghours",ref:Y,children:[Me.map(t=>r.jsx("div",{className:"amx-cal-hour",style:{height:$},children:t===0?"":`${t}:00`},t)),r.jsxs("span",{className:"amx-cal-nowlabel",style:{top:o/60*$},children:[String(Math.floor(o/60)).padStart(2,"0"),":",String(o%60).padStart(2,"0")]})]})]})}),r.jsx("div",{className:"amx-cal-tscroll",ref:q,onScroll:()=>{at(),it()},onPointerLeave:mt,children:r.jsxs("div",{className:"amx-cal-tgrid2",style:{gridTemplateColumns:`repeat(${L.length}, ${i}px)`,gridTemplateRows:`${wt+14}px auto ${Me.length*$}px`},onPointerDown:le,onPointerMove:oe,onPointerUp:Pt,onPointerCancel:qt,onLostPointerCapture:()=>{f.current&&Pt()},onDragOver:ce,onDragLeave:t=>{t.relatedTarget instanceof Node&&t.currentTarget.contains(t.relatedTarget)||Ot()},onDrop:Kt,children:[L.map(t=>r.jsxs("div",{className:`amx-cal-thead2${At(t,lt)?" today":""}`,children:[r.jsx("span",{className:"amx-cal-tdow",children:De(t.getDay())}),r.jsxs("span",{className:"amx-cal-tdate",children:[t.getMonth()+1,"/",t.getDate()]})]},+t)),L.map(t=>{const e=s.list.filter(n=>Ae(n.start,n.end,t)),a=[];for(const n of e)a[s.lane.get(n.key)??0]=n;return r.jsxs("div",{className:"amx-cal-allday2","data-date":X(t),onClick:N?void 0:n=>{n.target.closest(".amx-cal-chip-ev")||O()||V(t,null,ut(n))},children:[Array.from(a,(n,m)=>n?r.jsx("button",{"data-key":n.key,className:`amx-cal-chip-ev amx-cal-alldrag${n.readonly?" readonly":""}${M===n.key?" cut":""}${y===n.key?" selected":""}${+Q(n.end??n.start)<+lt?" past":""}${ge(n.start,n.end,t)}`,style:Tt(n.color),"aria-label":F("calview.a11yAllDayEvent",{title:n.title}),title:n.readonly?n.title:F("calview.allDayDragHint",{title:n.title}),onPointerDown:g=>Nt(n,g),onPointerUp:g=>Ut(n,g),onPointerCancel:()=>{kt.current=null},onClick:g=>{(n.readonly||!N&&y!==n.key||g.detail===0)&&H(n.key,ut(g))},children:n.title},n.key):r.jsx("span",{className:"amx-cal-chip-gap"},`gap${m}`)),c(t)&&r.jsx(We,{day:t,colorOf:P})]},+t)}),L.map(t=>r.jsxs("div",{className:"amx-cal-daycol2","data-date":X(t),onClick:N?void 0:e=>{if(e.target.closest(".amx-cal-event")||O())return;const a=e.currentTarget.getBoundingClientRect(),n=rt(e.currentTarget)||1,m=Math.max(0,Math.min(1410,Lt((e.clientY-a.top)/n/$*60)));V(t,m,{left:e.clientX,top:e.clientY,right:e.clientX,bottom:e.clientY,zoom:n})},children:[(()=>{const e=p.filter(n=>!n.allDay&&At(n.start,t)),a=Un(e);return e.map(n=>{const m=Ce(n.start,n.end,$),g=a.get(n.key)??{leftPct:0,widthPct:100},R=m.height<he,E=(n.end??n.start).getTime()<T;return r.jsxs("button",{"data-key":n.key,className:`amx-cal-event${n.readonly?" readonly":""}${M===n.key?" cut":""}${y===n.key?" selected":""}${R?" short":""}${E?" past":""}${n.check?" todo":""}${n.done?" done":""}`,style:{...Tt(n.color),top:m.top,height:Math.max(14,m.height),left:`calc(${g.leftPct}% + 2px)`,width:`calc(${g.widthPct}% - 4px)`},"aria-label":n.end?F("calview.a11yEventRange",{title:n.title,start:tt(n.start),end:tt(n.end)}):F("calview.a11yEvent",{title:n.title,time:tt(n.start)}),title:n.title,onPointerDown:w=>bt(n,w),onPointerMove:zt,onPointerUp:w=>Ht(n,w),onPointerCancel:vt,onLostPointerCapture:vt,onClick:w=>{(n.readonly||!N&&y!==n.key||w.detail===0)&&H(n.key,ut(w))},children:[n.check&&r.jsx("span",{className:"amx-cal-event-check",role:"checkbox","aria-checked":!!n.done,"aria-label":F("calview.a11yDone",{title:n.title}),onPointerDown:w=>w.stopPropagation(),onClick:w=>{w.stopPropagation(),n.db.readonly||(Cn(n.db,n.row.rowId,n.check,n.done?void 0:!0),n.done||ue("todo.done"))}}),r.jsx("span",{className:"amx-cal-event-title",children:n.title}),r.jsx("span",{className:"amx-cal-event-t",children:R||!n.end?tt(n.start):`${tt(n.start)}–${tt(n.end)}`}),!N&&y===n.key&&!n.readonly&&i*g.widthPct/100>=88&&r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"amx-cal-handle start","aria-label":F("calview.resizeStart"),onPointerDown:w=>bt(n,w,"start")}),r.jsx("span",{className:"amx-cal-handle end","aria-label":F("calview.resizeEnd"),onPointerDown:w=>bt(n,w,"end")})]})]},n.key)})})(),ct&&ct[2]!=="null"&&ct[0]===X(t)&&r.jsx(Kn,{hourPx:$,colorOf:P}),r.jsx("div",{className:`amx-cal-nowline${At(t,lt)?" today":""}`,style:{top:o/60*$}})]},+t)),r.jsx("div",{className:"amx-cal-hoverslot",ref:J}),r.jsx("div",{className:"amx-cal-making",ref:G,style:Tt(P(null))})]})})]})}),Gn=u.forwardRef(function({anchorRef:d,events:h,selectedKey:p,cutKey:y,onPick:M,canCreate:H,onDismiss:I,onDraft:O,colorOf:z,onCreate:P,titleRef:C},V){const{t:x}=Rt(),j=u.useRef(null),[A,F]=u.useState(0),q=v(f=>f.setVisibleRange),Y=v(Be),i=Y?Y.split("|"):null,b=u.useMemo(()=>Q(new Date),[]),S=u.useMemo(()=>{const f=Ct(ie(b),-$e*7);return Array.from({length:$e*2+1},(o,k)=>Ct(f,k*7))},[b]),_=u.useRef(!1),[$,gt]=u.useState(null),xt=u.useRef(""),ct=u.useRef(-1),it=u.useRef(null);u.useEffect(()=>()=>q(null,null),[q]);const lt=(f,o)=>Math.round(It(ie(new Date(f,o,1)),S[0])/7),L=()=>{const f=j.current;if(!f||!A)return;const o=Math.max(0,Math.min(S.length-1,Math.round(f.scrollTop/A))),k=Ct(S[o],3),T=qe(k);if(d&&(d.current={y:k.getFullYear(),m:k.getMonth()}),T!==xt.current&&(xt.current=T,C.current&&(C.current.textContent=T,delete C.current.dataset.week)),o!==ct.current){ct.current=o;const at=Math.max(1,Math.round(f.clientHeight/A)),ot=S[Math.min(S.length-1,o+at-1)];q(X(S[o]),X(Ct(ot,6)))}};u.useLayoutEffect(()=>{const f=j.current;if(!f)return;const o=()=>{f.clientHeight&&F(Math.max(64,(f.clientHeight-wt)/6))};o();const k=new ResizeObserver(o);return k.observe(f),()=>k.disconnect()},[]),u.useLayoutEffect(()=>{const f=j.current;if(!f||!A||_.current)return;_.current=!0;const o=d?.current;if(o){let k=Math.max(0,Math.min(S.length-1,lt(o.y,o.m)));Ct(S[k],3).getMonth()!==o.m&&k+1<S.length&&(k+=1),f.scrollTop=k*A}else f.scrollTop=lt(b.getFullYear(),b.getMonth())*A;L()},[A]),u.useImperativeHandle(V,()=>({prev:()=>W(-1),next:()=>W(1),today:()=>j.current?.scrollTo({top:lt(b.getFullYear(),b.getMonth())*A,behavior:"smooth"}),goto:f=>{if(!A)return;const o=Math.max(0,Math.min(S.length-1,Math.round(It(ie(f),S[0])/7)));j.current?.scrollTo({top:o*A,behavior:"smooth"})}}),[A]);const W=f=>{const o=j.current;if(!o||!A)return;const k=Math.max(0,Math.min(S.length-1,Math.round(o.scrollTop/A))),T=Ct(S[k],3);o.scrollTo({top:Math.max(0,lt(T.getFullYear(),T.getMonth()+f))*A,behavior:"smooth"})},K=u.useRef(null),Et=(f,o)=>{o.stopPropagation(),!(o.button!==0||f.readonly||!N&&p!==f.key)&&(K.current={x:o.clientX,y:o.clientY},o.currentTarget.setPointerCapture(o.pointerId))},nt=(f,o)=>{const k=K.current;if(K.current=null,!k)return;const T=ut(o);if(Math.hypot(o.clientX-k.x,o.clientY-k.y)<5){M(f.key,T);return}if(f.readonly){M(f.key,T);return}const ot=document.elementFromPoint(o.clientX,o.clientY)?.closest(".amx-cal-mcell")?.getAttribute("data-date");if(ot){const D=It(et(ot),f.start);if(D!==0){Dt(f,se(f.start,D),f.end?se(f.end,D):null);return}}M(f.key,T)},St=f=>document.elementFromPoint(f.clientX,f.clientY)?.closest(".amx-cal-mcell")?.getAttribute("data-date")??null,dt=(f,o)=>{j.current?.querySelectorAll(".amx-cal-mcell").forEach(k=>{const T=k.dataset.date??"";k.classList.toggle("making",!!f&&!!o&&T>=f&&T<=o)})},G=f=>{if(!N||f.button!==0||f.pointerType==="touch")return;const o=f.target;if(o.closest(".amx-cal-chip-ev, .amx-cal-more, .amx-cal-draft"))return;const k=o.closest(".amx-cal-mcell")?.getAttribute("data-date");if(!k)return;const T=I();j.current?.closest(".amx-cal")?.focus({preventScroll:!0}),!(T||!H)&&(f.preventDefault(),f.currentTarget.setPointerCapture(f.pointerId),it.current={pid:f.pointerId,a:k,b:k,moved:!1})},J=f=>{const o=it.current;if(!o||f.pointerId!==o.pid)return;if(f.pointerType==="mouse"&&f.buttons===0){mt();return}const k=St(f);!k||k===o.b||(o.b=k,o.moved=!0,dt(o.a<k?o.a:k,o.a<k?k:o.a))},mt=f=>{const o=it.current;if(o&&f&&f.pointerId!==o.pid||(it.current=null,!o))return;o.moved&&dt(null,null);const[k,T]=o.a<o.b?[o.a,o.b]:[o.b,o.a];O({day:k,endDay:T,startMin:null,endMin:0})},U=()=>{it.current?.moved&&dt(null,null),it.current=null};return r.jsxs("div",{className:"amx-cal-mscroll",ref:j,onScroll:L,children:[r.jsx("div",{className:"amx-cal-weekhead2",children:gn().map(f=>r.jsx("div",{children:f},f))}),r.jsx("div",{className:"amx-cal-mweeks",onPointerDown:G,onPointerMove:J,onPointerUp:mt,onPointerCancel:U,children:S.map(f=>r.jsx("div",{className:"amx-cal-mweek",style:{height:A},children:xn(f,7).map(o=>{const k=X(o),T=h.filter(D=>Ae(D.start,D.end,o)),at=!!i&&k>=i[0]&&k<=i[1],ot=at?2:3;return r.jsxs("div",{className:`amx-cal-mcell${At(o,b)?" today":""}`,"data-date":k,onClick:N?void 0:D=>{D.target.closest(".amx-cal-chip-ev")||I()||P(o,{left:D.clientX,top:D.clientY,right:D.clientX,bottom:D.clientY,zoom:rt(D.currentTarget)||1})},children:[r.jsx("div",{className:"amx-cal-mnum",children:o.getDate()===1?x("calview.monthFirst",{m:o.getMonth()+1}):o.getDate()}),at&&r.jsx(We,{day:o,colorOf:z}),T.slice(0,ot).map(D=>r.jsxs("button",{"data-key":D.key,className:`amx-cal-chip-ev${D.readonly?" readonly":""}${p===D.key?" selected":""}${ge(D.start,D.end,o)}`,style:Tt(D.color),title:D.title,"aria-label":!D.allDay&&At(D.start,o)?x("calview.a11yEvent",{title:D.title,time:tt(D.start)}):D.title,onPointerDown:Z=>Et(D,Z),onPointerUp:Z=>nt(D,Z),onPointerCancel:()=>{K.current=null},onClick:Z=>{(D.readonly||!N&&p!==D.key||Z.detail===0)&&M(D.key,ut(Z))},children:[!D.allDay&&At(D.start,o)&&r.jsx("span",{className:"amx-cal-chip-t",children:tt(D.start)})," ",D.title]},D.key)),T.length>ot&&r.jsx("button",{className:"amx-cal-more","aria-label":x("calview.a11yMoreEvents",{m:o.getMonth()+1,d:o.getDate(),n:T.length}),onClick:D=>gt({day:o,events:T,at:ut(D)}),children:x("calview.moreItems",{n:T.length-ot})})]},+o)})},+f))}),$&&r.jsx(Jn,{day:$.day,events:$.events,at:$.at,onPick:(f,o)=>{gt(null),M(f,o)},onClose:()=>gt(null)})]})});function Jn({day:l,events:d,at:h,onPick:p,onClose:y}){const{t:M}=Rt(),H=292,I=h.zoom||1,O=12*I,z=Math.max(O,Math.min(h.left,window.innerWidth-H*I-O))/I,P=Math.max(O,Math.min(h.bottom+6*I,window.innerHeight-356*I-O))/I,C=u.useRef(null),V=u.useRef(y);return V.current=y,u.useEffect(()=>{const x=document.activeElement instanceof HTMLElement?document.activeElement:null;C.current?.querySelector(".amx-cal-agenda-list > button")?.focus();const j=A=>{A.key==="Escape"&&(A.preventDefault(),V.current())};return window.addEventListener("keydown",j),()=>{window.removeEventListener("keydown",j),x?.focus()}},[]),r.jsx("div",{className:"amx-cal-agenda-overlay",onMouseDown:y,children:r.jsxs("section",{className:"amx-cal-agenda",ref:C,role:"dialog","aria-modal":"true","aria-label":M("calview.a11yDayEvents",{m:l.getMonth()+1,d:l.getDate()}),style:{left:z,top:P,width:H},onMouseDown:x=>x.stopPropagation(),children:[r.jsxs("header",{children:[r.jsx("strong",{children:M("calview.dayHeading",{m:l.getMonth()+1,d:l.getDate()})}),r.jsx("button",{onClick:y,"aria-label":M("calview.closeAgenda"),children:"×"})]}),r.jsx("div",{className:"amx-cal-agenda-list",children:d.map(x=>r.jsxs("button",{style:Tt(x.color),onClick:j=>p(x.key,ut(j)),children:[r.jsx("span",{className:"amx-cal-agenda-time",children:x.allDay?M("calview.allDay"):tt(x.start)}),r.jsx("span",{children:x.title})]},x.key))})]})})}export{xa as CalendarView,Gn as MonthScroll};
@@ -1 +1 @@
1
- import{r as s,j as r}from"./index-fDB1l4d-.js";import{a8 as D,T as k,X as C,aj as A}from"./pageStore-CyvNZEYX.js";import"./client-fKy9CWk0.js";import{aG as L,S}from"./appStore-DDOkzWDA.js";function O({label:u,children:g,items:w,className:E="capability-menu-trigger",searchLabel:d,selection:p=!1,disabled:j=!1,acceptsDrag:y}){const b=s.useId(),a=s.useRef(null),l=s.useRef(null),[n,f]=s.useState(null),[h,x]=s.useState(""),i=(e=!0)=>{f(null),x(""),e&&a.current?.isConnected&&a.current.focus()},m=()=>{const e=a.current?.getBoundingClientRect();e&&f({x:e.left,y:e.bottom+4,top:e.top})};s.useEffect(()=>{if(!n)return;const e=c=>{!l.current?.contains(c.target)&&!a.current?.contains(c.target)&&i(!1)},t=c=>{if(l.current?.contains(c.target))return;const o=a.current?.getBoundingClientRect();if(!o||!a.current?.isConnected){i(!1);return}(Math.abs(o.left-n.x)>1||Math.abs(o.bottom+4-n.y)>1)&&f({x:o.left,y:o.bottom+4,top:o.top})};return document.addEventListener("pointerdown",e),window.addEventListener("resize",t),document.addEventListener("scroll",t,!0),()=>{document.removeEventListener("pointerdown",e),window.removeEventListener("resize",t),document.removeEventListener("scroll",t,!0)}},[n]),s.useEffect(()=>{if(!n||L())return;const e=l.current;(e?.querySelector("input")||e?.querySelector('[aria-checked="true"]:not(:disabled), button:not(:disabled)'))?.focus({preventScroll:!0})},[!!n]);const v=w.filter(e=>e.label.toLowerCase().includes(h.trim().toLowerCase()));return r.jsxs(r.Fragment,{children:[r.jsx("button",{ref:a,type:"button",className:E,"aria-label":u,title:u,"aria-haspopup":"menu","aria-expanded":!!n,"aria-controls":n?b:void 0,disabled:j,onDragEnter:e=>{y?.(e.dataTransfer)&&(e.preventDefault(),n||m())},onDragOver:e=>{y?.(e.dataTransfer)&&e.preventDefault()},onClick:()=>n?i():m(),onKeyDown:e=>{(e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),m())},children:g||r.jsxs(r.Fragment,{children:[r.jsx("span",{children:u}),r.jsx(D,{size:13})]})}),n&&k.createPortal(r.jsx("div",{className:"ui-popover-backdrop",style:{pointerEvents:"none"},children:r.jsxs(C,{style:{pointerEvents:"auto"},x:n.x,y:n.y,anchorTop:n.top,innerRef:e=>{l.current=e},id:b,className:`ui-popover capability-menu${p?" capability-menu-selection":""}`,role:"menu","aria-label":u,onKeyDown:e=>{if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),i();return}if(e.key==="Tab"){i();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key)||e.target instanceof HTMLInputElement&&["Home","End"].includes(e.key))return;e.preventDefault(),e.stopPropagation();const t=Array.from(l.current?.querySelectorAll("button:not(:disabled)")||[]),c=t.indexOf(document.activeElement),o=e.key==="Home"?0:e.key==="End"?t.length-1:(c+(e.key==="ArrowDown"?1:-1)+t.length)%t.length;t[o]?.focus()},children:[d&&r.jsxs("label",{className:"capability-menu-search",children:[r.jsx(S,{size:14}),r.jsx("input",{"aria-label":d,placeholder:d,value:h,onChange:e=>x(e.target.value)})]}),r.jsx("div",{className:"capability-menu-items",children:v.map(e=>r.jsxs("button",{type:"button",role:p?"menuitemradio":"menuitem","aria-label":e.label,"aria-checked":p?!!e.selected:void 0,disabled:e.disabled,className:`${e.danger?"danger":""}${e.dropActive?" capability-menu-drop":""}`,onDragOver:e.onDragOver,onDragLeave:e.onDragLeave,onDrop:e.onDrop,onClick:()=>{i(),e.onSelect()},children:[r.jsx("span",{className:"capability-menu-icon",children:e.icon}),r.jsx("span",{children:e.label}),e.hint&&r.jsx("small",{className:"capability-menu-hint",children:e.hint}),e.selected&&r.jsx(A,{size:14})]},e.id))})]})}),document.body)]})}export{O as C};
1
+ import{r as s,j as r}from"./index-YuejkHoJ.js";import{a8 as D,T as k,X as C,aj as A}from"./pageStore-D_fKLv-o.js";import"./client-DD5czSuF.js";import{aA as L,S}from"./appStore-BskcSDl6.js";function O({label:u,children:g,items:w,className:E="capability-menu-trigger",searchLabel:d,selection:p=!1,disabled:j=!1,acceptsDrag:y}){const b=s.useId(),a=s.useRef(null),l=s.useRef(null),[n,f]=s.useState(null),[h,x]=s.useState(""),i=(e=!0)=>{f(null),x(""),e&&a.current?.isConnected&&a.current.focus()},m=()=>{const e=a.current?.getBoundingClientRect();e&&f({x:e.left,y:e.bottom+4,top:e.top})};s.useEffect(()=>{if(!n)return;const e=c=>{!l.current?.contains(c.target)&&!a.current?.contains(c.target)&&i(!1)},t=c=>{if(l.current?.contains(c.target))return;const o=a.current?.getBoundingClientRect();if(!o||!a.current?.isConnected){i(!1);return}(Math.abs(o.left-n.x)>1||Math.abs(o.bottom+4-n.y)>1)&&f({x:o.left,y:o.bottom+4,top:o.top})};return document.addEventListener("pointerdown",e),window.addEventListener("resize",t),document.addEventListener("scroll",t,!0),()=>{document.removeEventListener("pointerdown",e),window.removeEventListener("resize",t),document.removeEventListener("scroll",t,!0)}},[n]),s.useEffect(()=>{if(!n||L())return;const e=l.current;(e?.querySelector("input")||e?.querySelector('[aria-checked="true"]:not(:disabled), button:not(:disabled)'))?.focus({preventScroll:!0})},[!!n]);const v=w.filter(e=>e.label.toLowerCase().includes(h.trim().toLowerCase()));return r.jsxs(r.Fragment,{children:[r.jsx("button",{ref:a,type:"button",className:E,"aria-label":u,title:u,"aria-haspopup":"menu","aria-expanded":!!n,"aria-controls":n?b:void 0,disabled:j,onDragEnter:e=>{y?.(e.dataTransfer)&&(e.preventDefault(),n||m())},onDragOver:e=>{y?.(e.dataTransfer)&&e.preventDefault()},onClick:()=>n?i():m(),onKeyDown:e=>{(e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),m())},children:g||r.jsxs(r.Fragment,{children:[r.jsx("span",{children:u}),r.jsx(D,{size:13})]})}),n&&k.createPortal(r.jsx("div",{className:"ui-popover-backdrop",style:{pointerEvents:"none"},children:r.jsxs(C,{style:{pointerEvents:"auto"},x:n.x,y:n.y,anchorTop:n.top,innerRef:e=>{l.current=e},id:b,className:`ui-popover capability-menu${p?" capability-menu-selection":""}`,role:"menu","aria-label":u,onKeyDown:e=>{if(e.key==="Escape"){e.preventDefault(),e.stopPropagation(),i();return}if(e.key==="Tab"){i();return}if(!["ArrowDown","ArrowUp","Home","End"].includes(e.key)||e.target instanceof HTMLInputElement&&["Home","End"].includes(e.key))return;e.preventDefault(),e.stopPropagation();const t=Array.from(l.current?.querySelectorAll("button:not(:disabled)")||[]),c=t.indexOf(document.activeElement),o=e.key==="Home"?0:e.key==="End"?t.length-1:(c+(e.key==="ArrowDown"?1:-1)+t.length)%t.length;t[o]?.focus()},children:[d&&r.jsxs("label",{className:"capability-menu-search",children:[r.jsx(S,{size:14}),r.jsx("input",{"aria-label":d,placeholder:d,value:h,onChange:e=>x(e.target.value)})]}),r.jsx("div",{className:"capability-menu-items",children:v.map(e=>r.jsxs("button",{type:"button",role:p?"menuitemradio":"menuitem","aria-label":e.label,"aria-checked":p?!!e.selected:void 0,disabled:e.disabled,className:`${e.danger?"danger":""}${e.dropActive?" capability-menu-drop":""}`,onDragOver:e.onDragOver,onDragLeave:e.onDragLeave,onDrop:e.onDrop,onClick:()=>{i(),e.onSelect()},children:[r.jsx("span",{className:"capability-menu-icon",children:e.icon}),r.jsx("span",{children:e.label}),e.hint&&r.jsx("small",{className:"capability-menu-hint",children:e.hint}),e.selected&&r.jsx(A,{size:14})]},e.id))})]})}),document.body)]})}export{O as C};
@@ -1 +1 @@
1
- import{r as D,u as P,j as r,a as O}from"./index-fDB1l4d-.js";import{p as H,R as S,a6 as T}from"./pageStore-CyvNZEYX.js";import"./client-fKy9CWk0.js";import{hx as E,f4 as $}from"./appStore-DDOkzWDA.js";import{M as X}from"./magnet-Cqmm97W8.js";const Y=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],b=H("map",Y),B=18,L=(e,n)=>e.x<n.x+n.w&&e.x+e.w>n.x&&e.y<n.y+n.h&&e.y+e.h>n.y,W=(e,n)=>({x:e.x-n,y:e.y-n,w:e.w+n*2,h:e.h+n*2});function J(e,n,m={x:0,y:0},u=B,i){if(!e.length||!n.length)return{x:0,y:0};const x=n.map(o=>W(o,Math.max(0,u))),d=(o,a)=>e.every(f=>{const h={...f,x:f.x+o,y:f.y+a};return i&&(h.x<i.x||h.y<i.y||h.x+h.w>i.x+i.w||h.y+h.h>i.y+i.h)?!1:x.every(M=>!L(h,M))});if(d(0,0))return{x:0,y:0};const y=new Set([0]),c=new Set([0]);for(const o of e)for(const a of x)y.add(Math.floor(a.x-(o.x+o.w))),y.add(Math.ceil(a.x+a.w-o.x)),c.add(Math.floor(a.y-(o.y+o.h))),c.add(Math.ceil(a.y+a.h-o.y));const g=Math.hypot(m.x,m.y);let s=null;for(const o of y)for(const a of c){if(!d(o,a))continue;const f=g?(o*m.x+a*m.y)/g:0,h=o!==0&&a!==0?.1:0,M=o*o+a*a+h-f*.001;(!s||M<s.score)&&(s={x:o,y:a,score:M})}return s?{x:s.x,y:s.y}:{x:0,y:0}}O({"cvminimap.aria":{zh:"画布缩略图",en:"Canvas minimap"},"cvminimap.hint":{zh:"画布缩略图:点击或拖动以导航",en:"Canvas minimap: click or drag to navigate"}});const w=184,z=112,R=7;function K({hostRef:e,vp:n,items:m,onCenter:u}){const i=D.useRef(!1),{t:x}=P(),d=e.current;if(!d||!m.length)return null;const y=S(d)||1,c=d.getBoundingClientRect(),g={x:-n.x/n.z,y:-n.y/n.z,w:Math.max(1,c.width/y/n.z),h:Math.max(1,c.height/y/n.z)},s=[...m.map(t=>t.box),g],o=Math.min(...s.map(t=>t.x)),a=Math.min(...s.map(t=>t.y)),f=Math.max(...s.map(t=>t.x+t.w)),h=Math.max(...s.map(t=>t.y+t.h)),M=Math.max(1,f-o),v=Math.max(1,h-a),l=Math.min((w-R*2)/M,(z-R*2)/v),C=(w-M*l)/2-o*l,j=(z-v*l)/2-a*l,I=t=>({x:C+t.x*l,y:j+t.y*l,w:Math.max(1.5,t.w*l),h:Math.max(1.5,t.h*l)}),N=t=>{const p=t.currentTarget.getBoundingClientRect(),A=(t.clientX-p.left)/Math.max(1,p.width)*w,_=(t.clientY-p.top)/Math.max(1,p.height)*z;u((A-C)/l,(_-j)/l)},k=I(g);return r.jsx("div",{className:"amx-stage-minimap",role:"navigation","aria-label":x("cvminimap.aria"),title:x("cvminimap.hint"),onPointerDown:t=>{t.preventDefault(),t.stopPropagation(),i.current=!0;try{t.currentTarget.setPointerCapture(t.pointerId)}catch{}N(t)},onPointerMove:t=>{i.current&&(t.preventDefault(),t.stopPropagation(),N(t))},onPointerUp:t=>{i.current=!1;try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}},onPointerCancel:()=>{i.current=!1},children:r.jsxs("svg",{viewBox:`0 0 ${w} ${z}`,"aria-hidden":"true",children:[m.map(t=>{const p=I(t.box);return r.jsx("rect",{className:`amx-mini-item is-${t.kind}`,"data-mini-key":t.key,x:p.x,y:p.y,width:p.w,height:p.h,rx:t.kind==="frame"?2:1.5},t.key)}),r.jsx("rect",{className:"amx-mini-viewport",x:k.x,y:k.y,width:k.w,height:k.h,rx:"2"})]})})}O({"ckchrome.zoomOut":{zh:"缩小",en:"Zoom out"},"ckchrome.zoomIn":{zh:"放大",en:"Zoom in"},"ckchrome.zoomReset":{zh:"重置为 100%",en:"Reset to 100%"},"ckchrome.fit":{zh:"适应内容",en:"Fit to content"},"ckchrome.snap":{zh:"点阵吸附",en:"Snap to grid"},"ckchrome.snapOff":{zh:"关闭点阵吸附",en:"Turn off snap to grid"},"ckchrome.snapOn":{zh:"开启点阵吸附",en:"Turn on snap to grid"},"ckchrome.miniHide":{zh:"隐藏缩略图",en:"Hide minimap"},"ckchrome.miniShow":{zh:"显示缩略图",en:"Show minimap"}});function Q({zoom:e,onZoomBy:n,onFit:m,snap:u,onSnap:i,mini:x,onMini:d,extra:y}){const{t:c}=P();return r.jsxs("div",{className:"amx-stage-hud",children:[r.jsx("button",{type:"button",onClick:()=>n(1/1.2),title:c("ckchrome.zoomOut"),children:r.jsx(E,{size:12})}),r.jsx("button",{type:"button",className:"amx-hud-zoom",onClick:()=>n(1/e),title:c("ckchrome.zoomReset"),children:r.jsxs("span",{children:[Math.round(e*100),"%"]})}),r.jsx("button",{type:"button",onClick:()=>n(1.2),title:c("ckchrome.zoomIn"),children:r.jsx(T,{size:12})}),r.jsx("button",{type:"button",onClick:m,title:c("ckchrome.fit"),children:r.jsx($,{size:12})}),y,i&&r.jsx("button",{type:"button",className:`amx-snap-toggle${u?" is-on":""}`,"aria-pressed":!!u,"aria-label":c("ckchrome.snap"),title:c(u?"ckchrome.snapOff":"ckchrome.snapOn"),onClick:()=>i(!u),children:r.jsx(X,{size:12})}),r.jsx("button",{type:"button",className:x?"is-on":"","aria-pressed":x,title:c(x?"ckchrome.miniHide":"ckchrome.miniShow"),onClick:()=>d(!x),children:r.jsx(b,{size:12})})]})}export{K as C,b as M,Q as a,J as r};
1
+ import{r as D,u as P,j as r,a as O}from"./index-YuejkHoJ.js";import{p as H,R as S,a6 as T}from"./pageStore-D_fKLv-o.js";import"./client-DD5czSuF.js";import{gZ as E,eV as $}from"./appStore-BskcSDl6.js";import{M as X}from"./magnet-BmVcZ9U4.js";const Y=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],b=H("map",Y),B=18,L=(n,e)=>n.x<e.x+e.w&&n.x+n.w>e.x&&n.y<e.y+e.h&&n.y+n.h>e.y,V=(n,e)=>({x:n.x-e,y:n.y-e,w:n.w+e*2,h:n.h+e*2});function G(n,e,m={x:0,y:0},u=B,i){if(!n.length||!e.length)return{x:0,y:0};const x=e.map(o=>V(o,Math.max(0,u))),d=(o,a)=>n.every(f=>{const h={...f,x:f.x+o,y:f.y+a};return i&&(h.x<i.x||h.y<i.y||h.x+h.w>i.x+i.w||h.y+h.h>i.y+i.h)?!1:x.every(M=>!L(h,M))});if(d(0,0))return{x:0,y:0};const y=new Set([0]),c=new Set([0]);for(const o of n)for(const a of x)y.add(Math.floor(a.x-(o.x+o.w))),y.add(Math.ceil(a.x+a.w-o.x)),c.add(Math.floor(a.y-(o.y+o.h))),c.add(Math.ceil(a.y+a.h-o.y));const g=Math.hypot(m.x,m.y);let s=null;for(const o of y)for(const a of c){if(!d(o,a))continue;const f=g?(o*m.x+a*m.y)/g:0,h=o!==0&&a!==0?.1:0,M=o*o+a*a+h-f*.001;(!s||M<s.score)&&(s={x:o,y:a,score:M})}return s?{x:s.x,y:s.y}:{x:0,y:0}}O({"cvminimap.aria":{zh:"画布缩略图",en:"Canvas minimap"},"cvminimap.hint":{zh:"画布缩略图:点击或拖动以导航",en:"Canvas minimap: click or drag to navigate"}});const w=184,z=112,R=7;function J({hostRef:n,vp:e,items:m,onCenter:u}){const i=D.useRef(!1),{t:x}=P(),d=n.current;if(!d||!m.length)return null;const y=S(d)||1,c=d.getBoundingClientRect(),g={x:-e.x/e.z,y:-e.y/e.z,w:Math.max(1,c.width/y/e.z),h:Math.max(1,c.height/y/e.z)},s=[...m.map(t=>t.box),g],o=Math.min(...s.map(t=>t.x)),a=Math.min(...s.map(t=>t.y)),f=Math.max(...s.map(t=>t.x+t.w)),h=Math.max(...s.map(t=>t.y+t.h)),M=Math.max(1,f-o),v=Math.max(1,h-a),l=Math.min((w-R*2)/M,(z-R*2)/v),C=(w-M*l)/2-o*l,j=(z-v*l)/2-a*l,I=t=>({x:C+t.x*l,y:j+t.y*l,w:Math.max(1.5,t.w*l),h:Math.max(1.5,t.h*l)}),N=t=>{const p=t.currentTarget.getBoundingClientRect(),A=(t.clientX-p.left)/Math.max(1,p.width)*w,_=(t.clientY-p.top)/Math.max(1,p.height)*z;u((A-C)/l,(_-j)/l)},k=I(g);return r.jsx("div",{className:"amx-stage-minimap",role:"navigation","aria-label":x("cvminimap.aria"),title:x("cvminimap.hint"),onPointerDown:t=>{t.preventDefault(),t.stopPropagation(),i.current=!0;try{t.currentTarget.setPointerCapture(t.pointerId)}catch{}N(t)},onPointerMove:t=>{i.current&&(t.preventDefault(),t.stopPropagation(),N(t))},onPointerUp:t=>{i.current=!1;try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}},onPointerCancel:()=>{i.current=!1},children:r.jsxs("svg",{viewBox:`0 0 ${w} ${z}`,"aria-hidden":"true",children:[m.map(t=>{const p=I(t.box);return r.jsx("rect",{className:`amx-mini-item is-${t.kind}`,"data-mini-key":t.key,x:p.x,y:p.y,width:p.w,height:p.h,rx:t.kind==="frame"?2:1.5},t.key)}),r.jsx("rect",{className:"amx-mini-viewport",x:k.x,y:k.y,width:k.w,height:k.h,rx:"2"})]})})}O({"ckchrome.zoomOut":{zh:"缩小",en:"Zoom out"},"ckchrome.zoomIn":{zh:"放大",en:"Zoom in"},"ckchrome.zoomReset":{zh:"重置为 100%",en:"Reset to 100%"},"ckchrome.fit":{zh:"适应内容",en:"Fit to content"},"ckchrome.snap":{zh:"点阵吸附",en:"Snap to grid"},"ckchrome.snapOff":{zh:"关闭点阵吸附",en:"Turn off snap to grid"},"ckchrome.snapOn":{zh:"开启点阵吸附",en:"Turn on snap to grid"},"ckchrome.miniHide":{zh:"隐藏缩略图",en:"Hide minimap"},"ckchrome.miniShow":{zh:"显示缩略图",en:"Show minimap"}});function K({zoom:n,onZoomBy:e,onFit:m,snap:u,onSnap:i,mini:x,onMini:d,extra:y}){const{t:c}=P();return r.jsxs("div",{className:"amx-stage-hud",children:[r.jsx("button",{type:"button",onClick:()=>e(1/1.2),title:c("ckchrome.zoomOut"),children:r.jsx(E,{size:12})}),r.jsx("button",{type:"button",className:"amx-hud-zoom",onClick:()=>e(1/n),title:c("ckchrome.zoomReset"),children:r.jsxs("span",{children:[Math.round(n*100),"%"]})}),r.jsx("button",{type:"button",onClick:()=>e(1.2),title:c("ckchrome.zoomIn"),children:r.jsx(T,{size:12})}),r.jsx("button",{type:"button",onClick:m,title:c("ckchrome.fit"),children:r.jsx($,{size:12})}),y,i&&r.jsx("button",{type:"button",className:`amx-snap-toggle${u?" is-on":""}`,"aria-pressed":!!u,"aria-label":c("ckchrome.snap"),title:c(u?"ckchrome.snapOff":"ckchrome.snapOn"),onClick:()=>i(!u),children:r.jsx(X,{size:12})}),r.jsx("button",{type:"button",className:x?"is-on":"","aria-pressed":x,title:c(x?"ckchrome.miniHide":"ckchrome.miniShow"),onClick:()=>d(!x),children:r.jsx(b,{size:12})})]})}export{J as C,b as M,K as a,G as r};