lookatstudy-mobile 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/package.json +1 -1
  2. package/seed-course.json +15 -15
  3. package/server.cjs +342 -22
  4. package/web/assets/{CanvasStage-Ba-21anG.js → CanvasStage-u_7YeGk1.js} +1 -1
  5. package/web/assets/{CommandPalette-SKnzQMcN.js → CommandPalette-Q5j7BQf4.js} +1 -1
  6. package/web/assets/{CourseSearchPanel-BW3fNReR.js → CourseSearchPanel-BYGHjhnk.js} +1 -1
  7. package/web/assets/{ExamView-BnH6BraN.js → ExamView-DU5X7LyZ.js} +1 -1
  8. package/web/assets/{MindmapView-B4SeCLQj.js → MindmapView-C61d4ddf.js} +3 -3
  9. package/web/assets/{ReviewPanel-DkGT8tNA.js → ReviewPanel-DoLMdlpR.js} +1 -1
  10. package/web/assets/SettingsView-CD9th6O0.js +7 -0
  11. package/web/assets/{VoicePanel-CxNeKn4V.js → VoicePanel-Cvl2BLq2.js} +1 -1
  12. package/web/assets/{abnfDiagram-N423BO3Z-B4kvB05N.js → abnfDiagram-N423BO3Z-BvTcLUtE.js} +1 -1
  13. package/web/assets/{abnfDiagram-VCTEODGH-ODA7YWAP-B5zhG8XJ.js → abnfDiagram-VCTEODGH-ODA7YWAP-NpbseUTF.js} +1 -1
  14. package/web/assets/{architectureDiagram-5GKGNRK7-C4PU3XN7-ybcWxxhr.js → architectureDiagram-5GKGNRK7-C4PU3XN7-DGtDmisd.js} +1 -1
  15. package/web/assets/{architectureDiagram-T3A2C74G-D5eb-etB.js → architectureDiagram-T3A2C74G-huu8moy9.js} +1 -1
  16. package/web/assets/{arrow-right-D4GV0Gpo.js → arrow-right-B0QrRNSR.js} +1 -1
  17. package/web/assets/{blockDiagram-NRAW4CY4-UMJ6PMQQ-DwEVReBp.js → blockDiagram-NRAW4CY4-UMJ6PMQQ-BxiaVwV9.js} +1 -1
  18. package/web/assets/{blockDiagram-VBNYF7ZC-DuM7ndnl.js → blockDiagram-VBNYF7ZC-BAnlmDNm.js} +1 -1
  19. package/web/assets/{c4Diagram-5PPSVZJV-BQkRaO7S.js → c4Diagram-5PPSVZJV-MUU8xp1X.js} +1 -1
  20. package/web/assets/{c4Diagram-UCG6FXSJ-75X3U2P3-Di1jNn7S.js → c4Diagram-UCG6FXSJ-75X3U2P3-7rpgYEob.js} +1 -1
  21. package/web/assets/channel-BJoUn5Z8.js +1 -0
  22. package/web/assets/{chunk-2GRJ4B5K-C7VAL2Yd.js → chunk-2GRJ4B5K-BZ6Sj0-3.js} +1 -1
  23. package/web/assets/{chunk-2Q5K7J3B-Jpo34qVL.js → chunk-2Q5K7J3B-BkOSQBqV.js} +1 -1
  24. package/web/assets/{chunk-5RXB4S5H-CrW8aZl4.js → chunk-5RXB4S5H-DgXJvWY0.js} +1 -1
  25. package/web/assets/{chunk-5VM5RSS4-Dv4MffdC.js → chunk-5VM5RSS4-D-BptZQ9.js} +1 -1
  26. package/web/assets/{chunk-6Q2QTUOP-CI07iNTB.js → chunk-6Q2QTUOP-DIJ0lWTD.js} +1 -1
  27. package/web/assets/{chunk-7XDTSPCN-DsQtrF-N.js → chunk-7XDTSPCN-vxuDBi1y.js} +1 -1
  28. package/web/assets/{chunk-CTNIYPP6-CpdWBpIN.js → chunk-CTNIYPP6-F5ZMIO6O.js} +1 -1
  29. package/web/assets/{chunk-CXNFBKHE-BDCDRaZC.js → chunk-CXNFBKHE-CFr1EfBh.js} +1 -1
  30. package/web/assets/{chunk-GF5L2VYU-DtpZkefy.js → chunk-GF5L2VYU-jqePwawx.js} +1 -1
  31. package/web/assets/{chunk-ISA7TJRJ-C3LgQ-bA.js → chunk-ISA7TJRJ-DiKuu0wz.js} +1 -1
  32. package/web/assets/{chunk-JWPE2WC7-DJM1SevB.js → chunk-JWPE2WC7-CLC3hqKr.js} +1 -1
  33. package/web/assets/{chunk-KBJHAD2P-7KeTMqC1.js → chunk-KBJHAD2P-DSEKcYpO.js} +1 -1
  34. package/web/assets/{chunk-LV3HUYFY-B2sGhGxz.js → chunk-LV3HUYFY-P2e0-qZ6.js} +1 -1
  35. package/web/assets/{chunk-M3IUQBOH-Dazbegdb.js → chunk-M3IUQBOH-Bdt4MjFy.js} +1 -1
  36. package/web/assets/{chunk-NDIOYS4C-Cx7mCz5-.js → chunk-NDIOYS4C-7HlPLAGd.js} +1 -1
  37. package/web/assets/{chunk-RE4WF27V-BNzpDJts.js → chunk-RE4WF27V-D4vIv_G3.js} +1 -1
  38. package/web/assets/{chunk-RYQCIY6F-Boq_29rU.js → chunk-RYQCIY6F-tTcuHeqw.js} +1 -1
  39. package/web/assets/{chunk-VII2H2IX-kQVDZD-x.js → chunk-VII2H2IX-BkXECJ1Z.js} +1 -1
  40. package/web/assets/{chunk-X5GNSKZ3-DT5Ja5IF.js → chunk-X5GNSKZ3-D7yjZGWk.js} +1 -1
  41. package/web/assets/{chunk-XCWWM2C3-BAq7zpgL.js → chunk-XCWWM2C3-C_es6n6S.js} +1 -1
  42. package/web/assets/{chunk-XXDRQBXY-D3vcLngc.js → chunk-XXDRQBXY-Bsuow-B8.js} +1 -1
  43. package/web/assets/classDiagram-DTDB5LWJ-LWRDKZ5K-B3DqqoSe.js +1 -0
  44. package/web/assets/classDiagram-JCYQIIEL-C2n-a_rM.js +1 -0
  45. package/web/assets/classDiagram-v2-JRS7N3AN-2BZHGRP2-B3DqqoSe.js +1 -0
  46. package/web/assets/classDiagram-v2-OCEON4UE-C2n-a_rM.js +1 -0
  47. package/web/assets/{core-4d9vIKK9.js → core-Bgf5ngI5.js} +1 -1
  48. package/web/assets/{cose-bilkent-JH36ORCC-OB24KH3T-DwFzf1xR.js → cose-bilkent-JH36ORCC-OB24KH3T-DM0H6Gci.js} +1 -1
  49. package/web/assets/{cose-bilkent-JH36ORCC-RoUdcSs7.js → cose-bilkent-JH36ORCC-x05QuEnY.js} +1 -1
  50. package/web/assets/{cynefin-OW5HDTMX-GVF3BKWE-Bdt2EF7g.js → cynefin-OW5HDTMX-GVF3BKWE-DY90g1OE.js} +1 -1
  51. package/web/assets/{cynefin-VYW2F7L2-Br1TXK2f.js → cynefin-VYW2F7L2-DjqH_9VW.js} +1 -1
  52. package/web/assets/{cynefinDiagram-5FMLGOSQ-H3WIRU3N-DFRlDIhn.js → cynefinDiagram-5FMLGOSQ-H3WIRU3N-DoaOZ7iJ.js} +1 -1
  53. package/web/assets/{cynefinDiagram-MW4NZA55-DeqLH2Db.js → cynefinDiagram-MW4NZA55-DI8ePik6.js} +1 -1
  54. package/web/assets/{dagre-3AP2YEHR-DCERTXHT-wbCkJQSQ.js → dagre-3AP2YEHR-DCERTXHT-BwLHkvZV.js} +1 -1
  55. package/web/assets/{dagre-VZM6K2ZE-X3laLObS.js → dagre-VZM6K2ZE-0zjstOys.js} +1 -1
  56. package/web/assets/{diagram-7IWD3JNH-8bZxUpBi.js → diagram-7IWD3JNH-CoRwcTua.js} +1 -1
  57. package/web/assets/{diagram-B4RE2ZJO-CsGnKBa4.js → diagram-B4RE2ZJO-Cau1H7nm.js} +1 -1
  58. package/web/assets/{diagram-LBJQPF4R-CxaNBwKI.js → diagram-LBJQPF4R-CZIgxCTB.js} +1 -1
  59. package/web/assets/{diagram-Q27KOJAE-CjVLD6gb.js → diagram-Q27KOJAE-B_LnuCra.js} +1 -1
  60. package/web/assets/{diagram-S7CK7UJ4-MULGZGEL-wKLcWkw4.js → diagram-S7CK7UJ4-MULGZGEL-C7lZT5bQ.js} +1 -1
  61. package/web/assets/{diagram-UB23O5K3-CUZ34yVE.js → diagram-UB23O5K3-qTFCSozX.js} +1 -1
  62. package/web/assets/{diagram-UQ7AKVKN-YQBY353J-B_ah6OV8.js → diagram-UQ7AKVKN-YQBY353J-CIootVI_.js} +1 -1
  63. package/web/assets/{diagram-VSXAHHWV-WLNH2ELY-BhbJ7E_e.js → diagram-VSXAHHWV-WLNH2ELY-BW8LpgQJ.js} +1 -1
  64. package/web/assets/{diagram-VX7I27RA-XW6YQV5G-DnFEyO87.js → diagram-VX7I27RA-XW6YQV5G-DfhGfGMR.js} +1 -1
  65. package/web/assets/{diagram-Z3DM3KII-HG7RF65D-Vughovua.js → diagram-Z3DM3KII-HG7RF65D-seunnnEY.js} +1 -1
  66. package/web/assets/{ebnfDiagram-BXEA7PRR-B2ehf44X.js → ebnfDiagram-BXEA7PRR-ksZAvx5f.js} +1 -1
  67. package/web/assets/{ebnfDiagram-PWID7BFC-OKY4VHYD-BjbgNq8R.js → ebnfDiagram-PWID7BFC-OKY4VHYD-Bvj1acAA.js} +1 -1
  68. package/web/assets/{elk.bundled-CktUbZ7z.js → elk.bundled-DP5Rghza.js} +1 -1
  69. package/web/assets/{erDiagram-JOGREHBK-9wI_YE-7.js → erDiagram-JOGREHBK-Dz3-stVV.js} +1 -1
  70. package/web/assets/{erDiagram-SSCWMZ5O-PIPKOIK7-V60k7zg6.js → erDiagram-SSCWMZ5O-PIPKOIK7-DoltPq2T.js} +1 -1
  71. package/web/assets/{flowDiagram-A5DVABFB-2Z4AVO5R-CJdwjvtN.js → flowDiagram-A5DVABFB-2Z4AVO5R-EXpUdCkE.js} +1 -1
  72. package/web/assets/{flowDiagram-UKHOOZJN-B3XmqjMH.js → flowDiagram-UKHOOZJN--KUxj2rZ.js} +1 -1
  73. package/web/assets/{ganttDiagram-EL5Y4UJY-JZNG7GOG-2a6TiXM3.js → ganttDiagram-EL5Y4UJY-JZNG7GOG-B3_qeHhv.js} +1 -1
  74. package/web/assets/{ganttDiagram-PKOTCBZU-B7B9nD6g.js → ganttDiagram-PKOTCBZU-DDw97tpG.js} +1 -1
  75. package/web/assets/{gitGraphDiagram-DS77QQ5N-VwKL0Ozk.js → gitGraphDiagram-DS77QQ5N-DXUcbzn4.js} +1 -1
  76. package/web/assets/{gitGraphDiagram-WWUBYQGX-DMWMLL3G-BMs5FYkE.js → gitGraphDiagram-WWUBYQGX-DMWMLL3G-BrLu7NzO.js} +1 -1
  77. package/web/assets/{index-DFryMRAp.js → index-BUFumkqO.js} +4 -4
  78. package/web/assets/{index-xynt7zMk.js → index-C-4sKCSr.js} +1 -1
  79. package/web/assets/{index-DkjixD09.js → index-CODVWHV0.js} +1 -1
  80. package/web/assets/{index-Vtc_VHiK.js → index-CRlVl931.js} +1 -1
  81. package/web/assets/{index-D0FRqjBW.js → index-CrB9w7Gs.js} +1 -1
  82. package/web/assets/{infoDiagram-6WML65LV-CD6GNI7J.js → infoDiagram-6WML65LV-rLhQ8DQz.js} +1 -1
  83. package/web/assets/{infoDiagram-RXCK75RN-HANS5KVC-k8vzCiSp.js → infoDiagram-RXCK75RN-HANS5KVC-BhbqgWa_.js} +1 -1
  84. package/web/assets/{ishikawaDiagram-5VMMS53U-7GCIT7WU-Ckl5jIU6.js → ishikawaDiagram-5VMMS53U-7GCIT7WU-DR-PXM0c.js} +1 -1
  85. package/web/assets/{ishikawaDiagram-WSZJBQD7-CEdvuK4K.js → ishikawaDiagram-WSZJBQD7-Bf-J9Ov1.js} +1 -1
  86. package/web/assets/{journeyDiagram-EYS64GPL-OAPELBT7-DtCRso4h.js → journeyDiagram-EYS64GPL-OAPELBT7-jFQUZit6.js} +1 -1
  87. package/web/assets/{journeyDiagram-NVQOT4AX-CxPjI9L-.js → journeyDiagram-NVQOT4AX-CWed0L5n.js} +1 -1
  88. package/web/assets/{kanban-definition-27J2QSJJ-DnuNCFkl.js → kanban-definition-27J2QSJJ-DhTIozq4.js} +1 -1
  89. package/web/assets/{kanban-definition-3QL26DDD-I7RKWQQY-yNRn2nj0.js → kanban-definition-3QL26DDD-I7RKWQQY-MOg0W8Vc.js} +1 -1
  90. package/web/assets/{katex-N6JRN4PM-B9dEOiMG.js → katex-N6JRN4PM-DUl1EV3T.js} +1 -1
  91. package/web/assets/{main-CGE6fm01.js → main-D3HpSUyK.js} +9 -9
  92. package/web/assets/{mermaid-layout-elk.core-BUAJJUsd.js → mermaid-layout-elk.core-KBAfwQxu.js} +2 -2
  93. package/web/assets/{mermaid.core-BD32Za4p.js → mermaid.core-BVbO1Vp8.js} +4 -4
  94. package/web/assets/{mindmap-definition-FAOFIHXS-DX6VEGs_.js → mindmap-definition-FAOFIHXS-UC1xDIuF.js} +1 -1
  95. package/web/assets/{mindmap-definition-FBJOCRG2-KIYZG64Y-DYiBZnHG.js → mindmap-definition-FBJOCRG2-KIYZG64Y-DyTkl7Qq.js} +1 -1
  96. package/web/assets/{pegDiagram-VL7TDLO6-Big72xut.js → pegDiagram-VL7TDLO6-D3DtO4SS.js} +1 -1
  97. package/web/assets/{pegDiagram-XKGWAZYB-OIP57N6J-N0pgSR7W.js → pegDiagram-XKGWAZYB-OIP57N6J-D6RFGa8P.js} +1 -1
  98. package/web/assets/{pet-DopPVlAf.js → pet-BawFRWlx.js} +1 -1
  99. package/web/assets/{pieDiagram-7S7Q4E2Y-BLXLqOCg.js → pieDiagram-7S7Q4E2Y-Bggk64R7.js} +1 -1
  100. package/web/assets/{pieDiagram-E7YTZNPT-2UOTW327-BuB4rTS2.js → pieDiagram-E7YTZNPT-2UOTW327-DbtP5dKZ.js} +1 -1
  101. package/web/assets/{quadrantDiagram-AXDQQJYC-SN3ASJJK-4S-5LgOz.js → quadrantDiagram-AXDQQJYC-SN3ASJJK-CbdnLdcx.js} +1 -1
  102. package/web/assets/{quadrantDiagram-CIZ2JOQS-BUwizsLb.js → quadrantDiagram-CIZ2JOQS-D8oWqljf.js} +1 -1
  103. package/web/assets/{railroadDiagram-AXF67PYL-D3qxyYSE.js → railroadDiagram-AXF67PYL-DqYMsbyG.js} +1 -1
  104. package/web/assets/{railroadDiagram-O6MQD6OU-34742W6X-CzT_bN34.js → railroadDiagram-O6MQD6OU-34742W6X-BxDZ-lKK.js} +1 -1
  105. package/web/assets/{render-O7CIS3YK-DhYmSGoI.js → render-O7CIS3YK-C5zxvpoJ.js} +7 -7
  106. package/web/assets/{requirementDiagram-EFPCY7ZU-NGAFFSMB-iWwnW8VG.js → requirementDiagram-EFPCY7ZU-NGAFFSMB-vkMFulyy.js} +1 -1
  107. package/web/assets/{requirementDiagram-LRYGKXZP-Cf95T2or.js → requirementDiagram-LRYGKXZP-4uQ-OIOg.js} +1 -1
  108. package/web/assets/{rotate-ccw-natFwqj6.js → rotate-ccw-C3k3pTDh.js} +1 -1
  109. package/web/assets/{sankeyDiagram-P5KCCOFB-3D3M4XPB-CjA_LC6M.js → sankeyDiagram-P5KCCOFB-3D3M4XPB-Ct2_9lW6.js} +1 -1
  110. package/web/assets/{sankeyDiagram-W5VNT64P-CeGCHk7F.js → sankeyDiagram-W5VNT64P-CdtMmhMM.js} +1 -1
  111. package/web/assets/{sequenceDiagram-SI44F4Z6-BDsExCj2.js → sequenceDiagram-SI44F4Z6-BTa9vGYr.js} +1 -1
  112. package/web/assets/{sequenceDiagram-WJ2MYXX4-Q2IOPB4R-DbWhuP8u.js → sequenceDiagram-WJ2MYXX4-Q2IOPB4R-Du5hMpfL.js} +1 -1
  113. package/web/assets/{sizeCapture-X5ZJPWSS-PSGVOMYM-DB5JtURh.js → sizeCapture-X5ZJPWSS-PSGVOMYM-Dv_CbP4j.js} +1 -1
  114. package/web/assets/{sizeCapture-X5ZJPWSS-_5trx7u2.js → sizeCapture-X5ZJPWSS-xJHPAAZ7.js} +1 -1
  115. package/web/assets/{stateDiagram-HBIQ2CUA-4M2S6MAN-CBEhL8_A.js → stateDiagram-HBIQ2CUA-4M2S6MAN-BhhZM57P.js} +1 -1
  116. package/web/assets/{stateDiagram-OKZ733FA-BPHwMfDA.js → stateDiagram-OKZ733FA-CHCQNs83.js} +1 -1
  117. package/web/assets/stateDiagram-v2-4QOOHH4V-LBBLA2WV-CNwPFEas.js +1 -0
  118. package/web/assets/stateDiagram-v2-UEYNNEHI-uaaN79rE.js +1 -0
  119. package/web/assets/{swimlanes-SLNWSIFB-CDgj9OM9.js → swimlanes-SLNWSIFB-Bste-JE-.js} +2 -2
  120. package/web/assets/{swimlanes-XN3QIQJK-N6N2CCQ6-D3F0tmOR.js → swimlanes-XN3QIQJK-N6N2CCQ6-03elMVxe.js} +1 -1
  121. package/web/assets/swimlanesDiagram-ULZ7WXOC-CNw-u2S_.js +8 -0
  122. package/web/assets/swimlanesDiagram-VK2B7HYN-E6N4H5SY-jhFh1EB2.js +8 -0
  123. package/web/assets/{timeline-definition-24CTP7MA-KN7RSRVM-C0Ufqqk-.js → timeline-definition-24CTP7MA-KN7RSRVM-Cba_QLsv.js} +1 -1
  124. package/web/assets/{timeline-definition-Z64GVDOM-81O3UI2y.js → timeline-definition-Z64GVDOM-nDvkF_F-.js} +1 -1
  125. package/web/assets/{vennDiagram-4TSXK5OY-AKJ7LXAN-Cwa7TjWJ.js → vennDiagram-4TSXK5OY-AKJ7LXAN-Bjm0zDVN.js} +1 -1
  126. package/web/assets/{vennDiagram-T6HMQDX7-BfOTIcvk.js → vennDiagram-T6HMQDX7-KudBxp6e.js} +1 -1
  127. package/web/assets/{wardleyDiagram-T6FBY63Y-CYCyu4_S.js → wardleyDiagram-T6FBY63Y-d1R0A5mS.js} +1 -1
  128. package/web/assets/{wardleyDiagram-VM6X3IG4-3B6A3BN5-CHXrbpNv.js → wardleyDiagram-VM6X3IG4-3B6A3BN5-BOTe--eD.js} +1 -1
  129. package/web/assets/{xychartDiagram-ELKLHX3M-7mp6PB7p.js → xychartDiagram-ELKLHX3M-ChfX530c.js} +1 -1
  130. package/web/assets/{xychartDiagram-S5SC5T6Z-OBDNV6WG-Ch73fB_B.js → xychartDiagram-S5SC5T6Z-OBDNV6WG-DcSRUgks.js} +1 -1
  131. package/web/index.html +2 -2
  132. package/web/pet.html +2 -2
  133. package/web/assets/SettingsView-dExmRnIv.js +0 -7
  134. package/web/assets/channel-KoPlHvUR.js +0 -1
  135. package/web/assets/classDiagram-DTDB5LWJ-LWRDKZ5K-P8Aw4zHn.js +0 -1
  136. package/web/assets/classDiagram-JCYQIIEL-Dm2NSERp.js +0 -1
  137. package/web/assets/classDiagram-v2-JRS7N3AN-2BZHGRP2-P8Aw4zHn.js +0 -1
  138. package/web/assets/classDiagram-v2-OCEON4UE-Dm2NSERp.js +0 -1
  139. package/web/assets/stateDiagram-v2-4QOOHH4V-LBBLA2WV-lZeXiw9L.js +0 -1
  140. package/web/assets/stateDiagram-v2-UEYNNEHI-cH9YNExR.js +0 -1
  141. package/web/assets/swimlanesDiagram-ULZ7WXOC-C3faa0-8.js +0 -8
  142. package/web/assets/swimlanesDiagram-VK2B7HYN-E6N4H5SY-D5nVBF4q.js +0 -8
@@ -1,4 +1,4 @@
1
- import{s as mi,g as yi,o as li,n as bi,a as Ai,b as Ci,_ as n,l as ci,G as wi,d as Si,p as Ri,A as Mt,h as _i,C as gi,D as ki,I as Ti,J as Di}from"./render-O7CIS3YK-DhYmSGoI.js";import{_ as r}from"./mermaid-layout-elk.core-BUAJJUsd.js";import"./transform-CzGDKG_M.js";import{b as ai}from"./band-dPffDWoQ.js";import{l as ni}from"./linear-BHfMepXe.js";import{l as oi}from"./step-SI6FXFD6.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";import"./init-Gi6I4Gst.js";import"./ordinal-Cboi1Yqb.js";import"./defaultLocale-5voVPcsN.js";var It=(function(){var e=n(function(F,l,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=l);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],a=[1,5],h=[1,6],c=[1,7],b=[1,5,10,12,14,16,18,19,21,23,36,37,38],p=[1,25],m=[1,26],k=[1,28],T=[1,29],L=[1,30],W=[1,31],X=[1,32],E=[1,33],B=[1,34],A=[1,35],D=[1,36],g=[1,37],M=[1,43],V=[1,42],Y=[1,47],N=[1,50],R=[1,10,12,14,16,18,19,21,23,36,37,38],U=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],C=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],w=[1,65],z=[26,28],_={trace:n(r(function(){},"trace"),"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:n(r(function(l,u,x,d,S,o,ct){var f=o.length-1;switch(S){case 5:d.setOrientation(o[f]);break;case 9:d.setDiagramTitle(o[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},o[f]);break;case 13:d.setLineData(o[f-1],o[f]);break;case 14:d.setBarData({text:"",type:"text"},o[f]);break;case 15:d.setBarData(o[f-1],o[f]);break;case 16:this.$=o[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=o[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=o[f-1];break;case 20:case 30:this.$=[o[f-2],...o[f]];break;case 21:case 31:this.$=[o[f]];break;case 22:this.$={value:Number(o[f-1]),label:o[f]};break;case 23:this.$={value:Number(o[f]),label:""};break;case 24:d.setXAxisTitle(o[f]);break;case 25:d.setXAxisTitle(o[f-1]);break;case 26:d.setXAxisTitle({type:"text",text:""});break;case 27:d.setXAxisBand(o[f]);break;case 28:d.setXAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 29:this.$=o[f-1];break;case 32:d.setYAxisTitle(o[f]);break;case 33:d.setYAxisTitle(o[f-1]);break;case 34:d.setYAxisTitle({type:"text",text:""});break;case 35:d.setYAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 39:this.$={text:o[f],type:"text"};break;case 40:this.$={text:o[f],type:"text"};break;case 41:this.$={text:o[f],type:"markdown"};break;case 42:this.$=o[f];break;case 43:this.$=o[f-1]+""+o[f];break}},"anonymous"),"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:a,37:h,38:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:a,37:h,38:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:h,38:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(b,[2,36]),e(b,[2,37]),e(b,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:a,37:h,38:c}),{1:[2,3]},e(b,[2,5]),e(t,[2,7],{4:22,36:a,37:h,38:c}),{11:23,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:39,13:38,24:M,29:V,30:p,31:40,32:41,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:45,15:44,29:Y,30:p,35:46,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:49,17:48,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:52,17:51,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{20:[1,53]},{22:[1,54]},e(R,[2,18]),{1:[2,2]},e(R,[2,8]),e(R,[2,9]),e(U,[2,39],{41:55,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g}),e(U,[2,40]),e(U,[2,41]),e(C,[2,42]),e(C,[2,44]),e(C,[2,45]),e(C,[2,46]),e(C,[2,47]),e(C,[2,48]),e(C,[2,49]),e(C,[2,50]),e(C,[2,51]),e(C,[2,52]),e(C,[2,53]),e(R,[2,10]),e(R,[2,24],{32:41,31:56,24:M,29:V}),e(R,[2,26]),e(R,[2,27]),{33:[1,57]},{11:59,30:p,34:58,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,11]),e(R,[2,32],{35:60,29:Y}),e(R,[2,34]),{33:[1,61]},e(R,[2,12]),{17:62,24:N},{25:63,27:64,29:w},e(R,[2,14]),{17:66,24:N},e(R,[2,16]),e(R,[2,17]),e(C,[2,43]),e(R,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(R,[2,33]),{29:[1,70]},e(R,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(z,[2,23],{30:[1,73]}),e(R,[2,15]),e(R,[2,28]),e(R,[2,29]),{11:59,30:p,34:74,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,35]),e(R,[2,19]),{25:75,27:64,29:w},e(z,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:n(r(function(l,u){if(u.recoverable)this.trace(l);else{var x=new Error(l);throw x.hash=u,x}},"parseError"),"parseError"),parse:n(r(function(l){var u=this,x=[0],d=[],S=[null],o=[],ct=this.table,f="",ft=0,ti=0,di=2,ii=1,pi=o.slice.call(arguments,1),P=Object.create(this.lexer),q={yy:{}};for(var Dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dt)&&(q.yy[Dt]=this.yy[Dt]);P.setInput(l,q.yy),q.yy.lexer=P,q.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var Pt=P.yylloc;o.push(Pt);var fi=P.options&&P.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ei(I){x.length=x.length-2*I,S.length=S.length-I,o.length=o.length-I}r(ei,"popStack"),n(ei,"popStack");function Lt(){var I;return I=d.pop()||P.lex()||ii,typeof I!="number"&&(I instanceof Array&&(d=I,I=d.pop()),I=u.symbols_[I]||I),I}r(Lt,"lex"),n(Lt,"lex");for(var v,j,O,vt,rt={},mt,H,si,yt;;){if(j=x[x.length-1],this.defaultActions[j]?O=this.defaultActions[j]:((v===null||typeof v>"u")&&(v=Lt()),O=ct[j]&&ct[j][v]),typeof O>"u"||!O.length||!O[0]){var Et="";yt=[];for(mt in ct[j])this.terminals_[mt]&&mt>di&&yt.push("'"+this.terminals_[mt]+"'");P.showPosition?Et="Parse error on line "+(ft+1)+`:
1
+ import{s as mi,g as yi,o as li,n as bi,a as Ai,b as Ci,_ as n,l as ci,G as wi,d as Si,p as Ri,A as Mt,h as _i,C as gi,D as ki,I as Ti,J as Di}from"./render-O7CIS3YK-C5zxvpoJ.js";import{_ as r}from"./mermaid-layout-elk.core-KBAfwQxu.js";import"./transform-CzGDKG_M.js";import{b as ai}from"./band-dPffDWoQ.js";import{l as ni}from"./linear-BHfMepXe.js";import{l as oi}from"./step-SI6FXFD6.js";import"./main-D3HpSUyK.js";import"./index-C-4sKCSr.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";import"./init-Gi6I4Gst.js";import"./ordinal-Cboi1Yqb.js";import"./defaultLocale-5voVPcsN.js";var It=(function(){var e=n(function(F,l,u,x){for(u=u||{},x=F.length;x--;u[F[x]]=l);return u},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],a=[1,5],h=[1,6],c=[1,7],b=[1,5,10,12,14,16,18,19,21,23,36,37,38],p=[1,25],m=[1,26],k=[1,28],T=[1,29],L=[1,30],W=[1,31],X=[1,32],E=[1,33],B=[1,34],A=[1,35],D=[1,36],g=[1,37],M=[1,43],V=[1,42],Y=[1,47],N=[1,50],R=[1,10,12,14,16,18,19,21,23,36,37,38],U=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],C=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],w=[1,65],z=[26,28],_={trace:n(r(function(){},"trace"),"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",28:"COMMA",29:"NUMBER_WITH_DECIMAL",30:"STR",33:"ARROW_DELIMITER",36:"NEWLINE",37:"SEMI",38:"EOF",40:"MD_STR",42:"AMP",43:"NUM",44:"ALPHA",45:"PLUS",46:"EQUALS",47:"MULT",48:"DOT",49:"BRKT",50:"MINUS",51:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:n(r(function(l,u,x,d,S,o,ct){var f=o.length-1;switch(S){case 5:d.setOrientation(o[f]);break;case 9:d.setDiagramTitle(o[f].text.trim());break;case 12:d.setLineData({text:"",type:"text"},o[f]);break;case 13:d.setLineData(o[f-1],o[f]);break;case 14:d.setBarData({text:"",type:"text"},o[f]);break;case 15:d.setBarData(o[f-1],o[f]);break;case 16:this.$=o[f].trim(),d.setAccTitle(this.$);break;case 17:case 18:this.$=o[f].trim(),d.setAccDescription(this.$);break;case 19:this.$=o[f-1];break;case 20:case 30:this.$=[o[f-2],...o[f]];break;case 21:case 31:this.$=[o[f]];break;case 22:this.$={value:Number(o[f-1]),label:o[f]};break;case 23:this.$={value:Number(o[f]),label:""};break;case 24:d.setXAxisTitle(o[f]);break;case 25:d.setXAxisTitle(o[f-1]);break;case 26:d.setXAxisTitle({type:"text",text:""});break;case 27:d.setXAxisBand(o[f]);break;case 28:d.setXAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 29:this.$=o[f-1];break;case 32:d.setYAxisTitle(o[f]);break;case 33:d.setYAxisTitle(o[f-1]);break;case 34:d.setYAxisTitle({type:"text",text:""});break;case 35:d.setYAxisRangeData(Number(o[f-2]),Number(o[f]));break;case 39:this.$={text:o[f],type:"text"};break;case 40:this.$={text:o[f],type:"text"};break;case 41:this.$={text:o[f],type:"markdown"};break;case 42:this.$=o[f];break;case 43:this.$=o[f-1]+""+o[f];break}},"anonymous"),"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,36:a,37:h,38:c}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,36:a,37:h,38:c}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],36:a,37:h,38:c}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(b,[2,36]),e(b,[2,37]),e(b,[2,38]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,36:a,37:h,38:c}),{1:[2,3]},e(b,[2,5]),e(t,[2,7],{4:22,36:a,37:h,38:c}),{11:23,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:39,13:38,24:M,29:V,30:p,31:40,32:41,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:45,15:44,29:Y,30:p,35:46,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:49,17:48,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{11:52,17:51,24:N,30:p,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},{20:[1,53]},{22:[1,54]},e(R,[2,18]),{1:[2,2]},e(R,[2,8]),e(R,[2,9]),e(U,[2,39],{41:55,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g}),e(U,[2,40]),e(U,[2,41]),e(C,[2,42]),e(C,[2,44]),e(C,[2,45]),e(C,[2,46]),e(C,[2,47]),e(C,[2,48]),e(C,[2,49]),e(C,[2,50]),e(C,[2,51]),e(C,[2,52]),e(C,[2,53]),e(R,[2,10]),e(R,[2,24],{32:41,31:56,24:M,29:V}),e(R,[2,26]),e(R,[2,27]),{33:[1,57]},{11:59,30:p,34:58,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,11]),e(R,[2,32],{35:60,29:Y}),e(R,[2,34]),{33:[1,61]},e(R,[2,12]),{17:62,24:N},{25:63,27:64,29:w},e(R,[2,14]),{17:66,24:N},e(R,[2,16]),e(R,[2,17]),e(C,[2,43]),e(R,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},e(R,[2,33]),{29:[1,70]},e(R,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},e(z,[2,23],{30:[1,73]}),e(R,[2,15]),e(R,[2,28]),e(R,[2,29]),{11:59,30:p,34:74,39:24,40:m,41:27,42:k,43:T,44:L,45:W,46:X,47:E,48:B,49:A,50:D,51:g},e(R,[2,35]),e(R,[2,19]),{25:75,27:64,29:w},e(z,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:n(r(function(l,u){if(u.recoverable)this.trace(l);else{var x=new Error(l);throw x.hash=u,x}},"parseError"),"parseError"),parse:n(r(function(l){var u=this,x=[0],d=[],S=[null],o=[],ct=this.table,f="",ft=0,ti=0,di=2,ii=1,pi=o.slice.call(arguments,1),P=Object.create(this.lexer),q={yy:{}};for(var Dt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dt)&&(q.yy[Dt]=this.yy[Dt]);P.setInput(l,q.yy),q.yy.lexer=P,q.yy.parser=this,typeof P.yylloc>"u"&&(P.yylloc={});var Pt=P.yylloc;o.push(Pt);var fi=P.options&&P.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ei(I){x.length=x.length-2*I,S.length=S.length-I,o.length=o.length-I}r(ei,"popStack"),n(ei,"popStack");function Lt(){var I;return I=d.pop()||P.lex()||ii,typeof I!="number"&&(I instanceof Array&&(d=I,I=d.pop()),I=u.symbols_[I]||I),I}r(Lt,"lex"),n(Lt,"lex");for(var v,j,O,vt,rt={},mt,H,si,yt;;){if(j=x[x.length-1],this.defaultActions[j]?O=this.defaultActions[j]:((v===null||typeof v>"u")&&(v=Lt()),O=ct[j]&&ct[j][v]),typeof O>"u"||!O.length||!O[0]){var Et="";yt=[];for(mt in ct[j])this.terminals_[mt]&&mt>di&&yt.push("'"+this.terminals_[mt]+"'");P.showPosition?Et="Parse error on line "+(ft+1)+`:
2
2
  `+P.showPosition()+`
3
3
  Expecting `+yt.join(", ")+", got '"+(this.terminals_[v]||v)+"'":Et="Parse error on line "+(ft+1)+": Unexpected "+(v==ii?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(Et,{text:P.match,token:this.terminals_[v]||v,line:P.yylineno,loc:Pt,expected:yt})}if(O[0]instanceof Array&&O.length>1)throw new Error("Parse Error: multiple actions possible at state: "+j+", token: "+v);switch(O[0]){case 1:x.push(v),S.push(P.yytext),o.push(P.yylloc),x.push(O[1]),v=null,ti=P.yyleng,f=P.yytext,ft=P.yylineno,Pt=P.yylloc;break;case 2:if(H=this.productions_[O[1]][1],rt.$=S[S.length-H],rt._$={first_line:o[o.length-(H||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(H||1)].first_column,last_column:o[o.length-1].last_column},fi&&(rt._$.range=[o[o.length-(H||1)].range[0],o[o.length-1].range[1]]),vt=this.performAction.apply(rt,[f,ti,ft,q.yy,O[1],S,o].concat(pi)),typeof vt<"u")return vt;H&&(x=x.slice(0,-1*H*2),S=S.slice(0,-1*H),o=o.slice(0,-1*H)),x.push(this.productions_[O[1]][0]),S.push(rt.$),o.push(rt._$),si=ct[x[x.length-2]][x[x.length-1]],x.push(si);break;case 3:return!0}}return!0},"parse"),"parse")},lt=(function(){var F={EOF:1,parseError:n(r(function(u,x){if(this.yy.parser)this.yy.parser.parseError(u,x);else throw new Error(u)},"parseError"),"parseError"),setInput:n(function(l,u){return this.yy=u||this.yy||{},this._input=l,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n(function(){var l=this._input[0];this.yytext+=l,this.yyleng++,this.offset++,this.match+=l,this.matched+=l;var u=l.match(/(?:\r\n?|\n).*/g);return u?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),l},"input"),unput:n(function(l){var u=l.length,x=l.split(/(?:\r\n?|\n)/g);this._input=l+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-u),this.offset-=u;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),x.length-1&&(this.yylineno-=x.length-1);var S=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:x?(x.length===d.length?this.yylloc.first_column:0)+d[d.length-x.length].length-x[0].length:this.yylloc.first_column-u},this.options.ranges&&(this.yylloc.range=[S[0],S[0]+this.yyleng-u]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:n(function(l){this.unput(this.match.slice(l))},"less"),pastInput:n(function(){var l=this.matched.substr(0,this.matched.length-this.match.length);return(l.length>20?"...":"")+l.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var l=this.match;return l.length<20&&(l+=this._input.substr(0,20-l.length)),(l.substr(0,20)+(l.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var l=this.pastInput(),u=new Array(l.length+1).join("-");return l+this.upcomingInput()+`
package/web/index.html CHANGED
@@ -32,8 +32,8 @@
32
32
  }
33
33
  })();
34
34
  </script>
35
- <script type="module" crossorigin src="./assets/main-CGE6fm01.js"></script>
36
- <link rel="modulepreload" crossorigin href="./assets/index-xynt7zMk.js">
35
+ <script type="module" crossorigin src="./assets/main-D3HpSUyK.js"></script>
36
+ <link rel="modulepreload" crossorigin href="./assets/index-C-4sKCSr.js">
37
37
  <link rel="stylesheet" crossorigin href="./assets/index-DjoBjasB.css">
38
38
  <link rel="stylesheet" crossorigin href="./assets/main-BXa7WYYr.css">
39
39
  </head>
package/web/pet.html CHANGED
@@ -8,8 +8,8 @@
8
8
  content="default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' http://localhost:5173 ws://localhost:5173"
9
9
  />
10
10
  <title>LookatStudy Pet</title>
11
- <script type="module" crossorigin src="./assets/pet-DopPVlAf.js"></script>
12
- <link rel="modulepreload" crossorigin href="./assets/index-xynt7zMk.js">
11
+ <script type="module" crossorigin src="./assets/pet-BawFRWlx.js"></script>
12
+ <link rel="modulepreload" crossorigin href="./assets/index-C-4sKCSr.js">
13
13
  <link rel="stylesheet" crossorigin href="./assets/index-DjoBjasB.css">
14
14
  <link rel="stylesheet" crossorigin href="./assets/pet-CTf4hJTR.css">
15
15
  </head>
@@ -1,7 +0,0 @@
1
- import{r as a,j as e,s as Qe,h as Ze,C as et,M as tt}from"./index-xynt7zMk.js";import{c as st,u as de,h as ne,i as he,a as i,W as $e,P as nt,j as ze,s as at,k as it,l as lt,m as ot,n as dt,o as ct}from"./main-CGE6fm01.js";/**
2
- * @license lucide-react v0.468.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const rt=st("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),xe="bg-ink/[0.04] text-ink-strong text-label rounded-lg border border-transparent focus:border-accent focus:bg-ink/[0.06] transition-colors placeholder:text-ink-faint";function ke({kind:s,showProtocol:x=!0,testPrefix:b="custom",titleKey:p="settings.custom.form_title",modelPhKey:r="settings.custom.model_ph",testOverride:d,onSaved:c,onCancel:h}){const m=de(),[j,T]=a.useState(""),[g,S]=a.useState("openai-compatible"),[y,P]=a.useState(""),[o,_]=a.useState(""),[w,K]=a.useState(""),[B,V]=a.useState(!1),[I,D]=a.useState(!1),[A,z]=a.useState(null),L=async()=>{if(!(!y.trim()||!w.trim()||I)){D(!0),z(null);try{const l=d?await d({baseUrl:y.trim(),apiKey:o.trim(),model:w.trim()}):await i.testCustomProvider({label:j||m("settings.custom.test_label"),protocol:g,baseUrl:y.trim(),apiKey:o.trim()||void 0,defaultModel:w.trim()});z({ok:l.ok,detail:l.detail})}catch(l){z({ok:!1,detail:l instanceof Error?l.message:String(l)})}finally{D(!1)}}},N=async()=>{if(!(!j.trim()||!y.trim()||!w.trim()))try{const l=await i.createCustomProvider({label:j.trim(),kind:s,protocol:x?g:"openai-compatible",baseUrl:y.trim(),apiKey:o.trim()||void 0,defaultModel:w.trim(),vision:s==="llm"?B:void 0});c(l)}catch{}};return e.jsxs("div",{className:"space-y-2.5","data-testid":`${b}-provider-form`,children:[e.jsx("div",{className:"text-label font-bold text-ink-strong",children:m(p)}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text",value:j,onChange:l=>T(l.target.value),placeholder:m("settings.custom.label_ph"),"data-testid":`${b}-label`,className:`${xe} flex-1 px-2.5 py-1.5`}),x&&e.jsxs("select",{value:g,onChange:l=>S(l.target.value),"data-testid":`${b}-protocol`,className:`${xe} px-2 py-1.5`,children:[e.jsx("option",{value:"openai-compatible",children:m("settings.proto.openai")}),e.jsx("option",{value:"anthropic",children:"Anthropic"}),e.jsx("option",{value:"google",children:"Google"})]})]}),e.jsx("input",{type:"text",value:y,onChange:l=>P(l.target.value),placeholder:m("settings.custom.baseurl_ph"),"data-testid":`${b}-baseurl`,className:`${xe} w-full px-2.5 py-1.5 font-mono`}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{type:"text",value:w,onChange:l=>K(l.target.value),placeholder:m(r),"data-testid":`${b}-model`,className:`${xe} flex-1 px-2.5 py-1.5 font-mono`}),e.jsx("input",{type:"password",value:o,onChange:l=>_(l.target.value),placeholder:m("settings.custom.apikey_ph"),"data-testid":`${b}-apikey`,className:`${xe} flex-1 px-2.5 py-1.5`})]}),s==="llm"&&e.jsxs("label",{className:"inline-flex items-center gap-2 text-label cursor-pointer select-none","data-testid":`${b}-vision`,children:[e.jsx("input",{type:"checkbox",checked:B,onChange:l=>V(l.target.checked),className:"w-4 h-4 rounded accent-brand"}),e.jsx("span",{className:"text-ink-strong",children:m("settings.custom.vision")}),e.jsx("span",{className:"text-ink-faint",children:m("settings.custom.visionHint")})]}),A&&e.jsxs("div",{className:`text-label rounded p-2 inline-flex items-start gap-1.5 ${A.ok?"bg-brand/10 text-brand":"bg-warning/10 text-warning"}`,children:[A.ok?e.jsx(ne,{className:"w-4 h-4 mt-px shrink-0","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4 mt-px shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"break-words",children:A.detail})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:()=>void L(),disabled:!y.trim()||!w.trim()||I,"data-testid":`${b}-test`,className:"btn-3d-neutral px-3 py-1.5 text-label disabled:opacity-40",children:m(I?"settings.testing":"settings.test")}),e.jsx("button",{onClick:()=>void N(),disabled:!j.trim()||!y.trim()||!w.trim(),"data-testid":`${b}-save`,className:"btn-3d-brand px-3 py-1.5 text-label disabled:opacity-40",children:m("settings.custom.save")}),h&&e.jsx("button",{onClick:h,className:"text-label text-ink-muted hover:text-ink-strong px-3 py-1.5 transition-colors",children:m("action.cancel")})]})]})}const Ke="lookatstudy-theme",We="auto",Ue="(prefers-color-scheme: dark)";function _e(){return typeof window>"u"||window.matchMedia(Ue).matches?"dark":"light"}function mt(){if(typeof localStorage>"u")return We;const s=localStorage.getItem(Ke);return s==="auto"||s==="light"||s==="dark"?s:We}function Ce(s){const x=document.documentElement;x.classList.remove("dark","light"),x.classList.add(s),window.dispatchEvent(new CustomEvent("theme-changed",{detail:{resolved:s}}))}function ut(){const[s,x]=a.useState(()=>mt()),[b,p]=a.useState(()=>s==="auto"?_e():s),r=a.useCallback(d=>{x(d),localStorage.setItem(Ke,d);const c=d==="auto"?_e():d;p(c),Ce(c)},[]);return a.useEffect(()=>{if(s!=="auto")return;const d=window.matchMedia(Ue),c=h=>{const m=h.matches?"dark":"light";p(m),Ce(m)};return d.addEventListener("change",c),()=>d.removeEventListener("change",c)},[s]),a.useEffect(()=>{const d=s==="auto"?_e():s;p(d),Ce(d)},[s]),{mode:s,resolved:b,setMode:r}}function we(){window.dispatchEvent(new Event(ct))}const G="bg-surface-1 text-ink text-body rounded-lg border border-[var(--border)] focus:border-brand focus:outline-none transition-colors placeholder:text-ink-faint",F="bg-surface-3 text-ink-muted hover:bg-surface-3 hover:bg-surface-3 hover:text-ink-strong",R="bg-brand text-white shadow-sm";function v(s){return s?"px-4 py-3.5 border-t border-[var(--border-faint)]":"px-4 py-3.5"}function yt(){const s=de(),[x,b]=a.useState([]),[p,r]=a.useState([]),[d,c]=a.useState("glm"),[h,m]=a.useState(""),[j,T]=a.useState(""),[g,S]=a.useState(null),[y,P]=a.useState(!1),[o,_]=a.useState(null),[w,K]=a.useState(!1),[B,V]=a.useState(!1),[I,D]=a.useState([]),[A,z]=a.useState(!1),[L,N]=a.useState(null),[l,H]=a.useState(null),[Z,ce]=a.useState(""),[ge,re]=a.useState(!1),ee=ut(),ie=async n=>{if($)try{await i.updateCustomProvider($.id,{vision:n}),await U()}catch{}},le=async()=>{z(!0),N(null);try{const n=await i.discoverModels();n.ok&&n.models?D(n.models):N(n.error||s("settings.discover_failed"))}catch(n){N(n instanceof Error?n.message:String(n))}finally{z(!1)}},U=a.useCallback(async()=>{try{const[n,f,E,J]=await Promise.all([i.getProviderPresets(),i.listCustomProviders(),i.getSetting("active_provider"),i.getSetting("active_model")]);b(n),r(f);const M=E??"glm";if(c(M),M.startsWith("custom-")){const k=f.find(C=>C.id===M);S(k!=null&&k.hasApiKey?s("settings.key.configured"):null)}else{const k=n.find(C=>C.id===M);if(k){const C=await i.getSetting(k.apiKeySetting);S(C?`${C.slice(0,4)}…${C.slice(-4)}`:null)}}if(M.startsWith("custom-")){const k=f.find(C=>C.id===M);m(J??(k==null?void 0:k.defaultModel)??"")}else{const k=n.find(C=>C.id===M);m(J??(k==null?void 0:k.defaultModel)??"")}}catch(n){console.error("[SettingsView] load() failed:",n)}},[s]);a.useEffect(()=>{U()},[U]);const me=async n=>{c(n),_(null),T("");const f=x.find(E=>E.id===n);if(f){const E=await i.getSetting(f.apiKeySetting);S(E?`${E.slice(0,4)}…${E.slice(-4)}`:null),m(h||f.defaultModel)}},pe=async()=>{K(!1);try{if(await i.setSetting("active_provider",d),await i.setSetting("active_model",h),j.trim()){const n=x.find(f=>f.id===d);n&&(await i.setSetting(n.apiKeySetting,j.trim()),S(`${j.trim().slice(0,4)}…${j.trim().slice(-4)}`),T(""))}K(!0),setTimeout(()=>K(!1),2e3),window.dispatchEvent(new Event("llm-config-changed"))}catch{}},O=async()=>{P(!0),_(null);try{const n=await i.testLlmConnection();_(n)}catch(n){_({ok:!1,detail:n instanceof Error?n.message:String(n),errorKind:"unknown"})}finally{P(!1)}},fe=async n=>{await i.setSetting("active_provider",n.id),await i.setSetting("active_model",n.defaultModel),c(n.id),m(n.defaultModel),V(!1),await U(),window.dispatchEvent(new Event("llm-config-changed"))},te=async n=>{try{await i.deleteCustomProvider(n),d===n&&(await i.setSetting("active_provider","glm"),c("glm")),await U()}catch{}},$=d.startsWith("custom-")?p.find(n=>n.id===d):null;a.useEffect(()=>{if(!$)return;const n=$.models.find(f=>f.id===h);ce(n!=null&&n.contextWindow?String(n.contextWindow):"")},[$,h]);const be=async()=>{var M,k;if(!$)return;const n=Z.trim().replace(/[,\s_]/g,""),f=/^(\d+)([km]?)$/i.exec(n);if(n!==""&&!f)return;const E=((M=f==null?void 0:f[2])==null?void 0:M.toLowerCase())==="k"?1e3:((k=f==null?void 0:f[2])==null?void 0:k.toLowerCase())==="m"?1e6:1,J=n===""||!f?null:Math.max(1,Math.round(parseInt(f[1],10)*E));re(!0);try{const C=$.models.map(q=>q.id===h?{...q,contextWindow:J}:q);await i.updateCustomProvider($.id,{models:C}),await U(),window.dispatchEvent(new Event("llm-config-changed"))}catch{}finally{re(!1)}},Y=d.startsWith("custom-")?null:x.find(n=>n.id===d);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"px-5 pt-5 space-y-6",children:[e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:s("settings.group.ai")}),e.jsxs("div",{className:"surface-card overflow-hidden",children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:s("settings.row.provider")}),e.jsxs("div",{className:"flex flex-wrap gap-1.5","data-testid":"provider-grid",children:[x.map(n=>e.jsx("button",{onClick:()=>me(n.id),"data-testid":`provider-card-${n.id}`,"aria-pressed":d===n.id,className:`px-3 py-1.5 rounded-lg text-label font-medium whitespace-nowrap transition-colors ${d===n.id?R:F}`,children:n.label},n.id)),p.filter(n=>n.kind==="llm").map(n=>e.jsxs("button",{onClick:()=>me(n.id),"data-testid":`provider-card-${n.id}`,"aria-pressed":d===n.id,className:`px-3 py-1.5 rounded-lg text-label font-medium whitespace-nowrap transition-colors inline-flex items-center gap-1 ${d===n.id?R:F}`,children:[e.jsx($e,{className:"w-3.5 h-3.5","aria-hidden":"true"}),n.label]},n.id)),e.jsxs("button",{onClick:()=>V(n=>!n),"data-testid":"add-custom-provider",className:"px-3 py-1.5 rounded-lg text-label whitespace-nowrap inline-flex items-center gap-1 border border-dashed border-[var(--border)] text-ink-muted hover:border-ink-muted hover:text-ink-strong transition-colors",children:[e.jsx(nt,{className:"w-3.5 h-3.5","aria-hidden":"true"}),s("settings.add_custom")]})]})]}),B&&e.jsx("div",{className:"px-4 py-3.5 bg-surface-1 border-t border-[var(--border-faint)]",children:e.jsx(ke,{kind:"llm",testPrefix:"custom",onSaved:n=>void fe(n),onCancel:()=>V(!1)})}),p.length>0&&d.startsWith("custom-")&&e.jsx("div",{className:v(!0),children:e.jsx("button",{onClick:n=>{const f=n.currentTarget.getBoundingClientRect(),E=p.find(J=>J.id===d);E&&H({id:E.id,label:E.label,rect:f})},className:"text-label text-warning hover:underline",children:s("settings.delete_custom")})}),Y&&e.jsxs(e.Fragment,{children:[Y.baseUrl&&e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:"Base URL"}),e.jsx("code",{className:"text-label text-ink-faint font-mono break-all",children:Y.baseUrl})]}),e.jsxs("div",{className:v(!0),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:s("settings.model")}),e.jsxs("div",{className:"flex-1 flex items-center gap-2",children:[e.jsxs("select",{value:h,onChange:n=>m(n.target.value),"data-testid":"model-select",className:`${G} flex-1 px-2.5 py-1.5`,children:[Y.models.map(n=>e.jsx("option",{value:n.id,children:n.id},n.id)),d==="openrouter"&&I.map(n=>e.jsx("option",{value:n.id,children:n.id},n.id))]}),d==="openrouter"&&e.jsxs("button",{onClick:le,disabled:A,"data-testid":"discover-models-btn",className:"text-label text-accent hover:underline disabled:opacity-40 whitespace-nowrap inline-flex items-center gap-1",children:[e.jsx(rt,{className:`w-3.5 h-3.5 ${A?"animate-spin":""}`,"aria-hidden":"true"}),s(A?"settings.discovering":"settings.refresh")]})]})]}),L&&e.jsx("div",{className:"text-label text-warning mt-1.5 ml-[68px]",children:L})]}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:s("settings.apikey")}),e.jsxs("div",{className:"flex-1 flex items-center gap-2",children:[g&&e.jsxs("span",{className:"text-label text-brand shrink-0 inline-flex items-center gap-1",children:[e.jsx(ne,{className:"w-3.5 h-3.5","aria-hidden":"true"}),g]}),e.jsx("input",{type:"password",value:j,onChange:n=>T(n.target.value),placeholder:s(g?"settings.key.overwrite_ph":"settings.key.paste_ph"),"data-testid":"settings-key-input",className:`${G} flex-1 px-2.5 py-1.5`}),e.jsx("a",{href:Y.keyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-label text-brand hover:underline whitespace-nowrap",children:s("settings.key.get")})]})]})}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{onClick:O,disabled:y,"data-testid":"test-connection-btn",className:"btn-3d-neutral px-3 py-1.5 text-label disabled:opacity-40",children:s(y?"settings.testing":"settings.test")}),o&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 ${o.ok?"text-brand":"text-warning"}`,children:[o.ok?e.jsx(ne,{className:"w-4 h-4","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4","aria-hidden":"true"}),o.detail]})]})})]}),$&&!Y&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:"Base URL"}),e.jsx("code",{className:"text-label text-ink-faint font-mono break-all",children:$.baseUrl})]}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:s("settings.model")}),$.models.length>1?e.jsx("select",{value:h,onChange:n=>m(n.target.value),"data-testid":"model-select-custom",className:`${G} flex-1 px-2.5 py-1.5`,children:$.models.map(n=>e.jsx("option",{value:n.id,children:n.id},n.id))}):e.jsx("input",{type:"text",value:h,onChange:n=>m(n.target.value),placeholder:s("settings.custom.model_ph"),"data-testid":"model-input-custom",className:`${G} flex-1 px-2.5 py-1.5 font-mono`})]})}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:s("settings.custom.windowLabel")}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"text",inputMode:"numeric",value:Z,onChange:n=>ce(n.target.value),placeholder:s("settings.custom.windowPh"),"data-testid":"context-window-input",className:`${G} flex-1 px-2.5 py-1.5 font-mono tabular-nums`}),e.jsx("button",{onClick:be,disabled:ge,"data-testid":"context-window-save",className:"btn-3d-neutral px-3 py-1.5 text-label shrink-0 disabled:opacity-40",children:s("settings.custom.save")})]}),e.jsx("div",{className:"text-caption text-ink-faint mt-1",children:s("settings.custom.windowHint")})]}),e.jsx("div",{className:v(!0),children:e.jsxs("label",{className:"inline-flex items-center gap-2 text-label cursor-pointer select-none","data-testid":"custom-vision-toggle",children:[e.jsx("input",{type:"checkbox",checked:$.vision,onChange:n=>void ie(n.target.checked),className:"w-4 h-4 rounded accent-brand"}),e.jsx("span",{className:"text-ink-strong",children:s("settings.custom.vision")}),e.jsx("span",{className:"text-ink-faint",children:s("settings.custom.visionHint")})]})}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("button",{onClick:O,disabled:y,"data-testid":"test-connection-btn",className:"btn-3d-neutral px-3 py-1.5 text-label disabled:opacity-40",children:s(y?"settings.testing":"settings.test")}),o&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 ${o.ok?"text-brand":"text-warning"}`,children:[o.ok?e.jsx(ne,{className:"w-4 h-4","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4","aria-hidden":"true"}),o.detail]})]})})]})]})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:s("settings.group.vision")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(ht,{activeProvider:d,activeModel:h,presets:x,customProviders:p})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:s("settings.group.speech")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(vt,{})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:s("settings.group.memory")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(gt,{})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:s("settings.group.companion")}),e.jsx("div",{className:"surface-card overflow-hidden",children:e.jsx(pt,{})})]}),e.jsxs("section",{children:[e.jsx("h3",{className:"text-label font-bold text-ink-muted mb-2 px-1",children:s("settings.group.appearance")}),e.jsxs("div",{className:"surface-card overflow-hidden",children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:s("settings.row.theme")}),e.jsx("div",{className:"flex gap-2",children:[{mode:"auto",label:s("settings.theme.auto")},{mode:"light",label:s("settings.theme.light")},{mode:"dark",label:s("settings.theme.dark")}].map(({mode:n,label:f})=>e.jsx("button",{onClick:()=>ee.setMode(n),"data-testid":`theme-${n}`,"aria-pressed":ee.mode===n,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${ee.mode===n?R:F}`,children:f},n))}),e.jsx("p",{className:"text-label text-ink-muted mt-2",children:ee.mode==="auto"?s("settings.theme.following",{mode:s(`settings.theme.${ee.resolved}`)}):null})]}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:s("settings.row.interface_lang")}),e.jsx("div",{className:"flex gap-2",children:["zh-CN","en"].map(n=>e.jsx("button",{onClick:()=>at(n),"data-testid":`lang-${n}`,"aria-pressed":ze()===n,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${ze()===n?R:F}`,children:n==="zh-CN"?"中文":"English"},n))})]}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:s("settings.row.import_lang")}),e.jsx(xt,{})]})]})]})]}),e.jsxs("div",{className:"sticky bottom-0 px-5 py-3 bg-surface-0 border-t border-[var(--border)] flex items-center justify-between gap-3",children:[e.jsx("span",{className:"text-label text-ink-muted",children:s("settings.footer.hint")}),e.jsxs("button",{onClick:pe,"data-testid":"settings-save",className:"btn-3d-brand px-5 py-2 text-body inline-flex items-center gap-1.5",children:[w&&e.jsx(it,{className:"w-4 h-4","aria-hidden":"true"}),s(w?"settings.saved_text":"settings.footer.save")]})]}),l&&e.jsx(lt,{anchorRect:l.rect,message:s("settings.delete_custom_confirm",{name:l.label}),danger:!0,confirmLabel:s("action.delete"),testid:"custom-provider-delete-confirm",onConfirm:()=>{te(l.id),H(null)},onCancel:()=>H(null)})]})}function xt(){const[s,x]=a.useState("en"),[b,p]=a.useState(!1);a.useEffect(()=>{i.getSetting("pref_lang").then(c=>{c&&x(c),p(!0)})},[]);const r=async c=>{x(c),await i.setSetting("pref_lang",c)},d=[{code:"en",label:"English"},{code:"zh-CN",label:"简体中文"},{code:"zh-TW",label:"繁體中文"}];return b?e.jsx("div",{className:"flex gap-2","data-testid":"pref-lang-options",children:d.map(c=>e.jsx("button",{onClick:()=>r(c.code),"data-testid":`pref-lang-${c.code}`,"aria-pressed":s===c.code,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${s===c.code?R:F}`,children:c.label},c.code))}):null}function ht({activeProvider:s,activeModel:x,presets:b,customProviders:p}){const r=de(),[d,c]=a.useState(!1),[h,m]=a.useState(!1),[j,T]=a.useState(""),[g,S]=a.useState(!1),[y,P]=a.useState(!1),[o,_]=a.useState(null),[w,K]=a.useState(!1);a.useEffect(()=>{Promise.all([i.getSetting("flag_multimodal_import"),i.getSetting("vision_provider_override"),i.getSetting("vision_model_override"),i.getSetting("flag_math_vision")]).then(([l,H,Z])=>{c(l==="true"),T(H??""),K(Z==="true"),m(!0)})},[]);const B=async()=>{const l=!d;c(l),await i.setSetting("flag_multimodal_import",String(l))},V=async()=>{const l=!w;K(l),await i.setSetting("flag_math_vision",String(l))},I=async l=>{await i.setSetting("vision_provider_override",l.id),await i.setSetting("vision_model_override",l.defaultModel),T(l.id),S(!1)},D=async()=>{await i.setSetting("vision_provider_override",""),await i.setSetting("vision_model_override",""),T(""),S(!1)},A=async()=>{if(!y){P(!0),_(null);try{const l=await i.testLlmConnection({vision:!0});_({ok:l.ok,detail:l.detail})}catch(l){_({ok:!1,detail:l instanceof Error?l.message:String(l)})}finally{P(!1)}}},z=p.filter(l=>l.kind==="vision"),L=j.startsWith("custom-")?p.find(l=>l.id===j):null,N=j&&!j.startsWith("custom-")?b.find(l=>l.id===j):null;return h?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"px-4 py-3.5 flex items-center gap-3",children:[e.jsx(ae,{checked:d,onChange:B,label:r("settings.multimodal.toggle"),testid:"multimodal-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:r("settings.multimodal.toggle")}),e.jsx("div",{className:"text-label text-ink-muted",children:r("settings.multimodal.toggle.desc")})]})]}),e.jsxs("div",{className:"px-4 py-3.5 border-t border-[var(--border-faint)] space-y-3",children:[e.jsxs("div",{className:"text-label text-ink-muted bg-ink/5 rounded-lg p-3",children:[e.jsx("div",{className:"font-medium mb-1",children:r("settings.multimodal.current_model",{model:x||r("settings.multimodal.not_selected")})}),e.jsx("div",{children:s.startsWith("custom-")?r("settings.multimodal.hint_custom"):r("settings.multimodal.hint_preset")})]}),e.jsxs("div",{className:"bg-ink/5 rounded-lg p-3",children:[e.jsx("div",{className:"text-label font-medium text-ink-muted mb-2",children:r("settings.multimodal.override_title")}),e.jsx("div",{className:"text-caption text-ink-muted mb-2",children:r("settings.multimodal.override_bridge_hint")}),e.jsxs("div",{className:"space-y-3 mt-1",children:[L&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-label",children:[e.jsx($e,{className:"w-3.5 h-3.5 text-ink-faint shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"font-medium text-ink-strong",children:L.label}),e.jsx("code",{className:"text-ink-faint font-mono break-all",children:L.defaultModel}),e.jsx("span",{className:"text-ink-faint break-all min-w-0",children:L.baseUrl})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("button",{onClick:()=>void A(),disabled:y,"data-testid":"vision-override-test",className:"btn-3d-neutral px-4 py-1.5 text-label disabled:opacity-50",children:r(y?"settings.testing":"settings.multimodal.test_override")}),e.jsx("button",{onClick:()=>S(l=>!l),className:"text-label text-accent hover:underline",children:r("settings.multimodal.replace_custom")}),e.jsx("button",{onClick:()=>void D(),className:"text-label text-ink-muted hover:text-ink-strong",children:r("settings.multimodal.stop_override")}),o&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 ${o.ok?"text-brand":"text-warning"}`,children:[o.ok?e.jsx(ne,{className:"w-4 h-4","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4","aria-hidden":"true"}),o.detail]})]})]}),N&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-label",children:[e.jsx("span",{className:"text-ink-muted",children:r("settings.multimodal.legacy_preset",{label:N.label})}),e.jsx("button",{onClick:()=>void D(),className:"text-label text-ink-muted hover:text-ink-strong underline",children:r("settings.multimodal.stop_override")})]}),!L&&!N&&e.jsxs(e.Fragment,{children:[z.map(l=>e.jsxs("button",{onClick:()=>void I(l),className:"w-full text-left px-3 py-2 rounded-lg bg-surface-1 hover:bg-surface-3 transition-colors","data-testid":`vision-pick-${l.id}`,children:[e.jsx("span",{className:"text-label font-medium text-ink-strong",children:l.label}),e.jsx("span",{className:"text-label text-ink-faint font-mono break-all ml-2",children:l.defaultModel})]},l.id)),(g||z.length===0)&&e.jsx(ke,{kind:"vision",testPrefix:"vision-custom",titleKey:"settings.custom.form_title_vision",modelPhKey:"settings.custom.model_ph_vision",onSaved:l=>void I(l),onCancel:()=>S(!1)}),z.length>0&&e.jsx("button",{onClick:()=>S(l=>!l),className:"text-label text-accent hover:underline",children:r(g?"action.cancel":"settings.custom.new")})]})]})]}),e.jsxs("div",{className:"bg-ink/5 rounded-lg p-3 flex items-center gap-3",children:[e.jsx(ae,{checked:w,onChange:V,label:r("settings.mathvision.toggle"),testid:"math-vision-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-label font-medium text-ink-strong",children:r("settings.mathvision.toggle")}),e.jsx("div",{className:"text-caption text-ink-muted",children:r("settings.mathvision.desc")})]})]})]})]}):null}function gt(){const s=de(),[x,b]=a.useState(!1),[p,r]=a.useState(!1);a.useEffect(()=>{i.getSetting("flag_memory_system").then(c=>{b(c==="true"),r(!0)})},[]);const d=async()=>{const c=!x;b(c),await i.setSetting("flag_memory_system",String(c))};return p?e.jsxs("div",{className:"px-4 py-3.5 flex items-center gap-3",children:[e.jsx(ae,{checked:x,onChange:d,label:s("settings.memory.toggle"),testid:"memory-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:s("settings.memory.toggle")}),e.jsx("div",{className:"text-label text-ink-muted",children:s("settings.memory.toggle.desc")})]})]}):null}function pt(){const s=de(),[x,b]=a.useState(!0),[p,r]=a.useState(!1),d=a.useSyncExternalStore(Qe,Ze),[c,h]=a.useState(!0),[m,j]=a.useState(!1),T=typeof window<"u"&&!!window.__lookatstudyWeb;a.useEffect(()=>{i.getSetting("companion_enabled").then(o=>{b(o!=="false"&&o!=="0"),r(!0)}),i.getSetting("companion_sfx").then(o=>{h(o!=="false"&&o!=="0")}),i.getSetting("companion_pet_mode").then(o=>{j(o==="1")})},[]);const g=async()=>{const o=!x;b(o),await i.setSetting("companion_enabled",String(o)),window.dispatchEvent(new Event("companion-config-changed"))},S=async()=>{const o=!c;h(o),await i.setSetting("companion_sfx",String(o)),window.dispatchEvent(new Event("companion-config-changed"))},y=async()=>{const o=!m;j(o),await i.setSetting("companion_pet_mode",o?"1":"0"),window.dispatchEvent(new Event("companion-config-changed"))},P=async o=>{o!==d.form&&(await i.setSetting("companion_form",o),window.dispatchEvent(new Event("companion-config-changed")))};return p?e.jsxs("div",{className:"px-4 py-3.5 flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:x,onChange:g,label:s("settings.companion.toggle"),testid:"companion-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:s("settings.companion.toggle")}),e.jsx("div",{className:"text-label text-ink-muted",children:s("settings.companion.toggle.desc")})]})]}),x&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:c,onChange:S,label:s("settings.companion.sfx"),testid:"companion-sfx-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:s("settings.companion.sfx")}),e.jsx("div",{className:"text-label text-ink-muted",children:s("settings.companion.sfx.desc")})]})]}),!T&&e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:m,onChange:y,label:s("settings.companion.pet"),testid:"companion-pet-toggle"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-body font-medium text-ink-strong",children:s("settings.companion.pet")}),e.jsx("div",{className:"text-label text-ink-muted",children:s("settings.companion.pet.desc")})]})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-label text-ink-muted mb-2",children:s("settings.companion.form")}),e.jsx("div",{className:"grid grid-cols-5 gap-2",role:"radiogroup","aria-label":s("settings.companion.form"),children:et.map(o=>{const _=d.form===o;return e.jsxs("button",{type:"button",role:"radio","aria-checked":_,"data-testid":`companion-form-${o}`,onClick:()=>{P(o)},className:`flex flex-col items-center gap-0.5 rounded-xl p-1.5 border motion-safe:transition-colors
7
- ${_?"border-[var(--accent)] bg-surface-2 shadow-card":"border-[var(--border-faint)] hover:bg-surface-2"}`,title:s(`companion.form.${o}.desc`),children:[e.jsx(tt,{form:o,expression:"happy",pose:"float",size:64}),e.jsx("span",{className:`text-label ${_?"text-ink-strong font-medium":"text-ink-muted"}`,children:s(`companion.form.${o}.name`)})]},o)})})]})]})]}):null}function ae({checked:s,onChange:x,label:b,testid:p}){return e.jsx("button",{type:"button",role:"switch","aria-checked":s,"aria-label":b,onClick:x,"data-testid":p,className:`relative w-12 h-6 rounded-full transition-colors shrink-0 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/60 focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--surface-2)] ${s?"bg-brand":"bg-ink/20 hover:bg-ink/25"}`,children:e.jsx("span",{className:`absolute left-0.5 top-1/2 -translate-y-1/2 w-5 h-5 rounded-full bg-white shadow transition-transform ${s?"translate-x-6":""}`})})}const ft=[{id:"zh-CN-XiaoxiaoNeural",label:"zh-CN · 晓晓(女)"},{id:"zh-CN-XiaoyiNeural",label:"zh-CN · 晓伊(女)"},{id:"zh-CN-YunxiNeural",label:"zh-CN · 云希(男)"},{id:"zh-CN-YunyangNeural",label:"zh-CN · 云扬(男·新闻)"},{id:"zh-CN-liaoning-XiaobeiNeural",label:"zh-CN · 晓北(女·东北)"},{id:"zh-CN-shaanxi-XiaoniNeural",label:"zh-CN · 晓妮(女·陕西)"},{id:"en-US-AriaNeural",label:"en-US · Aria(女)"},{id:"en-US-GuyNeural",label:"en-US · Guy(男)"},{id:"en-US-JennyNeural",label:"en-US · Jenny(女)"}],bt=[{sid:"45",label:"zf_xiaobei(女)"},{sid:"46",label:"zf_xiaoni(女)"},{sid:"47",label:"zf_xiaoxiao(女)"},{sid:"48",label:"zf_xiaoyi(女·默认)"},{sid:"49",label:"zm_yunjian(男)"},{sid:"50",label:"zm_yunxi(男)"},{sid:"51",label:"zm_yunxia(男)"},{sid:"52",label:"zm_yunyang(男)"}];function vt(){const s=de(),[x,b]=a.useState([]),[p,r]=a.useState(null),[d,c]=a.useState(null),[h,m]=a.useState(null),[j,T]=a.useState(null),[g,S]=a.useState("edge"),[y,P]=a.useState("zh-CN-XiaoxiaoNeural"),[o,_]=a.useState("48"),[w,K]=a.useState("1.0"),[B,V]=a.useState(""),[I,D]=a.useState(""),[A,z]=a.useState([]),L=typeof window<"u"&&"speechSynthesis"in window,[N,l]=a.useState("local"),[H,Z]=a.useState("asr-whisper-turbo"),[ce,ge]=a.useState(!0),[re,ee]=a.useState([]),[ie,le]=a.useState(!1),[U,me]=a.useState(!1),[pe,O]=a.useState(!1),[fe,te]=a.useState(!1),[$,be]=a.useState(!1),[Y,n]=a.useState(null),[f,E]=a.useState(!1),[J,M]=a.useState(null),[k,C]=a.useState(null),q=a.useCallback(()=>{i.listCustomProviders().then(t=>ee(t.filter(u=>u.kind==="tts"||u.kind==="asr"))).catch(()=>{})},[]);a.useEffect(()=>{Promise.all([i.getSetting("tts_engine"),i.getSetting("tts_voice_edge"),i.getSetting("tts_sid_local"),i.getSetting("tts_speed"),i.getSetting("tts_custom_voice"),i.getSetting("tts_system_voice"),i.getSetting("asr_engine"),i.getSetting("asr_local_model"),i.getSetting("asr_auto_stop")]).then(([t,u,W,X,ye,Pe,Ae,Se,Je])=>{t&&S(t),u&&P(u),W&&_(W),X&&K(X),ye&&V(ye),Pe&&D(Pe),Ae&&l(Ae),(Se==="asr-whisper-turbo"||Se==="asr-whisper-small")&&Z(Se),ge(Je!=="0")}),q()},[q]),a.useEffect(()=>{if(typeof window>"u"||!("speechSynthesis"in window))return;const t=()=>z(dt(window.speechSynthesis.getVoices()));return t(),window.speechSynthesis.addEventListener("voiceschanged",t),()=>window.speechSynthesis.removeEventListener("voiceschanged",t)},[]);const ue=a.useCallback(()=>{window.api.getSpeechModelStatus().then(t=>b(t)).catch(()=>{})},[]);a.useEffect(()=>(ue(),window.api.on("speech:modelProgress",u=>{m({id:u.id,pct:Math.floor(u.progress*100),label:u.currentFile?u.currentFile.split("/").pop()??"":""})})),[ue]);const Fe=t=>{c(null),r(t),m({id:t,pct:0,label:""}),window.api.ensureSpeechModel(t).then(()=>{r(null),m(null),ue()}).catch(u=>{r(null),m(null),c(u instanceof Error?u.message:String(u)),ue()})},Re=t=>{r(t),T(null),window.api.deleteSpeechModel(t).then(ue).catch(u=>c(u instanceof Error?u.message:String(u))).finally(()=>r(null))},Ve=t=>s(t==="tts-kokoro"?"settings.speech.model.tts":t==="asr-whisper-turbo"?"settings.speech.model.asr_turbo":"settings.speech.model.asr_small"),Ie=t=>s(t==="asr-whisper-turbo"?"settings.speech.model.turbo_short":"settings.speech.model.small_short"),De=t=>t.startsWith("asr-whisper")?s("settings.speech.license_mit"):s("settings.speech.license"),Ee=t=>s(t==="ready"?"settings.speech.state.ready":t==="error"?"settings.speech.state.error":"settings.speech.state.absent"),Te=t=>{var u;return((u=x.find(W=>W.id===t))==null?void 0:u.state)??"absent"},oe=t=>{S(t),n(null),i.setSetting("tts_engine",t),we()},Oe=t=>{D(t),i.setSetting("tts_system_voice",t),we()},ve=t=>{l(t),M(null),i.setSetting("asr_engine",t)},je=re.filter(t=>t.kind==="tts"),Ne=re.filter(t=>t.kind==="asr"),Q=g.startsWith("custom-")?je.find(t=>t.id===g)??null:null,se=N.startsWith("custom-")?Ne.find(t=>t.id===N)??null:null,Ge=g==="azure",Be=N==="groq",qe=N==="azure",Xe=async()=>{if(!(!Q||$)){be(!0),n(null);try{n(await i.testCustomTts({providerId:Q.id}))}catch(t){n({ok:!1,detail:t instanceof Error?t.message:String(t)})}finally{be(!1)}}},He=async()=>{if(!(!se||f)){E(!0),M(null);try{M(await i.testCustomAsr({providerId:se.id}))}catch(t){M({ok:!1,detail:t instanceof Error?t.message:String(t)})}finally{E(!1)}}},Ye=async(t,u)=>{C(null);try{await i.deleteCustomProvider(t),u==="tts"&&g===t&&oe("edge"),u==="asr"&&N===t&&ve("local"),q()}catch{}},Me=t=>{const u=x.find(X=>X.id===t),W=(u==null?void 0:u.state)??"absent";return e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-label font-medium text-ink-strong truncate",children:Ve(t)}),e.jsxs("div",{className:"text-caption text-ink-muted",children:[Ee(W)," · ",De(t)]}),p===t&&(h==null?void 0:h.id)===t&&e.jsx("div",{className:"mt-1.5 h-1.5 rounded-full bg-ink/[0.08] overflow-hidden","data-testid":`speech-dl-bar-${t}`,children:e.jsx("div",{className:"h-full bg-brand transition-all",style:{width:`${h.pct}%`}})}),p===t&&(h==null?void 0:h.id)===t&&e.jsxs("div",{className:"text-caption text-ink-faint mt-0.5","data-testid":`speech-dl-pct-${t}`,children:[h.pct,"%",h.label?` · ${h.label}`:""]})]}),W==="ready"?j===t?e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-caption text-warning",children:s("settings.speech.confirm_del")}),e.jsx("button",{onClick:()=>Re(t),className:"text-label text-warning hover:underline","data-testid":`speech-del-confirm-${t}`,children:s("settings.speech.delete")}),e.jsx("button",{onClick:()=>T(null),className:"text-label text-ink-muted hover:text-ink-strong",children:s("action.cancel")})]}):e.jsx("button",{onClick:()=>T(t),disabled:p===t,className:"text-label text-ink-muted hover:text-warning disabled:opacity-40","data-testid":`speech-del-${t}`,children:s("settings.speech.delete")}):e.jsx("button",{onClick:()=>Fe(t),disabled:p!=null||W==="downloading",className:"btn-3d-brand px-3 py-1 text-label disabled:opacity-40","data-testid":`speech-dl-${t}`,children:s(p===t||W==="downloading"?"settings.speech.downloading":"settings.speech.download")})]},t)},Le=(t,u,W,X,ye)=>e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-label",children:[e.jsx($e,{className:"w-3.5 h-3.5 text-ink-faint shrink-0","aria-hidden":"true"}),e.jsx("span",{className:"font-medium text-ink-strong",children:t.label}),e.jsx("code",{className:"text-ink-faint font-mono break-all",children:t.defaultModel}),e.jsx("span",{className:"text-ink-faint break-all min-w-0",children:t.baseUrl}),t.hasApiKey&&e.jsxs("span",{className:"text-brand shrink-0 inline-flex items-center gap-0.5",children:[e.jsx(ne,{className:"w-3.5 h-3.5","aria-hidden":"true"}),s("settings.speech.key_saved")]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx("button",{onClick:()=>void ye(),disabled:W,className:"btn-3d-neutral px-3 py-1 text-label disabled:opacity-40","data-testid":`${u}-custom-test`,children:s(W?"settings.testing":"settings.test")}),k===t.id?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-caption text-warning",children:s("settings.speech.confirm_del_custom")}),e.jsx("button",{onClick:()=>void Ye(t.id,u),className:"text-label text-warning hover:underline","data-testid":`${u}-custom-del-confirm`,children:s("settings.speech.delete")}),e.jsx("button",{onClick:()=>C(null),className:"text-label text-ink-muted hover:text-ink-strong",children:s("action.cancel")})]}):e.jsx("button",{onClick:()=>C(t.id),className:"text-label text-ink-muted hover:text-warning","data-testid":`${u}-custom-del`,children:s("settings.speech.delete")}),X&&e.jsxs("span",{className:`text-label inline-flex items-center gap-1 ${X.ok?"text-brand":"text-warning"}`,children:[X.ok?e.jsx(ne,{className:"w-4 h-4","aria-hidden":"true"}):e.jsx(he,{className:"w-4 h-4","aria-hidden":"true"}),X.detail]})]})]});return e.jsxs("div",{"data-testid":"settings-speech",children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:s("settings.speech.tts_title")}),e.jsxs("div",{className:"flex gap-2 flex-wrap",children:[e.jsx("button",{onClick:()=>{oe("edge"),le(!1),O(!1)},"data-testid":"tts-engine-edge","aria-pressed":g==="edge",className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g==="edge"?R:F}`,children:s("settings.speech.engine.edge")}),e.jsxs("button",{onClick:()=>{oe("local"),le(!1),O(!1)},"data-testid":"tts-engine-local","aria-pressed":g==="local",className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g==="local"?R:F}`,children:[s("settings.speech.engine.local"),Te("tts-kokoro")!=="ready"?` · ${s("settings.speech.state.absent")}`:""]}),e.jsx("button",{onClick:()=>{oe("system"),le(!1),O(!1)},disabled:!L,"data-testid":"tts-engine-system","aria-pressed":g==="system",title:L?void 0:s("settings.speech.engine.system_unavailable"),className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g==="system"?R:F} ${L?"":"opacity-40 cursor-not-allowed"}`,children:s("settings.speech.engine.system")}),e.jsx("button",{onClick:()=>{le(t=>!t),ie||O(!1)},"data-testid":"tts-engine-custom","aria-pressed":g.startsWith("custom-")||ie,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${g.startsWith("custom-")||ie?R:F}`,children:s("settings.speech.engine.custom")}),Ge&&e.jsxs("button",{disabled:!0,"data-testid":"tts-engine-azure",className:"px-4 py-2 rounded-xl text-body font-bold opacity-50 cursor-not-allowed",children:["Azure · ",s("settings.speech.legacy")]})]}),g==="edge"&&e.jsx("p",{className:"text-label text-ink-muted mt-2",children:s("settings.speech.engine.edge_note")})]}),g==="edge"&&e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:s("settings.speech.voice")}),e.jsx("select",{value:y,onChange:t=>{P(t.target.value),i.setSetting("tts_voice_edge",t.target.value)},"data-testid":"tts-voice-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:ft.map(t=>e.jsx("option",{value:t.id,children:t.label},t.id))})]}),g==="local"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:s("settings.speech.voice")}),e.jsx("select",{value:o,onChange:t=>{_(t.target.value),i.setSetting("tts_sid_local",t.target.value)},"data-testid":"tts-sid-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:bt.map(t=>e.jsx("option",{value:t.sid,children:t.label},t.sid))})]}),e.jsx("div",{className:v(!1),children:Me("tts-kokoro")})]}),g==="system"&&e.jsx(e.Fragment,{children:e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:s("settings.speech.voice")}),e.jsxs("select",{value:I,onChange:t=>Oe(t.target.value),"data-testid":"tts-system-voice-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:[e.jsx("option",{value:"",children:s("settings.speech.voice_auto")}),A.map(t=>e.jsx("option",{value:t.name,children:ot(t)},t.voiceURI))]}),e.jsx("p",{className:"text-label text-ink-muted mt-2",children:s("settings.speech.engine.system_note")})]})}),ie&&e.jsx("div",{className:v(!1),children:e.jsxs("div",{className:"space-y-3",children:[Q&&Le(Q,"tts",$,Y,Xe),Q&&e.jsxs("div",{children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:s("settings.speech.voice")}),e.jsx("input",{type:"text",value:B,onChange:t=>V(t.target.value),onBlur:()=>void i.setSetting("tts_custom_voice",B.trim()),placeholder:s("settings.speech.custom_voice_ph"),"data-testid":"tts-custom-voice",className:`${G} w-full min-w-0 px-2.5 py-1.5 font-mono`})]}),!Q&&je.map(t=>e.jsxs("button",{onClick:()=>oe(t.id),className:"w-full text-left px-3 py-2 rounded-lg bg-surface-1 hover:bg-surface-3 transition-colors","data-testid":`tts-pick-${t.id}`,children:[e.jsx("span",{className:"text-label font-medium text-ink-strong",children:t.label}),e.jsx("span",{className:"text-label text-ink-faint font-mono break-all ml-2",children:t.defaultModel})]},t.id)),(pe||!Q&&je.length===0)&&e.jsx(ke,{kind:"tts",showProtocol:!1,testPrefix:"tts-custom",titleKey:"settings.custom.form_title_tts",modelPhKey:"settings.custom.model_ph_tts",testOverride:t=>i.testCustomTts({baseUrl:t.baseUrl,apiKey:t.apiKey||void 0,model:t.model}),onSaved:t=>{oe(t.id),O(!1),q()},onCancel:()=>O(!1)}),(Q||je.length>0)&&e.jsx("button",{onClick:()=>O(t=>!t),className:"text-label text-accent hover:underline",children:s(pe?"action.cancel":"settings.custom.new")})]})}),e.jsx("div",{className:v(!0),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-label font-medium text-ink-strong shrink-0 w-14",children:s("settings.speech.speed")}),e.jsx("input",{type:"range",min:"0.5",max:"2",step:"0.05",value:w,onChange:t=>K(t.target.value),onPointerUp:()=>{i.setSetting("tts_speed",w),we()},onKeyUp:()=>{i.setSetting("tts_speed",w),we()},"data-testid":"tts-speed-range",className:"flex-1 min-w-0 accent-[var(--brand)]"}),e.jsxs("span",{className:"text-label text-ink-muted tabular-nums w-10 text-right","data-testid":"tts-speed-value",children:[Number(w).toFixed(2),"x"]})]})}),e.jsxs("div",{className:v(!0),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-2",children:s("settings.speech.asr_title")}),e.jsxs("div",{className:"flex gap-2 flex-wrap",children:[e.jsx("button",{onClick:()=>{ve("local"),me(!1),te(!1)},"data-testid":"asr-engine-local","aria-pressed":N==="local",className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${N==="local"?R:F}`,children:s("settings.speech.asr_engine.local")}),e.jsx("button",{onClick:()=>{me(t=>!t),U||te(!1)},"data-testid":"asr-engine-custom","aria-pressed":N.startsWith("custom-")||U,className:`px-4 py-2 rounded-xl text-body font-bold transition-all ${N.startsWith("custom-")||U?R:F}`,children:s("settings.speech.engine.custom")}),Be&&e.jsxs("button",{disabled:!0,"data-testid":"asr-engine-groq",className:"px-4 py-2 rounded-xl text-body font-bold opacity-50 cursor-not-allowed",children:["Groq · ",s("settings.speech.legacy")]}),qe&&e.jsxs("button",{disabled:!0,"data-testid":"asr-engine-azure",className:"px-4 py-2 rounded-xl text-body font-bold opacity-50 cursor-not-allowed",children:["Azure · ",s("settings.speech.legacy")]})]}),N==="local"?e.jsx("p",{className:"text-label text-ink-muted mt-2",children:s("settings.speech.asr_engine.local_note")}):N.startsWith("custom-")&&e.jsx("p",{className:"text-label text-ink-muted mt-2",children:s("settings.speech.asr_engine.custom_note")})]}),N==="local"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:v(!1),children:[e.jsx("div",{className:"text-label font-medium text-ink-strong mb-1.5",children:s("settings.model")}),e.jsx("select",{value:H,onChange:t=>{Z(t.target.value),i.setSetting("asr_local_model",t.target.value)},"data-testid":"asr-model-select",className:`${G} w-full min-w-0 px-2.5 py-1.5`,children:["asr-whisper-turbo","asr-whisper-small"].map(t=>e.jsxs("option",{value:t,children:[Ie(t)," · ",Ee(Te(t))]},t))})]}),e.jsx("div",{className:v(!1),children:Me(H)})]}),U&&e.jsx("div",{className:v(!1),children:e.jsxs("div",{className:"space-y-3",children:[se&&Le(se,"asr",f,J,He),!se&&Ne.map(t=>e.jsxs("button",{onClick:()=>ve(t.id),className:"w-full text-left px-3 py-2 rounded-lg bg-surface-1 hover:bg-surface-3 transition-colors","data-testid":`asr-pick-${t.id}`,children:[e.jsx("span",{className:"text-label font-medium text-ink-strong",children:t.label}),e.jsx("span",{className:"text-label text-ink-faint font-mono break-all ml-2",children:t.defaultModel})]},t.id)),(fe||!se&&Ne.length===0)&&e.jsx(ke,{kind:"asr",showProtocol:!1,testPrefix:"asr-custom",titleKey:"settings.custom.form_title_asr",modelPhKey:"settings.custom.model_ph_asr",testOverride:t=>i.testCustomAsr({baseUrl:t.baseUrl,apiKey:t.apiKey||void 0,model:t.model}),onSaved:t=>{ve(t.id),te(!1),q()},onCancel:()=>te(!1)}),(se||Ne.length>0)&&e.jsx("button",{onClick:()=>te(t=>!t),className:"text-label text-accent hover:underline",children:s(fe?"action.cancel":"settings.custom.new")})]})}),e.jsxs("div",{className:v(!0),children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{checked:ce,onChange:()=>{const t=!ce;ge(t),i.setSetting("asr_auto_stop",t?"1":"0")},label:s("settings.speech.asr_auto_stop"),testid:"asr-auto-stop-toggle"}),e.jsx("div",{className:"text-body font-medium text-ink-strong",children:s("settings.speech.asr_auto_stop")})]}),e.jsx("p",{className:"text-label text-ink-muted mt-2",children:s("settings.speech.asr_ux_note")})]}),d&&e.jsx("div",{className:"px-4 py-3 text-label text-warning break-all",role:"alert",children:d==="engine-unavailable"?s("chat.speech.engine_unavailable"):d})]})}export{yt as SettingsView};
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-BD32Za4p.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as e}from"./chunk-X5GNSKZ3-DT5Ja5IF.js";import{_ as i}from"./render-O7CIS3YK-DhYmSGoI.js";import"./transform-CzGDKG_M.js";import"./chunk-LV3HUYFY-B2sGhGxz.js";import"./chunk-CXNFBKHE-BDCDRaZC.js";import"./chunk-NDIOYS4C-Cx7mCz5-.js";import"./chunk-ISA7TJRJ-C3LgQ-bA.js";import"./mermaid-layout-elk.core-BUAJJUsd.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";var w={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{w as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-DtpZkefy.js";import{_ as i}from"./mermaid.core-BD32Za4p.js";import"./transform-CzGDKG_M.js";import"./chunk-5VM5RSS4-Dv4MffdC.js";import"./chunk-XXDRQBXY-D3vcLngc.js";import"./chunk-KBJHAD2P-7KeTMqC1.js";import"./chunk-2GRJ4B5K-C7VAL2Yd.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";var c={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as e}from"./chunk-X5GNSKZ3-DT5Ja5IF.js";import{_ as i}from"./render-O7CIS3YK-DhYmSGoI.js";import"./transform-CzGDKG_M.js";import"./chunk-LV3HUYFY-B2sGhGxz.js";import"./chunk-CXNFBKHE-BDCDRaZC.js";import"./chunk-NDIOYS4C-Cx7mCz5-.js";import"./chunk-ISA7TJRJ-C3LgQ-bA.js";import"./mermaid-layout-elk.core-BUAJJUsd.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";var w={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{w as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-GF5L2VYU-DtpZkefy.js";import{_ as i}from"./mermaid.core-BD32Za4p.js";import"./transform-CzGDKG_M.js";import"./chunk-5VM5RSS4-Dv4MffdC.js";import"./chunk-XXDRQBXY-D3vcLngc.js";import"./chunk-KBJHAD2P-7KeTMqC1.js";import"./chunk-2GRJ4B5K-C7VAL2Yd.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";var c={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
@@ -1 +0,0 @@
1
- import{s as r,b as e,a,S as i}from"./chunk-M3IUQBOH-Dazbegdb.js";import{_ as o}from"./render-O7CIS3YK-DhYmSGoI.js";import"./transform-CzGDKG_M.js";import"./chunk-LV3HUYFY-B2sGhGxz.js";import"./chunk-NDIOYS4C-Cx7mCz5-.js";import"./chunk-ISA7TJRJ-C3LgQ-bA.js";import"./mermaid-layout-elk.core-BUAJJUsd.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";var w={parser:a,get db(){return new i(2)},renderer:e,styles:r,init:o(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{w as diagram};
@@ -1 +0,0 @@
1
- import{s as r,b as e,a,S as i}from"./chunk-5RXB4S5H-CrW8aZl4.js";import{_ as s}from"./mermaid.core-BD32Za4p.js";import"./transform-CzGDKG_M.js";import"./chunk-XXDRQBXY-D3vcLngc.js";import"./chunk-KBJHAD2P-7KeTMqC1.js";import"./chunk-2GRJ4B5K-C7VAL2Yd.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";var f={parser:a,get db(){return new i(2)},renderer:e,styles:r,init:s(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{f as diagram};
@@ -1,8 +0,0 @@
1
- import{c as r,s as e}from"./flowDiagram-UKHOOZJN-B3XmqjMH.js";import{_ as a}from"./mermaid.core-BD32Za4p.js";import"./transform-CzGDKG_M.js";import"./chunk-5VM5RSS4-Dv4MffdC.js";import"./chunk-XXDRQBXY-D3vcLngc.js";import"./chunk-KBJHAD2P-7KeTMqC1.js";import"./chunk-2GRJ4B5K-C7VAL2Yd.js";import"./channel-KoPlHvUR.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";var o=a(t=>`${e(t)}
2
- .swimlane.cluster rect {
3
- stroke: ${t.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,"getStyles"),m=o,g=r({defaultLayout:"swimlane",styles:m});export{g as diagram};
@@ -1,8 +0,0 @@
1
- import{c as r,s as e}from"./flowDiagram-A5DVABFB-2Z4AVO5R-CJdwjvtN.js";import{_ as o}from"./render-O7CIS3YK-DhYmSGoI.js";import"./transform-CzGDKG_M.js";import"./chunk-LV3HUYFY-B2sGhGxz.js";import"./chunk-CXNFBKHE-BDCDRaZC.js";import"./chunk-NDIOYS4C-Cx7mCz5-.js";import"./chunk-ISA7TJRJ-C3LgQ-bA.js";import"./mermaid-layout-elk.core-BUAJJUsd.js";import"./main-CGE6fm01.js";import"./index-xynt7zMk.js";import"./step-SI6FXFD6.js";import"./_commonjs-dynamic-modules-TDtrdbi3.js";var a=o(t=>`${e(t)}
2
- .swimlane.cluster rect {
3
- stroke: ${t.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,"getStyles"),m=a,v=r({defaultLayout:"swimlane",styles:m});export{v as diagram};