@forsion/unit 2.12.2 → 2.13.0
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/README.md +61 -0
- package/backendWorker.mjs +6 -2
- package/main.mjs +987 -495
- package/package.json +1 -1
- package/release.json +5 -5
- package/web/assets/ArtificialView-BSv3Mx5C.js +1 -0
- package/web/assets/{AutomationBuilder-sxWdUa0L.js → AutomationBuilder-BuiHtVB-.js} +1 -1
- package/web/assets/CalendarConfigView-BJtG6cqN.js +1 -0
- package/web/assets/CalendarView-C-FX1RED.js +1 -0
- package/web/assets/CapabilityMenu-kx1TIJYN.js +1 -0
- package/web/assets/{CheckboxInput-BsaoUHZ0.js → CheckboxInput-eW7xdiRS.js} +1 -1
- package/web/assets/Chrome-B77-lQyh.js +1 -0
- package/web/assets/{CodeView-j065KtVh.js → CodeView-Df3AiSIi.js} +3 -3
- package/web/assets/DashboardGridView-MlO1dpuo.js +17 -0
- package/web/assets/{EventCard-BmDQkEj9.js → EventCard-CDmeCbI8.js} +1 -1
- package/web/assets/ExcalidrawCanvas-D9vkBh_5.js +1 -0
- package/web/assets/{FloatingToc-CENybkAA.js → FloatingToc-tART_jC4.js} +1 -1
- package/web/assets/HomepageView-Trqmd3RV.js +1 -0
- package/web/assets/ImageStudioPanels-BfCVTnKC.js +3 -0
- package/web/assets/ImageStudioView-KJhx0wJk.js +1 -0
- package/web/assets/InlineFiles-BHwivGbQ.js +1 -0
- package/web/assets/MarkdownBlock--__nPQGh.css +1 -0
- package/web/assets/MarkdownBlock-D8LgHFYY.js +58 -0
- package/web/assets/ModelPill-DrW2cG0l.js +2 -0
- package/web/assets/MuseLibraryView-CW78Uivf.js +2 -0
- package/web/assets/{MuseView-d-iBk3sc.js → MuseView-Cb6R_l4i.js} +2 -2
- package/web/assets/{PageHistoryPanel-CR-k1AM7.js → PageHistoryPanel-BQs9IWTP.js} +2 -2
- package/web/assets/PdfAnnotator-BFTBkxvO.js +505 -0
- package/web/assets/PdfAnnotator-C_kglLCA.css +1 -0
- package/web/assets/{ProductView-u2aezVsl.js → ProductView-mB-S0j81.js} +1 -1
- package/web/assets/RightPanel-BVZeVO3c.js +4 -0
- package/web/assets/RunLocationPicker-BE5mxnab.css +1 -0
- package/web/assets/RunLocationPicker-CyVa0RJa.js +38 -0
- package/web/assets/{SidebarRow-BuSkKH5q.js → SidebarRow-D77yrSLf.js} +1 -1
- package/web/assets/{SketchCard-D87GADyG.js → SketchCard-CAAr_cqF.js} +5 -5
- package/web/assets/{StudioGuestSurface-BijU_EEb.js → StudioGuestSurface-DthpuVGg.js} +1 -1
- package/web/assets/{TodoListView-DPPVpPUn.js → TodoListView-C3ZkMIIf.js} +1 -1
- package/web/assets/{Tooltip-DY4ISA-e.js → Tooltip-D9Dt9ZTr.js} +1 -1
- package/web/assets/UnifiedPage-C75y-MKT.js +68 -0
- package/web/assets/UnifiedPage-CWXc_mo1.css +1 -0
- package/web/assets/{amadeus-manual.en-DWaN2fPs.js → amadeus-manual.en-D5wZKuag.js} +3 -3
- package/web/assets/{amadeus-manual.zh--7D5TS8X.js → amadeus-manual.zh-Br5fidrj.js} +3 -3
- package/web/assets/{appStore-Dg9WALEA.js → appStore-B1ynyt42.js} +186 -120
- package/web/assets/appStore-BC_CQv-L.css +1 -0
- package/web/assets/{arrow-up-right-CpQs92mu.js → arrow-up-right-R10mR2I6.js} +1 -1
- package/web/assets/{astryxBridge-BZhaZPs4.js → astryxBridge-CU_kQTEl.js} +3 -3
- package/web/assets/automationListSource-B8EIRmDW.js +1 -0
- package/web/assets/book-open-DBJ3dDpw.js +1 -0
- package/web/assets/{calendarNavStore-C7fGRpoH.js → calendarNavStore-DGvUlU5N.js} +1 -1
- package/web/assets/{canvasPrefs-BeG4oEgP.js → canvasPrefs-DwL_OAAo.js} +1 -1
- package/web/assets/chatBoxSurface-Lq-2qfd3.js +1 -0
- package/web/assets/{circle-question-mark-WL3vbp-Z.js → circle-question-mark-HPZpZQxd.js} +1 -1
- package/web/assets/{circle-x-D7s-M5sB.js → circle-x-BZfe7d6S.js} +1 -1
- package/web/assets/{client-BSKpsyAw.js → client-DxGbwZLy.js} +1 -1
- package/web/assets/{code-xml-BALV9u_c.js → code-xml-joKQ-qGS.js} +1 -1
- package/web/assets/{codeStudioStore-C2mWfm32.js → codeStudioStore-C7rGKlOC.js} +1 -1
- package/web/assets/codingNavigation-CZB4v1ZW.css +1 -0
- package/web/assets/codingNavigation-CjeWG4xm.js +47 -0
- package/web/assets/{create-4xUyKtAF.js → create-BjBRKATq.js} +4 -4
- package/web/assets/dashboardSurface-Cojgf_-U.js +1 -0
- package/web/assets/{deskCapture-Df701U8L.js → deskCapture-DnGWk1iq.js} +1 -1
- package/web/assets/{diff2html-BV-zCH4d.js → diff2html-Cd1rVi_Z.js} +1 -1
- package/web/assets/{docx-preview-DW4IyU_Q.js → docx-preview-CK0k1mUD.js} +1 -1
- package/web/assets/{emoji-DGaxpCIu.js → emoji-Cjm3bKiF.js} +1 -1
- package/web/assets/floatingTocSurface-Dd1pT5j5.js +1 -0
- package/web/assets/foldActions-Dm-uAt3L.js +1 -0
- package/web/assets/folder-CvZyHIgb.js +1 -0
- package/web/assets/{folder-plus-D1TDb7k9.js → folder-plus-BRScGQ9m.js} +1 -1
- package/web/assets/gestures-CZQVefU0.js +1 -0
- package/web/assets/{hand-Crrw-nSn.js → hand-D3QspKYq.js} +1 -1
- package/web/assets/{hard-drive-BbyVSbfP.js → hard-drive-BQsHSala.js} +1 -1
- package/web/assets/i18n-ecQQxiMQ.css +1 -0
- package/web/assets/i18n.generated-BZRHO2Nc.js +15 -0
- package/web/assets/imageStudio--KF9gwHA.css +1 -0
- package/web/assets/imageStudio-Cy3_437s.js +2 -0
- package/web/assets/{index-CflzrdSt.js → index-0AYHATDX.js} +1 -1
- package/web/assets/{index-Dg9oixs4.js → index-1FhRiJ_X.js} +1 -1
- package/web/assets/{index-CqyM6tQ0.js → index-4E9nrhwf.js} +1 -1
- package/web/assets/{index-Cmr7gVZQ.js → index-8ag1K7AZ.js} +1 -1
- package/web/assets/{index-SZ5waGAq.js → index-9BmmlTjY.js} +1 -1
- package/web/assets/{index-CzM-C2Sd.js → index-B5GxvbNm.js} +1 -1
- package/web/assets/{index-DKhyDkGB.js → index-BPhwi4-v.js} +1 -1
- package/web/assets/index-BaRySZ-M.js +1 -0
- package/web/assets/{index-Brik2pf9.js → index-BcVGjCAJ.js} +1 -1
- package/web/assets/{index-OHi69jDq.js → index-BdZaheMZ.js} +1 -1
- package/web/assets/{index-D1f_JwPH.js → index-BgDZGDqt.js} +1 -1
- package/web/assets/{index-C6GJulug.js → index-BgtO11q8.js} +1 -1
- package/web/assets/{index-CF4RV4mh.js → index-Bh_nLVTc.js} +90 -90
- package/web/assets/{index-DjzSBM0U.js → index-BnWj6ggb.js} +1 -1
- package/web/assets/{index-BRW82CsP.js → index-Bpc3R3DS.js} +1 -1
- package/web/assets/{index-BCZZVJ_w.js → index-C9yo04Ck.js} +1 -1
- package/web/assets/{index--drOLtq7.js → index-CcOag8eb.js} +1 -1
- package/web/assets/{index-Czu_bbDM.js → index-D0FLFLfh.js} +1 -1
- package/web/assets/{index-KL5Rj9kP.js → index-D6mpAJ9S.js} +1 -1
- package/web/assets/{index-tAXBa_fN.js → index-DElrDw66.js} +1 -1
- package/web/assets/{index-DUWR2nZi.js → index-DJLWTPtq.js} +1 -1
- package/web/assets/{index-gPSbFSUn.js → index-DNE_PBJt.js} +1 -1
- package/web/assets/index-Dj-PygjB.js +1 -0
- package/web/assets/{index-BYsdKR_1.js → index-Dkd-nl1u.js} +1 -1
- package/web/assets/{index-C7U6T-k8.js → index-GjLSlygt.js} +1 -1
- package/web/assets/{invitePage-lLQ-e0pj.js → invitePage-B4gMvEKi.js} +1 -1
- package/web/assets/{ipc-DQOD2UKk.js → ipc-CPhL3bPp.js} +1 -1
- package/web/assets/{jszip.min-DZxV9uZ_.js → jszip.min-DAJT9RUA.js} +1 -1
- package/web/assets/launchpad-C2c1MSVX.css +1 -0
- package/web/assets/{layout-grid-B_pjJwz4.js → layout-grid-DfUfnvDS.js} +1 -1
- package/web/assets/{linkFollow-C0_3k_PC.js → linkFollow-C6PHGUxk.js} +5 -5
- package/web/assets/{list-tree-DkAJYEXd.js → list-tree-DaGpnIYu.js} +1 -1
- package/web/assets/{listFold-BsOVn9UZ.js → listFold-Q_8mh5ZG.js} +1 -1
- package/web/assets/{lock-BnGHxjeE.js → lock-DQ_yL4nF.js} +1 -1
- package/web/assets/{log-out-DBuMeqik.js → log-out-DFwTeh2X.js} +1 -1
- package/web/assets/main-CwqZ_ymb.js +19 -0
- package/web/assets/markdownEditorSurface-e_oMhqx-.js +3 -0
- package/web/assets/mdMarkStore-DjN4bf1T.js +2 -0
- package/web/assets/{mdMarks-Bq7Hl-4C.js → mdMarks-cmL6vzR-.js} +1 -1
- package/web/assets/{message-square-plus-BiAZAvcw.js → message-square-plus-CEHkduIL.js} +1 -1
- package/web/assets/{messages-BH5MfQdZ.js → messages-CBtmbpur.js} +1 -1
- package/web/assets/minus-BUT48dAC.js +1 -0
- package/web/assets/mobileEntry-qR7BAROr.js +13 -0
- package/web/assets/nativeDownload-CziEyW_p.js +1 -0
- package/web/assets/{pageChrome-xLNdFaSg.css → pageChrome-CovzZPdb.css} +1 -1
- package/web/assets/pageChrome-DFz_AAzZ.js +1 -0
- package/web/assets/{pageTree-CZH2J6cc.js → pageTree-yVO1_fSy.js} +2 -2
- package/web/assets/{pen-tool-lkmBqliH.js → pen-tool-uxsFELYC.js} +1 -1
- package/web/assets/{pencil-Cvk91P_Z.js → pencil-BSbra1Ra.js} +1 -1
- package/web/assets/pluginChat-BMFnf_j2.js +2 -0
- package/web/assets/{redo-2-DSi54z4e.js → redo-2-BK5LMNa5.js} +1 -1
- package/web/assets/{rotate-ccw-CUlnplr0.js → rotate-ccw-HedfU4na.js} +1 -1
- package/web/assets/{sharePage-MM6UpPJ9.js → sharePage-CpzDpuU1.js} +2 -2
- package/web/assets/{shareViewer-CDZ8lTdy.js → shareViewer-BwzH2bIs.js} +1 -1
- package/web/assets/{star-CwDiGyUW.js → star-CgYon3z4.js} +1 -1
- package/web/assets/tableSurface-CmDwnKnd.js +1 -0
- package/web/assets/{terminal-DIXogYJY.js → terminal-krsPf1mc.js} +1 -1
- package/web/assets/{terminalView-B3aZSsrQ.js → terminalView-4e2_u5_I.js} +1 -1
- package/web/assets/theme-C6D3tMGV.css +1 -0
- package/web/assets/type-GJYLEhY-.js +1 -0
- package/web/assets/{undo-2-tUKCv5Gs.js → undo-2-DCTs4Ro4.js} +1 -1
- package/web/assets/{unitAccount-D8lVwaaT.js → unitAccount-D3xjX3cu.js} +1 -1
- package/web/assets/{unitBridge-D547ublk.js → unitBridge-D5JcIkAP.js} +1 -1
- package/web/assets/{unitCloudTransport-BVF6lVp4.js → unitCloudTransport-B44L3x6M.js} +1 -1
- package/web/assets/{unitOwnerAccess-BfnEjsZb.js → unitOwnerAccess-CRUHWGpf.js} +1 -1
- package/web/assets/{unitShim-DxetRgmP.js → unitShim-_VzxvdEG.js} +3 -3
- package/web/assets/{upload-BbeAsMuD.js → upload-MVVRQtkj.js} +1 -1
- package/web/assets/userSpaces-CI4eqEgh.js +1 -0
- package/web/assets/viewportLock-BH26xHQO.js +611 -0
- package/web/assets/viewportLock-IP1zaVkz.css +1 -0
- package/web/assets/{workflow-DuoVRSSX.js → workflow-DzeW9OXR.js} +1 -1
- package/web/assets/{zoom-in-hr5bRpDL.js → zoom-in-CovPsw4g.js} +1 -1
- package/web/index.html +212 -13
- package/web/assets/ArtificialView-B4ESD4iK.js +0 -1
- package/web/assets/CalendarConfigView-cCfo_EvZ.js +0 -1
- package/web/assets/CalendarView-wgLapctk.js +0 -1
- package/web/assets/CapabilityMenu-BQBsM638.js +0 -1
- package/web/assets/ChatView-BIUk0OJd.css +0 -1
- package/web/assets/ChatView-C-jCJnyS.js +0 -47
- package/web/assets/Chrome-CwFiDmre.js +0 -1
- package/web/assets/DashboardGridView-DXqe0vPd.js +0 -17
- package/web/assets/ExcalidrawCanvas-C3egkikA.js +0 -1
- package/web/assets/HomepageView-CRdhjLXu.js +0 -1
- package/web/assets/ImageStudioPanels-Dke7xf8E.js +0 -3
- package/web/assets/ImageStudioView-g38V8gaj.js +0 -1
- package/web/assets/InlineFiles-C_hjvn3u.js +0 -1
- package/web/assets/MarkdownBlock-DIjYEhTK.js +0 -56
- package/web/assets/ModelPill-BPlgovPo.js +0 -1
- package/web/assets/MuseLibraryView-CenyTTim.js +0 -2
- package/web/assets/PdfAnnotator-CGzC_o1Q.css +0 -1
- package/web/assets/PdfAnnotator-D79ip27w.js +0 -560
- package/web/assets/RightPanel-C3OJTIqT.js +0 -4
- package/web/assets/RunLocationPicker-BNcZ7KKF.css +0 -1
- package/web/assets/RunLocationPicker-CTYXUH2z.js +0 -34
- package/web/assets/UnifiedPage-CKNtVD_n.js +0 -57
- package/web/assets/UnifiedPage-DX_sTpyZ.css +0 -1
- package/web/assets/appStore-Di8LXuJ9.css +0 -1
- package/web/assets/automationListSource-DP5xZBxo.js +0 -1
- package/web/assets/chatBoxSurface-zvcyfrxE.js +0 -1
- package/web/assets/dashboardSurface-CFTH5z4c.js +0 -1
- package/web/assets/ellipsis-r1EcXsFq.js +0 -1
- package/web/assets/floatingTocSurface-C6RJ6i41.js +0 -1
- package/web/assets/foldActions-B7KByFdN.js +0 -1
- package/web/assets/folder-DlxnPmWY.js +0 -1
- package/web/assets/frame-_xBVYe3P.js +0 -1
- package/web/assets/gestures-CkW1Kfs9.js +0 -1
- package/web/assets/i18n-D-eU58uw.css +0 -1
- package/web/assets/i18n.generated-Bbsz16cl.js +0 -15
- package/web/assets/imageStudio-BqbNOvpu.css +0 -1
- package/web/assets/imageStudio-C_Rs630L.js +0 -2
- package/web/assets/index-BCubCwdT.js +0 -1
- package/web/assets/index-DZfZTksa.js +0 -1
- package/web/assets/main-Dki8NlsT.js +0 -21
- package/web/assets/markdownEditorSurface-B4PeUzed.js +0 -3
- package/web/assets/mdMarkStore-CsKl7C8O.js +0 -2
- package/web/assets/minus-Cyv1YzOU.js +0 -1
- package/web/assets/mobileEntry-Bd_nKr0D.js +0 -13
- package/web/assets/nativeDownload-D-f1_L2S.js +0 -1
- package/web/assets/pageChrome-C9_azUYW.js +0 -1
- package/web/assets/panel-left-rOc8As0s.js +0 -1
- package/web/assets/pen-line-m6_HvWZ9.js +0 -1
- package/web/assets/sticky-note-BIuPUSOU.js +0 -1
- package/web/assets/tableSurface-Y_JBQsuz.js +0 -1
- package/web/assets/theme-DfEi_DND.css +0 -1
- package/web/assets/type-Cqoabh7H.js +0 -1
- package/web/assets/userSpaces-DyyAn7vj.js +0 -1
- package/web/assets/viewportLock-C4SX-9PO.js +0 -103
- package/web/assets/viewportLock-DYSe7Jsn.css +0 -1
- package/web/assets/waves-horizontal-B8ZpHQ5H.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', 'custom'];
|
|
22
|
+
var SKINS = ['cream', 'coral', 'teal', 'lavender', 'zhi', '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 同口径。
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
// 首帧安全底色:值须与 desktop/frontend/index.html 的同名表一致(那份是真源)。
|
|
37
37
|
var BG = {
|
|
38
38
|
cream: ['#f8f7f6', '#2a292b'], coral: ['#fbf5ef', '#19131a'], teal: ['#f5f5f7', '#1c1c1e'],
|
|
39
|
-
lavender: ['#f4eef7', '#1e1a29'], zhi: ['#ffffff', '#141414'], custom: ['#f6f6f7', '#1b1b1d']
|
|
39
|
+
lavender: ['#f4eef7', '#1e1a29'], zhi: ['#ffffff', '#141414'], 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 */ }
|
|
@@ -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-Bh_nLVTc.js"></script>
|
|
240
240
|
</head>
|
|
241
241
|
<body>
|
|
242
242
|
<div id="tangu-splash" aria-hidden="true">
|
|
@@ -252,15 +252,214 @@
|
|
|
252
252
|
</svg>
|
|
253
253
|
</div>
|
|
254
254
|
<div id="root"></div>
|
|
255
|
-
<script>
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
255
|
+
<script>window.FORSION_APP_VERSION="2.13.0";// Runs inline before app modules, from one source shared by Desktop, Web and Mobile.
|
|
256
|
+
(function () {
|
|
257
|
+
var splash = document.getElementById('tangu-splash');
|
|
258
|
+
if (!splash) return;
|
|
259
|
+
var kind = new URLSearchParams(location.search).get('window');
|
|
260
|
+
if (['mini', 'floating', 'detached'].indexOf(kind) !== -1) { splash.remove(); return; }
|
|
261
|
+
var value = {};
|
|
262
|
+
try {
|
|
263
|
+
var saved = window.tangu && window.tangu.startupAppearance
|
|
264
|
+
? window.tangu.startupAppearance.initial
|
|
265
|
+
: JSON.parse(localStorage.getItem('forsion_startup_appearance_v1') || 'null');
|
|
266
|
+
if (saved && saved.version === 1) value = saved;
|
|
267
|
+
} catch (_) { /* Default brand remains visible. */ }
|
|
268
|
+
if (value.showSplash === false) { splash.remove(); return; }
|
|
269
|
+
var reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
270
|
+
var animation = ['default', 'pulse', 'spin', 'none'].indexOf(value.animation) !== -1 ? value.animation : 'default';
|
|
271
|
+
var style = document.createElement('style');
|
|
272
|
+
style.textContent = '\
|
|
273
|
+
#tangu-splash { animation: none; }\
|
|
274
|
+
#tangu-splash.out { animation: tangu-splash-out 380ms both; }\
|
|
275
|
+
@keyframes tangu-splash-out { from { opacity:1; visibility:visible; } to { opacity:0; visibility:hidden; } }\
|
|
276
|
+
#tangu-splash #panel-stack, #tangu-splash #tree-mark, #tangu-splash #tree-outline { animation-iteration-count:infinite; }\
|
|
277
|
+
#tangu-splash .tangu-splash-logo { animation: forsion-seam 1600ms linear infinite; }\
|
|
278
|
+
@keyframes forsion-seam { 0%,100% {opacity:0} 4%,92% {opacity:1} }\
|
|
279
|
+
#tangu-splash .forsion-startup-image { width:184px; height:184px; object-fit:contain; }\
|
|
280
|
+
#tangu-splash[data-custom-motion] .tangu-splash-logo, #tangu-splash[data-custom-motion] #panel-stack, #tangu-splash[data-custom-motion] #tree-mark, #tangu-splash[data-custom-motion] #tree-outline { animation:none; }\
|
|
281
|
+
#tangu-splash[data-custom-motion] #tree-outline { opacity:0; }\
|
|
282
|
+
#tangu-splash[data-custom-motion="pulse"] > :first-child { animation:forsion-pulse 1600ms ease-in-out infinite; }\
|
|
283
|
+
#tangu-splash[data-custom-motion="spin"] > :first-child { animation:forsion-spin 2200ms linear infinite; }\
|
|
284
|
+
@keyframes forsion-pulse { 0%,100% {transform:scale(.94);opacity:.65} 50% {transform:scale(1);opacity:1} }\
|
|
285
|
+
@keyframes forsion-spin { to {transform:rotate(360deg)} }\
|
|
286
|
+
@media(prefers-reduced-motion:reduce) { #tangu-splash .tangu-splash-logo, #tangu-splash #panel-stack, #tangu-splash #tree-mark, #tangu-splash #tree-outline, #tangu-splash[data-custom-motion] > :first-child { animation:none; } #tangu-splash #tree-outline {opacity:0} }\
|
|
287
|
+
#tangu-splash .fts { position:absolute; inset:0; overflow:hidden; background:inherit; }\
|
|
288
|
+
#tangu-splash .fts-view, #tangu-splash .fts-lit, #tangu-splash .fts-bloom, #tangu-splash .fts-grain, #tangu-splash .fts-cloud { position:absolute; inset:0; }\
|
|
289
|
+
#tangu-splash .fts canvas { position:absolute; }\
|
|
290
|
+
#tangu-splash .fts-lit { background:var(--fts-lit); }\
|
|
291
|
+
#tangu-splash .fts-near, #tangu-splash .fts-far { left:0; top:0; width:100%; height:100%; transform-origin:var(--fts-root); }\
|
|
292
|
+
#tangu-splash .fts-near { opacity:var(--fts-near); animation:fts-sway 5600ms ease-in-out infinite alternate; }\
|
|
293
|
+
#tangu-splash .fts-far { opacity:var(--fts-far); animation:fts-sway-far 7400ms ease-in-out -2000ms infinite alternate; }\
|
|
294
|
+
#tangu-splash .fts-wall { left:-48px; top:-48px; width:calc(100% + 96px); height:calc(100% + 96px); animation:fts-drift 18s ease-in-out infinite alternate; }\
|
|
295
|
+
#tangu-splash .fts-bloom { background:radial-gradient(ellipse 44% 58% at var(--fts-cx) var(--fts-cy), var(--fts-bloom), transparent 72%); }\
|
|
296
|
+
#tangu-splash .fts-grain { opacity:.07; background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22240%22 height=%22240%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%22.9%22 numOctaves=%222%22 stitchTiles=%22stitch%22/%3E%3CfeColorMatrix values=%220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22/%3E%3C/svg%3E"); }\
|
|
297
|
+
#tangu-splash .fts-cloud { background:inherit; opacity:0; animation:fts-clear 1700ms cubic-bezier(.4,0,.2,1) both; }\
|
|
298
|
+
#tangu-splash .fts-brand { position:absolute; left:7%; bottom:calc(9% + env(safe-area-inset-bottom, 0px)); display:flex; align-items:center; gap:.92em; color:var(--fts-word); font:500 13px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing:.42em; animation:fts-in 1100ms 500ms both; }\
|
|
299
|
+
#tangu-splash .fts-brand svg { width:1.54em; height:1.85em; fill:currentColor; }\
|
|
300
|
+
#tangu-splash .fts-brand span { display:flex; flex-direction:column; justify-content:space-between; }\
|
|
301
|
+
#tangu-splash .fts-ver { font-size:max(8px, .72em); letter-spacing:.16em; opacity:.7; }\
|
|
302
|
+
#tangu-splash .fts-verse { position:absolute; left:7%; top:calc(13% + env(safe-area-inset-top, 0px)); -webkit-writing-mode:vertical-rl; writing-mode:vertical-rl; color:var(--fts-verse); font-family:"Songti SC", "STSong", "Noto Serif CJK SC", "Noto Serif SC", "Source Han Serif SC", "SimSun", serif; line-height:1; letter-spacing:.42em; }\
|
|
303
|
+
#tangu-splash .fts-verse p { margin:0; animation:fts-in 900ms 300ms both; }\
|
|
304
|
+
#tangu-splash .fts-verse p + p { margin-block-start:1.05em; padding-inline-start:1.5em; animation-delay:600ms; }\
|
|
305
|
+
#tangu-splash .fts-verse .fts-src { font-size:.5em; letter-spacing:.3em; opacity:.72; margin-block-start:2.4em; padding:0; text-align:end; animation-delay:1000ms; }\
|
|
306
|
+
@keyframes fts-sway { from {transform:rotate(-.7deg)} to {transform:rotate(.9deg)} }\
|
|
307
|
+
@keyframes fts-sway-far { from {transform:rotate(.6deg)} to {transform:rotate(-.8deg)} }\
|
|
308
|
+
@keyframes fts-drift { from {transform:translateX(-14px)} to {transform:translateX(16px)} }\
|
|
309
|
+
@keyframes fts-clear { from {opacity:1} }\
|
|
310
|
+
@keyframes fts-in { from {opacity:0} }\
|
|
311
|
+
#tangu-splash.out .fts-view { animation:fts-open 380ms cubic-bezier(.4,0,.2,1) both; }\
|
|
312
|
+
@keyframes fts-open { to {transform:scale(1.08)} }\
|
|
313
|
+
#tangu-splash[data-still] .fts * { animation:none; }\
|
|
314
|
+
@media(prefers-reduced-motion:reduce) { #tangu-splash .fts * { animation:none; } }';
|
|
315
|
+
document.head.appendChild(style);
|
|
316
|
+
// Tree shadow, the built-in default scene: window light on a wall, branch shadows and one Fusang verse.
|
|
317
|
+
// Painted once into three canvases; afterwards only transform and opacity animate.
|
|
318
|
+
var VERSES = [
|
|
319
|
+
['汤谷上有扶桑', '十日所浴', '《山海经》'],
|
|
320
|
+
['香风送紫蕊', '直到扶桑津', '李白《拟古十二首》'],
|
|
321
|
+
['客止我且往', '濯发扶桑根', '王安石《我欲往沧海》'],
|
|
322
|
+
['万里扶桑客', '何时返故乡', '《通州望海》'],
|
|
323
|
+
['暾将出兮东方', '照吾槛兮扶桑', '《楚辞·九歌》']
|
|
324
|
+
];
|
|
325
|
+
var original = splash.firstElementChild;
|
|
326
|
+
function treeShadow(target) {
|
|
327
|
+
try {
|
|
328
|
+
var look = document.documentElement.dataset.mode === 'dark'
|
|
329
|
+
? { 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)' }
|
|
330
|
+
: { wall: '#e4d9cb', ink: '#5f4636', near: .4, far: .26, word: '#9a7c68', verse: '#6b4f3e', bloom: 'transparent', lit: 'linear-gradient(160deg, #fff7ea, #fbeede)' };
|
|
331
|
+
var W = Math.max(window.innerWidth || 0, 320), H = Math.max(window.innerHeight || 0, 320), u = Math.min(W, H) / 800;
|
|
332
|
+
var wide = W >= H, cx = W * (wide ? .6 : .58), cy = H * (wide ? .46 : .5), pw = W * (wide ? .2 : .3), ph = H * (wide ? .37 : .21);
|
|
333
|
+
// The tree is sized and rooted relative to the window light, so its branches reach the panes at any aspect ratio.
|
|
334
|
+
var rootX = cx + pw * 2.1, rootY = cy + ph * 1.946;
|
|
335
|
+
// Everything on the canvases is blurred, so a capped bitmap stretched by CSS is enough on large displays.
|
|
336
|
+
var q = Math.min(1, 1600 / Math.max(W, H));
|
|
337
|
+
// A different verse on every launch. Storage is unavailable in the sandboxed settings preview.
|
|
338
|
+
var last = -1, pick;
|
|
339
|
+
try { last = parseInt(localStorage.getItem('forsion_startup_verse'), 10); } catch (_) { /* preview */ }
|
|
340
|
+
if (!(last >= 0 && last < VERSES.length)) last = -1;
|
|
341
|
+
pick = Math.floor(Math.random() * (VERSES.length - (last < 0 ? 0 : 1)));
|
|
342
|
+
if (last >= 0 && pick >= last) pick++;
|
|
343
|
+
try { localStorage.setItem('forsion_startup_verse', String(pick)); } catch (_) { /* preview */ }
|
|
344
|
+
var mark = original.querySelector('#tree-mark');
|
|
345
|
+
// Stamped by whoever inlines this runtime (build plugin / settings preview); it goes into innerHTML, so only a plain version passes.
|
|
346
|
+
var stamp = window.FORSION_APP_VERSION;
|
|
347
|
+
var version = typeof stamp === 'string' && /^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(stamp) ? stamp : '';
|
|
348
|
+
var scene = document.createElement('div');
|
|
349
|
+
scene.className = 'fts';
|
|
350
|
+
scene.style.cssText = '--fts-lit:' + look.lit + ';--fts-near:' + look.near + ';--fts-far:' + look.far + ';--fts-bloom:' + look.bloom
|
|
351
|
+
+ ';--fts-word:' + look.word + ';--fts-verse:' + look.verse + ';--fts-cx:' + cx / W * 100 + '%;--fts-cy:' + cy / H * 100 + '%'
|
|
352
|
+
+ ';--fts-root:' + rootX / W * 100 + '% ' + rootY / H * 100 + '%';
|
|
353
|
+
scene.innerHTML = '<div class="fts-view"><div class="fts-lit"></div><canvas class="fts-far"></canvas><canvas class="fts-near"></canvas><canvas class="fts-wall"></canvas><div class="fts-bloom"></div><div class="fts-grain"></div></div><div class="fts-cloud"></div>'
|
|
354
|
+
+ '<div class="fts-verse" style="font-size:' + Math.max(17, Math.min(34, Math.min(W, H) * .031)) + 'px"><p>' + VERSES[pick][0] + '</p><p>' + VERSES[pick][1] + '</p><p class="fts-src">' + VERSES[pick][2] + '</p></div>'
|
|
355
|
+
+ '<div class="fts-brand" style="font-size:' + Math.max(9, Math.min(13, Math.min(W, H) * .02)) + 'px"><svg viewBox="210.585 128.215 588.13 706.57"><path d="' + (mark ? mark.getAttribute('d') : '') + '"/></svg><span' + (version ? ' style="height:2.1em"' : '') + '>FORSION' + (version ? '<small class="fts-ver">' + version + '</small>' : '') + '</span></div>';
|
|
356
|
+
var layers = scene.getElementsByTagName('canvas');
|
|
357
|
+
// WebKit has no canvas filter: blur the finished layer with CSS instead.
|
|
358
|
+
var blur = function (canvas, context, px) {
|
|
359
|
+
if (typeof context.filter === 'string') context.filter = 'blur(' + px * u * q + 'px)';
|
|
360
|
+
else canvas.style.filter = 'blur(' + px * u + 'px)';
|
|
361
|
+
};
|
|
362
|
+
// The shadow is cast by the same seeded tree as the website hero, rooted outside the lower right of the panes.
|
|
363
|
+
var seed = 20260707, segs = [];
|
|
364
|
+
var rnd = function () { seed = (seed * 1103515245 + 12345) & 0x7fffffff; return seed / 0x7fffffff; };
|
|
365
|
+
(function branch(x, y, a, l, d) {
|
|
366
|
+
if (d <= 0 || l < 4) return;
|
|
367
|
+
var ex = x + Math.cos(a) * l, ey = y + Math.sin(a) * l;
|
|
368
|
+
segs.push([x, y, ex, ey, d, a, rnd(), rnd()]);
|
|
369
|
+
var spread = .32 + rnd() * .16, next = l * (.75 + rnd() * .05);
|
|
370
|
+
branch(ex, ey, a - spread - rnd() * .08, next, d - 1);
|
|
371
|
+
branch(ex, ey, a + spread + rnd() * .08, next, d - 1);
|
|
372
|
+
if (rnd() > .45) branch(ex, ey, a + (rnd() - .5) * .34, next * .82, d - 1);
|
|
373
|
+
})(rootX, rootY, -Math.PI * .64, ph * 1.081, 8);
|
|
374
|
+
var shadow = function (canvas, px, from, to, leafDepth, leaf) {
|
|
375
|
+
// One blur per layer: draw sharp off-screen, then blit once through the filter.
|
|
376
|
+
var raw = document.createElement('canvas');
|
|
377
|
+
raw.width = canvas.width = Math.round(W * q); raw.height = canvas.height = Math.round(H * q);
|
|
378
|
+
var c = raw.getContext('2d'), out = canvas.getContext('2d');
|
|
379
|
+
c.scale(q, q); c.strokeStyle = c.fillStyle = look.ink; c.lineCap = 'round';
|
|
380
|
+
for (var i = 0; i < segs.length; i++) {
|
|
381
|
+
var s = segs[i];
|
|
382
|
+
if (s[4] >= from && s[4] <= to) { c.lineWidth = Math.max(1, s[4] * .95) * u; c.beginPath(); c.moveTo(s[0], s[1]); c.lineTo(s[2], s[3]); c.stroke(); }
|
|
383
|
+
if (s[4] <= leafDepth && s[6] < .62) { c.beginPath(); c.ellipse(s[2] + (s[7] - .5) * 26 * u, s[3] + (s[6] - .3) * 30 * u, leaf * (.75 + s[7] * .7) * u, leaf * (.3 + s[6] * .25) * u, s[5] + (s[7] - .5) * 2.6, 0, 7); c.fill(); }
|
|
384
|
+
}
|
|
385
|
+
blur(canvas, out, px); out.drawImage(raw, 0, 0);
|
|
386
|
+
};
|
|
387
|
+
shadow(layers[0], 12, 1, 4, 2, 15);
|
|
388
|
+
shadow(layers[1], 4, 3, 8, 3, 19);
|
|
389
|
+
// The dim wall covers everything except four slanted panes of window light with a soft penumbra.
|
|
390
|
+
var wall = layers[2], w = wall.getContext('2d'), gap = 22 * u;
|
|
391
|
+
wall.width = Math.round((W + 96) * q); wall.height = Math.round((H + 96) * q);
|
|
392
|
+
w.scale(q, q); w.fillStyle = look.wall; w.fillRect(0, 0, W + 96, H + 96);
|
|
393
|
+
w.globalCompositeOperation = 'destination-out'; blur(wall, w, 9);
|
|
394
|
+
w.translate(48 + cx, 48 + cy); w.rotate(-.04); w.transform(1, 0, -.34, 1, 0, 0);
|
|
395
|
+
for (var sx = -1; sx <= 1; sx += 2) for (var sy = -1; sy <= 1; sy += 2) w.fillRect(sx > 0 ? gap / 2 : -gap / 2 - pw, sy > 0 ? gap / 2 : -gap / 2 - ph, pw, ph);
|
|
396
|
+
target.replaceWith(scene);
|
|
397
|
+
if (!version) {
|
|
398
|
+
// Centre the actual capital-letter ink, not its line box. Segoe UI and the macOS fonts have different baselines.
|
|
399
|
+
var word = scene.querySelector('.fts-brand span'), font = getComputedStyle(word);
|
|
400
|
+
w.font = font.fontWeight + ' ' + font.fontSize + ' ' + font.fontFamily;
|
|
401
|
+
var metrics = w.measureText('FORSION');
|
|
402
|
+
var shift = -(metrics.fontBoundingBoxAscent - metrics.fontBoundingBoxDescent - metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent) / 2;
|
|
403
|
+
if (Number.isFinite(shift)) word.style.transform = 'translateY(' + shift + 'px)';
|
|
404
|
+
}
|
|
405
|
+
splash.dataset.scene = 'tree-shadow';
|
|
406
|
+
if (reduce || animation === 'none') splash.dataset.still = '';
|
|
407
|
+
return true;
|
|
408
|
+
} catch (_) { return false; } // No 2D canvas: the classic mark below stays.
|
|
409
|
+
}
|
|
410
|
+
var IMAGE = /^data:image\/(png|jpeg|webp|gif|svg\+xml);base64,[A-Za-z0-9+/]+={0,2}$/;
|
|
411
|
+
var usable = function (item) { return !!item && typeof item.image === 'string' && item.image.length <= 2000000 && IMAGE.test(item.image); };
|
|
412
|
+
var classic = value.scene === 'classic';
|
|
413
|
+
// Classic keeps its original rule: artwork, else the app icon. The tree shadow yields only to chosen
|
|
414
|
+
// startup artwork and never follows the app icon, so reduced motion gets the artwork's still poster,
|
|
415
|
+
// a still format as it is, or the still tree shadow.
|
|
416
|
+
var asset = classic ? (!reduce && value.splash) || value.icon : value.splash;
|
|
417
|
+
if (!classic && reduce && asset && !asset.poster && !/^data:image\/(png|jpeg);/.test(asset.image)) asset = null;
|
|
418
|
+
var usesIcon = asset && asset === value.icon;
|
|
419
|
+
if ((animation === 'none' || (reduce && !classic)) && asset && asset.poster) asset = { image: asset.poster };
|
|
420
|
+
if (!classic && !usable(asset) && treeShadow(original)) { /* default scene mounted */ }
|
|
421
|
+
else if (usable(asset)) {
|
|
422
|
+
var img = document.createElement('img');
|
|
423
|
+
img.className = 'forsion-startup-image';
|
|
424
|
+
if (usesIcon) img.style.borderRadius = '22%';
|
|
425
|
+
img.alt = '';
|
|
426
|
+
img.onerror = function () {
|
|
427
|
+
splash.removeAttribute('data-custom-motion');
|
|
428
|
+
if (classic || !treeShadow(img)) img.replaceWith(original);
|
|
429
|
+
};
|
|
430
|
+
img.src = asset.image;
|
|
431
|
+
original.replaceWith(img);
|
|
432
|
+
splash.dataset.customMotion = reduce ? 'none' : animation === 'default' ? (value.splash ? 'none' : 'pulse') : animation;
|
|
433
|
+
} else if (animation !== 'default' || reduce) splash.dataset.customMotion = reduce ? 'none' : animation;
|
|
434
|
+
|
|
435
|
+
// App readiness controls exit, with a hard upper bound even if initialization fails.
|
|
436
|
+
var start = Date.now(), done = false, frame = 0;
|
|
437
|
+
var ceiling = setTimeout(fade, 10000);
|
|
438
|
+
function fade() {
|
|
439
|
+
if (done) return;
|
|
440
|
+
done = true;
|
|
441
|
+
clearTimeout(ceiling);
|
|
442
|
+
cancelAnimationFrame(frame);
|
|
443
|
+
splash.classList.add('out');
|
|
444
|
+
setTimeout(function () { splash.remove(); style.remove(); }, 450);
|
|
445
|
+
}
|
|
446
|
+
splash.addEventListener('animationend', function (event) {
|
|
447
|
+
if (event.animationName === 'tangu-splash-out') splash.remove();
|
|
448
|
+
});
|
|
449
|
+
function waitForPaint() {
|
|
450
|
+
if (done) return;
|
|
451
|
+
var root = document.getElementById('root');
|
|
452
|
+
if (!root || !root.firstChild) { frame = requestAnimationFrame(waitForPaint); return; }
|
|
453
|
+
frame = requestAnimationFrame(function () {
|
|
454
|
+
var elapsed = Date.now() - start;
|
|
455
|
+
// The classic mark leaves at its loop seam; the tree shadow has none and only keeps a short minimum.
|
|
456
|
+
var duration = reduce ? 0 : splash.dataset.scene === 'tree-shadow' ? Math.max(0, 1300 - elapsed)
|
|
457
|
+
: Math.max(0, Math.max(1, Math.ceil((elapsed + 300) / 1600)) * 1600 - 300 - elapsed);
|
|
458
|
+
setTimeout(fade, duration);
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
waitForPaint();
|
|
462
|
+
})();
|
|
463
|
+
</script>
|
|
265
464
|
</body>
|
|
266
465
|
</html>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as P,d,j as t}from"./index-CF4RV4mh.js";import{z as F,an as T,ar as M,lz as R,ep as V,gD as W,aL as B,a2 as y,lA as N,by as U,Y as q,aQ as H,dz as _,lB as $,fa as K,i as O,u as Q}from"./appStore-Dg9WALEA.js";import{u as X}from"./codeStudioStore-C2mWfm32.js";import{C as Y}from"./CapabilityMenu-BQBsM638.js";import{c as G}from"./nativeDownload-D-f1_L2S.js";/* empty css */import{C as J}from"./code-xml-BALV9u_c.js";import{P as Z}from"./pencil-Cvk91P_Z.js";import{A as aa}from"./arrow-up-right-CpQs92mu.js";import{E as ta}from"./ellipsis-r1EcXsFq.js";import"./ipc-DQOD2UKk.js";import"./client-BSKpsyAw.js";const ia=[["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"}]],ea=F("monitor-down",ia);let v=0;const f=G((i,l)=>({items:[],status:"loading",async load(){const m=window.tangu?.productsList;if(!m){i({status:"error"});return}const r=++v;l().status!=="ready"&&i({status:"loading"});try{const n=await m();r===v&&i({items:n,status:"ready"})}catch{r===v&&l().status!=="ready"&&i({status:"error"})}}})),g=i=>i instanceof Error?i.message:String(i);function xa(){const{t:i,locale:l}=P(),m=f(a=>a.items),r=f(a=>a.status),n=f(a=>a.load),[k]=d.useState(()=>f.getState().status!=="ready"),[S,o]=d.useState(null),w=T(a=>a.spaces.some(e=>e.id==="coding"))&&!!M("code-studio"),[z,p]=d.useState(()=>Date.now());d.useEffect(()=>{n();const a=()=>{p(Date.now()),n()};return window.addEventListener("focus",a),()=>{window.removeEventListener("focus",a)}},[n]),d.useEffect(()=>{const a=setInterval(()=>{document.hidden||p(Date.now())},6e4);return()=>clearInterval(a)},[]);const u=(a,e,s=!1)=>Q.getState().toast(i(a,e),s),L=a=>{O.getState().openView("product",{id:a.id},"main",{newTab:!0})},E=a=>{window.tangu?.openDetached?.([{type:"product",params:{id:a.id}}])},b=a=>{y("coding"),requestAnimationFrame(()=>{X.getState().openProject(a.root,a.name)})},C=async a=>{const e=window.tangu?.productsShortcut;if(e){o(a.id);try{const{key:s,error:c,vars:h}=$(await e(a.id,i("artificial.shortcut.fallbackName")));u(s,h,c)}catch(s){u("artificial.toast.shortcutFailed",{detail:g(s)},!0)}finally{o(null)}}},A=async a=>{const e=window.tangu?.productsUpdate;if(!e)return;const s=(await K(i("artificial.rename.title"),a.name,{label:i("artificial.rename.label")}))?.trim();if(!(!s||s===a.name)){o(a.id);try{await e(a.id,{name:s}),await n()}catch(c){u("artificial.toast.renameFailed",{detail:g(c)},!0)}finally{o(null)}}},D=async a=>{const e=window.tangu?.productsTrash;if(!(!e||!window.confirm(i(a.external?"artificial.remove.confirm":"artificial.trash.confirm",{name:a.name})))){o(a.id);try{await e(a.id,{action:a.external?"unregister":"trash",dirId:a.dirId}),await n()}catch(s){u("artificial.toast.trashFailed",{detail:g(s)},!0)}finally{o(null)}}},I=a=>{const e=N(a.kind),s=e.icon,c=S===a.id,h=[...e.canLaunch&&window.tangu?.openDetached?[{id:"open-window",label:i("artificial.action.openWindow"),icon:t.jsx(U,{size:14}),onSelect:()=>E(a)}]:[],...w?[{id:"edit",label:i("artificial.action.edit"),icon:t.jsx(J,{size:14}),onSelect:()=>b(a)}]:[],...e.canShortcut&&window.tangu?.productsShortcut?[{id:"shortcut",label:i("artificial.action.shortcut"),icon:t.jsx(ea,{size:14}),onSelect:()=>{C(a)}}]:[],...window.tangu?.revealHostPath?[{id:"reveal",label:i("artificial.action.reveal"),icon:t.jsx(q,{size:14}),onSelect:()=>{window.tangu?.revealHostPath?.(a.root)}}]:[],...window.tangu?.productsUpdate?[{id:"rename",label:i("artificial.action.rename"),icon:t.jsx(Z,{size:14}),onSelect:()=>{A(a)}}]:[],...window.tangu?.productsTrash?[{id:"trash",label:i(a.external?"artificial.action.remove":"artificial.action.trash"),icon:t.jsx(H,{size:14}),danger:!0,onSelect:()=>{D(a)}}]:[]],j=c||!e.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:j,"aria-label":e.canLaunch?i("artificial.action.open",{name:a.name}):`${i("artificial.action.edit")} · ${a.name}`,onClick:()=>e.canLaunch?L(a):b(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}),!j&&t.jsx(aa,{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:i("artificial.badge.published")}),a.kind==="plugin"&&a.devLoad&&t.jsx("span",{className:"art-badge","data-badge":"devload",children:i("artificial.badge.devLoad")})]}),h.length>0&&t.jsx(Y,{label:i("artificial.action.more",{name:a.name}),className:"icon-btn art-card-more",disabled:c,items:h,children:t.jsx(ta,{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(V,{size:18}),t.jsxs("div",{className:"art-titles",children:[t.jsx("div",{className:"art-title",children:i("view.artificial")}),t.jsx("div",{className:"art-sub",children:i("artificial.subtitle")})]}),t.jsx("button",{className:"icon-btn","data-action":"refresh",title:i("artificial.refresh"),"aria-label":i("artificial.refresh"),onClick:()=>{n()},children:t.jsx(W,{size:14})})]}),r==="loading"&&t.jsxs("div",{className:"art-loading","data-state":"loading",children:[t.jsx(B,{variant:"list"}),t.jsx("span",{className:"art-sr-only",role:"status",children:i("artificial.loading")})]}),r==="error"&&t.jsxs("div",{className:"art-state",role:"alert","data-state":"error",children:[t.jsx("div",{className:"art-state-title",children:i("artificial.loadFailed")}),t.jsx("button",{className:"btn sm","data-action":"retry",onClick:()=>{n()},children:i("common.retry")})]}),r==="ready"&&!x.length&&t.jsxs("div",{className:"art-state","data-state":"empty",children:[t.jsx("div",{className:"art-state-title",children:i("artificial.empty.title")}),t.jsx("p",{children:i("artificial.empty.body")}),w&&t.jsx("button",{className:"btn primary sm","data-action":"go-coding",onClick:()=>y("coding"),children:i("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:i(N(a.kind).labelKey)}),t.jsx("div",{className:"newtab-grid art-grid",children:a.items.map(I)})]},a.kind))})]})})}export{xa as ArtificialView};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as a,u as q,d,r as la}from"./index-CF4RV4mh.js";import{i as oa,bw as ra,ib as ia,i7 as Y,id as ma,ig as da,i1 as ua,i_ as fa,il as F,ix as ha,ih as pa,da as J,i2 as ga,i3 as xa,i4 as ba,i5 as ja,i$ as j,i6 as D,ir as va,ip as Ca,io as Na,B as wa,G as Q,D as B,af as Da,ag as aa,a8 as X,fa as R,ex as Sa,j0 as ea,j1 as za,j2 as K,j3 as Z,j4 as Ma,eO as ka,j5 as ya,j6 as Aa,A as Pa,j7 as Fa}from"./appStore-Dg9WALEA.js";import{A as qa}from"./astryxBridge-BZhaZPs4.js";import{u as H}from"./calendarNavStore-C7fGRpoH.js";import{C as Ea}from"./CapabilityMenu-BQBsM638.js";import{H as Ia}from"./hard-drive-BbyVSbfP.js";import{S as Ta}from"./star-CwDiGyUW.js";import{C as La}from"./CheckboxInput-BsaoUHZ0.js";import{U as Oa}from"./upload-BbeAsMuD.js";import"./nativeDownload-D-f1_L2S.js";import"./ipc-DQOD2UKk.js";import"./client-BSKpsyAw.js";import"./Tooltip-DY4ISA-e.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 Ra(){const{t:s}=q(),n=K(c=>c.pref),p=K(c=>c.setPref),i=c=>s(c===1?"calcfg.weekStart.mon":"calcfg.weekStart.sun"),u=[{value:"auto",label:s("calcfg.weekStart.auto",{day:i(Fa())})},{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(qa,{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}=q(),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=F(f,!0),o=t=>{if(!n||!p||!i)return!1;const b=F(t,!0);return b>=p&&b<=i},N=t=>{h($(t)),n&&u(F(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=F(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}=q(),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),[W,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]),G=[...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),R(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),U=e=>v[M(e)],na=()=>{R(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){k(s("calcfg.fileTooLarge",{mb:Z/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")}),G.length===0&&a.jsx("div",{className:"amx-calcfg-empty",children:s("calcfg.empty")}),a.jsx("div",{className:"amx-calcfg-list",children:G.map(({db:e,readonly:r,kind:l},A)=>{const L=Ca(n,x,e.path,A),O=!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(Q,{size:14}):l==="other"?a.jsx(Ia,{size:14}):a.jsx(B,{size:14})}),a.jsx("span",{className:"amx-calcfg-swatch",style:{background:O?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${O?"":" off"}`,title:U(e.path)||e.name,children:[e.name,l==="ics"&&U(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:O,onChange:()=>o(n,e.path)}),(!r||l==="ics")&&a.jsx("button",{className:"amx-calcfg-more",title:s("calcfg.more"),onClick:w=>{const V=w.currentTarget.getBoundingClientRect();g({db:e,ics:l==="ics",x:Math.min(V.left,window.innerWidth-180),y:V.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})]}),W&&a.jsx("div",{className:"amx-calcfg-hint",style:{color:"var(--danger)"},children:W}),a.jsx(Ra,{}),T&&a.jsx("div",{className:"amx-db-popwrap",onMouseDown:()=>S(null),children:a.jsxs(X,{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(B,{size:14})," ",s("calcfg.addDatabase")]}),a.jsxs("button",{className:"amx-db-opt",onClick:()=>{S(null),na()},children:[a.jsx(Q,{size:14})," ",s("calcfg.subscribeExternal")]}),a.jsxs("button",{className:"amx-db-opt",onClick:()=>{S(null),ca()},children:[a.jsx(Oa,{size:14})," ",s("calcfg.importIcs")]})]})}),m&&a.jsx("div",{className:"amx-db-popwrap",onMouseDown:()=>g(null),children:a.jsx(X,{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),R(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(Ba,{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 Ba({memberPaths:s,onClose:n,onAdd:p}){const{t:i}=q(),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(B,{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 Ce}from"./index-CF4RV4mh.js";import{z as xt,i1 as ft,i2 as mt,i3 as ht,i4 as pt,i5 as yt,u as kt,da as gt,i6 as bt,i7 as me,i8 as vt,i9 as G,ia as be,ib as Q,ic as wt,cp as jt,aI as $t,id as ae,ie as Te,ig as $e,ih as Mt,ii as Qe,ij as et,ik as fe,a7 as xe,il as J,im as zt,io as Ct,ip as Et,iq as Dt,ir as Tt,is as St,it as Nt,iu as qe,iv as Rt,iw as We,ix as At,iy as He,iz as It,iA as tt}from"./appStore-Dg9WALEA.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-BZhaZPs4.js";import{u as te,H as Bt}from"./calendarNavStore-C7fGRpoH.js";import{u as Gt}from"./mdMarkStore-CsKl7C8O.js";import{E as Yt,d as Xt}from"./EventCard-BmDQkEj9.js";import{Z as Ut,a as _t}from"./zoom-in-hr5bRpDL.js";import{R as Zt}from"./rotate-ccw-CUlnplr0.js";import"./nativeDownload-D-f1_L2S.js";import"./ipc-DQOD2UKk.js";import"./client-BSKpsyAw.js";import"./mdMarks-Bq7Hl-4C.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:C=!1,isInterruptible:$=!1,clickAction:y,icon:M,isIconOnly:l=!1,children:c,endContent:k,tooltip:v,href:T,as:D,target:z,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),g=C||N,w=N||$,q=E?.isDisabled??!1,W=x||q||g&&!$,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:[g&&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,g&&(w?Ke.hiddenContentDelayed:Ke.hiddenContent)),"aria-hidden":g||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&&k&&s.jsx("span",{className:"x3nfvp2 x6s0dn4 x1heor9g",children:k})]}),s.jsx(nt,{role:"status","aria-live":"polite",children:g?"Loading":""})]}),b=l&&e!==""||g&&!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:z,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":g||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),C=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:C.current&&(Fe(l),x.current===document.activeElement&&mn(l),x.current=document.activeElement),C.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"){C.current=!0;const k=Ae(c);if(k.length===0)return;const v=k[0],T=k[k.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:C=!0,hasAutoFocus:$=!0,hasSurface:y=!0,hasCloseButton:M=!0,closeButtonLabel:l="Close popover",dialogLabel:c,role:k="dialog",isModal:v=!0}=e,T=n.useRef(null),D=n.useRef(!1),z=Wt({mode:"context",lightDismiss:x,onShow:t,onHide:a}),{containerRef:p,focusFirst:K}=hn({isActive:z.isOpen,onEscape:C||x?z.hide:void 0});n.useEffect(()=>{z.isOpen&&$&&!D.current&&requestAnimationFrame(()=>{K()}),z.isOpen||(D.current=!1)},[z.isOpen,$,K]);const I=n.useCallback(N=>{T.current=N,z.ref(N)},[z]),A=n.useCallback(N=>{D.current=N?.skipAutoFocus??!1,z.show()},[z]),S=n.useCallback(()=>{z.isOpen?z.hide():A()},[z,A]),P={"aria-haspopup":k==="dialog"?"dialog":"true","aria-expanded":z.isOpen,"aria-controls":z.id},h=n.useRef(!1);n.useEffect(()=>{k==="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.'))},[k,c]);const E=n.useCallback((N,i)=>z.render(s.jsxs("div",{ref:p,role:k==="dialog"?"dialog":void 0,"aria-modal":k==="dialog"&&v?!0:void 0,"aria-label":k==="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:z.hide})})]}),{...i,xstyle:i?.xstyle}),[z,M,y,l,p,c,k,v,u]);return{triggerRef:I,contentRef:p,anchorId:z.anchorId,show:A,hide:z.hide,toggle:S,isOpen:z.isOpen,id:z.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:C,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),C,$),...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 kn(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}]},gn={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:C,align:$="center",density:y="balanced",labelLines:M,descriptionLines:l,onClick:c,href:k,target:v,rel:T,isHighlighted:D=!1,isSelected:z=!1,isDisabled:p=!1,xstyle:K,className:I,style:A,ref:S,role:P,...h}){const E=at(),N=c!=null||k!=null,{target:i,rel:f}=kn(v,T),g=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}),g?s.jsx("span",{...{0:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h"},1:{className:"x78zum5 xdt5ytf x98rzlu xeuugli x1yc453h xbyyjgo"}}[!!p<<0],children:F}):k!=null?s.jsx(E,{href:k,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}),C!=null&&s.jsx("span",{...{0:{className:"x3psx0u x78zum5 xvc5jky"},1:{className:"x3psx0u x78zum5 xvc5jky xbyyjgo"}}[!!p<<0],children:C})]});return s.jsx(e,{ref:S,"aria-selected":z||void 0,"aria-disabled":p||void 0,...h,...he(pe("item",{density:y,align:$}),ee(_.root,gn[y],$==="start"&&_.alignStart,N&&_.interactive,N&&_.focusVisibleOutline,D&&_.highlighted,z&&_.selected,p&&!g&&_.disabled,K),I,A),role:P,onClick:g?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:C,xstyle:$,className:y,style:M}){const l=bn(),c=l?.menuSize??"md",k=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:C,onClick:k,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 zn(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=zn(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 C=e,{selectionStart:$,selectionEnd:y,value:M}=C;return $!==y||$==null?!0:t==="ArrowLeft"||t==="ArrowUp"||t==="Home"?$>0:t==="ArrowRight"||t==="ArrowDown"||t==="End"?$<M.length:!1}function Cn(e={}){const{itemSelector:t='[role="menuitem"]',wrap:a=!0,onEscape:u,orientation:x="vertical",hasHomeEnd:C=!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"),[]),k=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 g=E;for(let w=0;w<f;w++){if(g<0||g>=f){if(!i)return-1;g=(g+f)%f}const q=h[g];if(q&&!c(q))return g;g+=N}return-1},[c]),T=n.useCallback(()=>{const h=k(),E=document.activeElement;return h.findIndex(N=>N===E||N.contains(E))},[k]),D=n.useCallback((h,E)=>{h.getAttribute("tabindex")!==String(E)&&h.setAttribute("tabindex",String(E))},[]),z=n.useCallback(()=>{const h=k(),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)},[k,c,D]);Kt(()=>{y&&z()});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=k();if(E.length===0)return;const N=Math.max(0,Math.min(h,E.length-1));p(E,N)},[k,p]),I=n.useCallback(()=>{const h=k(),E=v(h,0,1,!1);return E!==-1?(p(h,E),!0):!1},[k,v,p]),A=n.useCallback(()=>{const h=k(),E=v(h,h.length-1,-1,!1);return E!==-1?(p(h,E),!0):!1},[k,v,p]),S=n.useCallback(()=>{y&&z()},[y,z]),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 g=i.includes(h.key),w=f.includes(h.key),q=C&&h.key==="Home",W=C&&h.key==="End";if(!g&&!w&&!q&&!W||M&&(Ue(h.target,h.key)||Ue(document.activeElement,h.key)))return;const X=T(),F=k();if(g){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,k,a,x,$,C,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:C}=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(k=>{const v=k.key===" "&&$.current.length>0;if(!En(k)&&!v)return!1;const T=t();if(T.length===0)return!1;const D=k.key.toLowerCase(),z=$.current.length>0&&$.current.split("").every(S=>S===D),p=z?D:$.current+D;$.current=p,l();const K=u?.()??-1,I=T.length,A=z?1:0;for(let S=0;S<I;S++){const P=(K+A+S+I)%I;if(C?.(P))continue;const h=T[P];if(h!=null&&h.trim().toLowerCase().startsWith(p))return a(P),!0}return!0},[t,a,u,l,C]),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:C=!0,placement:$="below",className:y,style:M,xstyle:l,"data-testid":c,...k}){const v=("items"in k?k.items:void 0)??[],T=k.children,D=n.useId(),z=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:g,handleKeyDown:w,focusFirst:q,focusItem:W}=Cn({itemSelector:'[role="menuitem"]:not([aria-disabled="true"])',wrap:!1,onEscape:f}),X=n.useCallback(()=>g.current?Array.from(g.current.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')):[],[g]),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??(C&&!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:z}),[f,z]),j=k.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:g,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,...C}){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,...C,...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 ke=e=>e.end?.getTime()??e.start.getTime()+3600*1e3;function Hn(e){const t=[...e].sort((u,x)=>u.start.getTime()-x.start.getTime()||ke(u)-ke(x)),a=new Map;for(let u=0;u<t.length;){let x=u+1,C=ke(t[u]);for(;x<t.length&&t[x].start.getTime()<C;)C=Math.max(C,ke(t[x])),x+=1;const $=t.slice(u,x),y=[],M=$.map(c=>{let k=y.findIndex(v=>v<=c.start.getTime());return k<0&&(k=y.length),y[k]=ke(c),{ev:c,lane:k}}),l=Math.max(1,y.length);for(const{ev:c,lane:k}of M)a.set(c.key,{lane:k,laneCount:l,leftPct:k/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,ge=150,Ze=40;function Kn(e,t,a){const u=[];return e.forEach(({db:x,dateCol:C},$)=>{if(Ct(t,a,x.path))return;const y=Et(t,a,x.path,$);for(const M of x.rows){const l=typeof M.cells[C]=="string"?M.cells[C]:"",c=Dt(l);c&&u.push({key:`${x.path}::${M.rowId}`,color:y,db:x,row:M,colId:C,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)),ze=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}=Ce(),t=ft(),a=mt(),u=ht(),x=pt(),C=yt(),$=Gt(),y=kt(d=>d.cfg),M=gt(d=>d.vaultRoot)??"",l=bt(d=>d.byVault),c=te(d=>d.mode),k=te(d=>d.setMode),v=te(d=>d.hourPx),T=te(d=>d.setHourPx),D=te(d=>d.jumpNonce),[z,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=()=>{zt.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,...C,...$].map(d=>({db:d,dateCol:vt(d)?.id})).filter(d=>!!d.dateCol)],[a,u,x,C,$]),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=z?E.find(d=>d.key===z.key)??null:null;S.current=i;const f=(d,R)=>p({key:d,at:R}),g=()=>{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=g(),q=async(d,R,H)=>{const Y=g();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:()=>k(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:z?.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:z?.key??null,onPick:f,onCreate:(d,R,H)=>{q(d,R,H)},titleRef:K}),i&&z&&s.jsx(Yt,{ev:i,at:z.at,onClose:()=>p(null)})]})}const On=n.forwardRef(function({n:t,weekStartDow:a,events:u,selectedKey:x,onPick:C,onCreate:$,titleRef:y},M){const{t:l}=Ce(),c=n.useRef(null),k=n.useRef(null),[v,T]=n.useState(0),[D,z]=n.useState(0),p=te(o=>o.hourPx),K=te(o=>o.setVisibleRange),I=()=>{k.current&&c.current&&(k.current.style.transform=`translateY(${-c.current.scrollTop}px)`)},A=n.useMemo(()=>Q(new Date),[]),S=n.useMemo(()=>{const o=ae(A,-ge);return Array.from({length:ge*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(ge),E=n.useRef(void 0),N=n.useRef(!1),i=n.useRef(""),f=n.useRef(-1),g=n.useRef(null),w=()=>{g.current&&(g.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&&z(Math.max(0,r.offsetTop-(le+14)))},[u,v,t]),n.useLayoutEffect(()=>{const o=c.current;if(!(!o||!v)){if(!N.current){h.current=ge,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(ge)*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=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*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&&C(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||C(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){C(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}C(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:k,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:ze(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:{...ze(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:g})]})})]})}),Vn=n.forwardRef(function({anchorRef:t,events:a,selectedKey:u,onPick:x,onCreate:C,titleRef:$},y){const{t:M}=Ce(),l=n.useRef(null),[c,k]=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,g)=>ae(i,g*7))},[T]),z=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))),g=ae(D[f],3),w=At(g);if(t&&(t.current={y:g.getFullYear(),m:g.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=()=>k(Math.max(64,(i.clientHeight-le)/6));f();const g=new ResizeObserver(f);return g.observe(i),()=>g.disconnect()},[]),n.useLayoutEffect(()=>{const i=l.current;if(!i||!c||z.current)return;z.current=!0;const f=t?.current;if(f){let g=Math.max(0,Math.min(D.length-1,S(f.y,f.m)));ae(D[g],3).getMonth()!==f.m&&g+1<D.length&&(g+=1),i.scrollTop=g*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 g=Math.max(0,Math.min(D.length-1,Math.round(f.scrollTop/c))),w=ae(D[g],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 g=oe(f);if(i.readonly){x(i.key,g);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,g)};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 g=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")||C(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()}),g.slice(0,3).map(w=>s.jsxs("button",{className:`amx-cal-chip-ev${w.readonly?" readonly":""}${u===w.key?" selected":""}${ut(w,f)}`,style:ze(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)),g.length>3&&s.jsx("button",{className:"amx-cal-more","aria-label":M("calview.a11yMoreEvents",{m:f.getMonth()+1,d:f.getDate(),n:g.length}),onClick:w=>K({day:f,events:g,at:oe(w)}),children:M("calview.moreItems",{n:g.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:C}=Ce(),$=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,k=n.useRef(null),v=n.useRef(x);return v.current=x,n.useEffect(()=>{const T=document.activeElement instanceof HTMLElement?document.activeElement:null;k.current?.querySelector(".amx-cal-agenda-list > button")?.focus();const D=z=>{z.key==="Escape"&&(z.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:k,role:"dialog","aria-modal":"true","aria-label":C("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:C("calview.dayHeading",{m:e.getMonth()+1,d:e.getDate()})}),s.jsx("button",{onClick:x,"aria-label":C("calview.closeAgenda"),children:"×"})]}),s.jsx("div",{className:"amx-cal-agenda-list",children:t.map(T=>s.jsxs("button",{style:ze(T.color),onClick:D=>u(T.key,oe(D)),children:[s.jsx("span",{className:"amx-cal-agenda-time",children:T.allDay?C("calview.allDay"):Z(T.start)}),s.jsx("span",{children:T.title})]},T.key))})]})})}export{rs as CalendarView,Vn as MonthScroll};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as s,j as n}from"./index-CF4RV4mh.js";import{cl as j,ag as k,bp as C,a8 as A,A as L,aI as S}from"./appStore-Dg9WALEA.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
|
-
.human-panel{min-width:0;padding-block:0;font:var(--ui-font-body)/var(--ui-line-body) var(--font-ui)}.human-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;padding-right:8px}.human-panel .human-heading h3{margin:0 0 5px;font-size:var(--ui-font-heading);font-weight:600;color:var(--text)}.human-heading p,.human-date,.human-path,.human-history time{margin:0;color:var(--text-muted);font-size:var(--ui-font-meta)}.human-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.human-actions .profile-text-action,.human-history .profile-text-action{display:inline-flex;align-items:center;gap:5px}.human-date{margin-bottom:14px}.human-empty{color:var(--text-muted);margin:16px 0}.human-panel .md-body{overflow-wrap:anywhere;min-width:0}.human-editor{display:grid;gap:12px}.human-editor textarea{width:100%;min-width:0;resize:vertical;padding:12px;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);font:var(--ui-font-body)/1.7 var(--font-mono)}.human-source{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--ui-font-body)/1.7 var(--font-mono);background:var(--bg-card);padding:12px;border-radius:var(--radius-md)}.human-path{display:grid;gap:6px;margin-top:18px}.human-path code{white-space:pre-wrap;overflow-wrap:anywhere}.human-notice{color:var(--accent);font-size:var(--ui-font-meta)}.human-history,.human-latest{margin-top:20px;border-top:1px solid var(--border);padding-top:14px}.human-history h4{font-size:var(--ui-font-heading);margin:0 0 12px}.human-history article{display:grid;gap:6px;padding:12px 0}.human-history article+article{border-top:1px solid var(--border)}.human-history p{margin:0;font-size:var(--ui-font-meta);color:var(--text-muted)}.human-history .human-highlight{background:var(--bg-card);border-radius:var(--radius-md);padding-inline:10px}.human-inherited{margin-top:12px;font-size:var(--ui-font-meta);color:var(--text-muted)}.human-inherited summary{cursor:pointer}.human-update-card{margin-block:14px;padding:15px 17px;background:var(--bg-card);border-radius:var(--radius-md);font-family:var(--font-ui)}.human-update-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:var(--ui-font-body)}.human-update-card .human-scope,.human-update-card details{font-size:var(--ui-font-meta);color:var(--text-muted)}.human-update-card .human-scope{margin-block:4px 10px;overflow-wrap:anywhere}.human-update-card p{margin:8px 0;font-size:var(--ui-font-body)}.human-update-card article+article{border-top:1px solid var(--border);padding-top:10px;margin-top:10px}.human-update-card .human-actions{margin-top:10px}.human-update-card button{font-size:var(--ui-font-meta)}.human-update-card details p{font-size:inherit}.human-update-card .human-applied{font-size:var(--ui-font-caption);color:var(--text-muted)}.human-heading>div:first-child{min-width:0}.human-heading>.human-actions{flex-shrink:0;flex-wrap:nowrap;gap:10px}.human-heading .human-more{display:grid;place-items:center;width:24px;height:28px;padding:0}.t2-chat-view{container-type:inline-size;overflow:hidden}.t2-chat-view{position:relative}.t2-chat-view.refdrop:after,.t2-chat-view[data-filedrop]:after{content:"";position:absolute;inset:6px;pointer-events:none;z-index:20;border:2px dashed var(--accent-ink, var(--accent));border-radius:var(--radius-lg, 12px);background:color-mix(in srgb,var(--accent-ink, var(--accent)) 7%,transparent)}.t2-toolbar{min-height:38px;flex-shrink:0;display:flex;align-items:center;gap:7px;padding:0 12px;border-bottom:var(--border-width, 1px) solid var(--border);background:color-mix(in srgb,var(--bg-card, var(--bg)) 82%,transparent)}.t2-toolbar-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ui-font-meta, 12px);font-weight:600}.t2-toolbar-grow{flex:1}.t2-toolbar-pill{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-pill, 999px);padding:2px 9px;font-size:var(--ui-font-caption, 11px);color:var(--text-muted);background:var(--overlay-light)}.t2-toolbar-pill.error{color:var(--danger);background:var(--danger-light)}.t2-toolbar .locale-toggle,.t2-toolbar .icon-btn{flex-shrink:0}.t2-chat-body{position:relative;flex:1;min-height:0;display:flex}.t2-stream{flex:1;width:100%;min-height:0;overflow-y:auto;--t2-fade: 24px;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--t2-fade)),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - var(--t2-fade)),transparent 100%)}.t2-stream-inner{max-width:820px;margin:0 auto;padding:28px 28px calc(var(--t2-composer-h, 96px) + 8px);display:flex;flex-direction:column;gap:26px;min-height:100%}.t2-asst{display:flex;gap:12px;align-items:flex-start}.t2-avatar{width:34px;height:34px;flex-shrink:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1;color:var(--accent-ink);background:color-mix(in srgb,var(--accent-ink) 14%,transparent);overflow:hidden;-webkit-user-select:none;user-select:none;margin-top:2px}.t2-avatar img{width:100%;height:100%;object-fit:cover}@container (aspect-ratio < 9 / 16){.t2-avatar{display:none}}.t2-asst-col{min-width:0;flex:1;display:flex;flex-direction:column;gap:8px}.t2-asst-col>.t2-think,.t2-asst-col>.t2-tool,.t2-asst-col>.t2-todo,.t2-asst-col>.t2-panelcard,.t2-asst-col>.tool-card,.t2-asst-col>.tool-group,.t2-asst-col>.todo-card,.t2-asst-col>.plan-card,.t2-asst-col>.approval-card,.t2-asst-col>.inquiry-card,.t2-asst-col>.t2-suggest,.t2-asst-col>.sketch-card,.t2-asst-col>.thinking-block{max-width:700px;width:100%;box-sizing:border-box}.t2-name{font-size:var(--ui-font-caption, 11px);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-weight:600;display:inline-flex;align-items:center;gap:6px}.t2-name .t2-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-ink)}.t2-content{max-width:700px;font-size:14px;line-height:1.72;color:var(--text);word-break:break-word}.t2-content>:first-child{margin-top:0}.t2-content>:last-child{margin-bottom:0}.t2-content p{margin:0 0 .7em}.t2-content :is(h1,h2,h3,h4,h5,h6){font-weight:600;line-height:1.35;margin:1.3em 0 .4em}.t2-content h1{font-size:1.4em}.t2-content h2{font-size:1.25em}.t2-content h3{font-size:1.1em}.t2-content :is(h4,h5,h6){font-size:1em}.t2-content .t2-embeds{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin:0 0 .7em}.t2-embed{display:block;max-width:100%;border-radius:var(--radius-md, 10px)}.t2-embed-image{max-height:360px;object-fit:contain;cursor:zoom-in;border:var(--border-width) solid var(--border);background:var(--overlay-light)}.t2-embed-video{width:100%;max-height:420px;background:var(--overlay-light)}.t2-embed-audio{width:100%}.t2-embed-pending{width:240px;height:160px;background:var(--overlay-light)}.t2-embed-audio.t2-embed-pending{width:100%;height:40px}.t2-embeds-tail{flex-basis:100%}.t2-embed-warn{flex-basis:100%;margin-top:-4px;font-size:var(--ui-font-caption, 11px);color:var(--warning)}.t2-content pre{border-radius:var(--radius-md, 12px);max-width:100%;overflow-x:auto;background:var(--bg-card);padding:12px 14px}.t2-content hr{border:none;border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent);margin:1.15em 0}.t2-content table{border-collapse:collapse;font-size:.92em;margin:.2em 0 .85em;display:block;width:max-content;max-width:100%;overflow-x:auto}.t2-content th,.t2-content td{border:var(--border-width) solid color-mix(in srgb,var(--border) 55%,transparent);padding:6px 10px;text-align:left;vertical-align:top}.t2-content th{font-weight:500;color:var(--text-muted)}.t2-runstats{font-size:var(--ui-font-meta, 12px);line-height:18px;font-variant-numeric:tabular-nums}.t2-runstats-solo{padding-left:46px}.t2-actions{display:flex;gap:4px;opacity:0;transition:opacity var(--duration-fast, .15s)}.t2-asst:hover .t2-actions,.t2-userwrap:hover .t2-actions,.t2-actions:focus-within{opacity:1}@media(hover:none){.t2-actions{opacity:1}}.t2-iconbtn{width:28px;height:28px;border:none;background:transparent;color:var(--text-faint, var(--text-muted));border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}.t2-iconbtn:hover{background:var(--overlay-light, rgba(127,127,127,.1));color:var(--text)}.t2-msgtime{align-self:center;padding:0 6px;font-size:var(--ui-font-meta, 12px);color:var(--text-faint, var(--text-muted));font-variant-numeric:tabular-nums;white-space:nowrap}.t2-iconbtn[aria-disabled=true],.t2-iconbtn[aria-disabled=true]:hover{background:transparent;color:var(--text-faint, var(--text-muted));opacity:.45;cursor:default}.t2-userwrap{display:flex;justify-content:flex-end;align-items:flex-start;gap:8px}.t2-user-col{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:76%;min-width:0}.t2-username{font-size:var(--ui-font-caption, 11px);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.t2-user-avatar{color:var(--text-light, var(--text))}.t2-user{max-width:100%;background:color-mix(in srgb,var(--accent-ink) 12%,transparent);color:var(--text);border-radius:var(--radius-lg, 16px) var(--radius-lg, 16px) var(--radius-sm, 6px) var(--radius-lg, 16px);padding:10px 14px;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.t2-user-col>.t2-actions{align-self:flex-end;margin-top:2px}.t2-user .msg-attach-grid{margin-bottom:8px}.t2-sys{text-align:center;font-size:var(--ui-font-caption, 11px);color:var(--text-faint, var(--text-muted));padding:2px 0}.t2-interrupted{display:flex;align-items:center;gap:10px}.t2-interrupted:before,.t2-interrupted:after{content:"";flex:1;border-top:1px dashed var(--overlay-medium, rgba(127, 127, 127, .16))}.t2-retry{color:var(--warning)}.t2-retry .t2-retry-err{opacity:.65;margin-left:6px}.t2-compact{max-width:380px;margin:6px auto 2px;display:flex;flex-direction:column;gap:5px;animation:t2-compact-in .24s ease-out}.t2-compact-head{display:flex;align-items:baseline;gap:8px;font-size:var(--ui-font-caption, 11px);color:var(--text-faint, var(--text-muted))}.t2-compact-pct{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--accent-ink)}.t2-compact-track{height:3px;border-radius:2px;background:var(--overlay-medium, rgba(127, 127, 127, .16));overflow:hidden}.t2-compact-fill{height:100%;border-radius:2px;background:var(--accent-ink);transition:width .32s cubic-bezier(.22,1,.36,1)}@keyframes t2-compact-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.t2-think{border-left:2px solid color-mix(in srgb,var(--accent-ink) 35%,transparent);padding-left:12px}.t2-think-head{background:none;border:none;padding:0;cursor:pointer;font-size:var(--ui-font-meta, 12px);color:var(--text-muted);display:inline-flex;align-items:center;gap:6px}.t2-think-body{font-size:12px;line-height:1.65;color:var(--text-muted);margin-top:6px}.t2-dim{color:var(--text-faint, var(--text-muted))}.t2-tool{border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-md, 12px);background:var(--bg-card, var(--bg));padding:9px 12px;display:flex;align-items:center;gap:8px;font-size:var(--ui-font-meta, 12px)}.t2-tool.err{border-color:color-mix(in srgb,var(--danger) 50%,var(--border));flex-wrap:wrap}.t2-relogin{align-self:flex-start;flex:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px;border:var(--border-width, 1px) solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:var(--radius-pill, 999px);background:transparent;color:var(--danger);font-family:var(--font-ui);font-size:var(--ui-font-caption, 11px);padding:3px 10px;transition:background var(--duration-fast, .15s)}.t2-tool .t2-relogin{align-self:center}.t2-relogin:hover{background:color-mix(in srgb,var(--danger) 12%,transparent)}.t2-tool-name{font-weight:600;color:var(--text)}.t2-tool-hint{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.t2-chip{font-size:var(--ui-font-caption, 11px);color:var(--text-muted);background:var(--overlay-light, rgba(127,127,127,.1));border-radius:var(--radius-pill, 999px);padding:2px 8px;white-space:nowrap}.t2-suggest{display:flex;flex-wrap:wrap;gap:8px}.t2-suggest-chip{border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-pill, 999px);background:transparent;color:var(--text);font-family:var(--font-ui);font-size:var(--ui-font-meta, 12px);padding:6px 14px 6px 11px;display:inline-flex;align-items:center;gap:7px;max-width:100%;text-align:left;cursor:pointer;transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}.t2-suggest-chip>svg{color:var(--accent-ink);flex:none}.t2-suggest-chip:hover{background:var(--overlay-light, rgba(127,127,127,.1))}.t2-status-ok{color:var(--accent-ink)}.t2-status-err{color:var(--danger)}.t2-todo{border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-md, 12px);background:var(--bg-card, var(--bg));padding:12px 14px}.t2-card-title{font-size:var(--ui-font-meta, 12px);font-weight:600;margin-bottom:8px;display:flex;gap:6px;align-items:center}.t2-todo-row{display:flex;gap:8px;align-items:baseline;font-size:var(--ui-font-meta, 12px);padding:3px 0;color:var(--text)}.t2-todo-mark{width:16px;text-align:center;flex-shrink:0}.t2-todo-mark.completed{color:var(--accent-ink)}.t2-todo-mark.in_progress{color:var(--text-muted)}.t2-todo-mark.pending{color:var(--text-faint, var(--text-muted))}.t2-done{text-decoration:line-through;color:var(--text-muted)}.t2-panelcard{border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-lg, 14px);background:var(--bg-card, var(--bg));padding:14px;display:flex;flex-direction:column;gap:10px}.t2-panel-title{font-size:var(--ui-font-body, 13px);font-weight:600;display:inline-flex;align-items:center;gap:7px}.t2-accent-ic{color:var(--accent-ink)}.t2-preview{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--ui-font-caption, 11px);background:var(--overlay-light, rgba(127,127,127,.08));color:var(--text);border-radius:var(--radius-sm, 8px);padding:9px 11px;white-space:pre-wrap;word-break:break-all}.t2-btnrow{display:flex;flex-wrap:wrap;gap:8px}.t2-inq-input{display:flex;gap:8px}.t2-inline-input{flex:1;min-width:0;border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-sm, 8px);background:var(--bg);color:var(--text);padding:7px 10px;font-size:var(--ui-font-meta, 12px);font-family:var(--font-ui);outline:none}.t2-inline-input:focus{border-color:var(--accent-ink)}.t2-btn{border:none;border-radius:var(--radius-sm, 8px);cursor:pointer;font-family:var(--font-ui);font-size:var(--ui-font-meta, 12px);padding:7px 13px;display:inline-flex;align-items:center;gap:5px;transition:filter var(--duration-fast, .15s),background var(--duration-fast, .15s)}.t2-btn.primary{background:var(--action-fill);color:var(--on-action, #fff)}.t2-btn.primary:hover{filter:brightness(1.06)}.t2-btn.ghost{background:var(--overlay-light, rgba(127,127,127,.1));color:var(--text)}.t2-btn.ghost:hover{background:var(--overlay-medium, rgba(127,127,127,.18))}.t2-btn.danger{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.t2-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:40px;text-align:center}.t2-empty-mark{display:inline-flex;align-items:center;justify-content:center}.t2-empty-title{font-size:var(--ui-font-heading, 14px);font-weight:500;color:var(--text)}.t2-empty-sub{font-size:var(--ui-font-meta, 12px);color:var(--text-muted)}.t2-chat-col>.t2-empty{position:absolute;inset:0 0 auto;z-index:1;pointer-events:none;padding:0 24px}.t2-chat-col>.t2-empty .t2-empty-title{max-width:100%;line-height:1.5;text-wrap:balance;overflow-wrap:anywhere}.t2-chat-col>.t2-empty .t2-empty-sub{max-width:38ch;line-height:1.6;text-wrap:pretty;overflow-wrap:anywhere}.t2-chat-col>.t2-empty[data-density=compact]{gap:10px}.t2-chat-col>.t2-empty[data-density=compact] .brand-logo{width:42px;height:42px}.t2-chat-col>.t2-empty[data-density=minimal] .t2-empty-mark,.t2-chat-col>.t2-empty[data-density=minimal] .t2-empty-sub{display:none}.t2-jump{position:absolute;right:22px;z-index:12}.t2-jump.jump-bottom{bottom:calc(var(--t2-composer-h, 96px) + 16px)}.t2-quote-menu{position:absolute;transform:translate(max(-100%,calc(12px - var(--quote-x, 100vw))));z-index:20;display:inline-flex;align-items:center;max-width:calc(100% - 24px);overflow:hidden;border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-pill, 999px);background:var(--bg-card);color:var(--text);box-shadow:var(--card-shadow)}.t2-quote-action{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border:0;border-right:var(--border-width, 1px) solid var(--border);background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:var(--ui-font-caption, 11px);line-height:1;white-space:nowrap}.t2-quote-action:last-child{border-right:0}.t2-quote-action:hover{background:var(--overlay-light, rgba(127,127,127,.1))}.t2-quote-action:focus-visible{outline:var(--focus-ring) solid var(--accent-ink);outline-offset:-2px}.t2-quote-action svg{flex:0 0 auto}@container (max-width: 360px){.t2-quote-action{padding-inline:8px}}@media(max-width:1040px){.t2-stream-inner,.t2c-inner{padding-inline:18px}.t2-toolbar-title{max-width:220px}.t2-toolbar-pill{max-width:110px}}@container (max-width: 520px){.t2-stream-inner{padding:20px 12px calc(var(--t2-composer-h, 96px) + 8px);gap:20px}.t2-toolbar{padding-inline:8px;gap:4px}.t2-toolbar-title{max-width:120px}.t2-toolbar-pill{display:none}.t2c-inner{padding:7px 10px 12px}.t2c-row{gap:4px}.t2c-pill-label{max-width:92px}.t2-user-col{max-width:100%}}@container (max-width: 520px) and (aspect-ratio < 9 / 16){.t2-stream-inner:has(>.t2-asst,>.t2-userwrap)>:first-child{margin-top:auto}}.t2-chat-col>.composer-anchor{position:absolute;left:0;right:0;bottom:0;z-index:10;pointer-events:none}.t2-chat-col>.composer-anchor>*{pointer-events:auto}.t2-chat-col>.composer-anchor>.t2c{pointer-events:none}.t2c-inner,.t2c>:not(.t2c-inner){pointer-events:auto}.t2-composer-wrap{padding:8px 28px 18px;max-width:880px;margin:0 auto;width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:8px}.t2-composer{background:var(--bg-card, var(--bg));border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-chat-surface, 20px);box-shadow:var(--card-shadow, 0 6px 22px rgba(0,0,0,.08));padding:12px 14px;display:flex;flex-direction:column;gap:8px;transition:border-color var(--duration-fast, .15s)}.t2-composer:focus-within{border-color:color-mix(in srgb,var(--accent-ink) 55%,var(--border))}.t2-ta{border:none;outline:none;resize:none;background:transparent;font-family:var(--font-ui);font-size:var(--ui-font-body, 13px);line-height:1.5;color:var(--text);width:100%;max-height:240px;min-height:24px}.t2-ta::placeholder{color:var(--text-faint, var(--text-muted))}.t2-composer-row{display:flex;align-items:center;gap:8px}.t2-grow{flex:1}.t2-send{width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;background:var(--action-fill);color:var(--on-action, #fff);display:inline-flex;align-items:center;justify-content:center;transition:filter var(--duration-fast, .15s),opacity var(--duration-fast, .15s)}.t2-send:hover{filter:brightness(1.06)}.t2-send:disabled{background:var(--overlay-medium, rgba(127,127,127,.25));color:var(--text-faint, var(--text-muted));cursor:default}.t2-chips{display:flex;align-items:center;gap:8px;padding:0 4px}.t2-pill{display:inline-flex;align-items:center;gap:5px;font-size:var(--ui-font-caption, 11px);color:var(--text-muted);background:var(--overlay-light, rgba(127,127,127,.1));border-radius:var(--radius-pill, 999px);padding:4px 11px;cursor:pointer;border:none;transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}.t2-pill:hover{background:var(--overlay-medium, rgba(127,127,127,.18));color:var(--text)}.t2-preview-shell{display:flex;height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-ui)}.t2-preview-side{width:264px;flex-shrink:0;border-right:var(--border-width, 1px) solid var(--border)}.t2-preview-main{flex:1;min-width:0;display:flex;flex-direction:column}.t2-preview-right{width:250px;flex-shrink:0;border-left:var(--border-width, 1px) solid var(--border);display:flex;flex-direction:column;min-height:0}.t2-preview-right-title{height:38px;flex-shrink:0;display:flex;align-items:center;padding:0 12px;border-bottom:var(--border-width, 1px) solid var(--border);color:var(--text-muted);font-size:var(--ui-font-caption, 11px)}@media(max-width:1099px){.t2-preview-right{display:none}}.t2-voice{margin:2px 0 4px}.t2-voice-bar{display:inline-flex;align-items:center;gap:8px;min-width:200px;max-width:340px;padding:7px 10px;background:color-mix(in srgb,var(--accent-ink) 10%,var(--bg-secondary, var(--bg)));border:var(--border-width, 1px) solid color-mix(in srgb,var(--accent-ink) 26%,transparent);border-radius:var(--radius-pill, 999px)}.t2-voice-play{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;color:var(--on-action, #fff);background:var(--action-fill)}.t2-voice-play:hover{filter:brightness(1.08)}.t2-voice-track{flex:1;height:4px;border-radius:2px;background:color-mix(in srgb,var(--accent-ink) 22%,transparent);overflow:hidden}.t2-voice-track>span{display:block;height:100%;background:var(--accent-ink);transition:width .15s linear}.t2-voice-dur{flex-shrink:0;font-size:var(--ui-font-caption, 11px);color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:32px;text-align:right}.t2-voice-txt{flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:var(--radius-sm, 6px);cursor:pointer;color:var(--text-faint)}.t2-voice-txt:hover{color:var(--text);background:color-mix(in srgb,var(--text-muted) 14%,transparent)}.t2-content .wikilink,.t2-user .wikilink,.t2-content .citelink{color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.t2-content .wikilink:hover,.t2-user .wikilink:hover,.t2-content .citelink:hover{background:var(--drop);border-radius:3px}.t2-content .wikilink.wikilink-unresolved,.t2-user .wikilink.wikilink-unresolved{color:var(--text-muted);opacity:.75;text-decoration-style:dashed;cursor:default}.t2-chat-view{--tsum-w: 296px;--tsum-gut: 16px}.t2-rail{position:absolute;inset:0 0 0 auto;width:var(--tsum-w);display:flex;flex-direction:column;gap:10px;padding:16px var(--tsum-gut) 16px 0;box-sizing:border-box;pointer-events:none;z-index:5}.t2-tsum{display:none;flex:0 1 auto;min-height:0;pointer-events:auto;align-items:flex-start}.agent-desk-card{display:none;pointer-events:auto}.t2-tsum,.agent-desk-card{opacity:0;scale:.8;translate:100% 0;transform-origin:top right;transition:opacity var(--duration-fast, .15s) ease,scale .3s var(--ease-spring, ease),translate .3s var(--ease-spring, ease),display .3s allow-discrete}.t2-jump{transition:color var(--duration-fast, .15s),border-color var(--duration-fast, .15s)}@container (min-width: 760px){.t2-tsum.show,.agent-desk-card{display:flex}.t2-tsum.show,.agent-desk-card{opacity:1;scale:1;translate:none}@starting-style{.t2-tsum.show,.agent-desk-card{opacity:0;scale:.8;translate:100% 0}}.t2-rail:has(.agent-desk-card:not(.gone)) .t2-tsum.show{flex:0 0 calc(50% - 5px);align-items:stretch}.t2-rail:has(.agent-desk-card:not(.gone)) .t2-tsum.show .t2-tsum-in{height:100%}.agent-desk-card{flex:0 0 calc(50% - 5px);margin-top:auto}}@container (min-width: 760px){.t2-stream,.composer-anchor,.t2-chat-col>.t2-empty,.t2-jump{transition-property:padding-right,right;transition-duration:.45s;transition-timing-function:cubic-bezier(.32,.72,0,1)}.t2-jump{transition-property:right,color,border-color;transition-duration:.45s,var(--duration-fast, .15s),var(--duration-fast, .15s)}.t2-chat-view:has(.t2-tsum.show,.agent-desk-card:not(.gone)) .t2-stream{padding-right:var(--tsum-w)}.t2-chat-view:has(.t2-tsum.show,.agent-desk-card:not(.gone)) .composer-anchor{padding-right:var(--tsum-w)}.t2-chat-view:has(.t2-tsum.show,.agent-desk-card:not(.gone)) .t2-chat-col>.t2-empty{right:var(--tsum-w)}.t2-chat-view:has(.t2-tsum.show,.agent-desk-card:not(.gone)) .t2-jump{right:calc(var(--tsum-w) + 22px)}}@container (max-width: 759.9px){.t2-tsum,.agent-desk-card{pointer-events:none}}@media(prefers-reduced-motion:reduce){.t2-tsum,.agent-desk-card,.t2-jump,.t2-stream,.composer-anchor,.t2-chat-col>.t2-empty{transition:none}.t2-tsum,.agent-desk-card{scale:1;translate:none}}.t2-tsum-in{width:100%;box-sizing:border-box;max-height:100%;overflow-y:auto;padding:14px 16px 16px;border-radius:var(--radius-chat-surface, 20px);background:var(--bg-card, var(--bg));border:var(--border-width, 1px) solid var(--border);box-shadow:var(--card-shadow);display:flex;flex-direction:column;gap:8px;font-size:var(--ui-font-meta, 12px);color:var(--text)}.t2-tsum-state{display:flex;align-items:center;gap:7px;font-size:var(--ui-font-body, 13px);font-weight:600}.t2-tsum-state.running{color:var(--accent-ink)}.t2-tsum-state.attention,.t2-tsum-state.error{color:var(--danger)}.t2-tsum-state.stopped{color:var(--text-muted)}.t2-tsum-state-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t2-tsum-count{margin-left:auto;flex-shrink:0;font-size:var(--ui-font-caption, 11px);font-weight:600;color:var(--text-muted);background:var(--overlay-light, rgba(127, 127, 127, .1));border-radius:var(--radius-pill, 999px);padding:1px 7px}.t2-tsum-sub{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t2-tsum-sub.err{color:var(--danger)}.t2-tsum-attn{display:flex;align-items:center;gap:6px;width:100%;text-align:left;cursor:pointer;border:var(--border-width, 1px) solid var(--danger);border-radius:var(--radius-md, 12px);background:var(--danger-light, transparent);color:var(--danger);padding:8px 10px;font-size:var(--ui-font-meta, 12px);font-weight:600}.t2-tsum-sec{display:flex;flex-direction:column;margin-top:6px;interpolate-size:allow-keywords}.t2-tsum-sectitle{display:flex;align-items:center;gap:5px;margin-bottom:3px;font-size:var(--ui-font-body, 13px);font-weight:600;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.t2-tsum-sectitle::-webkit-details-marker{display:none}.t2-tsum-sectitle:hover{color:var(--accent-ink, var(--accent, var(--text)))}.t2-tsum-chev{flex-shrink:0;margin-left:auto;color:var(--text-faint, var(--text-muted));transition:transform var(--duration-slow, .25s) var(--ease-spring, ease)}.t2-tsum-count+.t2-tsum-chev{margin-left:0}.t2-tsum-secact{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm, 8px);color:var(--text-faint, var(--text-muted));transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}.t2-tsum-secact:hover{background:var(--overlay-light, rgba(127, 127, 127, .1));color:var(--text)}.t2-tsum-count+.t2-tsum-secact,.t2-tsum-secact+.t2-tsum-chev{margin-left:0}.t2-tsum-sec[open]>.t2-tsum-sectitle>.t2-tsum-chev{transform:rotate(90deg)}.t2-tsum-sec::details-content{block-size:0;overflow:hidden;transition:block-size var(--duration-slow, .25s) var(--ease-spring, ease),content-visibility var(--duration-slow, .25s) allow-discrete}.t2-tsum-sec[open]::details-content{block-size:auto}@media(prefers-reduced-motion:reduce){.t2-tsum-chev,.t2-tsum-sec::details-content{transition:none}}.t2-tsum-scroll{max-height:176px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.t2-tsum-more{align-self:flex-start;padding:3px 6px;margin-left:-6px;border:none;background:transparent;font:inherit;font-size:var(--ui-font-caption, 11px);cursor:pointer;border-radius:var(--radius-sm, 8px);color:var(--text-faint, var(--text-muted));transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}.t2-tsum-more:hover{color:var(--text);background:var(--overlay-light, rgba(127, 127, 127, .1))}.t2-tsum-todo{display:flex;gap:9px;align-items:baseline;line-height:1.5;padding:4px 0}.t2-tsum-todo-mark{width:12px;flex-shrink:0;color:var(--text-faint, var(--text-muted))}.t2-tsum-todo.completed{color:var(--text-muted)}.t2-tsum-todo.completed .t2-tsum-todo-mark{color:var(--green)}.t2-tsum-todo.in_progress{font-weight:600}.t2-tsum-todo.in_progress .t2-tsum-todo-mark{color:var(--accent-ink)}.t2-tsum-todo-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t2-tsum-row{display:flex;align-items:center;gap:9px;width:100%;text-align:left;color:var(--text);border-radius:var(--radius-sm, 8px);padding:6px;margin-left:-6px;border:none;background:transparent;font:inherit}.t2-tsum-row.act{cursor:pointer;text-decoration:none}.t2-tsum-row.act:hover{background:var(--overlay-light, rgba(127, 127, 127, .1))}.t2-tsum-row>svg{flex-shrink:0;color:var(--text-faint, var(--text-muted))}.t2-tsum-hits{flex-shrink:0;font-size:var(--ui-font-caption, 11px);color:var(--text-faint, var(--text-muted))}.t2-tsum-row-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t2-tsum-root .t2-tsum-x{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm, 8px);color:var(--text-faint, var(--text-muted));opacity:0;transition:opacity var(--duration-fast, .15s),background var(--duration-fast, .15s)}.t2-tsum-root:hover .t2-tsum-x,.t2-tsum-x:focus-visible{opacity:1}.t2-tsum-x:hover{background:var(--overlay-light, rgba(127, 127, 127, .1));color:var(--danger)}.t2-chat-col{position:relative;flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;container-type:size}.agent-desk{position:relative;display:flex;min-width:0;min-height:0;overflow:hidden;flex:0 0 auto;flex-basis:0%;transition:flex-basis .45s var(--ease-spring, cubic-bezier(.32, .72, 0, 1))}.agent-desk.open{flex-basis:var(--desk-w, 46%)}@starting-style{.agent-desk.open{flex-basis:0%}}.agent-desk.no-anim{transition:none}.agent-desk-card.gone{display:none;opacity:0;scale:.8;translate:100% 0}@media(prefers-reduced-motion:reduce){.agent-desk{transition:none}}.agent-desk-grip{flex:0 0 6px;margin-left:-3px;cursor:col-resize;z-index:3;border-radius:3px}.agent-desk-grip:hover,.agent-desk-grip:active{background:var(--accent-ink);opacity:.3}.agent-desk-inner{flex:1;min-width:0;display:flex;flex-direction:column;border-left:var(--border-width) solid var(--border)}.agent-desk-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;min-width:0;padding:5px 6px 5px 12px;border-bottom:var(--border-width) solid var(--border);font-size:var(--ui-font-meta, 12px);color:var(--text-muted)}.agent-desk-spark{color:var(--accent-ink);flex-shrink:0}.agent-desk-title{flex-shrink:0;font-weight:600;color:var(--text)}.agent-desk-note{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-desk-head .icon-btn{flex-shrink:0}.agent-desk-body{flex:1;min-height:0;display:flex;flex-direction:column}.agent-desk-pane{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.agent-desk-pane+.agent-desk-pane{border-top:var(--border-width) solid var(--border)}.agent-desk-pane>.wsfile-tab{height:auto;flex:1 1 0;min-height:0}.agent-desk-pane>.desk-note-wrap{flex:1 1 0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.agent-desk-pane>.desk-note-wrap>*{flex:1 1 0;min-height:0;min-width:0}.agent-desk-livepane{flex:1;min-height:0;display:flex;flex-direction:column}.agent-desk-livehead{flex:0 0 auto;display:flex;align-items:center;gap:6px;min-width:0;padding:6px 12px;font-size:var(--ui-font-meta, 12px);color:var(--text-muted);border-bottom:var(--border-width) solid var(--border)}.agent-desk-livehead-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-desk-livebody{flex:1;min-height:0;overflow:auto;margin:0;padding:10px 12px;font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--ui-font-caption, 11px);line-height:1.55;white-space:pre-wrap;word-break:break-all;color:var(--text)}.agent-desk-card{flex-direction:column;overflow:hidden;flex-shrink:0;border-radius:var(--radius-chat-surface, 20px);background:var(--bg-card, var(--bg));border:var(--border-width, 1px) solid var(--border);box-shadow:var(--card-shadow)}.agent-desk-card.act{cursor:zoom-in}.agent-desk-card.act:hover{border-color:color-mix(in srgb,var(--accent-ink) 45%,var(--border))}.agent-desk-card-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;min-width:0;padding:8px 8px 6px 12px;font-size:var(--ui-font-meta, 12px);font-weight:600;color:var(--text)}.agent-desk-card-head .icon-btn{flex-shrink:0}.agent-desk-card-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-desk-card-body{flex:1;min-height:0;display:flex;flex-direction:column;pointer-events:none;zoom:.75;border-top:var(--border-width, 1px) solid var(--border)}.agent-desk-card-body .wsfile-head,.agent-desk-card-body .amx-toolbar{display:none}.agent-desk-card-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-faint, var(--text-muted));font-size:var(--ui-font-meta, 12px)}.t2-tsum-edit{display:flex;align-items:center;gap:5px;width:100%;min-width:0;border:none;background:var(--overlay-light, rgba(127, 127, 127, .1));color:var(--accent-ink);border-radius:var(--radius-sm, 8px);padding:4px 6px;font-size:var(--ui-font-meta, 12px);cursor:pointer;text-align:left}.t2-tsum-edit:hover{background:var(--overlay, rgba(127, 127, 127, .18))}.t2-tsum-edit svg{flex-shrink:0}.t2-tsum-edit-tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@container (max-width: 759.9px){.agent-desk{display:none}}.t2-tool,.t2-todo,.t2-panelcard,.t2-tsum-in,.agent-desk-card,.t2-chat-col .tool-card:not(.err),.t2-chat-col .tool-group{border-color:transparent}.t2-jump-flash{animation:t2JumpFlash 1.6s ease-out;border-radius:var(--radius-md)}@keyframes t2JumpFlash{0%{background:var(--overlay-light)}to{background:transparent}}@media(prefers-reduced-motion:reduce){.t2-jump-flash{animation:none}}.t2-tasks{display:flex;flex-direction:column;gap:8px;margin-top:8px;max-width:100%}.t2-taskcard{border:var(--border-width, 1px) solid transparent;border-radius:var(--radius-md, 10px);background:var(--bg-card, transparent);padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-family:var(--font-ui);font-size:var(--ui-font-meta, 12px);color:var(--text)}.t2-taskcard.done{opacity:.7}.t2-taskcard-head{display:flex;align-items:center;gap:7px;min-width:0}.t2-taskcard-head>svg{color:var(--accent-ink);flex:none}.t2-taskcard-head>b{font-weight:600;overflow-wrap:anywhere}.t2-taskcard-tag{font-size:var(--ui-font-caption, 11px);line-height:1;padding:3px 7px;border-radius:var(--radius-pill, 999px);background:var(--overlay-light, rgba(127,127,127,.1));color:var(--text-muted)}.t2-taskcard-tldr{color:var(--text-muted);overflow-wrap:anywhere}.t2-taskcard-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.t2-taskcard-actions>button{border:var(--border-width, 1px) solid var(--border);border-radius:var(--radius-pill, 999px);background:transparent;color:var(--text);font-family:var(--font-ui);font-size:var(--ui-font-meta, 12px);padding:4px 11px;display:inline-flex;align-items:center;gap:5px;cursor:pointer;transition:background var(--duration-fast, .15s)}.t2-taskcard-actions>button:hover{background:var(--overlay-light, rgba(127,127,127,.1))}.t2-taskcard-actions>button.primary{border-color:var(--accent-ink);color:var(--accent-ink)}.t2-taskcard-actions>button>svg{flex:none}.t2-taskcard-done{color:var(--text-muted);font-size:var(--ui-font-meta, 12px)}.t2-taskcard.busy .t2-taskcard-actions>button{opacity:.6;cursor:progress}.t2-taskcard-toggle{align-self:flex-start;border:none;background:transparent;padding:0;cursor:pointer;color:var(--text-muted);font-family:var(--font-ui);font-size:var(--ui-font-meta, 12px);display:inline-flex;align-items:center;gap:4px}.t2-taskcard-toggle:hover{color:var(--text)}.t2-taskcard-prompt{margin:0;padding:8px 10px;border-radius:var(--radius-sm, 8px);background:var(--overlay-light, rgba(127,127,127,.08));color:var(--text);font-family:var(--font-mono, monospace);font-size:var(--ui-font-meta, 12px);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:260px;overflow-y:auto}.agent-desk-card-body.companion{zoom:1}.image-generation-jobs{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;width:100%;margin-top:4px}.image-generation-loader{width:min(280px,100%);min-width:0;display:flex;flex-direction:column;gap:7px}.image-generation-status{color:var(--text-faint);font-family:var(--font-ui);font-size:var(--ui-font-meta, 12px);line-height:1.4;font-variant-numeric:tabular-nums}.image-generation-stage{width:100%;aspect-ratio:1;display:block;overflow:hidden;padding:0;border:var(--border-width, 1px) solid transparent;border-radius:var(--radius-md);background:transparent;cursor:pointer;touch-action:none}.image-generation-stage:hover{background:var(--overlay-subtle)}.image-generation-stage:focus-visible{outline:none;border-color:var(--sel-line, var(--accent-ink));box-shadow:0 0 0 var(--focus-ring) var(--sel-fill, var(--accent-light))}.image-generation-canvas{width:100%;height:100%;display:block}.image-generation-loader.playing .image-generation-stage{cursor:crosshair}@media(prefers-reduced-motion:reduce){.image-generation-stage{transition:none}}.t2-quota-advisory{min-height:34px;display:flex;align-items:center;gap:9px;margin:-12px -14px 10px;padding:6px 7px 6px 12px;box-sizing:border-box;border-bottom:var(--border-width, 1px) solid var(--border);border-radius:calc(var(--radius-chat-surface, 20px) - var(--border-width, 1px)) calc(var(--radius-chat-surface, 20px) - var(--border-width, 1px)) 0 0;background:var(--overlay-light);color:var(--text);font-family:var(--font-ui);font-size:var(--ui-font-caption, 11px);line-height:1.35}.t2-quota-advisory-copy{min-width:0;flex:1 1 auto;display:inline-flex;align-items:center;gap:7px;font-weight:550}.t2-quota-advisory-copy>svg{flex:0 0 auto;color:var(--warning)}.t2-quota-advisory[data-level=critical] .t2-quota-advisory-copy>svg{color:var(--danger)}.t2-quota-advisory-actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px}.t2-quota-action,.t2-quota-dismiss{min-height:24px;border:0;border-radius:var(--radius-xs, 7px);background:transparent;color:inherit;font:inherit;cursor:pointer}.t2-quota-action{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;font-weight:600;white-space:nowrap}.t2-quota-action.upgrade{color:var(--accent-ink)}.t2-quota-action.reset{color:var(--text-muted)}.t2-quota-action.convert{color:var(--accent-ink)}.t2-quota-action.settings{color:var(--text-muted)}.t2-quota-action:hover:not(:disabled),.t2-quota-dismiss:hover{background:var(--overlay-medium)}.t2-quota-action:disabled{color:var(--text-faint);cursor:default}.t2-quota-dismiss{width:24px;flex:0 0 24px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted)}.t2-quota-action:focus-visible,.t2-quota-dismiss:focus-visible{outline:var(--focus-ring) solid var(--accent-ink);outline-offset:-2px}@container (max-width: 520px){.t2-quota-advisory{align-items:flex-start;flex-wrap:wrap;gap:3px 6px;padding-block:7px}.t2-quota-advisory-copy{flex-basis:calc(100% - 30px);min-height:24px}.t2-quota-advisory-actions{order:2;flex:1 1 auto;padding-left:21px}.t2-quota-dismiss{order:1}}@container (max-width: 360px){.t2-quota-advisory-copy>svg{display:none}.t2-quota-advisory-actions{padding-left:0}.t2-quota-action{padding-inline:5px}}.t2-user-refs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;white-space:normal}.t2-user-refs:last-child{margin-bottom:0}.t2-user-refs .attach-chip{max-width:240px}.t2-apv-pointer{display:flex;align-items:center;gap:6px;font-size:var(--ui-font-meta, 12px);margin:4px 0}.t2-apv-update{display:flex;flex-direction:column;align-items:center;gap:2px;margin:4px 0}.t2-apv-update-row{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%}.t2-apv-update-row[data-status=approved] svg{color:var(--green)}.t2-apv-update-row:not([data-status=approved]) svg{color:var(--danger)}.t2-apv-update-what{flex-shrink:0;color:var(--text-muted)}.t2-apv-update-preview{min-width:0;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t2-apv-update-by{max-width:100%;color:var(--text-faint, var(--text-muted));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t2-target-health[data-target-health=engine-auth] .t2-quota-advisory-copy>svg,.t2-target-health[data-target-health=caller-unavailable] .t2-quota-advisory-copy>svg,.t2-target-health[data-target-health=refused] .t2-quota-advisory-copy>svg,.t2-target-health[data-target-health=gone] .t2-quota-advisory-copy>svg{color:var(--danger)}.t2-target-health[data-target-health=connecting] .t2-quota-advisory-copy>svg{color:var(--text-muted)}.t2-target-health .t2-quota-advisory-copy>span{min-width:0;overflow-wrap:anywhere}html[data-chat-avatars=off] .t2-asst>.t2-avatar{visibility:hidden}html[data-chat-avatars=off] .t2-user-avatar,html[data-chat-avatars=off] .t2-username{display:none}.child-chat-panel .agent-desk-inner{padding:0;overflow:hidden}.child-chat-panel .agent-desk-head{padding:12px 16px;flex-shrink:0}.child-chat-hint{padding:0 16px 10px;color:var(--text-muted);font-size:var(--ui-font-caption, 11px);line-height:1.5}.child-chat-placeholder{padding:24px;color:var(--text-muted);font-size:var(--ui-font-body, 13px);overflow-wrap:anywhere}.child-chat-panel .t2-chat-view{width:100%}.child-chat-panel .t2-rail{display:none}.child-chat-panel .t2-stream{padding-inline:18px}.child-chat-panel .composer-anchor{inset-inline:12px}@container (max-width: 700px){.t2-chat-view:has(>.child-chat-panel)>.t2-chat-col{display:none}.child-chat-panel.agent-desk.open{flex:1 1 100%;min-width:0}}.reset-ceremony-backdrop{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:reset-ceremony-fade .3s ease-out both}.reset-ceremony{position:relative;width:min(100%,420px);padding:24px 28px 26px;max-height:calc(100dvh - 40px);overflow:auto;border:var(--border-width) solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--card-shadow);color:var(--text);font-family:var(--font-ui);text-align:center;animation:reset-ceremony-enter .48s cubic-bezier(.2,.75,.15,1) both}.reset-ceremony-close{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);color:var(--text-muted)}.reset-ceremony-close:hover{background:var(--menu-hover);color:var(--text)}.reset-ceremony-scene{position:relative;display:grid;place-items:center;height:166px;margin-bottom:2px}.reset-ceremony-halo{position:absolute;width:226px;height:142px;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 20%,transparent) 0%,transparent 68%);animation:reset-ceremony-halo 1.1s .7s ease-out both}.reset-ceremony-card{position:relative;width:158px;height:100px;padding:13px 15px;overflow:hidden;border:var(--border-width) solid color-mix(in srgb,var(--accent) 38%,var(--border));border-radius:var(--radius-md);background:linear-gradient(130deg,color-mix(in srgb,var(--accent) 18%,var(--bg-card)),var(--bg-card) 60%,color-mix(in srgb,var(--accent) 12%,var(--bg-card)));color:var(--accent-ink);text-align:left;transform:rotate(-9deg);animation:reset-ceremony-card 1s .15s cubic-bezier(.16,.8,.2,1) both}.reset-ceremony-card-top{display:flex;align-items:center;justify-content:space-between;font-size:var(--ui-font-caption);font-weight:700;letter-spacing:.12em}.reset-ceremony-card-mark{position:absolute;top:31px;left:14px;font-family:var(--font-ui);font-size:var(--ui-font-display);font-weight:750;line-height:1;opacity:.72;transform:scale(2.1);transform-origin:top left}.reset-ceremony-card-bottom{position:absolute;right:14px;bottom:12px;font-size:var(--ui-font-caption);font-weight:650;letter-spacing:.09em}.reset-ceremony-card-sheen{position:absolute;inset:-30% auto -30% -60%;width:38%;transform:rotate(24deg);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent-light) 80%,transparent),transparent);animation:reset-ceremony-sheen .85s .95s ease-out both}.reset-ceremony-seal{position:absolute;top:100px;left:calc(50% + 57px);display:grid;place-items:center;width:38px;height:38px;border:var(--border-width) solid var(--border);border-radius:50%;background:var(--action-fill);color:var(--on-action);animation:reset-ceremony-seal .5s 1.4s cubic-bezier(.2,1.3,.4,1) both}.reset-ceremony-eyebrow{color:var(--accent-ink);font-size:var(--ui-font-caption);font-weight:680;letter-spacing:.08em;animation:reset-ceremony-reveal .45s 1.35s ease-out both}.reset-ceremony h2{margin:8px 0 4px;font-size:var(--ui-font-display);line-height:var(--ui-line-display);font-weight:700;animation:reset-ceremony-reveal .45s 1.45s ease-out both}.reset-ceremony p{margin:0;color:var(--text-muted);font-size:var(--ui-font-body);line-height:var(--ui-line-body);animation:reset-ceremony-reveal .45s 1.55s ease-out both}.reset-ceremony-quotas{display:grid;gap:16px;margin-top:26px;text-align:left}.reset-ceremony-quota{animation:reset-ceremony-reveal .4s 1.75s ease-out both}.reset-ceremony-quota:nth-child(2){animation-delay:1.95s}.reset-ceremony-quota-copy{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:7px;font-size:var(--ui-font-meta)}.reset-ceremony-values{display:flex;gap:8px;align-items:baseline;color:var(--text-muted);font-variant-numeric:tabular-nums}.reset-ceremony-values strong{color:var(--accent-ink);font-size:var(--ui-font-body);font-weight:700;animation:reset-ceremony-reveal .35s 2.65s ease-out both}.reset-ceremony-quota:nth-child(2) .reset-ceremony-values strong{animation-delay:2.85s}.reset-ceremony-track{height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--overlay-medium)}.reset-ceremony-track span{display:block;height:100%;border-radius:inherit;background:var(--accent);animation:reset-ceremony-fill 1s 2.05s cubic-bezier(.18,.78,.2,1) both}.reset-ceremony-quota:nth-child(2) .reset-ceremony-track span{animation-delay:2.25s}.reset-ceremony-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:27px;color:var(--text-muted);font-size:var(--ui-font-meta)}.reset-ceremony-footer>span{animation:reset-ceremony-reveal .35s 2.85s ease-out both}.reset-ceremony-continue{min-height:34px;padding:0 15px;border-radius:var(--radius-sm);background:var(--action-fill);color:var(--on-action);font-size:var(--ui-font-meta);font-weight:650;animation:reset-ceremony-finish .35s 2.8s ease-out both}.reset-ceremony-continue:hover{background:var(--action-fill-hover)}html[data-glass=off] .reset-ceremony-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg)}@keyframes reset-ceremony-fade{0%{opacity:0}to{opacity:1}}@keyframes reset-ceremony-enter{0%{opacity:0;translate:0 12px;scale:.97}to{opacity:1;translate:0 0;scale:1}}@keyframes reset-ceremony-card{0%{opacity:0;transform:translateY(24px) rotate(-18deg) scale(.84)}to{opacity:1;transform:translateY(0) rotate(-9deg) scale(1)}}@keyframes reset-ceremony-halo{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}@keyframes reset-ceremony-sheen{0%{translate:0 0;opacity:0}25%{opacity:.7}to{translate:340px 0;opacity:0}}@keyframes reset-ceremony-seal{0%{opacity:0;scale:.45}to{opacity:1;scale:1}}@keyframes reset-ceremony-reveal{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@keyframes reset-ceremony-finish{0%{visibility:hidden;opacity:0;translate:0 6px}to{visibility:visible;opacity:1;translate:0 0}}@keyframes reset-ceremony-fill{0%{width:var(--reset-before)}to{width:var(--reset-after)}}@media(max-width:440px){.reset-ceremony{padding-inline:20px}.reset-ceremony-footer{flex-wrap:wrap}.reset-ceremony-continue{margin-left:auto}}@media(prefers-reduced-motion:reduce){.reset-ceremony-backdrop,.reset-ceremony,.reset-ceremony-halo,.reset-ceremony-card,.reset-ceremony-card-sheen,.reset-ceremony-seal,.reset-ceremony-eyebrow,.reset-ceremony h2,.reset-ceremony p,.reset-ceremony-quota,.reset-ceremony-values strong,.reset-ceremony-track span,.reset-ceremony-footer>span,.reset-ceremony-continue{animation:none}.reset-ceremony-continue{visibility:visible}.reset-ceremony-card{transform:rotate(-9deg)}.reset-ceremony-card-sheen{display:none}.reset-ceremony-track span{width:var(--reset-after)}}
|