@forsion/unit 2.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (791) hide show
  1. package/LICENSE +223 -0
  2. package/README.md +101 -0
  3. package/backendWorker.mjs +273 -0
  4. package/main.mjs +3434 -0
  5. package/package.json +26 -0
  6. package/release.json +11 -0
  7. package/web/assets/ArtificialView-B4ESD4iK.js +1 -0
  8. package/web/assets/AutomationBuilder-sxWdUa0L.js +1 -0
  9. package/web/assets/CalendarConfigView-cCfo_EvZ.js +1 -0
  10. package/web/assets/CalendarView-wgLapctk.js +1 -0
  11. package/web/assets/CapabilityMenu-BQBsM638.js +1 -0
  12. package/web/assets/CapabilityMenu-CTIzmTJB.css +1 -0
  13. package/web/assets/ChatView-BIUk0OJd.css +1 -0
  14. package/web/assets/ChatView-C-jCJnyS.js +47 -0
  15. package/web/assets/CheckboxInput-BsaoUHZ0.js +1 -0
  16. package/web/assets/Chrome-CwFiDmre.js +1 -0
  17. package/web/assets/CodeView-j065KtVh.js +15 -0
  18. package/web/assets/DancingScript-Bold-latin-CWNX0RqN.woff2 +0 -0
  19. package/web/assets/DashboardGridView-Ck3LKkOb.css +1 -0
  20. package/web/assets/DashboardGridView-DXqe0vPd.js +17 -0
  21. package/web/assets/EventCard-BmDQkEj9.js +1 -0
  22. package/web/assets/ExcalidrawCanvas-4uYrLYin.css +1 -0
  23. package/web/assets/ExcalidrawCanvas-C3egkikA.js +1 -0
  24. package/web/assets/FloatingToc-CENybkAA.js +1 -0
  25. package/web/assets/HomepageView-BNabJQfP.css +1 -0
  26. package/web/assets/HomepageView-CRdhjLXu.js +1 -0
  27. package/web/assets/ImageStudioPanels-Dke7xf8E.js +3 -0
  28. package/web/assets/ImageStudioView-g38V8gaj.js +1 -0
  29. package/web/assets/InlineFiles-C_hjvn3u.js +1 -0
  30. package/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  31. package/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  32. package/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  33. package/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  34. package/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  35. package/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  36. package/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  37. package/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  38. package/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  39. package/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  40. package/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  41. package/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  42. package/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  43. package/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  44. package/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  45. package/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  46. package/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  47. package/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  48. package/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  49. package/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  50. package/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  51. package/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  52. package/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  53. package/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  54. package/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  55. package/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  56. package/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  57. package/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  58. package/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  59. package/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  60. package/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  61. package/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  62. package/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  63. package/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  64. package/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  65. package/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  66. package/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  67. package/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  68. package/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  69. package/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  70. package/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  71. package/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  72. package/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  73. package/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  74. package/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  75. package/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  76. package/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  77. package/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  78. package/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  79. package/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  80. package/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  81. package/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  82. package/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  83. package/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  84. package/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  85. package/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  86. package/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  87. package/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  88. package/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  89. package/web/assets/MarkdownBlock-DIjYEhTK.js +56 -0
  90. package/web/assets/ModelPill-BPlgovPo.js +1 -0
  91. package/web/assets/ModelPill-CzdNh7Mt.css +1 -0
  92. package/web/assets/MuseLibraryView-CenyTTim.js +2 -0
  93. package/web/assets/MuseView-d-iBk3sc.js +6 -0
  94. package/web/assets/PageHistoryPanel-CR-k1AM7.js +2 -0
  95. package/web/assets/PageHistoryPanel-DFjh0pWs.css +1 -0
  96. package/web/assets/PdfAnnotator-CGzC_o1Q.css +1 -0
  97. package/web/assets/PdfAnnotator-D79ip27w.js +560 -0
  98. package/web/assets/ProductView-u2aezVsl.js +1 -0
  99. package/web/assets/RightPanel-C3OJTIqT.js +4 -0
  100. package/web/assets/RunLocationPicker-BNcZ7KKF.css +1 -0
  101. package/web/assets/RunLocationPicker-CTYXUH2z.js +34 -0
  102. package/web/assets/SidebarRow-BuSkKH5q.js +9 -0
  103. package/web/assets/SidebarRow-CsWEqPKX.css +1 -0
  104. package/web/assets/SketchCard-D87GADyG.js +437 -0
  105. package/web/assets/StudioGuestSurface-BijU_EEb.js +1 -0
  106. package/web/assets/TodoListView-DPPVpPUn.js +1 -0
  107. package/web/assets/Tooltip-DY4ISA-e.js +1 -0
  108. package/web/assets/UnifiedPage-CKNtVD_n.js +57 -0
  109. package/web/assets/UnifiedPage-DX_sTpyZ.css +1 -0
  110. package/web/assets/amadeus-manual.en-DWaN2fPs.js +3515 -0
  111. package/web/assets/amadeus-manual.zh--7D5TS8X.js +3515 -0
  112. package/web/assets/apl-B4CMkyY2.js +1 -0
  113. package/web/assets/appStore-Dg9WALEA.js +3080 -0
  114. package/web/assets/appStore-Di8LXuJ9.css +1 -0
  115. package/web/assets/approvalText-Cy2UAUAQ.js +2 -0
  116. package/web/assets/arrow-up-right-CpQs92mu.js +1 -0
  117. package/web/assets/artificial-BzLFkChP.css +1 -0
  118. package/web/assets/asciiarmor-Df11BRmG.js +1 -0
  119. package/web/assets/asn1-EdZsLKOL.js +1 -0
  120. package/web/assets/asterisk-B-8jnY81.js +1 -0
  121. package/web/assets/astryxBridge-BZhaZPs4.js +70 -0
  122. package/web/assets/astryxBridge-CF_hpqC2.css +1 -0
  123. package/web/assets/automationListSource-DP5xZBxo.js +1 -0
  124. package/web/assets/brainfuck-C4LP7Hcl.js +1 -0
  125. package/web/assets/calendarNavStore-C7fGRpoH.js +1 -0
  126. package/web/assets/canvasPrefs-BeG4oEgP.js +1 -0
  127. package/web/assets/chatBoxSurface-zvcyfrxE.js +1 -0
  128. package/web/assets/circle-question-mark-WL3vbp-Z.js +1 -0
  129. package/web/assets/circle-x-D7s-M5sB.js +1 -0
  130. package/web/assets/client-BSKpsyAw.js +9 -0
  131. package/web/assets/clike-B9uivgTg.js +1 -0
  132. package/web/assets/clojure-BMjYHr_A.js +1 -0
  133. package/web/assets/cmake-BQqOBYOt.js +1 -0
  134. package/web/assets/cobol-CWcv1MsR.js +1 -0
  135. package/web/assets/code-xml-BALV9u_c.js +1 -0
  136. package/web/assets/codeStudioStore-C2mWfm32.js +22 -0
  137. package/web/assets/coffeescript-S37ZYGWr.js +1 -0
  138. package/web/assets/commonlisp-DBKNyK5s.js +1 -0
  139. package/web/assets/create-4xUyKtAF.js +14 -0
  140. package/web/assets/create-BgE3edmZ.css +1 -0
  141. package/web/assets/crystal-SjHAIU92.js +1 -0
  142. package/web/assets/css-BnMrqG3P.js +1 -0
  143. package/web/assets/cursor-editorTextHighlight-kG3uUOwL.svg +8 -0
  144. package/web/assets/cypher-C_CwsFkJ.js +1 -0
  145. package/web/assets/d-pRatUO7H.js +1 -0
  146. package/web/assets/dashboardSurface-CFTH5z4c.js +1 -0
  147. package/web/assets/deskCapture-Df701U8L.js +1 -0
  148. package/web/assets/diff-DbItnlRl.js +1 -0
  149. package/web/assets/diff2html-BV-zCH4d.js +111 -0
  150. package/web/assets/dockerfile-BKs6k2Af.js +1 -0
  151. package/web/assets/docx-preview-DW4IyU_Q.js +22 -0
  152. package/web/assets/dtd-DF_7sFjM.js +1 -0
  153. package/web/assets/dylan-DwRh75JA.js +1 -0
  154. package/web/assets/ebnf-CDyGwa7X.js +1 -0
  155. package/web/assets/ecl-Cabwm37j.js +1 -0
  156. package/web/assets/eiffel-CnydiIhH.js +1 -0
  157. package/web/assets/ellipsis-r1EcXsFq.js +1 -0
  158. package/web/assets/elm-vLlmbW-K.js +1 -0
  159. package/web/assets/emoji-DGaxpCIu.js +1 -0
  160. package/web/assets/erlang-BNw1qcRV.js +1 -0
  161. package/web/assets/factor-kuTfRLto.js +1 -0
  162. package/web/assets/fcl-Kvtd6kyn.js +1 -0
  163. package/web/assets/floatingTocSurface-C6RJ6i41.js +1 -0
  164. package/web/assets/foldActions-B7KByFdN.js +1 -0
  165. package/web/assets/folder-DlxnPmWY.js +1 -0
  166. package/web/assets/folder-plus-D1TDb7k9.js +1 -0
  167. package/web/assets/forsion-logo-dark-DnB9JTdv.svg +5 -0
  168. package/web/assets/forsion-logo-light-DhkEeB4V.svg +11 -0
  169. package/web/assets/forth-Ffai-XNe.js +1 -0
  170. package/web/assets/fortran-DYz_wnZ1.js +1 -0
  171. package/web/assets/frame-_xBVYe3P.js +1 -0
  172. package/web/assets/gas-Bneqetm1.js +1 -0
  173. package/web/assets/gestures-CkW1Kfs9.js +1 -0
  174. package/web/assets/gherkin-heZmZLOM.js +1 -0
  175. package/web/assets/groovy-D9Dt4D0W.js +1 -0
  176. package/web/assets/hack2gate-dark-Dx2RtDRI.jpg +0 -0
  177. package/web/assets/hack2gate-light-DRKq9tyS.jpg +0 -0
  178. package/web/assets/hand-Crrw-nSn.js +1 -0
  179. package/web/assets/hard-drive-BbyVSbfP.js +1 -0
  180. package/web/assets/haskell-Cw1EW3IL.js +1 -0
  181. package/web/assets/haxe-H-WmDvRZ.js +1 -0
  182. package/web/assets/http-DBlCnlav.js +1 -0
  183. package/web/assets/i18n-D-eU58uw.css +1 -0
  184. package/web/assets/i18n.generated-Bbsz16cl.js +15 -0
  185. package/web/assets/idl-BEugSyMb.js +1 -0
  186. package/web/assets/imageStudio-BqbNOvpu.css +1 -0
  187. package/web/assets/imageStudio-C_Rs630L.js +2 -0
  188. package/web/assets/index--drOLtq7.js +1 -0
  189. package/web/assets/index-BCZZVJ_w.js +1 -0
  190. package/web/assets/index-BCubCwdT.js +1 -0
  191. package/web/assets/index-BRW82CsP.js +6 -0
  192. package/web/assets/index-BYsdKR_1.js +1 -0
  193. package/web/assets/index-Brik2pf9.js +1 -0
  194. package/web/assets/index-C6GJulug.js +13 -0
  195. package/web/assets/index-C7U6T-k8.js +1 -0
  196. package/web/assets/index-CF4RV4mh.js +298 -0
  197. package/web/assets/index-CflzrdSt.js +1 -0
  198. package/web/assets/index-Cmr7gVZQ.js +1 -0
  199. package/web/assets/index-CqyM6tQ0.js +1 -0
  200. package/web/assets/index-CzM-C2Sd.js +1 -0
  201. package/web/assets/index-Czu_bbDM.js +1 -0
  202. package/web/assets/index-D1f_JwPH.js +1 -0
  203. package/web/assets/index-DKhyDkGB.js +7 -0
  204. package/web/assets/index-DUWR2nZi.js +1 -0
  205. package/web/assets/index-DZfZTksa.js +1 -0
  206. package/web/assets/index-Dg9oixs4.js +1 -0
  207. package/web/assets/index-DjzSBM0U.js +2 -0
  208. package/web/assets/index-KL5Rj9kP.js +1 -0
  209. package/web/assets/index-OHi69jDq.js +3 -0
  210. package/web/assets/index-SZ5waGAq.js +1 -0
  211. package/web/assets/index-gPSbFSUn.js +1 -0
  212. package/web/assets/index-tAXBa_fN.js +1 -0
  213. package/web/assets/invitePage-lLQ-e0pj.js +19 -0
  214. package/web/assets/ipc-DQOD2UKk.js +1 -0
  215. package/web/assets/javascript-iXu5QeM3.js +1 -0
  216. package/web/assets/jszip.min-DZxV9uZ_.js +2 -0
  217. package/web/assets/julia-DuME0IfC.js +1 -0
  218. package/web/assets/layout-grid-B_pjJwz4.js +1 -0
  219. package/web/assets/linkFollow-C0_3k_PC.js +8 -0
  220. package/web/assets/list-tree-DkAJYEXd.js +1 -0
  221. package/web/assets/listFold-BsOVn9UZ.js +1 -0
  222. package/web/assets/livescript-BwQOo05w.js +1 -0
  223. package/web/assets/lock-BnGHxjeE.js +1 -0
  224. package/web/assets/log-out-DBuMeqik.js +1 -0
  225. package/web/assets/lua-VAEuO923.js +1 -0
  226. package/web/assets/main-Dki8NlsT.js +21 -0
  227. package/web/assets/main-NgUPPqDn.css +1 -0
  228. package/web/assets/markdownEditorSurface-B4PeUzed.js +3 -0
  229. package/web/assets/markdownEditorSurface-Bql20IAf.css +1 -0
  230. package/web/assets/mathematica-DTrFuWx2.js +1 -0
  231. package/web/assets/mbox-CNhZ1qSd.js +1 -0
  232. package/web/assets/mdMarkStore-CsKl7C8O.js +2 -0
  233. package/web/assets/mdMarks-Bq7Hl-4C.js +1 -0
  234. package/web/assets/message-square-plus-BiAZAvcw.js +1 -0
  235. package/web/assets/messages-BH5MfQdZ.js +1 -0
  236. package/web/assets/minus-Cyv1YzOU.js +1 -0
  237. package/web/assets/mirc-CjQqDB4T.js +1 -0
  238. package/web/assets/mllike-CXdrOF99.js +1 -0
  239. package/web/assets/mobileEntry-Bd_nKr0D.js +13 -0
  240. package/web/assets/mobileEntry-DS1vohuL.css +1 -0
  241. package/web/assets/modelica-Dc1JOy9r.js +1 -0
  242. package/web/assets/mscgen-BA5vi2Kp.js +1 -0
  243. package/web/assets/mumps-BT43cFF4.js +1 -0
  244. package/web/assets/nativeDownload-D-f1_L2S.js +1 -0
  245. package/web/assets/nginx-DdIZxoE0.js +1 -0
  246. package/web/assets/nsis-LdVXkNf5.js +1 -0
  247. package/web/assets/ntriples-BfvgReVJ.js +1 -0
  248. package/web/assets/octave-Ck1zUtKM.js +1 -0
  249. package/web/assets/oz-BzwKVEFT.js +1 -0
  250. package/web/assets/pageChrome-C9_azUYW.js +1 -0
  251. package/web/assets/pageChrome-xLNdFaSg.css +1 -0
  252. package/web/assets/pageTree-CZH2J6cc.js +7 -0
  253. package/web/assets/panel-left-rOc8As0s.js +1 -0
  254. package/web/assets/pascal--L3eBynH.js +1 -0
  255. package/web/assets/pdf-C2_sJa3b.js +57 -0
  256. package/web/assets/pdf.worker.min-CGb3BKV9.js +1 -0
  257. package/web/assets/pdf.worker.min-Dr1KORA9.mjs +31 -0
  258. package/web/assets/pen-line-m6_HvWZ9.js +1 -0
  259. package/web/assets/pen-tool-lkmBqliH.js +1 -0
  260. package/web/assets/pencil-Cvk91P_Z.js +1 -0
  261. package/web/assets/perl-CdXCOZ3F.js +1 -0
  262. package/web/assets/pig-CevX1Tat.js +1 -0
  263. package/web/assets/pluginExt-Byb64tQO.js +1 -0
  264. package/web/assets/powershell-CFHJl5sT.js +1 -0
  265. package/web/assets/properties-C78fOPTZ.js +1 -0
  266. package/web/assets/protobuf-ChK-085T.js +1 -0
  267. package/web/assets/pug-DeIclll2.js +1 -0
  268. package/web/assets/puppet-DMA9R1ak.js +1 -0
  269. package/web/assets/python-BuPzkPfP.js +1 -0
  270. package/web/assets/q-pXgVlZs6.js +1 -0
  271. package/web/assets/r-B6wPVr8A.js +1 -0
  272. package/web/assets/redo-2-DSi54z4e.js +1 -0
  273. package/web/assets/rotate-ccw-CUlnplr0.js +1 -0
  274. package/web/assets/rpm-CTu-6PCP.js +1 -0
  275. package/web/assets/ruby-B2Rjki9n.js +1 -0
  276. package/web/assets/sas-B4kiWyti.js +1 -0
  277. package/web/assets/scheme-C41bIUwD.js +1 -0
  278. package/web/assets/sharePage-MM6UpPJ9.js +2 -0
  279. package/web/assets/shareViewer-CDZ8lTdy.js +345 -0
  280. package/web/assets/shareViewer-DLVrwanO.css +1 -0
  281. package/web/assets/shell-CjFT_Tl9.js +1 -0
  282. package/web/assets/sieve-C3Gn_uJK.js +1 -0
  283. package/web/assets/simple-mode-GW_nhZxv.js +1 -0
  284. package/web/assets/smalltalk-CnHTOXQT.js +1 -0
  285. package/web/assets/solr-DehyRSwq.js +1 -0
  286. package/web/assets/sparql-DkYu6x3z.js +1 -0
  287. package/web/assets/spreadsheet-BCZA_wO0.js +1 -0
  288. package/web/assets/sql-D0XecflT.js +1 -0
  289. package/web/assets/star-CwDiGyUW.js +1 -0
  290. package/web/assets/stex-C3f8Ysf7.js +1 -0
  291. package/web/assets/sticky-note-BIuPUSOU.js +1 -0
  292. package/web/assets/stylus-B533Al4x.js +1 -0
  293. package/web/assets/swift-BzpIVaGY.js +1 -0
  294. package/web/assets/tableSurface-CDNa0QFp.css +1 -0
  295. package/web/assets/tableSurface-Y_JBQsuz.js +1 -0
  296. package/web/assets/tcl-DVfN8rqt.js +1 -0
  297. package/web/assets/terminal-DIXogYJY.js +1 -0
  298. package/web/assets/terminalView-B3aZSsrQ.js +12 -0
  299. package/web/assets/terminalView-DFuMZ0ql.css +1 -0
  300. package/web/assets/textile-CnDTJFAw.js +1 -0
  301. package/web/assets/theme-DfEi_DND.css +1 -0
  302. package/web/assets/theme-OMpAfNto.css +1 -0
  303. package/web/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  304. package/web/assets/tiki-DGYXhP31.js +1 -0
  305. package/web/assets/toml-Bm5Em-hy.js +1 -0
  306. package/web/assets/troff-wAsdV37c.js +1 -0
  307. package/web/assets/ttcn-CfJYG6tj.js +1 -0
  308. package/web/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  309. package/web/assets/turtle-B1tBg_DP.js +1 -0
  310. package/web/assets/type-Cqoabh7H.js +1 -0
  311. package/web/assets/undo-2-tUKCv5Gs.js +1 -0
  312. package/web/assets/unitAccount-D8lVwaaT.js +1 -0
  313. package/web/assets/unitBridge-D547ublk.js +1 -0
  314. package/web/assets/unitCloudTransport-BVF6lVp4.js +1 -0
  315. package/web/assets/unitOwnerAccess-BfnEjsZb.js +1 -0
  316. package/web/assets/unitShim-DxetRgmP.js +5 -0
  317. package/web/assets/upload-BbeAsMuD.js +1 -0
  318. package/web/assets/userSpaces-DyyAn7vj.js +1 -0
  319. package/web/assets/vb-CmGdzxic.js +1 -0
  320. package/web/assets/vbscript-BuJXcnF6.js +1 -0
  321. package/web/assets/velocity-D8B20fx6.js +1 -0
  322. package/web/assets/verilog-C6RDOZhf.js +1 -0
  323. package/web/assets/vhdl-lSbBsy5d.js +1 -0
  324. package/web/assets/viewportLock-C4SX-9PO.js +103 -0
  325. package/web/assets/viewportLock-DYSe7Jsn.css +1 -0
  326. package/web/assets/waves-horizontal-B8ZpHQ5H.js +1 -0
  327. package/web/assets/webidl-ZXfAyPTL.js +1 -0
  328. package/web/assets/workflow-DuoVRSSX.js +1 -0
  329. package/web/assets/xlsx-CNerDvZX.js +105 -0
  330. package/web/assets/xquery-DzFWVndE.js +1 -0
  331. package/web/assets/yacas-BJ4BC0dw.js +1 -0
  332. package/web/assets/z80-Hz9HOZM7.js +1 -0
  333. package/web/assets/zoom-in-hr5bRpDL.js +1 -0
  334. package/web/excalidraw/excalidraw.css +1 -0
  335. package/web/excalidraw/excalidraw.js +579 -0
  336. package/web/excalidraw/fonts/Assistant/Assistant-Bold.woff2 +0 -0
  337. package/web/excalidraw/fonts/Assistant/Assistant-Medium.woff2 +0 -0
  338. package/web/excalidraw/fonts/Assistant/Assistant-Regular.woff2 +0 -0
  339. package/web/excalidraw/fonts/Assistant/Assistant-SemiBold.woff2 +0 -0
  340. package/web/excalidraw/fonts/Cascadia/CascadiaCode-Regular.woff2 +0 -0
  341. package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-279a7b317d12eb88de06167bd672b4b4.woff2 +0 -0
  342. package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-6e066e8de2ac57ea9283adb9c24d7f0c.woff2 +0 -0
  343. package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-dc6a8806fa96795d7b3be5026f989a17.woff2 +0 -0
  344. package/web/excalidraw/fonts/ComicShanns/ComicShanns-Regular-fcb0fc02dcbee4c9846b3e2508668039.woff2 +0 -0
  345. package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-349fac6ca4700ffec595a7150a0d1e1d.woff2 +0 -0
  346. package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-3f2c5db56cc93c5a6873b1361d730c16.woff2 +0 -0
  347. package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-41b173a47b57366892116a575a43e2b6.woff2 +0 -0
  348. package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-623ccf21b21ef6b3a0d87738f77eb071.woff2 +0 -0
  349. package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2 +0 -0
  350. package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-b9dcf9d2e50a1eaf42fc664b50a3fd0d.woff2 +0 -0
  351. package/web/excalidraw/fonts/Excalifont/Excalifont-Regular-be310b9bcd4f1a43f571c46df7809174.woff2 +0 -0
  352. package/web/excalidraw/fonts/Liberation/LiberationSans-Regular.woff2 +0 -0
  353. package/web/excalidraw/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYE98RXi4EwSsbg.woff2 +0 -0
  354. package/web/excalidraw/fonts/Lilita/Lilita-Regular-i7dPIFZ9Zz-WBtRtedDbYEF8RXi4EwQ.woff2 +0 -0
  355. package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTA3j6zbXWjgevT5.woff2 +0 -0
  356. package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTQ3j6zbXWjgeg.woff2 +0 -0
  357. package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTk3j6zbXWjgevT5.woff2 +0 -0
  358. package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTo3j6zbXWjgevT5.woff2 +0 -0
  359. package/web/excalidraw/fonts/Nunito/Nunito-Regular-XRXI3I6Li01BKofiOc5wtlZ2di8HDIkhdTs3j6zbXWjgevT5.woff2 +0 -0
  360. package/web/excalidraw/fonts/Virgil/Virgil-Regular.woff2 +0 -0
  361. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-019d66dcad46dc156b162d267f981c20.woff2 +0 -0
  362. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-04b718e5623574919c8b0dea5f301444.woff2 +0 -0
  363. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-069e77aac84590e2e991d0a0176d34f2.woff2 +0 -0
  364. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-06c77b8c66e51ed6c63ccb502dd8b8af.woff2 +0 -0
  365. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-08e0dc436ad0ad61ba5558db0674d762.woff2 +0 -0
  366. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-093b9ef39a46ceae95a1df18a0a3a326.woff2 +0 -0
  367. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-095c169f3314805276f603a362766abd.woff2 +0 -0
  368. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-09850c4077f3fffe707905872e0e2460.woff2 +0 -0
  369. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0986d134c05864f5025962eef9f994a0.woff2 +0 -0
  370. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0b5d723fdc4e249c140f0909e87d03b4.woff2 +0 -0
  371. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0f626226ba1272e832aea87bafd9720e.woff2 +0 -0
  372. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0f7fb1e0d5015bb1371343153ecf7ce3.woff2 +0 -0
  373. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0fa55a080fcd0f9dc2e0b0058b793df8.woff2 +0 -0
  374. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-0facdf1ea213ba40261022f5d5ed4493.woff2 +0 -0
  375. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-10a7ae9a371830a80c3d844acf1c02d7.woff2 +0 -0
  376. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-112c051027b2d766c19a519f6ee1f4f7.woff2 +0 -0
  377. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-11c345711937f0ba4b8f7b6b919c8440.woff2 +0 -0
  378. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-12b52b58eb3df36804b9a654ec9ee194.woff2 +0 -0
  379. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-13ae07ed2e272d26d59bc0691cd7117a.woff2 +0 -0
  380. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-13d2887ec8ee73c43acdabc52a05af7b.woff2 +0 -0
  381. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-145aa02cdd91946e67dc934e1acffe75.woff2 +0 -0
  382. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-15dc6d811c9cd078f9086a740d5a1038.woff2 +0 -0
  383. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-173945821411c09f70c95f98d590e697.woff2 +0 -0
  384. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1b611157cd46bb184d4fa4dae2d6a2b8.woff2 +0 -0
  385. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1e6fd68f1f3902ce48ce8c69df385622.woff2 +0 -0
  386. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1ee544f0f1dac422545c505baa788992.woff2 +0 -0
  387. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-1fdc0c67ed57263a80fd108c1f6ccf24.woff2 +0 -0
  388. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-203b0e569e3b14aac86a003dc3fa523e.woff2 +0 -0
  389. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-20cc1bbf50e7efb442756cb605672c1f.woff2 +0 -0
  390. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-20e7bf72fa05de9adf7dbcc7bf51dde6.woff2 +0 -0
  391. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-21430ee05a1248901da8d0de08744d47.woff2 +0 -0
  392. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-23686f7f29da6e8008c36dd3a80c83d6.woff2 +0 -0
  393. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-23ad2d71b280f00b1363b95b7bea94eb.woff2 +0 -0
  394. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-23f228f3999c01983860012330e4be08.woff2 +0 -0
  395. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-24476a126f129212beb33f66853ea151.woff2 +0 -0
  396. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-24a21c1e4449222e8d1898d69ff3a404.woff2 +0 -0
  397. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-25b7f38e18f035f96cb5e547bd2bd08c.woff2 +0 -0
  398. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-29cec36cd205b211da97acabaa62f055.woff2 +0 -0
  399. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2a26d20a23b00898ce82f09d2ee47c3f.woff2 +0 -0
  400. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2adbc89c11e65905393d3dfc468b9d5b.woff2 +0 -0
  401. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2b7441d46298788ac94e610ffcc709b6.woff2 +0 -0
  402. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2b77e8ebfb2367ab2662396a60e7d320.woff2 +0 -0
  403. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2cf96d082d35ea3d8106851223ad0d16.woff2 +0 -0
  404. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2d43040e86ff03ba677f6f9c04cd0805.woff2 +0 -0
  405. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-2e33e8dc771ef5e1d9127d60a6b73679.woff2 +0 -0
  406. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-33432927cd87d40cfe393c7482bf221f.woff2 +0 -0
  407. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-353f33792a8f60dc69323ddf635a269e.woff2 +0 -0
  408. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-36925dfe329a45086cbb7fc5c20d45ac.woff2 +0 -0
  409. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3717077e38f98d89eae729b6c14e56dc.woff2 +0 -0
  410. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3756e81d3e149cf6099163ee79944fec.woff2 +0 -0
  411. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-395c35dd584b56b0789f58a0559beaf1.woff2 +0 -0
  412. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3c9de2ae0ea4bc91a510942dfa4be8d2.woff2 +0 -0
  413. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3cc70dbb64df5b21f1326cc24dee2195.woff2 +0 -0
  414. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3e1f8f654357353bf0e04ba5c34b5f7f.woff2 +0 -0
  415. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3e63ed8162808a9e425ed80a8bc79114.woff2 +0 -0
  416. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-3eaa538115d76932653c21d8dc28f207.woff2 +0 -0
  417. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4095eb84ef3874e2600247bee0b04026.woff2 +0 -0
  418. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-41521fade99856108931b4768b1b2648.woff2 +0 -0
  419. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-450da755d5bcb70906e1295e559b9602.woff2 +0 -0
  420. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-452225341522a7942f0f6aab1a5c91a3.woff2 +0 -0
  421. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4535823663ad81405188a528d8f2b1a2.woff2 +0 -0
  422. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4806e761d750087c2d734fc64596eaff.woff2 +0 -0
  423. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4a0fdb40036e87b40aa08dd30584cb85.woff2 +0 -0
  424. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4a38cc3e9cf104e69ba246d37f8cf135.woff2 +0 -0
  425. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4aca6a43e59aceee2166b0c7e4e85ef1.woff2 +0 -0
  426. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4bfaa8ffa64c5ee560aa2daba7c9cbd3.woff2 +0 -0
  427. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4dc6d5f188d5c96d44815cd1e81aa885.woff2 +0 -0
  428. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4ddc14ed3eb0c3e46364317dfc0144a3.woff2 +0 -0
  429. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4ee10ae43505e2e0bc62656ced49c0fa.woff2 +0 -0
  430. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-4f50e5136e136527280bc902c5817561.woff2 +0 -0
  431. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-51502f1206be09c565f1547c406e9558.woff2 +0 -0
  432. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-51a0e808bbc8361236ac521a119758a3.woff2 +0 -0
  433. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-52a84a22fd1369bffeaf21da2d6158dc.woff2 +0 -0
  434. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5330a2119a716e4e7224ed108b085dac.woff2 +0 -0
  435. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-543fa46ace099a7099dad69123399400.woff2 +0 -0
  436. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-544fc28abe2c5c30e62383fd4dac255f.woff2 +0 -0
  437. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-54acdfc2166ad7fcbd074f75fd4a56ba.woff2 +0 -0
  438. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5572b3513ba8df57a3d5d7303ee6b11b.woff2 +0 -0
  439. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-56467a5c8840c4d23a60b2f935114848.woff2 +0 -0
  440. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-56a32a7689abd0326e57c10c6c069bb4.woff2 +0 -0
  441. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-57862b464a55b18c7bf234ce22907d73.woff2 +0 -0
  442. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-583d166e56ba0de4b77eabb47ef67839.woff2 +0 -0
  443. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5882ffa04f32584d26109137e2da4352.woff2 +0 -0
  444. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-58fd02350d0bc52cf1ca3bb32ce9766e.woff2 +0 -0
  445. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5935a5775af3d5c6307ac667bd9ae74e.woff2 +0 -0
  446. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-59e9ff77b0efaf684bc09274fb6908c9.woff2 +0 -0
  447. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5a1ce3117cfe90c48e8fb4a9a00f694d.woff2 +0 -0
  448. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5a45d991244d4c7140217e1e5f5ca4f4.woff2 +0 -0
  449. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5a7fac4b8b23a6e4e5ba0c9bf1756c91.woff2 +0 -0
  450. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5b0ed6971aaab9c8ad563230bd5471a7.woff2 +0 -0
  451. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-5d2898fbc097a7e24c6f38d80587621e.woff2 +0 -0
  452. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-603aefd23e350ba7eb124273e3c9bcf1.woff2 +0 -0
  453. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-60a3089806700d379f11827ee9843b6b.woff2 +0 -0
  454. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-60a41c7e1c68f22424e6d22df544bc82.woff2 +0 -0
  455. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-642b26e2e5f5fb780b51b593dbc8c851.woff2 +0 -0
  456. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-66493ba5a8367f2928812f446f47b56a.woff2 +0 -0
  457. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-670ba603758d94268e8606f240a42e12.woff2 +0 -0
  458. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-671a2c20b1eb9e4ef8a192833940e319.woff2 +0 -0
  459. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-684d65f1793cac449dde5d59cb3c47fb.woff2 +0 -0
  460. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-69c09cc5fa3e55c74fc4821f76909cc3.woff2 +0 -0
  461. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6ae5b42180ad70b971c91e7eefb8eba2.woff2 +0 -0
  462. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6e092f71c1e634059ada0e52abadce67.woff2 +0 -0
  463. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6f3256af8454371776bc46670d33cc65.woff2 +0 -0
  464. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-6fe5c5973cc06f74b2387a631ea36b88.woff2 +0 -0
  465. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-70c2eb8d64e71a42a834eb857ea9df51.woff2 +0 -0
  466. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-70e811fd7994e61f408c923de6ddd078.woff2 +0 -0
  467. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7197d6fda6cba7c3874c53d6381ca239.woff2 +0 -0
  468. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-72252d73220fa3cd856677888cee1635.woff2 +0 -0
  469. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-72536a3d71b694a0d53dd90ddceae41e.woff2 +0 -0
  470. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-726303e0774b4e678bff8c2deb6ca603.woff2 +0 -0
  471. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-733171b4ffcd17ea1fe1c0ba627173bf.woff2 +0 -0
  472. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-739bc1a567439c7cffcd1614644593d2.woff2 +0 -0
  473. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-73e309718fd16cea44b4d54a33581811.woff2 +0 -0
  474. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7494dc504ae00ee9cd0505f990f88c5d.woff2 +0 -0
  475. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-74e2263a91439c25b91d5132ce9f4d62.woff2 +0 -0
  476. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-761d05e3cd968cf574166867998ef06a.woff2 +0 -0
  477. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7718fe60986d8b42b1be9c5ace5ccf25.woff2 +0 -0
  478. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-774d4f764a1299da5d28ec2f2ffe0d69.woff2 +0 -0
  479. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-79d494361ae093b69e74ee9dbe65bfd4.woff2 +0 -0
  480. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-79f007c1c6d07557120982951ea67998.woff2 +0 -0
  481. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7a07ddc0f0c0f5f4a9bad6ee3dda66b5.woff2 +0 -0
  482. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7ab2bed91166a9dca83a5ebfbe2a7f38.woff2 +0 -0
  483. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7ccce86603f80a099ddb0cb21d4ae3e3.woff2 +0 -0
  484. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7e4bde7e9c7f84cd34d8a845e384c746.woff2 +0 -0
  485. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7e929f262f30c8ee78bf398150b1a7cd.woff2 +0 -0
  486. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7eb9fffd1aa890d07d0f88cc82e6cfe4.woff2 +0 -0
  487. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-7f855356ab893b0d2b9c1c83b8116f0e.woff2 +0 -0
  488. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-829615148e6357d826b9242eb7fbbd1e.woff2 +0 -0
  489. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-866fa7613df6b3fd272bcfd4530c0bb9.woff2 +0 -0
  490. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-87599f94b6cc129d505b375798d0d751.woff2 +0 -0
  491. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8c2f33cee3993174f7e87c28e4bf42ee.woff2 +0 -0
  492. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8d3bcabb847b56243b16afe62adaaf21.woff2 +0 -0
  493. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8de5b863cb50dfefdd07cb11c774d579.woff2 +0 -0
  494. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8e9f97f01034820170065b2921b4fb5e.woff2 +0 -0
  495. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-8f476c4c99813d57cbe6eca4727388ad.woff2 +0 -0
  496. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-903bb6865f3452e2fda42e3a25547bc5.woff2 +0 -0
  497. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-91ddb2969bf2d31ba02ad82998d1314c.woff2 +0 -0
  498. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-938d90c10ff8c20386af7f242c05d6b0.woff2 +0 -0
  499. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-93fc8f28a33234bcadf1527cafabd502.woff2 +0 -0
  500. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-95429962233afd82db1c27df1500a28c.woff2 +0 -0
  501. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9544732d2e62d1a429674f8ee41b5d3a.woff2 +0 -0
  502. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9592bfc861f07bcb8d75c196b370e548.woff2 +0 -0
  503. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-95bfd249da4902577b4b7d76ebdd0b44.woff2 +0 -0
  504. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-968cffdc8ee679da094e77ebf50f58ef.woff2 +0 -0
  505. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-97f7f48ce90c9429bf32ae51469db74d.woff2 +0 -0
  506. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-982b630266d87db93d2539affb1275c6.woff2 +0 -0
  507. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-98f2ad84457de7f3740d9920b8fa8667.woff2 +0 -0
  508. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-99a16ef6a64934d5781933dbd9c46b2e.woff2 +0 -0
  509. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9cfb2a77a4e45025105ad29a1748b90d.woff2 +0 -0
  510. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9d81066dd2b337c938df6e90380a00dc.woff2 +0 -0
  511. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-9eb5a99df4e76ac3363453ac9ca288b1.woff2 +0 -0
  512. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a004ddfcb26e67bd6e678c8ed19e25ce.woff2 +0 -0
  513. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a0ca5df4258213d7fc9fce80f65ce760.woff2 +0 -0
  514. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a1f916d6039285c4ffb900cd654e418f.woff2 +0 -0
  515. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a203b91dad570bf05a58c3c3ddb529bf.woff2 +0 -0
  516. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a365e82ed54697a52f27adcea1315fe8.woff2 +0 -0
  517. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a4c34be6d42152e64b0df90bc4607f64.woff2 +0 -0
  518. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-a7accba310e821da5505f71c03b76bdb.woff2 +0 -0
  519. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-aa0d470430e6391eca720c7cfa44446f.woff2 +0 -0
  520. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-aa5c9ca6cf4fba00433b7aa3fa10671a.woff2 +0 -0
  521. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ac9ceb44437becc3e9c4dbfebab7fc2d.woff2 +0 -0
  522. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b1220a3c61f85cc0408deedb4c5f57a2.woff2 +0 -0
  523. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b358f7a51ece39a3247942b1feabdb29.woff2 +0 -0
  524. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b57aaedfd8ebdf3931f25119dc6a5eb2.woff2 +0 -0
  525. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b5c1596551c256e0e9cf02028595b092.woff2 +0 -0
  526. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b6d128682ee29e471486354d486a1b90.woff2 +0 -0
  527. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b6fd38ca30869792244804b04bc058da.woff2 +0 -0
  528. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b7d203b051eff504ff59ddca7576b6a9.woff2 +0 -0
  529. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-b96d9226ce77ec94ceca043d712182e6.woff2 +0 -0
  530. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ba3de316d63c7e339987b16f41a0b879.woff2 +0 -0
  531. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-bafff7a14c27403dcc6cf1432e8ea836.woff2 +0 -0
  532. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-bd77e3c7f9e0b072d96af37f73d1aa32.woff2 +0 -0
  533. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-be549ab72f0719d606a5c01e2c0219b6.woff2 +0 -0
  534. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c16ed9740b85badf16e86ea782a3062f.woff2 +0 -0
  535. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c1f94158256bb1f3bf665b053d895af9.woff2 +0 -0
  536. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c40533fdf4cc57177b12803598af7e59.woff2 +0 -0
  537. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c4a687ac4f0c2766eefc9f77ed99cddf.woff2 +0 -0
  538. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c69f61a4ab18d0488c8d1fc12e7028e8.woff2 +0 -0
  539. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c8b71798409ccc126ee264a00aadcf21.woff2 +0 -0
  540. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-c99eda15fc26a2941579560f76c3a5cf.woff2 +0 -0
  541. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cb17fc3db95f6d139afc9d31a8e93293.woff2 +0 -0
  542. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cbaaefaaf326668277aa24dfa93c4d28.woff2 +0 -0
  543. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cd145ce4a0ea18469358df53c207bc1b.woff2 +0 -0
  544. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cdbce89e82cc1ab53a2decbf5819278f.woff2 +0 -0
  545. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ce4884f96f11589608b76b726a755803.woff2 +0 -0
  546. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cf2cc71752631e579e35b0e423bf2638.woff2 +0 -0
  547. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cf6ff4e0f491ca0cf3038187a997b9b4.woff2 +0 -0
  548. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-cfb211578629b7e8153b37240de6a9d5.woff2 +0 -0
  549. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-d0cf73942fea1c74edbdf0b3011f4656.woff2 +0 -0
  550. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-d2666cbed13462c5dc36fa2f15c202ca.woff2 +0 -0
  551. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-d3716376641d615e2995605b29bca7b6.woff2 +0 -0
  552. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-dac48066b5883d8b4551fc584f0c2a3e.woff2 +0 -0
  553. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-dbea1af6dcd9860be40c3d18254338f5.woff2 +0 -0
  554. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e11567fd2accf9957cd0d3c2be937d87.woff2 +0 -0
  555. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e2ead7ea7da0437f085f42ffc05f8d13.woff2 +0 -0
  556. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e3fcf5180fd466c8915c4e8069491054.woff2 +0 -0
  557. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e480d9c614742d05f0e78f274f1e69e6.woff2 +0 -0
  558. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e4bca6cfa53e499cae0a6be4894a90e9.woff2 +0 -0
  559. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e51ef413167c6e14e0c0fdcc585f2fc9.woff2 +0 -0
  560. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e5f453bb04da18eed01675eeebd88bf8.woff2 +0 -0
  561. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-e656f091b9dc4709722c9f4b84d3c797.woff2 +0 -0
  562. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ec181b795ac1fb5a50d700b6e996d745.woff2 +0 -0
  563. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-ee8bae97908d5147b423f77ad0d3c1bb.woff2 +0 -0
  564. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f0f13b5c60e0af5553bd359f5513be1b.woff2 +0 -0
  565. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f2b54d4e7be0eaefe1c2c56836fa5368.woff2 +0 -0
  566. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f56414bf9bced67990def8660e306759.woff2 +0 -0
  567. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f5d079153c99a25b9be5b8583c4cc8a7.woff2 +0 -0
  568. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f6032fc06eb20480f096199713f70885.woff2 +0 -0
  569. package/web/excalidraw/fonts/Xiaolai/Xiaolai-Regular-f8ee5d36068a42b51d0e4a1116cfcec1.woff2 +0 -0
  570. package/web/fonts/LICENSE-_fontsource-variable_inter.txt +93 -0
  571. package/web/fonts/LICENSE-_fontsource-variable_jetbrains-mono.txt +93 -0
  572. package/web/fonts/LICENSE-_fontsource_lxgw-wenkai.txt +94 -0
  573. package/web/fonts/LICENSE-_fontsource_noto-sans-sc.txt +93 -0
  574. package/web/fonts/files/inter-cyrillic-ext-wght-normal.woff2 +0 -0
  575. package/web/fonts/files/inter-cyrillic-wght-normal.woff2 +0 -0
  576. package/web/fonts/files/inter-greek-ext-wght-normal.woff2 +0 -0
  577. package/web/fonts/files/inter-greek-wght-normal.woff2 +0 -0
  578. package/web/fonts/files/inter-latin-ext-wght-normal.woff2 +0 -0
  579. package/web/fonts/files/inter-latin-wght-normal.woff2 +0 -0
  580. package/web/fonts/files/inter-vietnamese-wght-normal.woff2 +0 -0
  581. package/web/fonts/files/jetbrains-mono-cyrillic-ext-wght-normal.woff2 +0 -0
  582. package/web/fonts/files/jetbrains-mono-cyrillic-wght-normal.woff2 +0 -0
  583. package/web/fonts/files/jetbrains-mono-greek-wght-normal.woff2 +0 -0
  584. package/web/fonts/files/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  585. package/web/fonts/files/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  586. package/web/fonts/files/jetbrains-mono-vietnamese-wght-normal.woff2 +0 -0
  587. package/web/fonts/files/lxgw-wenkai-latin-500-normal.woff2 +0 -0
  588. package/web/fonts/files/noto-sans-sc-100-400-normal.woff2 +0 -0
  589. package/web/fonts/files/noto-sans-sc-100-700-normal.woff2 +0 -0
  590. package/web/fonts/files/noto-sans-sc-101-400-normal.woff2 +0 -0
  591. package/web/fonts/files/noto-sans-sc-101-700-normal.woff2 +0 -0
  592. package/web/fonts/files/noto-sans-sc-102-400-normal.woff2 +0 -0
  593. package/web/fonts/files/noto-sans-sc-102-700-normal.woff2 +0 -0
  594. package/web/fonts/files/noto-sans-sc-103-400-normal.woff2 +0 -0
  595. package/web/fonts/files/noto-sans-sc-103-700-normal.woff2 +0 -0
  596. package/web/fonts/files/noto-sans-sc-104-400-normal.woff2 +0 -0
  597. package/web/fonts/files/noto-sans-sc-104-700-normal.woff2 +0 -0
  598. package/web/fonts/files/noto-sans-sc-105-400-normal.woff2 +0 -0
  599. package/web/fonts/files/noto-sans-sc-105-700-normal.woff2 +0 -0
  600. package/web/fonts/files/noto-sans-sc-106-400-normal.woff2 +0 -0
  601. package/web/fonts/files/noto-sans-sc-106-700-normal.woff2 +0 -0
  602. package/web/fonts/files/noto-sans-sc-107-400-normal.woff2 +0 -0
  603. package/web/fonts/files/noto-sans-sc-107-700-normal.woff2 +0 -0
  604. package/web/fonts/files/noto-sans-sc-108-400-normal.woff2 +0 -0
  605. package/web/fonts/files/noto-sans-sc-108-700-normal.woff2 +0 -0
  606. package/web/fonts/files/noto-sans-sc-109-400-normal.woff2 +0 -0
  607. package/web/fonts/files/noto-sans-sc-109-700-normal.woff2 +0 -0
  608. package/web/fonts/files/noto-sans-sc-110-400-normal.woff2 +0 -0
  609. package/web/fonts/files/noto-sans-sc-110-700-normal.woff2 +0 -0
  610. package/web/fonts/files/noto-sans-sc-111-400-normal.woff2 +0 -0
  611. package/web/fonts/files/noto-sans-sc-111-700-normal.woff2 +0 -0
  612. package/web/fonts/files/noto-sans-sc-112-400-normal.woff2 +0 -0
  613. package/web/fonts/files/noto-sans-sc-112-700-normal.woff2 +0 -0
  614. package/web/fonts/files/noto-sans-sc-113-400-normal.woff2 +0 -0
  615. package/web/fonts/files/noto-sans-sc-113-700-normal.woff2 +0 -0
  616. package/web/fonts/files/noto-sans-sc-114-400-normal.woff2 +0 -0
  617. package/web/fonts/files/noto-sans-sc-114-700-normal.woff2 +0 -0
  618. package/web/fonts/files/noto-sans-sc-115-400-normal.woff2 +0 -0
  619. package/web/fonts/files/noto-sans-sc-115-700-normal.woff2 +0 -0
  620. package/web/fonts/files/noto-sans-sc-116-400-normal.woff2 +0 -0
  621. package/web/fonts/files/noto-sans-sc-116-700-normal.woff2 +0 -0
  622. package/web/fonts/files/noto-sans-sc-117-400-normal.woff2 +0 -0
  623. package/web/fonts/files/noto-sans-sc-117-700-normal.woff2 +0 -0
  624. package/web/fonts/files/noto-sans-sc-118-400-normal.woff2 +0 -0
  625. package/web/fonts/files/noto-sans-sc-118-700-normal.woff2 +0 -0
  626. package/web/fonts/files/noto-sans-sc-119-400-normal.woff2 +0 -0
  627. package/web/fonts/files/noto-sans-sc-119-700-normal.woff2 +0 -0
  628. package/web/fonts/files/noto-sans-sc-21-400-normal.woff2 +0 -0
  629. package/web/fonts/files/noto-sans-sc-21-700-normal.woff2 +0 -0
  630. package/web/fonts/files/noto-sans-sc-22-400-normal.woff2 +0 -0
  631. package/web/fonts/files/noto-sans-sc-22-700-normal.woff2 +0 -0
  632. package/web/fonts/files/noto-sans-sc-23-400-normal.woff2 +0 -0
  633. package/web/fonts/files/noto-sans-sc-23-700-normal.woff2 +0 -0
  634. package/web/fonts/files/noto-sans-sc-24-400-normal.woff2 +0 -0
  635. package/web/fonts/files/noto-sans-sc-24-700-normal.woff2 +0 -0
  636. package/web/fonts/files/noto-sans-sc-25-400-normal.woff2 +0 -0
  637. package/web/fonts/files/noto-sans-sc-25-700-normal.woff2 +0 -0
  638. package/web/fonts/files/noto-sans-sc-26-400-normal.woff2 +0 -0
  639. package/web/fonts/files/noto-sans-sc-26-700-normal.woff2 +0 -0
  640. package/web/fonts/files/noto-sans-sc-27-400-normal.woff2 +0 -0
  641. package/web/fonts/files/noto-sans-sc-27-700-normal.woff2 +0 -0
  642. package/web/fonts/files/noto-sans-sc-28-400-normal.woff2 +0 -0
  643. package/web/fonts/files/noto-sans-sc-28-700-normal.woff2 +0 -0
  644. package/web/fonts/files/noto-sans-sc-29-400-normal.woff2 +0 -0
  645. package/web/fonts/files/noto-sans-sc-29-700-normal.woff2 +0 -0
  646. package/web/fonts/files/noto-sans-sc-30-400-normal.woff2 +0 -0
  647. package/web/fonts/files/noto-sans-sc-30-700-normal.woff2 +0 -0
  648. package/web/fonts/files/noto-sans-sc-31-400-normal.woff2 +0 -0
  649. package/web/fonts/files/noto-sans-sc-31-700-normal.woff2 +0 -0
  650. package/web/fonts/files/noto-sans-sc-32-400-normal.woff2 +0 -0
  651. package/web/fonts/files/noto-sans-sc-32-700-normal.woff2 +0 -0
  652. package/web/fonts/files/noto-sans-sc-33-400-normal.woff2 +0 -0
  653. package/web/fonts/files/noto-sans-sc-33-700-normal.woff2 +0 -0
  654. package/web/fonts/files/noto-sans-sc-34-400-normal.woff2 +0 -0
  655. package/web/fonts/files/noto-sans-sc-34-700-normal.woff2 +0 -0
  656. package/web/fonts/files/noto-sans-sc-35-400-normal.woff2 +0 -0
  657. package/web/fonts/files/noto-sans-sc-35-700-normal.woff2 +0 -0
  658. package/web/fonts/files/noto-sans-sc-36-400-normal.woff2 +0 -0
  659. package/web/fonts/files/noto-sans-sc-36-700-normal.woff2 +0 -0
  660. package/web/fonts/files/noto-sans-sc-37-400-normal.woff2 +0 -0
  661. package/web/fonts/files/noto-sans-sc-37-700-normal.woff2 +0 -0
  662. package/web/fonts/files/noto-sans-sc-38-400-normal.woff2 +0 -0
  663. package/web/fonts/files/noto-sans-sc-38-700-normal.woff2 +0 -0
  664. package/web/fonts/files/noto-sans-sc-39-400-normal.woff2 +0 -0
  665. package/web/fonts/files/noto-sans-sc-39-700-normal.woff2 +0 -0
  666. package/web/fonts/files/noto-sans-sc-4-400-normal.woff2 +0 -0
  667. package/web/fonts/files/noto-sans-sc-4-700-normal.woff2 +0 -0
  668. package/web/fonts/files/noto-sans-sc-40-400-normal.woff2 +0 -0
  669. package/web/fonts/files/noto-sans-sc-40-700-normal.woff2 +0 -0
  670. package/web/fonts/files/noto-sans-sc-41-400-normal.woff2 +0 -0
  671. package/web/fonts/files/noto-sans-sc-41-700-normal.woff2 +0 -0
  672. package/web/fonts/files/noto-sans-sc-42-400-normal.woff2 +0 -0
  673. package/web/fonts/files/noto-sans-sc-42-700-normal.woff2 +0 -0
  674. package/web/fonts/files/noto-sans-sc-43-400-normal.woff2 +0 -0
  675. package/web/fonts/files/noto-sans-sc-43-700-normal.woff2 +0 -0
  676. package/web/fonts/files/noto-sans-sc-44-400-normal.woff2 +0 -0
  677. package/web/fonts/files/noto-sans-sc-44-700-normal.woff2 +0 -0
  678. package/web/fonts/files/noto-sans-sc-45-400-normal.woff2 +0 -0
  679. package/web/fonts/files/noto-sans-sc-45-700-normal.woff2 +0 -0
  680. package/web/fonts/files/noto-sans-sc-46-400-normal.woff2 +0 -0
  681. package/web/fonts/files/noto-sans-sc-46-700-normal.woff2 +0 -0
  682. package/web/fonts/files/noto-sans-sc-47-400-normal.woff2 +0 -0
  683. package/web/fonts/files/noto-sans-sc-47-700-normal.woff2 +0 -0
  684. package/web/fonts/files/noto-sans-sc-48-400-normal.woff2 +0 -0
  685. package/web/fonts/files/noto-sans-sc-48-700-normal.woff2 +0 -0
  686. package/web/fonts/files/noto-sans-sc-49-400-normal.woff2 +0 -0
  687. package/web/fonts/files/noto-sans-sc-49-700-normal.woff2 +0 -0
  688. package/web/fonts/files/noto-sans-sc-5-400-normal.woff2 +0 -0
  689. package/web/fonts/files/noto-sans-sc-5-700-normal.woff2 +0 -0
  690. package/web/fonts/files/noto-sans-sc-50-400-normal.woff2 +0 -0
  691. package/web/fonts/files/noto-sans-sc-50-700-normal.woff2 +0 -0
  692. package/web/fonts/files/noto-sans-sc-51-400-normal.woff2 +0 -0
  693. package/web/fonts/files/noto-sans-sc-51-700-normal.woff2 +0 -0
  694. package/web/fonts/files/noto-sans-sc-52-400-normal.woff2 +0 -0
  695. package/web/fonts/files/noto-sans-sc-52-700-normal.woff2 +0 -0
  696. package/web/fonts/files/noto-sans-sc-53-400-normal.woff2 +0 -0
  697. package/web/fonts/files/noto-sans-sc-53-700-normal.woff2 +0 -0
  698. package/web/fonts/files/noto-sans-sc-54-400-normal.woff2 +0 -0
  699. package/web/fonts/files/noto-sans-sc-54-700-normal.woff2 +0 -0
  700. package/web/fonts/files/noto-sans-sc-55-400-normal.woff2 +0 -0
  701. package/web/fonts/files/noto-sans-sc-55-700-normal.woff2 +0 -0
  702. package/web/fonts/files/noto-sans-sc-56-400-normal.woff2 +0 -0
  703. package/web/fonts/files/noto-sans-sc-56-700-normal.woff2 +0 -0
  704. package/web/fonts/files/noto-sans-sc-57-400-normal.woff2 +0 -0
  705. package/web/fonts/files/noto-sans-sc-57-700-normal.woff2 +0 -0
  706. package/web/fonts/files/noto-sans-sc-58-400-normal.woff2 +0 -0
  707. package/web/fonts/files/noto-sans-sc-58-700-normal.woff2 +0 -0
  708. package/web/fonts/files/noto-sans-sc-59-400-normal.woff2 +0 -0
  709. package/web/fonts/files/noto-sans-sc-59-700-normal.woff2 +0 -0
  710. package/web/fonts/files/noto-sans-sc-6-400-normal.woff2 +0 -0
  711. package/web/fonts/files/noto-sans-sc-6-700-normal.woff2 +0 -0
  712. package/web/fonts/files/noto-sans-sc-60-400-normal.woff2 +0 -0
  713. package/web/fonts/files/noto-sans-sc-60-700-normal.woff2 +0 -0
  714. package/web/fonts/files/noto-sans-sc-61-400-normal.woff2 +0 -0
  715. package/web/fonts/files/noto-sans-sc-61-700-normal.woff2 +0 -0
  716. package/web/fonts/files/noto-sans-sc-62-400-normal.woff2 +0 -0
  717. package/web/fonts/files/noto-sans-sc-62-700-normal.woff2 +0 -0
  718. package/web/fonts/files/noto-sans-sc-63-400-normal.woff2 +0 -0
  719. package/web/fonts/files/noto-sans-sc-63-700-normal.woff2 +0 -0
  720. package/web/fonts/files/noto-sans-sc-64-400-normal.woff2 +0 -0
  721. package/web/fonts/files/noto-sans-sc-64-700-normal.woff2 +0 -0
  722. package/web/fonts/files/noto-sans-sc-65-400-normal.woff2 +0 -0
  723. package/web/fonts/files/noto-sans-sc-65-700-normal.woff2 +0 -0
  724. package/web/fonts/files/noto-sans-sc-66-400-normal.woff2 +0 -0
  725. package/web/fonts/files/noto-sans-sc-66-700-normal.woff2 +0 -0
  726. package/web/fonts/files/noto-sans-sc-67-400-normal.woff2 +0 -0
  727. package/web/fonts/files/noto-sans-sc-67-700-normal.woff2 +0 -0
  728. package/web/fonts/files/noto-sans-sc-68-400-normal.woff2 +0 -0
  729. package/web/fonts/files/noto-sans-sc-68-700-normal.woff2 +0 -0
  730. package/web/fonts/files/noto-sans-sc-69-400-normal.woff2 +0 -0
  731. package/web/fonts/files/noto-sans-sc-69-700-normal.woff2 +0 -0
  732. package/web/fonts/files/noto-sans-sc-70-400-normal.woff2 +0 -0
  733. package/web/fonts/files/noto-sans-sc-70-700-normal.woff2 +0 -0
  734. package/web/fonts/files/noto-sans-sc-71-400-normal.woff2 +0 -0
  735. package/web/fonts/files/noto-sans-sc-71-700-normal.woff2 +0 -0
  736. package/web/fonts/files/noto-sans-sc-72-400-normal.woff2 +0 -0
  737. package/web/fonts/files/noto-sans-sc-72-700-normal.woff2 +0 -0
  738. package/web/fonts/files/noto-sans-sc-73-400-normal.woff2 +0 -0
  739. package/web/fonts/files/noto-sans-sc-73-700-normal.woff2 +0 -0
  740. package/web/fonts/files/noto-sans-sc-74-400-normal.woff2 +0 -0
  741. package/web/fonts/files/noto-sans-sc-74-700-normal.woff2 +0 -0
  742. package/web/fonts/files/noto-sans-sc-75-400-normal.woff2 +0 -0
  743. package/web/fonts/files/noto-sans-sc-75-700-normal.woff2 +0 -0
  744. package/web/fonts/files/noto-sans-sc-76-400-normal.woff2 +0 -0
  745. package/web/fonts/files/noto-sans-sc-76-700-normal.woff2 +0 -0
  746. package/web/fonts/files/noto-sans-sc-77-400-normal.woff2 +0 -0
  747. package/web/fonts/files/noto-sans-sc-77-700-normal.woff2 +0 -0
  748. package/web/fonts/files/noto-sans-sc-78-400-normal.woff2 +0 -0
  749. package/web/fonts/files/noto-sans-sc-78-700-normal.woff2 +0 -0
  750. package/web/fonts/files/noto-sans-sc-79-400-normal.woff2 +0 -0
  751. package/web/fonts/files/noto-sans-sc-79-700-normal.woff2 +0 -0
  752. package/web/fonts/files/noto-sans-sc-80-400-normal.woff2 +0 -0
  753. package/web/fonts/files/noto-sans-sc-80-700-normal.woff2 +0 -0
  754. package/web/fonts/files/noto-sans-sc-81-400-normal.woff2 +0 -0
  755. package/web/fonts/files/noto-sans-sc-81-700-normal.woff2 +0 -0
  756. package/web/fonts/files/noto-sans-sc-82-400-normal.woff2 +0 -0
  757. package/web/fonts/files/noto-sans-sc-82-700-normal.woff2 +0 -0
  758. package/web/fonts/files/noto-sans-sc-83-400-normal.woff2 +0 -0
  759. package/web/fonts/files/noto-sans-sc-83-700-normal.woff2 +0 -0
  760. package/web/fonts/files/noto-sans-sc-84-400-normal.woff2 +0 -0
  761. package/web/fonts/files/noto-sans-sc-84-700-normal.woff2 +0 -0
  762. package/web/fonts/files/noto-sans-sc-85-400-normal.woff2 +0 -0
  763. package/web/fonts/files/noto-sans-sc-85-700-normal.woff2 +0 -0
  764. package/web/fonts/files/noto-sans-sc-86-400-normal.woff2 +0 -0
  765. package/web/fonts/files/noto-sans-sc-86-700-normal.woff2 +0 -0
  766. package/web/fonts/files/noto-sans-sc-87-400-normal.woff2 +0 -0
  767. package/web/fonts/files/noto-sans-sc-87-700-normal.woff2 +0 -0
  768. package/web/fonts/files/noto-sans-sc-88-400-normal.woff2 +0 -0
  769. package/web/fonts/files/noto-sans-sc-88-700-normal.woff2 +0 -0
  770. package/web/fonts/files/noto-sans-sc-89-400-normal.woff2 +0 -0
  771. package/web/fonts/files/noto-sans-sc-89-700-normal.woff2 +0 -0
  772. package/web/fonts/files/noto-sans-sc-90-400-normal.woff2 +0 -0
  773. package/web/fonts/files/noto-sans-sc-90-700-normal.woff2 +0 -0
  774. package/web/fonts/files/noto-sans-sc-91-400-normal.woff2 +0 -0
  775. package/web/fonts/files/noto-sans-sc-91-700-normal.woff2 +0 -0
  776. package/web/fonts/files/noto-sans-sc-97-400-normal.woff2 +0 -0
  777. package/web/fonts/files/noto-sans-sc-97-700-normal.woff2 +0 -0
  778. package/web/fonts/files/noto-sans-sc-98-400-normal.woff2 +0 -0
  779. package/web/fonts/files/noto-sans-sc-98-700-normal.woff2 +0 -0
  780. package/web/fonts/files/noto-sans-sc-99-400-normal.woff2 +0 -0
  781. package/web/fonts/files/noto-sans-sc-99-700-normal.woff2 +0 -0
  782. package/web/fonts/files/noto-sans-sc-cyrillic-400-normal.woff2 +0 -0
  783. package/web/fonts/files/noto-sans-sc-cyrillic-700-normal.woff2 +0 -0
  784. package/web/fonts/files/noto-sans-sc-latin-400-normal.woff2 +0 -0
  785. package/web/fonts/files/noto-sans-sc-latin-700-normal.woff2 +0 -0
  786. package/web/fonts/files/noto-sans-sc-latin-ext-400-normal.woff2 +0 -0
  787. package/web/fonts/files/noto-sans-sc-latin-ext-700-normal.woff2 +0 -0
  788. package/web/fonts/files/noto-sans-sc-vietnamese-400-normal.woff2 +0 -0
  789. package/web/fonts/files/noto-sans-sc-vietnamese-700-normal.woff2 +0 -0
  790. package/web/fonts/fonts.css +2163 -0
  791. package/web/index.html +266 -0
@@ -0,0 +1,437 @@
1
+ import{z as R}from"./appStore-Dg9WALEA.js";import{j as o,u as N,d as i}from"./index-CF4RV4mh.js";const O=[["path",{d:"M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1",key:"1q9hii"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M2 15h10",key:"jfw4w8"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]],lt=R("file-input",O),D="forsion-sketch";function ct(t){const e=Math.max(0,...(t.match(/`+/g)??[]).map(a=>a.length)),n="`".repeat(Math.max(3,e+1));return`${n}${D}
2
+ ${t.replace(/\s+$/,"")}
3
+ ${n}`}const F=`/* The sketch document is isolated. All colors inherit Forsion's current theme. */
4
+ html, body { margin: 0; padding: 0; }
5
+ *, *::before, *::after { box-sizing: border-box; }
6
+ body {
7
+ font-family: var(--fs-font); background: var(--fs-bg); color: var(--fs-text);
8
+ font-size: 14px; line-height: 1.5; padding: 16px 20px;
9
+ overflow-wrap: anywhere; -webkit-font-smoothing: antialiased;
10
+ }
11
+ [hidden] { display: none !important; }
12
+ header, figure, figcaption, footer { margin: 0; }
13
+ h1, h2, h3, h4 { margin: 0 0 .5em; font-weight: 500; line-height: 1.3; text-wrap: balance; }
14
+ h1 { font-size: 20px; } h2 { font-size: 18px; } h3 { font-size: 15px; } h4 { font-size: 14px; }
15
+ p { margin: 0 0 .7em; } p:last-child { margin-bottom: 0; }
16
+ small { font-size: 12px; color: var(--fs-muted); }
17
+ a { color: var(--fs-accent); }
18
+ hr { border: 0; border-top: 1px solid var(--fs-rule); margin: 16px 0; }
19
+ code, pre, kbd { font-family: var(--fs-mono); font-size: 12px; }
20
+ pre { overflow-x: auto; background: var(--fs-surface); border-radius: var(--fs-radius); padding: 10px; }
21
+ table { border-collapse: collapse; width: 100%; font-size: 13px; font-variant-numeric: tabular-nums; }
22
+ th, td { text-align: left; padding: 8px 12px 8px 0; border-bottom: 1px solid var(--fs-rule); vertical-align: top; }
23
+ th { font-weight: 500; color: var(--fs-muted); }
24
+ th:last-child, td:last-child { padding-right: 0; }
25
+ tr:last-child td { border-bottom: 0; }
26
+ svg { display: block; width: 100%; max-width: 100%; height: auto; }
27
+ svg text { font-family: var(--fs-font); fill: var(--fs-text); }
28
+ img, canvas { display: block; max-width: 100%; }
29
+ img { height: auto; }
30
+ button, input, select, textarea { font: inherit; color: inherit; max-width: 100%; }
31
+ button {
32
+ border: 1px solid var(--fs-border); border-radius: var(--fs-radius);
33
+ background: transparent; padding: 6px 10px; cursor: pointer;
34
+ }
35
+ button:hover { background: var(--fs-surface); }
36
+ button:disabled { opacity: .5; cursor: default; }
37
+ button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
38
+ outline: 2px solid var(--fs-accent); outline-offset: 2px;
39
+ }
40
+ input, select, textarea { accent-color: var(--fs-accent); }
41
+ .fs-header { display: grid; gap: 4px; margin: 0 0 16px; }
42
+ .fs-title { margin: 0; font-size: 20px; font-weight: 500; line-height: 1.3; text-wrap: balance; }
43
+ .fs-eyebrow, .fs-subtitle, .fs-caption, .fs-source, .fs-label { font-size: 12px; color: var(--fs-muted); }
44
+ .fs-eyebrow { font-weight: 500; }
45
+ .fs-subtitle { max-width: 62ch; }
46
+ .fs-plot { position: relative; min-width: 0; margin: 0; }
47
+ .fs-caption, .fs-source { margin-top: 10px; }
48
+ .fs-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr)); gap: 12px; margin: 4px 0 16px; }
49
+ .fs-stat { display: grid; align-content: start; gap: 3px; min-width: 0; }
50
+ .fs-value { font-size: 26px; font-weight: 500; line-height: 1.2; font-variant-numeric: tabular-nums; }
51
+ .fs-panel { padding: 12px 14px; border-radius: var(--fs-radius); background: var(--fs-surface); }
52
+ .fs-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: 0; }
53
+ .fs-chip { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; background: var(--fs-surface); font-size: 12px; color: var(--fs-muted); }
54
+ .fs-bar-track { height: 9px; overflow: hidden; border-radius: 999px; background: var(--fs-surface); }
55
+ .fs-bar-fill { height: 100%; border-radius: inherit; background: var(--fs-accent); transform-origin: left center; }
56
+ .fs-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 12px 16px; margin-bottom: 16px; }
57
+ .fs-field { display: grid; gap: 6px; flex: 1 1 200px; min-width: 0; }
58
+ .fs-field > span { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; }
59
+ .fs-field output { font-variant-numeric: tabular-nums; }
60
+ .fs-input, .fs-select { width: 100%; min-width: 0; border: 1px solid var(--fs-border); border-radius: var(--fs-radius); padding: 6px 9px; background: var(--fs-surface); }
61
+ .fs-range { width: 100%; min-width: 0; margin: 4px 0; }
62
+ .fs-check { display: inline-flex; align-items: center; gap: 8px; }
63
+ .fs-check input { margin: 0; }
64
+ .fs-button[aria-pressed="true"], .fs-tabs [aria-selected="true"] { background: var(--fs-accent-soft); color: var(--fs-accent); border-color: transparent; }
65
+ .fs-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 12px; }
66
+ .fs-tabs button { border-color: transparent; }
67
+ .fs-number { font-variant-numeric: tabular-nums; }
68
+ .fs-muted { color: var(--fs-muted); }
69
+ .fs-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
70
+ /* Figure primitives: direct labels, quiet structure and one focus accent. */
71
+ fs-chart, fs-flow { display: block; min-width: 0; }
72
+ fs-chart + fs-flow, fs-flow + fs-chart, fs-chart + fs-chart { margin-top: 28px; }
73
+ .fs-figure-title { margin: 0 0 18px; font-size: 16px; font-weight: 500; }
74
+ .fs-chart-bars { display: grid; gap: 14px; }
75
+ .fs-chart-bar-row { display: grid; grid-template-columns: minmax(72px, 1fr) minmax(0, 3fr) minmax(56px, 1fr); gap: 16px; align-items: center; }
76
+ .fs-chart-bar-label { font-size: 13px; }
77
+ .fs-chart-bar-value { text-align: end; font-size: 13px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
78
+ .fs-chart-track { position: relative; height: 12px; background: var(--fs-surface); border-radius: 3px; }
79
+ .fs-chart-track::after { content: ''; position: absolute; left: var(--fs-zero); top: -4px; bottom: -4px; width: 1px; background: var(--fs-rule); }
80
+ .fs-chart-bar { position: absolute; top: 0; height: 100%; background: var(--fs-s1); border-radius: 3px; }
81
+ .fs-chart-bar--context { background: var(--fs-s2); }
82
+ .fs-chart-bars--narrow .fs-chart-bar-row { grid-template-columns: minmax(0, 1fr) fit-content(50%); gap: 7px 12px; }
83
+ .fs-chart-bars--narrow .fs-chart-track { grid-column: 1 / -1; grid-row: 2; }
84
+ .fs-chart-bars--narrow .fs-chart-bar-value { grid-column: 2; grid-row: 1; }
85
+ .fs-chart-field { position: relative; }
86
+ .fs-chart-grid { fill: none; stroke: var(--fs-rule); stroke-width: 1; }
87
+ .fs-chart-tick, .fs-chart-unit { font-size: 12px; fill: var(--fs-muted); }
88
+ .fs-chart-line { fill: none; stroke: var(--fs-s1); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
89
+ .fs-chart-point { fill: var(--fs-s1); }
90
+ .fs-chart-guide { fill: none; stroke: var(--fs-muted); stroke-width: 1; stroke-dasharray: 3 4; }
91
+ .fs-chart-hit { position: absolute; border: 0; border-radius: 0; padding: 0; background: transparent; cursor: crosshair; touch-action: pan-y; }
92
+ .fs-chart-hit:hover { background: transparent; }
93
+ .fs-chart-detail { display: block; min-height: 22px; font-size: 12px; color: var(--fs-muted); font-variant-numeric: tabular-nums; }
94
+ .fs-flow-steps { display: grid; grid-template-columns: repeat(var(--fs-step-count), minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
95
+ .fs-flow-step { position: relative; min-width: 0; }
96
+ .fs-flow-marker { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--fs-surface); color: var(--fs-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
97
+ .fs-flow-step[data-status="done"] .fs-flow-marker { color: var(--fs-accent); }
98
+ .fs-flow-step[data-status="active"] .fs-flow-marker { background: var(--fs-accent-soft); color: var(--fs-accent); outline: 1px solid var(--fs-accent); outline-offset: 2px; }
99
+ .fs-flow-step:not(:last-child)::after { content: ''; position: absolute; height: 1px; top: 15px; left: 40px; width: calc(100% - 28px); background: var(--fs-rule); }
100
+ .fs-flow-step:not(:last-child)::before { content: ''; position: absolute; top: 12px; left: calc(100% + 7px); width: 6px; height: 6px; border-top: 1px solid var(--fs-muted); border-right: 1px solid var(--fs-muted); transform: rotate(45deg); }
101
+ .fs-flow-content { display: grid; gap: 6px; margin-top: 12px; }
102
+ .fs-flow-label { display: block; font-size: 13px; font-weight: 500; }
103
+ .fs-flow-description { display: block; font-size: 12px; color: var(--fs-muted); }
104
+ .fs-flow-branches { display: grid; gap: 12px; list-style: none; padding: 0 0 0 12px; margin: 8px 0 0; border-left: 1px solid var(--fs-rule); }
105
+ .fs-flow-branch { position: relative; display: grid; gap: 3px; }
106
+ .fs-flow-branch::before { content: ''; position: absolute; left: -12px; top: 9px; width: 7px; height: 1px; background: var(--fs-rule); }
107
+ .fs-flow-steps--vertical { grid-template-columns: minmax(0, 1fr); gap: 22px; }
108
+ .fs-flow-steps--vertical .fs-flow-step { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; }
109
+ .fs-flow-steps--vertical .fs-flow-content { margin-top: 3px; }
110
+ .fs-flow-steps--vertical .fs-flow-step:not(:last-child)::after { left: 15px; top: 39px; width: 1px; height: calc(100% - 23px); }
111
+ .fs-flow-steps--vertical .fs-flow-step:not(:last-child)::before { top: calc(100% + 11px); left: 12px; transform: rotate(135deg); }
112
+ ::selection { background: var(--fs-accent-soft); }
113
+ @media(max-width:480px) {
114
+ body { padding: 14px 12px; }
115
+ .fs-controls { gap: 12px; }
116
+ }
117
+ @media(pointer:coarse) {
118
+ button, .fs-check { min-height: 44px; }
119
+ .fs-input, .fs-select { font-size: 16px; min-height: 44px; }
120
+ .fs-range { min-height: 36px; }
121
+ }
122
+ @media(prefers-reduced-motion:reduce) {
123
+ *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
124
+ }
125
+ `,K=`/* Runs only inside the opaque-origin sandbox. No host capabilities or network. */
126
+ (() => {
127
+ let state = __SKETCH_INITIAL_STATE__
128
+ window.forsionSketch = Object.freeze({
129
+ get state() { return state },
130
+ setState(value) {
131
+ const json = JSON.stringify(value)
132
+ if (!json || new TextEncoder().encode(json).length > 16384) throw new Error('Sketch state exceeds 16 KiB')
133
+ state = JSON.parse(json)
134
+ parent.postMessage({ type: 'sketch-state', state }, '*')
135
+ },
136
+ })
137
+
138
+ // An href must never turn a sandbox frame into an external navigation surface.
139
+ document.addEventListener('click', (event) => {
140
+ if (event.target.closest?.('a[href]')) event.preventDefault()
141
+ }, true)
142
+ document.addEventListener('submit', (event) => event.preventDefault(), true)
143
+
144
+ window.addEventListener('message', (event) => {
145
+ if (event.source !== parent) return
146
+ const data = event.data
147
+ if (!data || data.type !== 'sketch-theme' || !data.vars) return
148
+ for (const [key, value] of Object.entries(data.vars)) {
149
+ if (key.startsWith('--fs-')) document.documentElement.style.setProperty(key, String(value))
150
+ else if (key === 'color-scheme') document.documentElement.style.colorScheme = String(value)
151
+ }
152
+ window.dispatchEvent(new Event('forsion:themechange'))
153
+ })
154
+
155
+ let lastHeight = 0
156
+ function measure() {
157
+ const height = Math.ceil(document.body?.getBoundingClientRect().height || 0)
158
+ if (height && height !== lastHeight) {
159
+ lastHeight = height
160
+ parent.postMessage({ type: 'sketch-height', height }, '*')
161
+ }
162
+ }
163
+
164
+ function selectTab(tab) {
165
+ const list = tab.closest('.fs-tabs[role="tablist"]')
166
+ if (!list || tab.disabled || tab.getAttribute('aria-disabled') === 'true') return
167
+ for (const peer of list.querySelectorAll('[role="tab"]')) {
168
+ const selected = peer === tab
169
+ peer.setAttribute('aria-selected', String(selected))
170
+ const panel = document.getElementById(peer.getAttribute('aria-controls'))
171
+ if (panel?.getAttribute('role') === 'tabpanel') panel.hidden = !selected
172
+ }
173
+ }
174
+ document.addEventListener('click', (event) => {
175
+ const tab = event.target.closest?.('.fs-tabs [role="tab"]')
176
+ if (tab) selectTab(tab)
177
+ })
178
+ document.addEventListener('keydown', (event) => {
179
+ const tab = event.target.closest?.('.fs-tabs [role="tab"]')
180
+ if (!tab || !['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) return
181
+ const tabs = [...tab.closest('.fs-tabs').querySelectorAll('[role="tab"]')]
182
+ .filter((node) => !node.disabled && node.getAttribute('aria-disabled') !== 'true')
183
+ const index = tabs.indexOf(tab)
184
+ const next = event.key === 'Home' ? 0 : event.key === 'End' ? tabs.length - 1
185
+ : (index + (event.key === 'ArrowRight' ? 1 : -1) + tabs.length) % tabs.length
186
+ event.preventDefault()
187
+ tabs[next]?.focus()
188
+ if (tabs[next]) selectTab(tabs[next])
189
+ })
190
+
191
+ function ready() {
192
+ if (window.ResizeObserver) new ResizeObserver(measure).observe(document.body)
193
+ measure()
194
+ }
195
+ if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', ready)
196
+ else ready()
197
+ window.addEventListener('load', measure)
198
+ })()
199
+ `,J=`/* Small, offline figure primitives. Text and data are never interpreted as HTML. */
200
+ (() => {
201
+ const svgNS = 'http://www.w3.org/2000/svg'
202
+ const number = (value) => new Intl.NumberFormat(undefined, {
203
+ maximumSignificantDigits: 6, notation: Math.abs(value) >= 1e15 || (value !== 0 && Math.abs(value) < 1e-4) ? 'scientific' : Math.abs(value) >= 1e6 ? 'compact' : 'standard',
204
+ }).format(value)
205
+ const node = (tag, cls, text) => {
206
+ const el = document.createElement(tag)
207
+ if (cls) el.className = cls
208
+ if (text !== undefined) el.textContent = String(text)
209
+ return el
210
+ }
211
+ const mark = (tag, attrs, text) => {
212
+ const el = document.createElementNS(svgNS, tag)
213
+ for (const [key, value] of Object.entries(attrs)) el.setAttribute(key, String(value))
214
+ if (text !== undefined) el.textContent = String(text)
215
+ return el
216
+ }
217
+ function heading(root, data) {
218
+ if (data.title) root.append(node('h3', 'fs-figure-title', data.title))
219
+ }
220
+ function caption(root, data) {
221
+ if (data.caption) root.append(node('p', 'fs-caption', data.caption))
222
+ }
223
+ class Figure extends HTMLElement {
224
+ connectedCallback() {
225
+ queueMicrotask(() => {
226
+ if (!this.isConnected) return
227
+ if (!this.figureData) {
228
+ try { this.figureData = JSON.parse(this.querySelector('script[type="application/json"]')?.textContent || '{}') }
229
+ catch { this.figureData = {} }
230
+ }
231
+ this.render()
232
+ this.observer?.disconnect()
233
+ this.observer = new ResizeObserver(() => {
234
+ const width = Math.round(this.clientWidth)
235
+ if (width && width !== this.lastWidth) { this.lastWidth = width; this.render() }
236
+ })
237
+ this.observer.observe(this)
238
+ })
239
+ }
240
+ disconnectedCallback() { this.observer?.disconnect() }
241
+ setData(data) { this.figureData = data; if (this.isConnected) this.render() }
242
+ error() {
243
+ // No guessed labels or fabricated zeroes when the input is invalid.
244
+ const error = node('p', 'fs-caption', this.figureData?.emptyLabel || '—')
245
+ error.setAttribute('role', 'alert')
246
+ this.replaceChildren(error)
247
+ }
248
+ }
249
+
250
+ class Chart extends Figure {
251
+ render() {
252
+ const data = this.figureData
253
+ if (!['bar', 'line'].includes(this.getAttribute('type') || 'bar') ||
254
+ !data || !Array.isArray(data.data) || !data.data.length || data.data.length > 100 ||
255
+ data.data.some((item) => typeof item?.label !== 'string' || typeof item.value !== 'number' || !Number.isFinite(item.value))) {
256
+ this.error(); return
257
+ }
258
+ this.replaceChildren()
259
+ const root = node('figure', 'fs-chart-figure')
260
+ heading(root, data)
261
+ this.append(root)
262
+ if (this.getAttribute('type') === 'line') this.line(root, data)
263
+ else this.bars(root, data)
264
+ caption(root, data)
265
+ }
266
+ bars(root, data) {
267
+ // A zero baseline also handles negative-only and mixed-sign comparisons honestly.
268
+ const magnitude = Math.max(1, ...data.data.map((item) => Math.abs(item.value)))
269
+ const low = Math.min(0, ...data.data.map((item) => item.value / magnitude))
270
+ const high = Math.max(0, ...data.data.map((item) => item.value / magnitude))
271
+ const span = high - low || 1
272
+ const zero = -low / span * 100
273
+ const list = node('div', 'fs-chart-bars')
274
+ list.setAttribute('role', 'list')
275
+ list.setAttribute('aria-label', String(data.title || data.unit || data.data.map((item) => item.label).join(', ')))
276
+ const narrow = this.clientWidth < 440
277
+ list.classList.toggle('fs-chart-bars--narrow', narrow)
278
+ for (const [index, item] of data.data.entries()) {
279
+ const row = node('div', 'fs-chart-bar-row')
280
+ row.setAttribute('role', 'listitem')
281
+ const label = node('span', 'fs-chart-bar-label', item.label)
282
+ const value = node('span', 'fs-chart-bar-value', number(item.value) + (data.unit ? ' ' + data.unit : ''))
283
+ const track = node('span', 'fs-chart-track')
284
+ track.setAttribute('aria-hidden', 'true')
285
+ const bar = node('span', 'fs-chart-bar')
286
+ bar.style.left = Math.min(zero, (item.value / magnitude - low) / span * 100) + '%'
287
+ bar.style.width = Math.abs(item.value / magnitude) / span * 100 + '%'
288
+ if (Number.isInteger(data.highlight) && data.highlight !== index) bar.classList.add('fs-chart-bar--context')
289
+ track.style.setProperty('--fs-zero', zero + '%')
290
+ track.append(bar)
291
+ row.append(label, track, value)
292
+ list.append(row)
293
+ }
294
+ root.append(list)
295
+ }
296
+ line(root, data) {
297
+ const width = Math.max(1, this.clientWidth)
298
+ const height = 238
299
+ const values = data.data.map((item) => item.value)
300
+ const maxAbs = Math.max(...values.map(Math.abs))
301
+ const magnitude = maxAbs ? Math.pow(10, Math.floor(Math.log10(maxAbs))) || Number.MIN_VALUE : 1
302
+ const min = Math.min(...values.map((v) => v / magnitude)), max = Math.max(...values.map((v) => v / magnitude))
303
+ const pad = (max - min || Math.abs(max) || 1) * .12
304
+ const limit = Number.MAX_VALUE / magnitude
305
+ const paddedLow = min >= 0 ? Math.max(0, min - pad) : min - pad
306
+ const paddedHigh = max <= 0 ? Math.min(0, max + pad) : max + pad
307
+ const roughStep = (paddedHigh - paddedLow) / 4 || .25
308
+ const power = Math.pow(10, Math.floor(Math.log10(roughStep)))
309
+ const step = ([1, 2, 5, 10].find((factor) => factor >= roughStep / power) || 10) * power
310
+ const low = Math.max(-limit, Math.floor(paddedLow / step) * step)
311
+ const high = Math.min(limit, Math.ceil(paddedHigh / step) * step) || step
312
+ const ticks = []
313
+ for (let tick = Math.ceil(low / step) * step; tick <= high + step * 1e-8; tick += step) {
314
+ ticks.push(Number((tick * magnitude).toPrecision(12)))
315
+ if (ticks.length > 8) break
316
+ }
317
+ const canvas = document.createElement('canvas')
318
+ const context = canvas.getContext('2d')
319
+ if (context) context.font = '12px ' + getComputedStyle(this).fontFamily
320
+ const left = Math.min(width * .35, Math.max(48, ...ticks.map((v) => (context?.measureText(number(v)).width || 36) + 14)))
321
+ const right = Math.max(left + 1, width - 8), top = 28, bottom = height - 32
322
+ const x = (i) => left + (right - left) * (values.length === 1 ? .5 : i / (values.length - 1))
323
+ const y = (value) => bottom - (value / magnitude - low) / (high - low) * (bottom - top)
324
+ const field = node('div', 'fs-chart-field')
325
+ const svg = mark('svg', { viewBox: \`0 0 \${width} \${height}\`, role: 'img', 'aria-label': String(data.title || data.data.map((item) => item.label).join(', ')) })
326
+ svg.append(mark('title', {}, data.data.map((v) => \`\${v.label}: \${number(v.value)} \${data.unit || ''}\`).join('; ')))
327
+ if (data.unit) svg.append(mark('text', { x: left, y: 14, class: 'fs-chart-unit' }, data.unit))
328
+ for (const tick of ticks) {
329
+ svg.append(mark('path', { d: \`M\${left} \${y(tick)}H\${right}\`, class: 'fs-chart-grid' }))
330
+ svg.append(mark('text', { x: left - 10, y: y(tick) + 4, 'text-anchor': 'end', class: 'fs-chart-tick' }, number(tick)))
331
+ }
332
+ const count = Math.min(values.length, width < 440 ? 3 : 5)
333
+ let previousRight = -Infinity
334
+ for (let i = 0; i < count; i++) {
335
+ const index = count === 1 ? 0 : Math.round(i * (values.length - 1) / (count - 1))
336
+ const label = data.data[index].label
337
+ const size = context?.measureText(label).width || label.length * 8
338
+ const px = x(index)
339
+ const labelLeft = i === 0 ? px : i === count - 1 ? px - size : px - size / 2
340
+ if (labelLeft < previousRight + 8 || size > right - left) continue
341
+ previousRight = labelLeft + size
342
+ svg.append(mark('text', { x: px, y: height - 9, 'text-anchor': i === 0 ? 'start' : i === count - 1 ? 'end' : 'middle', class: 'fs-chart-tick' }, label))
343
+ }
344
+ const path = values.map((value, i) => \`\${i ? 'L' : 'M'}\${x(i)} \${y(value)}\`).join(' ')
345
+ svg.append(mark('path', { d: path, class: 'fs-chart-line' }))
346
+ for (const [i, value] of values.entries()) svg.append(mark('circle', { cx: x(i), cy: y(value), r: 2.5, class: 'fs-chart-point' }))
347
+ const guide = mark('path', { class: 'fs-chart-guide', visibility: 'hidden' })
348
+ const dot = mark('circle', { r: 4, class: 'fs-chart-point', visibility: 'hidden' })
349
+ svg.append(guide, dot)
350
+ const detail = node('output', 'fs-chart-detail')
351
+ const hit = node('button', 'fs-chart-hit')
352
+ hit.type = 'button'
353
+ hit.setAttribute('aria-label', String(data.inspectLabel || data.title || data.data.map((item) => item.label).join(', ')))
354
+ hit.style.left = left + 'px'; hit.style.top = top + 'px'
355
+ hit.style.width = (right - left) + 'px'; hit.style.height = (bottom - top) + 'px'
356
+ let current = 0
357
+ const show = (position) => {
358
+ current = Math.max(0, Math.min(values.length - 1, position))
359
+ const a = Math.floor(current), b = Math.ceil(current), t = current - a
360
+ const value = (values[a] / magnitude * (1 - t) + values[b] / magnitude * t) * magnitude
361
+ const px = x(current)
362
+ guide.setAttribute('d', \`M\${px} \${top}V\${bottom}\`)
363
+ dot.setAttribute('cx', px); dot.setAttribute('cy', y(value))
364
+ guide.setAttribute('visibility', 'visible'); dot.setAttribute('visibility', 'visible')
365
+ const label = a === b ? data.data[a].label : \`\${data.data[a].label} – \${data.data[b].label}\`
366
+ detail.textContent = \`\${label} · \${number(value)} \${data.unit || ''}\`
367
+ }
368
+ hit.addEventListener('pointermove', (event) => {
369
+ detail.removeAttribute('aria-live')
370
+ const bounds = hit.getBoundingClientRect()
371
+ show((event.clientX - bounds.left) / bounds.width * (values.length - 1))
372
+ })
373
+ hit.addEventListener('focus', () => show(Math.round(current)))
374
+ hit.addEventListener('click', (event) => {
375
+ if (!event.detail) { show(Math.round(current)); return }
376
+ const bounds = hit.getBoundingClientRect()
377
+ show((event.clientX - bounds.left) / bounds.width * (values.length - 1))
378
+ })
379
+ hit.addEventListener('keydown', (event) => {
380
+ if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(event.key)) return
381
+ event.preventDefault()
382
+ detail.setAttribute('aria-live', 'polite')
383
+ show(event.key === 'Home' ? 0 : event.key === 'End' ? values.length - 1 : Math.round(current) + (event.key === 'ArrowRight' ? 1 : -1))
384
+ })
385
+ field.append(svg, hit)
386
+ root.append(field, detail)
387
+ }
388
+ }
389
+
390
+ class Flow extends Figure {
391
+ render() {
392
+ const data = this.figureData
393
+ if (!data || !Array.isArray(data.steps) || !data.steps.length || data.steps.length > 12 ||
394
+ data.steps.some((step) => !step || typeof step.label !== 'string' ||
395
+ (step.branches !== undefined && (!Array.isArray(step.branches) || step.branches.length > 8 ||
396
+ step.branches.some((branch) => !branch || typeof branch.label !== 'string'))))) { this.error(); return }
397
+ this.replaceChildren()
398
+ const root = node('figure', 'fs-flow-figure')
399
+ heading(root, data)
400
+ const list = node('ol', 'fs-flow-steps')
401
+ list.classList.toggle('fs-flow-steps--vertical', this.clientWidth < data.steps.length * 145)
402
+ list.style.setProperty('--fs-step-count', data.steps.length)
403
+ for (const [index, step] of data.steps.entries()) {
404
+ const item = node('li', 'fs-flow-step')
405
+ const status = ['done', 'active'].includes(step.status) ? step.status : 'pending'
406
+ item.dataset.status = status
407
+ if (status === 'active') item.setAttribute('aria-current', 'step')
408
+ const marker = node('span', 'fs-flow-marker', String(index + 1).padStart(2, '0'))
409
+ marker.setAttribute('aria-hidden', 'true')
410
+ const content = node('div', 'fs-flow-content')
411
+ content.append(node('span', 'fs-flow-label', step.label))
412
+ if (step.detail) content.append(node('span', 'fs-flow-description', step.detail))
413
+ if (Array.isArray(step.branches) && step.branches.length) {
414
+ const branches = node('ul', 'fs-flow-branches')
415
+ for (const branch of step.branches) {
416
+ const branchNode = node('li', 'fs-flow-branch')
417
+ branchNode.append(node('span', 'fs-flow-label', branch.label || ''))
418
+ if (branch.detail) branchNode.append(node('span', 'fs-flow-description', branch.detail))
419
+ branches.append(branchNode)
420
+ }
421
+ content.append(branches)
422
+ }
423
+ item.append(marker, content); list.append(item)
424
+ }
425
+ root.append(list); caption(root, data); this.append(root)
426
+ }
427
+ }
428
+
429
+ function register() {
430
+ if (!customElements.get('fs-chart')) customElements.define('fs-chart', Chart)
431
+ if (!customElements.get('fs-flow')) customElements.define('fs-flow', Flow)
432
+ }
433
+ if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', register)
434
+ else register()
435
+ })()
436
+ `,z=16384,C="forsion_sketch_state_v1",x=48;function v(t){try{const e=JSON.stringify(t);return e&&new TextEncoder().encode(e).length<=z?e:void 0}catch{return}}function P(t,e,n){let a=2166136261;for(let s=0;s<n.length;s++)a=Math.imul(a^n.charCodeAt(s),16777619);return JSON.stringify([t,e,n.length,a>>>0])}function L(t){const e=t.getItem(C);if(!e||e.length>z*(x+4))return[];let n;try{n=JSON.parse(e)}catch{return[]}return Array.isArray(n)?n.filter(a=>!!a&&typeof a.key=="string"&&a.key.length<2048&&v(a.state)!==void 0).slice(-x):[]}function V(t){try{return L(localStorage).find(e=>e.key===t)?.state??null}catch{return null}}function W(t,e){const n=v(e);if(!(!n||t.length>=2048))try{const a=L(localStorage).filter(s=>s.key!==t);a.push({key:t,state:JSON.parse(n)}),localStorage.setItem(C,JSON.stringify(a.slice(-x)))}catch{}}const q="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data: blob:; media-src data: blob:; font-src data:",B="allow-scripts",X=40,U=2400,G=220,Y={"--fs-bg":"transparent"},Q=[["--fs-surface","--overlay-subtle"],["--fs-text","--text"],["--fs-muted","--text-muted"],["--fs-faint","--text-faint"],["--fs-border","--border"],["--fs-rule","--overlay-medium"],["--fs-accent","--accent-ink"],["--fs-accent-soft","--accent-light"],["--fs-green","--green"],["--fs-danger","--danger"],["--fs-radius","--radius-sm"],["--fs-font","--font-ui"],["--fs-mono","--font-mono"]];function T(t){return String(t).replace(/[<>]/g,"").trim()}function E(t){const e=getComputedStyle(t),n={...Y};for(const[a,s]of Q){const c=T(e.getPropertyValue(s));c&&(n[a]=c)}return n["color-scheme"]=document.documentElement.getAttribute("data-mode")==="dark"?"dark":"light",n}const b=new Set;let p=null;function Z(t){return b.add(t),!p&&typeof MutationObserver<"u"&&(p=new MutationObserver(()=>{for(const e of b)e()}),p.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme","data-skin","data-bg","data-mode","data-flat","data-glass","class"]})),()=>{b.delete(t),!b.size&&p&&(p.disconnect(),p=null)}}const tt=":root{--fs-s1:var(--fs-accent);--fs-s2:color-mix(in srgb,var(--fs-text) 62%,transparent);--fs-s3:color-mix(in srgb,var(--fs-text) 42%,transparent);--fs-s4:color-mix(in srgb,var(--fs-text) 26%,transparent);--fs-s5:color-mix(in srgb,var(--fs-text) 14%,transparent)}";function et(t){const e=Object.entries(t).map(([n,a])=>`${n.replace(/[^a-z-]/gi,"")}:${T(a)}`).join(";");return e?`:root{${e}}`:""}function nt(t,e={},n=null){const a=(v(n)??"null").replace(/</g,"\\u003c").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),s=K.replace("__SKETCH_INITIAL_STATE__",()=>a);return`<!doctype html><html><head><meta http-equiv="Content-Security-Policy" content="${q}"><meta name="viewport" content="width=device-width, initial-scale=1"><style>${et(e)}${tt}${F}</style><script>${s};
437
+ ${J}<\/script></head><body>${t}</body></html>`}function at(){try{const t=window.Capacitor;return!!(t&&typeof t.isNativePlatform=="function"&&t.isNativePlatform())}catch{return!1}}const st=({item:t,actions:e,stateScope:n})=>{const{t:a}=N(),s=i.useMemo(()=>n?P(n,t.callId,t.html):null,[n,t.callId,t.html]),c=i.useMemo(()=>s?V(s):null,[s]),u=i.useRef(null),w=i.useRef(null),m=i.useRef(null),[y,$]=i.useState(G),[h,_]=i.useState(!1),[k,j]=i.useState(!1),[g,H]=i.useState(null);i.useLayoutEffect(()=>{u.current&&H(E(u.current))},[]),i.useEffect(()=>Z(()=>{const r=u.current,l=m.current?.contentWindow;r&&l&&l.postMessage({type:"sketch-theme",vars:E(r)},"*")}),[]),i.useEffect(()=>{let r,l;const d=()=>{s&&r!==void 0&&W(s,JSON.parse(r)),r=void 0,l=void 0},S=M=>{if(!m.current||M.source!==m.current.contentWindow)return;const f=M.data;if(f?.type==="sketch-state"&&s){const A=v(f.state);A!==void 0&&(r=A,l||(l=setTimeout(d,200)))}f&&f.type==="sketch-height"&&Number.isFinite(Number(f.height))&&$(Math.min(U,Math.max(X,Math.ceil(Number(f.height)))))};return window.addEventListener("message",S),window.addEventListener("pagehide",d),()=>{window.removeEventListener("message",S),window.removeEventListener("pagehide",d),clearTimeout(l),d()}},[s]),i.useEffect(()=>{const r=w.current;if(!r||h)return;const l=()=>j(r.scrollHeight>r.clientHeight+1);l();const d=new ResizeObserver(l);return d.observe(r),()=>d.disconnect()},[y,h]);const I=i.useMemo(()=>g?nt(t.html,g,c):"",[t.html,g,c]);return o.jsxs("div",{className:"sketch-card",ref:u,"data-sketch-call-id":t.callId,children:[(t.title||e)&&o.jsxs("div",{className:"sketch-card-head",children:[t.title&&o.jsx("div",{className:"sketch-card-title",children:t.title}),e?.(t)]}),o.jsx("div",{ref:w,className:`sketch-clip${h?" open":""}${k&&!h?" faded":""}`,children:g&&o.jsx("iframe",{ref:m,className:"sketch-frame",sandbox:B,srcDoc:I,style:{height:y},title:t.title||"sketch"})}),k&&o.jsx("button",{type:"button",className:"sketch-card-toggle",onClick:()=>_(r=>!r),children:a(h?"sketch.collapse":"sketch.expand")})]})},rt=({item:t})=>{const{t:e}=N();return o.jsxs("div",{className:"sketch-card","data-sketch-call-id":t.callId,children:[t.title&&o.jsx("div",{className:"sketch-card-title",children:t.title}),o.jsx("div",{className:"sketch-card-note",children:e("sketch.mobileUnavailable")})]})},dt=({items:t,actions:e,stateScope:n})=>{const a=at(),s=a?rt:st;return o.jsx(o.Fragment,{children:t.map(c=>o.jsx(s,{item:c,actions:a?void 0:e,stateScope:n},`${n||""}:${c.callId}`))})};export{lt as F,dt as S,D as a,ct as s};
@@ -0,0 +1 @@
1
+ import{d as v}from"./index-CF4RV4mh.js";import{dN as J,bp as ne,a7 as re}from"./appStore-Dg9WALEA.js";const K=/^(auto|scroll|hidden|clip)$/,M=(l,g=1)=>Number.isFinite(l)&&l>0?l:g,m=l=>`${Math.round(l*1e3)/1e3}px`;function ae({anchorRef:l,enabled:g=!0,onActivate:Y,children:Q}){const[t]=v.useState(()=>{const d=document.createElement("div");return d.className="csu-guest-surface",d.setAttribute("aria-hidden","true"),d.inert=!0,Object.assign(d.style,{position:"absolute",display:"flex",flexDirection:"column",minWidth:"0",minHeight:"0",overflow:"hidden",boxSizing:"border-box",visibility:"hidden",pointerEvents:"none",zIndex:"1"}),d}),E=v.useRef(g);E.current=g;const q=v.useRef(Y);q.current=Y;const N=v.useRef(0),$=v.useRef(null);return v.useLayoutEffect(()=>{N.current++;let d=!1,b=0,r=t.parentElement,x=null,I=!1,R=!1;const n=t.ownerDocument,a=n.defaultView,o=(i,e)=>{t.style[i]!==e&&(t.style[i]=e)},f=()=>{o("visibility","hidden"),o("pointerEvents","none"),t.inert||(t.inert=!0),t.getAttribute("aria-hidden")!=="true"&&t.setAttribute("aria-hidden","true")},D=()=>{const i=t.style.visibility==="visible"&&E.current&&!I&&!n.documentElement.hasAttribute("data-dv-dragging");o("pointerEvents",i?"auto":"none"),t.inert===i&&(t.inert=!i);const e=i?"false":"true";t.getAttribute("aria-hidden")!==e&&t.setAttribute("aria-hidden",e)},y=()=>{d||!E.current||n.hidden||t.inert||t.style.visibility!=="visible"||!l.current?.isConnected||l.current.closest('[hidden], [inert], [aria-hidden="true"]')||n.documentElement.hasAttribute("data-dv-dragging")||(R=t.contains(n.activeElement),q.current?.())},G=()=>{t.contains(n.activeElement)||(R=!1)},ee=()=>{const i=l.current;if(!i?.isConnected||(r||(r=i.closest(".shell-work")??i.closest(".shell-host")??n.body,(r===n.body||a.getComputedStyle(r).position==="static")&&o("position","fixed"),r.appendChild(t),A?.observe(r)),x!==i&&(x&&A?.unobserve(x),A?.observe(i),x=i),!E.current||n.hidden||!r.isConnected))return f(),!1;const e=i.getBoundingClientRect();if(e.width<=0||e.height<=0)return f(),!1;let p=Math.max(0,e.left),C=Math.max(0,e.top),z=Math.min(a.innerWidth,e.right),O=Math.min(a.innerHeight,e.bottom),W=1,k="";I=!1;for(let s=i;s;s=s.parentElement){const u=a.getComputedStyle(s);if(s.hidden||u.display==="none"||u.visibility==="hidden"||u.visibility==="collapse")return f(),!1;(s.inert||s.getAttribute("aria-hidden")==="true")&&(I=!0),s!==r&&!s.contains(r)&&(W*=Number.parseFloat(u.opacity||"1"));const V=/\b(paint|strict|content)\b/.test(u.contain),B=V||K.test(u.overflowX||u.overflow),X=V||K.test(u.overflowY||u.overflow);if(!B&&!X)continue;const h=s.getBoundingClientRect(),Z=M(h.width/s.offsetWidth),_=M(h.height/s.offsetHeight),j=h.left+s.clientLeft*Z,U=h.top+s.clientTop*_,te=j+s.clientWidth*Z,ie=U+s.clientHeight*_;B&&(p=Math.max(p,j),z=Math.min(z,te)),X&&(C=Math.max(C,U),O=Math.min(O,ie)),!k&&B&&X&&Math.abs(h.left-e.left)<1&&Math.abs(h.top-e.top)<1&&Math.abs(h.right-e.right)<1&&Math.abs(h.bottom-e.bottom)<1&&(k=u.borderRadius)}if(z<=p||O<=C)return f(),!1;if(W<=0)return f(),!0;const S=r.getBoundingClientRect(),F=M(re(t)),H=t.style.position==="absolute",L=H?M(S.width/r.offsetWidth,F):F,w=H?M(S.height/r.offsetHeight,F):F;return o("left",m(H?(e.left-S.left)/L-r.clientLeft+r.scrollLeft:e.left/L)),o("top",m(H?(e.top-S.top)/w-r.clientTop+r.scrollTop:e.top/w)),o("width",m(e.width/L)),o("height",m(e.height/w)),o("clipPath",`inset(${m((C-e.top)/w)} ${m((e.right-z)/L)} ${m((e.bottom-O)/w)} ${m((p-e.left)/L)})`),o("borderRadius",k),o("opacity",String(W)),o("visibility","visible"),D(),!0},T=()=>{if(b=0,d)return;const i=ee(),e=t.contains(n.activeElement),p=e&&!R;R=e,p&&y(),i&&(b=a.requestAnimationFrame(T))},c=()=>{!d&&!b&&(b=a.requestAnimationFrame(T))},A=typeof ResizeObserver>"u"?null:new ResizeObserver(c),P=new MutationObserver(i=>{i.some(e=>e.target===n.documentElement&&e.attributeName==="data-dv-dragging")&&D(),i.some(e=>!t.contains(e.target))&&c()});return P.observe(n.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class","hidden","inert","aria-hidden","data-dv-dragging"]}),a.addEventListener("resize",c),n.addEventListener("scroll",c,!0),n.addEventListener("visibilitychange",c),a.addEventListener(J,c),t.addEventListener("focus",y,!0),t.addEventListener("pointerdown",y,!0),n.addEventListener("focus",G,!0),$.current=()=>{E.current||f(),c()},T(),()=>{d=!0,b&&a.cancelAnimationFrame(b),A?.disconnect(),P.disconnect(),a.removeEventListener("resize",c),n.removeEventListener("scroll",c,!0),n.removeEventListener("visibilitychange",c),a.removeEventListener(J,c),t.removeEventListener("focus",y,!0),t.removeEventListener("pointerdown",y,!0),n.removeEventListener("focus",G,!0),$.current=null,f();const i=++N.current;queueMicrotask(()=>{N.current===i&&t.remove()})}},[l,t]),v.useLayoutEffect(()=>{$.current?.()},[g]),ne.createPortal(Q,t)}export{ae as S};
@@ -0,0 +1 @@
1
+ import{u as L,d as i,j as o,r as O}from"./index-CF4RV4mh.js";import{A as P}from"./astryxBridge-BZhaZPs4.js";import{i2 as R,iB as F,ib as _,iC as K,iD as z,d4 as U,iE as V,iF as Y,af as G,cp as W,iG as q,iA as J,at as Q,it as X,il as Z,iH as ee,a7 as te}from"./appStore-Dg9WALEA.js";import{a as oe,p as se}from"./mdMarkStore-CsKl7C8O.js";import{E as ae}from"./EventCard-BmDQkEj9.js";import{C as E}from"./CheckboxInput-BsaoUHZ0.js";import"./nativeDownload-D-f1_L2S.js";import"./ipc-DQOD2UKk.js";import"./client-BSKpsyAw.js";import"./mdMarks-Bq7Hl-4C.js";import"./Tooltip-DY4ISA-e.js";O({"todolist.title":{zh:"待办",en:"To-dos"},"todolist.untitled":{zh:"未命名",en:"Untitled"},"todolist.done":{zh:"已完成",en:"Completed"},"todolist.openInNote":{zh:"在笔记中打开",en:"Open in note"},"todolist.clickToEdit":{zh:"点击编辑",en:"Click to edit"},"todolist.addPlaceholder":{zh:"新建待办",en:"New to-do"},"todolist.allDone":{zh:"全部完成了。",en:"All done."},"todolist.emptyTitle":{zh:"还没有待办。",en:"No to-dos yet."},"todolist.emptyHintA":{zh:"在笔记里写 ",en:"Write "},"todolist.emptyExample":{zh:"- [ ] 事项 @2026-09-01",en:"- [ ] Task @2026-09-01"},"todolist.emptyHintB":{zh:"(打 ",en:" in a note (type "},"todolist.emptyHintC":{zh:" 有候选),或在下面直接加一条。",en:" for suggestions), or add one below."},"todolist.emptyHintCNoAdd":{zh:" 有候选)。",en:" for suggestions)."}});const M="done";function ne(h){const l=c=>typeof c=="string"?c:typeof c=="number"?String(c):"",n=l(h?.src);return{db:l(h?.db)||void 0,src:n==="db"||n==="md"?n:"all"}}function be({params:h}={}){const l=ne(h),{t:n}=L(),c=R(),C=oe(),[I,T]=i.useState(new Set([...F,M])),[m,N]=i.useState(null),[k,b]=i.useState(""),x=i.useMemo(()=>_(new Date),[]),u=i.useMemo(()=>c.filter(e=>e.checkboxCol&&(!l.db||e.db.path===l.db)),[c,l.db]),r=i.useMemo(()=>{const e=[];if(l.src!=="md")for(const t of u){const s=t.checkboxCol;for(const a of t.db.rows){const d=typeof a.cells[t.dateCol]=="string"?a.cells[t.dateCol]:"";e.push({key:`db:${t.db.path}:${a.rowId}`,name:a.name||n("todolist.untitled"),checked:a.cells[s]===!0,raw:d,source:t.db.name,db:t,rowId:a.rowId})}}if(l.src!=="db"&&!l.db)for(const t of C.filter(s=>s.isTask))e.push({key:`md:${t.path}:${t.line}`,name:t.text,checked:t.checked,raw:t.due,source:t.heading?`${t.title} › ${t.heading}`:t.title,note:{path:t.path,heading:t.heading},mark:t});return e},[u,C,l.src,l.db,n]),f=i.useMemo(()=>r.filter(e=>e.checked),[r]),A=i.useMemo(()=>{const e=new Map;for(const t of r){if(t.checked)continue;const s=K(t.raw,x),a=e.get(s);a?a.push(t):e.set(s,[t])}for(const t of e.values())t.sort((s,a)=>{const d=z(s.raw),v=z(a.raw);return(d===v?0:d<v?-1:1)||s.source.localeCompare(a.source,"zh")||s.name.localeCompare(a.name,"zh")});return e},[r,x]),g=r.length-f.length,D=e=>T(t=>{const s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s}),w=i.useMemo(()=>{if(!m)return null;const e=u.find(a=>a.db.path===m.dbPath),t=e?.db.rows.find(a=>a.rowId===m.rowId);if(!e||!t)return null;const s=typeof t.cells[e.dateCol]=="string"?t.cells[e.dateCol]:"";return{db:e.db,row:t,colId:e.dateCol,title:t.name,raw:s}},[m,u]),p=i.useMemo(()=>u.find(e=>!e.db.readonly&&!e.db.isNoteView),[u]),H=()=>{const e=k.trim();!e||!p||(X(p.db,p.dateCol,Z(x,!0),e),b(""))},$=(e,t)=>{if(e.note){ee(e.note.path,e.note.heading);return}if(!e.db||!e.rowId)return;const s=t.currentTarget.getBoundingClientRect();N({dbPath:e.db.db.path,rowId:e.rowId,at:{left:s.left,top:s.top,right:s.right,bottom:s.bottom,zoom:te(t.currentTarget)||1}})},S=!!U?.patchMark,j=e=>{const t=q(e.raw,x);return o.jsxs("li",{className:"amx-todo-item",children:[e.db&&e.rowId?o.jsx(E,{label:e.name,isLabelHidden:!0,size:"sm",value:e.checked,onChange:s=>J(e.db.db,e.rowId,e.db.checkboxCol,s?!0:void 0)}):e.mark&&S?o.jsx(E,{label:e.name,isLabelHidden:!0,size:"sm",value:e.checked,onChange:s=>se(e.mark,{checked:s})}):o.jsx("span",{className:`amx-todo-box${e.checked?" on":""}`,"aria-hidden":"true"}),o.jsxs("button",{className:"amx-todo-main",title:e.note?n("todolist.openInNote"):n("todolist.clickToEdit"),onClick:s=>$(e,s),children:[o.jsx("span",{className:`amx-todo-name${e.checked?" done":""}`,children:e.name}),e.raw?o.jsx("span",{className:`amx-todo-due ${t.tone}`,children:t.label}):null,e.note?o.jsx(Q,{className:"amx-todo-jump",size:12}):null]})]},e.key)},B=(e,t)=>{if(e!=="undated")return o.jsx("ul",{className:"amx-todo-list",children:t.map(j)});const s=[];for(const a of t){const d=s[s.length-1];d&&d.source===a.source?d.items.push(a):s.push({source:a.source,items:[a]})}return o.jsx(o.Fragment,{children:s.map(a=>o.jsxs("div",{children:[o.jsxs("div",{className:"amx-todo-src",children:[a.source,o.jsx("span",{className:"amx-todo-srcn",children:a.items.length})]}),o.jsx("ul",{className:"amx-todo-list",children:a.items.map(j)})]},a.source))})},y=(e,t,s,a)=>{const d=!I.has(e);return o.jsxs("section",{className:"amx-todo-group",children:[o.jsxs("button",{className:`amx-todo-ghead${d?" is-open":""}`,onClick:()=>D(e),"aria-expanded":d,children:[o.jsx(W,{className:"amx-todo-caret",size:12}),o.jsx("span",{className:"amx-todo-gname",children:t}),o.jsx("span",{className:"amx-todo-gcount",children:s.length})]}),o.jsx("div",{className:`amx-todo-reveal${d?" is-open":""}`,children:o.jsx("div",{className:"amx-todo-reveal-in",children:a})})]},e)};return o.jsx(P,{children:o.jsxs("div",{className:"amx-todo",children:[o.jsxs("div",{className:"amx-todo-bar",children:[o.jsx("span",{className:"amx-todo-title",children:n("todolist.title")}),g>0&&o.jsx("span",{className:"amx-todo-total",children:g})]}),r.length===0&&o.jsxs("div",{className:"amx-todo-empty",children:[n("todolist.emptyTitle"),!h?.miniSurface&&o.jsxs(o.Fragment,{children:[o.jsx("br",{}),n("todolist.emptyHintA"),o.jsx("code",{children:n("todolist.emptyExample")}),n("todolist.emptyHintB"),o.jsx("code",{children:"@"}),n(p?"todolist.emptyHintC":"todolist.emptyHintCNoAdd")]})]}),r.length>0&&g===0&&o.jsx("div",{className:"amx-todo-empty",children:n("todolist.allDone")}),V.map(e=>{const t=A.get(e);return t&&t.length?y(e,Y[e],t,B(e,t)):null}),f.length>0&&y(M,n("todolist.done"),f,o.jsx("ul",{className:"amx-todo-list",children:f.map(j)})),p&&o.jsxs("div",{className:"amx-todo-add",children:[o.jsx(G,{className:"amx-todo-addicon",size:13}),o.jsx("input",{className:"amx-todo-addinput",placeholder:n("todolist.addPlaceholder"),value:k,onChange:e=>b(e.target.value),onKeyDown:e=>{e.nativeEvent.isComposing||(e.key==="Enter"&&(e.preventDefault(),H()),e.key==="Escape"&&b(""))}})]}),w&&m&&o.jsx(ae,{ev:w,at:m.at,onClose:()=>N(null)})]})})}export{be as TodoListView,ne as readTodoParams};
@@ -0,0 +1 @@
1
+ import{d as l,j as o}from"./index-CF4RV4mh.js";import{u as E,c as f}from"./astryxBridge-BZhaZPs4.js";import"./appStore-Dg9WALEA.js";import"./nativeDownload-D-f1_L2S.js";import"./ipc-DQOD2UKk.js";import"./client-BSKpsyAw.js";function N(r){return typeof r=="string"||typeof r=="number"}function p(...r){const i=r.filter(Boolean);return i.length>0?i.join(" "):void 0}function F({children:r,anchorRef:i,content:n,placement:y="above",alignment:m="center",delay:x=200,hideDelay:j=0,focusTrigger:g="auto",isEnabled:A=!0,onOpenChange:d,hasHoverIndication:b="auto",isOpen:B,isDefaultOpen:T}){const c=l.useRef(null),u=r!=null?N(r):!1,v=b===!0||b==="auto"&&u,w=l.useCallback(()=>{d?.(!0)},[d]),k=l.useCallback(()=>{d?.(!1)},[d]),e=E({placement:y,alignment:m,delay:x,hideDelay:j,focusTrigger:g,isEnabled:A,isOpen:B,isDefaultOpen:T,onShow:w,onHide:k});return f(()=>{if(!i)return;const s=i.current;if(!s)return;e.ref(s);const t=s.getAttribute("aria-describedby");return s.setAttribute("aria-describedby",p(t,e.describedBy)??""),()=>{e.ref(null),t?s.setAttribute("aria-describedby",t):s.removeAttribute("aria-describedby")}},[i,e.ref,e.describedBy]),f(()=>{if(i||u)return;const s=c.current;if(!s)return;const t=s.firstElementChild;if(!t)return;e.ref(t);const a=t.getAttribute("aria-describedby");return t.setAttribute("aria-describedby",p(a,e.describedBy)??""),()=>{e.ref(null),a?t.setAttribute("aria-describedby",a):t.removeAttribute("aria-describedby")}},[i,u,e.ref,e.describedBy]),i&&r==null?o.jsx(o.Fragment,{children:e.renderTooltip(n)}):u?o.jsxs(o.Fragment,{children:[o.jsx("span",{ref:e.ref,tabIndex:0,"aria-describedby":e.describedBy,...{0:{className:"xt0psk2"},1:{className:"xt0psk2 xujl8zx xev0dqp xycaml9 xrys4gj"}}[!!v<<0],children:r}),e.renderTooltip(n)]}):o.jsxs(o.Fragment,{children:[o.jsx("div",{ref:c,className:"xjp7ctv",children:r}),e.renderTooltip(n)]})}F.displayName="Tooltip";export{F as Tooltip};