efficient-shell 11.10.0 → 11.12.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 (341) hide show
  1. package/README.md +3 -1
  2. package/dist/{Browser-FIRNNCSC.js → Browser-LPGSKKLU.js} +17 -17
  3. package/dist/Calculator-XUV5JV3O.js +29 -0
  4. package/dist/{CurrencyConverter-LU7QXMOI.js → CurrencyConverter-N2HQT7IR.js} +6 -6
  5. package/dist/Documents-IRPS3N5T.js +84 -0
  6. package/dist/Files-VN2IOPHX.js +88 -0
  7. package/dist/{Notepad-HNED2SWM.js → Notepad-JCWNOQET.js} +10 -10
  8. package/dist/PdfViewer-M4RTCNNE.js +1 -0
  9. package/dist/PomodoroTimer-356JUEM3.js +91 -0
  10. package/dist/{Preview-OGSYTTKC.js → Preview-X7XNDI6X.js} +35 -35
  11. package/dist/Sidebar-OZMJNAXN.js +44 -0
  12. package/dist/{Spreadsheet-4HZR2TUV.js → Spreadsheet-YQOVGIU7.js} +67 -67
  13. package/dist/{Stock-4BOTUHWE.js → Stock-2XOOZNRR.js} +3 -3
  14. package/dist/{Weather-NDUOK3P3.js → Weather-ZDU2722T.js} +21 -21
  15. package/dist/{WorldClock-FH6NFTOM.js → WorldClock-PQGERFCH.js} +6 -6
  16. package/dist/ai/index.js +91 -91
  17. package/dist/apps/index.d.ts +21 -2
  18. package/dist/apps/index.js +1 -1
  19. package/dist/bin/media-host-check.js +1 -1
  20. package/dist/bin/ui-check.js +1 -1
  21. package/dist/brand.css +1 -1
  22. package/dist/charts/BoxPlotChart.js +1 -1
  23. package/dist/charts/CandlestickChart.js +1 -1
  24. package/dist/charts/CartesianPlot.js +1 -1
  25. package/dist/charts/ChartBrush.js +1 -1
  26. package/dist/charts/ChartFrame.js +1 -1
  27. package/dist/charts/ChartSkeleton.js +1 -1
  28. package/dist/charts/ChordChart.js +1 -1
  29. package/dist/charts/ColumnChart.js +1 -1
  30. package/dist/charts/FunnelChart.js +1 -1
  31. package/dist/charts/HeatmapChart.js +1 -1
  32. package/dist/charts/HistogramChart.js +1 -1
  33. package/dist/charts/Meter.js +1 -1
  34. package/dist/charts/PieChart.js +1 -1
  35. package/dist/charts/RadarChart.js +1 -1
  36. package/dist/charts/RadialBarChart.js +1 -1
  37. package/dist/charts/RangeChart.js +1 -1
  38. package/dist/charts/RankedBars.js +1 -1
  39. package/dist/charts/SankeyChart.js +1 -1
  40. package/dist/charts/ScatterChart.js +1 -1
  41. package/dist/charts/SpecChart.js +1 -1
  42. package/dist/charts/StatTile.js +1 -1
  43. package/dist/charts/SunburstChart.js +1 -1
  44. package/dist/charts/TimeSeriesChart.js +1 -1
  45. package/dist/charts/TreemapChart.js +1 -1
  46. package/dist/charts/WaterfallChart.js +1 -1
  47. package/dist/{chunk-Z32K3LIJ.js → chunk-225LCPO7.js} +1 -1
  48. package/dist/{chunk-FNMF42DQ.js → chunk-2E3K4FSQ.js} +2 -2
  49. package/dist/chunk-2NRNKF46.js +9 -0
  50. package/dist/{chunk-HTTICQBP.js → chunk-2XOH3NJZ.js} +18 -18
  51. package/dist/{chunk-4UKPDURO.js → chunk-2XORVHF2.js} +1 -1
  52. package/dist/{chunk-IDRAW6MT.js → chunk-2ZAFRGRF.js} +2 -2
  53. package/dist/{chunk-DH2DKQKS.js → chunk-34AHNPW7.js} +1 -1
  54. package/dist/{chunk-UZ7TKJRO.js → chunk-3N2MNOV5.js} +1 -1
  55. package/dist/{chunk-PC44XTGN.js → chunk-3PZI2C4R.js} +1 -1
  56. package/dist/{chunk-DGA4SO27.js → chunk-4APQHXLI.js} +2 -2
  57. package/dist/chunk-4EVYK6DR.js +14 -0
  58. package/dist/{chunk-TKE3EF2U.js → chunk-4JJ5WT4D.js} +1 -1
  59. package/dist/{chunk-QVAOSKFO.js → chunk-4TB4CSLB.js} +8 -8
  60. package/dist/{chunk-SJQKEIS7.js → chunk-5IESW4PM.js} +5 -5
  61. package/dist/{chunk-SZTIP6T7.js → chunk-5KKJAYKT.js} +1 -1
  62. package/dist/{chunk-PBMAMVSE.js → chunk-5UCRYSQJ.js} +5 -5
  63. package/dist/chunk-5W3U3EVG.js +7 -0
  64. package/dist/{chunk-VNTJ7QO5.js → chunk-5YP7MFPK.js} +1 -1
  65. package/dist/chunk-64KZ74CS.js +8 -0
  66. package/dist/{chunk-ZWLOVJWN.js → chunk-6C6M3QXL.js} +1 -1
  67. package/dist/{chunk-LLNWE7DR.js → chunk-6CK44QWU.js} +30 -30
  68. package/dist/{chunk-UIN2LUCZ.js → chunk-6ETRVCMH.js} +14 -14
  69. package/dist/{chunk-MOL2ND6G.js → chunk-6S6FJJKP.js} +5 -5
  70. package/dist/{chunk-RSJLN3EG.js → chunk-6UJYRGWY.js} +1 -1
  71. package/dist/{chunk-AJ6HMM4P.js → chunk-6WPKLF6G.js} +13 -13
  72. package/dist/{chunk-MQHUVZWM.js → chunk-7A2Y3W55.js} +1 -1
  73. package/dist/{chunk-HYXDKY2L.js → chunk-7FCIFHO7.js} +1 -1
  74. package/dist/chunk-7TVGP2SX.js +8 -0
  75. package/dist/{chunk-R64OZ6TC.js → chunk-7V32O5NF.js} +6 -4
  76. package/dist/{chunk-YY5TUQS4.js → chunk-AD27M3ZH.js} +3 -3
  77. package/dist/{chunk-KZ6JVHFI.js → chunk-AO7XAAGG.js} +1 -1
  78. package/dist/{chunk-NTKNM25F.js → chunk-AQ7CNPEE.js} +9 -9
  79. package/dist/{chunk-U6IJL4Q5.js → chunk-AWQ5SOC5.js} +1 -1
  80. package/dist/{chunk-LVHQJ5TW.js → chunk-B2AYI45X.js} +7 -7
  81. package/dist/chunk-BOJEZKYS.js +14 -0
  82. package/dist/{chunk-YIFRSPUM.js → chunk-BPJ3CQH7.js} +9 -9
  83. package/dist/{chunk-IW2QNPDG.js → chunk-CAIKDX2M.js} +2 -2
  84. package/dist/chunk-CGA6RTVI.js +9 -0
  85. package/dist/{chunk-YGCVMPIU.js → chunk-CR3YDABU.js} +1 -1
  86. package/dist/chunk-CR42APAY.js +8 -0
  87. package/dist/{chunk-YM4XIO4K.js → chunk-CXZ7PHHF.js} +5 -5
  88. package/dist/{chunk-L3RLB37Y.js → chunk-D4RVWSUT.js} +1 -1
  89. package/dist/{chunk-PMKR2BF2.js → chunk-D5MN3LXC.js} +17 -17
  90. package/dist/{chunk-7N4P6LGD.js → chunk-DHMOJX2Z.js} +1 -1
  91. package/dist/{chunk-RKL47W7I.js → chunk-DMBA6KYQ.js} +6 -6
  92. package/dist/{chunk-WYSNMIZN.js → chunk-DXKXETTT.js} +1 -1
  93. package/dist/chunk-EBGOENC3.js +3 -0
  94. package/dist/{chunk-IAUEISDQ.js → chunk-ELIWGIR7.js} +9 -9
  95. package/dist/{chunk-OUXSI6X4.js → chunk-EQ72AP5E.js} +1 -1
  96. package/dist/chunk-ES2LUEPN.js +22 -0
  97. package/dist/{chunk-SIA3W7VE.js → chunk-F33L4J3P.js} +6 -6
  98. package/dist/{chunk-D2BXHFYK.js → chunk-FD6XZRWA.js} +1 -1
  99. package/dist/{chunk-B4D23ZLJ.js → chunk-FEUTN4GK.js} +1 -1
  100. package/dist/{chunk-E2LRAOCL.js → chunk-FFNPAJLS.js} +10 -10
  101. package/dist/{chunk-H5YD72OP.js → chunk-FRH2AHPI.js} +1 -1
  102. package/dist/{chunk-OE77XFOV.js → chunk-FUHURDBL.js} +1 -1
  103. package/dist/chunk-FZWSP7KJ.js +28 -0
  104. package/dist/chunk-G3FHFWC2.js +4 -0
  105. package/dist/{chunk-OZEPYQ7E.js → chunk-GJFTO7D4.js} +1 -1
  106. package/dist/{chunk-L433UT5E.js → chunk-GJVGGYQ2.js} +1 -1
  107. package/dist/{chunk-QIVIQUKB.js → chunk-GRC46C4V.js} +7 -7
  108. package/dist/{chunk-2UTCGWMZ.js → chunk-GS74BABV.js} +4 -4
  109. package/dist/{chunk-4VF66WBB.js → chunk-HDABS36W.js} +16 -16
  110. package/dist/{chunk-U7T2ONAY.js → chunk-HGMQOHMK.js} +1 -1
  111. package/dist/{chunk-HWFBNYNI.js → chunk-HJBR73GS.js} +1 -1
  112. package/dist/{chunk-ONIL7WXO.js → chunk-HJM4LSMM.js} +1 -1
  113. package/dist/{chunk-IXSSBGRD.js → chunk-HOEEFFE3.js} +8 -8
  114. package/dist/{chunk-IKKQ4P4R.js → chunk-HT7SOOMD.js} +10 -10
  115. package/dist/{chunk-GV5VNWPG.js → chunk-I5GDAQYL.js} +2 -2
  116. package/dist/{chunk-QL5E3MU3.js → chunk-IFWXC323.js} +1 -1
  117. package/dist/{chunk-JGVKGEIV.js → chunk-IIKPM3F4.js} +1 -1
  118. package/dist/{chunk-RPTOAKLB.js → chunk-IJ6HZXZY.js} +1 -1
  119. package/dist/{chunk-PAC4LK2N.js → chunk-IKKR2TYY.js} +5 -5
  120. package/dist/{chunk-JJHPPTM6.js → chunk-IUG4Z2ND.js} +1 -1
  121. package/dist/{chunk-RQ6TC6RM.js → chunk-JFCCI5L2.js} +1 -1
  122. package/dist/{chunk-NGUXPP5Q.js → chunk-JGWUSJDD.js} +53 -53
  123. package/dist/{chunk-KPFYXVCO.js → chunk-JJLAI6GL.js} +8 -8
  124. package/dist/{chunk-KMSK6QQB.js → chunk-JJZAYAVL.js} +1 -1
  125. package/dist/{chunk-MFDOGLFO.js → chunk-JRCFOZEU.js} +3 -3
  126. package/dist/{chunk-7QRKZOXR.js → chunk-K3IUUZO5.js} +8 -8
  127. package/dist/chunk-KU4IWX6F.js +2 -0
  128. package/dist/{chunk-T2ZFXPQV.js → chunk-KV4QPU6U.js} +21 -21
  129. package/dist/{chunk-MWKLLAJT.js → chunk-KVVZLEUG.js} +1 -1
  130. package/dist/{chunk-JADBOQ7S.js → chunk-KYHDDVTR.js} +5 -5
  131. package/dist/{chunk-P7NO3NGC.js → chunk-L2IPWMLI.js} +7 -7
  132. package/dist/chunk-L74WV4RJ.js +6 -0
  133. package/dist/{chunk-ALMBY7QO.js → chunk-LJJ7FDAQ.js} +5 -5
  134. package/dist/{chunk-AFROFSDW.js → chunk-LLSLY6BT.js} +1 -1
  135. package/dist/{chunk-EP5BHBZQ.js → chunk-LP45EML2.js} +1 -1
  136. package/dist/{chunk-4L4GQW7P.js → chunk-LWFH5QTJ.js} +1 -1
  137. package/dist/{chunk-QIEAZN6Z.js → chunk-LXBBJNBQ.js} +1 -1
  138. package/dist/{chunk-SXBOODCJ.js → chunk-LXQHTY3A.js} +5 -5
  139. package/dist/{chunk-V6LPIDZ6.js → chunk-M4AOQYSP.js} +1 -1
  140. package/dist/{chunk-MG4IUKVP.js → chunk-MD6EPKOR.js} +10 -10
  141. package/dist/chunk-MFP5KOQW.js +9 -0
  142. package/dist/{chunk-37JAU3U7.js → chunk-N75MPMLD.js} +1 -1
  143. package/dist/{chunk-SDAX6BXF.js → chunk-NMQGAP3H.js} +1 -1
  144. package/dist/{chunk-NFNDXE5O.js → chunk-NPT6EXHK.js} +3 -3
  145. package/dist/{chunk-DWR6RVX5.js → chunk-NTUZT37J.js} +4 -4
  146. package/dist/{chunk-FOHOSUK3.js → chunk-O6VIHWYU.js} +1 -1
  147. package/dist/{chunk-5MGNT7XM.js → chunk-OCWWEHNR.js} +2 -2
  148. package/dist/{chunk-OQG3XO4Y.js → chunk-OLJUPBY4.js} +1 -1
  149. package/dist/{chunk-LNGLJA6K.js → chunk-OMROEVOP.js} +1 -1
  150. package/dist/{chunk-HRXQCHKI.js → chunk-P75N466Z.js} +1 -1
  151. package/dist/{chunk-VTXCCFJ4.js → chunk-PDFV3YQB.js} +3 -3
  152. package/dist/{chunk-FTGA5IPI.js → chunk-PETBAYS5.js} +14 -14
  153. package/dist/{chunk-O4OFURPC.js → chunk-PL4HKGYP.js} +1 -1
  154. package/dist/{chunk-NSYCJTHE.js → chunk-PMKBWDXO.js} +1 -1
  155. package/dist/{chunk-OS2KE6QG.js → chunk-PTVTNCD6.js} +4 -4
  156. package/dist/{chunk-2JTG3U5L.js → chunk-PVVHWLNX.js} +1 -1
  157. package/dist/{chunk-YMBNVMFU.js → chunk-Q7UTGO73.js} +10 -10
  158. package/dist/chunk-QDL2FNP7.js +8 -0
  159. package/dist/{chunk-ED6HJBCO.js → chunk-R6TDZ7T5.js} +1 -1
  160. package/dist/chunk-R7KRBKFH.js +5 -0
  161. package/dist/{chunk-PTWKG635.js → chunk-RBAC26J7.js} +4 -4
  162. package/dist/{chunk-A65PRSKV.js → chunk-RMSF4UCJ.js} +4 -4
  163. package/dist/{chunk-276JUQXK.js → chunk-RXVFAFEB.js} +1 -1
  164. package/dist/{chunk-HBS4HYQM.js → chunk-SAASFWKB.js} +1 -1
  165. package/dist/{chunk-LZJCULO7.js → chunk-SEP35R2E.js} +1 -1
  166. package/dist/chunk-SI33IE7G.js +2 -0
  167. package/dist/{chunk-PR42NIDL.js → chunk-SKRFI6WB.js} +12 -12
  168. package/dist/chunk-SPMD7UZO.js +19 -0
  169. package/dist/{chunk-5DZN6ZDE.js → chunk-SSM6P43S.js} +9 -9
  170. package/dist/{chunk-WTTXLWMK.js → chunk-T74FGTLW.js} +8 -8
  171. package/dist/{chunk-WMS2DCRV.js → chunk-TTQJQKCE.js} +10 -10
  172. package/dist/{chunk-WDZUPDNC.js → chunk-TZXAW32T.js} +1 -1
  173. package/dist/{chunk-IEHTZR5M.js → chunk-UBQUXUD2.js} +5 -5
  174. package/dist/{chunk-ZGQ6H2PU.js → chunk-UCAMOW53.js} +4 -4
  175. package/dist/{chunk-WZMZ3N5B.js → chunk-UEWB6IOD.js} +2 -2
  176. package/dist/{chunk-EOYGTVNS.js → chunk-UHGAT5MH.js} +5 -5
  177. package/dist/{chunk-BAT5B2LE.js → chunk-UOGF37Z4.js} +1 -1
  178. package/dist/{chunk-GPCTDEXQ.js → chunk-UTITWGVW.js} +1 -1
  179. package/dist/{chunk-A2SP4IZV.js → chunk-UVMM7AYO.js} +1 -1
  180. package/dist/{chunk-HYNUJY6W.js → chunk-UZTKBA7Z.js} +12 -12
  181. package/dist/{chunk-BXTSBORU.js → chunk-VEATEVMV.js} +1 -1
  182. package/dist/{chunk-DXFG4H4V.js → chunk-VIDT4JLR.js} +1 -1
  183. package/dist/{chunk-ZM2NOLT6.js → chunk-VU5P4ZM5.js} +12 -12
  184. package/dist/{chunk-OYTRB237.js → chunk-VVDK7XPH.js} +1 -1
  185. package/dist/{chunk-TURECNEK.js → chunk-VZ52KKNA.js} +6 -6
  186. package/dist/{chunk-ZDDYTXPK.js → chunk-WEEQDPU3.js} +6 -6
  187. package/dist/{chunk-YKEB576T.js → chunk-WOOKUEED.js} +1 -1
  188. package/dist/{chunk-2V3LKX7G.js → chunk-WZJPASST.js} +6 -6
  189. package/dist/{chunk-2CPYXRR2.js → chunk-XOH6QERF.js} +7 -7
  190. package/dist/{chunk-EMUZJMR3.js → chunk-Y4RHGLXB.js} +1 -1
  191. package/dist/{chunk-FRNSCVPN.js → chunk-YOXR3VKO.js} +1 -1
  192. package/dist/{chunk-LPTN55KO.js → chunk-YQLKZ5UQ.js} +1 -1
  193. package/dist/chunk-YXSGMPNW.js +1 -0
  194. package/dist/{chunk-CFFT5OCV.js → chunk-ZA2RBNRA.js} +1 -1
  195. package/dist/{chunk-QRZBLNOQ.js → chunk-ZHS2VQU7.js} +3 -3
  196. package/dist/{chunk-RDTKMSEK.js → chunk-ZKBGUDNB.js} +1 -1
  197. package/dist/{chunk-GNWK77U7.js → chunk-ZMC25LRC.js} +1 -1
  198. package/dist/data/DataTable.js +1 -1
  199. package/dist/data/EntityList.js +1 -1
  200. package/dist/data/Kanban.js +1 -1
  201. package/dist/data/ListFooter.js +1 -1
  202. package/dist/data/ListLoadError.js +1 -1
  203. package/dist/data/Pagination.js +1 -1
  204. package/dist/data/ResizableTable.js +1 -1
  205. package/dist/file-intake/index.js +1 -1
  206. package/dist/format/index.js +1 -1
  207. package/dist/forms/BorderInput.js +1 -1
  208. package/dist/forms/BrandAssetEditor.js +1 -1
  209. package/dist/forms/Calendar.js +1 -1
  210. package/dist/forms/ColorPicker.js +1 -1
  211. package/dist/forms/ComposerAttachments.js +1 -1
  212. package/dist/forms/CornersInput.js +1 -1
  213. package/dist/forms/DatePicker.js +1 -1
  214. package/dist/forms/DateRangePicker.js +1 -1
  215. package/dist/forms/DateTimePicker.js +1 -1
  216. package/dist/forms/DisplayChips.js +1 -1
  217. package/dist/forms/FilePicker.js +1 -1
  218. package/dist/forms/FormErrorSummary.js +1 -1
  219. package/dist/forms/IconPicker.js +1 -1
  220. package/dist/forms/ImageFocusPoint.js +1 -1
  221. package/dist/forms/Input.js +1 -1
  222. package/dist/forms/InputNumber.js +1 -1
  223. package/dist/forms/LinkPicker.js +1 -1
  224. package/dist/forms/MediaLibrary.js +1 -1
  225. package/dist/forms/MediaUploadField.js +1 -1
  226. package/dist/forms/MediaUploadGrid.js +1 -1
  227. package/dist/forms/MediaUsedInList.js +1 -1
  228. package/dist/forms/NumericKeypad.js +1 -1
  229. package/dist/forms/PositionInput.js +1 -1
  230. package/dist/forms/RenameField.js +1 -1
  231. package/dist/forms/Select.js +1 -1
  232. package/dist/forms/SidesInput.js +1 -1
  233. package/dist/forms/Slider.js +1 -1
  234. package/dist/forms/Snippet.js +1 -1
  235. package/dist/forms/SplitButton.js +1 -1
  236. package/dist/forms/TagInput.js +1 -1
  237. package/dist/forms/TextToolbar.js +1 -1
  238. package/dist/forms/TimePicker.js +1 -1
  239. package/dist/forms/WidthsBar.js +1 -1
  240. package/dist/forms/mediaLibraryMenu.js +1 -1
  241. package/dist/forms/mediaMoveItems.js +1 -1
  242. package/dist/forms/textAlign.js +1 -1
  243. package/dist/forms/useFileIntake.js +1 -1
  244. package/dist/icons/index.js +1 -1
  245. package/dist/index.js +518 -518
  246. package/dist/locales/zh-Hans.js +1 -1
  247. package/dist/map/index.js +3 -3
  248. package/dist/markdown/index.js +1 -1
  249. package/dist/page-tabs/index.js +5 -5
  250. package/dist/pdf/index.js +1 -1
  251. package/dist/shell/Accordion.js +1 -1
  252. package/dist/shell/AppUpdateBanner.js +1 -1
  253. package/dist/shell/Avatar.js +1 -1
  254. package/dist/shell/Banner.js +1 -1
  255. package/dist/shell/Breadcrumbs.js +1 -1
  256. package/dist/shell/BudgetBar.js +1 -1
  257. package/dist/shell/Card.js +1 -1
  258. package/dist/shell/ColoredBadge.js +1 -1
  259. package/dist/shell/ConfirmDialog.js +1 -1
  260. package/dist/shell/ContainerFillChart.js +1 -1
  261. package/dist/shell/ContextMenu.js +1 -1
  262. package/dist/shell/CountBadge.js +1 -1
  263. package/dist/shell/Dialog.js +1 -1
  264. package/dist/shell/Drawer.js +1 -1
  265. package/dist/shell/DropdownMenu.js +1 -1
  266. package/dist/shell/EditableGrid.js +1 -1
  267. package/dist/shell/EmptyState.js +1 -1
  268. package/dist/shell/GlobalSearch.js +1 -1
  269. package/dist/shell/HelpCenter.js +1 -1
  270. package/dist/shell/IconRail.js +1 -1
  271. package/dist/shell/ImageLightbox.js +1 -1
  272. package/dist/shell/ItemCount.js +1 -1
  273. package/dist/shell/LanguageSelect.js +1 -1
  274. package/dist/shell/Markdown.js +1 -1
  275. package/dist/shell/MetricBar.js +1 -1
  276. package/dist/shell/MetricBarLegend.js +1 -1
  277. package/dist/shell/MilestoneTimeline.js +1 -1
  278. package/dist/shell/PageHeader.js +1 -1
  279. package/dist/shell/PopupMenu.js +1 -1
  280. package/dist/shell/ProductionTimeline.js +1 -1
  281. package/dist/shell/ResizeHandle.js +1 -1
  282. package/dist/shell/Result.js +1 -1
  283. package/dist/shell/SearchableSelect.js +1 -1
  284. package/dist/shell/SettingReset.js +1 -1
  285. package/dist/shell/SettingRow.js +1 -1
  286. package/dist/shell/SidebarLayout.js +1 -1
  287. package/dist/shell/SidebarNav.js +1 -1
  288. package/dist/shell/SortableList.js +1 -1
  289. package/dist/shell/Statistic.js +1 -1
  290. package/dist/shell/StepChain.js +1 -1
  291. package/dist/shell/Stepper.js +1 -1
  292. package/dist/shell/TimeAgo.js +1 -1
  293. package/dist/shell/TimelineTrack.js +1 -1
  294. package/dist/shell/TopNav.js +1 -1
  295. package/dist/shell/TransferProgress.js +1 -1
  296. package/dist/shell/Tree.js +1 -1
  297. package/dist/shell/discardGuard.js +1 -1
  298. package/dist/shell/language.js +1 -1
  299. package/dist/shell/strings.d.ts +134 -0
  300. package/dist/shell/strings.js +1 -1
  301. package/dist/shell/toast.js +1 -1
  302. package/dist/telemetry/index.js +1 -1
  303. package/dist/templates/AuthScreen.js +1 -1
  304. package/dist/templates/ChatTemplate.js +1 -1
  305. package/dist/templates/CheckoutTemplate.js +1 -1
  306. package/dist/templates/DashboardTemplate.js +1 -1
  307. package/dist/templates/DataTablePage.js +1 -1
  308. package/dist/templates/EmailTemplate.js +1 -1
  309. package/dist/templates/ErrorBoundary.js +1 -1
  310. package/dist/templates/ErrorPage.js +1 -1
  311. package/dist/templates/FormLayoutPage.js +1 -1
  312. package/dist/templates/GalleryTemplate.js +1 -1
  313. package/dist/ui/index.js +1 -1
  314. package/dist/version.js +1 -1
  315. package/package.json +1 -6
  316. package/dist/Calculator-ELI5Z3XW.js +0 -29
  317. package/dist/Documents-CE7YKNJM.js +0 -52
  318. package/dist/Files-ARRIIZZ6.js +0 -88
  319. package/dist/PdfViewer-ZRDIG2L2.js +0 -1
  320. package/dist/PomodoroTimer-ZJ432VPC.js +0 -91
  321. package/dist/Sidebar-ETWHTFNP.js +0 -44
  322. package/dist/chunk-4LQRLYB4.js +0 -22
  323. package/dist/chunk-5CPRZ27M.js +0 -28
  324. package/dist/chunk-5XVXYBIQ.js +0 -8
  325. package/dist/chunk-A4FCXZSY.js +0 -8
  326. package/dist/chunk-ABKCC7VB.js +0 -9
  327. package/dist/chunk-ABKFALDE.js +0 -8
  328. package/dist/chunk-FBACFP4U.js +0 -4
  329. package/dist/chunk-FSRHVB4A.js +0 -9
  330. package/dist/chunk-G2BZ7NCM.js +0 -19
  331. package/dist/chunk-IH2KC3NQ.js +0 -5
  332. package/dist/chunk-LCHU3ZG4.js +0 -9
  333. package/dist/chunk-N3OJ47VK.js +0 -1
  334. package/dist/chunk-N7645DNN.js +0 -6
  335. package/dist/chunk-PEVWAJUR.js +0 -7
  336. package/dist/chunk-UGOSZLCD.js +0 -14
  337. package/dist/chunk-WB6E6CSH.js +0 -14
  338. package/dist/chunk-WQGBYFS3.js +0 -8
  339. package/dist/chunk-Y2LWUBXX.js +0 -2
  340. package/dist/chunk-ZQJTLJUF.js +0 -2
  341. package/dist/chunk-ZVEDA462.js +0 -3
@@ -1 +1 @@
1
- import{formatPlain as e,formatGrouped as o,formatFixed as t,formatPercent as a}from"../chunk-C3QOHMR6.js";var i={ABS:"绝对值",AND:"全部为真时返回真",AVERAGE:"数字的平均值",AVERAGEIF:"满足条件的平均值",AVERAGEIFS:"满足多个条件的平均值",CEILING:"向上舍入到倍数","CEILING.MATH":"向上舍入到倍数",CHOOSE:"按位置选择",COLUMN:"列号",COLUMNS:"列数",CONCAT:"连接文本",CONCATENATE:"连接文本",COS:"余弦",COUNT:"统计数字个数",COUNTA:"统计非空单元格",COUNTBLANK:"统计空单元格",COUNTIF:"统计满足条件的个数",COUNTIFS:"统计满足多个条件的个数",DATE:"生成日期",DATEDIF:"两个日期的间隔",DAY:"月份中的第几天",DAYS:"两个日期相差的天数",EDATE:"相隔若干个月的日期",EOMONTH:"月份的最后一天",EXACT:"文本完全相同",EXP:"e 的幂",FIND:"文本位置(区分大小写)",FLOOR:"向下舍入到倍数","FLOOR.MATH":"向下舍入到倍数",FV:"未来值",HLOOKUP:"在首行中查找",HOUR:"时间中的小时",IF:"二选一返回值",IFERROR:"出错时的备用值",IFNA:"#N/A 时的备用值",IFS:"第一个满足的条件",INDEX:"指定位置的单元格",INT:"向下取整",ISBLANK:"为空时返回真",ISERROR:"为错误时返回真",ISLOGICAL:"为逻辑值时返回真",ISNA:"为 #N/A 时返回真",ISNUMBER:"为数字时返回真",ISTEXT:"为文本时返回真",LARGE:"第 k 大的值",LEFT:"从开头截取文本",LEN:"文本长度",LN:"自然对数",LOG:"对数",LOG10:"以 10 为底的对数",LOWER:"转为小写",MATCH:"值的位置",MAX:"最大值",MEDIAN:"中位数",MID:"从中间截取文本",MIN:"最小值",MINUTE:"时间中的分钟",MOD:"余数",MODE:"出现最多的数字","MODE.SNGL":"出现最多的数字",MONTH:"日期中的月份",N:"转为数字",NA:"#N/A 错误",NETWORKDAYS:"两个日期之间的工作日",NOT:"取反",NOW:"当前日期和时间",NPV:"净现值",OR:"任一为真时返回真",PI:"圆周率",PMT:"贷款每期还款额",POWER:"幂运算",PRODUCT:"数字相乘",PROPER:"每个单词首字母大写",PV:"现值",RAND:"0 到 1 之间的随机数",RANDBETWEEN:"随机整数",RANK:"在列表中的排名","RANK.EQ":"在列表中的排名",REPLACE:"按位置替换",REPT:"重复文本",RIGHT:"从末尾截取文本",ROUND:"四舍五入",ROUNDDOWN:"向零舍入",ROUNDUP:"远离零舍入",ROW:"行号",ROWS:"行数",SEARCH:"文本位置(不区分大小写)",SECOND:"时间中的秒",SIGN:"数字的符号",SIN:"正弦",SMALL:"第 k 小的值",SQRT:"平方根",STDEV:"样本标准差","STDEV.P":"总体标准差","STDEV.S":"样本标准差",STDEVP:"总体标准差",SUBSTITUTE:"替换文本",SUM:"数字求和",SUMIF:"对满足条件的值求和",SUMIFS:"对满足多个条件的值求和",SUMPRODUCT:"相乘后求和",SWITCH:"按值选择结果",TAN:"正切",TEXT:"数字转为带格式的文本",TEXTJOIN:"用分隔符连接",TIME:"生成时间",TODAY:"今天的日期",TRIM:"删除多余空格",TRUNC:"截去小数",UPPER:"转为大写",VALUE:"文本转为数字",VAR:"样本方差","VAR.P":"总体方差","VAR.S":"样本方差",VARP:"总体方差",VLOOKUP:"在首列中查找",WEEKDAY:"星期几",XLOOKUP:"在任意列中查找",XOR:"奇数个为真时返回真",YEAR:"日期中的年份"},n=[],r=/^[A-Za-z0-9]/,l=/[A-Za-z0-9]$/,s=e=>r.test(e)?` ${e}`:e,d=e=>l.test(e)?`${e} `:e,c=e=>d(s(e));function p(n="zh-Hans"){const r=o=>e(o,n),l=e=>o(e,n),p=(e,o)=>t(e,o,n),$=(e,o)=>a(e,o,n);return{window:{minimize:"最小化",restore:"还原",maximize:"最大化",windowed:"向下还原",pinOnTop:"置顶",unpin:"取消置顶",close:"关闭",edit:"编辑",discard:"放弃修改",windowSuffix:"窗口",prev:"上一条",next:"下一条",snapLayouts:"贴靠布局",snapLeft:"贴靠到左半屏",snapRight:"贴靠到右半屏",snapTopLeft:"贴靠到左上角",snapTopRight:"贴靠到右上角",snapBottomLeft:"贴靠到左下角",snapBottomRight:"贴靠到右下角"},taskbar:{closeWindow:"关闭窗口",offscreenHint:"此窗口位于屏幕之外,点击即可移回",offscreenDot:"位于屏幕之外,点击即可移回此窗口",expose:"窗口概览:以缩略图显示所有打开的窗口",addToDesktop:"添加到桌面",removeFromDesktop:"从桌面移除",minimizeAllWindows:"全部最小化",restoreAllWindows:"全部还原",closeAllWindows:"全部关闭"},logout:{goodbye:"再见",seeYou:"下次再见"},about:{aboutPrefix:"关于",thisApp:"本应用",openSourceLicenses:"开源许可",whatsNew:"更新内容",noChangelog:"暂无更新日志。"},table:{empty:"暂无数据",loading:"加载中",selectAll:"选择全部行",selectRow:"选择此行"},select:{none:"— 无 —",noMatches:"无匹配项",allSelected:"已选择全部选项",clear:"清除所选",clearAll:"全部清除",changed:"已更改",selectedCount:e=>`已选 ${r(e)} 项`,remove:"移除",removeItem:e=>`移除${s(e)}`},notifications:{title:"通知",markAllRead:"全部标为已读",dnd:"勿扰模式",dndOn:"勿扰模式已开启",caughtUp:"全部已读",empty:"暂无通知",viewAll:"查看全部通知",byActor:e=>`由 ${e}`,cardLabel:"通知",dismiss:"关闭通知"},form:{errorSummaryTitle:"存在以下问题"},help:{title:"帮助",searchPlaceholder:"搜索帮助…",empty:"暂无帮助文章。",noResults:"没有符合搜索条件的文章。",loading:"加载中",pickArticle:"请从左侧选择一篇帮助文章。",noBody:"这篇文章暂无内容。",draft:"草稿",newArticle:"+ 新建",edit:"编辑"},update:{available:"有新版本可用。",refreshNow:"立即刷新"},pageTabs:{label:"已打开的页面",close:"关闭",closeTab:e=>`关闭${s(e)}`,favorite:"已收藏",closeOthers:"关闭其他标签页",closeRight:"关闭右侧标签页",closeAll:"关闭全部标签页",unsaved:"有未保存的更改",copy:e=>`复制${s(e)}`,copied:"已复制",tabMenu:"窗口菜单",groupToggle:(e,o)=>`${e}:${r(o)} 个标签页`,discardTitle:"放弃未保存的更改?",discardOne:"此页面有尚未保存的更改。仍要关闭吗?",discardMany:"个页面有尚未保存的更改。仍要关闭吗?",discardCount:e=>`有 ${r(e)} 个页面的更改尚未保存。仍要关闭吗?`,discardConfirm:"放弃并关闭",keepEditing:"继续编辑"},dialog:{close:"关闭",cancel:"取消",ok:"确定",confirmTitle:"确认",destructiveTitle:"确认操作",destructiveCancel:"返回",destructiveConfirm:"删除",typeToConfirm:e=>`请输入 ${e} 以确认:`,promptTitle:"请输入内容",discardTitle:"放弃更改?",discardMessage:e=>e?`“${e}”有尚未保存的更改。确定要关闭吗?所有更改都将丢失。`:"有尚未保存的更改。确定要关闭吗?所有更改都将丢失。",discardConfirm:"放弃",keepEditing:"继续编辑"},calendar:{previousMonth:"上个月",nextMonth:"下个月",previousYear:"上一年",nextYear:"下一年",previousYears:"上一组年份",nextYears:"下一组年份",monthPanel:"选择月份",yearPanel:"选择年份",chooseMonth:e=>`选择月份,当前为${s(e)}`,chooseYear:e=>`选择年份,当前为 ${e} 年`},datePicker:{placeholder:"选择日期",dialog:"选择日期",clear:"清除",today:"今天",required:"必填"},dateRange:{placeholder:"日期范围",clearRange:"清除日期范围",dialog:"日期范围",from:"从",to:"至",start:"开始日期",end:"结束日期",fromOnly:e=>`自 ${e} 起`,toOnly:e=>`截至 ${e}`,range:(e,o)=>`${e} 至 ${o}`,required:"必填",last2Weeks:"过去 2 周",lastMonth:"上个月",last3Months:"过去 3 个月",last6Months:"过去 6 个月",last12Months:"过去 12 个月",lastHeading:"过去",last2WeeksShort:"2 周",lastMonthShort:"上个月",last3MonthsShort:"3 个月",last6MonthsShort:"6 个月",last12MonthsShort:"12 个月",custom:"自定义",clear:"清除",cancel:"取消",apply:"应用"},pagination:{label:"分页",first:"第一页",previous:"上一页",next:"下一页",last:"最后一页"},list:{selected:e=>`已选 ${r(e)} 项`,selectedNotShown:(e,o)=>`已选 ${r(e)} 项,${r(o)} 项未显示`,allLoaded:(e,o)=>`已加载全部 ${l(e)} ${o}`,count:(e,o)=>`共 ${l(e)} ${o}`,loadedOf:(e,o,t)=>`已加载 ${l(e)} / ${l(o)} ${t}`,loadingMore:"正在加载更多",loadError:"无法加载此列表",loadErrorMessage:"获取这些记录时出错。请检查网络连接后重试。",retry:"重试"},kanban:{loading:"加载中",empty:"暂无条目。",dropHere:"拖放到此处",addItem:"添加条目"},files:{attach:"添加附件",drop:"松开即可添加附件",remove:e=>`移除${s(e)}`,chooseMany:"选择文件",chooseOne:"选择文件",dragMany:"或拖放到此处",dragOne:"或拖放到此处",notAccepted:(e,o)=>`${d(e)}的文件类型不受支持${o?`(${o})`:""}`,tooLarge:(e,o,t)=>`${d(e)}大小为 ${o},上限为 ${t}`,tooMany:(e,o)=>`未添加${s(e)}:最多只能添加 ${r(o)} 个文件`,bytes:e=>`${r(e)} B`,kilobytes:e=>`${r(e)} KB`,megabytes:e=>`${p(e,1)} MB`},media:{uploadImage:"上传图片",uploadVideo:"上传视频",uploadFile:"上传文件",upload:"上传媒体",cta:"从媒体库选择或上传",replace:"替换",remove:"移除",uploading:"上传中",choosing:"选择中",pickFailed:"无法打开媒体库,请重试。",cover:"封面",add:"添加",addMedia:"添加媒体",empty:"暂无媒体。",removeItem:e=>`移除${s(e)}`,reorder:(e,o,t)=>`${e},第 ${r(o)} 项,共 ${r(t)} 项。使用方向键调整顺序。`,image:"图片",video:"视频",changeImage:"更换图片",changeVideo:"更换视频",focus:"图片焦点",usedIn:e=>`用于 ${r(e)} 处`,notUsed:"未被使用",moveTo:(e,o)=>`将 ${r(e)} ${"image"===o?"张图片":"video"===o?"个视频":"个文件"}移动到`,moveNowhere:"没有可以移动到的文件夹",moveToMenu:"移动到",files:"文件"},mediaLibrary:{products:"产品",allFiles:"全部文件",trash:"回收站",readOnlyBadge:"只读",folders:"文件夹",readOnly:"只读。请在 产品 > 设计 > 媒体 中编辑这些图片。",editedAtHq:e=>`由总部(${e})编辑。`,readOnlyMenu:"只读 · 在 产品 > 设计 > 媒体 中编辑",noProductFolder:"产品文件夹按品牌 > 设计 > 颜色自动生成,不能在这里新建文件夹。",noDropProducts:"只读。不能把文件移动或上传到产品中。",newFolder:"新建文件夹",newSubfolder:"新建子文件夹",folderName:"文件夹名称",fileName:"文件名",folderActions:"文件夹操作",upload:"上传",rename:"重命名",moveTo:"移动到",moveToTrash:"移到回收站",deleteFolder:"删除文件夹",folderNotEmpty:"只能删除空文件夹。请先移走或删除里面的内容。",moveFilesToTrash:e=>`将 ${r(e)} 个文件移到回收站`,filesSelected:e=>`已选择 ${r(e)} 个文件`,fileCount:e=>`${r(e)} 个文件`,selected:e=>`已选择 ${r(e)} 项`,clearSelection:"清除选择",selectAll:"全选",replace:"替换",cropEdit:"裁剪和编辑",copyUrl:"复制链接",fileUrl:"文件链接",urlLabel:"链接",openOriginal:"打开原图",openInDesign:"在设计中打开",restore:"恢复",deleteForever:"永久删除",emptyTrash:"清空回收站",search:"搜索文件名",searchProducts:"搜索设计、颜色、零件号",mediaType:"媒体类型",allTypes:"全部类型",images:"图片",videos:"视频",use:"用途",anyUse:"任何用途",emailOnly:"仅邮件",websiteOnly:"仅网站",notUsed:"未使用",sort:"排序",newest:"最新",byName:"名称",bySize:"大小",view:"视图",grid:"网格",list:"列表",used:e=>`使用 ${r(e)} 处`,email:"邮件",private:"私有",daysAgo:e=>`${r(e)} 天前`,details:"详情",name:"名称",type:"类型",size:"大小",resolution:"分辨率",addedBy:"添加人",folder:"文件夹",usedIn:"使用位置",places:e=>`${r(e)} 处`,design:"设计",finish:"颜色",angleLug:"角度 · 孔数",owner:"所有者",emptyProducts:"这里还没有图片",trashEmpty:"回收站是空的。",noMatches:"没有匹配的文件。",emptyFolder:"这个文件夹里还没有文件。",oneChosen:e=>`已选择 1 项 · ${e}`,noneChosen:"未选择",cancel:"取消",chooseImage:"选择图片",privateNoPick:"私有文件不能在这里使用。",alreadyHere:"文件已经在这里",folderAlreadyHere:"文件夹已经在这里",notIntoItself:"文件夹不能放进它自己里面"},lightbox:{label:"图片预览",close:"关闭预览",previous:"上一张",next:"下一张",counter:(e,o)=>`${r(e)} / ${r(o)}`,openOriginal:"打开原图",openFile:"打开文件"},brandAsset:{save:(e,o)=>`保存${s(o)}`,remove:(e,o)=>`移除${s(o)}`,discard:"放弃更改",saveFailed:(e,o)=>`无法保存${s(o)}。`,removeFailed:(e,o)=>`无法移除${s(o)}。`,region:(e,o)=>`${d(o)}的${e}`,usedFor:e=>`用于${s(e)}。`,previews:e=>`${d(e)}预览`,preview:"预览",alt:(e,o)=>`${d(e)}${o}`},copy:{copy:"复制",copyLabel:e=>`复制${s(e)}`,copied:"已复制",copyValue:e=>`复制${s(e)}`,copiedValue:"已复制!",copiedLabel:e=>`已复制${s(e)}`,failed:"无法复制到剪贴板"},keypad:{backspace:"退格",enter:"确认"},banner:{dismiss:"关闭"},transfer:{uploading:"上传中",error:"出错",retry:"重试",dismiss:"关闭",cancel:"取消",cancelVerb:e=>`取消${s(String(e).replace(/中$/,""))}`},count:{items:e=>`${r(e)} 项`,tabs:e=>`${r(e)} 个标签页`,windows:e=>`${r(e)} 个窗口`},badge:{remove:"移除",removeItem:e=>`移除${s(e)}`},breadcrumbs:{label:"面包屑导航",hidden:"已隐藏的层级"},emptyState:{message:"暂无内容。"},errors:{notFound:"找不到页面",notFoundBody:"您访问的页面不存在或已被移动。",forbidden:"访问被拒绝",forbiddenBody:"您没有查看此页面的权限。",noAccess:"您无权访问此内容",serverError:"出错了",serverErrorBody:"发生意外错误,请重试。",retry:"重试",details:"错误详情"},search:{placeholder:"搜索…",escBadge:"ESC",searching:"搜索中",noResults:"未找到结果。",minChars:e=>`请至少输入 ${r(e)} 个字符再搜索…`,navigate:"切换",open:"打开",close:"关闭",enterKey:"Enter",escKey:"Esc",recent:"最近",favorites:"收藏",actions:"操作",listLabel:"搜索结果",groupCount:(e,o)=>`${r(e)}${o?"+":""}`,groupLabel:(e,o,t)=>`${e},${r(o)}${t?"+":""} 项`,seeAll:e=>`查看全部${s(e)}`,searchFailed:"搜索失败,请检查网络连接后重试。",partialFailure:"部分结果未能加载。",tabKey:"Tab",nextGroup:"下一组"},grid:{selectAll:"全选",insertRowAbove:"在上方插入行",insertRowBelow:"在下方插入行",deleteRow:e=>`删除第 ${e} 行`,insertColumnLeft:"在左侧插入列",insertColumnRight:"在右侧插入列",deleteColumn:e=>`删除${c(e)}列`,resize:"拖动调整大小 · 双击自动适应",fill:"拖动填充"},sidebar:{resize:"拖动调整大小 · 双击重置",sections:"栏目",closeSections:"关闭栏目"},resizeHandle:{label:"调整面板大小",hint:"拖动调整大小 · 双击重置"},number:{increase:"增加",decrease:"减少"},slider:{value:e=>`${d(e)}数值`},accordion:{changed:e=>`已更改 ${e} 项`},settingView:{auto:"自动",edited:"已在此视图中更改",resetName:e=>`重置${s(e)}`,inheritName:e=>`${d(e)}继承上级布局`,inheritParentLayout:"继承上级布局",backToDefault:"恢复为网站默认值",backToAuto:"恢复为自动",backTo:e=>`恢复为${s(e)}`,tip:(e,o)=>`${e}(${o})`,viewDesktop:"电脑",viewTablet:"平板",viewPhone:"手机"},displayChips:{shown:"显示中",hidden:"已隐藏",shownHint:"显示中 · 点击隐藏",hiddenHint:"已隐藏 · 点击显示"},corners:{radius:"圆角半径",unit:"px",radiusMark:"R"},iconPicker:{button:(e,o)=>`${e}:${o}`},iconNames:{none:"无","arrow-right":"箭头","arrow-long-right":"长箭头","arrow-up-right":"右上箭头","chevron-right":"尖括号",external:"外部链接",cart:"购物车",bag:"购物袋",tag:"标签",email:"邮件",location:"位置",play:"播放",download:"下载",search:"搜索",car:"汽车",dot:"圆点",cross:"叉",slash:"斜线",triangle:"三角"},widths:{column:e=>`第 ${e} 栏`,divider:(e,o)=>`第 ${e} 栏和第 ${o} 栏之间的分隔线`,dividerValue:(e,o,t,a)=>`第 ${e} 栏 ${$(o,0)},第 ${t} 栏 ${$(a,0)}`,dragHint:"拖动来调整栏宽",hint:(e,o)=>`输入宽度,或拖动分隔线。每栏不少于 ${$(o,0)}。`,equal:"等宽"},color:{swatch:(e,o)=>`${e}:${o}`,none:"无",panel:e=>`${d(e)}选择器`,square:"饱和度和亮度",squareValue:(e,o)=>`饱和度 ${$(e,0)},亮度 ${$(o,0)}`,hue:"色相",opacity:e=>`${d(e)}不透明度`,hex:e=>`${d(e)}十六进制色值`,presets:"预设",clear:"无颜色"},imageFocus:{picture:(e,o)=>`${e}:${o}`,hint:"拖动图片上的圆点,或用方向键移动。按住 Shift 可移动更多。",noImage:"请先选择图片,目前还没有可设置焦点的图片。"},link:{linkType:"链接类型",address:"链接地址",addressPlaceholder:"链接(本站页面 /… 或 https://…)",unsafe:"请使用网址(https://…)、本站页面(/…)、mailto: 或 tel:。",unavailable:e=>`${e}(不可用)`,filter:"筛选",noFilter:"不筛选(全部产品)",value:"值",filterHint:"筛选项来自产品类型。只列出本站目录中有的值。",title:"链接",apply:"应用",cancel:"取消",remove:"移除",addLink:"添加链接",text:e=>`${d(e)}文字`,linkOf:(e,o)=>`${d(e)}链接:${o||"无"}`},textToolbar:{formatting:"格式",bold:"粗体",italic:"斜体",underline:"下划线",strike:"删除线",color:"颜色",link:"链接",sup:"上标",sub:"下标",code:"代码",alignment:"对齐",alignLeft:"左对齐",alignCenter:"居中",alignRight:"右对齐",alignJustify:"两端对齐",bullet:"项目符号列表",number:"编号列表",quote:"引用",letterCase:"大小写",caseNone:"常规",caseUpper:"大写",caseLower:"小写",clear:"清除格式"},tree:{empty:"暂无内容",dropHere:"拖放到此处",dragHint:"拖动以移动",moveHint:"按 Alt+向上键或 Alt+向下键可移动此项",insertHere:"在此处插入"},layout:{desktop:"桌面",sidebar:"侧边栏",switchToDesktop:"切换到桌面模式",switchToSidebar:"切换到侧边栏模式",collapseSidebar:"收起侧边栏",expandSidebar:"展开侧边栏",goHome:"返回主页",resizeSidebar:"调整侧边栏宽度",search:"搜索…",navLabel:"主菜单",openWindows:"已打开的窗口",favoriteApps:"收藏的应用",openFavorite:e=>`打开${s(e)}`,removeFavorite:"从收藏中移除",pageResult:"页面",accountMenu:e=>`${d(e)}的账户菜单`,profile:"个人资料",notifications:"通知",reportIssue:"建议与问题反馈",signOut:"退出登录",signOutTitle:"退出登录",signOutMessage:"您确定要退出登录吗?重新登录后将重新打开所有窗口。",openMenu:"打开菜单",closeMenu:"关闭菜单",openTabs:"已打开的标签页",getTheApp:e=>`获取 ${e} 应用`,openApp:"打开",dismiss:"不再显示",deviceUsesSidebar:"此设备始终使用侧边栏布局。在电脑上登录时,您的选择仍然有效。",largerScreensOnly:"仅限较大屏幕",usedOnThisDevice:"此设备正在使用",back:"返回"},markdown:{screenshot:"截图"},severity:{success:"正常",warning:"警告",danger:"严重",unrecognised:e=>`未识别的严重级别${s(e)}`},meter:{noData:"无数据",warningAt:e=>`警告 ≥ ${r(e)}`,criticalAt:e=>`严重 ≥ ${r(e)}`,legendWarning:"警告",legendCritical:"严重",noReading:"无读数",noBudget:"无预算",ofBudget:e=>`预算的 ${e}`,budget:"预算",pace:"此刻应达到",hoursMinutes:(e,o)=>`${r(e)} 小时 ${r(o)} 分`,minutesSeconds:(e,o)=>`${r(e)} 分 ${r(o)} 秒`,seconds:e=>`${r(e)} 秒`},charts:{showTable:"以表格显示数据",loading:"正在加载图表数据",noData:"此时间段内无数据。",windowStart:"时间段起点",windowEnd:"时间段终点",window:(e,o,t)=>`时间段:正在显示 ${e} 至 ${o},共 ${r(t)} 个区间`,overIntervals:(e,o)=>`${e.join("、")},共 ${r(o)} 个区间`,acrossCategories:(e,o)=>`${e.join("、")},共 ${r(o)} 个类别`,acrossMeasures:(e,o)=>`${e.join("、")},共 ${r(o)} 项指标`,breakdown:(e,o)=>`${d(e)}的构成,共 ${r(o)} 个部分`,funnel:(e,o,t)=>`漏斗图,共 ${r(e)} 个阶段,从${c(o)}到${s(t)}`,radialTrack:e=>`${r(e)} 个类别,以同心环占比显示`,radialCycle:e=>`${r(e)} 个类别,按环形周期排列`,tableFrom:"来源",tableTo:"去向",tableItem:"项目",tableLevel:"层级",tableSeries:"系列",inBucket:e=>`此区间内共 ${e}`,zoomRange:(e,o,t)=>`${e} – ${o} · ${r(t)} 个区间`,zoomClear:"清除",zoomLevel:(e,o)=>`平均 ${e} · 峰值 ${o}`,inCategory:e=>`此类别内共 ${e}`,value:"数值",share:"占比",count:"数量",flow:"流量",totalFlow:"总流量",throughput:"通过量",open:"开盘",high:"最高",low:"最低",close:"收盘",maximum:"最大值",q3:"Q3",median:"中位数",q1:"Q1",minimum:"最小值",distribution:"分布",fiveNumber:(e,o)=>`${e}:${r(o)} 个类别的五数概括`,outliers:e=>`${r(e)} 个离群值超出须线范围`,price:"价格",ohlc:(e,o)=>`${e}:${r(o)} 个周期的开盘、最高、最低和收盘`,closedAbove:"收盘高于开盘",closedBelow:"收盘低于开盘",noFlows:"没有可绘制的流量。",chord:e=>`${r(e)} 个参与方之间的流量`,chordFolded:e=>`另有 ${r(e)} 个参与方归入"其他"`,noStages:"没有可绘制的阶段。",ofFirstStage:"占首阶段",droppedHere:"此处流失",intensity:"强度",noActivity:"此时间段内无活动。",heatmap:(e,o,t)=>`${e},${r(o)} 行 ${r(t)} 列`,countAxis:"数量",histogram:(e,o,t)=>`${e}:${r(t)} 个观测值,分为 ${r(o)} 组`,observations:"观测值",notEnough:"符合条件的请求不足,无法判断。",objectiveMet:e=>`已达到目标 ${e}`,objectiveMissed:e=>`未达到目标 ${e}`,nothingToPlot:"没有可绘制的数据。",nothingToCompare:"没有可比较的数据。",other:"其他",nothingToBreakDown:"没有可细分的数据。",range:"范围",rangeLabel:(e,o)=>`${e}:${r(o)} 个类别的最低值和最高值`,nothingToRank:"此时间段内没有可排名的数据。",emphasised:"(重点)",sankey:(e,o)=>`${r(e)} 个节点之间的流量,共 ${r(o)} 条连接`,noObservations:"此时间段内无观测值。",xAxis:"x",yAxis:"y",size:"大小",scatter:(e,o,t)=>`${e.join("、")}:${d(o)}与${c(t)}的关系`,outsideRange:e=>`${r(e)} 个点超出显示范围`,waterfall:(e,o,t)=>`瀑布图,共 ${r(e)} 步,从${c(o)}到${s(t)}`,balance:"余额",increase:"增加",decrease:"减少",runningTotal:"累计",sunburst:(e,o)=>`${d(e)}的层级构成,共 ${r(o)} 层`,treemap:e=>`矩形树图,共 ${r(e)} 项`,trendUp:"上升",trendDown:"下降",trendFlat:"持平"},timeline:{days:e=>`${l(e)} 天`,daysToToday:e=>`距今 ${l(e)} 天`,notReached:"尚未达成",next:"下一项",more:e=>`还有 ${r(e)} 项`,today:"今天",todayTitle:e=>`今天:${e}`,open:e=>`打开${s(e)}`,openButton:"打开",scrub:"拖动浏览时间线",alsoToCome:e=>`后续还有:${e.join("、")}`,start:e=>`开始 · ${e}`,events:(e,o)=>`${r(e)} 个事件 · ${o.join("、")}`,started:e=>`开始于 ${e}`,duration:e=>`${l(e)} 天`,reached:(e,o)=>`已达成 ${r(e)} / ${r(o)} 个里程碑`,milestones:e=>`${d(e)}里程碑`},production:{heading:"生产进度",start:"开始",estimated:"预计",estimatedCompletion:"预计完成",estDone:"预计完工",play:"播放",pause:"暂停",playTitle:"逐份报告播放时间线",backTo:e=>`返回${s(e)}`,showing:e=>`正在显示 ${e}`,overall:e=>`总体 ${$(e,0)}`,inStock:e=>`库存 ${l(e)} 件`,noReport:"尚未提交生产报告",leadTime:e=>`交货周期 ${l(e)} 天`,report:"生产报告",shipment:"发货",inspection:"检验",invoice:"发票",scrub:"拖动浏览生产时间线",label:(e,o)=>`生产报告和事件,${e} 至 ${o}`},containers:{items:e=>`${r(e)} 项`,pieces:e=>`${r(e)} 件`,split:(e,o)=>`(指令 ${r(e)} / 已装 ${r(o)})`,added:(e,o)=>`新增 ${r(e)} 项(${r(o)} 件)`,fill:(e,o)=>`${p(e,1)} / ${r(o)} m³`,total:"合计:",instructed:e=>`指令 ${p(e,2)} m³`,loaded:e=>`已装 ${p(e,2)} m³`,volume:e=>`${p(e,2)} m³`,noVolume:"体积:暂无(这些料号没有体积数据)"},toast:{notification:"通知",undo:"撤销"},map:{failed:"无法在此处绘制地图。列表中包含地图显示的全部内容。",approximate:e=>`${e},大致位置`,approximateTitle:e=>`${e}(大致位置)`,places:()=>"地点",group:(e,o)=>`此处有 ${r(e)} 个${s(o)}`,stops:e=>`第 ${e} 站`,closeBy:(e,o)=>`附近还有 ${r(e)} 个${s(o)},放大地图后显示`,spread:"点按以分开查看",cycle:"这些地点位于同一位置:点按查看下一个",fullScreen:"全屏",leaveFullScreen:"退出全屏",chosen:e=>`${e},已在地图上选中`,closeCard:"关闭",openRecord:"打开"},pdf:{previousPage:"上一页",nextPage:"下一页",pageOf:(e,o)=>`${r(e)} / ${r(o)}`,zoomOut:"缩小",zoomIn:"放大",zoom:"缩放",fitWidth:"适合宽度",fitPage:"适合页面",fit:"适应",fitHint:"适应窗格:随窗格大小变化,直到您手动缩放",print:"打印",download:"下载",email:"发送邮件",loading:"正在加载 PDF",loadFailed:"PDF 加载失败",allowPopups:"请允许弹出窗口以便打印"},loading:{label:"加载中"},language:{title:"语言",description:"菜单、标签和消息所使用的语言。",reloadNote:"更改语言后页面将重新加载。"},entityList:{open:"打开",copy:"复制",copyColumn:e=>`复制${s(e)}`,copyRows:e=>1===e?"复制此行":`复制 ${r(e)} 行`,exportSelected:"将所选导出为 CSV",selectAll:"全选",selectAllLoaded:e=>`全选已加载的 ${r(e)} 项`,clearSelection:"清除所选",refresh:"刷新",copiedText:"文本",copiedRows:e=>1===e?"该行":`${r(e)} 行`,exported:e=>`已导出 ${r(e)} 行。`,exportTruncated:(e,o)=>`仅导出了 ${r(o)} 行中的 ${r(e)} 行。服务器限制了本次导出,文件不完整。`,exportTruncatedUnknown:e=>`仅导出了 ${r(e)} 行中的一部分。服务器限制了本次导出,文件不完整。`,exportFailed:"CSV 导出失败。"},columns:{choose:"选择列",heading:"列",reset:"重置",saveDefault:"保存为所有用户的默认设置",savedDefault:"已保存为默认设置",select:"选择",selectDone:"完成",showSelection:"显示选择列",hideSelection:"隐藏选择列"},record:{loading:"正在加载记录",signInRequired:"需要登录",signInBody:"您的会话可能已过期。请重新登录以打开此记录。",notFound:"未找到记录",loadFailed:"无法加载记录",checkConnection:"请检查网络连接后重试。",rejected:"服务器拒绝了此请求。",retry:"重试"},password:{current:"当前密码",newPassword:"新密码",confirm:"确认密码",submit:"修改密码",submitting:"修改中",done:"完成",currentRequired:"请输入当前密码。",tooShort:e=>`新密码至少需要 ${r(e)} 个字符。`,mismatch:"两次输入的密码不一致。",failed:"修改密码失败。",changed:"您的密码已修改成功。"},pdfAction:{label:"PDF",loading:"加载中",preview:"预览",download:"下载",email:"通过邮件发送",downloaded:e=>`${d(e)}已下载。`,tookTooLong:e=>`${d(e)}加载时间过长,请重试。`,previewLoading:"正在加载 PDF",previewTookTooLong:"此文档加载时间过长。请关闭此窗口后重试。",previewFailed:"PDF 加载失败。"},undo:{undo:"撤销",redo:"重做",undoStep:(e,o)=>`撤销${s(e)}(${o})`,redoStep:(e,o)=>`重做${s(e)}(${o})`,nothingToUndo:"没有可撤销的操作",nothingToRedo:"没有可重做的操作"},sounds:{title:"声音",enable:"音效",autosave:"更改会自动保存",choice:(e,o)=>`${e}:${o}`,packClassic:"经典",packMinimal:"极简",packRetro:"复古",packSoft:"柔和",packArcade:"街机",packSilent:"静音",eventClick:"点击",eventSuccess:"成功",eventError:"错误",eventNotification:"通知",eventStartup:"启动",eventTimerDone:"计时结束",eventLogout:"退出登录"},serverStatus:{connected:"已连接",disconnected:"已断开",checking:"检测中",lastOkTitle:(e,o)=>`${e} · 上次正常 ${o}`,details:"服务器连接详情",lastPoll:e=>`上次轮询:${e}。`,lastFailure:e=>`上次失败:${e}。`,firstPoll:"首次轮询进行中",server:"服务器",protocol:"协议",browser:"浏览器",online:"在线",offline:"离线",lastOk:"上次正常",lastFail:"上次失败",latency:"延迟",poll:"轮询",pollEvery:e=>`每 ${r(e)} 秒`,session:"会话",user:"用户",notSignedIn:"未登录",role:"角色",build:"构建",app:"应用",userAgent:"用户代理",pingHint:"点击 ↻ 立即检测",refresh:"刷新"},bulkImport:{description:"可从电子表格粘贴、直接输入或上传 CSV。行无需按顺序排列,系统会自动匹配。列表中没有的值将添加到末尾。留空的字段不受影响。",lines:e=>`${r(e)} 行`,total:(e,o)=>`${e}:${o}`,clear:"清除",upload:"上传 CSV",importLines:e=>`导入 ${r(e)} 行`,importing:"导入中",importFailed:"导入失败。",enterAtLeastOne:(e,o)=>`请至少输入一个${s(o)||"值"}。`,allSkipped:"所有行均已跳过。",cancel:"取消",mapTitle:"将 CSV 列映射到字段",skip:"— 跳过 —",columnOption:(e,o)=>`第 ${r(e)} 列(例如 ${o})`,rowsDetected:e=>`检测到 ${r(e)} 行`,confirmMapping:"确认映射",duplicatesTitle:"检测到重复项",duplicatesFound:e=>`导入内容中有 ${r(e)} 个值出现了多次。请先选择每个值的处理方式,然后再继续。`,occurrences:e=>`出现 ${r(e)} 次`,keepFirst:"保留第一个",keepLast:"保留最后一个",keepAll:"全部保留",skipAll:"全部跳过",keptDropped:(e,o)=>`保留 ${r(e)} · 丢弃 ${r(o)}`,proceed:"继续",duplicatesMerged:e=>`有 ${r(e)} 个值出现了多次。每个值已合并为一行,数量已累加,请检查后再继续。`,mergedFrom:"合并自",mergedRows:e=>`${r(e)} 行`,mergeSummary:(e,o)=>`${r(e)} 个重复行 → 合并为 ${r(o)} 行`},preview:{windowTitle:e=>`${e} - 预览`,untitled:"未命名",open:"打开",formats:"PDF · DXF · 3D · 图片",dropHere:e=>`将文件拖放到此处,或点击${e}。`,supportedFormats:"支持的格式",formatPdf:"多页文档查看器",formatDxf:e=>`矢量 CAD 图纸(可选依赖 ${e})`,format3d:e=>`3D 模型(可选依赖 ${e})`,formatImage:"位图图片",dwgNote:"DWG 文件需先在服务器端转换为 PDF 或 DXF。",dropToOpen:"松开以打开",dwgUnsupported:"DWG 文件需要在服务器端转换。请先转换为 PDF 或 DXF。",unsupportedType:e=>e?`不支持的文件类型:.${e}`:"不支持的文件类型:未知",converting:"正在转换文件",download:"下载",email:"发送邮件",howToNavigate:"操作方法",stopMeasuring:"停止测量(Esc)",scrollToZoom:"滚动缩放",closePanel:"关闭",annotate:"标注",annotateHint:"标注此图片",view:"查看",viewHint:"返回查看器",copy:"复制",save:"保存",imageFailed:"图片加载失败。",downloadFailed:"下载失败:无法访问该文件。"},drawing:{loading:"正在加载图纸",notInstalled:"此应用未安装 dxf-viewer。",renderFailed:"DXF 渲染失败。",layers:"图层",layersHint:"切换图层可见性",allLayers:"全部",noLayers:"无",measure:"测量",measureHint:"测量距离:在图纸上点击两点,或在下方输入 DI / DIM",auto:"自动",autoHint:"自动:等同 AutoCAD 的 DIMLINEAR,测量两个拾取点之间 ΔX 与 ΔY 中较大的一个",horizontalHint:"水平:两个拾取点之间沿 X 轴的距离(AutoCAD DIMLINEAR 水平)",verticalHint:"垂直:两个拾取点之间沿 Y 轴的距离(AutoCAD DIMLINEAR 垂直)",point:"两点",pointHint:"两点:两个拾取点之间的直线(欧氏)距离(AutoCAD DIST)",fixX:"固定 Δx",fixY:"固定 Δy",fixHint:"将第二个拾取点在该轴上的坐标锁定为第一个拾取点加上此值(mm)。此时显示的测量值为正交方向的距离。",clearFixed:"清除固定距离",horizontalDistance:e=>"两个拾取点之间的水平距离(Δx)"+(e?":自动模式已判定为 X 轴":""),verticalDistance:e=>"两个拾取点之间的垂直距离(Δy)"+(e?":自动模式已判定为 Y 轴":""),straightDistance:"两个拾取点之间的直线距离",fit:"适应",fitHint:"使图纸适应视图",dragToPan:"拖动平移",fitToReset:"点“适应”重置",typeToMeasure:e=>`输入 ${e} 进行测量`,commandPlaceholder:"输入命令:DI、DIM、H、V、Z、LA(输入 ? 查看帮助)",commandHelp:"命令:DI 距离 · DIM/DLI 线性标注 · H / V 强制轴向 · <数值> 锁定 Δ · U 撤销拾取 · Z 适应 · LA 图层 · Esc 退出",echoDistance:(e,o,t)=>`距离 = ${e} ΔX = ${o} ΔY = ${t}`,echoLinear:(e,o)=>`线性标注 = ${e}(${o})`,echoLocked:(e,o,t,a)=>`${e} = ${o},${t} 锁定为 ${a}`,axisLocked:(e,o)=>`${e} 已锁定为 ${o},标签显示的是正交方向的距离`,fixedCleared:"已清除固定距离。",fixedNeedsAxis:"固定距离仅适用于 H 或 V 模式,请先输入 H 或 V。",echoDist:"DIST:点击两点;直线距离(按 Esc 退出)",echoDimLinear:"DIMLINEAR:点击两点;测量 ΔX 与 ΔY 中较大的一个(输入 H / V 可强制轴向)",echoHorizontal:"水平:两个拾取点之间的 ΔX",echoVertical:"垂直:两个拾取点之间的 ΔY",echoAuto:"自动(DIMLINEAR):沿两个拾取点的主轴方向测量",measureOn:"测量已开启,请点击两点。",measureOff:"测量已关闭。",pickRemoved:"已移除上一个拾取点。",zoomExtents:"已缩放至全图。",layersToggled:"已切换图层面板。",measurementCleared:"已清除测量结果。",readOnly:e=>`${e} 是绘图命令,而“预览”是只读查看器。测量命令:DI、DIM、H、V(输入 ? 查看帮助)`,unknownCommand:e=>`未知命令“${e}”,请尝试 DI、DIM、H、V、Z、LA(输入 ? 查看帮助)`,cancelled:"*取消*"},model:{loading:"正在加载 3D 模型",stepNote:"STEP 文件首次使用时需加载 OpenCascade WASM(约 5 MB)。",notInstalled:"此应用未安装 online-3d-viewer。安装后即可查看 3D 文件。",loadFailed:"3D 模型加载失败。",rootNode:"根节点",node:"节点",collapse:"收起",expand:"展开",fitToView:"适应视图",hide:"隐藏",show:"显示",isometric:"轴测",isometricView:"等轴测视图",top:"俯视",topView:"俯视图",front:"前视",frontView:"前视图",side:"侧视",sideView:"侧视图",perspective:"透视",orthographic:"正交",toPerspective:"切换到透视视图",toOrthographic:"切换到正交视图",snapshot:"将快照保存为 PNG",measureHint:"测量距离:在模型上点击两点",point:"两点",pointHint:"两点:测量两个拾取点之间的直线距离",perpendicularHint:"垂直:拾取两个面,测量它们之间的垂直间距",straightDistance:"两个拾取点之间的直线距离",perpendicularDistance:"两个拾取面之间的垂直距离",meshesHint:"显示或隐藏网格面板",displayHint:"显示或隐藏显示设置面板",downloadOriginal:"下载原始文件",meshes:"网格",readingModel:"正在读取模型",noStructure:"无可用结构",allVisible:"全部可见",hiddenCount:e=>`已隐藏 ${r(e)} 个`,dragToRotate:"拖动旋转",rightDragToPan:"右键拖动平移",display:"模型显示",backgroundColor:"背景颜色",showEdges:"显示边线",edgeColor:"边线颜色",edgeThreshold:"边线阈值",sectionView:"剖面视图",angle:"角度",axis:"轴",flipHint:"翻转剖切方向",flip:"翻转 →",flipped:"← 已翻转",position:"位置",resetDisplay:"恢复默认"},annotator:{toolSelect:"选择 / 移动",toolDraw:"画笔 / 手绘",toolRect:"矩形",toolEllipse:"椭圆",toolArrow:"箭头",toolMosaic:"马赛克",toolText:"文字",toolCrop:"裁剪",weight:"粗细",radius:"圆角",size:"大小",padding:"边距",fontSystem:"系统",fontSerif:"衬线",fontMono:"等宽",fontCursive:"手写",bold:"加粗",boldLetter:"B",italic:"斜体",italicLetter:"I",underline:"下划线",underlineLetter:"U",border:"边框",borderColor:"文本框边框颜色",addBorder:"添加边框",removeBorder:"移除边框",fill:"填充",fillColor:"文本框背景颜色",addFill:"添加背景填充",removeFill:"移除填充",add:"添加",zoomOut:"缩小",zoomIn:"放大",fit:"适应",fitHint:"适应区域",undo:"撤销",applyCrop:"应用裁剪",cancel:"取消",apply:"应用",hintSelected:"拖动可移动。拖动边角可调整大小。按 Delete / Backspace 可删除。点击外部可取消选择。",hintSelect:"点按形状即可选中。双击文字即可编辑。",hintText:"点击以放置文字标签。",hintCrop:"拖出一个矩形以设定裁剪区域。",hintDraw:"拖动以自由绘制。",hintShape:"在图片上拖动以绘制。",textPlaceholder:"输入后按 Enter…",loadFailed:"图片加载失败",exportFailed:"导出失败",clipboardUnsupported:"此浏览器不支持将图片复制到剪贴板",copyFailed:"复制失败",copied:"已复制到剪贴板",copyRefused:"复制失败(没有剪贴板权限?)"},attachment:{fallbackName:"附件",noLink:"此附件没有下载链接。",spreadsheetFailed:"无法打开电子表格,将改为直接打开文件。",workbookUnavailable:"此文件类型不支持电子表格预览,将改为直接打开文件。",noViewer:"没有可在此显示该文件的查看器,将在应用外打开。",loading:"正在加载文件",loadFailed:"文件加载失败。"},aboutApp:{title:e=>`关于${s(e)}`,version:e=>`版本 ${e}`,partOf:e=>`属于 ${e} 桌面环境`,shellVersion:e=>`外壳 v${e}`,spreadsheet:"支持公式和格式的多工作表电子表格,可打开和保存 Excel 与 CSV 文件。",notepad:"带颜色标记的便笺,支持清单、桌面便签和实体自动链接。",documents:"信纸版面的编辑器,适用于 Word 文档和纯文本文件,支持图片、列表和对齐。",preview:"PDF 文档、图片、DXF 图纸和 3D 模型的查看器,支持带对象捕捉的 CAD 式测量和类似 AutoCAD 的命令栏。",files:"个人文件管理器,支持文件夹、上传、配额、回收站和桌面快捷文件夹。",browser:"简洁的网页浏览器,带书签、历史记录和导航栏。"},spreadsheet:{untitled:"未命名",spreadsheetFile:"电子表格",sheetBase:"工作表",menuFile:"文件",menuEdit:"编辑",menuView:"视图",menuInsert:"插入",menuFormat:"格式",menuData:"数据",menuNew:"新建",menuOpen:"打开",saveExcel:"另存为 Excel(.xlsx)",saveCsv:"将此工作表下载为 CSV",email:"发送邮件",undo:"撤销",redo:"重做",cut:"剪切",copy:"复制",paste:"粘贴",pasteValues:"仅粘贴数值",pasteFormats:"仅粘贴格式",findReplace:"查找和替换",clearValues:"清除内容",freeze:"冻结",gridlines:"网格线",showFormulas:"显示公式",rowsAbove:"在上方插入行",rowsBelow:"在下方插入行",columnsLeft:"在左侧插入列",columnsRight:"在右侧插入列",sheet:"工作表",function:"函数",functions:"函数",number:"数字格式",bold:"粗体",italic:"斜体",underline:"下划线",strikethrough:"删除线",fontSize:"字号",alignment:"对齐",borders:"边框",wrapText:"自动换行",mergeCells:"合并单元格",clearFormatting:"清除格式",sortAscending:"升序排序",sortDescending:"降序排序",filter:"筛选",hideRows:"隐藏行",hideColumns:"隐藏列",unhideRows:"显示隐藏的行",unhideColumns:"显示隐藏的列",deleteRows:"删除行",deleteColumns:"删除列",formatGeneral:"自动",formatNumber:"数字",formatPercent:"百分比",formatScientific:"科学计数",formatCurrency:"货币",formatDate:"日期",formatTime:"时间",formatDateTime:"日期和时间",formatText:"纯文本",bordersAll:"所有边框",bordersOuter:"外边框",bordersTop:"上边框",bordersBottom:"下边框",bordersLeft:"左边框",bordersRight:"右边框",bordersNone:"无边框",alignLeft:"左对齐",alignCenter:"居中",alignRight:"右对齐",alignTop:"顶端对齐",alignMiddle:"垂直居中",alignBottom:"底端对齐",formatPainter:"格式刷",fewerDecimals:"减少小数位",moreDecimals:"增加小数位",textColor:"文字颜色",fillColor:"填充颜色",nameBox:"所选单元格",formulaBar:"编辑栏",cellEditor:"单元格内容",selectAll:"全选",fillHandle:"填充",find:"查找",replaceWith:"替换为",replace:"替换",replaceAll:"全部替换",previous:"上一个",next:"下一个",close:"关闭",matchCase:"区分大小写",wholeCell:"整个单元格",inFormulas:"在公式中",addSheet:"添加工作表",rename:"重命名",duplicate:"复制工作表",moveLeft:"左移",moveRight:"右移",tabColor:"标签颜色",noColor:"无颜色",deleteSheet:"删除工作表",deleteSheetTitle:"删除此工作表?",sheetNameTaken:"已有工作表使用该名称。",saveFailed:"无法保存工作簿,请重试。",openFailed:"无法打开该文件,文件可能已损坏或类型不受支持。",statSum:"求和",statAverage:"平均值",statCount:"计数",statMin:"最小值",statMax:"最大值",blank:"(空白)",clear:"清除",apply:"应用",sheetName:e=>`工作表 ${e}`,filterColumn:e=>`筛选 ${e} 列`,freezeRows:e=>0===e?"不冻结行":`${e} 行`,freezeColumns:e=>0===e?"不冻结列":`${e} 列`,freezeUpToRow:e=>`冻结至第 ${e} 行`,freezeUpToColumn:e=>`冻结至 ${e} 列`,hitCount:(e,o)=>`${e} / ${o}`,replacedCount:e=>`已替换 ${e} 个单元格`,deleteSheetMessage:e=>`将删除“${e}”及其全部内容。引用它的公式将显示 #REF!。`,functionHelp:e=>i[e]??String(e)}}}var $=p;export{n as ZH_HANS_REVIEWED_SECTIONS,$ as default,p as zhHansStrings};
1
+ import{formatPlain as e,formatGrouped as o,formatFixed as t,formatPercent as a}from"../chunk-C3QOHMR6.js";var i={ABS:"绝对值",AND:"全部为真时返回真",AVERAGE:"数字的平均值",AVERAGEIF:"满足条件的平均值",AVERAGEIFS:"满足多个条件的平均值",CEILING:"向上舍入到倍数","CEILING.MATH":"向上舍入到倍数",CHOOSE:"按位置选择",COLUMN:"列号",COLUMNS:"列数",CONCAT:"连接文本",CONCATENATE:"连接文本",COS:"余弦",COUNT:"统计数字个数",COUNTA:"统计非空单元格",COUNTBLANK:"统计空单元格",COUNTIF:"统计满足条件的个数",COUNTIFS:"统计满足多个条件的个数",DATE:"生成日期",DATEDIF:"两个日期的间隔",DAY:"月份中的第几天",DAYS:"两个日期相差的天数",EDATE:"相隔若干个月的日期",EOMONTH:"月份的最后一天",EXACT:"文本完全相同",EXP:"e 的幂",FIND:"文本位置(区分大小写)",FLOOR:"向下舍入到倍数","FLOOR.MATH":"向下舍入到倍数",FV:"未来值",HLOOKUP:"在首行中查找",HOUR:"时间中的小时",IF:"二选一返回值",IFERROR:"出错时的备用值",IFNA:"#N/A 时的备用值",IFS:"第一个满足的条件",INDEX:"指定位置的单元格",INT:"向下取整",ISBLANK:"为空时返回真",ISERROR:"为错误时返回真",ISLOGICAL:"为逻辑值时返回真",ISNA:"为 #N/A 时返回真",ISNUMBER:"为数字时返回真",ISTEXT:"为文本时返回真",LARGE:"第 k 大的值",LEFT:"从开头截取文本",LEN:"文本长度",LN:"自然对数",LOG:"对数",LOG10:"以 10 为底的对数",LOWER:"转为小写",MATCH:"值的位置",MAX:"最大值",MEDIAN:"中位数",MID:"从中间截取文本",MIN:"最小值",MINUTE:"时间中的分钟",MOD:"余数",MODE:"出现最多的数字","MODE.SNGL":"出现最多的数字",MONTH:"日期中的月份",N:"转为数字",NA:"#N/A 错误",NETWORKDAYS:"两个日期之间的工作日",NOT:"取反",NOW:"当前日期和时间",NPV:"净现值",OR:"任一为真时返回真",PI:"圆周率",PMT:"贷款每期还款额",POWER:"幂运算",PRODUCT:"数字相乘",PROPER:"每个单词首字母大写",PV:"现值",RAND:"0 到 1 之间的随机数",RANDBETWEEN:"随机整数",RANK:"在列表中的排名","RANK.EQ":"在列表中的排名",REPLACE:"按位置替换",REPT:"重复文本",RIGHT:"从末尾截取文本",ROUND:"四舍五入",ROUNDDOWN:"向零舍入",ROUNDUP:"远离零舍入",ROW:"行号",ROWS:"行数",SEARCH:"文本位置(不区分大小写)",SECOND:"时间中的秒",SIGN:"数字的符号",SIN:"正弦",SMALL:"第 k 小的值",SQRT:"平方根",STDEV:"样本标准差","STDEV.P":"总体标准差","STDEV.S":"样本标准差",STDEVP:"总体标准差",SUBSTITUTE:"替换文本",SUM:"数字求和",SUMIF:"对满足条件的值求和",SUMIFS:"对满足多个条件的值求和",SUMPRODUCT:"相乘后求和",SWITCH:"按值选择结果",TAN:"正切",TEXT:"数字转为带格式的文本",TEXTJOIN:"用分隔符连接",TIME:"生成时间",TODAY:"今天的日期",TRIM:"删除多余空格",TRUNC:"截去小数",UPPER:"转为大写",VALUE:"文本转为数字",VAR:"样本方差","VAR.P":"总体方差","VAR.S":"样本方差",VARP:"总体方差",VLOOKUP:"在首列中查找",WEEKDAY:"星期几",XLOOKUP:"在任意列中查找",XOR:"奇数个为真时返回真",YEAR:"日期中的年份"},n=[],r=/^[A-Za-z0-9]/,l=/[A-Za-z0-9]$/,s=e=>r.test(e)?` ${e}`:e,d=e=>l.test(e)?`${e} `:e,c=e=>d(s(e));function p(n="zh-Hans"){const r=o=>e(o,n),l=e=>o(e,n),p=(e,o)=>t(e,o,n),$=(e,o)=>a(e,o,n);return{window:{minimize:"最小化",restore:"还原",maximize:"最大化",windowed:"向下还原",pinOnTop:"置顶",unpin:"取消置顶",close:"关闭",edit:"编辑",discard:"放弃修改",windowSuffix:"窗口",prev:"上一条",next:"下一条",snapLayouts:"贴靠布局",snapLeft:"贴靠到左半屏",snapRight:"贴靠到右半屏",snapTopLeft:"贴靠到左上角",snapTopRight:"贴靠到右上角",snapBottomLeft:"贴靠到左下角",snapBottomRight:"贴靠到右下角"},taskbar:{closeWindow:"关闭窗口",offscreenHint:"此窗口位于屏幕之外,点击即可移回",offscreenDot:"位于屏幕之外,点击即可移回此窗口",expose:"窗口概览:以缩略图显示所有打开的窗口",addToDesktop:"添加到桌面",removeFromDesktop:"从桌面移除",minimizeAllWindows:"全部最小化",restoreAllWindows:"全部还原",closeAllWindows:"全部关闭"},logout:{goodbye:"再见",seeYou:"下次再见"},about:{aboutPrefix:"关于",thisApp:"本应用",openSourceLicenses:"开源许可",whatsNew:"更新内容",noChangelog:"暂无更新日志。"},table:{empty:"暂无数据",loading:"加载中",selectAll:"选择全部行",selectRow:"选择此行"},select:{none:"— 无 —",noMatches:"无匹配项",allSelected:"已选择全部选项",clear:"清除所选",clearAll:"全部清除",changed:"已更改",selectedCount:e=>`已选 ${r(e)} 项`,remove:"移除",removeItem:e=>`移除${s(e)}`},notifications:{title:"通知",markAllRead:"全部标为已读",dnd:"勿扰模式",dndOn:"勿扰模式已开启",caughtUp:"全部已读",empty:"暂无通知",viewAll:"查看全部通知",byActor:e=>`由 ${e}`,cardLabel:"通知",dismiss:"关闭通知"},form:{errorSummaryTitle:"存在以下问题"},help:{title:"帮助",searchPlaceholder:"搜索帮助…",empty:"暂无帮助文章。",noResults:"没有符合搜索条件的文章。",loading:"加载中",pickArticle:"请从左侧选择一篇帮助文章。",noBody:"这篇文章暂无内容。",draft:"草稿",newArticle:"+ 新建",edit:"编辑"},update:{available:"有新版本可用。",refreshNow:"立即刷新"},pageTabs:{label:"已打开的页面",close:"关闭",closeTab:e=>`关闭${s(e)}`,favorite:"已收藏",closeOthers:"关闭其他标签页",closeRight:"关闭右侧标签页",closeAll:"关闭全部标签页",unsaved:"有未保存的更改",copy:e=>`复制${s(e)}`,copied:"已复制",tabMenu:"窗口菜单",groupToggle:(e,o)=>`${e}:${r(o)} 个标签页`,discardTitle:"放弃未保存的更改?",discardOne:"此页面有尚未保存的更改。仍要关闭吗?",discardMany:"个页面有尚未保存的更改。仍要关闭吗?",discardCount:e=>`有 ${r(e)} 个页面的更改尚未保存。仍要关闭吗?`,discardConfirm:"放弃并关闭",keepEditing:"继续编辑"},dialog:{close:"关闭",cancel:"取消",ok:"确定",confirmTitle:"确认",destructiveTitle:"确认操作",destructiveCancel:"返回",destructiveConfirm:"删除",typeToConfirm:e=>`请输入 ${e} 以确认:`,promptTitle:"请输入内容",discardTitle:"放弃更改?",discardMessage:e=>e?`“${e}”有尚未保存的更改。确定要关闭吗?所有更改都将丢失。`:"有尚未保存的更改。确定要关闭吗?所有更改都将丢失。",discardConfirm:"放弃",keepEditing:"继续编辑"},calendar:{previousMonth:"上个月",nextMonth:"下个月",previousYear:"上一年",nextYear:"下一年",previousYears:"上一组年份",nextYears:"下一组年份",monthPanel:"选择月份",yearPanel:"选择年份",chooseMonth:e=>`选择月份,当前为${s(e)}`,chooseYear:e=>`选择年份,当前为 ${e} 年`},datePicker:{placeholder:"选择日期",dialog:"选择日期",clear:"清除",today:"今天",required:"必填"},dateRange:{placeholder:"日期范围",clearRange:"清除日期范围",dialog:"日期范围",from:"从",to:"至",start:"开始日期",end:"结束日期",fromOnly:e=>`自 ${e} 起`,toOnly:e=>`截至 ${e}`,range:(e,o)=>`${e} 至 ${o}`,required:"必填",last2Weeks:"过去 2 周",lastMonth:"上个月",last3Months:"过去 3 个月",last6Months:"过去 6 个月",last12Months:"过去 12 个月",lastHeading:"过去",last2WeeksShort:"2 周",lastMonthShort:"上个月",last3MonthsShort:"3 个月",last6MonthsShort:"6 个月",last12MonthsShort:"12 个月",custom:"自定义",clear:"清除",cancel:"取消",apply:"应用"},pagination:{label:"分页",first:"第一页",previous:"上一页",next:"下一页",last:"最后一页"},list:{selected:e=>`已选 ${r(e)} 项`,selectedNotShown:(e,o)=>`已选 ${r(e)} 项,${r(o)} 项未显示`,allLoaded:(e,o)=>`已加载全部 ${l(e)} ${o}`,count:(e,o)=>`共 ${l(e)} ${o}`,loadedOf:(e,o,t)=>`已加载 ${l(e)} / ${l(o)} ${t}`,loadingMore:"正在加载更多",loadError:"无法加载此列表",loadErrorMessage:"获取这些记录时出错。请检查网络连接后重试。",retry:"重试"},kanban:{loading:"加载中",empty:"暂无条目。",dropHere:"拖放到此处",addItem:"添加条目"},files:{attach:"添加附件",drop:"松开即可添加附件",remove:e=>`移除${s(e)}`,chooseMany:"选择文件",chooseOne:"选择文件",dragMany:"或拖放到此处",dragOne:"或拖放到此处",notAccepted:(e,o)=>`${d(e)}的文件类型不受支持${o?`(${o})`:""}`,tooLarge:(e,o,t)=>`${d(e)}大小为 ${o},上限为 ${t}`,tooMany:(e,o)=>`未添加${s(e)}:最多只能添加 ${r(o)} 个文件`,bytes:e=>`${r(e)} B`,kilobytes:e=>`${r(e)} KB`,megabytes:e=>`${p(e,1)} MB`},media:{uploadImage:"上传图片",uploadVideo:"上传视频",uploadFile:"上传文件",upload:"上传媒体",cta:"从媒体库选择或上传",replace:"替换",remove:"移除",uploading:"上传中",choosing:"选择中",pickFailed:"无法打开媒体库,请重试。",cover:"封面",add:"添加",addMedia:"添加媒体",empty:"暂无媒体。",removeItem:e=>`移除${s(e)}`,reorder:(e,o,t)=>`${e},第 ${r(o)} 项,共 ${r(t)} 项。使用方向键调整顺序。`,image:"图片",video:"视频",changeImage:"更换图片",changeVideo:"更换视频",focus:"图片焦点",usedIn:e=>`用于 ${r(e)} 处`,notUsed:"未被使用",moveTo:(e,o)=>`将 ${r(e)} ${"image"===o?"张图片":"video"===o?"个视频":"个文件"}移动到`,moveNowhere:"没有可以移动到的文件夹",moveToMenu:"移动到",files:"文件"},mediaLibrary:{products:"产品",allFiles:"全部文件",trash:"回收站",readOnlyBadge:"只读",folders:"文件夹",readOnly:"只读。请在 产品 > 设计 > 媒体 中编辑这些图片。",editedAtHq:e=>`由总部(${e})编辑。`,readOnlyMenu:"只读 · 在 产品 > 设计 > 媒体 中编辑",noProductFolder:"产品文件夹按品牌 > 设计 > 颜色自动生成,不能在这里新建文件夹。",noDropProducts:"只读。不能把文件移动或上传到产品中。",newFolder:"新建文件夹",newSubfolder:"新建子文件夹",folderName:"文件夹名称",fileName:"文件名",folderActions:"文件夹操作",upload:"上传",rename:"重命名",moveTo:"移动到",moveToTrash:"移到回收站",deleteFolder:"删除文件夹",folderNotEmpty:"只能删除空文件夹。请先移走或删除里面的内容。",moveFilesToTrash:e=>`将 ${r(e)} 个文件移到回收站`,filesSelected:e=>`已选择 ${r(e)} 个文件`,fileCount:e=>`${r(e)} 个文件`,selected:e=>`已选择 ${r(e)} 项`,clearSelection:"清除选择",selectAll:"全选",replace:"替换",cropEdit:"裁剪和编辑",copyUrl:"复制链接",fileUrl:"文件链接",urlLabel:"链接",openOriginal:"打开原图",openInDesign:"在设计中打开",restore:"恢复",deleteForever:"永久删除",emptyTrash:"清空回收站",search:"搜索文件名",searchProducts:"搜索设计、颜色、零件号",mediaType:"媒体类型",allTypes:"全部类型",images:"图片",videos:"视频",use:"用途",anyUse:"任何用途",emailOnly:"仅邮件",websiteOnly:"仅网站",notUsed:"未使用",sort:"排序",newest:"最新",byName:"名称",bySize:"大小",view:"视图",grid:"网格",list:"列表",used:e=>`使用 ${r(e)} 处`,email:"邮件",private:"私有",daysAgo:e=>`${r(e)} 天前`,details:"详情",name:"名称",type:"类型",size:"大小",resolution:"分辨率",addedBy:"添加人",folder:"文件夹",usedIn:"使用位置",places:e=>`${r(e)} 处`,design:"设计",finish:"颜色",angleLug:"角度 · 孔数",owner:"所有者",emptyProducts:"这里还没有图片",trashEmpty:"回收站是空的。",noMatches:"没有匹配的文件。",emptyFolder:"这个文件夹里还没有文件。",oneChosen:e=>`已选择 1 项 · ${e}`,noneChosen:"未选择",cancel:"取消",chooseImage:"选择图片",privateNoPick:"私有文件不能在这里使用。",alreadyHere:"文件已经在这里",folderAlreadyHere:"文件夹已经在这里",notIntoItself:"文件夹不能放进它自己里面"},lightbox:{label:"图片预览",close:"关闭预览",previous:"上一张",next:"下一张",counter:(e,o)=>`${r(e)} / ${r(o)}`,openOriginal:"打开原图",openFile:"打开文件"},brandAsset:{save:(e,o)=>`保存${s(o)}`,remove:(e,o)=>`移除${s(o)}`,discard:"放弃更改",saveFailed:(e,o)=>`无法保存${s(o)}。`,removeFailed:(e,o)=>`无法移除${s(o)}。`,region:(e,o)=>`${d(o)}的${e}`,usedFor:e=>`用于${s(e)}。`,previews:e=>`${d(e)}预览`,preview:"预览",alt:(e,o)=>`${d(e)}${o}`},copy:{copy:"复制",copyLabel:e=>`复制${s(e)}`,copied:"已复制",copyValue:e=>`复制${s(e)}`,copiedValue:"已复制!",copiedLabel:e=>`已复制${s(e)}`,failed:"无法复制到剪贴板"},keypad:{backspace:"退格",enter:"确认"},banner:{dismiss:"关闭"},transfer:{uploading:"上传中",error:"出错",retry:"重试",dismiss:"关闭",cancel:"取消",cancelVerb:e=>`取消${s(String(e).replace(/中$/,""))}`},count:{items:e=>`${r(e)} 项`,tabs:e=>`${r(e)} 个标签页`,windows:e=>`${r(e)} 个窗口`},badge:{remove:"移除",removeItem:e=>`移除${s(e)}`},breadcrumbs:{label:"面包屑导航",hidden:"已隐藏的层级"},emptyState:{message:"暂无内容。"},errors:{notFound:"找不到页面",notFoundBody:"您访问的页面不存在或已被移动。",forbidden:"访问被拒绝",forbiddenBody:"您没有查看此页面的权限。",noAccess:"您无权访问此内容",serverError:"出错了",serverErrorBody:"发生意外错误,请重试。",retry:"重试",details:"错误详情"},search:{placeholder:"搜索…",escBadge:"ESC",searching:"搜索中",noResults:"未找到结果。",minChars:e=>`请至少输入 ${r(e)} 个字符再搜索…`,navigate:"切换",open:"打开",close:"关闭",enterKey:"Enter",escKey:"Esc",recent:"最近",favorites:"收藏",actions:"操作",listLabel:"搜索结果",groupCount:(e,o)=>`${r(e)}${o?"+":""}`,groupLabel:(e,o,t)=>`${e},${r(o)}${t?"+":""} 项`,seeAll:e=>`查看全部${s(e)}`,searchFailed:"搜索失败,请检查网络连接后重试。",partialFailure:"部分结果未能加载。",tabKey:"Tab",nextGroup:"下一组"},grid:{selectAll:"全选",insertRowAbove:"在上方插入行",insertRowBelow:"在下方插入行",deleteRow:e=>`删除第 ${e} 行`,insertColumnLeft:"在左侧插入列",insertColumnRight:"在右侧插入列",deleteColumn:e=>`删除${c(e)}列`,resize:"拖动调整大小 · 双击自动适应",fill:"拖动填充"},sidebar:{resize:"拖动调整大小 · 双击重置",sections:"栏目",closeSections:"关闭栏目"},resizeHandle:{label:"调整面板大小",hint:"拖动调整大小 · 双击重置"},number:{increase:"增加",decrease:"减少"},slider:{value:e=>`${d(e)}数值`},accordion:{changed:e=>`已更改 ${e} 项`},settingView:{auto:"自动",edited:"已在此视图中更改",resetName:e=>`重置${s(e)}`,inheritName:e=>`${d(e)}继承上级布局`,inheritParentLayout:"继承上级布局",backToDefault:"恢复为网站默认值",backToAuto:"恢复为自动",backTo:e=>`恢复为${s(e)}`,tip:(e,o)=>`${e}(${o})`,viewDesktop:"电脑",viewTablet:"平板",viewPhone:"手机"},displayChips:{shown:"显示中",hidden:"已隐藏",shownHint:"显示中 · 点击隐藏",hiddenHint:"已隐藏 · 点击显示"},corners:{radius:"圆角半径",unit:"px",radiusMark:"R"},iconPicker:{button:(e,o)=>`${e}:${o}`},iconNames:{none:"无","arrow-right":"箭头","arrow-long-right":"长箭头","arrow-up-right":"右上箭头","chevron-right":"尖括号",external:"外部链接",cart:"购物车",bag:"购物袋",tag:"标签",email:"邮件",location:"位置",play:"播放",download:"下载",search:"搜索",car:"汽车",dot:"圆点",cross:"叉",slash:"斜线",triangle:"三角"},widths:{column:e=>`第 ${e} 栏`,divider:(e,o)=>`第 ${e} 栏和第 ${o} 栏之间的分隔线`,dividerValue:(e,o,t,a)=>`第 ${e} 栏 ${$(o,0)},第 ${t} 栏 ${$(a,0)}`,dragHint:"拖动来调整栏宽",hint:(e,o)=>`输入宽度,或拖动分隔线。每栏不少于 ${$(o,0)}。`,equal:"等宽"},color:{swatch:(e,o)=>`${e}:${o}`,none:"无",panel:e=>`${d(e)}选择器`,square:"饱和度和亮度",squareValue:(e,o)=>`饱和度 ${$(e,0)},亮度 ${$(o,0)}`,hue:"色相",opacity:e=>`${d(e)}不透明度`,hex:e=>`${d(e)}十六进制色值`,presets:"预设",clear:"无颜色"},imageFocus:{picture:(e,o)=>`${e}:${o}`,hint:"拖动图片上的圆点,或用方向键移动。按住 Shift 可移动更多。",noImage:"请先选择图片,目前还没有可设置焦点的图片。"},link:{linkType:"链接类型",address:"链接地址",addressPlaceholder:"链接(本站页面 /… 或 https://…)",unsafe:"请使用网址(https://…)、本站页面(/…)、mailto: 或 tel:。",unavailable:e=>`${e}(不可用)`,filter:"筛选",noFilter:"不筛选(全部产品)",value:"值",filterHint:"筛选项来自产品类型。只列出本站目录中有的值。",title:"链接",apply:"应用",cancel:"取消",remove:"移除",addLink:"添加链接",text:e=>`${d(e)}文字`,linkOf:(e,o)=>`${d(e)}链接:${o||"无"}`},textToolbar:{formatting:"格式",bold:"粗体",italic:"斜体",underline:"下划线",strike:"删除线",color:"颜色",link:"链接",sup:"上标",sub:"下标",code:"代码",alignment:"对齐",alignLeft:"左对齐",alignCenter:"居中",alignRight:"右对齐",alignJustify:"两端对齐",bullet:"项目符号列表",number:"编号列表",quote:"引用",letterCase:"大小写",caseNone:"常规",caseUpper:"大写",caseLower:"小写",clear:"清除格式"},tree:{empty:"暂无内容",dropHere:"拖放到此处",dragHint:"拖动以移动",moveHint:"按 Alt+向上键或 Alt+向下键可移动此项",insertHere:"在此处插入"},layout:{desktop:"桌面",sidebar:"侧边栏",switchToDesktop:"切换到桌面模式",switchToSidebar:"切换到侧边栏模式",collapseSidebar:"收起侧边栏",expandSidebar:"展开侧边栏",goHome:"返回主页",resizeSidebar:"调整侧边栏宽度",search:"搜索…",navLabel:"主菜单",openWindows:"已打开的窗口",favoriteApps:"收藏的应用",openFavorite:e=>`打开${s(e)}`,removeFavorite:"从收藏中移除",pageResult:"页面",accountMenu:e=>`${d(e)}的账户菜单`,profile:"个人资料",notifications:"通知",reportIssue:"建议与问题反馈",signOut:"退出登录",signOutTitle:"退出登录",signOutMessage:"您确定要退出登录吗?重新登录后将重新打开所有窗口。",openMenu:"打开菜单",closeMenu:"关闭菜单",openTabs:"已打开的标签页",getTheApp:e=>`获取 ${e} 应用`,openApp:"打开",dismiss:"不再显示",deviceUsesSidebar:"此设备始终使用侧边栏布局。在电脑上登录时,您的选择仍然有效。",largerScreensOnly:"仅限较大屏幕",usedOnThisDevice:"此设备正在使用",back:"返回"},markdown:{screenshot:"截图"},severity:{success:"正常",warning:"警告",danger:"严重",unrecognised:e=>`未识别的严重级别${s(e)}`},meter:{noData:"无数据",warningAt:e=>`警告 ≥ ${r(e)}`,criticalAt:e=>`严重 ≥ ${r(e)}`,legendWarning:"警告",legendCritical:"严重",noReading:"无读数",noBudget:"无预算",ofBudget:e=>`预算的 ${e}`,budget:"预算",pace:"此刻应达到",hoursMinutes:(e,o)=>`${r(e)} 小时 ${r(o)} 分`,minutesSeconds:(e,o)=>`${r(e)} 分 ${r(o)} 秒`,seconds:e=>`${r(e)} 秒`},charts:{showTable:"以表格显示数据",loading:"正在加载图表数据",noData:"此时间段内无数据。",windowStart:"时间段起点",windowEnd:"时间段终点",window:(e,o,t)=>`时间段:正在显示 ${e} 至 ${o},共 ${r(t)} 个区间`,overIntervals:(e,o)=>`${e.join("、")},共 ${r(o)} 个区间`,acrossCategories:(e,o)=>`${e.join("、")},共 ${r(o)} 个类别`,acrossMeasures:(e,o)=>`${e.join("、")},共 ${r(o)} 项指标`,breakdown:(e,o)=>`${d(e)}的构成,共 ${r(o)} 个部分`,funnel:(e,o,t)=>`漏斗图,共 ${r(e)} 个阶段,从${c(o)}到${s(t)}`,radialTrack:e=>`${r(e)} 个类别,以同心环占比显示`,radialCycle:e=>`${r(e)} 个类别,按环形周期排列`,tableFrom:"来源",tableTo:"去向",tableItem:"项目",tableLevel:"层级",tableSeries:"系列",inBucket:e=>`此区间内共 ${e}`,zoomRange:(e,o,t)=>`${e} – ${o} · ${r(t)} 个区间`,zoomClear:"清除",zoomLevel:(e,o)=>`平均 ${e} · 峰值 ${o}`,inCategory:e=>`此类别内共 ${e}`,value:"数值",share:"占比",count:"数量",flow:"流量",totalFlow:"总流量",throughput:"通过量",open:"开盘",high:"最高",low:"最低",close:"收盘",maximum:"最大值",q3:"Q3",median:"中位数",q1:"Q1",minimum:"最小值",distribution:"分布",fiveNumber:(e,o)=>`${e}:${r(o)} 个类别的五数概括`,outliers:e=>`${r(e)} 个离群值超出须线范围`,price:"价格",ohlc:(e,o)=>`${e}:${r(o)} 个周期的开盘、最高、最低和收盘`,closedAbove:"收盘高于开盘",closedBelow:"收盘低于开盘",noFlows:"没有可绘制的流量。",chord:e=>`${r(e)} 个参与方之间的流量`,chordFolded:e=>`另有 ${r(e)} 个参与方归入"其他"`,noStages:"没有可绘制的阶段。",ofFirstStage:"占首阶段",droppedHere:"此处流失",intensity:"强度",noActivity:"此时间段内无活动。",heatmap:(e,o,t)=>`${e},${r(o)} 行 ${r(t)} 列`,countAxis:"数量",histogram:(e,o,t)=>`${e}:${r(t)} 个观测值,分为 ${r(o)} 组`,observations:"观测值",notEnough:"符合条件的请求不足,无法判断。",objectiveMet:e=>`已达到目标 ${e}`,objectiveMissed:e=>`未达到目标 ${e}`,nothingToPlot:"没有可绘制的数据。",nothingToCompare:"没有可比较的数据。",other:"其他",nothingToBreakDown:"没有可细分的数据。",range:"范围",rangeLabel:(e,o)=>`${e}:${r(o)} 个类别的最低值和最高值`,nothingToRank:"此时间段内没有可排名的数据。",emphasised:"(重点)",sankey:(e,o)=>`${r(e)} 个节点之间的流量,共 ${r(o)} 条连接`,noObservations:"此时间段内无观测值。",xAxis:"x",yAxis:"y",size:"大小",scatter:(e,o,t)=>`${e.join("、")}:${d(o)}与${c(t)}的关系`,outsideRange:e=>`${r(e)} 个点超出显示范围`,waterfall:(e,o,t)=>`瀑布图,共 ${r(e)} 步,从${c(o)}到${s(t)}`,balance:"余额",increase:"增加",decrease:"减少",runningTotal:"累计",sunburst:(e,o)=>`${d(e)}的层级构成,共 ${r(o)} 层`,treemap:e=>`矩形树图,共 ${r(e)} 项`,trendUp:"上升",trendDown:"下降",trendFlat:"持平"},timeline:{days:e=>`${l(e)} 天`,daysToToday:e=>`距今 ${l(e)} 天`,notReached:"尚未达成",next:"下一项",more:e=>`还有 ${r(e)} 项`,today:"今天",todayTitle:e=>`今天:${e}`,open:e=>`打开${s(e)}`,openButton:"打开",scrub:"拖动浏览时间线",alsoToCome:e=>`后续还有:${e.join("、")}`,start:e=>`开始 · ${e}`,events:(e,o)=>`${r(e)} 个事件 · ${o.join("、")}`,started:e=>`开始于 ${e}`,duration:e=>`${l(e)} 天`,reached:(e,o)=>`已达成 ${r(e)} / ${r(o)} 个里程碑`,milestones:e=>`${d(e)}里程碑`},production:{heading:"生产进度",start:"开始",estimated:"预计",estimatedCompletion:"预计完成",estDone:"预计完工",play:"播放",pause:"暂停",playTitle:"逐份报告播放时间线",backTo:e=>`返回${s(e)}`,showing:e=>`正在显示 ${e}`,overall:e=>`总体 ${$(e,0)}`,inStock:e=>`库存 ${l(e)} 件`,noReport:"尚未提交生产报告",leadTime:e=>`交货周期 ${l(e)} 天`,report:"生产报告",shipment:"发货",inspection:"检验",invoice:"发票",scrub:"拖动浏览生产时间线",label:(e,o)=>`生产报告和事件,${e} 至 ${o}`},containers:{items:e=>`${r(e)} 项`,pieces:e=>`${r(e)} 件`,split:(e,o)=>`(指令 ${r(e)} / 已装 ${r(o)})`,added:(e,o)=>`新增 ${r(e)} 项(${r(o)} 件)`,fill:(e,o)=>`${p(e,1)} / ${r(o)} m³`,total:"合计:",instructed:e=>`指令 ${p(e,2)} m³`,loaded:e=>`已装 ${p(e,2)} m³`,volume:e=>`${p(e,2)} m³`,noVolume:"体积:暂无(这些料号没有体积数据)"},toast:{notification:"通知",undo:"撤销"},map:{failed:"无法在此处绘制地图。列表中包含地图显示的全部内容。",approximate:e=>`${e},大致位置`,approximateTitle:e=>`${e}(大致位置)`,places:()=>"地点",group:(e,o)=>`此处有 ${r(e)} 个${s(o)}`,stops:e=>`第 ${e} 站`,closeBy:(e,o)=>`附近还有 ${r(e)} 个${s(o)},放大地图后显示`,spread:"点按以分开查看",cycle:"这些地点位于同一位置:点按查看下一个",fullScreen:"全屏",leaveFullScreen:"退出全屏",chosen:e=>`${e},已在地图上选中`,closeCard:"关闭",openRecord:"打开"},pdf:{previousPage:"上一页",nextPage:"下一页",pageOf:(e,o)=>`${r(e)} / ${r(o)}`,zoomOut:"缩小",zoomIn:"放大",zoom:"缩放",fitWidth:"适合宽度",fitPage:"适合页面",fit:"适应",fitHint:"适应窗格:随窗格大小变化,直到您手动缩放",print:"打印",download:"下载",email:"发送邮件",loading:"正在加载 PDF",loadFailed:"PDF 加载失败",allowPopups:"请允许弹出窗口以便打印"},loading:{label:"加载中"},language:{title:"语言",description:"菜单、标签和消息所使用的语言。",reloadNote:"更改语言后页面将重新加载。"},entityList:{open:"打开",copy:"复制",copyColumn:e=>`复制${s(e)}`,copyRows:e=>1===e?"复制此行":`复制 ${r(e)} 行`,exportSelected:"将所选导出为 CSV",selectAll:"全选",selectAllLoaded:e=>`全选已加载的 ${r(e)} 项`,clearSelection:"清除所选",refresh:"刷新",copiedText:"文本",copiedRows:e=>1===e?"该行":`${r(e)} 行`,exported:e=>`已导出 ${r(e)} 行。`,exportTruncated:(e,o)=>`仅导出了 ${r(o)} 行中的 ${r(e)} 行。服务器限制了本次导出,文件不完整。`,exportTruncatedUnknown:e=>`仅导出了 ${r(e)} 行中的一部分。服务器限制了本次导出,文件不完整。`,exportFailed:"CSV 导出失败。"},columns:{choose:"选择列",heading:"列",reset:"重置",saveDefault:"保存为所有用户的默认设置",savedDefault:"已保存为默认设置",select:"选择",selectDone:"完成",showSelection:"显示选择列",hideSelection:"隐藏选择列"},record:{loading:"正在加载记录",signInRequired:"需要登录",signInBody:"您的会话可能已过期。请重新登录以打开此记录。",notFound:"未找到记录",loadFailed:"无法加载记录",checkConnection:"请检查网络连接后重试。",rejected:"服务器拒绝了此请求。",retry:"重试"},password:{current:"当前密码",newPassword:"新密码",confirm:"确认密码",submit:"修改密码",submitting:"修改中",done:"完成",currentRequired:"请输入当前密码。",tooShort:e=>`新密码至少需要 ${r(e)} 个字符。`,mismatch:"两次输入的密码不一致。",failed:"修改密码失败。",changed:"您的密码已修改成功。"},pdfAction:{label:"PDF",loading:"加载中",preview:"预览",download:"下载",email:"通过邮件发送",downloaded:e=>`${d(e)}已下载。`,tookTooLong:e=>`${d(e)}加载时间过长,请重试。`,previewLoading:"正在加载 PDF",previewTookTooLong:"此文档加载时间过长。请关闭此窗口后重试。",previewFailed:"PDF 加载失败。"},undo:{undo:"撤销",redo:"重做",undoStep:(e,o)=>`撤销${s(e)}(${o})`,redoStep:(e,o)=>`重做${s(e)}(${o})`,nothingToUndo:"没有可撤销的操作",nothingToRedo:"没有可重做的操作"},sounds:{title:"声音",enable:"音效",autosave:"更改会自动保存",choice:(e,o)=>`${e}:${o}`,packClassic:"经典",packMinimal:"极简",packRetro:"复古",packSoft:"柔和",packArcade:"街机",packSilent:"静音",eventClick:"点击",eventSuccess:"成功",eventError:"错误",eventNotification:"通知",eventStartup:"启动",eventTimerDone:"计时结束",eventLogout:"退出登录"},serverStatus:{connected:"已连接",disconnected:"已断开",checking:"检测中",lastOkTitle:(e,o)=>`${e} · 上次正常 ${o}`,details:"服务器连接详情",lastPoll:e=>`上次轮询:${e}。`,lastFailure:e=>`上次失败:${e}。`,firstPoll:"首次轮询进行中",server:"服务器",protocol:"协议",browser:"浏览器",online:"在线",offline:"离线",lastOk:"上次正常",lastFail:"上次失败",latency:"延迟",poll:"轮询",pollEvery:e=>`每 ${r(e)} 秒`,session:"会话",user:"用户",notSignedIn:"未登录",role:"角色",build:"构建",app:"应用",userAgent:"用户代理",pingHint:"点击 ↻ 立即检测",refresh:"刷新"},bulkImport:{description:"可从电子表格粘贴、直接输入或上传 CSV。行无需按顺序排列,系统会自动匹配。列表中没有的值将添加到末尾。留空的字段不受影响。",lines:e=>`${r(e)} 行`,total:(e,o)=>`${e}:${o}`,clear:"清除",upload:"上传 CSV",importLines:e=>`导入 ${r(e)} 行`,importing:"导入中",importFailed:"导入失败。",enterAtLeastOne:(e,o)=>`请至少输入一个${s(o)||"值"}。`,allSkipped:"所有行均已跳过。",cancel:"取消",mapTitle:"将 CSV 列映射到字段",skip:"— 跳过 —",columnOption:(e,o)=>`第 ${r(e)} 列(例如 ${o})`,rowsDetected:e=>`检测到 ${r(e)} 行`,confirmMapping:"确认映射",duplicatesTitle:"检测到重复项",duplicatesFound:e=>`导入内容中有 ${r(e)} 个值出现了多次。请先选择每个值的处理方式,然后再继续。`,occurrences:e=>`出现 ${r(e)} 次`,keepFirst:"保留第一个",keepLast:"保留最后一个",keepAll:"全部保留",skipAll:"全部跳过",keptDropped:(e,o)=>`保留 ${r(e)} · 丢弃 ${r(o)}`,proceed:"继续",duplicatesMerged:e=>`有 ${r(e)} 个值出现了多次。每个值已合并为一行,数量已累加,请检查后再继续。`,mergedFrom:"合并自",mergedRows:e=>`${r(e)} 行`,mergeSummary:(e,o)=>`${r(e)} 个重复行 → 合并为 ${r(o)} 行`},preview:{windowTitle:e=>`${e} - 预览`,untitled:"未命名",open:"打开",formats:"PDF · DXF · 3D · 图片",dropHere:e=>`将文件拖放到此处,或点击${e}。`,supportedFormats:"支持的格式",formatPdf:"多页文档查看器",formatDxf:e=>`矢量 CAD 图纸(可选依赖 ${e})`,format3d:e=>`3D 模型(可选依赖 ${e})`,formatImage:"位图图片",dwgNote:"DWG 文件需先在服务器端转换为 PDF 或 DXF。",dropToOpen:"松开以打开",dwgUnsupported:"DWG 文件需要在服务器端转换。请先转换为 PDF 或 DXF。",unsupportedType:e=>e?`不支持的文件类型:.${e}`:"不支持的文件类型:未知",converting:"正在转换文件",download:"下载",email:"发送邮件",howToNavigate:"操作方法",stopMeasuring:"停止测量(Esc)",scrollToZoom:"滚动缩放",closePanel:"关闭",annotate:"标注",annotateHint:"标注此图片",view:"查看",viewHint:"返回查看器",copy:"复制",save:"保存",imageFailed:"图片加载失败。",downloadFailed:"下载失败:无法访问该文件。"},drawing:{loading:"正在加载图纸",notInstalled:"此应用未安装 dxf-viewer。",renderFailed:"DXF 渲染失败。",layers:"图层",layersHint:"切换图层可见性",allLayers:"全部",noLayers:"无",measure:"测量",measureHint:"测量距离:在图纸上点击两点,或在下方输入 DI / DIM",auto:"自动",autoHint:"自动:等同 AutoCAD 的 DIMLINEAR,测量两个拾取点之间 ΔX 与 ΔY 中较大的一个",horizontalHint:"水平:两个拾取点之间沿 X 轴的距离(AutoCAD DIMLINEAR 水平)",verticalHint:"垂直:两个拾取点之间沿 Y 轴的距离(AutoCAD DIMLINEAR 垂直)",point:"两点",pointHint:"两点:两个拾取点之间的直线(欧氏)距离(AutoCAD DIST)",fixX:"固定 Δx",fixY:"固定 Δy",fixHint:"将第二个拾取点在该轴上的坐标锁定为第一个拾取点加上此值(mm)。此时显示的测量值为正交方向的距离。",clearFixed:"清除固定距离",horizontalDistance:e=>"两个拾取点之间的水平距离(Δx)"+(e?":自动模式已判定为 X 轴":""),verticalDistance:e=>"两个拾取点之间的垂直距离(Δy)"+(e?":自动模式已判定为 Y 轴":""),straightDistance:"两个拾取点之间的直线距离",fit:"适应",fitHint:"使图纸适应视图",dragToPan:"拖动平移",fitToReset:"点“适应”重置",typeToMeasure:e=>`输入 ${e} 进行测量`,commandPlaceholder:"输入命令:DI、DIM、H、V、Z、LA(输入 ? 查看帮助)",commandHelp:"命令:DI 距离 · DIM/DLI 线性标注 · H / V 强制轴向 · <数值> 锁定 Δ · U 撤销拾取 · Z 适应 · LA 图层 · Esc 退出",echoDistance:(e,o,t)=>`距离 = ${e} ΔX = ${o} ΔY = ${t}`,echoLinear:(e,o)=>`线性标注 = ${e}(${o})`,echoLocked:(e,o,t,a)=>`${e} = ${o},${t} 锁定为 ${a}`,axisLocked:(e,o)=>`${e} 已锁定为 ${o},标签显示的是正交方向的距离`,fixedCleared:"已清除固定距离。",fixedNeedsAxis:"固定距离仅适用于 H 或 V 模式,请先输入 H 或 V。",echoDist:"DIST:点击两点;直线距离(按 Esc 退出)",echoDimLinear:"DIMLINEAR:点击两点;测量 ΔX 与 ΔY 中较大的一个(输入 H / V 可强制轴向)",echoHorizontal:"水平:两个拾取点之间的 ΔX",echoVertical:"垂直:两个拾取点之间的 ΔY",echoAuto:"自动(DIMLINEAR):沿两个拾取点的主轴方向测量",measureOn:"测量已开启,请点击两点。",measureOff:"测量已关闭。",pickRemoved:"已移除上一个拾取点。",zoomExtents:"已缩放至全图。",layersToggled:"已切换图层面板。",measurementCleared:"已清除测量结果。",readOnly:e=>`${e} 是绘图命令,而“预览”是只读查看器。测量命令:DI、DIM、H、V(输入 ? 查看帮助)`,unknownCommand:e=>`未知命令“${e}”,请尝试 DI、DIM、H、V、Z、LA(输入 ? 查看帮助)`,cancelled:"*取消*"},model:{loading:"正在加载 3D 模型",stepNote:"STEP 文件首次使用时需加载 OpenCascade WASM(约 5 MB)。",notInstalled:"此应用未安装 online-3d-viewer。安装后即可查看 3D 文件。",loadFailed:"3D 模型加载失败。",rootNode:"根节点",node:"节点",collapse:"收起",expand:"展开",fitToView:"适应视图",hide:"隐藏",show:"显示",isometric:"轴测",isometricView:"等轴测视图",top:"俯视",topView:"俯视图",front:"前视",frontView:"前视图",side:"侧视",sideView:"侧视图",perspective:"透视",orthographic:"正交",toPerspective:"切换到透视视图",toOrthographic:"切换到正交视图",snapshot:"将快照保存为 PNG",measureHint:"测量距离:在模型上点击两点",point:"两点",pointHint:"两点:测量两个拾取点之间的直线距离",perpendicularHint:"垂直:拾取两个面,测量它们之间的垂直间距",straightDistance:"两个拾取点之间的直线距离",perpendicularDistance:"两个拾取面之间的垂直距离",meshesHint:"显示或隐藏网格面板",displayHint:"显示或隐藏显示设置面板",downloadOriginal:"下载原始文件",meshes:"网格",readingModel:"正在读取模型",noStructure:"无可用结构",allVisible:"全部可见",hiddenCount:e=>`已隐藏 ${r(e)} 个`,dragToRotate:"拖动旋转",rightDragToPan:"右键拖动平移",display:"模型显示",backgroundColor:"背景颜色",showEdges:"显示边线",edgeColor:"边线颜色",edgeThreshold:"边线阈值",sectionView:"剖面视图",angle:"角度",axis:"轴",flipHint:"翻转剖切方向",flip:"翻转 →",flipped:"← 已翻转",position:"位置",resetDisplay:"恢复默认"},annotator:{toolSelect:"选择 / 移动",toolDraw:"画笔 / 手绘",toolRect:"矩形",toolEllipse:"椭圆",toolArrow:"箭头",toolMosaic:"马赛克",toolText:"文字",toolCrop:"裁剪",weight:"粗细",radius:"圆角",size:"大小",padding:"边距",fontSystem:"系统",fontSerif:"衬线",fontMono:"等宽",fontCursive:"手写",bold:"加粗",boldLetter:"B",italic:"斜体",italicLetter:"I",underline:"下划线",underlineLetter:"U",border:"边框",borderColor:"文本框边框颜色",addBorder:"添加边框",removeBorder:"移除边框",fill:"填充",fillColor:"文本框背景颜色",addFill:"添加背景填充",removeFill:"移除填充",add:"添加",zoomOut:"缩小",zoomIn:"放大",fit:"适应",fitHint:"适应区域",undo:"撤销",applyCrop:"应用裁剪",cancel:"取消",apply:"应用",hintSelected:"拖动可移动。拖动边角可调整大小。按 Delete / Backspace 可删除。点击外部可取消选择。",hintSelect:"点按形状即可选中。双击文字即可编辑。",hintText:"点击以放置文字标签。",hintCrop:"拖出一个矩形以设定裁剪区域。",hintDraw:"拖动以自由绘制。",hintShape:"在图片上拖动以绘制。",textPlaceholder:"输入后按 Enter…",loadFailed:"图片加载失败",exportFailed:"导出失败",clipboardUnsupported:"此浏览器不支持将图片复制到剪贴板",copyFailed:"复制失败",copied:"已复制到剪贴板",copyRefused:"复制失败(没有剪贴板权限?)"},attachment:{fallbackName:"附件",noLink:"此附件没有下载链接。",spreadsheetFailed:"无法打开电子表格,将改为直接打开文件。",workbookUnavailable:"此文件类型不支持电子表格预览,将改为直接打开文件。",noViewer:"没有可在此显示该文件的查看器,将在应用外打开。",loading:"正在加载文件",loadFailed:"文件加载失败。"},aboutApp:{title:e=>`关于${s(e)}`,version:e=>`版本 ${e}`,partOf:e=>`属于 ${e} 桌面环境`,shellVersion:e=>`外壳 v${e}`,spreadsheet:"支持公式和格式的多工作表电子表格,可打开和保存 Excel 与 CSV 文件。",notepad:"带颜色标记的便笺,支持清单、桌面便签和实体自动链接。",documents:"可打开和保存 Word 文件的文字处理器,支持样式、表格、页面设置和查找替换,并提供纯文本编辑器。",preview:"PDF 文档、图片、DXF 图纸和 3D 模型的查看器,支持带对象捕捉的 CAD 式测量和类似 AutoCAD 的命令栏。",files:"个人文件管理器,支持文件夹、上传、配额、回收站和桌面快捷文件夹。",browser:"简洁的网页浏览器,带书签、历史记录和导航栏。"},documents:{untitled:"未命名",loading:"正在加载",newDocument:"新建",open:"打开",rename:"重命名",menuFile:"文件",menuInsert:"插入",menuLayout:"布局",save:"保存",saveDocx:"保存 (.docx)",saveKeepType:"保存",saveAs:"另存为",saveAsWord:"Word 文档 (.docx)",saveAsPdf:"PDF(通过打印对话框)",saveAsWeb:"网页 (.html)",saveAsText:"纯文本 (.txt)",print:"打印",undo:"撤销",redo:"重做",find:"查找",replaceWith:"替换为",replace:"替换",replaceAll:"全部替换",matchCase:"区分大小写",previousMatch:"上一个匹配项",nextMatch:"下一个匹配项",closeFind:"关闭查找",noMatches:"无匹配项",paragraphStyle:"段落样式",font:"字体",fontSize:"字号",bold:"加粗",italic:"倾斜",underline:"下划线",strikethrough:"删除线",superscript:"上标",subscript:"下标",textColor:"文字颜色",highlight:"突出显示颜色",clearFormatting:"清除格式",bulletedList:"项目符号列表",numberedList:"编号列表",decreaseIndent:"减少缩进",increaseIndent:"增加缩进",alignLeft:"左对齐",alignCenter:"居中",alignRight:"右对齐",justify:"两端对齐",lineSpacing:"行距",styleNormal:"正文",styleTitle:"标题",styleHeading1:"标题 1",styleHeading2:"标题 2",styleHeading3:"标题 3",styleQuote:"引用",table:"表格",image:"图片",link:"链接",linkPrompt:"输入网址;留空则移除链接。",linkInvalid:"该地址不能用作链接。",pageBreak:"分页符",pageNumber:"页码",horizontalLine:"水平线",rowAbove:"在上方插入行",rowBelow:"在下方插入行",columnLeft:"在左侧插入列",columnRight:"在右侧插入列",mergeCells:"合并单元格",mergeFailed:"无法合并这些单元格:所选范围会切开已合并的单元格。",cellShading:"单元格底纹",noColor:"无颜色",deleteRow:"删除行",deleteColumn:"删除列",deleteTable:"删除表格",imageWidth:"图片宽度",imageOriginalSize:"原始大小",imageRemove:"移除图片",pageSetup:"页面设置",paperSize:"纸张大小",paperLetter:"美国信纸",paperLegal:"美国法律用纸",custom:"自定义",orientation:"方向",portrait:"纵向",landscape:"横向",margins:"页边距",marginsNormal:"常规,2.54 厘米",marginsNarrow:"窄,1.27 厘米",marginsModerate:"中等,左右 1.91 厘米",marginsWide:"宽,左右 5.08 厘米",header:"页眉",footer:"页脚",headerFooterHint:"{page} 和 {pages} 会变成页码。| 会把其后的文字推到右侧。",headerFooterLocked:"此处包含图片或表格,因此保持原样。请在 Word 中编辑。",ok:"确定",cancel:"取消",dismiss:"关闭",zoomIn:"放大",zoomOut:"缩小",wrapLines:"自动换行",objectTextBox:"文本框",objectChart:"来自 Word 的图表,保持原样。",objectDiagram:"来自 Word 的示意图,保持原样。",objectEquation:"来自 Word 的公式,保持原样。",objectPicture:"来自 Word 的图片,保持原样。",objectOther:"来自 Word 的对象,保持原样。",objectField:"域",discardMessage:"这些更改尚未保存。",discard:"放弃",keepEditing:"继续编辑",legacyDoc:".doc 是旧版 Word 格式,请先在 Word 中另存为 .docx。",openedOldSave:"已作为文档打开。保存后即可得到 Word 文件。",saveFailed:"无法保存文档。",savedAsUtf8:"已保存为 UTF-8:浏览器无法写入原始编码。",dropHint:"拖放文档以打开;图片会插入页面。",matchCount:(e,o)=>`第 ${e} 个,共 ${o} 个`,replacedCount:e=>`已替换 ${e} 处`,tableSize:(e,o)=>`${e} × ${o}`,pageLabel:e=>`第 ${e} 页`,pageOf:(e,o)=>`第 ${e} 页,共 ${o} 页`,wordCount:e=>`${e.toLocaleString()} 字`,lineColumn:(e,o)=>`第 ${e} 行,第 ${o} 列`,lineCount:e=>`${e.toLocaleString()} 行`,noticeComments:e=>`${e} 条批注`,noticeTracked:e=>`${e} 处修订`,noticeObjects:e=>`${e} 个文本框等对象`,noticeFootnotes:e=>`${e} 条脚注`,noticeLead:e=>`包含 ${e.join("、")}。它们会保留在文件中,但需要在 Word 中编辑。`,discardTitle:e=>`放弃对 ${e} 的更改?`,cannotRead:e=>`无法打开 ${e}。文件可能已损坏或受密码保护。`,unsupported:e=>`不支持的文件类型:.${e||"未知"}`},spreadsheet:{untitled:"未命名",spreadsheetFile:"电子表格",sheetBase:"工作表",menuFile:"文件",menuEdit:"编辑",menuView:"视图",menuInsert:"插入",menuFormat:"格式",menuData:"数据",menuNew:"新建",menuOpen:"打开",saveExcel:"另存为 Excel(.xlsx)",saveCsv:"将此工作表下载为 CSV",email:"发送邮件",undo:"撤销",redo:"重做",cut:"剪切",copy:"复制",paste:"粘贴",pasteValues:"仅粘贴数值",pasteFormats:"仅粘贴格式",findReplace:"查找和替换",clearValues:"清除内容",freeze:"冻结",gridlines:"网格线",showFormulas:"显示公式",rowsAbove:"在上方插入行",rowsBelow:"在下方插入行",columnsLeft:"在左侧插入列",columnsRight:"在右侧插入列",sheet:"工作表",function:"函数",functions:"函数",number:"数字格式",bold:"粗体",italic:"斜体",underline:"下划线",strikethrough:"删除线",fontSize:"字号",alignment:"对齐",borders:"边框",wrapText:"自动换行",mergeCells:"合并单元格",clearFormatting:"清除格式",sortAscending:"升序排序",sortDescending:"降序排序",filter:"筛选",hideRows:"隐藏行",hideColumns:"隐藏列",unhideRows:"显示隐藏的行",unhideColumns:"显示隐藏的列",deleteRows:"删除行",deleteColumns:"删除列",formatGeneral:"自动",formatNumber:"数字",formatPercent:"百分比",formatScientific:"科学计数",formatCurrency:"货币",formatDate:"日期",formatTime:"时间",formatDateTime:"日期和时间",formatText:"纯文本",bordersAll:"所有边框",bordersOuter:"外边框",bordersTop:"上边框",bordersBottom:"下边框",bordersLeft:"左边框",bordersRight:"右边框",bordersNone:"无边框",alignLeft:"左对齐",alignCenter:"居中",alignRight:"右对齐",alignTop:"顶端对齐",alignMiddle:"垂直居中",alignBottom:"底端对齐",formatPainter:"格式刷",fewerDecimals:"减少小数位",moreDecimals:"增加小数位",textColor:"文字颜色",fillColor:"填充颜色",nameBox:"所选单元格",formulaBar:"编辑栏",cellEditor:"单元格内容",selectAll:"全选",fillHandle:"填充",find:"查找",replaceWith:"替换为",replace:"替换",replaceAll:"全部替换",previous:"上一个",next:"下一个",close:"关闭",matchCase:"区分大小写",wholeCell:"整个单元格",inFormulas:"在公式中",addSheet:"添加工作表",rename:"重命名",duplicate:"复制工作表",moveLeft:"左移",moveRight:"右移",tabColor:"标签颜色",noColor:"无颜色",deleteSheet:"删除工作表",deleteSheetTitle:"删除此工作表?",sheetNameTaken:"已有工作表使用该名称。",saveFailed:"无法保存工作簿,请重试。",openFailed:"无法打开该文件,文件可能已损坏或类型不受支持。",statSum:"求和",statAverage:"平均值",statCount:"计数",statMin:"最小值",statMax:"最大值",blank:"(空白)",clear:"清除",apply:"应用",sheetName:e=>`工作表 ${e}`,filterColumn:e=>`筛选 ${e} 列`,freezeRows:e=>0===e?"不冻结行":`${e} 行`,freezeColumns:e=>0===e?"不冻结列":`${e} 列`,freezeUpToRow:e=>`冻结至第 ${e} 行`,freezeUpToColumn:e=>`冻结至 ${e} 列`,hitCount:(e,o)=>`${e} / ${o}`,replacedCount:e=>`已替换 ${e} 个单元格`,deleteSheetMessage:e=>`将删除“${e}”及其全部内容。引用它的公式将显示 #REF!。`,functionHelp:e=>i[e]??String(e)}}}var $=p;export{n as ZH_HANS_REVIEWED_SECTIONS,$ as default,p as zhHansStrings};
package/dist/map/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import{useRootIsDark as e}from"../chunk-UPXDDO3U.js";import{Button_default as t}from"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import{Icon as n}from"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as r}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as o}from"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";import{useRef as a,useState as l,useEffect as s,useCallback as i,useMemo as c}from"react";import{createPortal as u}from"react-dom";import{jsxs as d,jsx as p,Fragment as m}from"react/jsx-runtime";import{useQuery as h}from"@tanstack/react-query";var g="maplibregl-compact-show";function f(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(g)&&(e.classList.remove(g),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var b="https://tiles.openfreemap.org",y={connect:[b]},x={light:`${b}/styles/positron`,dark:`${b}/styles/dark`},k=20,v=12,w=480,N={center:[0,0],left:[k,0],right:[-20,0],top:[0,k],"top-left":[0,k],"top-right":[0,k],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},M=(e,t=12)=>Math.max(0,Math.floor(e-t-v-k-10-16));function C(e,t,n,r=12){const o=e.y-k-r,a=n.height-e.y-k-v,l=t.height<=o||t.height>a&&o>=a,s=l?Math.max(0,t.height-o):-Math.max(0,t.height-a);let i="",c=0;return e.x-t.width/2<v?(i="-left",c=Math.max(0,v-e.x)):e.x+t.width/2>n.width-v&&(i="-right",c=-Math.max(0,e.x-(n.width-v))),{anchor:`${l?"bottom":"top"}${i}`,move:{x:c,y:s}}}var L="maplibre-gl-worker.mjs",j=e=>`/maplibre-gl/${e}/${L}`,$=null;function E(){return $??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl(j(e.getVersion())),e)).catch(e=>{throw $=null,e}),$}var S=null;var B=24,z=28,A=29;function T(e){const t=[...e].sort((e,t)=>e-t),n=[];for(let e=0;e<t.length;){let r=e;for(;r+1<t.length&&t[r+1]===t[r]+1;)r++;n.push(r===e?String(t[e]):`${t[e]}–${t[r]}`),e=r+1}return n.join(", ")}function R(e){const t=Math.max(z,12+8*e.length);return t+t%2}var O=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function W(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var F=e=>O(e.x,e.y,e.width,e.height);function K(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(W(F(e[t]),F(e[n])))return[e[t],e[n]];return null}function q(e,t=[]){const n=[],r=e=>t.some(t=>W(t,e));let o=e.filter(e=>null!==e.stop).sort((e,t)=>e.stop-t.stop).map(e=>({keys:[e.key],stops:[e.stop],x:e.x,y:e.y,width:z,height:z,under:0}));for(let e=K(o);e;e=K(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=R(T(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(F(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=O(t.x,t.y,B,B),l=o.find(t=>W(F(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const s=a.find(t=>W(F(t),e));s?s.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:B,height:B,under:0})}return{groups:[...o,...a],hidden:n}}function D(e,t,n){let r=-1/0;for(const o of t){const t=Math.max(Math.abs(o.x-e.x),Math.abs(o.y-e.y));r=Math.max(r,0===t?1/0:n+Math.log2(29/t))}return r}var H=(...e)=>e.filter(Boolean).join(" "),P=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function _(e){return e.split(/\s+/).some(e=>{const t=e.search(/[[(]/),n=t<0?e:e.slice(0,t),r=e.slice(n.lastIndexOf(":")+1);return r.startsWith("border-")&&!P.test(r.slice(7))})}var I="ring-2 ring-gray-900 ring-offset-2",U={portal:{frame:e=>H("relative min-h-72 overflow-hidden rounded-lg border border-line bg-gray-100",e&&"[&_canvas]:cursor-crosshair"),fill:"absolute inset-0",box:"h-full w-full",failed:"absolute inset-0 grid place-items-center p-6 text-center text-sm text-ink-faint",cardInline:"absolute bottom-3 left-3 right-3 z-10 max-h-[calc(100%-1.5rem)] max-w-md overflow-y-auto overscroll-contain",cardFloating:"w-[26rem] overflow-y-auto overscroll-contain",ring:"pointer-events-none rounded-full border-2 border-gray-900 bg-gray-900/15 shadow-[0_0_0_2px_var(--color-white,#fff)]",pinButton:(e,t)=>H("relative grid place-items-center rounded-full cursor-pointer",t&&(null!=e.stop?"h-7 w-7":"h-6 w-6")),pinMark:(e,t,n,r)=>{const o=t&&!r&&null==e.stop&&!e.dot;return H("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-sm transition-transform motion-reduce:transition-none",!_(e.tone)&&"border-white",e.tone,e.dot?"h-4 w-4 opacity-80":null!=e.stop?"h-7 w-7 text-xs ring-2 ring-gray-900":o?"h-8 w-8 text-xs [&_svg]:h-4 [&_svg]:w-4":"h-6 w-6 text-2xs [&_svg]:h-3.5 [&_svg]:w-3.5",t&&(o?"ring-2 ring-gray-900 ring-offset-1":I),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")},mark:e=>H("grid place-items-center border-2 px-0.5 text-xs font-semibold leading-none shadow-sm",e.stop?"h-7 min-w-7":"h-6 min-w-6",!_(e.tone??"")&&"border-white",e.tone??"bg-gray-900 text-on-accent"),groupButton:"grid place-items-center rounded-full cursor-pointer",groupDisc:(e,t,n)=>H("grid place-items-center rounded-full border-2 border-gray-700 bg-surface font-semibold leading-none text-ink-strongest shadow-sm",e?"h-7 w-full px-1 text-xs ring-2 ring-gray-900":t?"h-5 w-5 text-3xs":"h-6 w-6 text-2xs",n&&I),badge:e=>H("absolute -right-2 -top-2 grid h-4 min-w-4 place-items-center rounded-full px-0.5 text-3xs font-semibold leading-none shadow",e??"bg-surface text-ink-strongest"),iconHost:"contents"},site:{frame:e=>H("rosh-map-frame",e&&"rosh-map-frame--picking"),fill:"rosh-map-fill",box:"rosh-map-box",failed:"rosh-map-failed",cardInline:"rosh-map-card-inline",cardFloating:"rosh-map-card-floating",ring:"rosh-map-ring",pinButton:(e,t)=>H("rosh-map-target",t&&(null!=e.stop?"rosh-map-target--stop":"rosh-map-target--sized")),pinMark:(e,t,n,r)=>H("rosh-map-pin",e.dot?"rosh-map-pin--dot":null!=e.stop?"rosh-map-pin--stop":null,t&&!r&&null==e.stop&&!e.dot&&"rosh-map-pin--grown",t&&"rosh-map-pin--chosen",e.approximate&&"rosh-map-pin--approximate",e.faded&&!t&&"rosh-map-pin--faded",n&&"rosh-map-pin--pointed"),mark:e=>H("rosh-map-mark",e.stop&&"rosh-map-mark--stop"),groupButton:"rosh-map-target",groupDisc:(e,t,n)=>H("rosh-map-group",e?"rosh-map-group--stops":t?"rosh-map-group--dots":null,n&&"rosh-map-group--chosen"),badge:()=>"rosh-map-badge",iconHost:"rosh-map-icon",sheet:function(){return S??=import("efficient-shell/map-site.css").catch(e=>{throw S=null,e}),S}}},V="routes",Z=["routes-road","routes-estimate"];function J(e){const t=document.createElement("span");t.style.display="none",t.style.color=e,document.body.appendChild(t);const n=getComputedStyle(t).color||"#2563eb";return t.remove(),Q(n)}function Q(e){const t=document.createElement("canvas").getContext("2d");if(!t)return"#2563eb";t.fillStyle="#2563eb",t.fillStyle=e,t.fillRect(0,0,1,1);const[n,r,o]=t.getImageData(0,0,1,1).data;return`rgb(${n}, ${r}, ${o})`}var G={center:[30,20],zoom:1};var Y="http://www.w3.org/2000/svg",X=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,ee=(...e)=>e.filter(Boolean).join(" ");function te(e){const t=document.createElementNS(Y,"svg");t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("aria-hidden","true");for(const n of e){const e=document.createElementNS(Y,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function ne(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}function re({pins:n,selectedKey:r,focus:c,onSelect:m,ariaLabel:h,className:g="",children:b,routes:y,fitTo:k,attribution:v,marks:w,groupCrowded:L=!1,noun:j,highlightKey:$=null,picking:S=!1,onPick:A,card:R,cardMinMapWidth:O=480,fullScreen:W,initialView:F=G,cooperativeGestures:K=!1,look:H="portal",theme:P}){const _=o().map,I=a(null),Y=a(null),re=a(null),le=a(null),se=a([]),ie=a(/* @__PURE__ */new Map),ce=a(/* @__PURE__ */new Map),ue=a(/* @__PURE__ */new Map),de=a(null),pe=a(/* @__PURE__ */new Map),me=a(""),[he,ge]=l(!1),[fe,be]=l(!1),ye=e(),xe=P??(ye?"dark":"light"),ke=U[H],ve=a({onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke});s(()=>{ve.current={onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke}}),s(()=>{ke.sheet?.().catch(e=>console.warn("[map] could not load the look's stylesheet",e))},[ke]);const we=i(()=>{const e=re.current,{pins:t,selectedKey:n}=ve.current,r=n?t.find(e=>e.key===n):void 0;e&&r&&!e.getBounds().contains([r.lng,r.lat])&&e.easeTo({center:[r.lng,r.lat],duration:X()?0:400})},[]),Ne=a(!1),Me=i((e,t)=>{const n=re.current,r=le.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(ve.current.selectedKey??"");return void ve.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>ie.current.get(e).pin),l=new r.LngLatBounds([a[0].lng,a[0].lat],[a[0].lng,a[0].lat]);for(const e of a)l.extend([e.lng,e.lat]);const s=a.map(e=>n.project([e.lng,e.lat])),i=Math.max(...s.map((e,t)=>D(e,s.filter((e,n)=>n!==t),o))),{clientWidth:c,clientHeight:u}=n.getContainer(),d=n.cameraForBounds(l,{padding:Math.min(64,c/4,u/4)})?.zoom??18,p=document.activeElement===t;Ne.current=!0,n.once("moveend",()=>{if(Ne.current=!1,!p)return;const e=a[0].key,t=ie.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...ce.current.values()].find(t=>t.keys.includes(e))?.button;n?.focus({preventScroll:!0})}),n.easeTo({center:l.getCenter(),zoom:Math.min(18,Math.max(o+1,Math.min(d,i))),duration:X()?0:600})},[]),Ce=i(()=>{const e=re.current,t=le.current;if(!e||!t||!I.current||Ne.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l,looks:s}=ve.current;for(const[e,t]of ie.current){const a=s.pinMark(t.pin,e===n,e===r,o);t.mark.className!==a&&(t.mark.className=a);const l=e===n?"1":"";t.button.style.zIndex!==l&&(t.button.style.zIndex=l)}let i=null;if(o){const r=e.getContainer().getBoundingClientRect(),o=[...I.current.querySelectorAll("a[href], button, input, select, textarea, summary, [role='button'], [tabindex]:not([tabindex='-1'])")].filter(e=>!e.closest("[data-pin], [data-pin-group], .maplibregl-canvas")).map(e=>{const t=e.getBoundingClientRect(),n=e.closest("[data-map-card]")?.getBoundingClientRect()??t;return{left:Math.max(t.left,n.left)-r.left,top:Math.max(t.top,n.top)-r.top,right:Math.min(t.right,n.right)-r.left,bottom:Math.min(t.bottom,n.bottom)-r.top}}).filter(e=>e.right>e.left&&e.bottom>e.top);i=q([...ie.current.values()].map(({pin:t})=>{const n=e.project([t.lng,t.lat]);return{key:t.key,x:n.x,y:n.y,stop:t.stop??null}}),o);const c=e=>(l??a.places)(e),u=e.getZoom()<17.5?a.spread:a.cycle,d=(e,t)=>{const n=t?"":"none";e.style.display!==n&&(e.style.display=n)},p=/* @__PURE__ */new Map;for(const r of i.groups){const o=r.under>0?a.closeBy(r.under,c(r.under)):null,l=1===r.keys.length?ie.current.get(r.keys[0]):null;if(l){d(l.button,!0),l.button.setAttribute("aria-label",o?`${l.name}; ${o}`:l.name),l.button.title=o?`${l.title}\n${o}`:l.title;continue}for(const e of r.keys)d(ie.current.get(e).button,!1);const i=r.keys.join(" ");let m=ce.current.get(i);if(!m){const n=document.createElement("button");n.type="button",n.dataset.pinGroup="",n.className=s.groupButton,n.append(document.createElement("span"));const o=ie.current.get(r.keys[0]).pin,a={button:n,keys:r.keys,marker:new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)};n.addEventListener("click",e=>{e.stopPropagation(),Me(a.keys,n)}),m=a}m.keys=r.keys;const h=r.keys.map(e=>ie.current.get(e)),g=r.stops.length>0?T(r.stops):String(h.length),f=r.stops.length>0?a.stops(g):a.group(h.length,c(h.length));m.button.style.width=`${r.width}px`,m.button.style.height=`${r.height}px`,m.button.setAttribute("aria-label",`${f}: ${h.map(e=>e.pin.label).join("; ")}. ${u}${o?`; ${o}`:""}.`),m.button.title=[`${f}:`,...h.map(e=>e.title),...o?[o]:[],u].join("\n");const b=m.button.firstElementChild;b.textContent=g;const y=s.groupDisc(r.stops.length>0,h.every(e=>e.pin.dot),null!=n&&r.keys.includes(n));b.className!==y&&(b.className=y),p.set(i,m)}for(const e of i.hidden)d(ie.current.get(e).button,!1);for(const[e,t]of ce.current)p.has(e)||t.marker.remove();ce.current=p}if(de.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?ie.current.get(r):void 0,n=r?ue.current.get(r):void 0,o=e?{at:ie.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?z:B),height:t.button.offsetHeight||(null!=t.pin.stop?z:B)}:n?{at:n.mark,width:n.element.offsetWidth||z,height:n.element.offsetHeight||z}:null,a=de.current.getElement();a.style.display=o?"":"none",o&&(de.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Me]);s(()=>{if(Ce(),!I.current)return;const e=new ResizeObserver(()=>Ce());e.observe(I.current);for(const t of I.current.children)t.contains(Y.current)||e.observe(t);return()=>e.disconnect()}),s(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await E();if(e||!Y.current)return;le.current=o,t=new o.Map({container:Y.current,style:x[xe],center:F.center,zoom:F.zoom,attributionControl:v?{compact:!0,customAttribution:v}:{compact:!0},dragRotate:!1,pitchWithRotate:!1,touchPitch:!1,maxPitch:0,cooperativeGestures:"coarse"===K?window.matchMedia("(pointer: coarse)").matches:K}),t.touchZoomRotate.disableRotation(),t.keyboard.disableRotation(),t.addControl(new o.NavigationControl({showCompass:!1}),"top-right");const a=document.createElement("div");a.dataset.pinRing="",a.setAttribute("aria-hidden","true"),a.className=ve.current.looks.ring,a.style.display="none",de.current=new o.Marker({element:a,anchor:"center"}).setLngLat(F.center).addTo(t),t.on("click",e=>{ve.current.picking&&ve.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",Ce),t.on("moveend",Ce),t.on("resize",Ce),t.on("error",e=>console.warn("[map]",e.error?.message)),r=f(Y.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),we()}),n.observe(Y.current),re.current=t,ge(!0)}catch(t){console.error("[map] could not start",t),e||be(!0)}})(),()=>{e=!0,n?.disconnect(),r(),se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),de.current?.remove(),de.current=null,t?.remove(),re.current=null}},[]);const Le=a(xe);s(()=>{he&&re.current&&Le.current!==xe&&(Le.current=xe,re.current.setStyle(x[xe]))},[he,xe]),s(()=>{const e=re.current,t=le.current;if(!he||!e||!t)return;se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),ie.current.clear(),ue.current.clear();for(const e of pe.current.keys())n.some(t=>t.key===e)||pe.current.delete(e);const r=ve.current.strings;for(const o of n){const n=document.createElement("button");n.type="button",n.dataset.pin=o.key,n.className=ke.pinButton(o,L);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);n.setAttribute("aria-label",a),n.title=l;const s=document.createElement("span");if(ne(s,o.data),o.dot);else if(null!=o.iconNode){const e=pe.current.get(o.key);e&&s.append(e)}else o.icon?.length?s.append(te(o.icon)):s.textContent=null!=o.stop?String(o.stop):o.glyph;if(n.append(s),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=ke.badge(o.badgeTone),e.textContent=o.badge,n.appendChild(e)}n.addEventListener("click",e=>{e.stopPropagation(),ve.current.onSelect(o.key)}),se.current.push(new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),ie.current.set(o.key,{pin:o,button:n,mark:s,name:a,title:l})}for(const n of w??[]){const r=document.createElement("div");r.dataset.mapMark=n.key,ne(r,n.data),r.className=ke.mark(n),r.textContent=n.text,r.title=n.title??n.label,r.setAttribute("role","img"),r.setAttribute("aria-label",n.label),se.current.push(new t.Marker({element:r,anchor:"center"}).setLngLat([n.lng,n.lat]).addTo(e)),ue.current.set(n.key,{mark:n,element:r})}Ce()},[he,n,w,L,Ce,H]),s(()=>{he&&Ce()},[he,r,$,Ce]),s(()=>{if(!he||!r)return;const e=requestAnimationFrame(we);return()=>cancelAnimationFrame(e)},[he,r,we]),s(()=>{const e=re.current,t=le.current,r=k?[...n,...w??[]].filter(e=>k.includes(e.key)):n;if(!he||!e||!t||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(me.current===o)return;const a=""===me.current;if(me.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new t.LngLatBounds([r[0].lng,r[0].lat],[r[0].lng,r[0].lat]);for(const e of r)l.extend([e.lng,e.lat]);e.fitBounds(l,{padding:48,maxZoom:14,animate:!a})},[he,n,w,k]),s(()=>{const e=re.current;if(!he||!e)return;const t=(y??[]).filter(e=>e.coordinates.length>=2),n=[...new Set(t.flatMap(e=>e.attribution?[e.attribution]:[]))].join(" · "),r=()=>{const r=function(){const e=document.createElement("span");e.className="text-blue-600",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e).color||"#2563eb";return e.remove(),Q(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?J(e.color):r},geometry:{type:"LineString",coordinates:e.coordinates}}))},a=["case",["get","faded"],.25,.85],l=["get","color"],s=e.getSource(V);if(s&&(s.attribution||"")!==n){for(const t of Z)e.getLayer(t)&&e.removeLayer(t);e.removeSource(V)}const i=e.getSource(V);i?i.setData(o):e.addSource(V,{type:"geojson",data:o,...n?{attribution:n}:{}}),e.getLayer("routes-road")||e.addLayer({id:"routes-road",type:"line",source:V,filter:["!",["get","estimate"]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":4,"line-opacity":a}}),e.getLayer("routes-estimate")||e.addLayer({id:"routes-estimate",type:"line",source:V,filter:["get","estimate"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":3,"line-dasharray":[1.5,1.5],"line-opacity":a}})},o=()=>{try{r()}catch(e){console.debug("[map] routes wait for the style",e)}};return o(),e.on("style.load",o),e.once("idle",o),()=>{e.off("style.load",o),e.off("idle",o)}},[he,y,xe]),s(()=>{const e=re.current;if(!he||!e||!c)return;const t=n.find(e=>e.key===c.key);if(!t)return;const r=e.getZoom(),o=L?D(e.project([t.lng,t.lat]),n.filter(e=>e.key!==t.key).map(t=>e.project([t.lng,t.lat])),r):-1/0,a={center:[t.lng,t.lat],zoom:Math.min(18,Math.max(r,13,o))};X()?e.jumpTo(a):e.flyTo({...a,duration:600})},[he,c?.n]);const[je,$e]=l(!1);s(()=>{const e=I.current;if(!e)return;const t=()=>$e(e.clientWidth<O);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[O]);const Ee=r?n.find(e=>e.key===r)??null:null,Se=Ee?.key??null,Be=Ee?.lng??0,ze=Ee?.lat??0,Ae=he&&!je&&null!=R&&!!Ee,[Te,Re]=l(null);s(()=>{const e=re.current,t=le.current;if(!(Ae&&e&&t&&Se))return;const n=document.createElement("div");n.dataset.mapCard="",n.className=ve.current.looks.cardFloating;const r=new t.Popup({anchor:"bottom",offset:N,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([Be,ze]).setDOMContent(n).addTo(e),o=r.getElement(),a=o.querySelector(".maplibregl-popup-content");a&&Object.assign(a.style,{padding:"0",background:"transparent",borderRadius:"0",boxShadow:"none"});const l=o.querySelector(".maplibregl-popup-tip"),s=ve.current.looks===U.site?"var(--rosh-map-pin, #111)":"var(--color-gray-600, #4b5563)";l&&Object.assign(l.style,{borderTopColor:s,borderBottomColor:s}),Re(n);let i=!1,c=!1;const u=(t=!0)=>{if(c)return;if(e.isMoving())return void(i||(i=!0,e.once("moveend",()=>{i=!1,u()})));const{clientWidth:o,clientHeight:a}=e.getContainer(),l=function(e,t){const n=e.getBoundingClientRect().top,r=[...e.querySelectorAll(".maplibregl-ctrl-top-left > *, .maplibregl-ctrl-top-right > *"),...t?.querySelectorAll(":scope > [data-map-control]")??[]];let o=0;for(const e of r){const t=e.getBoundingClientRect();t.height>0&&(o=Math.max(o,t.bottom-n))}return o}(e.getContainer(),I.current)+8,s=`${M(a,l)}px`;n.style.maxHeight!==s&&(n.style.maxHeight=s);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=C(e.project(p),{width:d.offsetWidth,height:d.offsetHeight},{width:o,height:a},l);r.options.anchor!==m&&(r.options.anchor=m,r.setLngLat(p)),!t||0===h.x&&0===h.y||e.panBy([-h.x,-h.y],{duration:X()?0:250}),Ce()},d=new ResizeObserver(()=>u());d.observe(n);const p=()=>u(),m=()=>{i||u(!1)};e.on("resize",p),e.on("moveend",m);let h=!1;const g=ie.current,f=e=>{h=n.contains(e.target)};return document.addEventListener("focusin",f),()=>{if(c=!0,d.disconnect(),e.off("resize",p),e.off("moveend",m),document.removeEventListener("focusin",f),r.remove(),Re(null),h&&(!document.activeElement||document.activeElement===document.body)){const e=g.get(Se)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[Ae,Se,Be,ze,Ce]);const Oe=W?.active??!1,We=a(W?.onChange);s(()=>{We.current=W?.onChange}),s(()=>{if(!W)return;const e=document.documentElement;Oe&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!Oe&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[Oe]);const Fe=!!W;return s(()=>{if(!Fe)return;const e=()=>{document.fullscreenElement||We.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[Fe]),/* @__PURE__ */d("div",{ref:I,className:ee(ke.frame(S),g),children:[
3
- /* @__PURE__ */p("div",{className:ke.fill,children:/* @__PURE__ */p("div",{ref:Y,className:ke.box,role:"region","aria-label":h})}),fe&&/* @__PURE__ */p("p",{className:ke.failed,children:_.failed}),W&&/* @__PURE__ */p(t,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>W.onChange(!W.active),leftIcon:/* @__PURE__ */p(ae,{leave:W.active}),children:W.active?_.leaveFullScreen:_.fullScreen}),b,null!=R&&!Ae&&/* @__PURE__ */p("div",{"data-map-card":"",className:ke.cardInline,children:R}),Ae&&Te?u(R,Te):null,he&&/* @__PURE__ */p(oe,{pins:n,hosts:pe.current,hostClass:ke.iconHost})]})}function oe({pins:e,hosts:t,hostClass:n}){/* @__PURE__ */
2
+ import{useRootIsDark as e}from"../chunk-UPXDDO3U.js";import{Button_default as t}from"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import{Icon as n}from"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as r}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as o}from"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";import{useRef as a,useState as l,useEffect as s,useCallback as i,useMemo as c}from"react";import{createPortal as u}from"react-dom";import{jsxs as d,jsx as p,Fragment as m}from"react/jsx-runtime";import{useQuery as h}from"@tanstack/react-query";var g="maplibregl-compact-show";function f(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(g)&&(e.classList.remove(g),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var b="https://tiles.openfreemap.org",y={connect:[b]},x={light:`${b}/styles/positron`,dark:`${b}/styles/dark`},k=20,v=12,w=480,N={center:[0,0],left:[k,0],right:[-20,0],top:[0,k],"top-left":[0,k],"top-right":[0,k],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},M=(e,t=12)=>Math.max(0,Math.floor(e-t-v-k-10-16));function C(e,t,n,r=12){const o=e.y-k-r,a=n.height-e.y-k-v,l=t.height<=o||t.height>a&&o>=a,s=l?Math.max(0,t.height-o):-Math.max(0,t.height-a);let i="",c=0;return e.x-t.width/2<v?(i="-left",c=Math.max(0,v-e.x)):e.x+t.width/2>n.width-v&&(i="-right",c=-Math.max(0,e.x-(n.width-v))),{anchor:`${l?"bottom":"top"}${i}`,move:{x:c,y:s}}}var L="maplibre-gl-worker.mjs",j=e=>`/maplibre-gl/${e}/${L}`,$=null;function E(){return $??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl(j(e.getVersion())),e)).catch(e=>{throw $=null,e}),$}var S=null;var B=24,z=28,A=29;function R(e){const t=[...e].sort((e,t)=>e-t),n=[];for(let e=0;e<t.length;){let r=e;for(;r+1<t.length&&t[r+1]===t[r]+1;)r++;n.push(r===e?String(t[e]):`${t[e]}–${t[r]}`),e=r+1}return n.join(", ")}function T(e){const t=Math.max(z,12+8*e.length);return t+t%2}var O=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function F(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var W=e=>O(e.x,e.y,e.width,e.height);function K(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(F(W(e[t]),W(e[n])))return[e[t],e[n]];return null}function P(e,t=[]){const n=[],r=e=>t.some(t=>F(t,e));let o=e.filter(e=>null!==e.stop).sort((e,t)=>e.stop-t.stop).map(e=>({keys:[e.key],stops:[e.stop],x:e.x,y:e.y,width:z,height:z,under:0}));for(let e=K(o);e;e=K(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=T(R(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(W(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=O(t.x,t.y,B,B),l=o.find(t=>F(W(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const s=a.find(t=>F(W(t),e));s?s.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:B,height:B,under:0})}return{groups:[...o,...a],hidden:n}}function q(e,t,n){let r=-1/0;for(const o of t){const t=Math.max(Math.abs(o.x-e.x),Math.abs(o.y-e.y));r=Math.max(r,0===t?1/0:n+Math.log2(29/t))}return r}var D=(...e)=>e.filter(Boolean).join(" "),H=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function _(e){return e.split(/\s+/).some(e=>{const t=e.search(/[[(]/),n=t<0?e:e.slice(0,t),r=e.slice(n.lastIndexOf(":")+1);return r.startsWith("border-")&&!H.test(r.slice(7))})}var I="ring-2 ring-gray-900 ring-offset-2",U={portal:{frame:e=>D("relative min-h-72 overflow-hidden rounded-lg border border-line bg-gray-100",e&&"[&_canvas]:cursor-crosshair"),fill:"absolute inset-0",box:"h-full w-full",failed:"absolute inset-0 grid place-items-center p-6 text-center text-sm text-ink-faint",cardInline:"absolute bottom-3 left-3 right-3 z-10 max-h-[calc(100%-1.5rem)] max-w-md overflow-y-auto overscroll-contain",cardFloating:"w-[26rem] overflow-y-auto overscroll-contain",ring:"pointer-events-none rounded-full border-2 border-gray-900 bg-gray-900/15 shadow-[0_0_0_2px_var(--color-white,#fff)]",pinButton:(e,t)=>D("relative grid place-items-center rounded-full cursor-pointer",t&&(null!=e.stop?"h-7 w-7":"h-6 w-6")),pinMark:(e,t,n,r)=>{const o=t&&!r&&null==e.stop&&!e.dot;return D("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-sm transition-transform motion-reduce:transition-none",!_(e.tone)&&"border-white",e.tone,e.dot?"h-4 w-4 opacity-80":null!=e.stop?"h-7 w-7 text-xs ring-2 ring-gray-900":o?"h-8 w-8 text-xs [&_svg]:h-4 [&_svg]:w-4":"h-6 w-6 text-2xs [&_svg]:h-3.5 [&_svg]:w-3.5",t&&(o?"ring-2 ring-gray-900 ring-offset-1":I),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")},mark:e=>D("grid place-items-center border-2 px-0.5 text-xs font-semibold leading-none shadow-sm",e.stop?"h-7 min-w-7":"h-6 min-w-6",!_(e.tone??"")&&"border-white",e.tone??"bg-gray-900 text-on-accent"),groupButton:"grid place-items-center rounded-full cursor-pointer",groupDisc:(e,t,n)=>D("grid place-items-center rounded-full border-2 border-gray-700 bg-surface font-semibold leading-none text-ink-strongest shadow-sm",e?"h-7 w-full px-1 text-xs ring-2 ring-gray-900":t?"h-5 w-5 text-3xs":"h-6 w-6 text-2xs",n&&I),badge:e=>D("absolute -right-2 -top-2 grid h-4 min-w-4 place-items-center rounded-full px-0.5 text-3xs font-semibold leading-none shadow",e??"bg-surface text-ink-strongest"),iconHost:"contents"},site:{frame:e=>D("rosh-map-frame",e&&"rosh-map-frame--picking"),fill:"rosh-map-fill",box:"rosh-map-box",failed:"rosh-map-failed",cardInline:"rosh-map-card-inline",cardFloating:"rosh-map-card-floating",ring:"rosh-map-ring",pinButton:(e,t)=>D("rosh-map-target",t&&(null!=e.stop?"rosh-map-target--stop":"rosh-map-target--sized")),pinMark:(e,t,n,r)=>D("rosh-map-pin",e.dot?"rosh-map-pin--dot":null!=e.stop?"rosh-map-pin--stop":null,t&&!r&&null==e.stop&&!e.dot&&"rosh-map-pin--grown",t&&"rosh-map-pin--chosen",e.approximate&&"rosh-map-pin--approximate",e.faded&&!t&&"rosh-map-pin--faded",n&&"rosh-map-pin--pointed"),mark:e=>D("rosh-map-mark",e.stop&&"rosh-map-mark--stop"),groupButton:"rosh-map-target",groupDisc:(e,t,n)=>D("rosh-map-group",e?"rosh-map-group--stops":t?"rosh-map-group--dots":null,n&&"rosh-map-group--chosen"),badge:()=>"rosh-map-badge",iconHost:"rosh-map-icon",sheet:function(){return S??=import("efficient-shell/map-site.css").catch(e=>{throw S=null,e}),S}}},V="routes",Z=["routes-road","routes-estimate"];function J(e){const t=document.createElement("span");t.style.display="none",t.style.color=e,document.body.appendChild(t);const n=getComputedStyle(t).color||"#2563eb";return t.remove(),Y(n)}function Y(e){const t=document.createElement("canvas").getContext("2d");if(!t)return"#2563eb";t.fillStyle="#2563eb",t.fillStyle=e,t.fillRect(0,0,1,1);const[n,r,o]=t.getImageData(0,0,1,1).data;return`rgb(${n}, ${r}, ${o})`}var G={center:[30,20],zoom:1};var Q="http://www.w3.org/2000/svg",X=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,ee=(...e)=>e.filter(Boolean).join(" ");function te(e){const t=document.createElementNS(Q,"svg");t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2"),t.setAttribute("aria-hidden","true");for(const n of e){const e=document.createElementNS(Q,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function ne(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}function re({pins:n,selectedKey:r,focus:c,onSelect:m,ariaLabel:h,className:g="",children:b,routes:y,fitTo:k,attribution:v,marks:w,groupCrowded:L=!1,noun:j,highlightKey:$=null,picking:S=!1,onPick:A,card:T,cardMinMapWidth:O=480,fullScreen:F,initialView:W=G,cooperativeGestures:K=!1,look:D="portal",theme:H}){const _=o().map,I=a(null),Q=a(null),re=a(null),le=a(null),se=a([]),ie=a(/* @__PURE__ */new Map),ce=a(/* @__PURE__ */new Map),ue=a(/* @__PURE__ */new Map),de=a(null),pe=a(/* @__PURE__ */new Map),me=a(""),[he,ge]=l(!1),[fe,be]=l(!1),ye=e(),xe=H??(ye?"dark":"light"),ke=U[D],ve=a({onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke});s(()=>{ve.current={onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke}}),s(()=>{ke.sheet?.().catch(e=>console.warn("[map] could not load the look's stylesheet",e))},[ke]);const we=i(()=>{const e=re.current,{pins:t,selectedKey:n}=ve.current,r=n?t.find(e=>e.key===n):void 0;e&&r&&!e.getBounds().contains([r.lng,r.lat])&&e.easeTo({center:[r.lng,r.lat],duration:X()?0:400})},[]),Ne=a(!1),Me=i((e,t)=>{const n=re.current,r=le.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(ve.current.selectedKey??"");return void ve.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>ie.current.get(e).pin),l=new r.LngLatBounds([a[0].lng,a[0].lat],[a[0].lng,a[0].lat]);for(const e of a)l.extend([e.lng,e.lat]);const s=a.map(e=>n.project([e.lng,e.lat])),i=Math.max(...s.map((e,t)=>q(e,s.filter((e,n)=>n!==t),o))),{clientWidth:c,clientHeight:u}=n.getContainer(),d=n.cameraForBounds(l,{padding:Math.min(64,c/4,u/4)})?.zoom??18,p=document.activeElement===t;Ne.current=!0,n.once("moveend",()=>{if(Ne.current=!1,!p)return;const e=a[0].key,t=ie.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...ce.current.values()].find(t=>t.keys.includes(e))?.button;n?.focus({preventScroll:!0})}),n.easeTo({center:l.getCenter(),zoom:Math.min(18,Math.max(o+1,Math.min(d,i))),duration:X()?0:600})},[]),Ce=i(()=>{const e=re.current,t=le.current;if(!e||!t||!I.current||Ne.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l,looks:s}=ve.current;for(const[e,t]of ie.current){const a=s.pinMark(t.pin,e===n,e===r,o);t.mark.className!==a&&(t.mark.className=a);const l=e===n?"1":"";t.button.style.zIndex!==l&&(t.button.style.zIndex=l)}let i=null;if(o){const r=e.getContainer().getBoundingClientRect(),o=[...I.current.querySelectorAll("a[href], button, input, select, textarea, summary, [role='button'], [tabindex]:not([tabindex='-1'])")].filter(e=>!e.closest("[data-pin], [data-pin-group], .maplibregl-canvas")).map(e=>{const t=e.getBoundingClientRect(),n=e.closest("[data-map-card]")?.getBoundingClientRect()??t;return{left:Math.max(t.left,n.left)-r.left,top:Math.max(t.top,n.top)-r.top,right:Math.min(t.right,n.right)-r.left,bottom:Math.min(t.bottom,n.bottom)-r.top}}).filter(e=>e.right>e.left&&e.bottom>e.top);i=P([...ie.current.values()].map(({pin:t})=>{const n=e.project([t.lng,t.lat]);return{key:t.key,x:n.x,y:n.y,stop:t.stop??null}}),o);const c=e=>(l??a.places)(e),u=e.getZoom()<17.5?a.spread:a.cycle,d=(e,t)=>{const n=t?"":"none";e.style.display!==n&&(e.style.display=n)},p=/* @__PURE__ */new Map;for(const r of i.groups){const o=r.under>0?a.closeBy(r.under,c(r.under)):null,l=1===r.keys.length?ie.current.get(r.keys[0]):null;if(l){d(l.button,!0),l.button.setAttribute("aria-label",o?`${l.name}; ${o}`:l.name),l.button.title=o?`${l.title}\n${o}`:l.title;continue}for(const e of r.keys)d(ie.current.get(e).button,!1);const i=r.keys.join(" ");let m=ce.current.get(i);if(!m){const n=document.createElement("button");n.type="button",n.dataset.pinGroup="",n.className=s.groupButton,n.append(document.createElement("span"));const o=ie.current.get(r.keys[0]).pin,a={button:n,keys:r.keys,marker:new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)};n.addEventListener("click",e=>{e.stopPropagation(),Me(a.keys,n)}),m=a}m.keys=r.keys;const h=r.keys.map(e=>ie.current.get(e)),g=r.stops.length>0?R(r.stops):String(h.length),f=r.stops.length>0?a.stops(g):a.group(h.length,c(h.length));m.button.style.width=`${r.width}px`,m.button.style.height=`${r.height}px`,m.button.setAttribute("aria-label",`${f}: ${h.map(e=>e.pin.label).join("; ")}. ${u}${o?`; ${o}`:""}.`),m.button.title=[`${f}:`,...h.map(e=>e.title),...o?[o]:[],u].join("\n");const b=m.button.firstElementChild;b.textContent=g;const y=s.groupDisc(r.stops.length>0,h.every(e=>e.pin.dot),null!=n&&r.keys.includes(n));b.className!==y&&(b.className=y),p.set(i,m)}for(const e of i.hidden)d(ie.current.get(e).button,!1);for(const[e,t]of ce.current)p.has(e)||t.marker.remove();ce.current=p}if(de.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?ie.current.get(r):void 0,n=r?ue.current.get(r):void 0,o=e?{at:ie.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?z:B),height:t.button.offsetHeight||(null!=t.pin.stop?z:B)}:n?{at:n.mark,width:n.element.offsetWidth||z,height:n.element.offsetHeight||z}:null,a=de.current.getElement();a.style.display=o?"":"none",o&&(de.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Me]);s(()=>{if(Ce(),!I.current)return;const e=new ResizeObserver(()=>Ce());e.observe(I.current);for(const t of I.current.children)t.contains(Q.current)||e.observe(t);return()=>e.disconnect()}),s(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await E();if(e||!Q.current)return;le.current=o,t=new o.Map({container:Q.current,style:x[xe],center:W.center,zoom:W.zoom,attributionControl:v?{compact:!0,customAttribution:v}:{compact:!0},dragRotate:!1,pitchWithRotate:!1,touchPitch:!1,maxPitch:0,cooperativeGestures:"coarse"===K?window.matchMedia("(pointer: coarse)").matches:K}),t.touchZoomRotate.disableRotation(),t.keyboard.disableRotation(),t.addControl(new o.NavigationControl({showCompass:!1}),"top-right");const a=document.createElement("div");a.dataset.pinRing="",a.setAttribute("aria-hidden","true"),a.className=ve.current.looks.ring,a.style.display="none",de.current=new o.Marker({element:a,anchor:"center"}).setLngLat(W.center).addTo(t),t.on("click",e=>{ve.current.picking&&ve.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",Ce),t.on("moveend",Ce),t.on("resize",Ce),t.on("error",e=>console.warn("[map]",e.error?.message)),r=f(Q.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),we()}),n.observe(Q.current),re.current=t,ge(!0)}catch(t){console.error("[map] could not start",t),e||be(!0)}})(),()=>{e=!0,n?.disconnect(),r(),se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),de.current?.remove(),de.current=null,t?.remove(),re.current=null}},[]);const Le=a(xe);s(()=>{he&&re.current&&Le.current!==xe&&(Le.current=xe,re.current.setStyle(x[xe]))},[he,xe]),s(()=>{const e=re.current,t=le.current;if(!he||!e||!t)return;se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),ie.current.clear(),ue.current.clear();for(const e of pe.current.keys())n.some(t=>t.key===e)||pe.current.delete(e);const r=ve.current.strings;for(const o of n){const n=document.createElement("button");n.type="button",n.dataset.pin=o.key,n.className=ke.pinButton(o,L);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);n.setAttribute("aria-label",a),n.title=l;const s=document.createElement("span");if(ne(s,o.data),o.dot);else if(null!=o.iconNode){const e=pe.current.get(o.key);e&&s.append(e)}else o.icon?.length?s.append(te(o.icon)):s.textContent=null!=o.stop?String(o.stop):o.glyph;if(n.append(s),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=ke.badge(o.badgeTone),e.textContent=o.badge,n.appendChild(e)}n.addEventListener("click",e=>{e.stopPropagation(),ve.current.onSelect(o.key)}),se.current.push(new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),ie.current.set(o.key,{pin:o,button:n,mark:s,name:a,title:l})}for(const n of w??[]){const r=document.createElement("div");r.dataset.mapMark=n.key,ne(r,n.data),r.className=ke.mark(n),r.textContent=n.text,r.title=n.title??n.label,r.setAttribute("role","img"),r.setAttribute("aria-label",n.label),se.current.push(new t.Marker({element:r,anchor:"center"}).setLngLat([n.lng,n.lat]).addTo(e)),ue.current.set(n.key,{mark:n,element:r})}Ce()},[he,n,w,L,Ce,D]),s(()=>{he&&Ce()},[he,r,$,Ce]),s(()=>{if(!he||!r)return;const e=requestAnimationFrame(we);return()=>cancelAnimationFrame(e)},[he,r,we]),s(()=>{const e=re.current,t=le.current,r=k?[...n,...w??[]].filter(e=>k.includes(e.key)):n;if(!he||!e||!t||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(me.current===o)return;const a=""===me.current;if(me.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new t.LngLatBounds([r[0].lng,r[0].lat],[r[0].lng,r[0].lat]);for(const e of r)l.extend([e.lng,e.lat]);e.fitBounds(l,{padding:48,maxZoom:14,animate:!a})},[he,n,w,k]),s(()=>{const e=re.current;if(!he||!e)return;const t=(y??[]).filter(e=>e.coordinates.length>=2),n=[...new Set(t.flatMap(e=>e.attribution?[e.attribution]:[]))].join(" · "),r=()=>{const r=function(){const e=document.createElement("span");e.className="text-blue-600",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e).color||"#2563eb";return e.remove(),Y(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?J(e.color):r},geometry:{type:"LineString",coordinates:e.coordinates}}))},a=["case",["get","faded"],.25,.85],l=["get","color"],s=e.getSource(V);if(s&&(s.attribution||"")!==n){for(const t of Z)e.getLayer(t)&&e.removeLayer(t);e.removeSource(V)}const i=e.getSource(V);i?i.setData(o):e.addSource(V,{type:"geojson",data:o,...n?{attribution:n}:{}}),e.getLayer("routes-road")||e.addLayer({id:"routes-road",type:"line",source:V,filter:["!",["get","estimate"]],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":4,"line-opacity":a}}),e.getLayer("routes-estimate")||e.addLayer({id:"routes-estimate",type:"line",source:V,filter:["get","estimate"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":3,"line-dasharray":[1.5,1.5],"line-opacity":a}})},o=()=>{try{r()}catch(e){console.debug("[map] routes wait for the style",e)}};return o(),e.on("style.load",o),e.once("idle",o),()=>{e.off("style.load",o),e.off("idle",o)}},[he,y,xe]),s(()=>{const e=re.current;if(!he||!e||!c)return;const t=n.find(e=>e.key===c.key);if(!t)return;const r=e.getZoom(),o=L?q(e.project([t.lng,t.lat]),n.filter(e=>e.key!==t.key).map(t=>e.project([t.lng,t.lat])),r):-1/0,a={center:[t.lng,t.lat],zoom:Math.min(18,Math.max(r,13,o))};X()?e.jumpTo(a):e.flyTo({...a,duration:600})},[he,c?.n]);const[je,$e]=l(!1);s(()=>{const e=I.current;if(!e)return;const t=()=>$e(e.clientWidth<O);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[O]);const Ee=r?n.find(e=>e.key===r)??null:null,Se=Ee?.key??null,Be=Ee?.lng??0,ze=Ee?.lat??0,Ae=he&&!je&&null!=T&&!!Ee,[Re,Te]=l(null);s(()=>{const e=re.current,t=le.current;if(!(Ae&&e&&t&&Se))return;const n=document.createElement("div");n.dataset.mapCard="",n.className=ve.current.looks.cardFloating;const r=new t.Popup({anchor:"bottom",offset:N,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([Be,ze]).setDOMContent(n).addTo(e),o=r.getElement(),a=o.querySelector(".maplibregl-popup-content");a&&Object.assign(a.style,{padding:"0",background:"transparent",borderRadius:"0",boxShadow:"none"});const l=o.querySelector(".maplibregl-popup-tip"),s=ve.current.looks===U.site?"var(--rosh-map-pin, #111)":"var(--color-gray-600, #4b5563)";l&&Object.assign(l.style,{borderTopColor:s,borderBottomColor:s}),Te(n);let i=!1,c=!1;const u=(t=!0)=>{if(c)return;if(e.isMoving())return void(i||(i=!0,e.once("moveend",()=>{i=!1,u()})));const{clientWidth:o,clientHeight:a}=e.getContainer(),l=function(e,t){const n=e.getBoundingClientRect().top,r=[...e.querySelectorAll(".maplibregl-ctrl-top-left > *, .maplibregl-ctrl-top-right > *"),...t?.querySelectorAll(":scope > [data-map-control]")??[]];let o=0;for(const e of r){const t=e.getBoundingClientRect();t.height>0&&(o=Math.max(o,t.bottom-n))}return o}(e.getContainer(),I.current)+8,s=`${M(a,l)}px`;n.style.maxHeight!==s&&(n.style.maxHeight=s);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=C(e.project(p),{width:d.offsetWidth,height:d.offsetHeight},{width:o,height:a},l);r.options.anchor!==m&&(r.options.anchor=m,r.setLngLat(p)),!t||0===h.x&&0===h.y||e.panBy([-h.x,-h.y],{duration:X()?0:250}),Ce()},d=new ResizeObserver(()=>u());d.observe(n);const p=()=>u(),m=()=>{i||u(!1)};e.on("resize",p),e.on("moveend",m);let h=!1;const g=ie.current,f=e=>{h=n.contains(e.target)};return document.addEventListener("focusin",f),()=>{if(c=!0,d.disconnect(),e.off("resize",p),e.off("moveend",m),document.removeEventListener("focusin",f),r.remove(),Te(null),h&&(!document.activeElement||document.activeElement===document.body)){const e=g.get(Se)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[Ae,Se,Be,ze,Ce]);const Oe=F?.active??!1,Fe=a(F?.onChange);s(()=>{Fe.current=F?.onChange}),s(()=>{if(!F)return;const e=document.documentElement;Oe&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!Oe&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[Oe]);const We=!!F;return s(()=>{if(!We)return;const e=()=>{document.fullscreenElement||Fe.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[We]),/* @__PURE__ */d("div",{ref:I,className:ee(ke.frame(S),g),children:[
3
+ /* @__PURE__ */p("div",{className:ke.fill,children:/* @__PURE__ */p("div",{ref:Q,className:ke.box,role:"region","aria-label":h})}),fe&&/* @__PURE__ */p("p",{className:ke.failed,children:_.failed}),F&&/* @__PURE__ */p(t,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>F.onChange(!F.active),leftIcon:/* @__PURE__ */p(ae,{leave:F.active}),children:F.active?_.leaveFullScreen:_.fullScreen}),b,null!=T&&!Ae&&/* @__PURE__ */p("div",{"data-map-card":"",className:ke.cardInline,children:T}),Ae&&Re?u(T,Re):null,he&&/* @__PURE__ */p(oe,{pins:n,hosts:pe.current,hostClass:ke.iconHost})]})}function oe({pins:e,hosts:t,hostClass:n}){/* @__PURE__ */
4
4
  return p(m,{children:e.map(e=>{if(null==e.iconNode||e.dot)return null;let r=t.get(e.key);return r||(r=document.createElement("span"),r.className=n,t.set(e.key,r)),u(e.iconNode,r,e.key)})})}function ae({leave:e}){/* @__PURE__ */
5
5
  return p(n,e?{name:"collapse","aria-hidden":"true",className:"h-4 w-4",strokeWidth:2}:{name:"expand","aria-hidden":"true",className:"h-4 w-4",strokeWidth:2})}function le(){const[e,t]=l(null);return{highlightKey:e,pointAt:i(e=>{const n=()=>t(e),r=()=>t(t=>t===e?null:t);return{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r}},[])}}var se=3e3,ie=e=>!!e?.pending&&3e3,ce=e=>`${e.kind}:${e.id}`,ue=e=>("located"===e.placement||"approximate"===e.placement)&&null!=e.lat&&null!=e.lng;function de(e){switch(e){case"located":return null;case"approximate":return"Approximate: only the suburb or postcode matched";case"pending":return"Locating";case"not_found":return"Not on the map: address not found";case"failed":return"Not on the map: the map service could not be reached";case"no_address":return"Not on the map: no city or postcode"}}var pe={importer:{label:"Importer",tone:"bg-sky-600 text-white"},dealer:{label:"Dealer",tone:"bg-purple-600 text-white"},retail:{label:"Retail",tone:"bg-green-600 text-white"},supplier:{label:"Supplier",tone:"bg-sky-600 text-white"},delivery_location:{label:"Delivery location",tone:"bg-amber-600 text-white"},warehouse:{label:"Warehouse",tone:"bg-amber-600 text-white"}},me=["importer","dealer","retail","supplier","delivery_location","warehouse"];function he(e){return"supplier"===e.kind?"supplier":"customer"===e.kind?e.category||"importer":e.kind}var ge=(e,t=pe)=>t[e]?.tone??"bg-gray-700 text-white",fe=(e,t=pe)=>t[e]?.label??e,be=(e,t)=>ge(he(e),t);function ye(e,t,n=pe){return null!=t?String(t):(n[he(e)]?.label??"").charAt(0).toUpperCase()}var xe=["delivery_location","warehouse"];function ke(e,t=xe){const n=/* @__PURE__ */new Map;let r=0;for(const o of e)t.includes(o.kind)&&n.set(ce(o),++r);return n}function ve(e){const t={onMap:0,approximate:0,pending:0,off:0};for(const n of e)ue(n)?(t.onMap+=1,"approximate"===n.placement&&(t.approximate+=1)):"pending"===n.placement?t.pending+=1:t.off+=1;return t}function we(e){const t=[`${e.onMap} on the map`];return e.approximate&&t.push(`${e.approximate} approximate`),e.pending&&t.push(`${e.pending} locating`),e.off&&t.push(`${e.off} not on the map`),t.join(" · ")}function Ne(e){const t=[...new Set(e.filter(ue).map(he))];return[...me.filter(e=>t.includes(e)),...t.filter(e=>!me.includes(e))]}function Me(e,t){return e.filter(e=>!ue(e)&&"pending"!==e.placement).map(e=>{const n=t?.get(ce(e)),r=de(e.placement)?.replace(/^Not on the map: /,"")??"";return{key:ce(e),text:`${null!=n?`${n}. `:""}${e.label}: ${r}`}})}function Ce({categories:e,palette:t=pe,floating:n=!0}){return e.length<2?null:/* @__PURE__ */p("div",{className:(n?"absolute left-3 top-3 z-10 ":"")+"flex flex-wrap gap-x-3 gap-y-1 rounded-lg border border-line bg-surface px-3 py-2 text-xs text-gray-600 shadow-sm",children:e.map(e=>/* @__PURE__ */d("span",{className:"inline-flex items-center gap-2",children:[
6
6
  /* @__PURE__ */p("span",{"aria-hidden":!0,className:`h-2.5 w-2.5 rounded-full ${ge(e,t)}`}),fe(e,t)]},e))})}function Le({point:e,number:r,onOpen:a,onClose:l,palette:s=pe}){const i=de(e.placement),c=he(e),u=o().map;/* @__PURE__ */
@@ -18,4 +18,4 @@ return d("section",{"aria-label":u,className:`flex min-w-0 flex-col ${g}`,childr
18
18
  /* @__PURE__ */d("div",{className:"absolute left-3 top-3 z-10 flex max-w-[70%] flex-col items-start gap-2",children:[
19
19
  /* @__PURE__ */p(Ce,{categories:j,palette:m,floating:!1}),y&&/* @__PURE__ */d("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface px-3 min-h-8 py-1 text-xs text-gray-600 shadow-sm",children:["Couldn’t load the locations.",
20
20
  /* @__PURE__ */p("button",{type:"button",onClick:()=>{x()},className:"font-medium text-blue-600 hover:text-blue-800 hover:underline",children:"Try again"})]}),!y&&($>0||L.length>0)&&/* @__PURE__ */d("div",{className:"max-w-full space-y-0.5 rounded-lg border border-line bg-surface px-3 py-2 text-xs shadow-sm","aria-live":"polite",children:[$>0&&/* @__PURE__ */d("p",{className:"flex items-center gap-2 text-ink-faint",children:[
21
- /* @__PURE__ */p(r,{}),"Locating ",$," address",1===$?"":"es"]}),L.slice(0,3).map(e=>/* @__PURE__ */p("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),L.length>3&&/* @__PURE__ */d("p",{className:"text-gray-500",children:["+",L.length-3," more not on the map"]})]})]}),E&&/* @__PURE__ */p(Le,{point:E,number:M.get(ce(E))??null,onOpen:S,onClose:()=>w(null),palette:m})]})]})}export{w as CARD_MIN_MAP_WIDTH,g as COMPACT_SHOW,re as EntityMap,$e as LocationsMap,L as MAPLIBRE_WORKER_FILE,A as MAP_APART_PX,pe as MAP_CATEGORIES,y as MAP_CSP_SOURCES,U as MAP_LOOKS,z as MAP_STOP_PX,x as MAP_STYLE_URLS,B as MAP_TARGET_PX,b as MAP_TILE_ORIGIN,Ce as MapLegend,se as PENDING_POLL_MS,xe as SECONDARY_KINDS,Le as SelectedCard,M as cardMaxHeight,fe as categoryLabel,ge as categoryTone,f as foldAttributionOnce,ue as isOnMap,q as layoutPins,Ne as legendCategories,E as loadMapLibre,ke as locationNumbers,j as mapLibreWorkerUrl,ie as mapPointsRefetchInterval,Me as offMapNotes,he as pinCategory,ye as pinGlyph,be as pinTone,C as placeCard,de as placementNote,ce as pointKey,T as stopsLabel,ve as summarize,we as summaryText,le as useMapHighlight,je as useMapPoints,D as zoomApart};
21
+ /* @__PURE__ */p(r,{}),"Locating ",$," address",1===$?"":"es"]}),L.slice(0,3).map(e=>/* @__PURE__ */p("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),L.length>3&&/* @__PURE__ */d("p",{className:"text-gray-500",children:["+",L.length-3," more not on the map"]})]})]}),E&&/* @__PURE__ */p(Le,{point:E,number:M.get(ce(E))??null,onOpen:S,onClose:()=>w(null),palette:m})]})]})}export{w as CARD_MIN_MAP_WIDTH,g as COMPACT_SHOW,re as EntityMap,$e as LocationsMap,L as MAPLIBRE_WORKER_FILE,A as MAP_APART_PX,pe as MAP_CATEGORIES,y as MAP_CSP_SOURCES,U as MAP_LOOKS,z as MAP_STOP_PX,x as MAP_STYLE_URLS,B as MAP_TARGET_PX,b as MAP_TILE_ORIGIN,Ce as MapLegend,se as PENDING_POLL_MS,xe as SECONDARY_KINDS,Le as SelectedCard,M as cardMaxHeight,fe as categoryLabel,ge as categoryTone,f as foldAttributionOnce,ue as isOnMap,P as layoutPins,Ne as legendCategories,E as loadMapLibre,ke as locationNumbers,j as mapLibreWorkerUrl,ie as mapPointsRefetchInterval,Me as offMapNotes,he as pinCategory,ye as pinGlyph,be as pinTone,C as placeCard,de as placementNote,ce as pointKey,R as stopsLabel,ve as summarize,we as summaryText,le as useMapHighlight,je as useMapPoints,q as zoomApart};
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import{Icon as e}from"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import{useBrowserLayoutEffect as t}from"../chunk-D65T4H6J.js";import{memo as r,useRef as o,useState as a,useMemo as s}from"react";import l from"react-markdown";import n from"remark-breaks";import m from"remark-gfm";import{jsx as d,jsxs as c}from"react/jsx-runtime";function i(){const e=this.data();(e.micromarkExtensions??=[]).push({disable:{null:["codeIndented","htmlFlow","htmlText","setextUnderline"]}})}var b={note:[m,n,i],article:[m,i]},x=({node:e,...t})=>/* @__PURE__ */d("a",{...t,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline break-all"}),g=({node:e,...t})=>/* @__PURE__ */d("code",{className:"rounded bg-gray-200 px-1 py-0.5 font-mono text-[0.85em] text-gray-800",...t}),h=e=>({node:t,...r})=>/* @__PURE__ */d("pre",{className:`${e} overflow-x-auto rounded-lg border border-gray-200 bg-gray-50 font-mono text-xs [&>code]:bg-transparent [&>code]:p-0 [&>code]:[font-size:inherit]`,...r}),p={th:({node:e,...t})=>/* @__PURE__ */d("th",{className:"border border-gray-200 bg-gray-50 px-2 py-1 text-left font-semibold text-gray-700",...t}),td:({node:e,...t})=>/* @__PURE__ */d("td",{className:"border border-gray-200 px-2 py-1 align-top",...t})},f={a:x,h1:({node:e,...t})=>/* @__PURE__ */d("h1",{className:"text-base font-semibold text-gray-900",...t}),h2:({node:e,...t})=>/* @__PURE__ */d("h2",{className:"text-sm font-semibold text-gray-900",...t}),h3:({node:e,...t})=>/* @__PURE__ */d("h3",{className:"text-sm font-semibold text-gray-700",...t}),h4:({node:e,...t})=>/* @__PURE__ */d("h4",{className:"text-sm font-semibold text-gray-700",...t}),h5:({node:e,...t})=>/* @__PURE__ */d("h5",{className:"text-sm font-semibold text-gray-700",...t}),h6:({node:e,...t})=>/* @__PURE__ */d("h6",{className:"text-sm font-semibold text-gray-700",...t}),ul:({node:e,...t})=>/* @__PURE__ */d("ul",{className:"list-disc pl-5",...t}),ol:({node:e,...t})=>/* @__PURE__ */d("ol",{className:"list-decimal pl-5",...t}),code:g,pre:h("p-2"),blockquote:({node:e,...t})=>/* @__PURE__ */d("blockquote",{className:"border-l-2 border-line-strong pl-3 text-gray-600",...t}),hr:({node:e,...t})=>/* @__PURE__ */d("hr",{className:"border-gray-200",...t}),table:({node:e,...t})=>/* @__PURE__ */d("div",{className:"overflow-x-auto",children:/* @__PURE__ */d("table",{className:"text-xs border-collapse",...t})}),...p,img:({node:e,alt:t,...r})=>/* @__PURE__ */d("img",{...r,alt:t??"",loading:"lazy",className:"max-w-full max-h-64 rounded-lg border border-gray-200"})};function u(e){return e?{...f,img:({node:t,src:r,alt:o,...a})=>{const s="string"==typeof r?r:void 0;/* @__PURE__ */
2
+ import{Icon as e}from"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import{useBrowserLayoutEffect as t}from"../chunk-D65T4H6J.js";import{memo as r,useRef as o,useState as a,useMemo as s}from"react";import l from"react-markdown";import n from"remark-breaks";import m from"remark-gfm";import{jsx as d,jsxs as c}from"react/jsx-runtime";function i(){const e=this.data();(e.micromarkExtensions??=[]).push({disable:{null:["codeIndented","htmlFlow","htmlText","setextUnderline"]}})}var b={note:[m,n,i],article:[m,i]},x=({node:e,...t})=>/* @__PURE__ */d("a",{...t,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:underline break-all"}),g=({node:e,...t})=>/* @__PURE__ */d("code",{className:"rounded bg-gray-200 px-1 py-0.5 font-mono text-[0.85em] text-gray-800",...t}),h=e=>({node:t,...r})=>/* @__PURE__ */d("pre",{className:`${e} overflow-x-auto rounded-lg border border-gray-200 bg-gray-50 font-mono text-xs [&>code]:bg-transparent [&>code]:p-0 [&>code]:[font-size:inherit]`,...r}),p={th:({node:e,...t})=>/* @__PURE__ */d("th",{className:"border border-gray-200 bg-gray-50 px-2 py-1 text-left font-semibold text-gray-700",...t}),td:({node:e,...t})=>/* @__PURE__ */d("td",{className:"border border-gray-200 px-2 py-1 align-top",...t})},f={a:x,h1:({node:e,...t})=>/* @__PURE__ */d("h1",{className:"text-base font-semibold text-gray-900",...t}),h2:({node:e,...t})=>/* @__PURE__ */d("h2",{className:"text-sm font-semibold text-gray-900",...t}),h3:({node:e,...t})=>/* @__PURE__ */d("h3",{className:"text-sm font-semibold text-gray-700",...t}),h4:({node:e,...t})=>/* @__PURE__ */d("h4",{className:"text-sm font-semibold text-gray-700",...t}),h5:({node:e,...t})=>/* @__PURE__ */d("h5",{className:"text-sm font-semibold text-gray-700",...t}),h6:({node:e,...t})=>/* @__PURE__ */d("h6",{className:"text-sm font-semibold text-gray-700",...t}),ul:({node:e,...t})=>/* @__PURE__ */d("ul",{className:"list-disc pl-5",...t}),ol:({node:e,...t})=>/* @__PURE__ */d("ol",{className:"list-decimal pl-5",...t}),code:g,pre:h("p-2"),blockquote:({node:e,...t})=>/* @__PURE__ */d("blockquote",{className:"border-l-2 border-line-strong pl-3 text-gray-600",...t}),hr:({node:e,...t})=>/* @__PURE__ */d("hr",{className:"border-gray-200",...t}),table:({node:e,...t})=>/* @__PURE__ */d("div",{className:"overflow-x-auto",children:/* @__PURE__ */d("table",{className:"text-xs border-collapse",...t})}),...p,img:({node:e,alt:t,...r})=>/* @__PURE__ */d("img",{...r,alt:t??"",loading:"lazy",className:"max-w-full max-h-64 rounded-lg border border-gray-200"})};function u(e){return e?{...f,img:({node:t,src:r,alt:o,...a})=>{const s="string"==typeof r?r:void 0;/* @__PURE__ */
3
3
  return d("img",{...a,src:s?e(s):s,alt:o??"",loading:"lazy",className:"max-w-full max-h-64 rounded-lg border border-gray-200"})}}:f}function y({src:t,alt:r}){const[o,s]=a(!1),l=(r??"").replace(/^screenshot:\s*/i,"");return!t||o?/* @__PURE__ */c("span",{className:"my-3 flex items-start gap-2 rounded-lg border border-dashed border-line-strong bg-surface-sunken px-3 py-3 text-ink-faint",children:[
4
4
  /* @__PURE__ */d(e,{name:"camera",look:"mini",className:"mt-0.5 h-4 w-4 shrink-0","aria-hidden":"true"}),
5
5
  /* @__PURE__ */d("span",{className:"text-xs",children:l||"Screenshot"})]}):/* @__PURE__ */d("img",{src:t,alt:r??"",loading:"lazy",onError:()=>s(!0),className:"my-3 block max-w-full rounded-lg border border-gray-200"})}function N(e){return{a:x,h1:({node:e,...t})=>/* @__PURE__ */d("h1",{className:"mt-6 mb-3 text-xl font-semibold text-gray-900 first:mt-0",...t}),h2:({node:e,...t})=>/* @__PURE__ */d("h2",{className:"mt-6 mb-3 border-b border-line pb-2 text-lg font-semibold text-ink-strongest first:mt-0",...t}),h3:({node:e,...t})=>/* @__PURE__ */d("h3",{className:"mt-5 mb-2 text-base font-semibold text-gray-900 first:mt-0",...t}),h4:({node:e,...t})=>/* @__PURE__ */d("h4",{className:"mt-4 mb-2 text-sm font-semibold text-ink-strongest first:mt-0",...t}),h5:({node:e,...t})=>/* @__PURE__ */d("h5",{className:"mt-4 mb-2 text-sm font-semibold text-ink first:mt-0",...t}),h6:({node:e,...t})=>/* @__PURE__ */d("h6",{className:"mt-4 mb-2 text-sm font-semibold text-ink first:mt-0",...t}),p:({node:e,...t})=>/* @__PURE__ */d("p",{className:"my-3 leading-relaxed",...t}),ul:({node:e,...t})=>/* @__PURE__ */d("ul",{className:"my-3 list-disc space-y-1 pl-5",...t}),ol:({node:e,...t})=>/* @__PURE__ */d("ol",{className:"my-3 list-decimal space-y-1 pl-5",...t}),li:({node:e,...t})=>/* @__PURE__ */d("li",{className:"leading-relaxed [&>p]:my-1",...t}),code:g,pre:h("my-3 p-3"),blockquote:({node:e,...t})=>/* @__PURE__ */d("blockquote",{className:"my-3 rounded-r-lg border-l-4 border-blue-400/60 bg-blue-50 px-3 py-2 text-gray-700 [&>p]:my-1",...t}),hr:({node:e,...t})=>/* @__PURE__ */d("hr",{className:"my-4 border-gray-200",...t}),table:({node:e,...t})=>/* @__PURE__ */d("div",{className:"my-3 overflow-x-auto",children:/* @__PURE__ */d("table",{className:"border-collapse text-sm",...t})}),...p,img:({node:t,src:r,alt:o})=>{const a="string"==typeof r?r:void 0;/* @__PURE__ */
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import{TabStrip as e}from"../chunk-PMKR2BF2.js";import{useShellLanguage as t}from"../chunk-A2SP4IZV.js";import"../chunk-OQG3XO4Y.js";import{confirm as n}from"../chunk-HTTICQBP.js";import"../chunk-IH2KC3NQ.js";import"../chunk-UZ7TKJRO.js";import"../chunk-3DVNXNTF.js";import"../chunk-FRNSCVPN.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-QVAOSKFO.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-UQYNPYF4.js";import"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as i}from"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";import*as c from"react";import{createContext as s,memo as l,useRef as a,useEffect as o,useMemo as u,useId as y,useCallback as d,useReducer as p,useState as f,useContext as k}from"react";import{useLocation as m,useNavigate as h}from"react-router-dom";import{jsx as b,Fragment as v,jsxs as g}from"react/jsx-runtime";var j=s(null),K=s(null),N=12;var T=(e,t)=>e.filter(e=>e!==t);function F(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function O(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let c={...e,tabs:i,activeKey:t.key,mounted:(s=e.mounted,l=t.key,s.includes(l)?s:[...s,l]),clock:r};var s,l;return c.closing&&c.closing!==t.key?c=C(c,c.closing):c.closing===t.key&&(c={...c,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=C(n,e[0].key)}return n}(c,n)}function A(e){let t={...e,activeKey:null};return t.closing&&(t=C(t,t.closing)),t}function C(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:T(e.mounted,t),dirty:T(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function I(e,t){switch(t.type){case"visit":return O(e,t.entry,t.maxTabs);case"transient":return A(e);case"close":{let n=e;for(const e of t.keys)n=C(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:T(e.dirty,t)}}(e,t.key,t.dirty)}}var M=e=>`${e.pathname}${e.search}`;function w(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function L({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const K=m(),N=h(),T=i().pageTabs,C=y(),L=a(c);L.current=c;const Q=d(e=>{const t=L.current(e);return t?{key:t.key??e.pathname,path:M(e),title:t.title}:null},[]),{language:D}=t(),[S,J]=p(I,void 0,()=>{const e=function(e,t,n){if(!e)return[];let r;try{r=JSON.parse(e)}catch{return[]}const i=r;if(!i||1!==i.v||!Array.isArray(i.tabs))return[];const c=Boolean(n&&"string"==typeof i.lang&&i.lang!==n),s=[];for(const e of i.tabs){if(!e||"string"!=typeof e.path||!e.path.startsWith("/")||e.path.startsWith("//"))continue;const n=e.path.indexOf("#"),r=n>=0?e.path.slice(0,n):e.path,i=t(r);if(!i||s.some(e=>e.key===i.key))continue;const l=!c&&"page"===e.titleFrom&&"string"==typeof e.title&&e.title;s.push({key:i.key,path:r,title:l||i.title,titleFrom:l?"page":"route",pinned:!1,lastActive:0})}return s}(function(e){if(!e)return null;try{return localStorage.getItem(e)}catch{return null}}(l),e=>Q(w(e)),D);let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:F(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},s.map(e=>Q(w(e))).filter(e=>Boolean(e)));const n=v?Q(K):null;return t=n?O(t,n,k):A(t),t}),P=a(S);P.current=S;const x=a(/* @__PURE__ */new Map),R=v?Q(K):null,B=R?.key??null;r(()=>{if(!v)return;const e=Q(K);e?(x.current.set(e.key,K),J({type:"visit",entry:e,maxTabs:k})):J({type:"transient"})},[K,v,k,Q]),o(()=>{const e=new Set(S.tabs.map(e=>e.key));for(const t of x.current.keys())e.has(t)||x.current.delete(t)},[S.tabs]);const V=u(()=>function(e,t){const n={v:1,...t?{lang:t}:{},tabs:e.tabs.filter(t=>t.key!==e.closing).map(({key:e,path:t,title:n,titleFrom:r})=>({key:e,path:t,title:n,titleFrom:r}))};return JSON.stringify(n)}(S,D),[S,D]);o(()=>{if(l)try{localStorage.setItem(l,V)}catch{}},[V,l]);const H=S.dirty.length>0;o(()=>{if(!H)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[H]);const U=a(/* @__PURE__ */new Map),W=d((e,t)=>{let n=U.current.get(e);return void 0===n&&(n=U.current.size,U.current.set(e,n)),`${C}-page-${t}-${n}`},[C]),$=d(e=>g?g(e):n({title:T.discardTitle,message:1===e.length?T.discardOne:T.discardCount?.(e.length)??`${e.length} ${T.discardMany}`,confirmLabel:T.discardConfirm,cancelLabel:T.keepEditing,variant:"warning"}),[g,T]),E=d(()=>{const e=P.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),G=d((e,t,n)=>{const r=P.current,i=r.activeKey;if(!i||!e.includes(i))return void J({type:"close",keys:e,closing:null});let c=t;if(!c){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},s=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;c=(s??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??E()}J({type:"close",keys:e.filter(e=>e!==i),closing:i}),N(c)},[N,E]),Y=d(async(e,t={})=>{const n=P.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&N(t.to),!1):!(!t.force&&P.current.dirty.includes(e)&&!await $([n]))&&(!!P.current.tabs.some(t=>t.key===e)&&(G([e],t.to),!0))},[$,G,N]),X=d(async(e,t)=>{let n=function(e,t,n){const r=e.tabs.filter(e=>!e.pinned);if("all"===t)return r.map(e=>e.key);if("others"===t)return r.filter(e=>e.key!==n).map(e=>e.key);const i=e.tabs.findIndex(e=>e.key===n);return i<0?[]:e.tabs.slice(i+1).filter(e=>!e.pinned).map(e=>e.key)}(P.current,e,t);const r=P.current.tabs.filter(e=>n.includes(e.key)&&P.current.dirty.includes(e.key));r.length&&!await $(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(P.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&G(n,void 0,"all"===e?null:t)},[$,G]),Z=d(e=>{const t=P.current.tabs.find(t=>t.key===e);t&&e!==P.current.activeKey&&N(t.path)},[N]),z=d((e,t)=>J({type:"title",key:e,title:t}),[]),q=d((e,t)=>J({type:"dirty",key:e,dirty:t}),[]),[_,ee]=f({}),te=d((e,t)=>{ee(n=>{if((n[e]??null)===t)return n;const r={...n};return t?r[e]=t:delete r[e],r})},[]),ne=d(e=>Q(e)?.key??null,[Q]),re=d(e=>x.current.get(e),[]),ie=u(()=>v?S.tabs.filter(e=>e.key!==S.closing):[],[v,S.tabs,S.closing]),ce=u(()=>({enabled:v,state:S,currentKey:B,resolve:c,keyFor:ne,locationFor:re,idFor:W,activate:Z,close:Y,closeMany:X,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,S,B,c,ne,re,W,Z,Y,X,z,q,_,te,ie]);/* @__PURE__ */
3
- return b(j.Provider,{value:ce,children:e})}var Q=c.Activity,D=Boolean(Q);function S({active:e,children:t}){return Q?/* @__PURE__ */b(Q,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */b(v,{children:t})}var J=l(function({tabKey:e,active:t,location:n,render:i,className:c,panelId:s,tabId:l}){const y=a(null),d=a(t),p=a(/* @__PURE__ */new Map);r(()=>{const e=d.current;if(d.current=t,t&&!e)for(const[e,[t,n]]of p.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):p.current.delete(e)},[t]),o(()=>{const e=y.current;if(!e)return;const t=e=>{if(!d.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&p.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const f=u(()=>({key:e,activeRef:d}),[e]);/* @__PURE__ */
4
- return b("div",{ref:y,role:s?"tabpanel":void 0,id:s,"aria-labelledby":l,hidden:!t,style:t?void 0:{display:"none"},className:c,"data-page-tab":e,children:/* @__PURE__ */b(K.Provider,{value:f,children:/* @__PURE__ */b(S,{active:t,children:i(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),P="\0transient";function x({children:e,frameClassName:t}){const n=k(j),r=m();if(!n||!n.enabled)/* @__PURE__ */
5
- return b("div",{className:t,children:e(r)},P);const{state:i,currentKey:c,locationFor:s,idFor:l}=n,a=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return c&&!a.includes(c)&&a.push(c),/* @__PURE__ */g(v,{children:[a.map(n=>{const i=n===c,a=i?r:s(n);return a?/* @__PURE__ */b(J,{tabKey:n,active:i,location:a,render:e,className:t,panelId:l(n,"panel"),tabId:l(n,"tab")},n):null}),!c&&/* @__PURE__ */b(J,{tabKey:P,active:!0,location:r,render:e,className:t},P)]})}function R({className:t,activeClassName:n,end:r}){const c=k(j),s=i().pageTabs;if(!c||!c.enabled)return null;const{visibleTabs:l,state:a,idFor:o,activate:u,close:y,closeMany:d,resolve:p}=c;/* @__PURE__ */
6
- return b(e,{tabs:l.map(e=>({key:e.key,title:e.title,pinned:e.pinned,dirty:a.dirty.includes(e.key),copy:c.copies[e.key],icon:p(w(e.path))?.icon})),activeKey:c.currentKey??null,idFor:o,panelMounted:e=>a.mounted.includes(e),onActivate:u,onClose:e=>{y(e)},onCloseMany:(e,t)=>{d(e,t)},label:s.label,className:t,activeClassName:n,end:r})}var B={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function V(){const e=k(j);return e&&e.enabled?{enabled:!0,tabs:e.visibleTabs,activeKey:e.currentKey,activate:e.activate,close:e.close,closeOthers:t=>e.closeMany("others",t),closeRight:t=>e.closeMany("right",t),closeAll:()=>e.closeMany("all",null)}:B}function H(){const e=k(j),t=k(K),n=h();return{key:e?.enabled&&t?t.key:null,close:d(async(r={})=>e?.enabled&&t&&e.state.tabs.some(e=>e.key===t.key)?e.close(t.key,r):(r.to&&n(r.to),!1),[e,t,n])}}function U(e){const t=k(j),n=k(K),r=t?.enabled?t.setTitle:void 0,i=n?.key;o(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function W(e){const t=k(j),n=k(K),r=t?.enabled?t.setCopy:void 0,i=n?.key;o(()=>{if(r&&i)return r(i,e||null),()=>r(i,null)},[r,i,e])}function $(e){const t=k(j),n=k(K),r=t?.enabled?t.setDirty:void 0;o(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{N as DEFAULT_MAX_TABS,D as PAGE_TABS_PAUSE_HIDDEN,R as PageTabBar,x as PageTabsOutlet,L as PageTabsProvider,w as parseTabPath,H as usePageTab,W as usePageTabCopy,$ as usePageTabDirty,U as usePageTabTitle,V as usePageTabs};
2
+ import{TabStrip as e}from"../chunk-D5MN3LXC.js";import{useShellLanguage as t}from"../chunk-UVMM7AYO.js";import"../chunk-OLJUPBY4.js";import{confirm as n}from"../chunk-2XOH3NJZ.js";import"../chunk-R7KRBKFH.js";import"../chunk-3N2MNOV5.js";import"../chunk-3DVNXNTF.js";import"../chunk-YOXR3VKO.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-4TB4CSLB.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-UQYNPYF4.js";import"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as i}from"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";import*as c from"react";import{createContext as s,memo as l,useRef as a,useEffect as o,useMemo as u,useId as y,useCallback as d,useReducer as p,useState as f,useContext as k}from"react";import{useLocation as m,useNavigate as h}from"react-router-dom";import{jsx as b,Fragment as v,jsxs as g}from"react/jsx-runtime";var j=s(null),N=s(null),K=12;var F=(e,t)=>e.filter(e=>e!==t);function T(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function M(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let c={...e,tabs:i,activeKey:t.key,mounted:(s=e.mounted,l=t.key,s.includes(l)?s:[...s,l]),clock:r};var s,l;return c.closing&&c.closing!==t.key?c=L(c,c.closing):c.closing===t.key&&(c={...c,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=L(n,e[0].key)}return n}(c,n)}function O(e){let t={...e,activeKey:null};return t.closing&&(t=L(t,t.closing)),t}function L(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:F(e.mounted,t),dirty:F(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function A(e,t){switch(t.type){case"visit":return M(e,t.entry,t.maxTabs);case"transient":return O(e);case"close":{let n=e;for(const e of t.keys)n=L(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:F(e.dirty,t)}}(e,t.key,t.dirty)}}var C=e=>`${e.pathname}${e.search}`;function w(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function D({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const N=m(),K=h(),F=i().pageTabs,L=y(),D=a(c);D.current=c;const I=d(e=>{const t=D.current(e);return t?{key:t.key??e.pathname,path:C(e),title:t.title}:null},[]),{language:B}=t(),[J,x]=p(A,void 0,()=>{const e=function(e,t,n){if(!e)return[];let r;try{r=JSON.parse(e)}catch{return[]}const i=r;if(!i||1!==i.v||!Array.isArray(i.tabs))return[];const c=Boolean(n&&"string"==typeof i.lang&&i.lang!==n),s=[];for(const e of i.tabs){if(!e||"string"!=typeof e.path||!e.path.startsWith("/")||e.path.startsWith("//"))continue;const n=e.path.indexOf("#"),r=n>=0?e.path.slice(0,n):e.path,i=t(r);if(!i||s.some(e=>e.key===i.key))continue;const l=!c&&"page"===e.titleFrom&&"string"==typeof e.title&&e.title;s.push({key:i.key,path:r,title:l||i.title,titleFrom:l?"page":"route",pinned:!1,lastActive:0})}return s}(function(e){if(!e)return null;try{return localStorage.getItem(e)}catch{return null}}(l),e=>I(w(e)),B);let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:T(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},s.map(e=>I(w(e))).filter(e=>Boolean(e)));const n=v?I(N):null;return t=n?M(t,n,k):O(t),t}),P=a(J);P.current=J;const S=a(/* @__PURE__ */new Map),R=v?I(N):null,Y=R?.key??null;r(()=>{if(!v)return;const e=I(N);e?(S.current.set(e.key,N),x({type:"visit",entry:e,maxTabs:k})):x({type:"transient"})},[N,v,k,I]),o(()=>{const e=new Set(J.tabs.map(e=>e.key));for(const t of S.current.keys())e.has(t)||S.current.delete(t)},[J.tabs]);const Q=u(()=>function(e,t){const n={v:1,...t?{lang:t}:{},tabs:e.tabs.filter(t=>t.key!==e.closing).map(({key:e,path:t,title:n,titleFrom:r})=>({key:e,path:t,title:n,titleFrom:r}))};return JSON.stringify(n)}(J,B),[J,B]);o(()=>{if(l)try{localStorage.setItem(l,Q)}catch{}},[Q,l]);const U=J.dirty.length>0;o(()=>{if(!U)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[U]);const V=a(/* @__PURE__ */new Map),H=d((e,t)=>{let n=V.current.get(e);return void 0===n&&(n=V.current.size,V.current.set(e,n)),`${L}-page-${t}-${n}`},[L]),W=d(e=>g?g(e):n({title:F.discardTitle,message:1===e.length?F.discardOne:F.discardCount?.(e.length)??`${e.length} ${F.discardMany}`,confirmLabel:F.discardConfirm,cancelLabel:F.keepEditing,variant:"warning"}),[g,F]),X=d(()=>{const e=P.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),$=d((e,t,n)=>{const r=P.current,i=r.activeKey;if(!i||!e.includes(i))return void x({type:"close",keys:e,closing:null});let c=t;if(!c){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},s=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;c=(s??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??X()}x({type:"close",keys:e.filter(e=>e!==i),closing:i}),K(c)},[K,X]),E=d(async(e,t={})=>{const n=P.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&K(t.to),!1):!(!t.force&&P.current.dirty.includes(e)&&!await W([n]))&&(!!P.current.tabs.some(t=>t.key===e)&&($([e],t.to),!0))},[W,$,K]),G=d(async(e,t)=>{let n=function(e,t,n){const r=e.tabs.filter(e=>!e.pinned);if("all"===t)return r.map(e=>e.key);if("others"===t)return r.filter(e=>e.key!==n).map(e=>e.key);const i=e.tabs.findIndex(e=>e.key===n);return i<0?[]:e.tabs.slice(i+1).filter(e=>!e.pinned).map(e=>e.key)}(P.current,e,t);const r=P.current.tabs.filter(e=>n.includes(e.key)&&P.current.dirty.includes(e.key));r.length&&!await W(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(P.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&$(n,void 0,"all"===e?null:t)},[W,$]),Z=d(e=>{const t=P.current.tabs.find(t=>t.key===e);t&&e!==P.current.activeKey&&K(t.path)},[K]),z=d((e,t)=>x({type:"title",key:e,title:t}),[]),q=d((e,t)=>x({type:"dirty",key:e,dirty:t}),[]),[_,ee]=f({}),te=d((e,t)=>{ee(n=>{if((n[e]??null)===t)return n;const r={...n};return t?r[e]=t:delete r[e],r})},[]),ne=d(e=>I(e)?.key??null,[I]),re=d(e=>S.current.get(e),[]),ie=u(()=>v?J.tabs.filter(e=>e.key!==J.closing):[],[v,J.tabs,J.closing]),ce=u(()=>({enabled:v,state:J,currentKey:Y,resolve:c,keyFor:ne,locationFor:re,idFor:H,activate:Z,close:E,closeMany:G,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,J,Y,c,ne,re,H,Z,E,G,z,q,_,te,ie]);/* @__PURE__ */
3
+ return b(j.Provider,{value:ce,children:e})}var I=c.Activity,B=Boolean(I);function J({active:e,children:t}){return I?/* @__PURE__ */b(I,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */b(v,{children:t})}var x=l(function({tabKey:e,active:t,location:n,render:i,className:c,panelId:s,tabId:l}){const y=a(null),d=a(t),p=a(/* @__PURE__ */new Map);r(()=>{const e=d.current;if(d.current=t,t&&!e)for(const[e,[t,n]]of p.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):p.current.delete(e)},[t]),o(()=>{const e=y.current;if(!e)return;const t=e=>{if(!d.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&p.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const f=u(()=>({key:e,activeRef:d}),[e]);/* @__PURE__ */
4
+ return b("div",{ref:y,role:s?"tabpanel":void 0,id:s,"aria-labelledby":l,hidden:!t,style:t?void 0:{display:"none"},className:c,"data-page-tab":e,children:/* @__PURE__ */b(N.Provider,{value:f,children:/* @__PURE__ */b(J,{active:t,children:i(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),P="\0transient";function S({children:e,frameClassName:t}){const n=k(j),r=m();if(!n||!n.enabled)/* @__PURE__ */
5
+ return b("div",{className:t,children:e(r)},P);const{state:i,currentKey:c,locationFor:s,idFor:l}=n,a=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return c&&!a.includes(c)&&a.push(c),/* @__PURE__ */g(v,{children:[a.map(n=>{const i=n===c,a=i?r:s(n);return a?/* @__PURE__ */b(x,{tabKey:n,active:i,location:a,render:e,className:t,panelId:l(n,"panel"),tabId:l(n,"tab")},n):null}),!c&&/* @__PURE__ */b(x,{tabKey:P,active:!0,location:r,render:e,className:t},P)]})}function R({className:t,activeClassName:n,end:r}){const c=k(j),s=i().pageTabs;if(!c||!c.enabled)return null;const{visibleTabs:l,state:a,idFor:o,activate:u,close:y,closeMany:d,resolve:p}=c;/* @__PURE__ */
6
+ return b(e,{tabs:l.map(e=>({key:e.key,title:e.title,pinned:e.pinned,dirty:a.dirty.includes(e.key),copy:c.copies[e.key],icon:p(w(e.path))?.icon})),activeKey:c.currentKey??null,idFor:o,panelMounted:e=>a.mounted.includes(e),onActivate:u,onClose:e=>{y(e)},onCloseMany:(e,t)=>{d(e,t)},label:s.label,className:t,activeClassName:n,end:r})}var Y={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function Q(){const e=k(j);return e&&e.enabled?{enabled:!0,tabs:e.visibleTabs,activeKey:e.currentKey,activate:e.activate,close:e.close,closeOthers:t=>e.closeMany("others",t),closeRight:t=>e.closeMany("right",t),closeAll:()=>e.closeMany("all",null)}:Y}function U(){const e=k(j),t=k(N),n=h();return{key:e?.enabled&&t?t.key:null,close:d(async(r={})=>e?.enabled&&t&&e.state.tabs.some(e=>e.key===t.key)?e.close(t.key,r):(r.to&&n(r.to),!1),[e,t,n])}}function V(e){const t=k(j),n=k(N),r=t?.enabled?t.setTitle:void 0,i=n?.key;o(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function H(e){const t=k(j),n=k(N),r=t?.enabled?t.setCopy:void 0,i=n?.key;o(()=>{if(r&&i)return r(i,e||null),()=>r(i,null)},[r,i,e])}function W(e){const t=k(j),n=k(N),r=t?.enabled?t.setDirty:void 0;o(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{K as DEFAULT_MAX_TABS,B as PAGE_TABS_PAUSE_HIDDEN,R as PageTabBar,S as PageTabsOutlet,D as PageTabsProvider,w as parseTabPath,U as usePageTab,H as usePageTabCopy,W as usePageTabDirty,V as usePageTabTitle,Q as usePageTabs};
package/dist/pdf/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{lazy as r}from"react";var e=r(()=>import("../PdfViewer-ZRDIG2L2.js"));export{e as PdfViewer};
2
+ import{lazy as r}from"react";var e=r(()=>import("../PdfViewer-M4RTCNNE.js"));export{e as PdfViewer};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{AccordionBody,AccordionHeading,accordionIdOf,Accordion as default}from"../chunk-U6IJL4Q5.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{AccordionBody,AccordionHeading,accordionIdOf,Accordion as default}from"../chunk-AWQ5SOC5.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{APP_UPDATE_POLL_MS,AppUpdateBanner as default,useAppUpdate}from"../chunk-QIEAZN6Z.js";import"../chunk-JGVKGEIV.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{APP_UPDATE_POLL_MS,AppUpdateBanner as default,useAppUpdate}from"../chunk-LXBBJNBQ.js";import"../chunk-IIKPM3F4.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{AvatarGroup,Avatar as default}from"../chunk-LZJCULO7.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{AvatarGroup,Avatar as default}from"../chunk-SEP35R2E.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Banner as default}from"../chunk-JGVKGEIV.js";import"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{Banner as default}from"../chunk-IIKPM3F4.js";import"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Breadcrumbs as default}from"../chunk-JJHPPTM6.js";import"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{Breadcrumbs as default}from"../chunk-IUG4Z2ND.js";import"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{budgetState,BudgetBar as default}from"../chunk-PBMAMVSE.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{budgetState,BudgetBar as default}from"../chunk-5UCRYSQJ.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{StatCard,Card as default}from"../chunk-ZDDYTXPK.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{StatCard,Card as default}from"../chunk-WEEQDPU3.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ColoredBadge as default}from"../chunk-YGCVMPIU.js";import"../chunk-FZM3ZPW3.js";import"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{ColoredBadge as default}from"../chunk-CR3YDABU.js";import"../chunk-FZM3ZPW3.js";import"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ConfirmProvider,confirm,confirmDestructive,prompt,useConfirm}from"../chunk-HTTICQBP.js";import"../chunk-IH2KC3NQ.js";import"../chunk-3DVNXNTF.js";import"../chunk-FRNSCVPN.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-UQYNPYF4.js";import"../chunk-R64OZ6TC.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{ConfirmProvider,confirm,confirmDestructive,prompt,useConfirm}from"../chunk-2XOH3NJZ.js";import"../chunk-R7KRBKFH.js";import"../chunk-3DVNXNTF.js";import"../chunk-YOXR3VKO.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-UQYNPYF4.js";import"../chunk-7V32O5NF.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ContainerFillChart as default}from"../chunk-WTTXLWMK.js";import"../chunk-VNTJ7QO5.js";import"../chunk-C3QOHMR6.js";
2
+ export{ContainerFillChart as default}from"../chunk-T74FGTLW.js";import"../chunk-5YP7MFPK.js";import"../chunk-C3QOHMR6.js";