@forsion/unit 2.13.1 → 2.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/main.mjs +21 -3
- package/package.json +1 -1
- package/release.json +5 -5
- package/web/assets/{ArtificialView-XwHMLUFb.js → ArtificialView-DS97zlMg.js} +1 -1
- package/web/assets/{AutomationBuilder-hqs0QhMt.js → AutomationBuilder-BsJc8wuC.js} +1 -1
- package/web/assets/CalendarConfigView-BN8mraSo.js +1 -0
- package/web/assets/CalendarView-D55PA1vn.js +1 -0
- package/web/assets/{CapabilityMenu-SwVlZ06x.js → CapabilityMenu-BVrokPpT.js} +1 -1
- package/web/assets/{CheckboxInput-BC-5a_C9.js → CheckboxInput-BuJ3HPm_.js} +1 -1
- package/web/assets/{Chrome-HdfyYV3i.js → Chrome-amTcZNE4.js} +1 -1
- package/web/assets/{CodeView-CFL6yQ-6.js → CodeView-DRVh13k9.js} +3 -3
- package/web/assets/DashboardGridView-D9s9pez_.css +1 -0
- package/web/assets/DashboardGridView-DlFyYfUh.js +17 -0
- package/web/assets/{EventCard-B_ndpqH_.js → EventCard-DUrn2krw.js} +1 -1
- package/web/assets/ExcalidrawCanvas-TpbzBF-J.js +1 -0
- package/web/assets/{FloatingToc-Ce9GamvH.js → FloatingToc-B1d4-5EL.js} +1 -1
- package/web/assets/HomepageView-DnQ_5Obe.css +1 -0
- package/web/assets/HomepageView-nzKfbHM-.js +1 -0
- package/web/assets/ImageStudioPanels-B2PTq6Yb.js +3 -0
- package/web/assets/{ImageStudioView-UPv52acl.js → ImageStudioView-Cawr6pGW.js} +1 -1
- package/web/assets/InlineFiles-DKPH5JHz.js +1 -0
- package/web/assets/MarkdownBlock-BHpDy2qQ.js +58 -0
- package/web/assets/ModelPill-ChzAM3z1.js +2 -0
- package/web/assets/MuseLibraryView-DLuQ_jyV.js +2 -0
- package/web/assets/{MuseView-CC2A7MBs.js → MuseView-CDDwV6SR.js} +2 -2
- package/web/assets/{PageHistoryPanel-KhKT1DLy.js → PageHistoryPanel-BbdXpjJM.js} +2 -2
- package/web/assets/{PdfAnnotator-DUyrgY-t.js → PdfAnnotator-CW0wPWRB.js} +1 -1
- package/web/assets/PenRow-BY-MZLDQ.js +1 -0
- package/web/assets/{ProductView-CgsIYZqD.js → ProductView-0ieVL3rY.js} +1 -1
- package/web/assets/{RightPanel-BHDgqTFs.js → RightPanel-BRexwQ3W.js} +3 -3
- package/web/assets/RunLocationPicker-BrDfOu8-.css +1 -0
- package/web/assets/RunLocationPicker-CadYiE7C.js +43 -0
- package/web/assets/{SketchCard-BGYz-bXP.js → SketchCard-BcXCdBAs.js} +212 -8
- package/web/assets/{StudioGuestSurface-lt6znmkl.js → StudioGuestSurface-ZJFKnNYF.js} +1 -1
- package/web/assets/TodoListView-DuRdVFgB.js +1 -0
- package/web/assets/{Tooltip-ZxrDqN4p.js → Tooltip-DtDUL18W.js} +1 -1
- package/web/assets/UnifiedPage-D7JTfABH.js +68 -0
- package/web/assets/{amadeus-manual.en-DzRWr4BL.js → amadeus-manual.en-B8J-svqq.js} +1 -1
- package/web/assets/{amadeus-manual.zh-DW32DkL7.js → amadeus-manual.zh-CkCOFnrg.js} +1 -1
- package/web/assets/appStore-ClD7vq5L.css +1 -0
- package/web/assets/appStore-affnJoin.js +3292 -0
- package/web/assets/{arrow-up-right-DrCXuWS7.js → arrow-up-right-R4P9Mmxz.js} +1 -1
- package/web/assets/{astryxBridge-D-m4_kYt.js → astryxBridge-CT2wZJXs.js} +3 -3
- package/web/assets/{automationListSource-C8BNy6RY.js → automationListSource-JVBMsMbC.js} +1 -1
- package/web/assets/boardSurface-Ce0_vf9f.js +1 -0
- package/web/assets/{book-open-OLNm7OaB.js → book-open-CcXCToyx.js} +1 -1
- package/web/assets/{calendarNavStore-Cylfvv3s.js → calendarNavStore-tQJRVpum.js} +1 -1
- package/web/assets/{canvasPrefs-8taQ42Cz.js → canvasPrefs-CSuX9aLF.js} +1 -1
- package/web/assets/{chatBoxSurface-CIlzs45H.js → chatBoxSurface-IG6Vu4Dz.js} +1 -1
- package/web/assets/{circle-question-mark-XbAFplz1.js → circle-question-mark-O8AhUz35.js} +1 -1
- package/web/assets/{circle-x-fcReAZaE.js → circle-x-AV2ZWulM.js} +1 -1
- package/web/assets/{client-0MPbodA6.js → client-BqhpYbYL.js} +1 -1
- package/web/assets/{code-xml-Cuna8Kh4.js → code-xml-DdR58F83.js} +1 -1
- package/web/assets/{codeStudioStore-BBU62GTy.js → codeStudioStore-Dq5i8nbE.js} +1 -1
- package/web/assets/codingNavigation-CxdCK78-.js +53 -0
- package/web/assets/codingNavigation-_tOR0ell.css +1 -0
- package/web/assets/{create-BGtEfCcg.js → create-BgJN5qsj.js} +2 -2
- package/web/assets/dashboardSurface-BY-AFB-r.js +1 -0
- package/web/assets/{deskCapture-BiUCmqfc.js → deskCapture-BD2qD6NI.js} +1 -1
- package/web/assets/{diff2html-BNp2FTbk.js → diff2html-OoRdHZ_O.js} +1 -1
- package/web/assets/{docx-preview-CFznGVOU.js → docx-preview-B43XC8Cn.js} +1 -1
- package/web/assets/{emoji-6zl4yfOS.js → emoji-BPdA62d7.js} +1 -1
- package/web/assets/{floatingTocSurface-DreXPCa6.js → floatingTocSurface-BM2SYE_u.js} +1 -1
- package/web/assets/{foldActions-05QcQziQ.js → foldActions-BcyvNVBs.js} +1 -1
- package/web/assets/{folder-BpsfOHD4.js → folder-CCZqnwRc.js} +1 -1
- package/web/assets/{folder-plus-BeQHr4AZ.js → folder-plus-BJKT1Pqg.js} +1 -1
- package/web/assets/{gestures-DQBCcK4y.js → gestures-BwPbZDkU.js} +1 -1
- package/web/assets/{hand-Bko7ms15.js → hand-DRu7IJdU.js} +1 -1
- package/web/assets/{hard-drive-BpuI5ebj.js → hard-drive-CXNJUCXw.js} +1 -1
- package/web/assets/i18n-BMo19xaR.css +1 -0
- package/web/assets/i18n.generated-DvY59Zq3.js +15 -0
- package/web/assets/{imageStudio-BLVNKmEG.js → imageStudio-Axwmd4GW.js} +2 -2
- package/web/assets/imageStudio-DZ0qGU2s.css +1 -0
- package/web/assets/{index-C4L6vjd_.js → index-B1rE_NwA.js} +1 -1
- package/web/assets/{index-OD1gSX3h.js → index-BFTY79aq.js} +1 -1
- package/web/assets/{index-D6AycQIz.js → index-BGEkZBs2.js} +1 -1
- package/web/assets/{index-Cff42k7q.js → index-BO2XJc36.js} +1 -1
- package/web/assets/index-BYUntVIZ.js +297 -0
- package/web/assets/{index-C1doZp5H.js → index-C65u4fXd.js} +1 -1
- package/web/assets/{index-D7gVhvNY.js → index-C_Ohi-I3.js} +1 -1
- package/web/assets/{index-rggq2czF.js → index-CkMhazev.js} +1 -1
- package/web/assets/{index-D9UZQy42.js → index-CobUnTcv.js} +1 -1
- package/web/assets/{index-BgnNNv3e.js → index-D102FOuM.js} +1 -1
- package/web/assets/{index-DuBQ0j2g.js → index-D3CYvMpl.js} +1 -1
- package/web/assets/{index-BHm6K743.js → index-D78izbLA.js} +1 -1
- package/web/assets/{index-CwcOeZdT.js → index-DDMXVG0h.js} +1 -1
- package/web/assets/{index-Ck_O3Jdd.js → index-DY0M_dpd.js} +1 -1
- package/web/assets/{index-CLHoq1w-.js → index-DcbZwhpE.js} +1 -1
- package/web/assets/{index-CJeUgjPU.js → index-Dlkq7gkE.js} +1 -1
- package/web/assets/{index-o8cj0pRH.js → index-HqmJW2np.js} +1 -1
- package/web/assets/{index-sCXThwqZ.js → index-LxlyPm0_.js} +1 -1
- package/web/assets/{index-CD3yIkOA.js → index-Uq4J2aoW.js} +1 -1
- package/web/assets/{index-rHjhbwvm.js → index-WbVt2P8R.js} +1 -1
- package/web/assets/{index-CUZI62qU.js → index-XyjIhkPw.js} +1 -1
- package/web/assets/index-Y2kzYlZq.js +1 -0
- package/web/assets/{index-C0Gy2NQ6.js → index-mB0EQkyZ.js} +1 -1
- package/web/assets/{index-Uo5tswys.js → index-pJh7JN7_.js} +1 -1
- package/web/assets/{index-BF10xp_K.js → index-taRxNsbp.js} +1 -1
- package/web/assets/{invitePage-b0HGvMj6.js → invitePage-BW0BH8Ac.js} +1 -1
- package/web/assets/{ipc-CxAyeo8q.js → ipc-D7yENkjV.js} +1 -1
- package/web/assets/{jszip.min-B94KpE21.js → jszip.min-UE5d5vPJ.js} +1 -1
- package/web/assets/{layout-grid-BBVuEdWG.js → layout-grid-Hs3eDA07.js} +1 -1
- package/web/assets/linkFollow-Msu1XH9v.js +8 -0
- package/web/assets/{list-tree-4-0QDbLu.js → list-tree-DmuRb-p9.js} +1 -1
- package/web/assets/{listFold-DLuxXiIj.js → listFold-CKxjyY5_.js} +1 -1
- package/web/assets/{lock-CnbZm4vo.js → lock-kffGfeHt.js} +1 -1
- package/web/assets/{log-out-BEynWaHa.js → log-out-B5gEP0tF.js} +1 -1
- package/web/assets/main-DIyFlyfK.js +20 -0
- package/web/assets/markdownEditorSurface-Cx2rqFAY.js +3 -0
- package/web/assets/{message-square-plus-CpiKDvle.js → message-square-plus-DxBPIhPS.js} +1 -1
- package/web/assets/{messages-_jta1lSI.js → messages-4w1Khzm1.js} +1 -1
- package/web/assets/minus-CfoZ4oxr.js +1 -0
- package/web/assets/mobileEntry-B8JwR53-.js +13 -0
- package/web/assets/{nativeDownload-BYT082bY.js → nativeDownload-Udrv_tmU.js} +1 -1
- package/web/assets/{pageChrome-D3Niv1JM.js → pageChrome-D-9npbUE.js} +1 -1
- package/web/assets/pageChrome-eO9pb2fH.css +1 -0
- package/web/assets/{pageTree-CgfvpzIj.js → pageTree-CIXFRCLk.js} +4 -4
- package/web/assets/{pen-tool-BXEFnU2i.js → pen-tool-D_Y9We9x.js} +1 -1
- package/web/assets/{pencil-cqvCkekG.js → pencil-DGiTRzW1.js} +1 -1
- package/web/assets/phoneList-BQfCJwKF.css +1 -0
- package/web/assets/phoneList-DHUia6HT.js +9 -0
- package/web/assets/pluginChat-BXuJiMYi.js +2 -0
- package/web/assets/{redo-2-BO7wCDwy.js → redo-2-QgiKEg9T.js} +1 -1
- package/web/assets/{rotate-ccw-BvipPIjC.js → rotate-ccw-BLoH5er1.js} +1 -1
- package/web/assets/{sharePage-XbN50US7.js → sharePage-DYYN5usb.js} +2 -2
- package/web/assets/{shareViewer-BaYogetW.js → shareViewer-BzuSyJv_.js} +2 -2
- package/web/assets/{star-BQWMXnn7.js → star-BmywYD3u.js} +1 -1
- package/web/assets/tableSurface-21LDYY_G.js +1 -0
- package/web/assets/{terminal-l9k6RDrH.js → terminal-BlmA_Z1C.js} +1 -1
- package/web/assets/{terminalView-Cpnt5_0P.js → terminalView-SAxITnRW.js} +1 -1
- package/web/assets/{theme-C6D3tMGV.css → theme-Dgqst5S9.css} +1 -1
- package/web/assets/{type-CFoaj2eD.js → type-DmIL6FB-.js} +1 -1
- package/web/assets/{undo-2-DusxpdLa.js → undo-2-yMeXc8Wi.js} +1 -1
- package/web/assets/{unitAccount-DwutFPPw.js → unitAccount-BPYRAa3m.js} +1 -1
- package/web/assets/unitBridge-BNVzai6X.js +1 -0
- package/web/assets/{unitCloudTransport-vA7cLDts.js → unitCloudTransport-iFweA1xk.js} +1 -1
- package/web/assets/{unitOwnerAccess-LBlJ1YfA.js → unitOwnerAccess-Bggl7bDP.js} +1 -1
- package/web/assets/{unitShim-B_M9IrbC.js → unitShim-BP2nBO_k.js} +3 -3
- package/web/assets/{upload-ZrOj6tXA.js → upload-D20PZHXc.js} +1 -1
- package/web/assets/userSpaces-CrLrKklx.js +1 -0
- package/web/assets/viewportLock-DO1lzA2N.css +1 -0
- package/web/assets/viewportLock-tlT6H_Hc.js +629 -0
- package/web/assets/{workflow-DPoG4QE2.js → workflow-Bd6xBHiT.js} +1 -1
- package/web/assets/{zoom-in-lbTgzdQP.js → zoom-in-_TgFOpyv.js} +1 -1
- package/web/index.html +24 -27
- package/web/assets/CalendarConfigView-DKib8Oed.js +0 -1
- package/web/assets/CalendarView-DJ5iOzvu.js +0 -1
- package/web/assets/DashboardGridView-B9DCWYVb.js +0 -17
- package/web/assets/DashboardGridView-Ck3LKkOb.css +0 -1
- package/web/assets/ExcalidrawCanvas-BQ4KKLJP.js +0 -1
- package/web/assets/HomepageView-BNabJQfP.css +0 -1
- package/web/assets/HomepageView-RCOfcVbE.js +0 -1
- package/web/assets/ImageStudioPanels-lkS_y2uM.js +0 -3
- package/web/assets/InlineFiles-CQbQumkf.js +0 -1
- package/web/assets/MarkdownBlock-CkqiwPXa.js +0 -58
- package/web/assets/ModelPill-CY-rU1RU.js +0 -2
- package/web/assets/MuseLibraryView-CtTHlVnT.js +0 -2
- package/web/assets/RunLocationPicker-BE5mxnab.css +0 -1
- package/web/assets/RunLocationPicker-DBnXYV5B.js +0 -38
- package/web/assets/SidebarRow-BAJxbMcx.js +0 -9
- package/web/assets/SidebarRow-CsWEqPKX.css +0 -1
- package/web/assets/TodoListView-DPKhee6i.js +0 -1
- package/web/assets/UnifiedPage-BX6ZQL0h.js +0 -68
- package/web/assets/appStore-DWP8UET9.js +0 -3166
- package/web/assets/appStore-wtOILggO.css +0 -1
- package/web/assets/codingNavigation-CZB4v1ZW.css +0 -1
- package/web/assets/codingNavigation-DDlPpPk5.js +0 -47
- package/web/assets/dashboardSurface-BYM3C7WG.js +0 -1
- package/web/assets/i18n-ecQQxiMQ.css +0 -1
- package/web/assets/i18n.generated-BuLjnmY8.js +0 -15
- package/web/assets/imageStudio--KF9gwHA.css +0 -1
- package/web/assets/index-BM2o7PeV.js +0 -298
- package/web/assets/index-CuiYK18N.js +0 -1
- package/web/assets/linkFollow-B7ivDZMM.js +0 -8
- package/web/assets/main-sIq2N9Z5.js +0 -20
- package/web/assets/markdownEditorSurface-ZSJ3RHAv.js +0 -3
- package/web/assets/mdMarkStore-DQHDjG7s.js +0 -2
- package/web/assets/mdMarks-DbIcRa0O.js +0 -1
- package/web/assets/minus-C9ndHJ9O.js +0 -1
- package/web/assets/mobileEntry-CPmU_c4m.js +0 -13
- package/web/assets/pageChrome-CovzZPdb.css +0 -1
- package/web/assets/pluginChat-BbBukMuN.js +0 -2
- package/web/assets/tableSurface-BXqqidd1.js +0 -1
- package/web/assets/unitBridge-CcgQpkqV.js +0 -1
- package/web/assets/userSpaces-uJOnsedR.js +0 -1
- package/web/assets/viewportLock-D3SNkwS2.js +0 -631
- package/web/assets/viewportLock-IP1zaVkz.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{G as e}from"./appStore-affnJoin.js";const o=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],r=e("workflow",o);export{r as W};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{G as e}from"./appStore-affnJoin.js";const o=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],n=e("zoom-out",o);const y=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],x=e("zoom-in",y);export{n as Z,x as a};
|
package/web/index.html
CHANGED
|
@@ -236,7 +236,7 @@
|
|
|
236
236
|
}
|
|
237
237
|
</style>
|
|
238
238
|
<link rel="stylesheet" href="./fonts/fonts.css">
|
|
239
|
-
<script type="module" crossorigin src="./assets/index-
|
|
239
|
+
<script type="module" crossorigin src="./assets/index-BYUntVIZ.js"></script>
|
|
240
240
|
</head>
|
|
241
241
|
<body>
|
|
242
242
|
<div id="tangu-splash" aria-hidden="true">
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
</svg>
|
|
253
253
|
</div>
|
|
254
254
|
<div id="root"></div>
|
|
255
|
-
<script>window.FORSION_APP_VERSION="2.13.
|
|
255
|
+
<script>window.FORSION_APP_VERSION="2.13.3";// Runs inline before app modules, from one source shared by Desktop, Web and Mobile.
|
|
256
256
|
(function () {
|
|
257
257
|
var splash = document.getElementById('tangu-splash');
|
|
258
258
|
if (!splash) return;
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
if (value.showSplash === false) { splash.remove(); return; }
|
|
269
269
|
var reduce = matchMedia('(prefers-reduced-motion: reduce)').matches || !!(window.tangu && window.tangu.startupAppearance && window.tangu.startupAppearance.prefersReducedMotion);
|
|
270
270
|
if (reduce) splash.dataset.reducedMotion = '';
|
|
271
|
-
var softwareRendering = !!(window.tangu && window.tangu.startupAppearance && window.tangu.startupAppearance.softwareRendering)
|
|
271
|
+
var softwareRendering = !!(window.tangu && window.tangu.startupAppearance && window.tangu.startupAppearance.softwareRendering);
|
|
272
272
|
var animation = ['default', 'pulse', 'spin', 'none'].indexOf(value.animation) !== -1 ? value.animation : 'default';
|
|
273
273
|
var style = document.createElement('style');
|
|
274
274
|
style.textContent = '\
|
|
@@ -327,7 +327,8 @@
|
|
|
327
327
|
var original = splash.firstElementChild;
|
|
328
328
|
function treeShadow(target) {
|
|
329
329
|
try {
|
|
330
|
-
|
|
330
|
+
// Without GPU compositing the layers would be animated on the CPU: paint a smaller, complete still instead.
|
|
331
|
+
if (softwareRendering) splash.dataset.performanceStill = 'software';
|
|
331
332
|
var look = document.documentElement.dataset.mode === 'dark'
|
|
332
333
|
? { wall: '#121419', ink: '#05070c', near: .66, far: .42, word: '#8a94a8', verse: '#ccd4e2', bloom: 'rgba(140,165,215,.1)', lit: 'radial-gradient(70% 80% at 55% 35%, rgba(235,242,255,.16), transparent 70%), linear-gradient(165deg, #7889a8, #47536c)' }
|
|
333
334
|
: { wall: '#e4d9cb', ink: '#5f4636', near: .4, far: .26, word: '#9a7c68', verse: '#6b4f3e', bloom: 'transparent', lit: 'linear-gradient(160deg, #fff7ea, #fbeede)' };
|
|
@@ -336,7 +337,7 @@
|
|
|
336
337
|
// The tree is sized and rooted relative to the window light, so its branches reach the panes at any aspect ratio.
|
|
337
338
|
var rootX = cx + pw * 2.1, rootY = cy + ph * 1.946;
|
|
338
339
|
// Everything on the canvases is blurred, so a capped bitmap stretched by CSS is enough on large displays.
|
|
339
|
-
var q = Math.min(1, (
|
|
340
|
+
var q = Math.min(1, (softwareRendering ? 960 : 1600) / Math.max(W, H));
|
|
340
341
|
// A different verse on every launch. Storage is unavailable in the sandboxed settings preview.
|
|
341
342
|
var last = -1, pick;
|
|
342
343
|
try { last = parseInt(localStorage.getItem('forsion_startup_verse'), 10); } catch (_) { /* preview */ }
|
|
@@ -436,30 +437,25 @@
|
|
|
436
437
|
} else if (animation !== 'default' || reduce) splash.dataset.customMotion = reduce ? 'none' : animation;
|
|
437
438
|
|
|
438
439
|
// App readiness controls exit, with a hard upper bound even if initialization fails.
|
|
439
|
-
var start = Date.now(),
|
|
440
|
-
//
|
|
441
|
-
//
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
}
|
|
450
|
-
} else slowFrames = [];
|
|
451
|
-
lastFrame = document.hidden ? 0 : now;
|
|
452
|
-
performanceFrame = requestAnimationFrame(watchPerformance);
|
|
440
|
+
var start = Date.now(), shown = start, hidden = false, done = false, frame = 0;
|
|
441
|
+
// Desktop creates its window hidden and shows it after the first paint, which takes a while on Windows.
|
|
442
|
+
// The minimum stay counts from the moment the window is on screen, not from this script.
|
|
443
|
+
var whenShown = window.tangu && window.tangu.startupAppearance && window.tangu.startupAppearance.whenShown;
|
|
444
|
+
if (typeof whenShown === 'function') {
|
|
445
|
+
hidden = true;
|
|
446
|
+
var onShown = function (at) { if (hidden) { hidden = false; shown = Math.max(start, +at || 0); } };
|
|
447
|
+
// No timer of its own: a slow machine can take seconds to show the window, and leaving before it does is
|
|
448
|
+
// the very flash this prevents. A reply that never comes ends at the ceiling below.
|
|
449
|
+
try { whenShown().then(onShown, onShown); } catch (_) { hidden = false; }
|
|
453
450
|
}
|
|
454
|
-
if (!performanceStill) performanceFrame = requestAnimationFrame(watchPerformance);
|
|
455
451
|
var ceiling = setTimeout(fade, 10000);
|
|
452
|
+
// Every mode leaves the same way. A still scene (reduced motion, software rendering) that vanished the
|
|
453
|
+
// instant the app was ready read as a flash; its descendants do not animate, so only the opacity fades.
|
|
456
454
|
function fade() {
|
|
457
455
|
if (done) return;
|
|
458
456
|
done = true;
|
|
459
457
|
clearTimeout(ceiling);
|
|
460
458
|
cancelAnimationFrame(frame);
|
|
461
|
-
cancelAnimationFrame(performanceFrame);
|
|
462
|
-
if (reduce || performanceStill) { splash.remove(); style.remove(); return; }
|
|
463
459
|
splash.classList.add('out');
|
|
464
460
|
setTimeout(function () { splash.remove(); style.remove(); }, 450);
|
|
465
461
|
}
|
|
@@ -469,12 +465,13 @@
|
|
|
469
465
|
function waitForPaint() {
|
|
470
466
|
if (done) return;
|
|
471
467
|
var root = document.getElementById('root');
|
|
472
|
-
if (!root || !root.firstChild) { frame = requestAnimationFrame(waitForPaint); return; }
|
|
468
|
+
if (hidden || !root || !root.firstChild) { frame = requestAnimationFrame(waitForPaint); return; }
|
|
473
469
|
frame = requestAnimationFrame(function () {
|
|
474
|
-
var
|
|
475
|
-
// The classic mark leaves at
|
|
476
|
-
|
|
477
|
-
|
|
470
|
+
var now = Date.now(), elapsed = now - start, seen = now - shown;
|
|
471
|
+
// The classic mark leaves at a loop seam, the first one that has kept it on screen for most of a loop.
|
|
472
|
+
// A scene without a loop (the tree shadow, any still) keeps a short minimum instead.
|
|
473
|
+
var duration = reduce || splash.dataset.scene === 'tree-shadow' ? Math.max(0, 1300 - seen)
|
|
474
|
+
: Math.ceil((elapsed + Math.max(0, 900 - seen) + 300) / 1600) * 1600 - 300 - elapsed;
|
|
478
475
|
setTimeout(fade, duration);
|
|
479
476
|
});
|
|
480
477
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a,u as F,d,r as la}from"./index-BM2o7PeV.js";import{p as oa,bn as ra,j4 as ia,j0 as V,j6 as ma,j8 as da,iW as ua,jR as fa,jd as q,jo as ha,j9 as pa,b as J,iX as ga,iY as xa,iZ as ba,i_ as ja,jS as j,i$ as D,ji as va,jg as Ca,jf as Na,G as wa,W as X,J as $,aq as Da,as as aa,ah as Z,fL as H,f7 as Sa,jT as ea,jU as za,jV as Q,jW as K,jX as Ma,fn as ka,jY as ya,jZ as Aa,R as Pa,j_ as qa}from"./appStore-DWP8UET9.js";import"./client-0MPbodA6.js";import{A as Fa}from"./astryxBridge-D-m4_kYt.js";import{u as O}from"./calendarNavStore-Cylfvv3s.js";import{C as Ea}from"./CapabilityMenu-SwVlZ06x.js";import{H as Ia}from"./hard-drive-BpuI5ebj.js";import{S as Ta}from"./star-BQWMXnn7.js";import{C as La}from"./CheckboxInput-BC-5a_C9.js";import{U as Ra}from"./upload-ZrOj6tXA.js";import"./nativeDownload-BYT082bY.js";import"./ipc-CxAyeo8q.js";import"./Tooltip-ZxrDqN4p.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 Ha(){const{t:s}=F(),n=Q(c=>c.pref),p=Q(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(Oa,{}),a.jsx(Wa,{})]})})}const W=s=>new Date(s.getFullYear(),s.getMonth(),1);function Oa(){const{t:s}=F(),n=oa(t=>(t.mainTabs,((t.api?ra(t.api):null)?.params??{}).__type==="calendar")),p=O(t=>t.visibleStart),i=O(t=>t.visibleEnd),u=O(t=>t.requestJump),f=d.useMemo(()=>ia(new Date),[]),[c,h]=d.useState(()=>W(f));d.useEffect(()=>{if(n&&p&&i){const t=V(p),b=ma(t,Math.floor(da(V(i),t)/2));h(W(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(W(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 Wa(){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=D(e=>e.byVault),C=D(e=>e.setColor),o=D(e=>e.toggleHidden),N=D(e=>e.setDefault),t=D(e=>e.addMember),b=D(e=>e.removeMember),[E,I]=d.useState(!1),[T,S]=d.useState(null),[B,k]=d.useState(null),[m,g]=d.useState(null),[z,y]=d.useState(null),sa=d.useMemo(()=>new Set(u.map(e=>e.db.path)),[u]),Y=[...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"}))],_=va(n,x),ta=e=>{g(null),H(s("calcfg.renameCalendar"),e.name).then(r=>{const l=r?.trim();l&&l!==e.name&&ka.getState().mutate(e.path,A=>({...A,name:l}))})},M=e=>e.slice(6),G=e=>v[M(e)],na=()=>{H(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>K){k(s("calcfg.fileTooLarge",{mb:K/1024/1024}));return}k(null),r.text().then(l=>{j.getState().importText(Ma(l)||r.name.replace(/\.ics$/i,""),l)||k(s("calcfg.notIcs"))}).catch(l=>k(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")}),Y.length===0&&a.jsx("div",{className:"amx-calcfg-empty",children:s("calcfg.empty")}),a.jsx("div",{className:"amx-calcfg-list",children:Y.map(({db:e,readonly:r,kind:l},A)=>{const L=Ca(n,x,e.path,A),R=!Na(n,x,e.path),P=_?_===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(wa,{size:14}):l==="ics"?a.jsx(X,{size:14}):l==="other"?a.jsx(Ia,{size:14}):a.jsx($,{size:14})}),a.jsx("span",{className:"amx-calcfg-swatch",style:{background:R?L:"transparent",borderColor:L},children:a.jsx("input",{type:"color",value:L,onChange:w=>C(n,e.path,w.target.value),title:s("calcfg.eventColor")})}),a.jsxs("span",{className:`amx-calcfg-name${R?"":" off"}`,title:G(e.path)||e.name,children:[e.name,l==="ics"&&G(e.path)&&a.jsxs("span",{className:"amx-cal-vault",children:[" · ",s("calcfg.fetchFailed")]}),(()=>{const w=l==="agent"?"":l==="other"?e.vaultLabel||"":i;return w?a.jsxs("span",{className:"amx-cal-vault",children:[" · ",w]}):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(La,{label:s("calcfg.showInCalendar"),isLabelHidden:!0,size:"sm",value:R,onChange:()=>o(n,e.path)}),(!r||l==="ics")&&a.jsx("button",{className:"amx-calcfg-more",title:s("calcfg.more"),onClick:w=>{const U=w.currentTarget.getBoundingClientRect();g({db:e,ics:l==="ics",x:Math.min(U.left,window.innerWidth-180),y:U.bottom+4})},children:"⋯"})]},e.path)})}),a.jsxs("button",{className:"amx-calcfg-add amx-calcfg-add-main",onClick:e=>{const r=e.currentTarget.getBoundingClientRect();S({x:Math.max(12,r.left),y:r.bottom+4})},children:[a.jsx(Da,{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(Ha,{}),T&&a.jsx("div",{className:"amx-db-popwrap",onMouseDown:()=>S(null),children:a.jsxs(Z,{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:()=>{S(null),I(!0)},children:[a.jsx($,{size:14})," ",s("calcfg.addDatabase")]}),a.jsxs("button",{className:"amx-db-opt",onClick:()=>{S(null),na()},children:[a.jsx(X,{size:14})," ",s("calcfg.subscribeExternal")]}),a.jsxs("button",{className:"amx-db-opt",onClick:()=>{S(null),ca()},children:[a.jsx(Ra,{size:14})," ",s("calcfg.importIcs")]})]})}),m&&a.jsx("div",{className:"amx-db-popwrap",onMouseDown:()=>g(null),children:a.jsx(Z,{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===M(m.db.path))?.url&&a.jsx("button",{className:"amx-db-opt",onClick:()=>{j.getState().refresh(M(m.db.path)),g(null)},children:s("calcfg.refreshNow")}),a.jsx("button",{className:"amx-db-opt",onClick:()=>{const e=M(m.db.path),r=m.db.name;g(null),H(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(M(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:()=>{Sa(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($a,{memberPaths:sa,onClose:()=>I(!1),onAdd:(e,r,l)=>{t(n,e.path,r,l),I(!1)}}),z&&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:z.name,columns:z.columns,initial:za(n,x,z.path),onCancel:()=>y(null),onConfirm:(e,r)=>{t(n,z.path,e,r),y(null)}})})})]})}function $a({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($,{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 n,j as s,t as we,r as Je,u as ze}from"./index-BM2o7PeV.js";import{F as xt,iW as ft,iX as mt,iY as ht,iZ as pt,i_ as yt,u as gt,b as kt,i$ as bt,j0 as me,j1 as vt,j2 as G,j3 as be,j4 as Q,j5 as wt,c5 as jt,aJ as $t,j6 as ae,j7 as Te,j8 as $e,j9 as Mt,ja as Qe,jb as et,jc as fe,ag as xe,jd as J,je as Ct,jf as zt,jg as Et,jh as Dt,ji as Tt,jj as St,jk as Nt,jl as qe,jm as Rt,jn as We,jo as At,jp as He,jq as It,jr as tt}from"./appStore-DWP8UET9.js";import"./client-0MPbodA6.js";import{u as Lt,p as ee,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-D-m4_kYt.js";import{u as te,H as Bt}from"./calendarNavStore-Cylfvv3s.js";import{u as Gt}from"./mdMarkStore-DQHDjG7s.js";import{E as Yt,d as Xt}from"./EventCard-B_ndpqH_.js";import{Z as Ut,a as _t}from"./zoom-in-lbTgzdQP.js";import{R as Zt}from"./rotate-ccw-BvipPIjC.js";import"./nativeDownload-BYT082bY.js";import"./ipc-CxAyeo8q.js";import"./mdMarks-DbIcRa0O.js";const Jt=[["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"}]],Qt=xt("calendar-plus",Jt);function nt({children:e,as:t="span",ref:a,...u}){return n.createElement(t,{ref:a,...u,className:"x10l6tqk x1i1rx1s xjm9jq1 xkdpibf x1717udv xb3r6kr xzpqnlu xuxw1ft xng3xce x13vifvy x1o0tod x47corl x87ps6o"},e)}nt.displayName="VisuallyHidden";const en="data-astryx-edge-comp",Re=n.createContext(null);Re.displayName="SizeContext";function tn(e,t="md"){const a=n.use(Re);return e??a??t}Re.Provider;const st=n.createContext(null);st.displayName="ButtonGroupContext";function nn(){return n.use(st)}const rt=n.createContext(null);rt.displayName="LinkContext";function sn(e){function t({href:a,ref:u,...x}){return n.createElement(e,{ref:u,href:a,to:a,...x})}return t.displayName=`LinkWithTo(${typeof e=="string"?e:e.displayName||e.name||"Component"})`,t}function at(e){const t=n.use(rt),a=e??t?.component??"a";return n.useMemo(()=>a==="a"?"a":sn(a),[a])}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}},rn={sm:{kZKoxP:"x6k0iem",$$css:!0},md:{kZKoxP:"x1ueg155",$$css:!0},lg:{kZKoxP:"xssyfek",$$css:!0}},an={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}},on={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:a,type:u="button",isDisabled:x=!1,isLoading:z=!1,isInterruptible:$=!1,clickAction:y,icon:M,isIconOnly:l=!1,children:c,endContent:g,tooltip:v,href:T,as:D,target:C,rel:p,xstyle:K,className:I,style:A,ref:S,...P}){const h=tn(a,"md"),E=nn(),[N,i]=n.useTransition(),f=n.useRef(!1),k=z||N,w=N||$,q=E?.isDisabled??!1,W=x||q||k&&!$,X=at(D),F=T!=null&&!W,V=v!=null&&W,d=Lt({placement:"above",isEnabled:v!=null}),R=U=>{if(W||f.current&&!$){U.preventDefault();return}P.onClick?.(U),y&&!U.defaultPrevented&&(f.current=!0,i(async()=>{try{await y(U)}finally{f.current=!1}}))},H=V?U=>{U.key==="Enter"||U.key===" "?U.preventDefault():P.onKeyDown?.(U)}:void 0,O=t==="ghost"?{[en]:""}:null,o=ee(re.base,rn[h],on[t],l&&re.iconOnly,W&&re.disabled,V&&re.ariaDisabled,F&&re.link,!E&&re.pressable,E&&(E.orientation==="horizontal"?je.horizontal:je.vertical),E&&(t==="primary"||t==="destructive")&&(E.orientation==="horizontal"?je.onSolidHorizontal:je.onSolidVertical),K),r=he(pe("button",{variant:t,size:h}),o,I,A),m=s.jsxs(s.Fragment,{children:[k&&s.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:s.jsx(Pt,{size:"sm",shade:"inherit"})}),s.jsxs("span",{...ee(re.contentWrapper,k&&(w?Ke.hiddenContentDelayed:Ke.hiddenContent)),"aria-hidden":k||void 0,children:[M&&s.jsx("span",{...ee(re.iconWrapper,an[h]),children:M}),l?null:s.jsx("span",{className:"xb3r6kr xlyipyv xeuugli",children:c??e}),!l&&g&&s.jsx("span",{className:"x3nfvp2 x6s0dn4 x1heor9g",children:g})]}),s.jsx(nt,{role:"status","aria-live":"polite",children:k?"Loading":""})]}),b=l&&e!==""||k&&!l||c!=null&&c!==e?{"aria-label":e}:null,L=v!=null?{"aria-describedby":[P["aria-describedby"],d.describedBy].filter(Boolean).join(" ")||void 0}:null,B=qt(S,v!=null?d.ref:void 0);let ne;return F?ne=s.jsx(X,{ref:B,href:T,target:C,rel:p,...r,...P,...b,...L,...O,onClick:R,children:m}):ne=s.jsx("button",{ref:B,type:u,disabled:V?void 0:W,...r,...P,...b,...L,...O,"aria-busy":k||void 0,"aria-disabled":V||void 0,onClick:R,...H?{onKeyDown:H}:null,children:m}),v?s.jsxs(s.Fragment,{children:[ne,d.renderTooltip(v)]}):ne}ce.displayName="Button";const ln='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 cn(e){ve.push(e)}function un(e){const t=ve.lastIndexOf(e);t!==-1&&ve.splice(t,1)}function dn(e){return ve[ve.length-1]===e}function xn(e){return e.isComposing===!0||e.keyCode===229}function fn(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(ln)).filter(fn)}function ot(e){try{e.focus()}catch{}return document.activeElement===e}function Fe(e){const t=Ae(e);for(const a of t)if(ot(a))return!0;return!1}function mn(e){const t=Ae(e);for(let a=t.length-1;a>=0;a--)if(ot(t[a]))return!0;return!1}function hn(e){const{isActive:t,onEscape:a}=e,u=n.useRef(null),x=n.useRef(null),z=n.useRef(!1),$=n.useCallback(()=>{u.current&&Fe(u.current)},[]);return n.useEffect(()=>{if(!t)return;const y=M=>{const l=u.current;if(!l)return;const c=M.target;l.contains(c)?x.current=c:z.current&&(Fe(l),x.current===document.activeElement&&mn(l),x.current=document.activeElement),z.current=!1};return document.addEventListener("focus",y,!0),()=>{document.removeEventListener("focus",y,!0)}},[t]),n.useEffect(()=>{if(!t)return;const y=()=>{a?.()};a&&cn(y);const M=l=>{const c=u.current;if(c){if(l.key==="Escape"&&a){if(l.defaultPrevented||xn(l)||!dn(y))return;l.preventDefault(),l.stopPropagation(),a();return}if(l.key==="Tab"){z.current=!0;const g=Ae(c);if(g.length===0)return;const v=g[0],T=g[g.length-1];l.shiftKey?document.activeElement===v&&(l.preventDefault(),T.focus()):document.activeElement===T&&(l.preventDefault(),v.focus())}}};return document.addEventListener("keydown",M),()=>{document.removeEventListener("keydown",M),a&&un(y)}},[t,a]),{containerRef:u,focusFirst:$}}const Oe={surface:{kWkggS:"x1prclbq",kaIpWk:"x1hviunn",kGVxlE:"x1i5ehqx",$$css:!0},contentWrapper:{kVAEAm:"x1n2onr6",$$css:!0}};function pn(e={}){const{onShow:t,onHide:a,xstyle:u,hasLightDismiss:x=!0,hasEscapeDismiss:z=!0,hasAutoFocus:$=!0,hasSurface:y=!0,hasCloseButton:M=!0,closeButtonLabel:l="Close popover",dialogLabel:c,role:g="dialog",isModal:v=!0}=e,T=n.useRef(null),D=n.useRef(!1),C=Wt({mode:"context",lightDismiss:x,onShow:t,onHide:a}),{containerRef:p,focusFirst:K}=hn({isActive:C.isOpen,onEscape:z||x?C.hide:void 0});n.useEffect(()=>{C.isOpen&&$&&!D.current&&requestAnimationFrame(()=>{K()}),C.isOpen||(D.current=!1)},[C.isOpen,$,K]);const I=n.useCallback(N=>{T.current=N,C.ref(N)},[C]),A=n.useCallback(N=>{D.current=N?.skipAutoFocus??!1,C.show()},[C]),S=n.useCallback(()=>{C.isOpen?C.hide():A()},[C,A]),P={"aria-haspopup":g==="dialog"?"dialog":"true","aria-expanded":C.isOpen,"aria-controls":C.id},h=n.useRef(!1);n.useEffect(()=>{g==="dialog"&&!c&&!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.'))},[g,c]);const E=n.useCallback((N,i)=>C.render(s.jsxs("div",{ref:p,role:g==="dialog"?"dialog":void 0,"aria-modal":g==="dialog"&&v?!0:void 0,"aria-label":g==="dialog"?c:void 0,...ee(Oe.contentWrapper,y&&Oe.surface,u),children:[N,M&&s.jsx("div",{className:"x10l6tqk x1ey2m1c x1nrll8i x31h1t8 x1vjfegm x1i1rx1s x10okhzq xjm9jq1 x132qfvm xb3r6kr x1dordxg x1hyvwdk x10wafsz x47corl xbt4iw xexx8yu x1kw28su",children:s.jsx(ce,{variant:"secondary",label:l,onClick:C.hide})})]}),{...i,xstyle:i?.xstyle}),[C,M,y,l,p,c,g,v,u]);return{triggerRef:I,contentRef:p,anchorId:C.anchorId,show:A,hide:C.hide,toggle:S,isOpen:C.isOpen,id:C.id,render:E,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:a="subtle",isFullBleed:u=!1,xstyle:x,className:z,style:$,ref:y,...M}){const l=e==="horizontal";return s.jsxs("div",{ref:y,role:"separator","aria-orientation":e,...he(pe("divider",{variant:a,orientation:e}),ee(l?Ve.horizontal:Ve.vertical,u&&(l?Be.horizontal:Be.vertical),x),z,$),...M,children:[s.jsx("div",{...ee(l?de.horizontalLine:de.verticalLine,de[a])}),t&&s.jsx("div",{...{0:{className:"x2lah0s xrrkdod x141an7d x1ltkj2j xv1l7n4"},1:{className:"x2lah0s x141an7d x1ltkj2j xv1l7n4 xnjsko4 x8o8v82"}}[!l<<0],children:t}),t&&s.jsx("div",{...ee(l?de.horizontalLine:de.verticalLine,de[a])})]})}lt.displayName="Divider";const yn=["noopener","noreferrer"];function gn(e,t){if(e!=="_blank")return{target:e,rel:t};const a=t?.split(/\s+/).filter(Boolean)??[];for(const u of yn)a.includes(u)||a.push(u);return{target:e,rel:a.join(" ")}}const _={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:a,label:u,description:x,endContent:z,align:$="center",density:y="balanced",labelLines:M,descriptionLines:l,onClick:c,href:g,target:v,rel:T,isHighlighted:D=!1,isSelected:C=!1,isDisabled:p=!1,xstyle:K,className:I,style:A,ref:S,role:P,...h}){const E=at(),N=c!=null||g!=null,{target:i,rel:f}=gn(v,T),k=P!=null,w=typeof u=="string",q=typeof x=="string",W=M!=null?M===1?_.labelSingleTruncate:_.labelMultiTruncate:w?_.labelSingleTruncate:null,X=l!=null?l===1?_.descriptionSingleTruncate:_.descriptionMultiTruncate:q?_.descriptionSingleTruncate:null,F=s.jsxs(s.Fragment,{children:[s.jsx("span",{...ee(_.label,W,M!=null&&M>1&&Ge.lineClamp(M)),children:u}),x!=null&&s.jsx("span",{...ee(_.description,X,l!=null&&l>1&&Ge.lineClamp(l)),children:x})]}),V=R=>{p||R.target.closest("button, a, input, select, textarea")||c?.(R)},d=s.jsxs(s.Fragment,{children:[t,a!=null&&s.jsx("span",{className:"x3psx0u x78zum5",children:a}),k?s.jsx("span",{...{0:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h"},1:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo"}}[!!p<<0],children:F}):g!=null?s.jsx(E,{href:g,target:i,rel:f,"aria-disabled":p||void 0,tabIndex:p?-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"}}[!!p<<0],children:F}):c!=null?s.jsx("button",{type:"button",onClick:c,disabled:p,...{0:{className:"xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz"},1:{className:"xmper1u xln7xf2 x1heor9g x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h x1a2a7pz xbyyjgo"}}[!!p<<0],children:F}):s.jsx("span",{...{0:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h"},1:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo"}}[!!p<<0],children:F}),z!=null&&s.jsx("span",{...{0:{className:"x3psx0u x78zum5 xvc5jky"},1:{className:"x3psx0u x78zum5 xvc5jky xbyyjgo"}}[!!p<<0],children:z})]});return s.jsx(e,{ref:S,"aria-selected":C||void 0,"aria-disabled":p||void 0,...h,...he(pe("item",{density:y,align:$}),ee(_.root,kn[y],$==="start"&&_.alignStart,N&&_.interactive,N&&_.focusVisibleOutline,D&&_.highlighted,C&&_.selected,p&&!k&&_.disabled,K),I,A),role:P,onClick:k?c:N?V:void 0,children:d})}ct.displayName="Item";const Ie=n.createContext(null);Ie.displayName="DropdownMenuContext";function bn(){return n.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}},vn={sm:{k8WAf4:"xu0wf1k",kg3NbH:"xf314gf",$$css:!0},md:{k8WAf4:"x1vofgu7",$$css:!0},lg:{$$css:!0}};function ie({icon:e,label:t,description:a,onClick:u,isDisabled:x=!1,endContent:z,xstyle:$,className:y,style:M}){const l=bn(),c=l?.menuSize??"md",g=n.useCallback(()=>{x||!u||(u(),l?.closeMenu())},[x,u,l]);return s.jsx(ct,{role:"menuitem",tabIndex:x?void 0:-1,startContent:e?Ht(e,{size:"sm",color:"secondary"}):void 0,label:t,description:a,endContent:z,onClick:g,isDisabled:x,xstyle:[Ye.root,vn[c],x&&Ye.disabled,$],...he(pe("dropdown-menu-item",{size:c}),{className:y,style:M})})}ie.displayName="DropdownMenuItem";const wn={divider:{kqGvvJ:"xsq74q5",$$css:!0}};function Xe(e){return`item-${e.label}`}function jn(e,t){return`section-${e.title??t}`}function $n(e){const t=[];for(let a=0;a<e.length;a++){const u=e[a];"type"in u&&u.type==="divider"?t.push(s.jsx(lt,{xstyle:wn.divider},`divider-${a}`)):"type"in u&&u.type==="section"?t.push(s.jsxs("div",{role:"group","aria-label":u.title,children:[u.title&&s.jsx("div",{className:"xu0wf1k xf314gf x9ynric x141an7d x1ltkj2j xv1l7n4 x87ps6o","aria-hidden":"true",children:u.title}),u.items.map(x=>s.jsx(ie,{icon:x.icon,label:x.label,onClick:x.onClick,isDisabled:x.isDisabled},Xe(x)))]},jn(u,a))):"type"in u||t.push(s.jsx(ie,{icon:u.icon,label:u.label,onClick:u.onClick,isDisabled:u.isDisabled},Xe(u)))}return t}const Mn=new Set(["text","search","url","tel","email","password","number"]);function Cn(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 a=Cn(e);if(a){const l=typeof window<"u"?window.getSelection():null;return l&&l.rangeCount>0&&!l.isCollapsed?!0:(a.textContent??"").length>0}const u=e.tagName==="TEXTAREA",x=e.tagName==="INPUT"&&Mn.has(e.type);if(!u&&!x)return!1;const z=e,{selectionStart:$,selectionEnd:y,value:M}=z;return $!==y||$==null?!0:t==="ArrowLeft"||t==="ArrowUp"||t==="Home"?$>0:t==="ArrowRight"||t==="ArrowDown"||t==="End"?$<M.length:!1}function zn(e={}){const{itemSelector:t='[role="menuitem"]',wrap:a=!0,onEscape:u,orientation:x="vertical",hasHomeEnd:z=!0,isRtl:$=!1,hasRovingTabIndex:y=!1,hasCaretGuard:M=!1}=e,l=n.useRef(null),c=n.useCallback(h=>h.getAttribute("aria-disabled")==="true"||h.disabled===!0||h.hasAttribute("disabled"),[]),g=n.useCallback(()=>l.current?Array.from(l.current.querySelectorAll(t)):[],[t]),v=n.useCallback((h,E,N,i)=>{const f=h.length;if(f===0)return-1;let k=E;for(let w=0;w<f;w++){if(k<0||k>=f){if(!i)return-1;k=(k+f)%f}const q=h[k];if(q&&!c(q))return k;k+=N}return-1},[c]),T=n.useCallback(()=>{const h=g(),E=document.activeElement;return h.findIndex(N=>N===E||N.contains(E))},[g]),D=n.useCallback((h,E)=>{h.getAttribute("tabindex")!==String(E)&&h.setAttribute("tabindex",String(E))},[]),C=n.useCallback(()=>{const h=g(),E=h.filter(f=>!c(f));if(E.length===0)return;const i=E.find(f=>f.getAttribute("tabindex")==="0")??E[0];for(const f of h)D(f,f===i?0:-1)},[g,c,D]);Kt(()=>{y&&C()});const p=n.useCallback((h,E)=>{const N=h[E];if(N){if(y)for(const i of h)D(i,i===N?0:-1);N.focus()}},[y,D]),K=n.useCallback(h=>{const E=g();if(E.length===0)return;const N=Math.max(0,Math.min(h,E.length-1));p(E,N)},[g,p]),I=n.useCallback(()=>{const h=g(),E=v(h,0,1,!1);return E!==-1?(p(h,E),!0):!1},[g,v,p]),A=n.useCallback(()=>{const h=g(),E=v(h,h.length-1,-1,!1);return E!==-1?(p(h,E),!0):!1},[g,v,p]),S=n.useCallback(()=>{y&&C()},[y,C]),P=n.useCallback(h=>{if(h.ctrlKey||h.metaKey||h.altKey)return;if(h.key==="Escape"){h.preventDefault(),u?.();return}const E=x==="horizontal"||x==="both",N=x==="vertical"||x==="both",i=[],f=[];E&&(i.push($?"ArrowLeft":"ArrowRight"),f.push($?"ArrowRight":"ArrowLeft")),N&&(i.push("ArrowDown"),f.push("ArrowUp"));const k=i.includes(h.key),w=f.includes(h.key),q=z&&h.key==="Home",W=z&&h.key==="End";if(!k&&!w&&!q&&!W||M&&(Ue(h.target,h.key)||Ue(document.activeElement,h.key)))return;const X=T(),F=g();if(k){const V=X===-1?0:X+1,d=v(F,V,1,a);d!==-1&&p(F,d)}else if(w){const V=X===-1?F.length-1:X-1,d=v(F,V,-1,a);d!==-1&&p(F,d)}else q?I():W&&A();h.preventDefault()},[T,g,a,x,$,z,M,v,p,I,A,u]);return{listRef:l,handleKeyDown:P,handleFocus:S,focusItem:K,focusFirst:I,focusLast:A}}function En(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&e.key!==" "}function Dn(e){const{getItemLabels:t,onMatch:a,getCurrentIndex:u,resetMs:x=750,isDisabled:z}=e,$=n.useRef(""),y=n.useRef(void 0),M=n.useCallback(()=>{$.current="",y.current&&(clearTimeout(y.current),y.current=void 0)},[]),l=n.useCallback(()=>{y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{$.current="",y.current=void 0},x)},[x]);return{onKeyDown:n.useCallback(g=>{const v=g.key===" "&&$.current.length>0;if(!En(g)&&!v)return!1;const T=t();if(T.length===0)return!1;const D=g.key.toLowerCase(),C=$.current.length>0&&$.current.split("").every(S=>S===D),p=C?D:$.current+D;$.current=p,l();const K=u?.()??-1,I=T.length,A=C?1:0;for(let S=0;S<I;S++){const P=(K+A+S+I)%I;if(z?.(P))continue;const h=T[P];if(h!=null&&h.trim().toLowerCase().startsWith(p))return a(P),!0}return!0},[t,a,u,l,z]),reset:M}}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)}]},Tn={label:"Menu"};function Se({button:e=Tn,isMenuOpen:t,onOpenChange:a,menuWidth:u,onClick:x,hasChevron:z=!0,placement:$="below",className:y,style:M,xstyle:l,"data-testid":c,...g}){const v=("items"in g?g.items:void 0)??[],T=g.children,D=n.useId(),C=e?.size??"md",p=n.useRef(null),[K,I]=n.useState(!1),A=t!==void 0,S=A?t:K,P=n.useRef(0),h=n.useCallback(()=>{P.current=Date.now(),A?a?.(!1):I(!1),p.current?.focus()},[A,a]),E=n.useRef(!1),N=n.useCallback(()=>{A?a?.(!0):I(!0),E.current&&(E.current=!1)},[A,a]),i=pn({onHide:h,onShow:N,hasLightDismiss:!0,hasCloseButton:!1,hasAutoFocus:!1,role:"none"}),f=n.useCallback(()=>{i.hide()},[i]),{listRef:k,handleKeyDown:w,focusFirst:q,focusItem:W}=zn({itemSelector:'[role="menuitem"]:not([aria-disabled="true"])',wrap:!1,onEscape:f}),X=n.useCallback(()=>k.current?Array.from(k.current.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')):[],[k]),F=Dn({getItemLabels:()=>X().map(b=>b.textContent),onMatch:W,getCurrentIndex:()=>X().findIndex(b=>b===document.activeElement||b.contains(document.activeElement))});n.useEffect(()=>{A&&(t&&!i.isOpen?(i.show(),requestAnimationFrame(()=>q())):!t&&i.isOpen&&i.hide())},[t,A,i,q]);const V=n.useCallback(b=>{if(b.key==="Enter"||b.key===" "){b.preventDefault();const L=document.activeElement;L?.getAttribute("role")==="menuitem"&&L.click();return}if(b.key==="Tab"){f();return}if(F.onKeyDown(b)){b.preventDefault();return}w(b)},[w,f,F]),d=n.useCallback(()=>{i.show(),requestAnimationFrame(()=>q())},[i,q]),R=n.useCallback(()=>{Date.now()-P.current<50||(x?.(),A?a?.(!t):i.isOpen?i.hide():d())},[x,A,a,t,i,d]),H=n.useCallback(b=>{i.isOpen||(b.key==="ArrowDown"||b.key==="Enter"||b.key===" ")&&(b.preventDefault(),d())},[i.isOpen,d]),Y=e.isIconOnly===!0,O=e.endContent??(z&&!Y?s.jsx(Ft,{icon:"chevronDown",size:"sm",color:"inherit"}):void 0),o=u?ye.popoverCustomWidth(u):ye.popover,r=$==="above"||$==="below"?ye.popoverBlockGap:ye.popoverInlineGap,m=n.useMemo(()=>({closeMenu:f,menuSize:C}),[f,C]),j=g.items!==void 0?$n(v):T;return s.jsxs(s.Fragment,{children:[s.jsx(ce,{...e,ref:b=>{p.current=b,i.triggerRef(b);const L=e.ref;typeof L=="function"?L(b):L&&(L.current=b)},tooltip:S?void 0:e.tooltip,endContent:O,onClick:R,onKeyDown:H,"aria-haspopup":"menu","aria-expanded":S,"aria-controls":D,"data-testid":c}),i.render(s.jsx("div",{ref:k,id:D,role:"menu","aria-label":e.label,onKeyDown:V,...he(pe("dropdown-menu"),ee(ye.dropdown,l),y,M),children:s.jsx(Ie,{value:m,children:j})}),{placement:$,alignment:"start",xstyle:[o,r,Ot[$]]})]})}Se.displayName="DropdownMenu";const Sn={wrapper:{k1xSpc:"x3nfvp2",kGNEyG:"x6s0dn4",kOIVth:"xzye2dw",kmuXW:"x2lah0s",$$css:!0}},Nn={ctrl:"⌃",alt:"⌥",shift:"⇧",enter:"↵",backspace:"⌫",escape:"Esc",tab:"⇥",up:"↑",down:"↓",left:"←",right:"→",plus:"+"};function Rn(e,t){return e==="mod"?t?"⌘":"Ctrl":Nn[e]??e.toUpperCase()}const An={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 In(e,t){return e==="mod"?t?"Command":"Control":An[e]??e.toUpperCase()}function Ln(){return()=>{}}function Pn(){return!1}function qn(){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:a,className:u,style:x,...z}){const $=n.useSyncExternalStore(Ln,qn,Pn),y=e.split("+").map(l=>l.trim().toLowerCase()),M=y.map(l=>In(l,$)).join(" + ");return s.jsx("span",{ref:t,role:"img","aria-label":M,...z,...he(pe("kbd"),ee(Sn.wrapper,a),u,x),children:y.map(l=>s.jsx("kbd",{"aria-hidden":"true",className:"x3nfvp2 x6s0dn4 xl56j7k x16asifk x1grt7ep x7a5moj xx3sua9 x17x4s8c xlxy82 x1q0q8m5 xib2hle xv1l7n4 x9ynric x141an7d x1e4wzip x1ltkj2j x87ps6o",children:Rn(l,$)},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 Wn(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 a=Ne.find(u=>u.key===e.key.toLowerCase());return a?{kind:"mode",mode:a.id}:null}const ge=e=>e.end?.getTime()??e.start.getTime()+3600*1e3;function Hn(e){const t=[...e].sort((u,x)=>u.start.getTime()-x.start.getTime()||ge(u)-ge(x)),a=new Map;for(let u=0;u<t.length;){let x=u+1,z=ge(t[u]);for(;x<t.length&&t[x].start.getTime()<z;)z=Math.max(z,ge(t[x])),x+=1;const $=t.slice(u,x),y=[],M=$.map(c=>{let g=y.findIndex(v=>v<=c.start.getTime());return g<0&&(g=y.length),y[g]=ge(c),{ev:c,lane:g}}),l=Math.max(1,y.length);for(const{ev:c,lane:g}of M)a.set(c.key,{lane:g,laneCount:l,leftPct:g/l*100,widthPct:100/l});u=x}return a}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,ke=150,Ze=40;function Kn(e,t,a){const u=[];return e.forEach(({db:x,dateCol:z},$)=>{if(zt(t,a,x.path))return;const y=Et(t,a,x.path,$);for(const M of x.rows){const l=typeof M.cells[z]=="string"?M.cells[z]:"",c=Dt(l);c&&u.push({key:`${x.path}::${M.rowId}`,color:y,db:x,row:M,colId:z,title:M.name,raw:l,start:me(c.start),end:c.end?me(c.end):null,allDay:c.allDay,readonly:x.readonly&&!x.writeCell})}}),u}const Z=e=>`${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`,oe=e=>{const t=e.currentTarget,a=t.getBoundingClientRect();return{left:a.left,top:a.top,right:a.right,bottom:a.bottom,zoom:xe(t)||1}},Fn=(e,t,a)=>t?`${J(e,a)}/${J(t,a)}`:J(e,a),Me=(e,t,a)=>tt(e.db,e.row.rowId,e.colId,Fn(t,a,e.allDay)),Ce=e=>({"--amx-event-color":e}),ut=(e,t)=>{const a=Q(t).getTime(),u=Q(e.start).getTime()<a,x=Q(e.end??e.start).getTime()>a;return`${u?" continues-left":""}${x?" continues-right":""}`};function rs(){const{t:e}=ze(),t=ft(),a=mt(),u=ht(),x=pt(),z=yt(),$=Gt(),y=gt(d=>d.cfg),M=kt(d=>d.vaultRoot)??"",l=bt(d=>d.byVault),c=te(d=>d.mode),g=te(d=>d.setMode),v=te(d=>d.hourPx),T=te(d=>d.setHourPx),D=te(d=>d.jumpNonce),[C,p]=n.useState(null),K=n.useRef(null),I=n.useRef(null),A=n.useRef(null);n.useEffect(()=>{c!=="month"&&(A.current=null)},[c]);const S=n.useRef(null),P=n.useRef(null);n.useEffect(()=>{if(!D)return;const d=te.getState().jumpDate;d&&I.current?.goto(me(d))},[D]),n.useEffect(()=>{const d=()=>{Ct.getState().refresh(y)};d();const R=window.setInterval(d,6e4);return()=>window.clearInterval(R)},[y]);const h=n.useMemo(()=>[...a.map(d=>({db:d.db,dateCol:d.dateCol})),...[...u,...x,...z,...$].map(d=>({db:d,dateCol:vt(d)?.id})).filter(d=>!!d.dateCol)],[a,u,x,z,$]),E=n.useMemo(()=>Kn(h,M,l),[h,M,l]),N=n.useMemo(()=>E.map(d=>d.title?d:{...d,title:e("calview.untitled")}),[E,e]),i=C?E.find(d=>d.key===C.key)??null:null;S.current=i;const f=(d,R)=>p({key:d,at:R}),k=()=>{const d=Tt(M,l),R=a.find(H=>H.db.path===d)??a.find(H=>!H.db.isNoteView)??a[0]??null;return R?{db:R.db,dateCol:R.dateCol}:null},w=k(),q=async(d,R,H)=>{const Y=k();if(!Y)return;const{db:O,dateCol:o}=Y;let r;if(R===null)r=J(d,!0);else{const j=G(Q(d),R);r=`${J(j,!1)}/${J(G(j,30),!1)}`}const m=await Nt(O,o,r,e("calview.newEventTitle"));f(`${O.path}::${m}`,H)};n.useEffect(()=>{const d=R=>{const H=R.target;if(H&&H.closest("input, textarea, select, [contenteditable]"))return;const Y=Wn(R);if(!Y)return;const O=S.current;switch(Y.kind){case"copy":O&&!O.readonly&&(P.current={db:O.db,rowId:O.row.rowId});break;case"paste":P.current&&St(P.current.db,P.current.rowId);break;case"delete":O&&!O.readonly&&(Xt(O.db,O.row,O.title),p(null));break;case"prev":I.current?.prev();break;case"next":I.current?.next();break;case"mode":te.getState().setMode(Y.mode);break}R.preventDefault()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[]);const W=n.useRef(null),[X,F]=n.useState(7);n.useLayoutEffect(()=>{const d=W.current;if(!d)return;const R=()=>{const Y=d.clientWidth-52;F(Y>=784?7:Y>=396?3:1)};R();const H=new ResizeObserver(R);return H.observe(d),()=>H.disconnect()},[]);const V=Math.min(c==="week"?7:c==="3day"?3:1,X);return s.jsxs("div",{className:"amx-cal",ref:W,children:[s.jsx(Vt,{children:s.jsxs("header",{className:"amx-cal-bar",children:[s.jsx("div",{className:"amx-cal-nav",children:s.jsx("span",{className:"amx-cal-title",ref:K})}),s.jsxs("div",{className:"amx-cal-modes",children:[s.jsx(ce,{size:"sm",variant:"primary",icon:s.jsx(Qt,{size:14}),label:e("calview.new"),isDisabled:!w,tooltip:w?e("calview.newInto",{name:w.db.name}):e("calview.noDbHint"),onClick:d=>{const R=new Date,H=G(Q(R),be(R.getHours()*60+R.getMinutes()+15)),Y=oe(d);q(Q(H),H.getHours()*60+H.getMinutes(),Y)}}),s.jsx(ce,{size:"sm",variant:"secondary",label:e("calview.today"),onClick:()=>I.current?.today()}),s.jsx(ce,{size:"sm",variant:"ghost",isIconOnly:!0,icon:s.jsx(wt,{size:14}),label:e("calview.prevPage"),onClick:()=>I.current?.prev()}),s.jsx(ce,{size:"sm",variant:"ghost",isIconOnly:!0,icon:s.jsx(jt,{size:14}),label:e("calview.nextPage"),onClick:()=>I.current?.next()}),s.jsx(Se,{button:{label:Ne.find(d=>d.id===c)?.label??"周",variant:"secondary",size:"sm"},menuWidth:168,children:Ne.map(d=>s.jsx(ie,{icon:c===d.id?s.jsx($t,{size:14}):s.jsx("span",{style:{display:"inline-block",width:14}}),label:d.label,endContent:s.jsx(it,{keys:d.key}),onClick:()=>g(d.id)},d.id))}),c!=="month"&&s.jsx("span",{className:"amx-cal-density",children:s.jsxs(Se,{button:{label:e("calview.density"),variant:"ghost",size:"sm"},menuWidth:176,children:[s.jsx(ie,{icon:s.jsx(Ut,{size:14}),label:e("calview.zoomOut"),onClick:()=>T(v-8)}),s.jsx(ie,{icon:s.jsx(_t,{size:14}),label:e("calview.zoomIn"),onClick:()=>T(v+8)}),s.jsx(ie,{icon:s.jsx(Zt,{size:14}),label:e("calview.densityReset"),endContent:`${v}px`,onClick:()=>T(Bt)})]})})]})]})}),N.length===0&&s.jsx("div",{className:"amx-cal-empty",children:e(w?"calview.empty":"calview.emptyNoDb")}),c==="month"?s.jsx(Vn,{ref:I,anchorRef:A,events:N,selectedKey:C?.key??null,onPick:f,onCreate:(d,R)=>{q(d,null,R)},titleRef:K},`dow${t}`):s.jsx(On,{ref:I,n:V,weekStartDow:c==="week"&&V===7?t:null,events:N,selectedKey:C?.key??null,onPick:f,onCreate:(d,R,H)=>{q(d,R,H)},titleRef:K}),i&&C&&s.jsx(Yt,{ev:i,at:C.at,onClose:()=>p(null)})]})}const On=n.forwardRef(function({n:t,weekStartDow:a,events:u,selectedKey:x,onPick:z,onCreate:$,titleRef:y},M){const{t:l}=ze(),c=n.useRef(null),g=n.useRef(null),[v,T]=n.useState(0),[D,C]=n.useState(0),p=te(o=>o.hourPx),K=te(o=>o.setVisibleRange),I=()=>{g.current&&c.current&&(g.current.style.transform=`translateY(${-c.current.scrollTop}px)`)},A=n.useMemo(()=>Q(new Date),[]),S=n.useMemo(()=>{const o=ae(A,-ke);return Array.from({length:ke*2+1},(r,m)=>ae(o,m))},[A]),P=o=>a==null?o:Math.max(0,o-(S[o].getDay()-a+7)%7),h=n.useRef(ke),E=n.useRef(void 0),N=n.useRef(!1),i=n.useRef(""),f=n.useRef(-1),k=n.useRef(null),w=()=>{k.current&&(k.current.style.display="none")},q=n.useRef(null),[W,X]=n.useState(()=>{const o=new Date;return o.getHours()*60+o.getMinutes()});n.useEffect(()=>{const o=setInterval(()=>{const r=new Date;X(r.getHours()*60+r.getMinutes())},3e4);return()=>clearInterval(o)},[]),n.useEffect(()=>()=>K(null,null),[K]);const F=()=>{const o=c.current;if(!o||!v)return;const r=Math.max(0,Math.min(S.length-t,Math.round(o.scrollLeft/v)));h.current=r;const m=It(Qe(S[r],t));m!==i.current&&(i.current=m,y.current&&(y.current.textContent=m)),r*8+t!==f.current&&(f.current=r*8+t,K(J(S[r],!0),J(S[Math.min(S.length-1,r+t-1)],!0)))};n.useLayoutEffect(()=>{const o=c.current;if(!o)return;const r=t===7?112:t===3?132:180,m=()=>T(Math.max(r,o.clientWidth/t));m();const j=new ResizeObserver(m);return j.observe(o),()=>j.disconnect()},[t]),n.useLayoutEffect(()=>{const o=c.current;if(!o)return;const r=o.querySelector(".amx-cal-daycol2");r&&C(Math.max(0,r.offsetTop-(le+14)))},[u,v,t]),n.useLayoutEffect(()=>{const o=c.current;if(!(!o||!v)){if(!N.current){h.current=ke,N.current=!0;const r=o.querySelector(".amx-cal-daycol2"),m=r?r.offsetTop:le+14;o.scrollTop=Math.max(0,m+W/60*p-o.clientHeight/2)}E.current!==a&&(E.current=a,h.current=P(h.current)),o.scrollLeft=h.current*v,F(),I()}},[v,a]);const V=n.useRef(p);n.useLayoutEffect(()=>{const o=c.current,r=V.current;if(V.current=p,!o||r===p)return;const m=o.querySelector(".amx-cal-daycol2"),j=m?m.offsetTop:le+14,b=o.clientHeight/2,L=(o.scrollTop+b-j)/r;o.scrollTop=Math.max(0,j+L*p-b),I()},[p]),n.useEffect(()=>{const o=c.current;if(!o)return;const r=m=>{if(!m.ctrlKey&&!m.metaKey)return;m.preventDefault();const j=te.getState();j.setHourPx(j.hourPx*(m.deltaY<0?1.12:1/1.12))};return o.addEventListener("wheel",r,{passive:!1}),()=>o.removeEventListener("wheel",r)},[]),n.useImperativeHandle(M,()=>({prev:()=>c.current?.scrollBy({left:-t*v,behavior:"smooth"}),next:()=>c.current?.scrollBy({left:t*v,behavior:"smooth"}),today:()=>c.current?.scrollTo({left:P(ke)*v,behavior:"smooth"}),goto:o=>{if(!v)return;const r=Math.min(S.length-t,P(Math.max(0,Math.min(S.length-1,$e(Q(o),S[0])))));c.current?.scrollTo({left:r*v,behavior:"smooth"})}}),[t,v,S,a]);const d=(o,r)=>{if(r.stopPropagation(),o.readonly)return;const m=r.currentTarget,j=m.getBoundingClientRect(),b=xe(m)||1,L=(r.clientY-j.top)/b,B=L<_e?"start":j.height/b-L<_e?"end":"move",ne=We(o.start,o.end,p),U=Math.max(14,ne.height),ue=m.querySelector(".amx-cal-event-t");m.setPointerCapture(r.pointerId),m.classList.add("dragging"),q.current={mode:B,ev:o,el:m,tEl:ue,t0:ue?.textContent??"",x0:r.clientX,y0:r.clientY,zoom:b,top0:ne.top,h0:U,grabOffY:L,durMin:Math.round(U/p*60),msDur:o.end?o.end.getTime()-o.start.getTime():0,dyMin:0,moved:!1,target:null}},R=o=>{const r=q.current;if(!r)return;if(r.mode==="move"){const b=(o.clientX-r.x0)/r.zoom,L=(o.clientY-r.y0)/r.zoom;(Math.abs(b)>3||Math.abs(L)>3)&&(r.moved=!0),r.el.style.transform=`translate(${b}px, ${L}px)`;const B=c.current;if(!B||!v)return;const ne=B.getBoundingClientRect(),U=xe(B)||1,ue=Math.max(0,Math.min(S.length-1,Math.floor(((o.clientX-ne.left)/U+B.scrollLeft)/v))),Le=le+14+D,dt=(o.clientY-ne.top)/U-r.grabOffY+B.scrollTop-Le,Ee=Math.max(0,Math.min(1440-r.durMin,be(dt/p*60)));r.target={iso:J(S[ue],!0),topMin:Ee};const se=k.current;if(se&&(se.style.display="block",se.style.left=`${ue*v}px`,se.style.width=`${v}px`,se.style.top=`${Le+Ee/60*p}px`,se.style.height=`${r.h0}px`),r.moved){const De=G(Q(S[ue]),Ee),Pe=r.msDur?`${Z(De)}–${Z(new Date(De.getTime()+r.msDur))}`:Z(De);r.tEl&&(r.tEl.textContent=Pe),se&&(se.textContent=Pe)}return}const m=be((o.clientY-r.y0)/r.zoom/p*60);r.dyMin=m;const j=m/60*p;if(r.mode==="end"?r.el.style.height=`${Math.max(14,r.h0+j)}px`:(r.el.style.top=`${r.top0+j}px`,r.el.style.height=`${Math.max(14,r.h0-j)}px`),m!==0&&r.tEl){const b=r.ev.end??G(r.ev.start,60);if(r.mode==="end"){let L=G(b,m);L.getTime()<=r.ev.start.getTime()&&(L=G(r.ev.start,15)),r.tEl.textContent=`${Z(r.ev.start)}–${Z(L)}`}else{let L=G(r.ev.start,m);L.getTime()>=b.getTime()&&(L=G(b,-15)),r.tEl.textContent=`${Z(L)}–${Z(b)}`}}},H=(o,r)=>{const m=q.current;if(q.current=null,!m){o.readonly&&z(o.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||z(o.key,oe(r));return}const b=G(Q(me(m.target.iso)),m.target.topMin);Me(o,b,o.end?new Date(b.getTime()+m.msDur):null);return}if(m.dyMin===0){m.tEl&&(m.tEl.textContent=m.t0);return}const j=o.end??G(o.start,60);if(m.mode==="end"){let b=G(j,m.dyMin);b.getTime()<=o.start.getTime()&&(b=G(o.start,15)),Me(o,o.start,b)}else{let b=G(o.start,m.dyMin);b.getTime()>=j.getTime()&&(b=G(j,-15)),Me(o,b,j)}},Y=o=>{o.stopPropagation(),o.currentTarget.setPointerCapture(o.pointerId)},O=(o,r)=>{if(o.readonly){z(o.key,oe(r));return}const m=document.elementFromPoint(r.clientX,r.clientY)?.closest(".amx-cal-daycol2"),j=m?.getAttribute("data-date");if(m&&j){const b=m.getBoundingClientRect(),L=Math.max(0,Math.min(1410,be((r.clientY-b.top)/(xe(m)||1)/p*60))),B=G(Q(me(j)),L);tt(o.db,o.row.rowId,o.colId,`${J(B,!1)}/${J(G(B,30),!1)}`);return}z(o.key,oe(r))};return s.jsxs("div",{className:"amx-cal-timerow",style:{"--amx-hour-px":`${p}px`},children:[s.jsx("div",{className:"amx-cal-gutterfixed",children:s.jsxs("div",{className:"amx-cal-gutterinner",children:[s.jsx("div",{className:"amx-cal-gcorner",style:{height:le+14}}),s.jsx("div",{className:"amx-cal-gallday",style:{height:D},children:l("calview.allDay")}),s.jsxs("div",{className:"amx-cal-ghours",ref:g,children:[qe.map(o=>s.jsx("div",{className:"amx-cal-hour",style:{height:p},children:o===0?"":`${o}:00`},o)),s.jsxs("span",{className:"amx-cal-nowlabel",style:{top:W/60*p},children:[String(Math.floor(W/60)).padStart(2,"0"),":",String(W%60).padStart(2,"0")]})]})]})}),s.jsx("div",{className:"amx-cal-tscroll",ref:c,onScroll:()=>{F(),I()},children:s.jsxs("div",{className:"amx-cal-tgrid2",style:{gridTemplateColumns:`repeat(${S.length}, ${v}px)`,gridTemplateRows:`${le+14}px auto ${qe.length*p}px`},children:[S.map(o=>s.jsxs("div",{className:`amx-cal-thead2${fe(o,A)?" today":""}`,children:[s.jsx("span",{className:"amx-cal-tdow",children:Rt(o.getDay())}),s.jsxs("span",{className:"amx-cal-tdate",children:[o.getMonth()+1,"/",o.getDate()]})]},+o)),S.map(o=>s.jsx("div",{className:"amx-cal-allday2",children:u.filter(r=>r.allDay&&et(r.start,r.end,o)).map(r=>s.jsx("button",{className:`amx-cal-chip-ev amx-cal-alldrag${r.readonly?" readonly":""}${x===r.key?" selected":""}${ut(r,o)}`,style:Ce(r.color),"aria-label":l("calview.a11yAllDayEvent",{title:r.title}),title:r.readonly?r.title:l("calview.allDayDragHint",{title:r.title}),onPointerDown:Y,onPointerUp:m=>O(r,m),children:r.title},r.key))},+o)),S.map(o=>s.jsxs("div",{className:"amx-cal-daycol2","data-date":J(o,!0),onDoubleClick:r=>{if(r.target.closest(".amx-cal-event"))return;const m=r.currentTarget.getBoundingClientRect(),j=xe(r.currentTarget)||1,b=Math.max(0,Math.min(1410,be((r.clientY-m.top)/j/p*60)));$(o,b,{left:r.clientX,top:r.clientY,right:r.clientX,bottom:r.clientY,zoom:j})},children:[(()=>{const r=u.filter(j=>!j.allDay&&fe(j.start,o)),m=Hn(r);return r.map(j=>{const b=We(j.start,j.end,p),L=m.get(j.key)??{leftPct:0,widthPct:100};return s.jsxs("button",{className:`amx-cal-event${j.readonly?" readonly":""}${x===j.key?" selected":""}`,style:{...Ce(j.color),top:b.top,height:Math.max(14,b.height),left:`calc(${L.leftPct}% + 2px)`,width:`calc(${L.widthPct}% - 4px)`},"aria-label":j.end?l("calview.a11yEventRange",{title:j.title,start:Z(j.start),end:Z(j.end)}):l("calview.a11yEvent",{title:j.title,time:Z(j.start)}),title:j.title,onPointerDown:B=>d(j,B),onPointerMove:R,onPointerUp:B=>H(j,B),children:[s.jsxs("span",{className:"amx-cal-event-t",children:[Z(j.start),j.end?`–${Z(j.end)}`:""]}),s.jsx("span",{className:"amx-cal-event-title",children:j.title})]},j.key)})})(),s.jsx("div",{className:`amx-cal-nowline${fe(o,A)?" today":""}`,style:{top:W/60*p}})]},+o)),s.jsx("div",{className:"amx-cal-dropghost",ref:k})]})})]})}),Vn=n.forwardRef(function({anchorRef:t,events:a,selectedKey:u,onPick:x,onCreate:z,titleRef:$},y){const{t:M}=ze(),l=n.useRef(null),[c,g]=n.useState(0),v=te(i=>i.setVisibleRange),T=n.useMemo(()=>Q(new Date),[]),D=n.useMemo(()=>{const i=ae(Te(T),-Ze*7);return Array.from({length:Ze*2+1},(f,k)=>ae(i,k*7))},[T]),C=n.useRef(!1),[p,K]=n.useState(null),I=n.useRef(""),A=n.useRef(-1);n.useEffect(()=>()=>v(null,null),[v]);const S=(i,f)=>Math.round($e(Te(new Date(i,f,1)),D[0])/7),P=()=>{const i=l.current;if(!i||!c)return;const f=Math.max(0,Math.min(D.length-1,Math.round(i.scrollTop/c))),k=ae(D[f],3),w=At(k);if(t&&(t.current={y:k.getFullYear(),m:k.getMonth()}),w!==I.current&&(I.current=w,$.current&&($.current.textContent=w)),f!==A.current){A.current=f;const q=Math.max(1,Math.round(i.clientHeight/c)),W=D[Math.min(D.length-1,f+q-1)];v(J(D[f],!0),J(ae(W,6),!0))}};n.useLayoutEffect(()=>{const i=l.current;if(!i)return;const f=()=>g(Math.max(64,(i.clientHeight-le)/6));f();const k=new ResizeObserver(f);return k.observe(i),()=>k.disconnect()},[]),n.useLayoutEffect(()=>{const i=l.current;if(!i||!c||C.current)return;C.current=!0;const f=t?.current;if(f){let k=Math.max(0,Math.min(D.length-1,S(f.y,f.m)));ae(D[k],3).getMonth()!==f.m&&k+1<D.length&&(k+=1),i.scrollTop=k*c}else i.scrollTop=S(T.getFullYear(),T.getMonth())*c;P()},[c]),n.useImperativeHandle(y,()=>({prev:()=>h(-1),next:()=>h(1),today:()=>l.current?.scrollTo({top:S(T.getFullYear(),T.getMonth())*c,behavior:"smooth"}),goto:i=>{if(!c)return;const f=Math.max(0,Math.min(D.length-1,Math.round($e(Te(i),D[0])/7)));l.current?.scrollTo({top:f*c,behavior:"smooth"})}}),[c]);const h=i=>{const f=l.current;if(!f||!c)return;const k=Math.max(0,Math.min(D.length-1,Math.round(f.scrollTop/c))),w=ae(D[k],3);f.scrollTo({top:Math.max(0,S(w.getFullYear(),w.getMonth()+i))*c,behavior:"smooth"})},E=i=>{i.stopPropagation(),i.currentTarget.setPointerCapture(i.pointerId)},N=(i,f)=>{const k=oe(f);if(i.readonly){x(i.key,k);return}const q=document.elementFromPoint(f.clientX,f.clientY)?.closest(".amx-cal-mcell")?.getAttribute("data-date");if(q){const W=$e(me(q),i.start);if(W!==0){Me(i,He(i.start,W),i.end?He(i.end,W):null);return}}x(i.key,k)};return s.jsxs("div",{className:"amx-cal-mscroll",ref:l,onScroll:P,children:[s.jsx("div",{className:"amx-cal-weekhead2",children:Mt().map(i=>s.jsx("div",{children:i},i))}),s.jsx("div",{className:"amx-cal-mweeks",children:D.map(i=>s.jsx("div",{className:"amx-cal-mweek",style:{height:c},children:Qe(i,7).map(f=>{const k=a.filter(w=>et(w.start,w.end,f));return s.jsxs("div",{className:`amx-cal-mcell${fe(f,T)?" today":""}`,"data-date":J(f,!0),onDoubleClick:w=>{w.target.closest(".amx-cal-chip-ev")||z(f,{left:w.clientX,top:w.clientY,right:w.clientX,bottom:w.clientY,zoom:xe(w.currentTarget)||1})},children:[s.jsx("div",{className:"amx-cal-mnum",children:f.getDate()===1?M("calview.monthFirst",{m:f.getMonth()+1}):f.getDate()}),k.slice(0,3).map(w=>s.jsxs("button",{className:`amx-cal-chip-ev${w.readonly?" readonly":""}${u===w.key?" selected":""}${ut(w,f)}`,style:Ce(w.color),title:w.title,"aria-label":!w.allDay&&fe(w.start,f)?M("calview.a11yEvent",{title:w.title,time:Z(w.start)}):w.title,onPointerDown:E,onPointerUp:q=>N(w,q),children:[!w.allDay&&fe(w.start,f)&&s.jsx("span",{className:"amx-cal-chip-t",children:Z(w.start)})," ",w.title]},w.key)),k.length>3&&s.jsx("button",{className:"amx-cal-more","aria-label":M("calview.a11yMoreEvents",{m:f.getMonth()+1,d:f.getDate(),n:k.length}),onClick:w=>K({day:f,events:k,at:oe(w)}),children:M("calview.moreItems",{n:k.length-3})})]},+f)})},+i))}),p&&s.jsx(Bn,{day:p.day,events:p.events,at:p.at,onPick:(i,f)=>{K(null),x(i,f)},onClose:()=>K(null)})]})});function Bn({day:e,events:t,at:a,onPick:u,onClose:x}){const{t:z}=ze(),$=292,y=a.zoom||1,M=12*y,l=Math.max(M,Math.min(a.left,window.innerWidth-$*y-M))/y,c=Math.max(M,Math.min(a.bottom+6*y,window.innerHeight-356*y-M))/y,g=n.useRef(null),v=n.useRef(x);return v.current=x,n.useEffect(()=>{const T=document.activeElement instanceof HTMLElement?document.activeElement:null;g.current?.querySelector(".amx-cal-agenda-list > button")?.focus();const D=C=>{C.key==="Escape"&&(C.preventDefault(),v.current())};return window.addEventListener("keydown",D),()=>{window.removeEventListener("keydown",D),T?.focus()}},[]),s.jsx("div",{className:"amx-cal-agenda-overlay",onMouseDown:x,children:s.jsxs("section",{className:"amx-cal-agenda",ref:g,role:"dialog","aria-modal":"true","aria-label":z("calview.a11yDayEvents",{m:e.getMonth()+1,d:e.getDate()}),style:{left:l,top:c,width:$},onMouseDown:T=>T.stopPropagation(),children:[s.jsxs("header",{children:[s.jsx("strong",{children:z("calview.dayHeading",{m:e.getMonth()+1,d:e.getDate()})}),s.jsx("button",{onClick:x,"aria-label":z("calview.closeAgenda"),children:"×"})]}),s.jsx("div",{className:"amx-cal-agenda-list",children:t.map(T=>s.jsxs("button",{style:Ce(T.color),onClick:D=>u(T.key,oe(D)),children:[s.jsx("span",{className:"amx-cal-agenda-time",children:T.allDay?z("calview.allDay"):Z(T.start)}),s.jsx("span",{children:T.title})]},T.key))})]})})}export{rs as CalendarView,Vn as MonthScroll};
|