@forsion/unit 2.13.4 → 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 (307) hide show
  1. package/README.md +2 -2
  2. package/main.mjs +129 -10
  3. package/package.json +1 -1
  4. package/release.json +6 -5
  5. package/web/assets/ArtificialView-DHqb9CTL.js +1 -0
  6. package/web/assets/AutomationBuilder-CzBKmOiw.js +1 -0
  7. package/web/assets/CalendarConfigView-Blw47NCs.js +1 -0
  8. package/web/assets/CalendarSide-CFSzme3H.js +1 -0
  9. package/web/assets/CalendarView-B8sQfgZt.js +3 -0
  10. package/web/assets/CalendarView-t91KpUG7.css +1 -0
  11. package/web/assets/CapabilityMenu-Dzn6RbB1.js +1 -0
  12. package/web/assets/Chrome-owLewFu4.js +1 -0
  13. package/web/assets/{CodeView-GZ0BAgoW.js → CodeView-E18NDilX.js} +3 -3
  14. package/web/assets/CtxMenuButtons-CAiwQkOK.js +1 -0
  15. package/web/assets/DashboardGridView-CBbYKcCo.js +25 -0
  16. package/web/assets/DashboardGridView-RoVFSkNO.css +1 -0
  17. package/web/assets/EventCard-D9uQe7g4.js +1 -0
  18. package/web/assets/ExcalidrawCanvas-BSOERegJ.js +1 -0
  19. package/web/assets/ExcalidrawCanvas-BgcFPMpU.css +1 -0
  20. package/web/assets/FloatingToc-iK08Qpjc.js +1 -0
  21. package/web/assets/{GitCloneDialog-Bj9G3o-n.css → GitCloneDialog-DOxZk2K0.css} +1 -1
  22. package/web/assets/GitCloneDialog-DfY0kqhP.js +1 -0
  23. package/web/assets/HomepageView-BCqFe1Ym.js +4 -0
  24. package/web/assets/HomepageView-Bx8FbWlY.css +1 -0
  25. package/web/assets/ImageStudioPanels-DdwihAkT.js +3 -0
  26. package/web/assets/ImageStudioView-gJSYrmu1.js +1 -0
  27. package/web/assets/InlineAiPanel-CjYOW0_0.js +1 -0
  28. package/web/assets/InlineFiles-3g2jMUeA.js +1 -0
  29. package/web/assets/{MarkdownBlock-DQTuoen3.css → MarkdownBlock-Cqfk5DhC.css} +1 -1
  30. package/web/assets/MarkdownBlock-DjsGkPZ_.js +58 -0
  31. package/web/assets/{ModelPill-CzdNh7Mt.css → ModelPill-BiUsuhy3.css} +1 -1
  32. package/web/assets/ModelPill-DgyXBsL9.js +2 -0
  33. package/web/assets/MuseLibraryView-D_HBijmU.js +2 -0
  34. package/web/assets/MuseView-BVDlmM6i.js +7 -0
  35. package/web/assets/{PageHistoryPanel-Bn4-XmdK.js → PageHistoryPanel-B1EAPZeX.js} +2 -2
  36. package/web/assets/{PdfAnnotator-Cq8cklTz.js → PdfAnnotator-bdB9evsY.js} +3 -3
  37. package/web/assets/PenRow-DCOIGlfY.js +1 -0
  38. package/web/assets/PluginToolCard-BXE5vA1h.js +2 -0
  39. package/web/assets/PluginToolCard-BmTRr5JT.css +1 -0
  40. package/web/assets/ProductView-l5Q7uBy6.js +1 -0
  41. package/web/assets/SettingsPage-fjxfS_Mt.js +3 -0
  42. package/web/assets/StudioGuestSurface-360CWUwf.js +1 -0
  43. package/web/assets/TodoListView-BsPt2GUU.js +1 -0
  44. package/web/assets/Tooltip-CuXpWtdJ.js +1 -0
  45. package/web/assets/UnifiedPage-6xbFLtXT.js +712 -0
  46. package/web/assets/UnifiedPage-CTmQpf2T.css +1 -0
  47. package/web/assets/{ViewSelectionBar-35x8TiLA.js → ViewSelectionBar-C5FDh7fO.js} +2 -2
  48. package/web/assets/appStore-BskcSDl6.js +455 -0
  49. package/web/assets/appStore-iy8_Tmac.css +1 -0
  50. package/web/assets/arrow-up-right-DEykpgsH.js +1 -0
  51. package/web/assets/{artificial-BzLFkChP.css → artificial-BubVxExB.css} +1 -1
  52. package/web/assets/astryxBridge-B2IZdPvo.js +69 -0
  53. package/web/assets/astryxBridge-djzCiy4v.css +1 -0
  54. package/web/assets/automationListSource-Cm09JKkK.js +1 -0
  55. package/web/assets/boardSurface-Dv-aVaUJ.js +1 -0
  56. package/web/assets/calendarNavStore-FKStA7Hh.js +1 -0
  57. package/web/assets/canvasPrefs-CMulOS0k.js +1 -0
  58. package/web/assets/chatBoxSurface-BR_G6cxG.js +1 -0
  59. package/web/assets/chevron-up-C_EDOZzI.js +1 -0
  60. package/web/assets/{client-CaivGZFR.js → client-DD5czSuF.js} +5 -5
  61. package/web/assets/code-xml-vTB4LtTf.js +1 -0
  62. package/web/assets/{codeStudioStore-DhyMazGT.js → codeStudioStore-OswE1_s0.js} +8 -8
  63. package/web/assets/codingNavigation-BrkLENBZ.css +1 -0
  64. package/web/assets/contextMenuSurface-DqdYEGuH.js +1 -0
  65. package/web/assets/copy-plus-CVHqDNny.js +1 -0
  66. package/web/assets/create-DZWy4zBR.js +14 -0
  67. package/web/assets/dashboardSurface-Co4byEQm.js +1 -0
  68. package/web/assets/dbStore-Bc2lC8ZI.js +2 -0
  69. package/web/assets/deskCapture-BfTzH2aO.js +1 -0
  70. package/web/assets/{diff2html-Daje9Kkm.js → diff2html-0MkNy2ws.js} +2 -2
  71. package/web/assets/{docx-preview-CABR7n30.js → docx-preview-CwNWZegI.js} +1 -1
  72. package/web/assets/draft-DTzuTatQ.js +2 -0
  73. package/web/assets/drawingStore-BD5m2eqn.js +7 -0
  74. package/web/assets/file-down-Cjo_T6By.js +1 -0
  75. package/web/assets/floatingTocSurface-D3IIVNnq.js +1 -0
  76. package/web/assets/foldActions-utwZpRrA.js +1 -0
  77. package/web/assets/folder-DiaFWdCg.js +1 -0
  78. package/web/assets/folder-minus-DUEOcs12.js +1 -0
  79. package/web/assets/folder-plus-Cmhq0GcR.js +1 -0
  80. package/web/assets/gestures-Bx9M0le5.js +1 -0
  81. package/web/assets/git-branch-DzGWffyD.js +1 -0
  82. package/web/assets/homeCardStatus-NAk4A77P.js +1 -0
  83. package/web/assets/i18n-CAf4PT1o.css +1 -0
  84. package/web/assets/i18n.generated-D4-Wu9Wh.js +15 -0
  85. package/web/assets/imageStudio-CwG21Bat.css +1 -0
  86. package/web/assets/imageStudio-D67oElIb.js +4 -0
  87. package/web/assets/index-3VWZ1rsL.js +13 -0
  88. package/web/assets/index-58wBjkHy.js +3 -0
  89. package/web/assets/index-B9_zH7f5.js +1 -0
  90. package/web/assets/index-BQrMYjou.js +1 -0
  91. package/web/assets/index-BWrWMYua.js +1 -0
  92. package/web/assets/index-BdLJBf4-.js +1 -0
  93. package/web/assets/index-Bf3W92Hb.js +1 -0
  94. package/web/assets/index-BjmPaLFA.js +1 -0
  95. package/web/assets/index-Bv-vJTzF.js +7 -0
  96. package/web/assets/index-C7yb62gg.js +1 -0
  97. package/web/assets/index-C9gBBMYv.js +1 -0
  98. package/web/assets/index-CiQ59Kib.js +1 -0
  99. package/web/assets/{index-gt5JBIFf.js → index-CzTUjEMt.js} +2 -2
  100. package/web/assets/index-D4Qx6o3E.js +1 -0
  101. package/web/assets/index-DDBcn3UD.js +1 -0
  102. package/web/assets/index-DEADY94l.js +1 -0
  103. package/web/assets/index-DGTKsPAQ.js +1 -0
  104. package/web/assets/index-DRwDqvjf.js +1 -0
  105. package/web/assets/{index-BGfvNj7R.js → index-DexVkoxH.js} +2 -2
  106. package/web/assets/{index-O05r2Ty6.js → index-IMOhRWY8.js} +1 -1
  107. package/web/assets/index-XjvpYHIo.js +1 -0
  108. package/web/assets/index-YuejkHoJ.js +3412 -0
  109. package/web/assets/index-pH0266gX.js +1 -0
  110. package/web/assets/index-sQl_bGM_.js +1 -0
  111. package/web/assets/index-vbNFy5lS.js +1 -0
  112. package/web/assets/{invitePage-Bgveo6Hj.js → invitePage-BT_rFfab.js} +1 -1
  113. package/web/assets/{ipc-B6hkgxQL.js → ipc-8cxXGSZK.js} +1 -1
  114. package/web/assets/{jszip.min-eU-k-vEy.js → jszip.min-By4OI3XR.js} +1 -1
  115. package/web/assets/launchpad-BX4jQyF4.js +2 -0
  116. package/web/assets/launchpad-C9U9hpWJ.css +1 -0
  117. package/web/assets/layout-grid-CzxXbCDa.js +1 -0
  118. package/web/assets/linkFollow-J2c0wSgB.js +8 -0
  119. package/web/assets/{listFold-M8s5JYEC.js → listFold-B_2Xqxn_.js} +1 -1
  120. package/web/assets/lock-open-DVWCLSZm.js +1 -0
  121. package/web/assets/log-out-CdKTS7HC.js +1 -0
  122. package/web/assets/magnet-BmVcZ9U4.js +1 -0
  123. package/web/assets/main-BlVApHpj.css +1 -0
  124. package/web/assets/main-CForzSFD.js +15 -0
  125. package/web/assets/markdownEditorSurface-BiDH0__r.css +1 -0
  126. package/web/assets/markdownEditorSurface-Bs8FJNHu.js +3 -0
  127. package/web/assets/mediaPlayer-O9pVRl_k.js +1 -0
  128. package/web/assets/message-square-plus-CspBv9iG.js +1 -0
  129. package/web/assets/{messages-CKtabOqy.js → messages-CG7ywZ-K.js} +1 -1
  130. package/web/assets/minimize-2-Bq4vUin-.js +1 -0
  131. package/web/assets/mobileEntry-6u7TYC4s.css +1 -0
  132. package/web/assets/mobileEntry-CptXQ4Ov.js +13 -0
  133. package/web/assets/modelPickerSurface-C0SkjaPL.js +1 -0
  134. package/web/assets/nativeDownload-DlnT8U-y.js +1 -0
  135. package/web/assets/nativeSheetMenu-CVC51DzC.js +1 -0
  136. package/web/assets/pageStore-BC6Z18n7.css +1 -0
  137. package/web/assets/pageStore-D_fKLv-o.js +13 -0
  138. package/web/assets/{pageTree-BYYPgZm_.js → pageTree-DtDKozTg.js} +3 -3
  139. package/web/assets/pen-line-ho1GgAe2.js +1 -0
  140. package/web/assets/pen-tool-CV-FKFEZ.js +1 -0
  141. package/web/assets/pencil-BgF4Kiqp.js +1 -0
  142. package/web/assets/phoneList-BLVdQcXY.js +1 -0
  143. package/web/assets/phoneList-BpLxxdq6.css +1 -0
  144. package/web/assets/pluginChat-C6t6DWhY.js +2 -0
  145. package/web/assets/react-DOzedx9n.js +1 -0
  146. package/web/assets/recordSurface-C9SRNjy4.js +1 -0
  147. package/web/assets/redo-2-DWZTaEz-.js +1 -0
  148. package/web/assets/rotate-ccw-CyZpL7MX.js +1 -0
  149. package/web/assets/selectionActions-C2a8ImJm.js +2 -0
  150. package/web/assets/selectionBarSurface-DaXlyy1s.js +1 -0
  151. package/web/assets/sessionTitle-BtZ1BteL.js +1 -0
  152. package/web/assets/settingsPageSurface-Cg8FNZq3.js +1 -0
  153. package/web/assets/sharePage-vnghra3Q.js +2 -0
  154. package/web/assets/{shareViewer-BiMqIBxP.js → shareViewer-CWJQHiV-.js} +2 -2
  155. package/web/assets/star-ZEpUQwnX.js +1 -0
  156. package/web/assets/tableSurface-DfEdzVDn.js +1 -0
  157. package/web/assets/tanguProbe-BboOas-a.js +6 -0
  158. package/web/assets/{terminalView-lbcBgG0c.js → terminalView-xp8ARBLi.js} +3 -3
  159. package/web/assets/type-CMyP4cKt.js +1 -0
  160. package/web/assets/undo-2-C4ZCsMsx.js +1 -0
  161. package/web/assets/{unitAccount-DGwGsmC3.js → unitAccount-DNxfGo3c.js} +1 -1
  162. package/web/assets/{unitBridge-CE2yAvm0.js → unitBridge-Bq0n1ZM6.js} +1 -1
  163. package/web/assets/{unitCloudTransport-BGFwkaDM.js → unitCloudTransport-CErylgEO.js} +1 -1
  164. package/web/assets/unitOwnerAccess-7s-3dfNM.js +1 -0
  165. package/web/assets/unitShim-BfheyIG8.js +5 -0
  166. package/web/assets/upload-VtCrluEO.js +1 -0
  167. package/web/assets/userSpaces-BpeYjLni.js +1 -0
  168. package/web/assets/viewportLock-B0l1GU_k.css +1 -0
  169. package/web/assets/viewportLock-cVUalJAI.js +738 -0
  170. package/web/assets/zoom-in-C7R8s9x-.js +1 -0
  171. package/web/excalidraw/excalidraw.js +4 -2
  172. package/web/index.html +12 -13
  173. package/web/assets/ArtificialView-DLh75dAI.js +0 -1
  174. package/web/assets/AutomationBuilder-DNWWGnFr.js +0 -1
  175. package/web/assets/CalendarConfigView-G7je7k9-.js +0 -1
  176. package/web/assets/CalendarView-B2MtaOJk.js +0 -1
  177. package/web/assets/CapabilityMenu-DJaZ_Cyt.js +0 -1
  178. package/web/assets/CheckboxInput-FYXLaZke.js +0 -1
  179. package/web/assets/Chrome-CFonajM4.js +0 -1
  180. package/web/assets/DashboardGridView-D9s9pez_.css +0 -1
  181. package/web/assets/DashboardGridView-Xgw4wa0_.js +0 -17
  182. package/web/assets/EventCard-_39F_I5M.js +0 -1
  183. package/web/assets/ExcalidrawCanvas-4uYrLYin.css +0 -1
  184. package/web/assets/ExcalidrawCanvas-rXujil36.js +0 -1
  185. package/web/assets/FloatingToc-DNqAkkI0.js +0 -1
  186. package/web/assets/GitCloneDialog-CQx-O4j1.js +0 -1
  187. package/web/assets/HomepageView-DcWmTPQO.css +0 -1
  188. package/web/assets/HomepageView-MYEk3RCs.js +0 -3
  189. package/web/assets/ImageStudioPanels-4wnb2XF4.js +0 -3
  190. package/web/assets/ImageStudioView-qrmW8pfx.js +0 -1
  191. package/web/assets/InlineAiPanel-B3kd1ob2.js +0 -1
  192. package/web/assets/InlineFiles-Clnqh9jD.js +0 -1
  193. package/web/assets/MarkdownBlock-DT_wsaja.js +0 -58
  194. package/web/assets/ModelPill-JaIH3ffZ.js +0 -2
  195. package/web/assets/MuseLibraryView-DOJVVeU6.js +0 -2
  196. package/web/assets/MuseView-uxTmjVQa.js +0 -6
  197. package/web/assets/PenRow-COOYAaxx.js +0 -1
  198. package/web/assets/ProductView-DPTveulg.js +0 -1
  199. package/web/assets/RightPanel-BJUacrsf.js +0 -4
  200. package/web/assets/RightPanel-D0zk1g3I.css +0 -1
  201. package/web/assets/SketchCard-B_UU5sxV.js +0 -641
  202. package/web/assets/StudioGuestSurface-yBa4QKfX.js +0 -1
  203. package/web/assets/TargetHealthNotice-BLzDB-Xl.css +0 -1
  204. package/web/assets/TargetHealthNotice-CgkdTdhB.js +0 -47
  205. package/web/assets/TodoListView-CricdCfW.js +0 -1
  206. package/web/assets/Tooltip-o8ZqIb3L.js +0 -1
  207. package/web/assets/UnifiedPage-BWAyqj65.js +0 -69
  208. package/web/assets/UnifiedPage-CWXc_mo1.css +0 -1
  209. package/web/assets/appStore-CI1_L5OS.js +0 -3357
  210. package/web/assets/appStore-DQc2marq.css +0 -1
  211. package/web/assets/approvalText-Cy2UAUAQ.js +0 -2
  212. package/web/assets/arrow-up-right-BDsMFoNQ.js +0 -1
  213. package/web/assets/astryxBridge-CF_hpqC2.css +0 -1
  214. package/web/assets/astryxBridge-CH_c5xjo.js +0 -70
  215. package/web/assets/automationListSource-CB6AWkL_.js +0 -1
  216. package/web/assets/boardSurface-CLvEUjbF.js +0 -1
  217. package/web/assets/book-open-BLzEdGfu.js +0 -1
  218. package/web/assets/calendarNavStore-BHUNxDx8.js +0 -1
  219. package/web/assets/canvasPrefs-CvE7mgyq.js +0 -1
  220. package/web/assets/chatBoxSurface-CuuHLzs5.js +0 -1
  221. package/web/assets/circle-question-mark-BM4ZRxQS.js +0 -1
  222. package/web/assets/circle-x-DTcNGZDT.js +0 -1
  223. package/web/assets/code-xml-AE3mT4T5.js +0 -1
  224. package/web/assets/codingNavigation-B0kVsy4x.js +0 -53
  225. package/web/assets/codingNavigation-DHCidM4N.css +0 -1
  226. package/web/assets/create-1JI2I47p.js +0 -14
  227. package/web/assets/dashboardSurface-CIE5HybN.js +0 -1
  228. package/web/assets/deskCapture-COW7aG5Y.js +0 -1
  229. package/web/assets/emoji-DZ9CA_3l.css +0 -1
  230. package/web/assets/emoji-DphwSxPx.js +0 -1
  231. package/web/assets/floatingTocSurface-BOm2QYBK.js +0 -1
  232. package/web/assets/foldActions-DNbJPlPl.js +0 -1
  233. package/web/assets/folder-DotgUhYD.js +0 -1
  234. package/web/assets/folder-plus-aJgL9NeP.js +0 -1
  235. package/web/assets/gestures-dqncPOwo.js +0 -1
  236. package/web/assets/git-branch-CwR2qic6.js +0 -1
  237. package/web/assets/hack2gate-dark-Dx2RtDRI.jpg +0 -0
  238. package/web/assets/hack2gate-light-DRKq9tyS.jpg +0 -0
  239. package/web/assets/hand-XNkzNiW2.js +0 -1
  240. package/web/assets/hard-drive-CfWKRoAE.js +0 -1
  241. package/web/assets/i18n-CykmULlm.css +0 -1
  242. package/web/assets/i18n.generated-BwynSSMk.js +0 -15
  243. package/web/assets/imageStudio-CWgLpC_d.js +0 -2
  244. package/web/assets/imageStudio-DZ0qGU2s.css +0 -1
  245. package/web/assets/index-B65ULikK.js +0 -1
  246. package/web/assets/index-BIIeiIap.js +0 -1
  247. package/web/assets/index-BOzsniE1.js +0 -297
  248. package/web/assets/index-BfrjVzia.js +0 -13
  249. package/web/assets/index-Bi9UtjVz.js +0 -1
  250. package/web/assets/index-C1uilc9i.js +0 -1
  251. package/web/assets/index-C3Dc3Ivz.js +0 -1
  252. package/web/assets/index-CJF_Ld1Y.js +0 -1
  253. package/web/assets/index-CMARP4oV.js +0 -1
  254. package/web/assets/index-C_RsQVNm.js +0 -7
  255. package/web/assets/index-ChyxZMm8.js +0 -1
  256. package/web/assets/index-CoKcOaZg.js +0 -1
  257. package/web/assets/index-CuviSCbk.js +0 -1
  258. package/web/assets/index-Cw43kua8.js +0 -1
  259. package/web/assets/index-D1fu6XQN.js +0 -3
  260. package/web/assets/index-DG-hXb63.js +0 -1
  261. package/web/assets/index-DjnTfJpN.js +0 -1
  262. package/web/assets/index-Dtw0abst.js +0 -1
  263. package/web/assets/index-W3ErfZiX.js +0 -1
  264. package/web/assets/index-Yc56b3XX.js +0 -1
  265. package/web/assets/index-d4jCdYJH.js +0 -1
  266. package/web/assets/index-siHtlYTM.js +0 -1
  267. package/web/assets/launchpad-C2c1MSVX.css +0 -1
  268. package/web/assets/layout-grid-CraV7nhh.js +0 -1
  269. package/web/assets/linkFollow-BpvDWzUx.js +0 -8
  270. package/web/assets/list-tree-cLJw-jYQ.js +0 -1
  271. package/web/assets/lock-DBkXXwaI.js +0 -1
  272. package/web/assets/lock-open-C-9-AWct.js +0 -1
  273. package/web/assets/log-out-C8bDXj9P.js +0 -1
  274. package/web/assets/main-BiS_5wrB.css +0 -1
  275. package/web/assets/main-CMk6twzA.js +0 -20
  276. package/web/assets/markdownEditorSurface-Bql20IAf.css +0 -1
  277. package/web/assets/markdownEditorSurface-DgQ0TUWH.js +0 -3
  278. package/web/assets/message-square-plus-8pfimvem.js +0 -1
  279. package/web/assets/minus-CfA9fAN3.js +0 -1
  280. package/web/assets/mobileEntry-DS1vohuL.css +0 -1
  281. package/web/assets/mobileEntry-NcMcK0LV.js +0 -13
  282. package/web/assets/nativeDownload-CNtwSCy0.js +0 -1
  283. package/web/assets/pageChrome-BR4cfIaA.js +0 -1
  284. package/web/assets/pageChrome-BbUhILy0.css +0 -1
  285. package/web/assets/pen-tool-C5ftHCnm.js +0 -1
  286. package/web/assets/pencil-ehhM9_9k.js +0 -1
  287. package/web/assets/phoneList-B6gwUJZF.js +0 -9
  288. package/web/assets/phoneList-iRdfiKA8.css +0 -1
  289. package/web/assets/pluginChat-DTTWWiUS.js +0 -2
  290. package/web/assets/redo-2-DCEAgQlN.js +0 -1
  291. package/web/assets/rotate-ccw-DdkrbRAB.js +0 -1
  292. package/web/assets/selectionActions-BQD2kox1.js +0 -2
  293. package/web/assets/selectionBarSurface-CzUZmJDJ.js +0 -1
  294. package/web/assets/server-Ddu9f1k3.js +0 -1
  295. package/web/assets/sharePage-CNrm2xTC.js +0 -2
  296. package/web/assets/star-Dxv7XANS.js +0 -1
  297. package/web/assets/tableSurface-Bly1iCXc.js +0 -1
  298. package/web/assets/terminal-CAmmC9cV.js +0 -1
  299. package/web/assets/type-Dz6rnTvG.js +0 -1
  300. package/web/assets/undo-2-B7izWNb_.js +0 -1
  301. package/web/assets/unitOwnerAccess-D4nKS6Gg.js +0 -1
  302. package/web/assets/unitShim-2_2hhGxS.js +0 -5
  303. package/web/assets/upload-DqpRRAhG.js +0 -1
  304. package/web/assets/userSpaces-VFu4s05v.js +0 -1
  305. package/web/assets/viewportLock-3AOdDmwi.js +0 -631
  306. package/web/assets/viewportLock-djvL8fUQ.css +0 -1
  307. package/web/assets/zoom-in-Bf-eKTnH.js +0 -1
package/web/index.html CHANGED
@@ -19,7 +19,7 @@
19
19
  var legacy = MIG[localStorage.getItem('forsion_theme_preset')] || null;
20
20
  var lang = localStorage.getItem('forsion_theme_lang') || (legacy ? legacy[0] : 'lovable');
21
21
  if (!/^[a-z0-9-]+$/.test(lang)) lang = 'lovable';
22
- var SKINS = ['cream', 'coral', 'teal', 'lavender', 'zhi', 'ink', 'custom'];
22
+ var SKINS = ['cream', 'coral', 'teal', 'lavender', 'zhi', 'sage', 'ink', 'custom'];
23
23
  var skin = localStorage.getItem('forsion_theme_skin') || (legacy ? legacy[1] : 'cream');
24
24
  if (SKINS.indexOf(skin) < 0) skin = 'cream';
25
25
  // 背景色轴:未设过 = 承接主题色 id(= 拆轴前的整套配色),与 registry.resolveInitialBg 同口径。
@@ -35,8 +35,8 @@
35
35
  if (mode === 'dark') root.classList.add('dark');
36
36
  // 首帧安全底色:值须与 desktop/frontend/index.html 的同名表一致(那份是真源)。
37
37
  var BG = {
38
- cream: ['#f8f7f6', '#2a292b'], coral: ['#fbf5ef', '#19131a'], teal: ['#f5f5f7', '#1c1c1e'],
39
- lavender: ['#f4eef7', '#1e1a29'], zhi: ['#ffffff', '#141414'], ink: ['#f7f6f3', '#201f1d'], custom: ['#f6f6f7', '#1b1b1d']
38
+ cream: ['#f8f7f6', '#2a292b'], coral: ['#f6ede6', '#2b2520'], teal: ['#f5f5f7', '#1c1c1e'],
39
+ lavender: ['#f1edf7', '#26252b'], zhi: ['#eaf3f9', '#21272c'], sage: ['#ecf3e9', '#232723'], ink: ['#f7f6f3', '#201f1d'], custom: ['#f6f6f7', '#1b1b1d']
40
40
  };
41
41
  root.style.background = (BG[bg] || BG.cream)[mode === 'dark' ? 1 : 0];
42
42
  } catch (e) { /* private mode */ }
@@ -47,17 +47,19 @@
47
47
  模块求值前把键写好)。⚠️ 本段在 desktop/frontend/index.html 与 web/index.html 各一份,
48
48
  **两处必须逐字同改**(desktop 那份同时服务 Electron 与 `npm run web`)。
49
49
 
50
- 判定 = 触屏(pointer:coarse)且窄视口(≤820)。
50
+ 判定 = 触屏为主(pointer:coarse),不看宽度:宽度交给单列壳自己的宽屏档(平板横屏 = 左侧竖条 + 并排左栏,
51
+ 2026-10-20 Pad 方案 A2;10-16 口径「移动端宽度够就用移动端平板档、不用桌面壳」)。原来的「且 ≤820」让
52
+ 同一台 iPad 竖着首开进手机壳、横着首开(或横着刷新)进桌面壳。
51
53
  归属标记 `lcl.uiMode.auto`:有它 = 这个值是本脚本自动写的,可以继续自动改写;
52
54
  没有它而键又在 = 用户经命令面板「切换 UI 模式」显式选过(setUiMode 会清掉标记),一律尊重。
53
- 老版本只会自动写 'mobile' 且不带标记 —— 首次运行时认领为自动值(那时唯一的写入者就是自动)。
55
+ (原来这里每次启动都把「有值没标记」认领成自动值,本为接住不带标记的老版本值 —— 结果显式选择活不过一次刷新;
56
+ 判定改成只看粗指针后,横着的平板选了桌面也会被拽回移动壳。老值早在那之后的第一次加载就认领过了,这行已删。)
54
57
 
55
58
  运行时也必须跟:DevTools 切设备工具栏、真机旋转都发生在页面存活期间,而 UI_MODE 已定格。
56
59
  ⚠️ 只挂 mq.change 是不够的(旧版就是这么写的,实测切设备模拟后键始终为 null、页面纹丝不动):
57
60
  Chrome 打开触摸模拟时 `(pointer: coarse)` 的 change 不保证派发,而且尺寸与触摸两项更新
58
61
  不在同一拍。所以 resize/orientationchange 一并当信号,并在 0/300/900ms 各复查一次。
59
- ⚠️ **退出**移动壳只认「指针不再是粗指针」:真机横屏宽度可能超过 820,但它还是手机,
60
- 不能因为变宽就把用户踢回桌面壳。 */
62
+ ⚠️ **退出**移动壳只认「指针不再是粗指针」:变宽(横屏、分屏拉宽)不会把人踢回桌面壳。 */
61
63
  (function () {
62
64
  try {
63
65
  // Electron 桌面应用不参与自动切换:触屏本 / Windows 平板模式会把桌面版整个换成手机壳。
@@ -67,8 +69,7 @@
67
69
  if (/Electron\//.test(navigator.userAgent) || window.tangu) return;
68
70
  var KEY = 'lcl.uiMode', MARK = KEY + '.auto';
69
71
  var hit = function (q) { return matchMedia(q).matches };
70
- var want = function () { return hit('(pointer: coarse) and (max-width: 820px)') ? 'mobile' : 'desktop' };
71
- if (localStorage.getItem(KEY) != null && localStorage.getItem(MARK) == null) localStorage.setItem(MARK, '1');
72
+ var want = function () { return hit('(pointer: coarse)') ? 'mobile' : 'desktop' };
72
73
  var owned = function () { return localStorage.getItem(KEY) == null || localStorage.getItem(MARK) === '1' };
73
74
  var put = function (m) {
74
75
  if (!owned() || localStorage.getItem(KEY) === m) return false;
@@ -89,13 +90,11 @@
89
90
  var check = function () {
90
91
  var w = want();
91
92
  if (w === frozen) return;
92
- if (frozen === 'mobile' && hit('(pointer: coarse)')) return; // 手机横屏不踢回桌面
93
93
  if (put(w)) location.reload();
94
94
  };
95
95
  var kick = function () { check(); setTimeout(check, 300); setTimeout(check, 900) };
96
96
  addEventListener('resize', kick);
97
97
  addEventListener('orientationchange', kick);
98
- matchMedia('(pointer: coarse) and (max-width: 820px)').addEventListener('change', kick);
99
98
  matchMedia('(pointer: coarse)').addEventListener('change', kick);
100
99
  } catch (e) { /* private mode / 老浏览器:退回桌面布局 */ }
101
100
  })();
@@ -236,7 +235,7 @@
236
235
  }
237
236
  </style>
238
237
  <link rel="stylesheet" href="./fonts/fonts.css">
239
- <script type="module" crossorigin src="./assets/index-BOzsniE1.js"></script>
238
+ <script type="module" crossorigin src="./assets/index-YuejkHoJ.js"></script>
240
239
  </head>
241
240
  <body>
242
241
  <div id="tangu-splash" aria-hidden="true">
@@ -252,7 +251,7 @@
252
251
  </svg>
253
252
  </div>
254
253
  <div id="root"></div>
255
- <script>window.FORSION_APP_VERSION="2.13.4";// Runs inline before app modules, from one source shared by Desktop, Web and Mobile.
254
+ <script>window.FORSION_APP_VERSION="2.13.6";// Runs inline before app modules, from one source shared by Desktop, Web and Mobile.
256
255
  (function () {
257
256
  var splash = document.getElementById('tangu-splash');
258
257
  if (!splash) return;
@@ -1 +0,0 @@
1
- import{u as D,d,j as t}from"./index-BOzsniE1.js";import{J as F,x as T,ae as M,nS as R,f7 as U,hS as V,fe as W,y,nT as N,b9 as B,a9 as q,bw as H,ea as _,aB as $,nU as J,ge as K,t as O,u as X}from"./appStore-CI1_L5OS.js";import"./client-CaivGZFR.js";import{u as G}from"./codeStudioStore-DhyMazGT.js";import{C as Q}from"./CapabilityMenu-DJaZ_Cyt.js";import{c as Y}from"./nativeDownload-CNtwSCy0.js";/* empty css */import{C as Z}from"./code-xml-AE3mT4T5.js";import{P as aa}from"./pencil-ehhM9_9k.js";import{A as ta}from"./arrow-up-right-BDsMFoNQ.js";import"./ipc-B6hkgxQL.js";const ea=[["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"m15 10-3 3-3-3",key:"lzhmyn"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]],ia=F("monitor-down",ea);let v=0;const f=Y((e,l)=>({items:[],status:"loading",async load(){const m=window.tangu?.productsList;if(!m){e({status:"error"});return}const r=++v;l().status!=="ready"&&e({status:"loading"});try{const n=await m();r===v&&e({items:n,status:"ready"})}catch{r===v&&l().status!=="ready"&&e({status:"error"})}}})),g=e=>e instanceof Error?e.message:String(e);function wa(){const{t:e,locale:l}=D(),m=f(a=>a.items),r=f(a=>a.status),n=f(a=>a.load),[k]=d.useState(()=>f.getState().status!=="ready"),[S,c]=d.useState(null),w=T(a=>a.spaces.some(i=>i.id==="coding"))&&!!M("code-studio"),[z,b]=d.useState(()=>Date.now());d.useEffect(()=>{n();const a=()=>{b(Date.now()),n()};return window.addEventListener("focus",a),()=>{window.removeEventListener("focus",a)}},[n]),d.useEffect(()=>{const a=setInterval(()=>{document.hidden||b(Date.now())},6e4);return()=>clearInterval(a)},[]);const u=(a,i,s=!1)=>X.getState().toast(e(a,i),s),L=a=>{O.getState().openView("product",{id:a.id},"main",{newTab:!0})},C=a=>{window.tangu?.openDetached?.([{type:"product",params:{id:a.id}}])},j=a=>{y("coding"),requestAnimationFrame(()=>{G.getState().openProject(a.root,a.name)})},E=async a=>{const i=window.tangu?.productsShortcut;if(i){c(a.id);try{const{key:s,error:o,vars:h}=J(await i(a.id,e("artificial.shortcut.fallbackName")));u(s,h,o)}catch(s){u("artificial.toast.shortcutFailed",{detail:g(s)},!0)}finally{c(null)}}},A=async a=>{const i=window.tangu?.productsUpdate;if(!i)return;const s=(await K(e("artificial.rename.title"),a.name,{label:e("artificial.rename.label")}))?.trim();if(!(!s||s===a.name)){c(a.id);try{await i(a.id,{name:s}),await n()}catch(o){u("artificial.toast.renameFailed",{detail:g(o)},!0)}finally{c(null)}}},I=async a=>{const i=window.tangu?.productsTrash;if(!(!i||!window.confirm(e(a.external?"artificial.remove.confirm":"artificial.trash.confirm",{name:a.name})))){c(a.id);try{await i(a.id,{action:a.external?"unregister":"trash",dirId:a.dirId}),await n()}catch(s){u("artificial.toast.trashFailed",{detail:g(s)},!0)}finally{c(null)}}},P=a=>{const i=N(a.kind),s=i.icon,o=S===a.id,h=[...i.canLaunch&&window.tangu?.openDetached?[{id:"open-window",label:e("artificial.action.openWindow"),icon:t.jsx(B,{size:14}),onSelect:()=>C(a)}]:[],...w?[{id:"edit",label:e("artificial.action.edit"),icon:t.jsx(Z,{size:14}),onSelect:()=>j(a)}]:[],...i.canShortcut&&window.tangu?.productsShortcut?[{id:"shortcut",label:e("artificial.action.shortcut"),icon:t.jsx(ia,{size:14}),onSelect:()=>{E(a)}}]:[],...window.tangu?.revealHostPath?[{id:"reveal",label:e("artificial.action.reveal"),icon:t.jsx(q,{size:14}),onSelect:()=>{window.tangu?.revealHostPath?.(a.root)}}]:[],...window.tangu?.productsUpdate?[{id:"rename",label:e("artificial.action.rename"),icon:t.jsx(aa,{size:14}),onSelect:()=>{A(a)}}]:[],...window.tangu?.productsTrash?[{id:"trash",label:e(a.external?"artificial.action.remove":"artificial.action.trash"),icon:t.jsx(H,{size:14}),danger:!0,onSelect:()=>{I(a)}}]:[]],p=o||!i.canLaunch&&!w;return t.jsxs("div",{className:"newtab-card art-card","data-artificial-card":!0,"data-product-id":a.id,"data-kind":a.kind,children:[t.jsxs("button",{className:"art-card-main","data-action":"open",disabled:p,"aria-label":i.canLaunch?e("artificial.action.open",{name:a.name}):`${e("artificial.action.edit")} · ${a.name}`,onClick:()=>i.canLaunch?L(a):j(a),children:[t.jsx("span",{className:"newtab-card-ic",children:t.jsx(s,{size:18})}),t.jsx("span",{className:"art-card-name",title:a.name,children:a.name}),!p&&t.jsx(ta,{size:14,className:"art-card-go","aria-hidden":!0})]}),t.jsxs("div",{className:"art-card-foot",children:[t.jsxs("div",{className:"art-card-meta",children:[t.jsx("span",{children:_(a.updatedAt,{now:z,locale:l})}),a.published&&t.jsx("span",{className:"art-badge","data-badge":"published",children:e("artificial.badge.published")}),a.kind==="plugin"&&a.devLoad&&t.jsx("span",{className:"art-badge","data-badge":"devload",children:e("artificial.badge.devLoad")})]}),h.length>0&&t.jsx(Q,{label:e("artificial.action.more",{name:a.name}),className:"icon-btn art-card-more",disabled:o,items:h,children:t.jsx($,{size:14})})]})]},a.id)},x=R(m);return t.jsx("div",{className:"art-root","data-artificial-root":!0,children:t.jsxs("div",{className:"art-inner",children:[t.jsxs("div",{className:"art-head",children:[t.jsx(U,{size:18}),t.jsxs("div",{className:"art-titles",children:[t.jsx("div",{className:"art-title",children:e("view.artificial")}),t.jsx("div",{className:"art-sub",children:e("artificial.subtitle")})]}),t.jsx("button",{className:"icon-btn","data-action":"refresh",title:e("artificial.refresh"),"aria-label":e("artificial.refresh"),onClick:()=>{n()},children:t.jsx(V,{size:14})})]}),r==="loading"&&t.jsxs("div",{className:"art-loading","data-state":"loading",children:[t.jsx(W,{variant:"list"}),t.jsx("span",{className:"art-sr-only",role:"status",children:e("artificial.loading")})]}),r==="error"&&t.jsxs("div",{className:"art-state",role:"alert","data-state":"error",children:[t.jsx("div",{className:"art-state-title",children:e("artificial.loadFailed")}),t.jsx("button",{className:"btn sm","data-action":"retry",onClick:()=>{n()},children:e("common.retry")})]}),r==="ready"&&!x.length&&t.jsxs("div",{className:"art-state","data-state":"empty",children:[t.jsx("div",{className:"art-state-title",children:e("artificial.empty.title")}),t.jsx("p",{children:e("artificial.empty.body")}),w&&t.jsx("button",{className:"btn primary sm","data-action":"go-coding",onClick:()=>y("coding"),children:e("artificial.empty.cta")})]}),r==="ready"&&x.length>0&&t.jsx("div",{className:k?"sk-fade-in":void 0,children:x.map(a=>t.jsxs("div",{className:"newtab-sec","data-kind-group":a.kind,children:[t.jsx("div",{className:"newtab-sec-title",children:e(N(a.kind).labelKey)}),t.jsx("div",{className:"newtab-grid art-grid",children:a.items.map(P)})]},a.kind))})]})})}export{wa as ArtificialView};
@@ -1 +0,0 @@
1
- import{d as o,j as e,u as pe}from"./index-BOzsniE1.js";import{J as Ye,an as Qe,sG as se,g2 as Ze,lo as et,aR as tt,dy as at,gg as nt,gc as it,it as st,io as lt,hd as ot,iw as rt,sH as dt,h as ut,b as ct,fR as ie,a_ as mt,sI as ht,sJ as $e,sK as Me,eb as Re,sL as Fe,a7 as De,T as Te,iq as be,aA as bt,aS as xt,sM as pt,bw as xe,sN as vt,sO as gt,bu as jt,bv as ft,K as yt,N as Nt,a2 as _t,h7 as Ct,sP as kt,sQ as wt,q as St,sR as Et,sS as Pt,u as $t}from"./appStore-CI1_L5OS.js";import{C as Rt}from"./CapabilityMenu-DJaZ_Cyt.js";import{u as Ft}from"./gestures-dqncPOwo.js";import{a as Dt,C as Tt}from"./Chrome-CFonajM4.js";import{d as zt,e as At,f as Mt,g as It}from"./canvasPrefs-CvE7mgyq.js";import{R as Ht}from"./rotate-ccw-DdkrbRAB.js";import"./messages-CKtabOqy.js";import{C as qt}from"./circle-question-mark-BM4ZRxQS.js";const Lt=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],Vt=Ye("bell",Lt);function Ot({controller:i,open:c,title:b,onClose:C,children:h}){const[g]=o.useState(()=>document.createElement("div"));g.className="auto-extension";const a=o.useRef(null),k=o.useRef(C);k.current=C;const v=o.useRef(b);return v.current=b,o.useEffect(()=>{if(!(!i||!c)){try{a.current=i.open({id:"automation-context",title:()=>v.current,mount:f=>(f.appendChild(g),()=>g.remove()),onClose:()=>k.current()})}catch{k.current()}return()=>{a.current?.close(),a.current=null}}},[i,c,g]),c?i?Qe.createPortal(h,g):e.jsx("div",{className:"auto-extension auto-extension-inline",children:h}):null}const sa=["reminder","briefing","table","button"];function Wt(i,c){return i?i==="briefing"||i==="button"?[{...se("agent_run"),prompt:c(`automation.ux.${i}.prompt`)}]:[{...se("notify"),title:c(`automation.ux.${i}.name`),body:c(`automation.ux.${i}.body`)}]:[se("notify")]}function ze(i,c,b){if(i.type==="notify")return i.title.trim()?null:"notify";if(i.type==="agent_run")return i.agentSlug?i.prompt.trim()?null:"prompt":"agent";if(i.type==="db_row_add"||i.type==="db_row_edit"){if(!/\.db$/i.test(i.dbPath.trim()))return"table";if(!i.cells.some(h=>h.k.trim()))return"cells";if(i.type==="db_row_edit"){if(c!=="db_changed"&&(!i.rowId.trim()&&!i.matchColumn.trim()||i.rowFrom.trim()))return"row";if(i.matchColumn.trim()&&!i.matchValue.trim())return"match"}return null}const C=b.find(h=>h.name===i.tool);if(!C)return"tool";if((C.parameters.required||[]).some(h=>!(i.argValues[h]||"").trim()))return"args";for(const[h,g]of Object.entries(i.argValues)){if(!g.trim())continue;const a=C.parameters.properties?.[h];if(a?.type==="number"&&!Number.isFinite(Number(g)))return"args";if(a?.type==="object"||a?.type==="array")try{const k=JSON.parse(g);if(a.type==="array"?!Array.isArray(k):!k||typeof k!="object"||Array.isArray(k))return"json"}catch{return"json"}}return null}function Bt(i){return(i||[]).map(c=>({value:`{{row.${c.id}}}`,label:c.name}))}const Ut=i=>({x:0,y:i*132,w:244,h:84}),Kt=({nodes:i,selected:c,onSelect:b,children:C})=>{const{t:h}=pe(),g=o.useId().replace(/:/g,""),a=o.useRef(null),[k,v]=o.useState({}),[f,$]=o.useState(zt),[M,R]=o.useState(At),x=Ze(a),m=new Map(i.map((n,l)=>[n.id,k[n.id]||Ut(l)])),P=i.map(n=>n.id).join(","),p=Ft(a,x,{boxes:()=>m,identity:()=>P,commit:n=>v(l=>({...l,...Object.fromEntries(n)})),hitKey:n=>n.closest("[data-flow-node]")?.dataset.flowNode||null,onEnterEdit:b,onDoubleClick:n=>{n&&b(n)},minW:244,minH:84,repel:!0},f);o.useEffect(()=>p.bind(a.current),[p.bind]),o.useEffect(()=>x.bindWheel(a.current),[x.bindWheel]);const D=o.useRef(()=>x.fitTo([...m.values()],64));D.current=()=>x.fitTo([...m.values()],64),o.useEffect(()=>{v({});const n=requestAnimationFrame(()=>D.current());return()=>cancelAnimationFrame(n)},[P]),o.useEffect(()=>{const n=new ResizeObserver(()=>D.current());return a.current&&n.observe(a.current),()=>n.disconnect()},[]);const I=n=>p.live?.get(n)||m.get(n);return e.jsx("div",{className:"auto-canvas-shell am-app",children:e.jsxs("div",{className:"auto-canvas amx-stage",ref:a,tabIndex:0,"aria-label":h("automation.ux.flow"),onPointerUpCapture:n=>{if(p.busy)return;const l=document.elementFromPoint(n.clientX,n.clientY)?.closest("[data-flow-node]");l&&a.current?.contains(l)&&b(l.dataset.flowNode)},children:[e.jsx("div",{className:"amx-stage-grid",style:et(x.vp)}),e.jsxs("div",{className:"auto-canvas-world",style:{transform:`translate(${x.vp.x}px, ${x.vp.y}px) scale(${x.vp.z})`},children:[e.jsxs("svg",{className:"auto-canvas-edges","aria-hidden":"true",children:[e.jsx("defs",{children:e.jsx("marker",{id:g,markerWidth:"8",markerHeight:"8",refX:"6",refY:"3",orient:"auto",children:e.jsx("path",{d:"M0,0 L6,3 L0,6",fill:"none",stroke:"currentColor"})})}),i.slice(1).map((n,l)=>{const y=I(i[l].id),w=I(n.id),H=y.x+y.w/2,q=y.y+y.h,X=w.x+w.w/2,V=w.y;return e.jsx("path",{d:`M${H},${q} C${H},${q+28} ${X},${V-28} ${X},${V}`,markerEnd:`url(#${g})`},n.id)})]}),i.map(n=>{const l=I(n.id);return e.jsxs("div",{"data-flow-node":n.id,role:"button",tabIndex:0,"aria-pressed":c===n.id,className:`auto-flow-node ${c===n.id?"selected":""}`,style:{left:l.x,top:l.y,width:l.w,height:l.h},onClick:()=>b(n.id),onKeyDown:y=>{y.key==="Enter"&&(y.preventDefault(),b(n.id))},children:[e.jsx("span",{className:"auto-flow-icon",children:n.icon}),e.jsx("strong",{children:n.title}),e.jsx("span",{className:"auto-flow-status",title:h(n.ready?"automation.ux.ready":"automation.ux.incomplete"),children:n.ready?e.jsx(tt,{size:13}):e.jsx(at,{size:13})}),e.jsx("span",{className:"auto-flow-subtitle",children:n.subtitle})]},n.id)}),p.marquee&&e.jsx("div",{className:"amx-stage-marquee",style:{left:p.marquee.x,top:p.marquee.y,width:p.marquee.w,height:p.marquee.h}})]}),C&&e.jsx("div",{className:"amx-stage-tools auto-canvas-tools",children:C}),e.jsx(Dt,{zoom:x.vp.z,onZoomBy:n=>{const{w:l,h:y}=nt(a.current);x.setVp(it(x.vp,x.vp.z*n,l/2,y/2))},onFit:()=>D.current(),snap:f,onSnap:n=>{$(n),It(n)},mini:M,onMini:n=>{R(n),Mt(n)},extra:e.jsx("button",{type:"button",title:h("automation.ux.arrange"),onClick:()=>{v({}),requestAnimationFrame(()=>D.current())},children:e.jsx(Ht,{size:12})})}),M&&e.jsx(Tt,{hostRef:a,vp:x.vp,items:i.map(n=>({key:n.id,kind:"card",box:I(n.id)})),onCenter:x.centerOn})]})})},Ae=({label:i,value:c,onChange:b,multiline:C,maxLength:h=4e3,placeholder:g,columns:a,hasRow:k})=>{const{t:v}=pe(),f=o.useId(),$=o.useRef(null),M=o.useRef({start:c.length,end:c.length}),R=m=>{if(!m)return;const{start:P,end:p}=M.current;c.length-(p-P)+m.length>h||(b(c.slice(0,P)+m+c.slice(p)),requestAnimationFrame(()=>{$.current?.focus(),$.current?.setSelectionRange(P+m.length,P+m.length)}))},x={id:f,ref:$,value:c,maxLength:h,placeholder:g,onChange:m=>b(m.target.value),onSelect:m=>{M.current={start:m.currentTarget.selectionStart??c.length,end:m.currentTarget.selectionEnd??c.length}}};return e.jsxs("div",{className:"field auto-template-field",children:[e.jsxs("div",{className:"auto-field-heading",children:[e.jsx("label",{htmlFor:f,children:i}),e.jsxs("select",{"aria-label":v("automation.ux.insertVariable",{field:i}),value:"",onChange:m=>R(m.target.value),children:[e.jsx("option",{value:"",children:v("automation.ux.variables")}),e.jsx("option",{value:"{{today}}",children:v("automation.ux.today")}),e.jsx("option",{value:"{{now}}",children:v("automation.ux.now")}),k&&e.jsxs("optgroup",{label:v("automation.ux.triggerRow"),children:[e.jsx("option",{value:"{{row.id}}",children:v("automation.ux.rowId")}),Bt(a).map(m=>e.jsx("option",{value:m.value,children:m.label},m.value))]})]})]}),C?e.jsx("textarea",{...x}):e.jsx("input",{type:"text",...x})]})};function Gt(){const i=new Date(Date.now()+36e5);i.setMinutes(0,0,0);const c=b=>String(b).padStart(2,"0");return`${i.getFullYear()}-${c(i.getMonth()+1)}-${c(i.getDate())}T${c(i.getHours())}:00`}const Jt=({editing:i,starter:c,fixedManual:b,onSaved:C,onCancel:h,extendView:g})=>{const{t:a}=pe(),k=st(),v=lt(),f=v.actionsCatalog,[$,M]=o.useState(i?.desc||(c?a(`automation.ux.${c}.name`):"")),[R,x]=o.useState("trigger"),[m,P]=o.useState(!1),p=t=>{x(t),P(!0)},[D,I]=o.useState(i?.enabled??!!b),n=i?.cond,[l,y]=o.useState(n?n.type==="event_seen"?"event_seen":n.type==="file_chars_gte"?"file_chars_gte":n.type==="manual"?"manual":n.type==="db_changed"?"db_changed":"timer":b||c==="button"?"manual":c==="table"?"db_changed":"timer"),[w,H]=o.useState(n?.type==="at"?"at":n?.type==="every"?"every":"daily_at"),[q,X]=o.useState(n?.type==="daily_at"?n.time:"09:00"),V=!!i&&ot(i),[Y,Ie]=o.useState(n?.type==="at"&&!V?n.datetime.replace(" ","T"):Gt()),Q=n?.type==="every"?/^(\d+)([mhd])$/.exec(n.interval):null,[Z,He]=o.useState(Q?Q[1]:"1"),[ve,qe]=o.useState(Q?Q[2]:"h"),[le,Le]=o.useState(n?.type==="event_seen"?n.match:""),[oe,Ve]=o.useState(n?.type==="file_chars_gte"?n.path:""),[re,Oe]=o.useState(n?.type==="file_chars_gte"?String(n.n):"100"),[F,We]=o.useState(n?.type==="db_changed"?n.path:""),[z,ge]=o.useState(n?.type==="db_changed"?n.event:"row_added"),[L,je]=o.useState(()=>rt(n)),fe=(t,u)=>je(r=>u?r.includes(t)?r:[...r,t]:r.filter(s=>s!==t)),[de,Be]=o.useState(n?.type==="db_changed"&&n.equals||""),[O,ue]=o.useState(()=>dt(n)),ce=(t,u)=>ue(r=>r.map((s,d)=>d===t?{...s,...u}:s));o.useEffect(()=>{ut()},[]);const ye=ct(t=>t.files),W=o.useMemo(()=>ye.filter(t=>/\.db$/i.test(t)),[ye]);o.useEffect(()=>{for(const t of W)ie.getState().load(t,t)},[W]);const Ne=ie(mt(t=>W.filter(u=>t.entries[u]?.data?.source!==void 0))),ee=o.useMemo(()=>W.filter(t=>!Ne.includes(t)),[W,Ne]),B=ie(t=>l==="db_changed"&&F?t.entries[F]?.data?.columns:void 0),U=o.useMemo(()=>B?.filter(t=>t.type!=="formula"&&t.type!=="lookup"),[B]),[S,te]=o.useState(()=>i?ht(i):Wt(c,a)),[me,Ue]=o.useState(i&&!i.actions?.length&&!i.agentSlug&&i.prompt||""),[K,_e]=o.useState(()=>$e(i,l)),Ce=o.useRef(!1);o.useEffect(()=>{!i&&!Ce.current&&_e($e(null,l))},[l,i]);const[G,ke]=o.useState(!1),[we,ae]=o.useState(""),Ke=t=>{if(S.length>=24)return;const u=se(t);te(r=>[...r,u]),p(String(u.key))},Se=S.some(t=>t.type==="agent_run"),j=(t,u)=>te(r=>r.map(s=>s.key===t?{...s,...u}:s)),Ee=(t,u)=>te(r=>{const s=t+u;if(s<0||s>=r.length)return r;const d=[...r];return[d[t],d[s]]=[d[s],d[t]],d});if(Me(i))return e.jsxs("div",{className:"auto-builder",children:[e.jsxs("div",{className:"auto-builder-title",children:[e.jsx(Re,{size:17})," ",a("automation.builder.editTitle")]}),e.jsx("div",{className:"auto-node",children:e.jsx("div",{className:"auto-hint",children:a("automation.builder.unsupported")})}),e.jsx("div",{className:"auto-builder-actions",children:e.jsx("button",{className:"btn ghost",onClick:()=>h?h():v.closeBuilder(),children:a("common.cancel")})})]});const Pe=!(l==="timer"&&(w==="daily_at"&&!/^\d{1,2}:\d{2}$/.test(q)||w==="at"&&!Y||w==="every"&&(!Number.isInteger(Number(Z))||Number(Z)<1))||l==="event_seen"&&!le.trim()||l==="file_chars_gte"&&(!oe.trim()||!(Number(re)>0))||l==="db_changed"&&(!/\.db$/i.test(F.trim())||z==="cell_changed"&&!L.length||O.length>Fe||O.some(t=>t.column.trim()&&(t.op==="eq"||t.op==="ne")&&!t.value.trim()))),E=[];$.trim()||E.push({node:"trigger",text:a("automation.ux.issue.name")}),Pe||E.push({node:"trigger",text:a("automation.ux.issue.trigger")}),!S.length&&(!i||l==="manual")&&E.push({node:"review",text:a("automation.ux.issue.steps")}),S.forEach((t,u)=>{const r=ze(t,l,f);r&&E.push({node:String(t.key),text:`${u+1}. ${a(`automation.ux.issue.${r}`)}`})}),l!=="timer"&&l!=="manual"&&(!K.trim()||!Number.isFinite(Number(K))||Number(K)<0)&&E.push({node:"review",text:a("automation.ux.issue.cooldown")});const ne=E.length===0,Ge=async()=>{if(!ne||G)return;const t=l==="timer"?w:l;if(t==="at"&&(Ct(Y)?.getTime()??0)<Date.now()-5*6e4){ae(a("automation.builder.atPast"));return}const u=d=>ie.getState().entries[d]?.data?.source!==void 0;if([...t==="db_changed"?[F.trim()]:[],...S.filter(d=>d.type==="db_row_add"||d.type==="db_row_edit").map(d=>d.dbPath.trim())].filter(Boolean).some(u)){ae(a("automation.builder.dbNoteView"));return}ke(!0),ae("");const s=kt(S,f);try{const d=await wt(St(),{id:i?.id,actor:"user",desc:$.trim(),cond_type:t,time:t==="daily_at"?q:void 0,datetime:t==="at"?Y:void 0,interval:t==="every"?`${Math.floor(Number(Z))}${ve}`:void 0,match:t==="event_seen"?le.trim():void 0,path:t==="file_chars_gte"?oe.trim():t==="db_changed"?F.trim():void 0,n:t==="file_chars_gte"?Number(re):void 0,event:t==="db_changed"?z:void 0,column_id:t==="db_changed"&&z==="cell_changed"?L[0]:void 0,column_ids:t==="db_changed"&&z==="cell_changed"&&L.length>1?L:void 0,equals:t==="db_changed"&&z==="cell_changed"&&de.trim()?de.trim():void 0,where:t==="db_changed"?Pt(O):void 0,vault:t==="db_changed"&&i?.cond.type==="db_changed"?i.cond.vault:void 0,prompt:S.length?void 0:me.trim()||void 0,cooldown_hours:Et(l,K),actions:S.length?s:null,enabled:D});if(C){v.bump(),C(d);return}v.acceptSaved(d),$t.getState().toast(a("automation.ux.saved"))}catch(d){ae(String(d?.message||d))}finally{ke(!1)}},he=t=>t==="notify"?e.jsx(Vt,{size:14}):t==="agent_run"?e.jsx(yt,{size:14}):t==="db_row_add"||t==="db_row_edit"?e.jsx(Nt,{size:14}):e.jsx(_t,{size:14}),Je=[{id:"trigger",title:a("automation.builder.trigger"),subtitle:a(`automation.builder.${l==="timer"?"condTimer":l==="manual"?"condManual":l==="db_changed"?"condDb":l==="event_seen"?"condEvent":"condFile"}`),icon:e.jsx(De,{size:17}),ready:Pe&&!!$.trim()},...S.map((t,u)=>({id:String(t.key),title:`${u+1}. ${a(`automation.step.${t.type}`)}`,subtitle:t.title||t.prompt||t.dbPath||t.tool||a("automation.ux.setupHint"),icon:he(t.type),ready:!ze(t,l,f)})),...!S.length&&i&&l!=="manual"?[{id:"muse",title:a("automation.builder.museFallback"),subtitle:me||a("automation.builder.museFallbackHint"),icon:e.jsx(Te,{size:17}),ready:!0}]:[],{id:"review",title:a("automation.ux.finish"),subtitle:a(ne?"automation.ux.allReady":"automation.ux.finishHint"),icon:e.jsx(be,{size:17}),ready:ne}],Xe=e.jsxs(e.Fragment,{children:[e.jsxs(Rt,{label:a("automation.ux.addStep"),className:"btn ghost sm",disabled:G||S.length>=24,items:["notify","agent_run","db_row_add","db_row_edit","tool_call"].map(t=>({id:t,label:a(`automation.step.${t}`),icon:he(t),disabled:t==="tool_call"&&!f.length,onSelect:()=>Ke(t)})),children:[e.jsx(bt,{size:14}),a("automation.ux.addStep")]}),e.jsx("button",{className:"icon-btn",title:a("automation.ux.help"),onClick:()=>p("help"),children:e.jsx(qt,{size:15})})]});return e.jsxs("div",{className:`auto-builder auto-workflow-builder ${b?"auto-builder-embedded":""}`,children:[e.jsxs("div",{className:"auto-builder-title",children:[e.jsx(Re,{size:17}),e.jsx("span",{children:a(i?"automation.builder.editTitle":"automation.builder.title")}),e.jsx("button",{className:"btn ghost sm",disabled:G,onClick:()=>h?h():v.closeBuilder(),children:a("common.cancel")})]}),e.jsx("div",{className:"auto-builder-workspace",hidden:!g&&m,children:e.jsx(Kt,{nodes:Je,selected:m?R:"",onSelect:p,children:Xe})}),e.jsxs(Ot,{controller:g,open:m,title:a("automation.ux.setup"),onClose:()=>P(!1),children:[!g&&e.jsxs("button",{className:"btn ghost sm auto-inline-back",onClick:()=>P(!1),children:[e.jsx(xt,{size:14}),a("automation.ux.flow")]}),e.jsxs("div",{className:"auto-inspector","aria-label":a("automation.ux.setup"),children:[e.jsxs("div",{className:"auto-node",hidden:R!=="trigger",children:[e.jsxs("div",{className:"auto-node-head",children:[e.jsx("span",{className:"auto-ic",children:e.jsx(De,{size:14})}),a("automation.builder.trigger")]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.desc")}),e.jsx("input",{"aria-label":a("automation.builder.desc"),type:"text",value:$,maxLength:200,placeholder:a("automation.builder.descPh"),onChange:t=>M(t.target.value)})]}),!b&&e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.condType")}),e.jsxs("div",{className:"auto-seg",children:[e.jsx("button",{className:l==="timer"?"active":"",onClick:()=>y("timer"),children:a("automation.builder.condTimer")}),e.jsx("button",{className:l==="event_seen"?"active":"",onClick:()=>y("event_seen"),children:a("automation.builder.condEvent")}),e.jsx("button",{className:l==="file_chars_gte"?"active":"",onClick:()=>y("file_chars_gte"),children:a("automation.builder.condFile")}),e.jsx("button",{className:l==="db_changed"?"active":"",onClick:()=>y("db_changed"),children:a("automation.builder.condDb")}),e.jsx("button",{className:l==="manual"?"active":"",onClick:()=>y("manual"),children:a("automation.builder.condManual")})]})]}),l==="db_changed"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbPath")}),e.jsxs("select",{value:F,onChange:t=>{We(t.target.value),je([])},children:[e.jsx("option",{value:"",children:a("automation.builder.dbPickDb")}),ee.map(t=>e.jsx("option",{value:t,children:t},t)),F&&!ee.includes(F)&&e.jsx("option",{value:F,children:F})]})]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbEvent")}),e.jsxs("div",{className:"auto-seg",children:[e.jsx("button",{className:z==="row_added"?"active":"",onClick:()=>ge("row_added"),children:a("automation.builder.dbEventRow")}),e.jsx("button",{className:z==="cell_changed"?"active":"",onClick:()=>ge("cell_changed"),children:a("automation.builder.dbEventCell")})]})]}),z==="cell_changed"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbColumn")}),e.jsxs("div",{className:"auto-checks",children:[(U??[]).map(t=>e.jsxs("label",{className:"auto-check",children:[e.jsx("input",{type:"checkbox",checked:L.includes(t.id),onChange:u=>fe(t.id,u.target.checked)}),t.name]},t.id)),L.filter(t=>!(U??[]).some(u=>u.id===t)).map(t=>e.jsxs("label",{className:"auto-check",children:[e.jsx("input",{type:"checkbox",checked:!0,onChange:()=>fe(t,!1)}),"(",t,")"]},t)),!U&&e.jsx("span",{className:"auto-hint",children:a("automation.builder.dbColsLoading")})]}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.dbColumnsHint")})]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbEquals")}),e.jsx("input",{type:"text",value:de,maxLength:200,placeholder:a("automation.builder.dbEqualsPh"),onChange:t=>Be(t.target.value)})]})]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbWhere")}),O.map((t,u)=>e.jsxs("div",{className:"auto-inline",children:[e.jsxs("select",{value:t.column,onChange:r=>ce(u,{column:r.target.value}),children:[e.jsx("option",{value:"",children:a(B?"automation.builder.dbPickCol":"automation.builder.dbColsLoading")}),(B??[]).map(r=>e.jsx("option",{value:r.id,children:r.name},r.id)),t.column&&!(B??[]).some(r=>r.id===t.column)&&e.jsxs("option",{value:t.column,children:["(",t.column,")"]})]}),e.jsx("select",{value:t.op,onChange:r=>ce(u,{op:r.target.value}),children:pt.map(r=>e.jsx("option",{value:r,children:a(r==="eq"?"automation.builder.dbWhereOpEq":r==="ne"?"automation.builder.dbWhereOpNe":r==="empty"?"automation.builder.dbWhereOpEmpty":"automation.builder.dbWhereOpNotEmpty")},r))}),e.jsx("input",{type:"text",value:t.value,maxLength:200,disabled:t.op==="empty"||t.op==="notempty",placeholder:a("automation.builder.dbWhereValPh"),onChange:r=>ce(u,{value:r.target.value})}),e.jsx("button",{className:"icon-btn",title:a("common.delete"),onClick:()=>ue(r=>r.filter((s,d)=>d!==u)),children:e.jsx(xe,{size:12})})]},u)),e.jsx("button",{className:"icon-btn",title:a("automation.builder.dbWhereAdd"),disabled:O.length>=Fe,onClick:()=>ue(t=>[...t,{column:"",op:"eq",value:""}]),children:"+"}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.dbWhereHint")})]}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.dbHint")})]}),l==="manual"&&e.jsx("div",{className:"auto-hint",children:a("automation.builder.manualHint")}),l==="timer"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.timerMode")}),e.jsxs("div",{className:"auto-seg",children:[e.jsx("button",{className:w==="daily_at"?"active":"",onClick:()=>H("daily_at"),children:a("automation.builder.timerDaily")}),e.jsx("button",{className:w==="at"?"active":"",onClick:()=>H("at"),children:a("automation.builder.timerOnce")}),e.jsx("button",{className:w==="every"?"active":"",onClick:()=>H("every"),children:a("automation.builder.timerEvery")})]})]}),w==="daily_at"&&e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.time")}),e.jsx("input",{type:"time",value:q,onChange:t=>X(t.target.value)})]}),w==="at"&&e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.datetime")}),e.jsx("input",{type:"datetime-local",value:Y,onChange:t=>Ie(t.target.value)}),e.jsx("div",{className:"auto-hint",children:a(V?"automation.builder.expiredReset":"automation.builder.onceHint")})]}),w==="every"&&e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.interval")}),e.jsxs("div",{className:"auto-inline",children:[e.jsx("input",{type:"number",value:Z,min:1,style:{width:90},onChange:t=>He(t.target.value)}),e.jsxs("select",{value:ve,onChange:t=>qe(t.target.value),children:[e.jsx("option",{value:"m",children:a("automation.builder.unitM")}),e.jsx("option",{value:"h",children:a("automation.builder.unitH")}),e.jsx("option",{value:"d",children:a("automation.builder.unitD")})]})]}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.everyHint")})]})]}),l==="event_seen"&&e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.match")}),e.jsx("input",{type:"text",list:"auto-event-catalog",value:le,maxLength:120,placeholder:a("automation.builder.matchPh"),onChange:t=>Le(t.target.value)}),e.jsxs("datalist",{id:"auto-event-catalog",children:[vt.map(t=>e.jsx("option",{value:t},t)),gt().map(t=>e.jsx("option",{value:t.name,label:t.label},t.name))]}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.matchHint")})]}),l==="file_chars_gte"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.path")}),e.jsx("input",{type:"text",value:oe,placeholder:"~/Forsion/Notes/xxx.md",onChange:t=>Ve(t.target.value)})]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.chars")}),e.jsx("input",{type:"number",value:re,min:1,onChange:t=>Oe(t.target.value)})]})]})]}),S.map((t,u)=>{const r=t.type==="tool_call"?f.find(s=>s.name===t.tool):void 0;return e.jsxs("div",{className:"auto-node",hidden:R!==String(t.key),children:[e.jsxs("div",{className:"auto-node-head",children:[e.jsx("span",{className:"auto-ic",children:he(t.type)}),a("automation.builder.stepN",{n:String(u+1)})," · ",a(`automation.step.${t.type}`),e.jsxs("span",{className:"auto-step-tools",children:[e.jsx("button",{className:"icon-btn",disabled:u===0,title:a("automation.builder.moveUp"),onClick:()=>Ee(u,-1),children:e.jsx(jt,{size:12})}),e.jsx("button",{className:"icon-btn",disabled:u===S.length-1,title:a("automation.builder.moveDown"),onClick:()=>Ee(u,1),children:e.jsx(ft,{size:12})}),e.jsx("button",{className:"icon-btn",title:a("common.delete"),onClick:()=>{te(s=>s.filter(d=>d.key!==t.key)),p("trigger")},children:e.jsx(xe,{size:12})})]})]}),t.type==="notify"&&e.jsxs(e.Fragment,{children:[e.jsx(Ae,{label:a("automation.builder.notifyTitle"),value:t.title,maxLength:200,placeholder:a("automation.builder.notifyTitlePh"),onChange:s=>j(t.key,{title:s}),columns:U,hasRow:l==="db_changed"}),e.jsx(Ae,{label:a("automation.builder.notifyBody"),value:t.body,multiline:!0,onChange:s=>j(t.key,{body:s}),columns:U,hasRow:l==="db_changed"}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.notifyHint")})]}),t.type==="agent_run"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.runner")}),e.jsxs("select",{value:t.agentSlug,onChange:s=>j(t.key,{agentSlug:s.target.value}),children:[e.jsx("option",{value:"",children:a("automation.builder.runnerPick")}),k.filter(s=>s.slug!=="muse").map(s=>e.jsx("option",{value:s.slug,children:s.name},s.slug))]})]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.prompt")}),e.jsx("textarea",{value:t.prompt,maxLength:500,placeholder:a("automation.builder.promptPh"),onChange:s=>j(t.key,{prompt:s.target.value})})]})]}),(t.type==="db_row_add"||t.type==="db_row_edit")&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbPath")}),e.jsxs("select",{value:t.dbPath,onChange:s=>j(t.key,{dbPath:s.target.value}),children:[e.jsx("option",{value:"",children:a("automation.builder.dbPickDb")}),ee.map(s=>e.jsx("option",{value:s,children:s},s)),t.dbPath&&!ee.includes(t.dbPath)&&e.jsx("option",{value:t.dbPath,children:t.dbPath})]})]}),t.type==="db_row_edit"&&e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbRowId")}),e.jsx("input",{type:"text",value:t.rowId,placeholder:a(l==="db_changed"?"automation.builder.dbRowIdPh":"automation.builder.dbRowIdRequired"),onChange:s=>j(t.key,{rowId:s.target.value})})]}),t.type==="db_row_edit"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbRowFrom")}),e.jsx("input",{type:"text",value:t.rowFrom,maxLength:200,placeholder:a("automation.builder.dbRowFromPh"),onChange:s=>j(t.key,{rowFrom:s.target.value})})]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbMatch")}),e.jsxs("div",{className:"auto-inline",children:[e.jsx("input",{type:"text",value:t.matchColumn,maxLength:200,placeholder:a("automation.builder.dbCellKey"),style:{width:120},onChange:s=>j(t.key,{matchColumn:s.target.value})}),e.jsx("input",{type:"text",value:t.matchValue,maxLength:2e3,placeholder:a("automation.builder.dbMatchValPh"),onChange:s=>j(t.key,{matchValue:s.target.value})})]}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.dbTargetHint")})]})]}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbCells")}),t.cells.map((s,d)=>e.jsxs("div",{className:"auto-inline",children:[e.jsx("input",{type:"text",value:s.k,placeholder:a("automation.builder.dbCellKey"),style:{width:120},onChange:A=>j(t.key,{cells:t.cells.map((N,T)=>T===d?{...N,k:A.target.value}:N)})}),e.jsx("input",{type:"text",value:s.v,placeholder:a(d===0?"automation.builder.dbCellValPh":"automation.builder.dbCellVal"),onChange:A=>j(t.key,{cells:t.cells.map((N,T)=>T===d?{...N,v:A.target.value}:N)})}),e.jsx("button",{className:"icon-btn",title:a("common.delete"),disabled:t.cells.length<=1,onClick:()=>j(t.key,{cells:t.cells.filter((A,N)=>N!==d)}),children:e.jsx(xe,{size:12})})]},d)),e.jsx("button",{className:"icon-btn",title:a("automation.builder.dbCellAdd"),onClick:()=>j(t.key,{cells:[...t.cells,{k:"",v:""}]}),children:"+"}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.dbCellsHint")})]}),t.type==="db_row_add"&&e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.dbSkipIfEmpty")}),e.jsx("input",{type:"text",value:t.skipIfEmpty,maxLength:200,placeholder:a("automation.builder.dbSkipIfEmptyPh"),onChange:s=>j(t.key,{skipIfEmpty:s.target.value})})]})]}),t.type==="tool_call"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.tool")}),e.jsxs("select",{value:t.tool,onChange:s=>{const d=f.find(N=>N.name===s.target.value),A=Object.fromEntries((d?.parameters.required||[]).filter(N=>d?.parameters.properties?.[N]?.type==="boolean").map(N=>[N,"false"]));j(t.key,{tool:s.target.value,argValues:A})},children:[e.jsx("option",{value:"",children:a("automation.builder.toolPick")}),f.map(s=>e.jsxs("option",{value:s.name,children:[s.name,s.dangerous?" ⚠":""]},s.name))]}),r&&e.jsxs("div",{className:"auto-hint",children:[r.description,r.dangerous?` · ${a("automation.builder.dangerous")}`:""]})]}),r&&Object.entries(r.parameters.properties||{}).map(([s,d])=>{const A=(r.parameters.required||[]).includes(s),N=`${s}${A?" *":""}`,T=t.argValues[s]||"",J=_=>j(t.key,{argValues:{...t.argValues,[s]:_}});return e.jsxs("div",{className:"field",children:[e.jsx("label",{title:d.description||"",children:N}),d.enum?.length?e.jsxs("select",{value:T,onChange:_=>J(_.target.value),children:[e.jsx("option",{value:""}),d.enum.map(_=>e.jsx("option",{value:_,children:_},_))]}):d.type==="boolean"?e.jsxs("label",{className:"auto-check",children:[e.jsx("input",{type:"checkbox",checked:T==="true",onChange:_=>J(_.target.checked?"true":"false")})," ",d.description||""]}):d.type==="number"?e.jsx("input",{type:"number",value:T,onChange:_=>J(_.target.value)}):d.type==="string"?e.jsx("textarea",{rows:2,value:T,placeholder:d.description||"",onChange:_=>J(_.target.value)}):e.jsx("textarea",{rows:2,value:T,placeholder:`JSON — ${d.description||""}`,onChange:_=>J(_.target.value)})]},s)})]})]},t.key)}),S.length===0&&i&&l!=="manual"&&e.jsxs("div",{className:"auto-node auto-node-muse",hidden:R!=="muse",children:[e.jsxs("div",{className:"auto-node-head",children:[e.jsx("span",{className:"auto-ic",children:e.jsx(Te,{size:14})}),a("automation.builder.museFallback")]}),e.jsx("div",{className:"auto-hint",children:a("automation.builder.museFallbackHint")}),e.jsxs("div",{className:"field",children:[e.jsx("label",{children:a("automation.builder.prompt")}),e.jsx("textarea",{value:me,maxLength:500,placeholder:a("automation.builder.promptPh"),onChange:t=>Ue(t.target.value)})]})]}),e.jsxs("div",{className:"auto-node auto-review",hidden:R!=="review",children:[e.jsxs("div",{className:"auto-node-head",children:[e.jsx(be,{size:16}),a("automation.ux.review")]}),e.jsx("p",{className:"auto-hint",children:a("automation.ux.enableHint")}),e.jsxs("label",{className:"auto-check",children:[e.jsx("input",{type:"checkbox",checked:D,onChange:t=>I(t.target.checked)}),a("automation.ux.enabledLabel")]}),E.length?e.jsxs("div",{className:"auto-validation",role:"status",children:[e.jsx("strong",{children:a("automation.ux.checklist")}),E.map((t,u)=>e.jsx("button",{onClick:()=>p(t.node),children:t.text},u))]}):e.jsxs("p",{className:"auto-ready",children:[e.jsx(be,{size:14}),a("automation.ux.allReady")]}),l!=="timer"&&l!=="manual"&&e.jsxs("div",{className:"auto-guard",children:[e.jsx("label",{children:a("automation.builder.cooldown")}),e.jsx("input",{type:"number",value:K,min:Se?1:l==="db_changed"?0:.25,step:"1",onChange:t=>{Ce.current=!0,_e(t.target.value)}}),e.jsx("span",{className:"auto-hint",children:a(Se?"automation.builder.cooldownAgentHint":l==="db_changed"?"automation.builder.cooldownDbHint":"automation.builder.cooldownHint")})]})]}),e.jsxs("div",{className:"auto-node",hidden:R!=="help",children:[e.jsx("h3",{children:a("automation.ux.flow")}),e.jsx("p",{className:"auto-hint",children:a("automation.ux.canvasOrder")}),e.jsx("p",{className:"auto-hint",children:a("automation.ux.nativeHint")})]})]})]}),e.jsxs("div",{className:"auto-builder-actions auto-builder-footer",children:[e.jsx("div",{className:"auto-save-status","aria-live":"polite",children:we?e.jsx("span",{role:"alert",children:we}):E.length?e.jsxs("button",{onClick:()=>p(E[0].node),children:[E[0].text,E.length>1?` (+${E.length-1})`:""]}):e.jsx("span",{children:a("automation.ux.allReady")})}),e.jsx("button",{className:"btn ghost sm",onClick:()=>p("review"),children:a("automation.ux.review")}),e.jsx("button",{className:"btn sm",disabled:!ne||G,onClick:()=>{Ge()},children:G?"…":a(D?"automation.ux.saveEnabled":"automation.ux.savePaused")})]})]})},la=Object.freeze(Object.defineProperty({__proto__:null,AutomationBuilder:Jt,hasUnsupportedParts:Me},Symbol.toStringTag,{value:"Module"}));export{Ot as A,Vt as B,sa as S,Jt as a,la as b};
@@ -1 +0,0 @@
1
- import{j as a,u as F,d,r as la}from"./index-BOzsniE1.js";import{t as oa,dz as ra,j$ as ia,jW as Y,k1 as ma,k3 as da,jP as ua,kN as fa,k8 as q,ki as ha,k4 as pa,b as J,jQ as ga,jR as xa,jS as ba,jT as ja,kO as j,jV as w,kc as va,ka as Ca,k9 as Na,K as ka,_ as Q,N as W,aA as wa,aC as aa,aq as K,ge as O,fD as Da,kP as ea,kQ as Sa,kR as X,kS as Z,kT as za,fR as Ma,kU as ya,kV as Aa,V as Pa,kW as qa}from"./appStore-CI1_L5OS.js";import"./client-CaivGZFR.js";import{A as Fa}from"./astryxBridge-CH_c5xjo.js";import{u as H}from"./calendarNavStore-BHUNxDx8.js";import{C as Ea}from"./CapabilityMenu-DJaZ_Cyt.js";import{H as Ia}from"./hard-drive-CfWKRoAE.js";import{S as Ta}from"./star-Dxv7XANS.js";import{C as Ra}from"./CheckboxInput-FYXLaZke.js";import{U as La}from"./upload-DqpRRAhG.js";import"./nativeDownload-CNtwSCy0.js";import"./ipc-B6hkgxQL.js";import"./Tooltip-o8ZqIb3L.js";la({"calcfg.prevMonth":{zh:"上个月",en:"Previous month"},"calcfg.nextMonth":{zh:"下个月",en:"Next month"},"calcfg.jumpToDay":{zh:"跳转到这一天",en:"Jump to this day"},"calcfg.cloud":{zh:"云端",en:"Cloud"},"calcfg.title":{zh:"日历",en:"Calendars"},"calcfg.empty":{zh:"还没有加入日历的多维表。",en:"No databases added to the calendar yet."},"calcfg.eventColor":{zh:"事件颜色",en:"Event color"},"calcfg.fetchFailed":{zh:"拉取失败",en:"Fetch failed"},"calcfg.isDefaultAria":{zh:"{name} 是新建默认日历",en:"{name} is the default calendar for new events"},"calcfg.setDefaultAria":{zh:"将 {name} 设为新建默认日历",en:"Make {name} the default calendar for new events"},"calcfg.defaultCalendar":{zh:"新建默认日历",en:"Default calendar for new events"},"calcfg.setAsDefault":{zh:"设为新建默认日历",en:"Set as default for new events"},"calcfg.showInCalendar":{zh:"在日历中显示",en:"Show in calendar"},"calcfg.more":{zh:"更多",en:"More"},"calcfg.addCalendar":{zh:"添加日历",en:"Add calendar"},"calcfg.addDatabase":{zh:"添加多维表",en:"Add database"},"calcfg.subscribeExternal":{zh:"订阅外部日历",en:"Subscribe to external calendar"},"calcfg.subscribeHint":{zh:"粘贴 .ics 订阅地址(Google / Outlook / Apple 日历「密钥地址」都行)",en:"Paste an .ics subscription URL (Google, Outlook, or Apple Calendar's private address all work)"},"calcfg.importIcs":{zh:"导入 .ics 文件",en:"Import .ics file"},"calcfg.fileTooLarge":{zh:"文件过大(> {mb}MB)",en:"File too large (over {mb} MB)"},"calcfg.notIcs":{zh:"这不是一个 .ics 日历文件",en:"That isn't an .ics calendar file"},"calcfg.readFailed":{zh:"读取失败:{msg}",en:"Failed to read: {msg}"},"calcfg.renameCalendar":{zh:"重命名日历",en:"Rename calendar"},"calcfg.renameSub":{zh:"重命名订阅",en:"Rename subscription"},"calcfg.rename":{zh:"重命名",en:"Rename"},"calcfg.refreshNow":{zh:"立即刷新",en:"Refresh now"},"calcfg.unsubscribe":{zh:"取消订阅",en:"Unsubscribe"},"calcfg.setDefaultDb":{zh:"设为默认库",en:"Set as default"},"calcfg.openInNewTab":{zh:"在新标签打开",en:"Open in new tab"},"calcfg.columnMapping":{zh:"日历设置(列映射)",en:"Calendar settings (column mapping)"},"calcfg.removeFromCalendar":{zh:"从日历移除",en:"Remove from calendar"},"calcfg.searchDbPlaceholder":{zh:"搜索要加入日历的多维表…",en:"Search databases to add to the calendar…"},"calcfg.noCandidates":{zh:"没有含日期属性的可添加多维表",en:"No databases with a date property available to add"},"calcfg.footHint":{zh:"只有含「日期」属性的多维表会出现在这里",en:"Only databases with a Date property appear here"},"calcfg.weekStart":{zh:"一周开始于",en:"Week starts on"},"calcfg.weekStart.auto":{zh:"跟随语言({day})",en:"Default ({day})"},"calcfg.weekStart.sun":{zh:"周日",en:"Sunday"},"calcfg.weekStart.mon":{zh:"周一",en:"Monday"}});function Oa(){const{t:s}=F(),n=X(c=>c.pref),p=X(c=>c.setPref),i=c=>s(c===1?"calcfg.weekStart.mon":"calcfg.weekStart.sun"),u=[{value:"auto",label:s("calcfg.weekStart.auto",{day:i(qa())})},{value:0,label:i(0)},{value:1,label:i(1)}],f=u.find(c=>c.value===n)??u[0];return a.jsxs("div",{className:"amx-calcfg-weekstart","data-week-start":n,children:[a.jsx("span",{className:"amx-calcfg-weekstart-label",children:s("calcfg.weekStart")}),a.jsxs(Ea,{label:`${s("calcfg.weekStart")} · ${f.label}`,className:"capability-menu-trigger amx-calcfg-weekstart-btn",selection:!0,items:u.map(c=>({id:`week-start:${c.value}`,label:c.label,selected:c.value===n,onSelect:()=>p(c.value)})),children:[a.jsx("span",{children:f.label}),a.jsx(aa,{size:13})]})]})}function se(){return a.jsx(Fa,{children:a.jsxs("div",{className:"amx-calside",children:[a.jsx(Ha,{}),a.jsx($a,{})]})})}const $=s=>new Date(s.getFullYear(),s.getMonth(),1);function Ha(){const{t:s}=F(),n=oa(t=>(t.mainTabs,((t.api?ra(t.api):null)?.params??{}).__type==="calendar")),p=H(t=>t.visibleStart),i=H(t=>t.visibleEnd),u=H(t=>t.requestJump),f=d.useMemo(()=>ia(new Date),[]),[c,h]=d.useState(()=>$(f));d.useEffect(()=>{if(n&&p&&i){const t=Y(p),b=ma(t,Math.floor(da(Y(i),t)/2));h($(b))}},[n,p,i]);const v=ua(),x=d.useMemo(()=>fa(c),[c,v]),C=q(f,!0),o=t=>{if(!n||!p||!i)return!1;const b=q(t,!0);return b>=p&&b<=i},N=t=>{h($(t)),n&&u(q(t,!0))};return a.jsxs("div",{className:"amx-mini",children:[a.jsxs("div",{className:"amx-mini-head",children:[a.jsx("button",{className:"amx-mini-nav",onClick:()=>h(new Date(c.getFullYear(),c.getMonth()-1,1)),"aria-label":s("calcfg.prevMonth"),children:"‹"}),a.jsx("span",{className:"amx-mini-title",children:ha(c)}),a.jsx("button",{className:"amx-mini-nav",onClick:()=>h(new Date(c.getFullYear(),c.getMonth()+1,1)),"aria-label":s("calcfg.nextMonth"),children:"›"})]}),a.jsx("div",{className:"amx-mini-dow",children:pa().map(t=>a.jsx("span",{children:t},t))}),a.jsx("div",{className:"amx-mini-grid",children:x.map(t=>{const b=t.getMonth()!==c.getMonth(),E=q(t,!0)===C;return a.jsx("button",{className:`amx-mini-day${b?" out":""}${E?" today":""}${o(t)?" band":""}`,onClick:()=>N(t),title:n?s("calcfg.jumpToDay"):void 0,children:t.getDate()},+t)})})]})}function $a(){const{t:s}=F(),n=J(e=>e.vaultRoot)??"",i=J(e=>e.vaultSide)==="cloud"?s("calcfg.cloud"):n.split(/[\\/]/).pop()||n,u=ga(),f=xa(),c=ba(),h=ja(),v=j(e=>e.errors),x=w(e=>e.byVault),C=w(e=>e.setColor),o=w(e=>e.toggleHidden),N=w(e=>e.setDefault),t=w(e=>e.addMember),b=w(e=>e.removeMember),[E,I]=d.useState(!1),[T,D]=d.useState(null),[B,M]=d.useState(null),[m,g]=d.useState(null),[S,y]=d.useState(null),sa=d.useMemo(()=>new Set(u.map(e=>e.db.path)),[u]),V=[...u.map(e=>({db:e.db})),...f.map(e=>({db:e,readonly:!0,kind:"agent"})),...c.map(e=>({db:e,readonly:!0,kind:"other"})),...h.map(e=>({db:e,readonly:!0,kind:"ics"}))],U=va(n,x),ta=e=>{g(null),O(s("calcfg.renameCalendar"),e.name).then(r=>{const l=r?.trim();l&&l!==e.name&&Ma.getState().mutate(e.path,A=>({...A,name:l}))})},z=e=>e.slice(6),_=e=>v[z(e)],na=()=>{O(s("calcfg.subscribeExternal"),"",{label:s("calcfg.subscribeHint")}).then(e=>{const r=e?.trim();r&&j.getState().add(r)})},ca=()=>{const e=document.createElement("input");e.type="file",e.accept=".ics,text/calendar",e.onchange=()=>{const r=e.files?.[0];if(r){if(r.size>Z){M(s("calcfg.fileTooLarge",{mb:Z/1024/1024}));return}M(null),r.text().then(l=>{j.getState().importText(za(l)||r.name.replace(/\.ics$/i,""),l)||M(s("calcfg.notIcs"))}).catch(l=>M(s("calcfg.readFailed",{msg:l?.message||String(l)})))}},e.click()};return a.jsxs("div",{className:"amx-calcfg",children:[a.jsx("div",{className:"amx-calcfg-head",children:s("calcfg.title")}),V.length===0&&a.jsx("div",{className:"amx-calcfg-empty",children:s("calcfg.empty")}),a.jsx("div",{className:"amx-calcfg-list",children:V.map(({db:e,readonly:r,kind:l},A)=>{const R=Ca(n,x,e.path,A),L=!Na(n,x,e.path),P=U?U===e.path:A===0;return a.jsxs("div",{className:"amx-calcfg-row",children:[a.jsx("span",{className:"amx-calcfg-type","aria-hidden":"true",children:l==="agent"?a.jsx(ka,{size:14}):l==="ics"?a.jsx(Q,{size:14}):l==="other"?a.jsx(Ia,{size:14}):a.jsx(W,{size:14})}),a.jsx("span",{className:"amx-calcfg-swatch",style:{background:L?R:"transparent",borderColor:R},children:a.jsx("input",{type:"color",value:R,onChange:k=>C(n,e.path,k.target.value),title:s("calcfg.eventColor")})}),a.jsxs("span",{className:`amx-calcfg-name${L?"":" off"}`,title:_(e.path)||e.name,children:[e.name,l==="ics"&&_(e.path)&&a.jsxs("span",{className:"amx-cal-vault",children:[" · ",s("calcfg.fetchFailed")]}),(()=>{const k=l==="agent"?"":l==="other"?e.vaultLabel||"":i;return k?a.jsxs("span",{className:"amx-cal-vault",children:[" · ",k]}):null})()]}),!r&&a.jsx("button",{className:`amx-calcfg-def${P?" on":""}`,"aria-label":P?s("calcfg.isDefaultAria",{name:e.name}):s("calcfg.setDefaultAria",{name:e.name}),title:s(P?"calcfg.defaultCalendar":"calcfg.setAsDefault"),onClick:()=>N(n,e.path),children:a.jsx(Ta,{size:13,fill:P?"currentColor":"none"})}),a.jsx(Ra,{label:s("calcfg.showInCalendar"),isLabelHidden:!0,size:"sm",value:L,onChange:()=>o(n,e.path)}),(!r||l==="ics")&&a.jsx("button",{className:"amx-calcfg-more",title:s("calcfg.more"),onClick:k=>{const G=k.currentTarget.getBoundingClientRect();g({db:e,ics:l==="ics",x:Math.min(G.left,window.innerWidth-180),y:G.bottom+4})},children:"⋯"})]},e.path)})}),a.jsxs("button",{className:"amx-calcfg-add amx-calcfg-add-main",onClick:e=>{const r=e.currentTarget.getBoundingClientRect();D({x:Math.max(12,r.left),y:r.bottom+4})},children:[a.jsx(wa,{size:14})," ",s("calcfg.addCalendar")," ",a.jsx(aa,{size:13})]}),B&&a.jsx("div",{className:"amx-calcfg-hint",style:{color:"var(--danger)"},children:B}),a.jsx(Oa,{}),T&&a.jsx("div",{className:"amx-db-popwrap",onMouseDown:()=>D(null),children:a.jsxs(K,{className:"amx-db-pop amx-calcfg-addmenu",x:T.x,y:T.y,onMouseDown:e=>e.stopPropagation(),children:[a.jsxs("button",{className:"amx-db-opt",onClick:()=>{D(null),I(!0)},children:[a.jsx(W,{size:14})," ",s("calcfg.addDatabase")]}),a.jsxs("button",{className:"amx-db-opt",onClick:()=>{D(null),na()},children:[a.jsx(Q,{size:14})," ",s("calcfg.subscribeExternal")]}),a.jsxs("button",{className:"amx-db-opt",onClick:()=>{D(null),ca()},children:[a.jsx(La,{size:14})," ",s("calcfg.importIcs")]})]})}),m&&a.jsx("div",{className:"amx-db-popwrap",onMouseDown:()=>g(null),children:a.jsx(K,{className:"amx-db-pop amx-calcfg-menu",x:m.x,y:m.y,onMouseDown:e=>e.stopPropagation(),children:m.ics?a.jsxs(a.Fragment,{children:[!!j.getState().subs.find(e=>e.id===z(m.db.path))?.url&&a.jsx("button",{className:"amx-db-opt",onClick:()=>{j.getState().refresh(z(m.db.path)),g(null)},children:s("calcfg.refreshNow")}),a.jsx("button",{className:"amx-db-opt",onClick:()=>{const e=z(m.db.path),r=m.db.name;g(null),O(s("calcfg.renameSub"),r).then(l=>{l?.trim()&&j.getState().rename(e,l.trim())})},children:s("calcfg.rename")}),a.jsx("button",{className:"amx-db-opt amx-db-opt-danger",onClick:()=>{j.getState().remove(z(m.db.path)),g(null)},children:s("calcfg.unsubscribe")})]}):a.jsxs(a.Fragment,{children:[a.jsx("button",{className:"amx-db-opt",onClick:()=>ta(m.db),children:s("calcfg.rename")}),a.jsx("button",{className:"amx-db-opt",onClick:()=>{N(n,m.db.path),g(null)},children:s("calcfg.setDefaultDb")}),a.jsx("button",{className:"amx-db-opt",onClick:()=>{Da(m.db.path),g(null)},children:s("calcfg.openInNewTab")}),a.jsx("button",{className:"amx-db-opt",onClick:()=>{y(m.db),g(null)},children:s("calcfg.columnMapping")}),a.jsx("button",{className:"amx-db-opt amx-db-opt-danger",onClick:()=>{b(n,m.db.path),g(null)},children:s("calcfg.removeFromCalendar")})]})})}),E&&a.jsx(Wa,{memberPaths:sa,onClose:()=>I(!1),onAdd:(e,r,l)=>{t(n,e.path,r,l),I(!1)}}),S&&a.jsx("div",{className:"amx-db-popwrap",onMouseDown:()=>y(null),children:a.jsx("div",{className:"amx-db-pop amx-calpick-pop",onMouseDown:e=>e.stopPropagation(),children:a.jsx(ea,{dbName:S.name,columns:S.columns,initial:Sa(n,x,S.path),onCancel:()=>y(null),onConfirm:(e,r)=>{t(n,S.path,e,r),y(null)}})})})]})}function Wa({memberPaths:s,onClose:n,onAdd:p}){const{t:i}=F(),u=ya(),[f,c]=d.useState(""),[h,v]=d.useState(null),x=d.useMemo(()=>u.filter(o=>!s.has(o.path)&&o.columns.some(Aa)),[u,s]),C=f?x.filter(o=>o.name.toLowerCase().includes(f.toLowerCase())):x;return a.jsx("div",{className:"amx-qf-scrim",onMouseDown:n,children:h?a.jsx("div",{className:"amx-qf-card",onMouseDown:o=>o.stopPropagation(),children:a.jsx(ea,{dbName:h.name,columns:h.columns,onCancel:()=>v(null),onConfirm:(o,N)=>p(h,o,N)})}):a.jsxs("div",{className:"amx-qf",onMouseDown:o=>o.stopPropagation(),children:[a.jsxs("div",{className:"amx-qf-head",children:[a.jsx(Pa,{size:16,className:"amx-qf-searchicon"}),a.jsx("input",{autoFocus:!0,className:"amx-qf-input",placeholder:i("calcfg.searchDbPlaceholder"),value:f,onChange:o=>c(o.target.value)})]}),a.jsxs("div",{className:"amx-qf-list",children:[C.map(o=>a.jsxs("button",{className:"amx-qf-row",onClick:()=>v(o),children:[a.jsx("span",{className:"amx-qf-icon",children:a.jsx(W,{size:15})}),a.jsx("span",{className:"amx-qf-title",children:o.name||o.path}),a.jsx("span",{className:"amx-qf-sub",children:o.path.replace(/\\/g,"/").split("/").slice(0,-1).join("/")||"/"})]},o.path)),C.length===0&&a.jsx("div",{className:"amx-qf-empty",children:i("calcfg.noCandidates")})]}),a.jsx("div",{className:"amx-qf-foot",children:i("calcfg.footHint")})]})})}export{se as CalendarConfigView};
@@ -1 +0,0 @@
1
- import{d as s,j as n,t as we,r as Je,u as ze}from"./index-BOzsniE1.js";import{J as xt,jP as ft,jQ as mt,jR as ht,jS as pt,jT as yt,jU as kt,b as gt,jV as bt,jW as me,jX as vt,jY as wt,jZ as G,j_ as be,j$ as J,k0 as jt,bX as $t,aR as Mt,k1 as ae,k2 as Te,k3 as $e,k4 as Ct,k5 as Qe,k6 as et,k7 as fe,am as xe,k8 as Z,k9 as zt,ka as Et,kb as Dt,kc as Tt,kd as St,ke as Nt,kf as qe,kg as Rt,kh as We,ki as At,kj as He,kk as It,kl as tt}from"./appStore-CI1_L5OS.js";import"./client-CaivGZFR.js";import{u as Lt,p as Q,m as he,t as pe,S as Pt,a as qt,b as Wt,r as Ht,c as Kt,I as Ft,l as Ot,A as Vt}from"./astryxBridge-CH_c5xjo.js";import{u as ee,H as Bt}from"./calendarNavStore-BHUNxDx8.js";import{E as Gt,d as Yt}from"./EventCard-_39F_I5M.js";import{Z as Xt,a as Ut}from"./zoom-in-Bf-eKTnH.js";import{R as _t}from"./rotate-ccw-DdkrbRAB.js";import"./nativeDownload-CNtwSCy0.js";import"./ipc-B6hkgxQL.js";const Zt=[["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M19 16v6",key:"tddt3s"}],["path",{d:"M21 12.598V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8.5",key:"1glfrc"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 2v4",key:"1cmpym"}]],Jt=xt("calendar-plus",Zt);function nt({children:e,as:t="span",ref:o,...i}){return s.createElement(t,{ref:o,...i,className:"x10l6tqk x1i1rx1s xjm9jq1 xkdpibf x1717udv xb3r6kr xzpqnlu xuxw1ft xng3xce x13vifvy x1o0tod x47corl x87ps6o"},e)}nt.displayName="VisuallyHidden";const Qt="data-astryx-edge-comp",Re=s.createContext(null);Re.displayName="SizeContext";function en(e,t="md"){const o=s.use(Re);return e??o??t}Re.Provider;const st=s.createContext(null);st.displayName="ButtonGroupContext";function tn(){return s.use(st)}const rt=s.createContext(null);rt.displayName="LinkContext";function nn(e){function t({href:o,ref:i,...u}){return s.createElement(e,{ref:i,href:o,to:o,...u})}return t.displayName=`LinkWithTo(${typeof e=="string"?e:e.displayName||e.name||"Component"})`,t}function at(e){const t=s.use(rt),o=e??t?.component??"a";return s.useMemo(()=>o==="a"?"a":nn(o),[o])}const re={base:{kVAEAm:"x1n2onr6",k1xSpc:"x3nfvp2",kGNEyG:"x6s0dn4",kjj79g:"xl56j7k",kOIVth:"x1txdalj",k8WAf4:"xce4md1",kg3NbH:"xrrkdod",kMzoRj:"xc342km",ksu8eU:"xng3xce",kaIpWk:"x1jxw6zd",kMv6JI:"xjb2p0i",kGuDYH:"xcr08ib",kLWn49:"x1kq96og",k63SB2:"x1e4wzip",khDVqt:"xuxw1ft",kkrTdU:"x1ypdohk",k1ekBW:"xrafxwg",kIyJzY:"xuedmi6 x12w9bfk",kAMwcw:"xlr8y92",$$css:!0},pressable:{k3aq6I:"x3oybdh xk4oym4",$$css:!0},disabled:{kkrTdU:"x1h6gzvc",kSiTet:"xbyyjgo",kKwaWg:"x18o3ruo",k3aq6I:"x1c071of x1pdlv7q",$$css:!0},ariaDisabled:{kKwaWg:"x18o3ruo x8o3jvd xuqm82a",$$css:!0},iconOnly:{"--button-icon-only-aspect":"x1v15ycx",kOBAk4:"xioom0i",kg3NbH:"xnjsko4",k8WAf4:"xt970qd",$$css:!0},iconWrapper:{k1xSpc:"x3nfvp2",kGNEyG:"x6s0dn4",kjj79g:"xl56j7k",kmuXW:"x2lah0s",$$css:!0},contentWrapper:{k1xSpc:"xjp7ctv",$$css:!0},link:{kybGjl:"x1hl2dhg",$$css:!0}},sn={sm:{kZKoxP:"x6k0iem",$$css:!0},md:{kZKoxP:"x1ueg155",$$css:!0},lg:{kZKoxP:"xssyfek",$$css:!0}},rn={sm:{kzqmXN:"x1kky2od",kZKoxP:"xlup9mm",kGuDYH:"x1j61zf2",$$css:!0},md:{kzqmXN:"x1kky2od",kZKoxP:"xlup9mm",kGuDYH:"x1j61zf2",$$css:!0},lg:{kzqmXN:"xw4jnvo",kZKoxP:"x1qx5ct2",kGuDYH:"xwsyq91",$$css:!0}},an={primary:{kWkggS:"x1ewilqj",kMwMTN:"x17wrial",kKwaWg:"x1ilzqfv xq8i9tn",kI3sdo:"x17nn4n9","--button-focus-offset":"xkzo27j",kInvED:"x1wfwxd8 x13aywxo",$$css:!0},secondary:{kWkggS:"x17x4s8c",kMwMTN:"x1tgivj0",kKwaWg:"x1ilzqfv xq8i9tn",kI3sdo:"x17nn4n9","--button-focus-offset":"xkzo27j",kInvED:"x1wfwxd8 x13aywxo",$$css:!0},ghost:{kWkggS:"xjbqb8w",kMwMTN:"x1tgivj0",kKwaWg:"x1ilzqfv xq8i9tn",kI3sdo:"x17nn4n9","--button-focus-offset":"xkzo27j",kInvED:"x1wfwxd8 x13aywxo",$$css:!0},destructive:{kWkggS:"x1pjz0fi",kMwMTN:"x1m024r3",kKwaWg:"x1ilzqfv xq8i9tn",kI3sdo:"x1p73he7","--button-focus-offset":"xkzo27j",kInvED:"x1wfwxd8 x13aywxo",$$css:!0}},Ke={hiddenContent:{kMwMTN:"x19co3pv",$$css:!0},hiddenContentDelayed:{kKVMdj:"x1ffowhz",k44tkh:"xjlvqhv",kWV6AL:"x10e4vud",kKxzle:"x17yabm6 x14q22ui",$$css:!0}},je={horizontal:{krdFHd:"x15mokao x8eehn2",kVL7Gh:"xbiv7yw x1xrp5p4",kfmiAY:"x1ga7v0g x11xp8u1",kT0f0o:"x16uus16 x747jw7",k2ei4v:"xgbv0en x1pjv70x",kVhnKS:"x1t7ytsu xyf0ibl",kGJrpR:"x1j92z86",$$css:!0},vertical:{krdFHd:"x15mokao x8eehn2",kfmiAY:"x1ga7v0g x2qxyot",kVL7Gh:"xbiv7yw x1yp72r9",kT0f0o:"x16uus16 x747jw7",kEafiO:"x11xkdxz x1g31smg",kPef9Z:"x13fuv20 x1d9v4yf",kLZC3w:"x1pc3f07",$$css:!0},onSolidHorizontal:{kGJrpR:"xrvmtm5",$$css:!0},onSolidVertical:{kLZC3w:"x11npmm7",$$css:!0}};function ce({label:e,variant:t="secondary",size:o,type:i="button",isDisabled:u=!1,isLoading:C=!1,isInterruptible:j=!1,clickAction:y,icon:$,isIconOnly:l=!1,children:d,endContent:p,tooltip:v,href:S,as:z,target:E,rel:k,xstyle:L,className:H,style:A,ref:T,...P}){const h=en(o,"md"),D=tn(),[R,c]=s.useTransition(),x=s.useRef(!1),g=C||R,w=R||j,q=D?.isDisabled??!1,K=u||q||g&&!j,Y=at(z),F=S!=null&&!K,f=v!=null&&K,N=Lt({placement:"above",isEnabled:v!=null}),W=X=>{if(K||x.current&&!j){X.preventDefault();return}P.onClick?.(X),y&&!X.defaultPrevented&&(x.current=!0,c(async()=>{try{await y(X)}finally{x.current=!1}}))},O=f?X=>{X.key==="Enter"||X.key===" "?X.preventDefault():P.onKeyDown?.(X)}:void 0,ne=t==="ghost"?{[Qt]:""}:null,a=Q(re.base,sn[h],an[t],l&&re.iconOnly,K&&re.disabled,f&&re.ariaDisabled,F&&re.link,!D&&re.pressable,D&&(D.orientation==="horizontal"?je.horizontal:je.vertical),D&&(t==="primary"||t==="destructive")&&(D.orientation==="horizontal"?je.onSolidHorizontal:je.onSolidVertical),L),r=he(pe("button",{variant:t,size:h}),a,H,A),m=n.jsxs(n.Fragment,{children:[g&&n.jsx("span",{...{0:{className:"x10l6tqk x13vifvy xu96u03 x3m8u43 x1ey2m1c xrvj5dj x1ku5rj1"},1:{className:"x10l6tqk x13vifvy xu96u03 x3m8u43 x1ey2m1c xrvj5dj x1ku5rj1 xqcmdr3 xb2rp9n xskzprw x17yabm6 x14q22ui"}}[!!w<<0],"aria-hidden":"true",children:n.jsx(Pt,{size:"sm",shade:"inherit"})}),n.jsxs("span",{...Q(re.contentWrapper,g&&(w?Ke.hiddenContentDelayed:Ke.hiddenContent)),"aria-hidden":g||void 0,children:[$&&n.jsx("span",{...Q(re.iconWrapper,rn[h]),children:$}),l?null:n.jsx("span",{className:"xb3r6kr xlyipyv xeuugli",children:d??e}),!l&&p&&n.jsx("span",{className:"x3nfvp2 x6s0dn4 x1heor9g",children:p})]}),n.jsx(nt,{role:"status","aria-live":"polite",children:g?"Loading":""})]}),b=l&&e!==""||g&&!l||d!=null&&d!==e?{"aria-label":e}:null,I=v!=null?{"aria-describedby":[P["aria-describedby"],N.describedBy].filter(Boolean).join(" ")||void 0}:null,B=qt(T,v!=null?N.ref:void 0);let te;return F?te=n.jsx(Y,{ref:B,href:S,target:E,rel:k,...r,...P,...b,...I,...ne,onClick:W,children:m}):te=n.jsx("button",{ref:B,type:i,disabled:f?void 0:K,...r,...P,...b,...I,...ne,"aria-busy":g||void 0,"aria-disabled":f||void 0,onClick:W,...O?{onKeyDown:O}:null,children:m}),v?n.jsxs(n.Fragment,{children:[te,N.renderTooltip(v)]}):te}ce.displayName="Button";const on='button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled]), [contenteditable]:not([contenteditable="false"]), audio[controls], video[controls], iframe, details > summary:first-child',ve=[];function ln(e){ve.push(e)}function cn(e){const t=ve.lastIndexOf(e);t!==-1&&ve.splice(t,1)}function un(e){return ve[ve.length-1]===e}function dn(e){return e.isComposing===!0||e.keyCode===229}function xn(e){if(e.hasAttribute("inert")||e.closest("[inert]")||e.hidden||e.closest("[hidden]"))return!1;if(typeof window<"u"&&window.getComputedStyle){const t=window.getComputedStyle(e);if(t.visibility==="hidden"||t.display==="none")return!1}return!0}function Ae(e){return Array.from(e.querySelectorAll(on)).filter(xn)}function ot(e){try{e.focus()}catch{}return document.activeElement===e}function Fe(e){const t=Ae(e);for(const o of t)if(ot(o))return!0;return!1}function fn(e){const t=Ae(e);for(let o=t.length-1;o>=0;o--)if(ot(t[o]))return!0;return!1}function mn(e){const{isActive:t,onEscape:o}=e,i=s.useRef(null),u=s.useRef(null),C=s.useRef(!1),j=s.useCallback(()=>{i.current&&Fe(i.current)},[]);return s.useEffect(()=>{if(!t)return;const y=$=>{const l=i.current;if(!l)return;const d=$.target;l.contains(d)?u.current=d:C.current&&(Fe(l),u.current===document.activeElement&&fn(l),u.current=document.activeElement),C.current=!1};return document.addEventListener("focus",y,!0),()=>{document.removeEventListener("focus",y,!0)}},[t]),s.useEffect(()=>{if(!t)return;const y=()=>{o?.()};o&&ln(y);const $=l=>{const d=i.current;if(d){if(l.key==="Escape"&&o){if(l.defaultPrevented||dn(l)||!un(y))return;l.preventDefault(),l.stopPropagation(),o();return}if(l.key==="Tab"){C.current=!0;const p=Ae(d);if(p.length===0)return;const v=p[0],S=p[p.length-1];l.shiftKey?document.activeElement===v&&(l.preventDefault(),S.focus()):document.activeElement===S&&(l.preventDefault(),v.focus())}}};return document.addEventListener("keydown",$),()=>{document.removeEventListener("keydown",$),o&&cn(y)}},[t,o]),{containerRef:i,focusFirst:j}}const Oe={surface:{kWkggS:"x1prclbq",kaIpWk:"x1hviunn",kGVxlE:"x1i5ehqx",$$css:!0},contentWrapper:{kVAEAm:"x1n2onr6",$$css:!0}};function hn(e={}){const{onShow:t,onHide:o,xstyle:i,hasLightDismiss:u=!0,hasEscapeDismiss:C=!0,hasAutoFocus:j=!0,hasSurface:y=!0,hasCloseButton:$=!0,closeButtonLabel:l="Close popover",dialogLabel:d,role:p="dialog",isModal:v=!0}=e,S=s.useRef(null),z=s.useRef(!1),E=Wt({mode:"context",lightDismiss:u,onShow:t,onHide:o}),{containerRef:k,focusFirst:L}=mn({isActive:E.isOpen,onEscape:C||u?E.hide:void 0});s.useEffect(()=>{E.isOpen&&j&&!z.current&&requestAnimationFrame(()=>{L()}),E.isOpen||(z.current=!1)},[E.isOpen,j,L]);const H=s.useCallback(R=>{S.current=R,E.ref(R)},[E]),A=s.useCallback(R=>{z.current=R?.skipAutoFocus??!1,E.show()},[E]),T=s.useCallback(()=>{E.isOpen?E.hide():A()},[E,A]),P={"aria-haspopup":p==="dialog"?"dialog":"true","aria-expanded":E.isOpen,"aria-controls":E.id},h=s.useRef(!1);s.useEffect(()=>{p==="dialog"&&!d&&!h.current&&(h.current=!0,console.warn('usePopover: role="dialog" without a `dialogLabel` renders an unnamed dialog. Pass `dialogLabel`, or use `role: "none"` for listbox/menu popups whose content already carries its own role.'))},[p,d]);const D=s.useCallback((R,c)=>E.render(n.jsxs("div",{ref:k,role:p==="dialog"?"dialog":void 0,"aria-modal":p==="dialog"&&v?!0:void 0,"aria-label":p==="dialog"?d:void 0,...Q(Oe.contentWrapper,y&&Oe.surface,i),children:[R,$&&n.jsx("div",{className:"x10l6tqk x1ey2m1c x1nrll8i x31h1t8 x1vjfegm x1i1rx1s x10okhzq xjm9jq1 x132qfvm xb3r6kr x1dordxg x1hyvwdk x10wafsz x47corl xbt4iw xexx8yu x1kw28su",children:n.jsx(ce,{variant:"secondary",label:l,onClick:E.hide})})]}),{...c,xstyle:c?.xstyle}),[E,$,y,l,k,d,p,v,i]);return{triggerRef:H,contentRef:k,anchorId:E.anchorId,show:A,hide:E.hide,toggle:T,isOpen:E.isOpen,id:E.id,render:D,triggerProps:P}}const Ve={horizontal:{k1xSpc:"x78zum5",kGNEyG:"x6s0dn4",kzqmXN:"xh8yej3",$$css:!0},vertical:{k1xSpc:"x3nfvp2",kXwgrk:"xdt5ytf",kGNEyG:"x6s0dn4",kZKoxP:"x5yr21d",$$css:!0}},de={horizontalLine:{kZKoxP:"xsyqizj",kzQI83:"x1iyjqo2",kmuXW:"xs83m0k",$$css:!0},verticalLine:{kzqmXN:"xjk4fl7",kzQI83:"x1iyjqo2",kmuXW:"xs83m0k",$$css:!0},subtle:{kWkggS:"x1m4xfpy",$$css:!0},strong:{kWkggS:"x7njt3n",$$css:!0}},Be={horizontal:{keTefX:"xojxgvx",k71WvV:"x1fcf3bl",kzqmXN:"xx6qvi6",$$css:!0},vertical:{keoZOQ:"x1sa9bsh",k1K539:"x6h7pi7",kZKoxP:"x12qplqi",$$css:!0}};function lt({orientation:e="horizontal",label:t,variant:o="subtle",isFullBleed:i=!1,xstyle:u,className:C,style:j,ref:y,...$}){const l=e==="horizontal";return n.jsxs("div",{ref:y,role:"separator","aria-orientation":e,...he(pe("divider",{variant:o,orientation:e}),Q(l?Ve.horizontal:Ve.vertical,i&&(l?Be.horizontal:Be.vertical),u),C,j),...$,children:[n.jsx("div",{...Q(l?de.horizontalLine:de.verticalLine,de[o])}),t&&n.jsx("div",{...{0:{className:"x2lah0s xrrkdod x141an7d x1ltkj2j xv1l7n4"},1:{className:"x2lah0s x141an7d x1ltkj2j xv1l7n4 xnjsko4 x8o8v82"}}[!l<<0],children:t}),t&&n.jsx("div",{...Q(l?de.horizontalLine:de.verticalLine,de[o])})]})}lt.displayName="Divider";const pn=["noopener","noreferrer"];function yn(e,t){if(e!=="_blank")return{target:e,rel:t};const o=t?.split(/\s+/).filter(Boolean)??[];for(const i of pn)o.includes(i)||o.push(i);return{target:e,rel:o.join(" ")}}const U={root:{k1xSpc:"x78zum5",kGNEyG:"x6s0dn4",kOIVth:"x1txdalj",kg3NbH:"xf314gf",kVAEAm:"x1n2onr6",kB7OPa:"x9f619",k9WMMc:"x1yc453h",kaIpWk:"xh6dtrn",$$css:!0},alignStart:{kGNEyG:"x1cy8zhl",$$css:!0},interactive:{kkrTdU:"x1ypdohk",k1ekBW:"x15406qy",kIyJzY:"xkvfbh3",kAMwcw:"xlr8y92",kWkggS:"xjbqb8w xe9uy6x xyxi2l3",$$css:!0},focusVisibleOutline:{kI3sdo:"x1a2a7pz x1irc7jg",kInvED:"x1wfwxd8 xdjuwb3",$$css:!0},highlighted:{kWkggS:"x1lmrjuc",$$css:!0},selected:{kWkggS:"xgcxg3y",$$css:!0},disabled:{kkrTdU:"x1h6gzvc",kfzvcC:"x47corl",$$css:!0},label:{kMwMTN:"x1tgivj0",kGuDYH:"xjm74w1",kLWn49:"xw6l6zx",$$css:!0},labelSingleTruncate:{kVQacm:"xb3r6kr",kg5iWk:"xlyipyv",khDVqt:"xuxw1ft",$$css:!0},labelMultiTruncate:{kVQacm:"xb3r6kr",k1xSpc:"x104kibb",kgKLqz:"x1ua5tub",$$css:!0},description:{kMwMTN:"xv1l7n4",kGuDYH:"x141an7d",kLWn49:"x1ltkj2j",$$css:!0},descriptionSingleTruncate:{kVQacm:"xb3r6kr",kg5iWk:"xlyipyv",khDVqt:"xuxw1ft",$$css:!0},descriptionMultiTruncate:{kVQacm:"xb3r6kr",k1xSpc:"x104kibb",kgKLqz:"x1ua5tub",$$css:!0}},Ge={lineClamp:e=>[{kJFfOR:e!=null?"x1yhjpo9":e,$$css:!0},{"--x-WebkitLineClamp":e??void 0}]},kn={compact:{k8WAf4:"xu0wf1k",$$css:!0},balanced:{k8WAf4:"xce4md1",$$css:!0},spacious:{k8WAf4:"x8o8v82",kg3NbH:"xrrkdod",$$css:!0}};function ct({as:e="div",marker:t,startContent:o,label:i,description:u,endContent:C,align:j="center",density:y="balanced",labelLines:$,descriptionLines:l,onClick:d,href:p,target:v,rel:S,isHighlighted:z=!1,isSelected:E=!1,isDisabled:k=!1,xstyle:L,className:H,style:A,ref:T,role:P,...h}){const D=at(),R=d!=null||p!=null,{target:c,rel:x}=yn(v,S),g=P!=null,w=typeof i=="string",q=typeof u=="string",K=$!=null?$===1?U.labelSingleTruncate:U.labelMultiTruncate:w?U.labelSingleTruncate:null,Y=l!=null?l===1?U.descriptionSingleTruncate:U.descriptionMultiTruncate:q?U.descriptionSingleTruncate:null,F=n.jsxs(n.Fragment,{children:[n.jsx("span",{...Q(U.label,K,$!=null&&$>1&&Ge.lineClamp($)),children:i}),u!=null&&n.jsx("span",{...Q(U.description,Y,l!=null&&l>1&&Ge.lineClamp(l)),children:u})]}),f=W=>{k||W.target.closest("button, a, input, select, textarea")||d?.(W)},N=n.jsxs(n.Fragment,{children:[t,o!=null&&n.jsx("span",{className:"x3psx0u x78zum5",children:o}),g?n.jsx("span",{...{0:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h"},1:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo"}}[!!k<<0],children:F}):p!=null?n.jsx(D,{href:p,target:c,rel:x,"aria-disabled":k||void 0,tabIndex:k?-1:void 0,...{0:{className:"xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz"},1:{className:"xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1hl2dhg x1a2a7pz xbyyjgo"}}[!!k<<0],children:F}):d!=null?n.jsx("button",{type:"button",onClick:d,disabled:k,...{0:{className:"xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz"},1:{className:"xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz xbyyjgo"}}[!!k<<0],children:F}):n.jsx("span",{...{0:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h"},1:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo"}}[!!k<<0],children:F}),C!=null&&n.jsx("span",{...{0:{className:"x3psx0u x78zum5 xvc5jky"},1:{className:"x3psx0u x78zum5 xvc5jky xbyyjgo"}}[!!k<<0],children:C})]});return n.jsx(e,{ref:T,"aria-selected":E||void 0,"aria-disabled":k||void 0,...h,...he(pe("item",{density:y,align:j}),Q(U.root,kn[y],j==="start"&&U.alignStart,R&&U.interactive,R&&U.focusVisibleOutline,z&&U.highlighted,E&&U.selected,k&&!g&&U.disabled,L),H,A),role:P,onClick:g?d:R?f:void 0,children:N})}ct.displayName="Item";const Ie=s.createContext(null);Ie.displayName="DropdownMenuContext";function gn(){return s.use(Ie)}const Ye={root:{kB7OPa:"x9f619",kzqmXN:"xh8yej3",k8WAf4:"xce4md1",kg3NbH:"xf314gf",kaIpWk:"x1ws5lxm",kMv6JI:"x9ynric",kGuDYH:"xcr08ib",kMwMTN:"x1tgivj0",kWkggS:"xjbqb8w x1c52tdz x1uwx2nv",kkrTdU:"x1ypdohk",k9WMMc:"xdpxx8g",kI3sdo:"x1a2a7pz",$$css:!0},disabled:{kSiTet:"xbyyjgo",kkrTdU:"x1h6gzvc",$$css:!0}},bn={sm:{k8WAf4:"xu0wf1k",kg3NbH:"xf314gf",$$css:!0},md:{k8WAf4:"x1vofgu7",$$css:!0},lg:{$$css:!0}};function ie({icon:e,label:t,description:o,onClick:i,isDisabled:u=!1,endContent:C,xstyle:j,className:y,style:$}){const l=gn(),d=l?.menuSize??"md",p=s.useCallback(()=>{u||!i||(i(),l?.closeMenu())},[u,i,l]);return n.jsx(ct,{role:"menuitem",tabIndex:u?void 0:-1,startContent:e?Ht(e,{size:"sm",color:"secondary"}):void 0,label:t,description:o,endContent:C,onClick:p,isDisabled:u,xstyle:[Ye.root,bn[d],u&&Ye.disabled,j],...he(pe("dropdown-menu-item",{size:d}),{className:y,style:$})})}ie.displayName="DropdownMenuItem";const vn={divider:{kqGvvJ:"xsq74q5",$$css:!0}};function Xe(e){return`item-${e.label}`}function wn(e,t){return`section-${e.title??t}`}function jn(e){const t=[];for(let o=0;o<e.length;o++){const i=e[o];"type"in i&&i.type==="divider"?t.push(n.jsx(lt,{xstyle:vn.divider},`divider-${o}`)):"type"in i&&i.type==="section"?t.push(n.jsxs("div",{role:"group","aria-label":i.title,children:[i.title&&n.jsx("div",{className:"xu0wf1k xf314gf x9ynric x141an7d x1ltkj2j xv1l7n4 x87ps6o","aria-hidden":"true",children:i.title}),i.items.map(u=>n.jsx(ie,{icon:u.icon,label:u.label,onClick:u.onClick,isDisabled:u.isDisabled},Xe(u)))]},wn(i,o))):"type"in i||t.push(n.jsx(ie,{icon:i.icon,label:i.label,onClick:i.onClick,isDisabled:i.isDisabled},Xe(i)))}return t}const $n=new Set(["text","search","url","tel","email","password","number"]);function Mn(e){if(e.isContentEditable)return e;const t=e.closest("[contenteditable]");return t&&t.getAttribute("contenteditable")!=="false"?t:null}function Ue(e,t){if(!(e instanceof HTMLElement))return!1;const o=Mn(e);if(o){const l=typeof window<"u"?window.getSelection():null;return l&&l.rangeCount>0&&!l.isCollapsed?!0:(o.textContent??"").length>0}const i=e.tagName==="TEXTAREA",u=e.tagName==="INPUT"&&$n.has(e.type);if(!i&&!u)return!1;const C=e,{selectionStart:j,selectionEnd:y,value:$}=C;return j!==y||j==null?!0:t==="ArrowLeft"||t==="ArrowUp"||t==="Home"?j>0:t==="ArrowRight"||t==="ArrowDown"||t==="End"?j<$.length:!1}function Cn(e={}){const{itemSelector:t='[role="menuitem"]',wrap:o=!0,onEscape:i,orientation:u="vertical",hasHomeEnd:C=!0,isRtl:j=!1,hasRovingTabIndex:y=!1,hasCaretGuard:$=!1}=e,l=s.useRef(null),d=s.useCallback(h=>h.getAttribute("aria-disabled")==="true"||h.disabled===!0||h.hasAttribute("disabled"),[]),p=s.useCallback(()=>l.current?Array.from(l.current.querySelectorAll(t)):[],[t]),v=s.useCallback((h,D,R,c)=>{const x=h.length;if(x===0)return-1;let g=D;for(let w=0;w<x;w++){if(g<0||g>=x){if(!c)return-1;g=(g+x)%x}const q=h[g];if(q&&!d(q))return g;g+=R}return-1},[d]),S=s.useCallback(()=>{const h=p(),D=document.activeElement;return h.findIndex(R=>R===D||R.contains(D))},[p]),z=s.useCallback((h,D)=>{h.getAttribute("tabindex")!==String(D)&&h.setAttribute("tabindex",String(D))},[]),E=s.useCallback(()=>{const h=p(),D=h.filter(x=>!d(x));if(D.length===0)return;const c=D.find(x=>x.getAttribute("tabindex")==="0")??D[0];for(const x of h)z(x,x===c?0:-1)},[p,d,z]);Kt(()=>{y&&E()});const k=s.useCallback((h,D)=>{const R=h[D];if(R){if(y)for(const c of h)z(c,c===R?0:-1);R.focus()}},[y,z]),L=s.useCallback(h=>{const D=p();if(D.length===0)return;const R=Math.max(0,Math.min(h,D.length-1));k(D,R)},[p,k]),H=s.useCallback(()=>{const h=p(),D=v(h,0,1,!1);return D!==-1?(k(h,D),!0):!1},[p,v,k]),A=s.useCallback(()=>{const h=p(),D=v(h,h.length-1,-1,!1);return D!==-1?(k(h,D),!0):!1},[p,v,k]),T=s.useCallback(()=>{y&&E()},[y,E]),P=s.useCallback(h=>{if(h.ctrlKey||h.metaKey||h.altKey)return;if(h.key==="Escape"){h.preventDefault(),i?.();return}const D=u==="horizontal"||u==="both",R=u==="vertical"||u==="both",c=[],x=[];D&&(c.push(j?"ArrowLeft":"ArrowRight"),x.push(j?"ArrowRight":"ArrowLeft")),R&&(c.push("ArrowDown"),x.push("ArrowUp"));const g=c.includes(h.key),w=x.includes(h.key),q=C&&h.key==="Home",K=C&&h.key==="End";if(!g&&!w&&!q&&!K||$&&(Ue(h.target,h.key)||Ue(document.activeElement,h.key)))return;const Y=S(),F=p();if(g){const f=Y===-1?0:Y+1,N=v(F,f,1,o);N!==-1&&k(F,N)}else if(w){const f=Y===-1?F.length-1:Y-1,N=v(F,f,-1,o);N!==-1&&k(F,N)}else q?H():K&&A();h.preventDefault()},[S,p,o,u,j,C,$,v,k,H,A,i]);return{listRef:l,handleKeyDown:P,handleFocus:T,focusItem:L,focusFirst:H,focusLast:A}}function zn(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&e.key!==" "}function En(e){const{getItemLabels:t,onMatch:o,getCurrentIndex:i,resetMs:u=750,isDisabled:C}=e,j=s.useRef(""),y=s.useRef(void 0),$=s.useCallback(()=>{j.current="",y.current&&(clearTimeout(y.current),y.current=void 0)},[]),l=s.useCallback(()=>{y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{j.current="",y.current=void 0},u)},[u]);return{onKeyDown:s.useCallback(p=>{const v=p.key===" "&&j.current.length>0;if(!zn(p)&&!v)return!1;const S=t();if(S.length===0)return!1;const z=p.key.toLowerCase(),E=j.current.length>0&&j.current.split("").every(T=>T===z),k=E?z:j.current+z;j.current=k,l();const L=i?.()??-1,H=S.length,A=E?1:0;for(let T=0;T<H;T++){const P=(L+A+T+H)%H;if(C?.(P))continue;const h=S[P];if(h!=null&&h.trim().toLowerCase().startsWith(k))return o(P),!0}return!0},[t,o,i,l,C]),reset:$}}const ye={dropdown:{kB7OPa:"x9f619",k1xSpc:"x78zum5",kXwgrk:"xdt5ytf",kOIVth:"x1lsbc85",kskxy:"xuyqlj2",kORKVm:"x1odjw0f","--_dropdown-menu-radius":"x1fcsqxe","--_dropdown-menu-padding":"xgory14",kmVPX3:"x9epnlk",kaIpWk:"x1n97fys",kSiTet:"x1hc1fzr",k1ekBW:"x19991ni",kIyJzY:"xuedmi6",kAMwcw:"xlr8y92",$$css:!0},popover:{k7Eaqz:"xrzjruh",$$css:!0},popoverBlockGap:{keoZOQ:"xcsaf9d",k1K539:"x14cgwvg",$$css:!0},popoverInlineGap:{keTefX:"x11g1kdw",k71WvV:"xnur1sd",$$css:!0},popoverCustomWidth:e=>[{k7Eaqz:(typeof e=="number"?`${e}px`:e)!=null?"xkj4a21":typeof e=="number"?`${e}px`:e,$$css:!0},{"--x-minWidth":(t=>typeof t=="number"?t+"px":t??void 0)(typeof e=="number"?`${e}px`:e)}]},Dn={label:"Menu"};function Se({button:e=Dn,isMenuOpen:t,onOpenChange:o,menuWidth:i,onClick:u,hasChevron:C=!0,placement:j="below",className:y,style:$,xstyle:l,"data-testid":d,...p}){const v=("items"in p?p.items:void 0)??[],S=p.children,z=s.useId(),E=e?.size??"md",k=s.useRef(null),[L,H]=s.useState(!1),A=t!==void 0,T=A?t:L,P=s.useRef(0),h=s.useCallback(()=>{P.current=Date.now(),A?o?.(!1):H(!1),k.current?.focus()},[A,o]),D=s.useRef(!1),R=s.useCallback(()=>{A?o?.(!0):H(!0),D.current&&(D.current=!1)},[A,o]),c=hn({onHide:h,onShow:R,hasLightDismiss:!0,hasCloseButton:!1,hasAutoFocus:!1,role:"none"}),x=s.useCallback(()=>{c.hide()},[c]),{listRef:g,handleKeyDown:w,focusFirst:q,focusItem:K}=Cn({itemSelector:'[role="menuitem"]:not([aria-disabled="true"])',wrap:!1,onEscape:x}),Y=s.useCallback(()=>g.current?Array.from(g.current.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')):[],[g]),F=En({getItemLabels:()=>Y().map(b=>b.textContent),onMatch:K,getCurrentIndex:()=>Y().findIndex(b=>b===document.activeElement||b.contains(document.activeElement))});s.useEffect(()=>{A&&(t&&!c.isOpen?(c.show(),requestAnimationFrame(()=>q())):!t&&c.isOpen&&c.hide())},[t,A,c,q]);const f=s.useCallback(b=>{if(b.key==="Enter"||b.key===" "){b.preventDefault();const I=document.activeElement;I?.getAttribute("role")==="menuitem"&&I.click();return}if(b.key==="Tab"){x();return}if(F.onKeyDown(b)){b.preventDefault();return}w(b)},[w,x,F]),N=s.useCallback(()=>{c.show(),requestAnimationFrame(()=>q())},[c,q]),W=s.useCallback(()=>{Date.now()-P.current<50||(u?.(),A?o?.(!t):c.isOpen?c.hide():N())},[u,A,o,t,c,N]),O=s.useCallback(b=>{c.isOpen||(b.key==="ArrowDown"||b.key==="Enter"||b.key===" ")&&(b.preventDefault(),N())},[c.isOpen,N]),V=e.isIconOnly===!0,ne=e.endContent??(C&&!V?n.jsx(Ft,{icon:"chevronDown",size:"sm",color:"inherit"}):void 0),a=i?ye.popoverCustomWidth(i):ye.popover,r=j==="above"||j==="below"?ye.popoverBlockGap:ye.popoverInlineGap,m=s.useMemo(()=>({closeMenu:x,menuSize:E}),[x,E]),M=p.items!==void 0?jn(v):S;return n.jsxs(n.Fragment,{children:[n.jsx(ce,{...e,ref:b=>{k.current=b,c.triggerRef(b);const I=e.ref;typeof I=="function"?I(b):I&&(I.current=b)},tooltip:T?void 0:e.tooltip,endContent:ne,onClick:W,onKeyDown:O,"aria-haspopup":"menu","aria-expanded":T,"aria-controls":z,"data-testid":d}),c.render(n.jsx("div",{ref:g,id:z,role:"menu","aria-label":e.label,onKeyDown:f,...he(pe("dropdown-menu"),Q(ye.dropdown,l),y,$),children:n.jsx(Ie,{value:m,children:M})}),{placement:j,alignment:"start",xstyle:[a,r,Ot[j]]})]})}Se.displayName="DropdownMenu";const Tn={wrapper:{k1xSpc:"x3nfvp2",kGNEyG:"x6s0dn4",kOIVth:"xzye2dw",kmuXW:"x2lah0s",$$css:!0}},Sn={ctrl:"⌃",alt:"⌥",shift:"⇧",enter:"↵",backspace:"⌫",escape:"Esc",tab:"⇥",up:"↑",down:"↓",left:"←",right:"→",plus:"+"};function Nn(e,t){return e==="mod"?t?"⌘":"Ctrl":Sn[e]??e.toUpperCase()}const Rn={ctrl:"Control",alt:"Alt",shift:"Shift",enter:"Enter",backspace:"Backspace",escape:"Escape",tab:"Tab",up:"Up arrow",down:"Down arrow",left:"Left arrow",right:"Right arrow",plus:"Plus"};function An(e,t){return e==="mod"?t?"Command":"Control":Rn[e]??e.toUpperCase()}function In(){return()=>{}}function Ln(){return!1}function Pn(){if(typeof navigator>"u")return!1;const e="userAgentData"in navigator?navigator.userAgentData:null;return e&&typeof e=="object"&&"platform"in e?/mac/i.test(e.platform??""):/Mac|iPhone|iPad|iPod/.test(navigator.platform??"")}function it({keys:e,ref:t,xstyle:o,className:i,style:u,...C}){const j=s.useSyncExternalStore(In,Pn,Ln),y=e.split("+").map(l=>l.trim().toLowerCase()),$=y.map(l=>An(l,j)).join(" + ");return n.jsx("span",{ref:t,role:"img","aria-label":$,...C,...he(pe("kbd"),Q(Tn.wrapper,o),i,u),children:y.map(l=>n.jsx("kbd",{"aria-hidden":"true",className:"x3nfvp2 x6s0dn4 xl56j7k x16asifk x1grt7ep x7a5moj xx3sua9 x17x4s8c xlxy82 x1q0q8m5 xib2hle xv1l7n4 x9ynric x141an7d x1e4wzip x1ltkj2j x87ps6o",children:Nn(l,j)},l))})}it.displayName="Kbd";Je({"calkeys.modeDay":{zh:"日",en:"Day"},"calkeys.modeWeek":{zh:"周",en:"Week"},"calkeys.mode3day":{zh:"3 日",en:"3 days"},"calkeys.modeMonth":{zh:"月",en:"Month"}});const Ne=[{id:"day",get label(){return we("calkeys.modeDay")},key:"d"},{id:"week",get label(){return we("calkeys.modeWeek")},key:"w"},{id:"3day",get label(){return we("calkeys.mode3day")},key:"3"},{id:"month",get label(){return we("calkeys.modeMonth")},key:"m"}];function qn(e){const t=(e.metaKey||e.ctrlKey)&&!e.altKey;if(t&&(e.key==="c"||e.key==="C"))return{kind:"copy"};if(t&&(e.key==="v"||e.key==="V"))return{kind:"paste"};if(e.metaKey||e.ctrlKey||e.altKey)return null;if(e.key==="Delete"||e.key==="Backspace")return{kind:"delete"};if(e.key==="ArrowLeft")return{kind:"prev"};if(e.key==="ArrowRight")return{kind:"next"};const o=Ne.find(i=>i.key===e.key.toLowerCase());return o?{kind:"mode",mode:o.id}:null}const ke=e=>e.end?.getTime()??e.start.getTime()+3600*1e3;function Wn(e){const t=[...e].sort((i,u)=>i.start.getTime()-u.start.getTime()||ke(i)-ke(u)),o=new Map;for(let i=0;i<t.length;){let u=i+1,C=ke(t[i]);for(;u<t.length&&t[u].start.getTime()<C;)C=Math.max(C,ke(t[u])),u+=1;const j=t.slice(i,u),y=[],$=j.map(d=>{let p=y.findIndex(v=>v<=d.start.getTime());return p<0&&(p=y.length),y[p]=ke(d),{ev:d,lane:p}}),l=Math.max(1,y.length);for(const{ev:d,lane:p}of $)o.set(d.key,{lane:p,laneCount:l,leftPct:p/l*100,widthPct:100/l});i=u}return o}Je({"calview.untitled":{zh:"未命名",en:"Untitled"},"calview.newEventTitle":{zh:"新事件",en:"New event"},"calview.new":{zh:"新建",en:"New"},"calview.newInto":{zh:"新建到「{name}」",en:'New event in "{name}"'},"calview.noDbHint":{zh:"请先在右栏添加一个含日期属性的多维表",en:"Add a calendar database in the right panel first"},"calview.today":{zh:"今天",en:"Today"},"calview.prevPage":{zh:"上一页",en:"Previous"},"calview.nextPage":{zh:"下一页",en:"Next"},"calview.density":{zh:"密度",en:"Density"},"calview.zoomOut":{zh:"缩小时间轴",en:"Zoom out timeline"},"calview.zoomIn":{zh:"放大时间轴",en:"Zoom in timeline"},"calview.densityReset":{zh:"恢复默认密度",en:"Reset to default density"},"calview.empty":{zh:"还没有日历事件。点「新建」,或在右栏添加一个含日期属性的多维表。",en:'No calendar events yet. Click "New", or add a database with a date property in the right panel.'},"calview.emptyNoDb":{zh:"还没有日历。在右栏点「添加日历」,选一个含日期属性的多维表。",en:'No calendars yet. Use "Add calendar" in the right 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.monthFirst":{zh:"{m}月1",en:"{m}/1"},"calview.moreItems":{zh:"还有 {n} 项",en:"{n} more"},"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"}});const le=26,_e=8.4,ge=150,Ze=40;function Hn(e,t,o){const i=[];return e.forEach(({db:u,dateCol:C},j)=>{if(zt(t,o,u.path))return;const y=Et(t,o,u.path,j);for(const $ of u.rows){const l=typeof $.cells[C]=="string"?$.cells[C]:"",d=Dt(l);d&&i.push({key:`${u.path}::${$.rowId}`,color:y,db:u,row:$,colId:C,title:$.name,raw:l,start:me(d.start),end:d.end?me(d.end):null,allDay:d.allDay,readonly:u.readonly&&!u.writeCell})}}),i}const _=e=>`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`,oe=e=>{const t=e.currentTarget,o=t.getBoundingClientRect();return{left:o.left,top:o.top,right:o.right,bottom:o.bottom,zoom:xe(t)||1}},Kn=(e,t,o)=>t?`${Z(e,o)}/${Z(t,o)}`:Z(e,o),Me=(e,t,o)=>tt(e.db,e.row.rowId,e.colId,Kn(t,o,e.allDay)),Ce=e=>({"--amx-event-color":e}),ut=(e,t)=>{const o=J(t).getTime(),i=J(e.start).getTime()<o,u=J(e.end??e.start).getTime()>o;return`${i?" continues-left":""}${u?" continues-right":""}`};function ts(){const{t:e}=ze(),t=ft(),o=mt(),i=ht(),u=pt(),C=yt(),j=kt(),y=gt(f=>f.vaultRoot)??"",$=bt(f=>f.byVault),l=ee(f=>f.mode),d=ee(f=>f.setMode),p=ee(f=>f.hourPx),v=ee(f=>f.setHourPx),S=ee(f=>f.jumpNonce),[z,E]=s.useState(null),k=s.useRef(null),L=s.useRef(null),H=s.useRef(null);s.useEffect(()=>{l!=="month"&&(H.current=null)},[l]);const A=s.useRef(null),T=s.useRef(null);s.useEffect(()=>{if(!S)return;const f=ee.getState().jumpDate;f&&L.current?.goto(me(f))},[S]),vt();const P=s.useMemo(()=>[...o.map(f=>({db:f.db,dateCol:f.dateCol})),...[...i,...u,...C,...j].map(f=>({db:f,dateCol:wt(f)?.id})).filter(f=>!!f.dateCol)],[o,i,u,C,j]),h=s.useMemo(()=>Hn(P,y,$),[P,y,$]),D=s.useMemo(()=>h.map(f=>f.title?f:{...f,title:e("calview.untitled")}),[h,e]),R=z?h.find(f=>f.key===z.key)??null:null;A.current=R;const c=(f,N)=>E({key:f,at:N}),x=()=>{const f=Tt(y,$),N=o.find(W=>W.db.path===f)??o.find(W=>!W.db.isNoteView)??o[0]??null;return N?{db:N.db,dateCol:N.dateCol}:null},g=x(),w=async(f,N,W)=>{const O=x();if(!O)return;const{db:V,dateCol:ne}=O;let a;if(N===null)a=Z(f,!0);else{const m=G(J(f),N);a=`${Z(m,!1)}/${Z(G(m,30),!1)}`}const r=await Nt(V,ne,a,e("calview.newEventTitle"));c(`${V.path}::${r}`,W)};s.useEffect(()=>{const f=N=>{const W=N.target;if(W&&W.closest("input, textarea, select, [contenteditable]"))return;const O=qn(N);if(!O)return;const V=A.current;switch(O.kind){case"copy":V&&!V.readonly&&(T.current={db:V.db,rowId:V.row.rowId});break;case"paste":T.current&&St(T.current.db,T.current.rowId);break;case"delete":V&&!V.readonly&&(Yt(V.db,V.row,V.title),E(null));break;case"prev":L.current?.prev();break;case"next":L.current?.next();break;case"mode":ee.getState().setMode(O.mode);break}N.preventDefault()};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[]);const q=s.useRef(null),[K,Y]=s.useState(7);s.useLayoutEffect(()=>{const f=q.current;if(!f)return;const N=()=>{const O=f.clientWidth-52;Y(O>=784?7:O>=396?3:1)};N();const W=new ResizeObserver(N);return W.observe(f),()=>W.disconnect()},[]);const F=Math.min(l==="week"?7:l==="3day"?3:1,K);return n.jsxs("div",{className:"amx-cal",ref:q,children:[n.jsx(Vt,{children:n.jsxs("header",{className:"amx-cal-bar",children:[n.jsx("div",{className:"amx-cal-nav",children:n.jsx("span",{className:"amx-cal-title",ref:k})}),n.jsxs("div",{className:"amx-cal-modes",children:[n.jsx(ce,{size:"sm",variant:"primary",icon:n.jsx(Jt,{size:14}),label:e("calview.new"),isDisabled:!g,tooltip:g?e("calview.newInto",{name:g.db.name}):e("calview.noDbHint"),onClick:f=>{const N=new Date,W=G(J(N),be(N.getHours()*60+N.getMinutes()+15)),O=oe(f);w(J(W),W.getHours()*60+W.getMinutes(),O)}}),n.jsx(ce,{size:"sm",variant:"secondary",label:e("calview.today"),onClick:()=>L.current?.today()}),n.jsx(ce,{size:"sm",variant:"ghost",isIconOnly:!0,icon:n.jsx(jt,{size:14}),label:e("calview.prevPage"),onClick:()=>L.current?.prev()}),n.jsx(ce,{size:"sm",variant:"ghost",isIconOnly:!0,icon:n.jsx($t,{size:14}),label:e("calview.nextPage"),onClick:()=>L.current?.next()}),n.jsx(Se,{button:{label:Ne.find(f=>f.id===l)?.label??"周",variant:"secondary",size:"sm"},menuWidth:168,children:Ne.map(f=>n.jsx(ie,{icon:l===f.id?n.jsx(Mt,{size:14}):n.jsx("span",{style:{display:"inline-block",width:14}}),label:f.label,endContent:n.jsx(it,{keys:f.key}),onClick:()=>d(f.id)},f.id))}),l!=="month"&&n.jsx("span",{className:"amx-cal-density",children:n.jsxs(Se,{button:{label:e("calview.density"),variant:"ghost",size:"sm"},menuWidth:176,children:[n.jsx(ie,{icon:n.jsx(Xt,{size:14}),label:e("calview.zoomOut"),onClick:()=>v(p-8)}),n.jsx(ie,{icon:n.jsx(Ut,{size:14}),label:e("calview.zoomIn"),onClick:()=>v(p+8)}),n.jsx(ie,{icon:n.jsx(_t,{size:14}),label:e("calview.densityReset"),endContent:`${p}px`,onClick:()=>v(Bt)})]})})]})]})}),D.length===0&&n.jsx("div",{className:"amx-cal-empty",children:e(g?"calview.empty":"calview.emptyNoDb")}),l==="month"?n.jsx(On,{ref:L,anchorRef:H,events:D,selectedKey:z?.key??null,onPick:c,onCreate:(f,N)=>{w(f,null,N)},titleRef:k},`dow${t}`):n.jsx(Fn,{ref:L,n:F,weekStartDow:l==="week"&&F===7?t:null,events:D,selectedKey:z?.key??null,onPick:c,onCreate:(f,N,W)=>{w(f,N,W)},titleRef:k}),R&&z&&n.jsx(Gt,{ev:R,at:z.at,onClose:()=>E(null)})]})}const Fn=s.forwardRef(function({n:t,weekStartDow:o,events:i,selectedKey:u,onPick:C,onCreate:j,titleRef:y},$){const{t:l}=ze(),d=s.useRef(null),p=s.useRef(null),[v,S]=s.useState(0),[z,E]=s.useState(0),k=ee(a=>a.hourPx),L=ee(a=>a.setVisibleRange),H=()=>{p.current&&d.current&&(p.current.style.transform=`translateY(${-d.current.scrollTop}px)`)},A=s.useMemo(()=>J(new Date),[]),T=s.useMemo(()=>{const a=ae(A,-ge);return Array.from({length:ge*2+1},(r,m)=>ae(a,m))},[A]),P=a=>o==null?a:Math.max(0,a-(T[a].getDay()-o+7)%7),h=s.useRef(ge),D=s.useRef(void 0),R=s.useRef(!1),c=s.useRef(""),x=s.useRef(-1),g=s.useRef(null),w=()=>{g.current&&(g.current.style.display="none")},q=s.useRef(null),[K,Y]=s.useState(()=>{const a=new Date;return a.getHours()*60+a.getMinutes()});s.useEffect(()=>{const a=setInterval(()=>{const r=new Date;Y(r.getHours()*60+r.getMinutes())},3e4);return()=>clearInterval(a)},[]),s.useEffect(()=>()=>L(null,null),[L]);const F=()=>{const a=d.current;if(!a||!v)return;const r=Math.max(0,Math.min(T.length-t,Math.round(a.scrollLeft/v)));h.current=r;const m=It(Qe(T[r],t));m!==c.current&&(c.current=m,y.current&&(y.current.textContent=m)),r*8+t!==x.current&&(x.current=r*8+t,L(Z(T[r],!0),Z(T[Math.min(T.length-1,r+t-1)],!0)))};s.useLayoutEffect(()=>{const a=d.current;if(!a)return;const r=t===7?112:t===3?132:180,m=()=>S(Math.max(r,a.clientWidth/t));m();const M=new ResizeObserver(m);return M.observe(a),()=>M.disconnect()},[t]),s.useLayoutEffect(()=>{const a=d.current;if(!a)return;const r=a.querySelector(".amx-cal-daycol2");r&&E(Math.max(0,r.offsetTop-(le+14)))},[i,v,t]),s.useLayoutEffect(()=>{const a=d.current;if(!(!a||!v)){if(!R.current){h.current=ge,R.current=!0;const r=a.querySelector(".amx-cal-daycol2"),m=r?r.offsetTop:le+14;a.scrollTop=Math.max(0,m+K/60*k-a.clientHeight/2)}D.current!==o&&(D.current=o,h.current=P(h.current)),a.scrollLeft=h.current*v,F(),H()}},[v,o]);const f=s.useRef(k);s.useLayoutEffect(()=>{const a=d.current,r=f.current;if(f.current=k,!a||r===k)return;const m=a.querySelector(".amx-cal-daycol2"),M=m?m.offsetTop:le+14,b=a.clientHeight/2,I=(a.scrollTop+b-M)/r;a.scrollTop=Math.max(0,M+I*k-b),H()},[k]),s.useEffect(()=>{const a=d.current;if(!a)return;const r=m=>{if(!m.ctrlKey&&!m.metaKey)return;m.preventDefault();const M=ee.getState();M.setHourPx(M.hourPx*(m.deltaY<0?1.12:1/1.12))};return a.addEventListener("wheel",r,{passive:!1}),()=>a.removeEventListener("wheel",r)},[]),s.useImperativeHandle($,()=>({prev:()=>d.current?.scrollBy({left:-t*v,behavior:"smooth"}),next:()=>d.current?.scrollBy({left:t*v,behavior:"smooth"}),today:()=>d.current?.scrollTo({left:P(ge)*v,behavior:"smooth"}),goto:a=>{if(!v)return;const r=Math.min(T.length-t,P(Math.max(0,Math.min(T.length-1,$e(J(a),T[0])))));d.current?.scrollTo({left:r*v,behavior:"smooth"})}}),[t,v,T,o]);const N=(a,r)=>{if(r.stopPropagation(),a.readonly)return;const m=r.currentTarget,M=m.getBoundingClientRect(),b=xe(m)||1,I=(r.clientY-M.top)/b,B=I<_e?"start":M.height/b-I<_e?"end":"move",te=We(a.start,a.end,k),X=Math.max(14,te.height),ue=m.querySelector(".amx-cal-event-t");m.setPointerCapture(r.pointerId),m.classList.add("dragging"),q.current={mode:B,ev:a,el:m,tEl:ue,t0:ue?.textContent??"",x0:r.clientX,y0:r.clientY,zoom:b,top0:te.top,h0:X,grabOffY:I,durMin:Math.round(X/k*60),msDur:a.end?a.end.getTime()-a.start.getTime():0,dyMin:0,moved:!1,target:null}},W=a=>{const r=q.current;if(!r)return;if(r.mode==="move"){const b=(a.clientX-r.x0)/r.zoom,I=(a.clientY-r.y0)/r.zoom;(Math.abs(b)>3||Math.abs(I)>3)&&(r.moved=!0),r.el.style.transform=`translate(${b}px, ${I}px)`;const B=d.current;if(!B||!v)return;const te=B.getBoundingClientRect(),X=xe(B)||1,ue=Math.max(0,Math.min(T.length-1,Math.floor(((a.clientX-te.left)/X+B.scrollLeft)/v))),Le=le+14+z,dt=(a.clientY-te.top)/X-r.grabOffY+B.scrollTop-Le,Ee=Math.max(0,Math.min(1440-r.durMin,be(dt/k*60)));r.target={iso:Z(T[ue],!0),topMin:Ee};const se=g.current;if(se&&(se.style.display="block",se.style.left=`${ue*v}px`,se.style.width=`${v}px`,se.style.top=`${Le+Ee/60*k}px`,se.style.height=`${r.h0}px`),r.moved){const De=G(J(T[ue]),Ee),Pe=r.msDur?`${_(De)}–${_(new Date(De.getTime()+r.msDur))}`:_(De);r.tEl&&(r.tEl.textContent=Pe),se&&(se.textContent=Pe)}return}const m=be((a.clientY-r.y0)/r.zoom/k*60);r.dyMin=m;const M=m/60*k;if(r.mode==="end"?r.el.style.height=`${Math.max(14,r.h0+M)}px`:(r.el.style.top=`${r.top0+M}px`,r.el.style.height=`${Math.max(14,r.h0-M)}px`),m!==0&&r.tEl){const b=r.ev.end??G(r.ev.start,60);if(r.mode==="end"){let I=G(b,m);I.getTime()<=r.ev.start.getTime()&&(I=G(r.ev.start,15)),r.tEl.textContent=`${_(r.ev.start)}–${_(I)}`}else{let I=G(r.ev.start,m);I.getTime()>=b.getTime()&&(I=G(b,-15)),r.tEl.textContent=`${_(I)}–${_(b)}`}}},O=(a,r)=>{const m=q.current;if(q.current=null,!m){a.readonly&&C(a.key,oe(r));return}if(m.el.classList.remove("dragging"),m.mode==="move"){if(m.el.style.transform="",w(),!m.moved||!m.target){m.tEl&&(m.tEl.textContent=m.t0),m.moved||C(a.key,oe(r));return}const b=G(J(me(m.target.iso)),m.target.topMin);Me(a,b,a.end?new Date(b.getTime()+m.msDur):null);return}if(m.dyMin===0){m.tEl&&(m.tEl.textContent=m.t0);return}const M=a.end??G(a.start,60);if(m.mode==="end"){let b=G(M,m.dyMin);b.getTime()<=a.start.getTime()&&(b=G(a.start,15)),Me(a,a.start,b)}else{let b=G(a.start,m.dyMin);b.getTime()>=M.getTime()&&(b=G(M,-15)),Me(a,b,M)}},V=a=>{a.stopPropagation(),a.currentTarget.setPointerCapture(a.pointerId)},ne=(a,r)=>{if(a.readonly){C(a.key,oe(r));return}const m=document.elementFromPoint(r.clientX,r.clientY)?.closest(".amx-cal-daycol2"),M=m?.getAttribute("data-date");if(m&&M){const b=m.getBoundingClientRect(),I=Math.max(0,Math.min(1410,be((r.clientY-b.top)/(xe(m)||1)/k*60))),B=G(J(me(M)),I);tt(a.db,a.row.rowId,a.colId,`${Z(B,!1)}/${Z(G(B,30),!1)}`);return}C(a.key,oe(r))};return n.jsxs("div",{className:"amx-cal-timerow",style:{"--amx-hour-px":`${k}px`},children:[n.jsx("div",{className:"amx-cal-gutterfixed",children:n.jsxs("div",{className:"amx-cal-gutterinner",children:[n.jsx("div",{className:"amx-cal-gcorner",style:{height:le+14}}),n.jsx("div",{className:"amx-cal-gallday",style:{height:z},children:l("calview.allDay")}),n.jsxs("div",{className:"amx-cal-ghours",ref:p,children:[qe.map(a=>n.jsx("div",{className:"amx-cal-hour",style:{height:k},children:a===0?"":`${a}:00`},a)),n.jsxs("span",{className:"amx-cal-nowlabel",style:{top:K/60*k},children:[String(Math.floor(K/60)).padStart(2,"0"),":",String(K%60).padStart(2,"0")]})]})]})}),n.jsx("div",{className:"amx-cal-tscroll",ref:d,onScroll:()=>{F(),H()},children:n.jsxs("div",{className:"amx-cal-tgrid2",style:{gridTemplateColumns:`repeat(${T.length}, ${v}px)`,gridTemplateRows:`${le+14}px auto ${qe.length*k}px`},children:[T.map(a=>n.jsxs("div",{className:`amx-cal-thead2${fe(a,A)?" today":""}`,children:[n.jsx("span",{className:"amx-cal-tdow",children:Rt(a.getDay())}),n.jsxs("span",{className:"amx-cal-tdate",children:[a.getMonth()+1,"/",a.getDate()]})]},+a)),T.map(a=>n.jsx("div",{className:"amx-cal-allday2",children:i.filter(r=>r.allDay&&et(r.start,r.end,a)).map(r=>n.jsx("button",{className:`amx-cal-chip-ev amx-cal-alldrag${r.readonly?" readonly":""}${u===r.key?" selected":""}${ut(r,a)}`,style:Ce(r.color),"aria-label":l("calview.a11yAllDayEvent",{title:r.title}),title:r.readonly?r.title:l("calview.allDayDragHint",{title:r.title}),onPointerDown:V,onPointerUp:m=>ne(r,m),children:r.title},r.key))},+a)),T.map(a=>n.jsxs("div",{className:"amx-cal-daycol2","data-date":Z(a,!0),onDoubleClick:r=>{if(r.target.closest(".amx-cal-event"))return;const m=r.currentTarget.getBoundingClientRect(),M=xe(r.currentTarget)||1,b=Math.max(0,Math.min(1410,be((r.clientY-m.top)/M/k*60)));j(a,b,{left:r.clientX,top:r.clientY,right:r.clientX,bottom:r.clientY,zoom:M})},children:[(()=>{const r=i.filter(M=>!M.allDay&&fe(M.start,a)),m=Wn(r);return r.map(M=>{const b=We(M.start,M.end,k),I=m.get(M.key)??{leftPct:0,widthPct:100};return n.jsxs("button",{className:`amx-cal-event${M.readonly?" readonly":""}${u===M.key?" selected":""}`,style:{...Ce(M.color),top:b.top,height:Math.max(14,b.height),left:`calc(${I.leftPct}% + 2px)`,width:`calc(${I.widthPct}% - 4px)`},"aria-label":M.end?l("calview.a11yEventRange",{title:M.title,start:_(M.start),end:_(M.end)}):l("calview.a11yEvent",{title:M.title,time:_(M.start)}),title:M.title,onPointerDown:B=>N(M,B),onPointerMove:W,onPointerUp:B=>O(M,B),children:[n.jsxs("span",{className:"amx-cal-event-t",children:[_(M.start),M.end?`–${_(M.end)}`:""]}),n.jsx("span",{className:"amx-cal-event-title",children:M.title})]},M.key)})})(),n.jsx("div",{className:`amx-cal-nowline${fe(a,A)?" today":""}`,style:{top:K/60*k}})]},+a)),n.jsx("div",{className:"amx-cal-dropghost",ref:g})]})})]})}),On=s.forwardRef(function({anchorRef:t,events:o,selectedKey:i,onPick:u,onCreate:C,titleRef:j},y){const{t:$}=ze(),l=s.useRef(null),[d,p]=s.useState(0),v=ee(c=>c.setVisibleRange),S=s.useMemo(()=>J(new Date),[]),z=s.useMemo(()=>{const c=ae(Te(S),-Ze*7);return Array.from({length:Ze*2+1},(x,g)=>ae(c,g*7))},[S]),E=s.useRef(!1),[k,L]=s.useState(null),H=s.useRef(""),A=s.useRef(-1);s.useEffect(()=>()=>v(null,null),[v]);const T=(c,x)=>Math.round($e(Te(new Date(c,x,1)),z[0])/7),P=()=>{const c=l.current;if(!c||!d)return;const x=Math.max(0,Math.min(z.length-1,Math.round(c.scrollTop/d))),g=ae(z[x],3),w=At(g);if(t&&(t.current={y:g.getFullYear(),m:g.getMonth()}),w!==H.current&&(H.current=w,j.current&&(j.current.textContent=w)),x!==A.current){A.current=x;const q=Math.max(1,Math.round(c.clientHeight/d)),K=z[Math.min(z.length-1,x+q-1)];v(Z(z[x],!0),Z(ae(K,6),!0))}};s.useLayoutEffect(()=>{const c=l.current;if(!c)return;const x=()=>p(Math.max(64,(c.clientHeight-le)/6));x();const g=new ResizeObserver(x);return g.observe(c),()=>g.disconnect()},[]),s.useLayoutEffect(()=>{const c=l.current;if(!c||!d||E.current)return;E.current=!0;const x=t?.current;if(x){let g=Math.max(0,Math.min(z.length-1,T(x.y,x.m)));ae(z[g],3).getMonth()!==x.m&&g+1<z.length&&(g+=1),c.scrollTop=g*d}else c.scrollTop=T(S.getFullYear(),S.getMonth())*d;P()},[d]),s.useImperativeHandle(y,()=>({prev:()=>h(-1),next:()=>h(1),today:()=>l.current?.scrollTo({top:T(S.getFullYear(),S.getMonth())*d,behavior:"smooth"}),goto:c=>{if(!d)return;const x=Math.max(0,Math.min(z.length-1,Math.round($e(Te(c),z[0])/7)));l.current?.scrollTo({top:x*d,behavior:"smooth"})}}),[d]);const h=c=>{const x=l.current;if(!x||!d)return;const g=Math.max(0,Math.min(z.length-1,Math.round(x.scrollTop/d))),w=ae(z[g],3);x.scrollTo({top:Math.max(0,T(w.getFullYear(),w.getMonth()+c))*d,behavior:"smooth"})},D=c=>{c.stopPropagation(),c.currentTarget.setPointerCapture(c.pointerId)},R=(c,x)=>{const g=oe(x);if(c.readonly){u(c.key,g);return}const q=document.elementFromPoint(x.clientX,x.clientY)?.closest(".amx-cal-mcell")?.getAttribute("data-date");if(q){const K=$e(me(q),c.start);if(K!==0){Me(c,He(c.start,K),c.end?He(c.end,K):null);return}}u(c.key,g)};return n.jsxs("div",{className:"amx-cal-mscroll",ref:l,onScroll:P,children:[n.jsx("div",{className:"amx-cal-weekhead2",children:Ct().map(c=>n.jsx("div",{children:c},c))}),n.jsx("div",{className:"amx-cal-mweeks",children:z.map(c=>n.jsx("div",{className:"amx-cal-mweek",style:{height:d},children:Qe(c,7).map(x=>{const g=o.filter(w=>et(w.start,w.end,x));return n.jsxs("div",{className:`amx-cal-mcell${fe(x,S)?" today":""}`,"data-date":Z(x,!0),onDoubleClick:w=>{w.target.closest(".amx-cal-chip-ev")||C(x,{left:w.clientX,top:w.clientY,right:w.clientX,bottom:w.clientY,zoom:xe(w.currentTarget)||1})},children:[n.jsx("div",{className:"amx-cal-mnum",children:x.getDate()===1?$("calview.monthFirst",{m:x.getMonth()+1}):x.getDate()}),g.slice(0,3).map(w=>n.jsxs("button",{className:`amx-cal-chip-ev${w.readonly?" readonly":""}${i===w.key?" selected":""}${ut(w,x)}`,style:Ce(w.color),title:w.title,"aria-label":!w.allDay&&fe(w.start,x)?$("calview.a11yEvent",{title:w.title,time:_(w.start)}):w.title,onPointerDown:D,onPointerUp:q=>R(w,q),children:[!w.allDay&&fe(w.start,x)&&n.jsx("span",{className:"amx-cal-chip-t",children:_(w.start)})," ",w.title]},w.key)),g.length>3&&n.jsx("button",{className:"amx-cal-more","aria-label":$("calview.a11yMoreEvents",{m:x.getMonth()+1,d:x.getDate(),n:g.length}),onClick:w=>L({day:x,events:g,at:oe(w)}),children:$("calview.moreItems",{n:g.length-3})})]},+x)})},+c))}),k&&n.jsx(Vn,{day:k.day,events:k.events,at:k.at,onPick:(c,x)=>{L(null),u(c,x)},onClose:()=>L(null)})]})});function Vn({day:e,events:t,at:o,onPick:i,onClose:u}){const{t:C}=ze(),j=292,y=o.zoom||1,$=12*y,l=Math.max($,Math.min(o.left,window.innerWidth-j*y-$))/y,d=Math.max($,Math.min(o.bottom+6*y,window.innerHeight-356*y-$))/y,p=s.useRef(null),v=s.useRef(u);return v.current=u,s.useEffect(()=>{const S=document.activeElement instanceof HTMLElement?document.activeElement:null;p.current?.querySelector(".amx-cal-agenda-list > button")?.focus();const z=E=>{E.key==="Escape"&&(E.preventDefault(),v.current())};return window.addEventListener("keydown",z),()=>{window.removeEventListener("keydown",z),S?.focus()}},[]),n.jsx("div",{className:"amx-cal-agenda-overlay",onMouseDown:u,children:n.jsxs("section",{className:"amx-cal-agenda",ref:p,role:"dialog","aria-modal":"true","aria-label":C("calview.a11yDayEvents",{m:e.getMonth()+1,d:e.getDate()}),style:{left:l,top:d,width:j},onMouseDown:S=>S.stopPropagation(),children:[n.jsxs("header",{children:[n.jsx("strong",{children:C("calview.dayHeading",{m:e.getMonth()+1,d:e.getDate()})}),n.jsx("button",{onClick:u,"aria-label":C("calview.closeAgenda"),children:"×"})]}),n.jsx("div",{className:"amx-cal-agenda-list",children:t.map(S=>n.jsxs("button",{style:Ce(S.color),onClick:z=>i(S.key,oe(z)),children:[n.jsx("span",{className:"amx-cal-agenda-time",children:S.allDay?C("calview.allDay"):_(S.start)}),n.jsx("span",{children:S.title})]},S.key))})]})})}export{ts as CalendarView,On as MonthScroll};
@@ -1 +0,0 @@
1
- import{d as s,j as n}from"./index-BOzsniE1.js";import{cg as j,aC as k,an as C,aq as A,V as L,aR as S}from"./appStore-CI1_L5OS.js";import"./client-CaivGZFR.js";function z({label:u,children:x,items:w,className:E="capability-menu-trigger",searchLabel:d,selection:p=!1,disabled:v=!1,acceptsDrag:y}){const b=s.useId(),a=s.useRef(null),l=s.useRef(null),[r,f]=s.useState(null),[h,g]=s.useState(""),i=(e=!0)=>{f(null),g(""),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(!r)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-r.x)>1||Math.abs(o.bottom+4-r.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)}},[r]),s.useEffect(()=>{if(!r||j())return;const e=l.current;(e?.querySelector("input")||e?.querySelector('[aria-checked="true"]:not(:disabled), button:not(:disabled)'))?.focus({preventScroll:!0})},[!!r]);const D=w.filter(e=>e.label.toLowerCase().includes(h.trim().toLowerCase()));return n.jsxs(n.Fragment,{children:[n.jsx("button",{ref:a,type:"button",className:E,"aria-label":u,title:u,"aria-haspopup":"menu","aria-expanded":!!r,"aria-controls":r?b:void 0,disabled:v,onDragEnter:e=>{y?.(e.dataTransfer)&&(e.preventDefault(),r||m())},onDragOver:e=>{y?.(e.dataTransfer)&&e.preventDefault()},onClick:()=>r?i():m(),onKeyDown:e=>{(e.key==="ArrowDown"||e.key==="ArrowUp")&&(e.preventDefault(),m())},children:x||n.jsxs(n.Fragment,{children:[n.jsx("span",{children:u}),n.jsx(k,{size:13})]})}),r&&C.createPortal(n.jsx("div",{className:"ui-popover-backdrop",style:{pointerEvents:"none"},children:n.jsxs(A,{style:{pointerEvents:"auto"},x:r.x,y:r.y,anchorTop:r.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&&n.jsxs("label",{className:"capability-menu-search",children:[n.jsx(L,{size:14}),n.jsx("input",{"aria-label":d,placeholder:d,value:h,onChange:e=>g(e.target.value)})]}),n.jsx("div",{className:"capability-menu-items",children:D.map(e=>n.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:[n.jsx("span",{className:"capability-menu-icon",children:e.icon}),n.jsx("span",{children:e.label}),e.hint&&n.jsx("small",{className:"capability-menu-hint",children:e.hint}),e.selected&&n.jsx(S,{size:14})]},e.id))})]})}),document.body)]})}export{z as C};
@@ -1 +0,0 @@
1
- import{j as e,d as i}from"./index-BOzsniE1.js";import{r as ee,I as se,m as w,t as q,p as k,u as xe,a as te,S as ce}from"./astryxBridge-CH_c5xjo.js";import{Tooltip as ne}from"./Tooltip-o8ZqIb3L.js";function K({label:c,inputID:s,labelID:o,isGroupLabel:l=!1,isLabelHidden:a=!1,isDisabled:p=!1,isOptional:u=!1,isRequired:x=!1,labelIcon:m,labelTooltip:d,description:h,descriptionID:v,ref:$}){const n=u?"Optional":x?"Required":null,S=l?"span":"label",N=e.jsxs(e.Fragment,{children:[m&&ee(m,{size:"sm",color:"inherit"}),c,n&&e.jsxs("span",{className:"x1sodnla x141an7d x1ltkj2j xv1l7n4",children:[e.jsx("span",{"aria-hidden":"true",children:" ∙ "}),n]}),d&&e.jsx(ne,{content:d,placement:"above",children:e.jsx(se,{icon:"info",size:"sm",color:"inherit"})})]});return e.jsxs(e.Fragment,{children:[e.jsx(S,{ref:$,id:o,htmlFor:l?void 0:s,...w(q("field-label"),{0:{className:"x78zum5 x6s0dn4 xzye2dw x9ynric xcr08ib x1kq96og x1e4wzip xv1l7n4 x1ypdohk"},2:{className:"x78zum5 x6s0dn4 xzye2dw x9ynric xcr08ib x1kq96og x1e4wzip xnbbluu x1h6gzvc"},1:{className:"x78zum5 x6s0dn4 xzye2dw x9ynric xcr08ib x1kq96og x1e4wzip xv1l7n4 x1ypdohk xng3xce xzpqnlu xjm9jq1 xu96u03 xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s"},3:{className:"x78zum5 x6s0dn4 xzye2dw x9ynric xcr08ib x1kq96og x1e4wzip xnbbluu x1h6gzvc xng3xce xzpqnlu xjm9jq1 xu96u03 xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s"}}[!!p<<1|!!a<<0]),children:N}),h&&e.jsx("span",{id:v,...{0:{className:"x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4"},1:{className:"x9ynric x141an7d x1ltkj2j x1sodnla xv1l7n4 xng3xce xzpqnlu xjm9jq1 xu96u03 xkdpibf xb3r6kr x1717udv x47corl x10l6tqk x13vifvy x87ps6o xuxw1ft x1i1rx1s"}}[!!a<<0],children:h})]})}K.displayName="FieldLabel";let E=!1;typeof window<"u"&&requestAnimationFrame(()=>{E=!0});const re={slideDown:{kKVMdj:"x1srr2gu x1aquc0h",k44tkh:"x9uej1z",kyAemX:"x128ha8g",kWV6AL:"xskzprw",$$css:!0},slideUp:{kKVMdj:"x1dvww92 x1aquc0h",k44tkh:"x9uej1z",kyAemX:"x128ha8g",kWV6AL:"xskzprw",$$css:!0},fadeIn:{kKVMdj:"xqcmdr3 x1aquc0h",k44tkh:"x9uej1z",kyAemX:"x128ha8g",kWV6AL:"xskzprw",$$css:!0},scaleIn:{kKVMdj:"x97zbip x1aquc0h",k44tkh:"x9uej1z",kyAemX:"x128ha8g",kWV6AL:"xskzprw",$$css:!0}};function ie(c="slideDown"){const[s]=i.useState(()=>E);return s?re[c]:null}const W={base:{kMv6JI:"x9ynric",kGuDYH:"x141an7d",kLWn49:"x1ltkj2j",$$css:!0},attached:{keoZOQ:"x1c40v9y",kLKAdn:"x1ak3mig",kGO01o:"x1wesfrj",kg3NbH:"xf314gf",kqGeR4:"x14lggfu",kYm2EN:"xtufxuj",$$css:!0},detached:{keoZOQ:"xcsaf9d",k8WAf4:"xce4md1",kg3NbH:"xf314gf",kaIpWk:"xh6dtrn",$$css:!0}},ae={warning:{kWkggS:"x24i8r5",kMwMTN:"xdhq94a",$$css:!0},error:{kWkggS:"x1pritpl",kMwMTN:"x1joocv1",$$css:!0},success:{kWkggS:"xu13z74",kMwMTN:"xltfdvo",$$css:!0}};function Z({ref:c,type:s,message:o,id:l,variant:a="attached",xstyle:p,className:u,style:x,...m}){const d=ie("slideDown");return e.jsx("div",{ref:c,id:l,role:s==="error"?"alert":"status","aria-live":s==="error"?"assertive":"polite",...m,...w(q("field-status",{type:s,variant:a}),k(W.base,d,a==="attached"?W.attached:W.detached,ae[s],p),u,x),children:o})}Z.displayName="FieldStatus";const ke={x1tspnpo:"x1tspnpo",$$css:!0},D=i.createContext(null);D.displayName="CheckboxListContext";const t={container:{k1xSpc:"x78zum5",kGNEyG:"x6s0dn4",kOIVth:"x1txdalj",$$css:!0},containerLabelHidden:{kOIVth:"xxhr3t",$$css:!0},checkboxWrapper:{kVAEAm:"x1n2onr6",k1xSpc:"x78zum5",kGNEyG:"x6s0dn4",kjj79g:"xl56j7k",kmuXW:"x2lah0s",kHBbk8:"xc8icb0",$$css:!0},input:{kVAEAm:"x10l6tqk",kogj98:"x1ghz6dp",kmVPX3:"x1717udv",kSiTet:"xg01cxk",kkrTdU:"x1ypdohk",kY2c9j:"x1vjfegm",$$css:!0},inputDisabled:{kkrTdU:"x1h6gzvc",$$css:!0},checkbox:{k1xSpc:"x78zum5",kGNEyG:"x6s0dn4",kjj79g:"xl56j7k",kMzoRj:"x1litavf",ksu8eU:"x1y0btm7",kaIpWk:"xx3sua9",k1ekBW:"xts7igz",kIyJzY:"xuedmi6 x12w9bfk",kAMwcw:"xlr8y92",$$css:!0},checkboxFocus:{kI3sdo:"x1a2a7pz xkri23q",kInvED:"x81n7kt",$$css:!0},checkboxUnchecked:{kMwMTN:"xqwr325",kVAM5u:"xvy26l8 x1jtjlen",kWkggS:"x10xzikg xrsv7h",$$css:!0},checkboxChecked:{kMwMTN:"x17wrial",kVAM5u:"xad5do x1od6ugu",kWkggS:"x1ewilqj x6aeo4j",$$css:!0},checkboxDisabled:{kSiTet:"xbyyjgo",kVAM5u:"x14i3s5s xmt8yqp",$$css:!0},checkboxDisabledUnchecked:{kWkggS:"xwmxj5m x1cjfj8k",$$css:!0},checkmark:{k1xSpc:"x1s85apg",kMwMTN:"x17wrial",$$css:!0},checkmarkVisible:{k1xSpc:"x1lliihq",$$css:!0},indeterminateMark:{k1xSpc:"x1s85apg",kWkggS:"x1azo05",kaIpWk:"x1nj7uno",$$css:!0},indeterminateMarkVisible:{k1xSpc:"x1lliihq",$$css:!0}},F={sm:{kzqmXN:"xw4jnvo",kZKoxP:"x1qx5ct2",$$css:!0},md:{kzqmXN:"xvy4d1p",kZKoxP:"xxk0z11",$$css:!0}},de={sm:{kzqmXN:"x1xp8n7a",kZKoxP:"xmix8c7",$$css:!0},md:{kzqmXN:"x17z2i9w",kZKoxP:"x17rw0jw",$$css:!0}},oe={sm:{kzqmXN:"xsmyaan",kZKoxP:"x1kpxq89",$$css:!0},md:{kzqmXN:"x6jxa94",kZKoxP:"x1v9usgg",$$css:!0}},le={sm:{kzqmXN:"x1fsd2vl",kZKoxP:"x36qwtl",$$css:!0},md:{kzqmXN:"xsmyaan",kZKoxP:"x36qwtl",$$css:!0}},ue={width:c=>[{kzqmXN:c!=null?"x5lhr3w":c,$$css:!0},{"--x-width":(s=>typeof s=="number"?s+"px":s??void 0)(c)}]};function me({label:c,isLabelHidden:s=!1,description:o,onChange:l,changeAction:a,isLoading:p=!1,value:u,isDisabled:x=!1,htmlName:m,disabledMessage:d,isReadOnly:h=!1,isOptional:v=!1,isRequired:$=!1,size:n="md",onFocus:S,onBlur:N,labelIcon:O,status:f,width:A,xstyle:B,className:G,style:U,ref:R}){const C=i.useId(),T=i.useId(),L=i.useId(),[,H]=i.useTransition(),[M,Y]=i.useOptimistic(u),I=p||M!==u,g=x&&!!d,J=i.use(D),X=x&&(g||(J?.hasDisabledMessage??!1)),y=xe({placement:"above",focusTrigger:"always",isEnabled:g}),j=M==="indeterminate",z=M===!0,P=z||j,Q=i.useCallback(r=>{r&&(r.indeterminate=j)},[j]),b=[];o&&!s&&b.push(T),f?.message&&b.push(L),g&&b.push(y.describedBy);const _=b.length>0?b.join(" "):void 0;return e.jsxs("div",{...w(q("checkbox-input",{size:n}),k(A!=null&&ue.width(A),B),G,U),children:[e.jsxs("div",{ref:r=>{y.interactionRef(r)},...k(t.container,s&&t.containerLabelHidden,!x&&ke),children:[e.jsxs("div",{...k(t.checkboxWrapper,F[n]),children:[e.jsx("input",{ref:te(R,Q,y.positionRef),id:C,type:"checkbox",name:x?void 0:m,checked:z,disabled:x&&!X,"aria-disabled":X?"true":void 0,readOnly:h,required:$,onChange:r=>{if(x||I||h)return;const V=r.target.checked;l?.(V,r),a&&!r.defaultPrevented&&H(async()=>{Y(V),await a(V,r)})},onFocus:S,onBlur:N,"aria-readonly":h||void 0,"aria-describedby":_,"aria-invalid":f?.type==="error"?!0:void 0,"aria-busy":I||void 0,...k(t.input,F[n],x&&t.inputDisabled)}),e.jsx("div",{"aria-hidden":"true",...w(q("checkbox",{size:n,checked:z?"checked":j?"indeterminate":null,disabled:x?"disabled":null}),k(t.checkbox,de[n],!x&&t.checkboxFocus,P?t.checkboxChecked:t.checkboxUnchecked,x&&t.checkboxDisabled,x&&!P&&t.checkboxDisabledUnchecked)),children:I?e.jsx(ce,{size:"sm",shade:"inherit"}):e.jsxs(e.Fragment,{children:[e.jsx("svg",{viewBox:"0 0 10 10",...k(t.checkmark,oe[n],z&&t.checkmarkVisible),children:e.jsx("path",{d:"M8.5 2.5L4 7.5L1.5 5",stroke:"currentColor",strokeWidth:"1.5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round"})}),e.jsx("div",{...k(t.indeterminateMark,le[n],j&&t.indeterminateMarkVisible)})]})})]}),e.jsx("div",{className:"x78zum5 xdt5ytf x1lsbc85",children:e.jsx(K,{label:c,inputID:C,isLabelHidden:s,isDisabled:x,isOptional:v,isRequired:$,labelIcon:O,description:o,descriptionID:T})})]}),f?.message&&e.jsx(Z,{type:f.type,message:f.message,id:L,variant:"detached"}),g&&y.renderTooltip(d)]})}me.displayName="CheckboxInput";export{me as C};
@@ -1 +0,0 @@
1
- import{d as D,u as R,j as c,r as A}from"./index-BOzsniE1.js";import{J as _,am as H,aA as T,g8 as $}from"./appStore-CI1_L5OS.js";import"./client-CaivGZFR.js";import{M as E}from"./minus-CfA9fAN3.js";const b=[["path",{d:"m12 15 4 4",key:"lnac28"}],["path",{d:"M2.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.029-6.029a1 1 0 1 1 3 3l-6.029 6.029a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l6.365-6.367A1 1 0 0 0 8.716 4.282z",key:"nlhkjb"}],["path",{d:"m5 8 4 4",key:"j6kj7e"}]],X=_("magnet",b);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=_("map",Y),L=18,W=(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,F=(e,n)=>({x:e.x-n,y:e.y-n,w:e.w+n*2,h:e.h+n*2});function G(e,n,m={x:0,y:0},d=L,i){if(!e.length||!n.length)return{x:0,y:0};const x=n.map(o=>F(o,Math.max(0,d))),u=(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(k=>!W(h,k))});if(u(0,0))return{x:0,y:0};const y=new Set([0]),r=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)),r.add(Math.floor(a.y-(o.y+o.h))),r.add(Math.ceil(a.y+a.h-o.y));const M=Math.hypot(m.x,m.y);let s=null;for(const o of y)for(const a of r){if(!u(o,a))continue;const f=M?(o*m.x+a*m.y)/M:0,h=o!==0&&a!==0?.1:0,k=o*o+a*a+h-f*.001;(!s||k<s.score)&&(s={x:o,y:a,score:k})}return s?{x:s.x,y:s.y}:{x:0,y:0}}A({"cvminimap.aria":{zh:"画布缩略图",en:"Canvas minimap"},"cvminimap.hint":{zh:"画布缩略图:点击或拖动以导航",en:"Canvas minimap: click or drag to navigate"}});const w=184,z=112,P=7;function K({hostRef:e,vp:n,items:m,onCenter:d}){const i=D.useRef(!1),{t:x}=R(),u=e.current;if(!u||!m.length)return null;const y=H(u)||1,r=u.getBoundingClientRect(),M={x:-n.x/n.z,y:-n.y/n.z,w:Math.max(1,r.width/y/n.z),h:Math.max(1,r.height/y/n.z)},s=[...m.map(t=>t.box),M],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)),k=Math.max(1,f-o),j=Math.max(1,h-a),l=Math.min((w-P*2)/k,(z-P*2)/j),v=(w-k*l)/2-o*l,C=(z-j*l)/2-a*l,N=t=>({x:v+t.x*l,y:C+t.y*l,w:Math.max(1.5,t.w*l),h:Math.max(1.5,t.h*l)}),I=t=>{const p=t.currentTarget.getBoundingClientRect(),O=(t.clientX-p.left)/Math.max(1,p.width)*w,S=(t.clientY-p.top)/Math.max(1,p.height)*z;d((O-v)/l,(S-C)/l)},g=N(M);return c.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{}I(t)},onPointerMove:t=>{i.current&&(t.preventDefault(),t.stopPropagation(),I(t))},onPointerUp:t=>{i.current=!1;try{t.currentTarget.releasePointerCapture(t.pointerId)}catch{}},onPointerCancel:()=>{i.current=!1},children:c.jsxs("svg",{viewBox:`0 0 ${w} ${z}`,"aria-hidden":"true",children:[m.map(t=>{const p=N(t.box);return c.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)}),c.jsx("rect",{className:"amx-mini-viewport",x:g.x,y:g.y,width:g.w,height:g.h,rx:"2"})]})})}A({"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:d,onSnap:i,mini:x,onMini:u,extra:y}){const{t:r}=R();return c.jsxs("div",{className:"amx-stage-hud",children:[c.jsx("button",{type:"button",onClick:()=>n(1/1.2),title:r("ckchrome.zoomOut"),children:c.jsx(E,{size:12})}),c.jsx("button",{type:"button",className:"amx-hud-zoom",onClick:()=>n(1/e),title:r("ckchrome.zoomReset"),children:c.jsxs("span",{children:[Math.round(e*100),"%"]})}),c.jsx("button",{type:"button",onClick:()=>n(1.2),title:r("ckchrome.zoomIn"),children:c.jsx(T,{size:12})}),c.jsx("button",{type:"button",onClick:m,title:r("ckchrome.fit"),children:c.jsx($,{size:12})}),y,c.jsx("button",{type:"button",className:`amx-snap-toggle${d?" is-on":""}`,"aria-pressed":d,"aria-label":r("ckchrome.snap"),title:r(d?"ckchrome.snapOff":"ckchrome.snapOn"),onClick:()=>i(!d),children:c.jsx(X,{size:12})}),c.jsx("button",{type:"button",className:x?"is-on":"","aria-pressed":x,title:r(x?"ckchrome.miniHide":"ckchrome.miniShow"),onClick:()=>u(!x),children:c.jsx(B,{size:12})})]})}export{K as C,B as M,Q as a,G as r};
@@ -1 +0,0 @@
1
- .dash-stat{gap:4px}.dash-stat-value{font-size:var(--ui-font-display, 20px);font-weight:620;line-height:1.02;color:var(--text);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:4px}.dash-stat-unit{font-size:.42em;font-weight:500;color:var(--text-muted)}.dash-stat-label{font-size:var(--ui-font-meta, 12px);color:var(--text-muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-stat-sub{font-size:var(--ui-font-caption, 11px);color:var(--text-faint, var(--text-muted))}.dash-chart{height:100%;display:flex;flex-direction:column;min-height:0;padding:10px 12px;gap:8px}.dash-chart-title{flex:0 0 auto;font-size:var(--ui-font-meta, 12px);font-weight:550;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-chart-body{flex:1 1 auto;min-height:0;display:flex}.dash-filterbar{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 12px;border-bottom:var(--border-width, 1px) solid var(--border);background:var(--bg-card, var(--bg));font-size:var(--ui-font-meta, 12px)}.dash-filterbar-label{color:var(--text-faint, var(--text-muted));margin-right:2px}.dash-filter-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 6px 2px 8px;border:var(--border-width, 1px) solid color-mix(in srgb,var(--primary) 32%,var(--border));border-radius:var(--radius-pill, 999px);background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--text)}.dash-filter-chip b{font-weight:550}.dash-filter-chip button{border:none;background:transparent;cursor:pointer;padding:0;display:inline-flex;color:var(--text-faint, var(--text-muted))}.dash-filter-chip button:hover{color:var(--danger, #e5484d)}.dash-filter-add{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill, 999px);cursor:pointer;border:var(--border-width, 1px) solid transparent;background:transparent;color:var(--text-muted)}.dash-filter-add:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));color:var(--text)}.dash-filter-editor{display:flex;flex-direction:column;gap:6px;padding:8px;min-width:200px}.dash-filter-editor select,.dash-filter-editor input{width:100%;font:inherit;font-size:var(--ui-font-meta, 12px);padding:4px 6px;border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-sm, 6px);background:var(--bg);color:var(--text)}.dash-filter-editor select:focus-visible,.dash-filter-editor input:focus-visible{outline:var(--focus-ring) solid var(--primary);outline-offset:1px}.dash-filter-commit{border:none;border-radius:var(--radius-sm, 6px);cursor:pointer;padding:5px 8px;font-size:var(--ui-font-meta, 12px);font-weight:550;background:var(--primary);color:var(--bg)}.dash-router-page{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.dash-router-page>.dash2,.dash-router-page>.dash3{flex:1 1 auto;min-height:0}.dash3{--dash3-page-pad-block-start: 18px;--dash3-page-pad-block-end: 28px;display:flex;flex-direction:column;min-height:0}.dash3-mode-btn{padding-inline:8px;font-weight:550}.dash3-host{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--bg-card, var(--bg));transition:background-color var(--dur-normal, .25s) var(--ease-apple, cubic-bezier(.25, .1, .25, 1))}.dash3-host:not([data-locked]){background:color-mix(in srgb,var(--primary) 2.5%,var(--bg-card, var(--bg)))}.dash3-grid{width:min(100%,1180px);margin-inline:auto;display:grid;grid-template-columns:repeat(var(--dash3-cols, 12),minmax(0,1fr));grid-auto-rows:var(--dash3-row, 72px);gap:var(--dash3-gap, 12px);padding-block-start:var(--dash3-page-pad-block-start);padding-block-end:var(--dash3-page-pad-block-end);padding-inline:var(--dash3-gap, 12px);align-content:start}.dash3-card-slot{position:relative;min-width:0;min-height:0}.dash3-card-slot:has(.dash3-card[data-dragging]),.dash3-card-slot:has(.dash3-card[data-sizing]){z-index:5}.dash3-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border:var(--border-width, 1px) solid transparent;border-radius:var(--radius-md, 12px);background:var(--bg);box-shadow:var(--card-shadow);container-type:inline-size;width:100%;height:100%;transition:background-color var(--dur-normal, .25s) var(--ease-apple, cubic-bezier(.25, .1, .25, 1)),border-color var(--dur-fast, .18s) var(--ease-apple, cubic-bezier(.25, .1, .25, 1)),box-shadow var(--dur-normal, .25s) var(--ease-apple, cubic-bezier(.25, .1, .25, 1)),opacity var(--dur-fast, .18s) var(--ease-apple, cubic-bezier(.25, .1, .25, 1))}.dash3-card[data-surface=metric]{background:color-mix(in srgb,var(--primary) 6%,var(--bg));box-shadow:none}.dash3-card[data-surface=summary]{background:var(--bg);box-shadow:var(--card-shadow)}.dash3-card[data-surface=workspace]{background:var(--bg-card, var(--bg));box-shadow:none}.dash3-card[data-surface=note]{background:color-mix(in srgb,var(--bg) 82%,var(--bg-card));box-shadow:none}.dash3-card--chrome{border-color:transparent;background:transparent;box-shadow:none;overflow:visible;align-self:end}.dash3-card-head{flex:0 0 auto;display:flex;align-items:center;min-height:34px;gap:7px;padding-inline:12px 8px;border-bottom:var(--border-width, 1px) solid transparent;background:transparent;font-size:var(--ui-font-meta, 12px);font-weight:600;color:var(--text-muted);min-width:0}.dash3-card-icon{flex:0 0 auto;opacity:.72}.dash3-card-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash3-card-open{flex:0 0 auto;width:24px;height:24px;border:var(--border-width, 1px) solid transparent;background:transparent;cursor:pointer;color:var(--text-faint, var(--text-muted));padding:0;border-radius:var(--radius-sm, 6px);display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s ease,color .12s ease,background-color .12s ease}.dash3-card:hover .dash3-card-open{opacity:1}.dash3-card-open:hover{color:var(--text);background:var(--overlay-light)}.dash3-card-open:focus-visible{opacity:1;outline:var(--focus-ring) solid var(--primary);outline-offset:1px}.dash3-card-body{flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.dash3-card[data-surface=workspace]>.dash3-card-body{overflow:auto}.dash3-card[data-kind=view]>.dash3-card-body{overflow:hidden}.dash3-card[data-kind=text]>.dash3-card-body{padding:10px 12px}.dash3-card--chrome>.dash3-card-body{padding:0}.dash-widget.dash-section{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;min-width:0;height:100%;padding:10px 2px 2px;text-align:left}.dash-section-title{color:var(--text);font-size:var(--ui-font-body, 13px);font-weight:650;letter-spacing:.02em}.dash-section-note{overflow:hidden;color:var(--text-muted);font-size:var(--ui-font-meta, 12px);text-overflow:ellipsis;white-space:nowrap}.dash-viewcard--compact{overflow:hidden}.dash-viewcard--interactive{width:100%;height:100%;min-height:0;overflow:hidden}.dash-viewcard--interactive>.am-app{width:100%;height:100%;min-height:0}.dash3-shield{position:absolute;inset:0;z-index:2;cursor:grab;touch-action:none;background:transparent;border-radius:inherit;transition:background-color var(--dur-fast, .18s) var(--ease-apple, ease)}.dash3-shield:hover{background:color-mix(in srgb,var(--overlay-light, rgba(127, 127, 127, .06)) 50%,transparent)}.dash3-shield:focus-visible{outline:var(--focus-ring) solid var(--primary);outline-offset:-2px}.dash3-card[data-interact]{outline:1.5px solid var(--primary);outline-offset:1px}.dash3-card[data-dragging]{opacity:.35;outline:1.5px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:-1.5px}.dash3-card[data-dragging] .dash3-shield{cursor:grabbing}.dash3-card[data-dragging] .dash3-card-btn,.dash3-card[data-dragging] .dash3-grip{opacity:0!important}.dash3-card--lift{cursor:grabbing;box-shadow:0 1px 2px #00000014,0 16px 40px #0000002e;transform:scale(1.02)}.dash3-overlay-ghost{background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 4%,transparent),transparent 62%)}.dash3 .dash-add-menu{animation:dash3-menu-in var(--dur-fast, .18s) var(--ease-apple, cubic-bezier(.25, .1, .25, 1)) both}.dash3 .dash-menu-scrim{animation:dash3-scrim-in var(--dur-fast, .18s) ease both}@keyframes dash3-menu-in{0%{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}@keyframes dash3-scrim-in{0%{opacity:0}to{opacity:1}}.dash3-card-btn{position:absolute;z-index:4;top:6px;width:24px;height:24px;align-items:center;justify-content:center;border:var(--border-width, 1px) solid color-mix(in srgb,var(--border) 72%,transparent);background:var(--bg);color:var(--text-faint, var(--text-muted));cursor:pointer;padding:0;border-radius:var(--radius-sm, 6px);display:inline-flex;opacity:0;transition:opacity .12s ease,color .12s ease,background-color .12s ease}.dash3-card-more{right:36px}.dash3-card-del{right:6px}.dash3-card:hover .dash3-card-btn{opacity:1}.dash3-card-more:hover{color:var(--text);background:var(--overlay-light)}.dash3-card-del:hover{color:var(--danger);background:var(--overlay-light)}.dash3-card-btn:focus-visible{opacity:1;outline:var(--focus-ring) solid var(--primary);outline-offset:1px}.dash3-grip{position:absolute;right:0;bottom:0;width:22px;height:22px;z-index:4;cursor:nwse-resize;touch-action:none;opacity:0;border-radius:var(--radius-sm, 6px) 0 0 0;background:color-mix(in srgb,var(--bg) 76%,transparent);transition:opacity .12s ease,background-color .12s ease}.dash3-host:not([data-locked]) .dash3-grip{opacity:.5}.dash3-card:hover .dash3-grip{opacity:1}.dash3-grip:after{content:"";position:absolute;right:5px;bottom:5px;width:8px;height:8px;border-right:2px solid color-mix(in srgb,var(--primary) 72%,var(--text-muted));border-bottom:2px solid color-mix(in srgb,var(--primary) 72%,var(--text-muted));border-bottom-right-radius:3px}.dash3-card[data-sizing]{outline:1.5px solid var(--primary);outline-offset:1px}.dash3-card[data-sizing] .dash3-grip{opacity:1}@starting-style{.dash3-host:not([data-locked]) .dash3-grip{opacity:0}}.dash3-empty{width:min(100%,680px);min-height:clamp(360px,64vh,560px);margin-inline:auto;padding-block:44px;padding-inline:24px;display:grid;place-items:center}.dash3-empty-panel{width:min(100%,460px)}.dash3-empty-mark{width:42px;height:42px;display:grid;place-items:center;border:var(--border-width, 1px) solid color-mix(in srgb,var(--primary) 24%,var(--border));border-radius:var(--radius-md, 12px);background:color-mix(in srgb,var(--primary) 8%,var(--bg));color:var(--primary)}.dash3-empty-copy{margin-top:16px}.dash3-empty-title{font-size:var(--ui-font-heading, 14px);line-height:1.3;font-weight:650;color:var(--text)}.dash3-empty-sub{margin-top:6px;max-width:38ch;font-size:var(--ui-font-body, 13px);line-height:1.55;color:var(--text-muted)}.dash3-templates{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dash3-template{min-width:0;min-height:76px;display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;align-items:center;padding-block:12px;padding-inline:12px;border:var(--border-width, 1px) solid transparent;border-radius:var(--radius-md, 12px);background:var(--bg);box-shadow:var(--card-shadow);cursor:pointer;text-align:left;transition:transform .14s ease,border-color .14s ease,background-color .14s ease}.dash3-template:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 48%,var(--border));background:color-mix(in srgb,var(--primary) 3%,var(--bg))}.dash3-template:active{transform:translateY(0)}.dash3-template:focus-visible{outline:var(--focus-ring) solid var(--primary);outline-offset:2px}.dash3-template-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-sm, 8px);background:color-mix(in srgb,var(--primary) 8%,var(--bg-card, var(--bg)));color:var(--primary)}.dash3-template-copy{min-width:0;display:flex;flex-direction:column;gap:3px}.dash3-template-name{font-size:var(--ui-font-body, 13px);line-height:1.25;font-weight:650;color:var(--text)}.dash3-template-hint{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ui-font-caption, 11px);color:var(--text-muted)}.dash3-size-dim{margin-left:auto;color:var(--text-faint, var(--text-muted));font-variant-numeric:tabular-nums}.dash3-card--chrome .dash-section{padding-inline:4px}.dash3-card--chrome .dash-section-title{font-size:var(--ui-font-body, 13px);line-height:1.35;font-weight:650;letter-spacing:0}@media(max-width:560px){.dash3-empty{padding-inline:16px}.dash3-templates{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.dash3-host,.dash3-card,.dash-compact-row,.dash3-template,.dash3-card-open,.dash3-card-btn,.dash3-grip,.dash3-shield{transition-duration:.01ms}.dash3 .dash-add-menu,.dash3 .dash-menu-scrim{animation:none}}