efficient-shell 10.16.0 → 10.17.1

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 (394) hide show
  1. package/dist/{Browser-RI5X7GMK.js → Browser-4B76MFTG.js} +13 -13
  2. package/dist/Calculator-AXFKAC7G.js +29 -0
  3. package/dist/{CurrencyConverter-2GUEE7ZR.js → CurrencyConverter-36BFSFRS.js} +8 -8
  4. package/dist/{Documents-GI346UL5.js → Documents-VKAMBKSP.js} +15 -15
  5. package/dist/Files-NRYZG4KY.js +88 -0
  6. package/dist/{Notepad-HRZKLHO3.js → Notepad-AQXGH6VP.js} +10 -10
  7. package/dist/{PdfViewer-LU5JKHSG.js → PdfViewer-Y3SAVADX.js} +1 -1
  8. package/dist/{PomodoroTimer-QYCTTTPZ.js → PomodoroTimer-RHDLKJBY.js} +63 -63
  9. package/dist/{Preview-LSGN5GN7.js → Preview-DEBTZQP5.js} +47 -47
  10. package/dist/Sidebar-CB6KRPW2.js +44 -0
  11. package/dist/{Spreadsheet-7JBZY6KJ.js → Spreadsheet-FSHLWXYP.js} +13 -13
  12. package/dist/{Stock-ZVQT25IE.js → Stock-CV53A432.js} +3 -3
  13. package/dist/{Weather-RAUDLLVU.js → Weather-R4MCLH7F.js} +19 -19
  14. package/dist/{WorldClock-2XBWZ6SZ.js → WorldClock-CSFPCZHU.js} +6 -6
  15. package/dist/ai/index.d.ts +1 -1
  16. package/dist/ai/index.js +81 -80
  17. package/dist/ai.css +1 -1
  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/charts/BoxPlotChart.js +1 -1
  22. package/dist/charts/CandlestickChart.js +1 -1
  23. package/dist/charts/CartesianPlot.js +1 -1
  24. package/dist/charts/ChartBrush.js +1 -1
  25. package/dist/charts/ChartFrame.js +1 -1
  26. package/dist/charts/ChartSkeleton.js +1 -1
  27. package/dist/charts/ChartTooltip.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-26RTJKHD.js +2 -0
  48. package/dist/{chunk-F2R3UFNQ.js → chunk-2E2SUEEE.js} +1 -1
  49. package/dist/chunk-2EVTN26H.js +2 -0
  50. package/dist/{chunk-M22B3Y5Y.js → chunk-3IUPYCW3.js} +1 -1
  51. package/dist/{chunk-N3TOHWFF.js → chunk-3J2PO3KW.js} +1 -1
  52. package/dist/{chunk-X6BFVDB4.js → chunk-3PR7FLTZ.js} +2 -2
  53. package/dist/{chunk-PCFBDXLN.js → chunk-3TKMH5VR.js} +1 -1
  54. package/dist/{chunk-4WEFGKJL.js → chunk-3VLG6LR3.js} +4 -4
  55. package/dist/{chunk-CBEKJTXU.js → chunk-4D66DUU5.js} +5 -5
  56. package/dist/{chunk-XDBG4HPV.js → chunk-4EZIWLJJ.js} +1 -1
  57. package/dist/{chunk-FWVC4A2O.js → chunk-4MJA2SPJ.js} +13 -13
  58. package/dist/chunk-4Q25UHWB.js +22 -0
  59. package/dist/{chunk-EZEYKCI6.js → chunk-4ULRP4Y4.js} +1 -1
  60. package/dist/chunk-4V73LGZG.js +11 -0
  61. package/dist/{chunk-S6FBMSFU.js → chunk-5IPFQV34.js} +2 -2
  62. package/dist/{chunk-3ELLBQPS.js → chunk-5LCDCO46.js} +1 -1
  63. package/dist/{chunk-GISDIVFK.js → chunk-5N5AAYQV.js} +1 -1
  64. package/dist/{chunk-7HTRLRVO.js → chunk-5VAIVRK6.js} +62 -62
  65. package/dist/{chunk-RLJHRDDW.js → chunk-5W2OEDUD.js} +8 -8
  66. package/dist/chunk-6ACS4S4P.js +15 -0
  67. package/dist/{chunk-ULXCDM7Y.js → chunk-6V4INP7J.js} +10 -10
  68. package/dist/{chunk-LCJRTJXT.js → chunk-7AZAMDGG.js} +9 -9
  69. package/dist/{chunk-AKM6JBMD.js → chunk-7ELJQL7J.js} +1 -1
  70. package/dist/chunk-7RPYVQEV.js +2 -0
  71. package/dist/{chunk-UPQW4GCT.js → chunk-7TZV6G2F.js} +1 -1
  72. package/dist/{chunk-VTFZ6W2D.js → chunk-7X4QNWA7.js} +2 -2
  73. package/dist/{chunk-D7F442OZ.js → chunk-AEJYSUVQ.js} +1 -1
  74. package/dist/{chunk-QYSEYYV7.js → chunk-AFINCNY3.js} +1 -1
  75. package/dist/{chunk-DKGZPVLL.js → chunk-AFYLVV74.js} +1 -1
  76. package/dist/{chunk-H4HB5OET.js → chunk-AWKJZSTO.js} +1 -1
  77. package/dist/chunk-B3CN55UI.js +2 -0
  78. package/dist/{chunk-CQV3VSI2.js → chunk-B4HSNEBK.js} +1 -1
  79. package/dist/{chunk-57HN6MPC.js → chunk-BE777IO7.js} +2 -2
  80. package/dist/{chunk-K4ANB6AF.js → chunk-BVIOCAEU.js} +1 -1
  81. package/dist/{chunk-4UKGVLFP.js → chunk-BZUA5F33.js} +1 -1
  82. package/dist/{chunk-QP4UPCXQ.js → chunk-C764JODK.js} +1 -1
  83. package/dist/chunk-CCIGAU5Y.js +6 -0
  84. package/dist/{chunk-CKKUFDZ3.js → chunk-CF7BMDU3.js} +18 -18
  85. package/dist/{chunk-LEDUD23S.js → chunk-CLTRQ7AQ.js} +1 -1
  86. package/dist/{chunk-7TNAOZZ2.js → chunk-CNUHLJYD.js} +1 -1
  87. package/dist/chunk-CUKDQPEN.js +19 -0
  88. package/dist/{chunk-ISJPW2FZ.js → chunk-D6OYQM4V.js} +11 -11
  89. package/dist/{chunk-W6URVLQF.js → chunk-DOC52JBV.js} +17 -17
  90. package/dist/{chunk-IOJNSX4N.js → chunk-DQQKG46I.js} +7 -7
  91. package/dist/{chunk-INNIWRVU.js → chunk-E6GDAV5R.js} +2 -2
  92. package/dist/{chunk-TM33D3CE.js → chunk-EC527NE3.js} +1 -1
  93. package/dist/{chunk-RCPFUDPS.js → chunk-EDMDKQNO.js} +3 -3
  94. package/dist/{chunk-3EJ64VKE.js → chunk-EN5NXWT6.js} +1 -1
  95. package/dist/{chunk-MTEFYFUO.js → chunk-ENDCV7B3.js} +9 -9
  96. package/dist/{chunk-MCDM2G4W.js → chunk-EOWUUOVE.js} +1 -1
  97. package/dist/{chunk-4G2C6J4I.js → chunk-EQCFPRKJ.js} +1 -1
  98. package/dist/{chunk-TXDA7TTP.js → chunk-EQZZ4V5X.js} +1 -1
  99. package/dist/{chunk-WINNA7LS.js → chunk-EZUQ5NXE.js} +1 -1
  100. package/dist/chunk-F7Z47OIF.js +12 -0
  101. package/dist/{chunk-2SY76NFO.js → chunk-FEATDGFD.js} +4 -4
  102. package/dist/chunk-FX6DBXXD.js +1 -0
  103. package/dist/{chunk-7JGR7WPD.js → chunk-G4JTO5PB.js} +1 -1
  104. package/dist/{chunk-SG4LO2AN.js → chunk-G4PGEQOX.js} +10 -10
  105. package/dist/{chunk-W3OWPBQL.js → chunk-GD7ILVPF.js} +2 -2
  106. package/dist/chunk-GDQJBQ5B.js +1 -0
  107. package/dist/chunk-GLBLKHYA.js +5 -0
  108. package/dist/{chunk-WB4P4QE2.js → chunk-H7BKSATJ.js} +1 -1
  109. package/dist/{chunk-L4IW77TD.js → chunk-HJ2BDUO6.js} +4 -4
  110. package/dist/chunk-HJCUDXLV.js +1 -0
  111. package/dist/{chunk-SDQIXE5M.js → chunk-HLQVB7FG.js} +8 -8
  112. package/dist/chunk-HLVOHOBC.js +6 -0
  113. package/dist/{chunk-QHOBK35Y.js → chunk-HS2E7DVI.js} +1 -1
  114. package/dist/chunk-HXNMRJQ4.js +2 -0
  115. package/dist/chunk-HXZ5XPBS.js +3 -0
  116. package/dist/{chunk-3LDXURVU.js → chunk-HYDVHGVT.js} +2 -2
  117. package/dist/chunk-IDV32UV7.js +29 -0
  118. package/dist/chunk-IHFZ7OXO.js +14 -0
  119. package/dist/{chunk-MNSKGMVZ.js → chunk-ILP7QVW5.js} +8 -8
  120. package/dist/{chunk-KJ4CBZEQ.js → chunk-IMDGMUE3.js} +1 -1
  121. package/dist/{chunk-JGTGQGHY.js → chunk-IX7QXMNJ.js} +1 -1
  122. package/dist/chunk-JFH5HW2G.js +12 -0
  123. package/dist/{chunk-HNBGLF4B.js → chunk-JFV5CQN4.js} +1 -1
  124. package/dist/{chunk-7MSC3Z5H.js → chunk-JH4ZCPHW.js} +8 -8
  125. package/dist/{chunk-OOLPDASG.js → chunk-JSG2AKCG.js} +1 -1
  126. package/dist/{chunk-6RX4PVBU.js → chunk-JTMEFXRL.js} +1 -1
  127. package/dist/{chunk-YOSUCCHG.js → chunk-K7L3ZCPB.js} +3 -3
  128. package/dist/chunk-KLBJ646Z.js +8 -0
  129. package/dist/{chunk-7NBSBGLX.js → chunk-L2RS2UQM.js} +8 -8
  130. package/dist/{chunk-PYAJCN2Q.js → chunk-LAMRQE2P.js} +1 -1
  131. package/dist/{chunk-ULAGXDOL.js → chunk-LXL2UCUR.js} +1 -1
  132. package/dist/{chunk-O6JJIR4H.js → chunk-M5LR7ZZX.js} +1 -1
  133. package/dist/{chunk-UWIZX3RK.js → chunk-MAFSELZK.js} +1 -1
  134. package/dist/{chunk-N67QX3WW.js → chunk-MMQ6ETRD.js} +2 -2
  135. package/dist/{chunk-XTCXX5LJ.js → chunk-MS5APD3V.js} +1 -1
  136. package/dist/chunk-MUXGWDEH.js +2 -0
  137. package/dist/{chunk-GPJO34QP.js → chunk-N4ZEB4UD.js} +9 -9
  138. package/dist/{chunk-E3753CWP.js → chunk-NRI26RYC.js} +2 -2
  139. package/dist/{chunk-7HLC352T.js → chunk-NVFYLTJ6.js} +17 -17
  140. package/dist/chunk-NXVFY22L.js +9 -0
  141. package/dist/{chunk-QDQ347RL.js → chunk-NYEMGKAE.js} +1 -1
  142. package/dist/{chunk-5UYZ75F3.js → chunk-NZGNOMWX.js} +12 -12
  143. package/dist/{chunk-3NW5LD7D.js → chunk-NZQCDFDG.js} +3 -3
  144. package/dist/{chunk-BJXDOM2N.js → chunk-OBJGUJIE.js} +1 -1
  145. package/dist/{chunk-AUWTGM65.js → chunk-OH5L6HYW.js} +3 -3
  146. package/dist/{chunk-ZURB2DCM.js → chunk-OPN4I565.js} +1 -1
  147. package/dist/{chunk-7SMV6G4Z.js → chunk-ORIXCEKO.js} +1 -1
  148. package/dist/{chunk-FEQDZTZ7.js → chunk-OUIE2N2Z.js} +6 -6
  149. package/dist/{chunk-TOVKWNI2.js → chunk-P3RXXWXN.js} +6 -6
  150. package/dist/{chunk-ON67HF5K.js → chunk-PCTOL2FX.js} +8 -8
  151. package/dist/{chunk-6XBWM453.js → chunk-Q3IR5SKD.js} +1 -1
  152. package/dist/{chunk-7ZP64SC7.js → chunk-Q5QS5MFX.js} +1 -1
  153. package/dist/{chunk-4QJOEHM6.js → chunk-QEB2UTHO.js} +7 -7
  154. package/dist/{chunk-I2XGPTCN.js → chunk-QJLBBDX2.js} +1 -1
  155. package/dist/{chunk-AJO72CPB.js → chunk-QLVJ5W4G.js} +2 -2
  156. package/dist/chunk-QO5E33DH.js +8 -0
  157. package/dist/{chunk-LPXMHYTM.js → chunk-QVZKRROQ.js} +1 -1
  158. package/dist/{chunk-EXJXOKUU.js → chunk-QYL26AB4.js} +1 -1
  159. package/dist/chunk-RAAH4TQU.js +1 -0
  160. package/dist/{chunk-JJW43QPS.js → chunk-RBEI4CKX.js} +5 -5
  161. package/dist/{chunk-TVH7IZQ4.js → chunk-REWKL7MX.js} +2 -2
  162. package/dist/{chunk-MVZRZTQP.js → chunk-S5SRXI4V.js} +1 -1
  163. package/dist/{chunk-QYRMFGES.js → chunk-SAP4YI2Y.js} +1 -1
  164. package/dist/{chunk-KTA77U3P.js → chunk-SDATPJM2.js} +4 -4
  165. package/dist/{chunk-KEPJWZJZ.js → chunk-SL77N7VT.js} +3 -3
  166. package/dist/{chunk-UDRMZ22J.js → chunk-SOBGCIPF.js} +1 -1
  167. package/dist/{chunk-H32EQG5Z.js → chunk-SOJEQHZ2.js} +9 -9
  168. package/dist/{chunk-34URULVW.js → chunk-SQCUN2DX.js} +1 -1
  169. package/dist/chunk-SRWZE3WA.js +6 -0
  170. package/dist/{chunk-5RE6R3XC.js → chunk-SXNQHIBY.js} +1 -1
  171. package/dist/{chunk-GGK27H67.js → chunk-TGGUYAWA.js} +1 -1
  172. package/dist/chunk-TGXO3CDO.js +2 -0
  173. package/dist/{chunk-74OUAR6L.js → chunk-TIGTIT3L.js} +6 -6
  174. package/dist/{chunk-UYRITNQW.js → chunk-TLWGOQI3.js} +3 -3
  175. package/dist/{chunk-MQU3PZUS.js → chunk-TMMNCXQT.js} +1 -1
  176. package/dist/chunk-TNDRHHKN.js +14 -0
  177. package/dist/{chunk-SHKBDFSE.js → chunk-TXDBOSSB.js} +1 -1
  178. package/dist/{chunk-DRDYZ633.js → chunk-U32J7D4Q.js} +2 -2
  179. package/dist/{chunk-LDE5IV2M.js → chunk-UABVKJK7.js} +4 -4
  180. package/dist/{chunk-UTWJKSET.js → chunk-UEISJFZH.js} +5 -5
  181. package/dist/{chunk-B7UCXROE.js → chunk-UG6RI525.js} +1 -1
  182. package/dist/chunk-UXPBVRSE.js +7 -0
  183. package/dist/{chunk-W5CJD54C.js → chunk-VAK5FQXH.js} +1 -1
  184. package/dist/{chunk-O7DW2BKY.js → chunk-VHF3CJVO.js} +28 -28
  185. package/dist/{chunk-7X5FABQS.js → chunk-VHPT7ZS5.js} +5 -5
  186. package/dist/{chunk-MHB52H2Y.js → chunk-WON5GBJY.js} +12 -12
  187. package/dist/{chunk-D4I3U7UE.js → chunk-WS7XIJS6.js} +1 -1
  188. package/dist/{chunk-AOK3BHRT.js → chunk-WWLKVGV7.js} +4 -4
  189. package/dist/{chunk-G4GVLK44.js → chunk-WZ5QSSUM.js} +6 -6
  190. package/dist/{chunk-LO5T2K4B.js → chunk-X2KMUHBB.js} +3 -3
  191. package/dist/{chunk-CPZ42W2B.js → chunk-XCAO2F3H.js} +1 -1
  192. package/dist/chunk-XGJQVIEG.js +2 -0
  193. package/dist/{chunk-PVZGSCCB.js → chunk-XKJ7GEVA.js} +5 -5
  194. package/dist/chunk-XPTOKPUM.js +11 -0
  195. package/dist/{chunk-XZGGJHJC.js → chunk-XQMPLXGG.js} +15 -15
  196. package/dist/{chunk-VKKK4WLS.js → chunk-XQZL6JDD.js} +6 -6
  197. package/dist/{chunk-JEH5EVIG.js → chunk-XSJHN2GD.js} +1 -1
  198. package/dist/{chunk-2VGQS6CW.js → chunk-XTV3CAV7.js} +1 -1
  199. package/dist/{chunk-3AH524CN.js → chunk-XYECIBVX.js} +1 -1
  200. package/dist/{chunk-6C6TRDNI.js → chunk-YG2TWBDH.js} +1 -1
  201. package/dist/chunk-YG6Y5X7S.js +7 -0
  202. package/dist/chunk-YJ5IHIAI.js +2 -0
  203. package/dist/{chunk-NBVHJZVS.js → chunk-YQFGRYEF.js} +12 -12
  204. package/dist/chunk-YUECA3XB.js +8 -0
  205. package/dist/chunk-YYZ73H64.js +7 -0
  206. package/dist/{chunk-7UTPXU6K.js → chunk-ZF2MNQXY.js} +1 -1
  207. package/dist/{chunk-ZW3IDCP2.js → chunk-ZGOHRLXG.js} +1 -1
  208. package/dist/{chunk-6AS5PHHK.js → chunk-ZI3DGOW6.js} +17 -17
  209. package/dist/{chunk-TKJBZIHT.js → chunk-ZMRGHVKS.js} +1 -1
  210. package/dist/data/DataTable.js +1 -1
  211. package/dist/data/Kanban.js +1 -1
  212. package/dist/data/ListFooter.js +1 -1
  213. package/dist/data/ListLoadError.js +1 -1
  214. package/dist/data/Pagination.js +1 -1
  215. package/dist/file-intake/index.js +1 -1
  216. package/dist/forms/AlignmentGrid.js +1 -1
  217. package/dist/forms/BorderInput.js +1 -1
  218. package/dist/forms/BrandAssetEditor.js +1 -1
  219. package/dist/forms/Button.js +1 -1
  220. package/dist/forms/Calendar.js +1 -1
  221. package/dist/forms/ColorPicker.js +1 -1
  222. package/dist/forms/ComposerAttachments.js +1 -1
  223. package/dist/forms/CornersInput.js +1 -1
  224. package/dist/forms/DatePicker.js +1 -1
  225. package/dist/forms/DateRangePicker.js +1 -1
  226. package/dist/forms/DateTimePicker.js +1 -1
  227. package/dist/forms/DisplayChips.js +1 -1
  228. package/dist/forms/FilePicker.js +1 -1
  229. package/dist/forms/FormErrorSummary.js +1 -1
  230. package/dist/forms/IconButton.js +1 -1
  231. package/dist/forms/IconPicker.js +1 -1
  232. package/dist/forms/ImageFocusPoint.js +1 -1
  233. package/dist/forms/InputNumber.js +1 -1
  234. package/dist/forms/LinkPicker.js +1 -1
  235. package/dist/forms/MediaLibrary.js +1 -1
  236. package/dist/forms/MediaUploadField.js +1 -1
  237. package/dist/forms/MediaUploadGrid.js +1 -1
  238. package/dist/forms/MediaUsedInList.js +1 -1
  239. package/dist/forms/NumericKeypad.js +1 -1
  240. package/dist/forms/PictureTiles.js +1 -1
  241. package/dist/forms/PositionInput.js +1 -1
  242. package/dist/forms/Segmented.js +1 -1
  243. package/dist/forms/Select.d.ts +1 -1
  244. package/dist/forms/Select.js +1 -1
  245. package/dist/forms/SidesInput.js +1 -1
  246. package/dist/forms/Slider.js +1 -1
  247. package/dist/forms/Snippet.js +1 -1
  248. package/dist/forms/SplitButton.js +1 -1
  249. package/dist/forms/TagInput.js +1 -1
  250. package/dist/forms/TextToolbar.d.ts +1 -1
  251. package/dist/forms/TextToolbar.js +1 -1
  252. package/dist/forms/TimePicker.js +1 -1
  253. package/dist/forms/WidthsBar.js +1 -1
  254. package/dist/forms/mediaLibraryMenu.js +1 -1
  255. package/dist/forms/mediaMoveItems.js +1 -1
  256. package/dist/forms/textAlign.d.ts +1 -1
  257. package/dist/forms/textAlign.js +1 -1
  258. package/dist/forms/useFileIntake.js +1 -1
  259. package/dist/hooks/useTheme.d.ts +1 -1
  260. package/dist/icons/efficient-glyphs.d.ts +2 -0
  261. package/dist/icons/efficient-glyphs.js +1 -1
  262. package/dist/icons/efficient-looks.d.ts +4 -0
  263. package/dist/icons/efficient-looks.js +1 -1
  264. package/dist/icons/efficient-meanings.d.ts +2 -0
  265. package/dist/icons/efficient-meanings.js +1 -1
  266. package/dist/icons/efficient.d.ts +2 -0
  267. package/dist/icons/efficient.js +1 -1
  268. package/dist/icons/glyphs/SeparatorSlashIcon.d.ts +8 -0
  269. package/dist/icons/glyphs/SeparatorSlashIcon.js +1 -0
  270. package/dist/icons/glyphs/SeparatorTriangleIcon.d.ts +8 -0
  271. package/dist/icons/glyphs/SeparatorTriangleIcon.js +1 -0
  272. package/dist/icons/index.d.ts +2 -2
  273. package/dist/icons/index.js +1 -1
  274. package/dist/icons/looks/SeparatorSlashMiniIcon.d.ts +8 -0
  275. package/dist/icons/looks/SeparatorSlashMiniIcon.js +1 -0
  276. package/dist/icons/looks/SeparatorSlashSolidIcon.d.ts +8 -0
  277. package/dist/icons/looks/SeparatorSlashSolidIcon.js +1 -0
  278. package/dist/icons/looks/SeparatorTriangleMiniIcon.d.ts +8 -0
  279. package/dist/icons/looks/SeparatorTriangleMiniIcon.js +1 -0
  280. package/dist/icons/looks/SeparatorTriangleSolidIcon.d.ts +8 -0
  281. package/dist/icons/looks/SeparatorTriangleSolidIcon.js +1 -0
  282. package/dist/icons/looks/map.js +1 -1
  283. package/dist/icons/sets.js +1 -1
  284. package/dist/index.d.ts +4 -4
  285. package/dist/index.js +256 -256
  286. package/dist/locales/zh-Hans.js +1 -1
  287. package/dist/map/index.js +8 -8
  288. package/dist/{names-Bmx_9y41.d.ts → names-CkQuQ47O.d.ts} +1 -1
  289. package/dist/page-tabs/index.js +5 -5
  290. package/dist/pdf/index.js +1 -1
  291. package/dist/shell/Accordion.js +1 -1
  292. package/dist/shell/AppUpdateBanner.js +1 -1
  293. package/dist/shell/Avatar.js +1 -1
  294. package/dist/shell/Banner.js +1 -1
  295. package/dist/shell/Breadcrumbs.js +1 -1
  296. package/dist/shell/BudgetBar.js +1 -1
  297. package/dist/shell/Card.js +1 -1
  298. package/dist/shell/ColoredBadge.js +1 -1
  299. package/dist/shell/ConfirmDialog.js +1 -1
  300. package/dist/shell/ContainerFillChart.js +1 -1
  301. package/dist/shell/ContextMenu.js +1 -1
  302. package/dist/shell/CountBadge.js +1 -1
  303. package/dist/shell/Dialog.js +1 -1
  304. package/dist/shell/Drawer.js +1 -1
  305. package/dist/shell/DropdownMenu.js +1 -1
  306. package/dist/shell/EditableGrid.js +1 -1
  307. package/dist/shell/EmptyState.js +1 -1
  308. package/dist/shell/FloatingBar.js +1 -1
  309. package/dist/shell/GlobalSearch.js +1 -1
  310. package/dist/shell/HelpCenter.js +1 -1
  311. package/dist/shell/IconRail.js +1 -1
  312. package/dist/shell/ImageLightbox.js +1 -1
  313. package/dist/shell/ItemCount.js +1 -1
  314. package/dist/shell/LanguageSelect.js +1 -1
  315. package/dist/shell/Markdown.d.ts +1 -1
  316. package/dist/shell/Markdown.js +1 -1
  317. package/dist/shell/MetricBar.js +1 -1
  318. package/dist/shell/MetricBarLegend.js +1 -1
  319. package/dist/shell/MilestoneTimeline.js +1 -1
  320. package/dist/shell/PageHeader.js +1 -1
  321. package/dist/shell/Popover.js +1 -1
  322. package/dist/shell/PopupMenu.js +1 -1
  323. package/dist/shell/ProductionTimeline.js +1 -1
  324. package/dist/shell/ResizeHandle.js +1 -1
  325. package/dist/shell/Result.js +1 -1
  326. package/dist/shell/SearchableSelect.js +1 -1
  327. package/dist/shell/SettingReset.js +1 -1
  328. package/dist/shell/SettingRow.js +1 -1
  329. package/dist/shell/SidebarLayout.js +1 -1
  330. package/dist/shell/SidebarNav.js +1 -1
  331. package/dist/shell/SortableList.js +1 -1
  332. package/dist/shell/Statistic.js +1 -1
  333. package/dist/shell/StatusBadge.js +1 -1
  334. package/dist/shell/Tabs.js +1 -1
  335. package/dist/shell/TimeAgo.js +1 -1
  336. package/dist/shell/TimelineTrack.js +1 -1
  337. package/dist/shell/Tooltip.js +1 -1
  338. package/dist/shell/TopNav.js +1 -1
  339. package/dist/shell/TransferProgress.js +1 -1
  340. package/dist/shell/Tree.js +1 -1
  341. package/dist/shell/discardGuard.js +1 -1
  342. package/dist/shell/language.js +1 -1
  343. package/dist/shell/strings.d.ts +6 -0
  344. package/dist/shell/strings.js +1 -1
  345. package/dist/shell/toast.js +1 -1
  346. package/dist/telemetry/index.js +1 -1
  347. package/dist/templates/AuthScreen.js +1 -1
  348. package/dist/templates/ChatTemplate.js +1 -1
  349. package/dist/templates/CheckoutTemplate.js +1 -1
  350. package/dist/templates/DashboardTemplate.js +1 -1
  351. package/dist/templates/DataTablePage.js +1 -1
  352. package/dist/templates/EmailTemplate.js +1 -1
  353. package/dist/templates/ErrorBoundary.d.ts +1 -1
  354. package/dist/templates/ErrorBoundary.js +1 -1
  355. package/dist/templates/ErrorPage.js +1 -1
  356. package/dist/templates/FormLayoutPage.js +1 -1
  357. package/dist/templates/GalleryTemplate.js +1 -1
  358. package/dist/ui/index.d.ts +1 -1
  359. package/dist/ui/index.js +1 -1
  360. package/dist/version.js +1 -1
  361. package/package.json +1 -1
  362. package/dist/Calculator-Y566OMJZ.js +0 -29
  363. package/dist/Files-UA23KXN7.js +0 -88
  364. package/dist/Sidebar-2P26444H.js +0 -44
  365. package/dist/chunk-2JG5JU4M.js +0 -8
  366. package/dist/chunk-4PAWQEXM.js +0 -1
  367. package/dist/chunk-7XYTJPWW.js +0 -29
  368. package/dist/chunk-BNJWZAQE.js +0 -12
  369. package/dist/chunk-COJYPNKF.js +0 -2
  370. package/dist/chunk-DESWIPOZ.js +0 -3
  371. package/dist/chunk-DWR7MYQU.js +0 -7
  372. package/dist/chunk-EU3JZGV2.js +0 -14
  373. package/dist/chunk-I4VIEGCX.js +0 -2
  374. package/dist/chunk-IKNG7EFQ.js +0 -12
  375. package/dist/chunk-JSGQWVYH.js +0 -7
  376. package/dist/chunk-KTVXPGGB.js +0 -11
  377. package/dist/chunk-LU6NA4RU.js +0 -5
  378. package/dist/chunk-M4K6FLIY.js +0 -1
  379. package/dist/chunk-PJQGYKN6.js +0 -11
  380. package/dist/chunk-PN5FQVMB.js +0 -7
  381. package/dist/chunk-PN65IIYN.js +0 -8
  382. package/dist/chunk-PUF75SMJ.js +0 -1
  383. package/dist/chunk-Q6YNMNUH.js +0 -6
  384. package/dist/chunk-RPYFOQM2.js +0 -6
  385. package/dist/chunk-RRUHQLUY.js +0 -14
  386. package/dist/chunk-TMNAHOJ7.js +0 -9
  387. package/dist/chunk-UBMY23AG.js +0 -6
  388. package/dist/chunk-VNACNNCJ.js +0 -19
  389. package/dist/chunk-W35N7SL3.js +0 -8
  390. package/dist/chunk-W4OBVKN4.js +0 -1
  391. package/dist/chunk-WMEYNKXZ.js +0 -22
  392. package/dist/chunk-Y3R267FV.js +0 -15
  393. package/dist/chunk-ZZVE64OI.js +0 -2
  394. /package/dist/{chunk-6V6ANLHW.js → chunk-Y2AGVGOP.js} +0 -0
@@ -1 +1 @@
1
- import{formatPlain as e,formatGrouped as o,formatFixed as t,formatPercent as a}from"../chunk-C3QOHMR6.js";var i=[],n=/^[A-Za-z0-9]/,r=/[A-Za-z0-9]$/,l=e=>n.test(e)?` ${e}`:e,s=e=>r.test(e)?`${e} `:e,d=e=>s(l(e));function c(i="zh-Hans"){const n=o=>e(o,i),r=e=>o(e,i),c=(e,o)=>t(e,o,i),p=(e,o)=>a(e,o,i);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=>`已选 ${n(e)} 项`,remove:"移除",removeItem:e=>`移除${l(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=>`关闭${l(e)}`,favorite:"已收藏",closeOthers:"关闭其他标签页",closeRight:"关闭右侧标签页",closeAll:"关闭全部标签页",unsaved:"有未保存的更改",copy:e=>`复制${l(e)}`,copied:"已复制",tabMenu:"窗口菜单",groupToggle:(e,o)=>`${e}:${n(o)} 个标签页`,discardTitle:"放弃未保存的更改?",discardOne:"此页面有尚未保存的更改。仍要关闭吗?",discardMany:"个页面有尚未保存的更改。仍要关闭吗?",discardCount:e=>`有 ${n(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=>`选择月份,当前为${l(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=>`已选 ${n(e)} 项`,selectedNotShown:(e,o)=>`已选 ${n(e)} 项,${n(o)} 项未显示`,allLoaded:(e,o)=>`已加载全部 ${r(e)} ${o}`,count:(e,o)=>`共 ${r(e)} ${o}`,loadedOf:(e,o,t)=>`已加载 ${r(e)} / ${r(o)} ${t}`,loadingMore:"正在加载更多",loadError:"无法加载此列表",loadErrorMessage:"获取这些记录时出错。请检查网络连接后重试。",retry:"重试"},kanban:{loading:"加载中",empty:"暂无条目。",dropHere:"拖放到此处",addItem:"添加条目"},files:{attach:"添加附件",drop:"松开即可添加附件",remove:e=>`移除${l(e)}`,chooseMany:"选择文件",chooseOne:"选择文件",dragMany:"或拖放到此处",dragOne:"或拖放到此处",notAccepted:(e,o)=>`${s(e)}的文件类型不受支持${o?`(${o})`:""}`,tooLarge:(e,o,t)=>`${s(e)}大小为 ${o},上限为 ${t}`,tooMany:(e,o)=>`未添加${l(e)}:最多只能添加 ${n(o)} 个文件`,bytes:e=>`${n(e)} B`,kilobytes:e=>`${n(e)} KB`,megabytes:e=>`${c(e,1)} MB`},media:{uploadImage:"上传图片",uploadVideo:"上传视频",uploadFile:"上传文件",upload:"上传媒体",cta:"从媒体库选择或上传",replace:"替换",remove:"移除",uploading:"上传中",choosing:"选择中",pickFailed:"无法打开媒体库,请重试。",cover:"封面",add:"添加",addMedia:"添加媒体",empty:"暂无媒体。",removeItem:e=>`移除${l(e)}`,reorder:(e,o,t)=>`${e},第 ${n(o)} 项,共 ${n(t)} 项。使用方向键调整顺序。`,image:"图片",video:"视频",changeImage:"更换图片",changeVideo:"更换视频",focus:"图片焦点",usedIn:e=>`用于 ${n(e)} 处`,notUsed:"未被使用",moveTo:(e,o)=>`将 ${n(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=>`将 ${n(e)} 个文件移到回收站`,filesSelected:e=>`已选择 ${n(e)} 个文件`,fileCount:e=>`${n(e)} 个文件`,selected:e=>`已选择 ${n(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=>`使用 ${n(e)} 处`,email:"邮件",private:"私有",daysAgo:e=>`${n(e)} 天前`,details:"详情",name:"名称",type:"类型",size:"大小",resolution:"分辨率",addedBy:"添加人",folder:"文件夹",usedIn:"使用位置",places:e=>`${n(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)=>`${n(e)} / ${n(o)}`,openOriginal:"打开原图",openFile:"打开文件"},brandAsset:{save:(e,o)=>`保存${l(o)}`,remove:(e,o)=>`移除${l(o)}`,discard:"放弃更改",saveFailed:(e,o)=>`无法保存${l(o)}。`,removeFailed:(e,o)=>`无法移除${l(o)}。`,region:(e,o)=>`${s(o)}的${e}`,usedFor:e=>`用于${l(e)}。`,previews:e=>`${s(e)}预览`,preview:"预览",alt:(e,o)=>`${s(e)}${o}`},copy:{copy:"复制",copyLabel:e=>`复制${l(e)}`,copied:"已复制",copyValue:e=>`复制${l(e)}`,copiedValue:"已复制!",copiedLabel:e=>`已复制${l(e)}`,failed:"无法复制到剪贴板"},keypad:{backspace:"退格",enter:"确认"},banner:{dismiss:"关闭"},transfer:{uploading:"上传中",error:"出错",retry:"重试",dismiss:"关闭",cancel:"取消",cancelVerb:e=>`取消${l(String(e).replace(/中$/,""))}`},count:{items:e=>`${n(e)} 项`,tabs:e=>`${n(e)} 个标签页`,windows:e=>`${n(e)} 个窗口`},badge:{remove:"移除",removeItem:e=>`移除${l(e)}`},breadcrumbs:{label:"面包屑导航",hidden:"已隐藏的层级"},emptyState:{message:"暂无内容。"},errors:{notFound:"找不到页面",notFoundBody:"您访问的页面不存在或已被移动。",forbidden:"访问被拒绝",forbiddenBody:"您没有查看此页面的权限。",noAccess:"您无权访问此内容",serverError:"出错了",serverErrorBody:"发生意外错误,请重试。",retry:"重试",details:"错误详情"},search:{placeholder:"搜索…",escBadge:"ESC",searching:"搜索中",noResults:"未找到结果。",minChars:e=>`请至少输入 ${n(e)} 个字符再搜索…`,navigate:"切换",open:"打开",close:"关闭",enterKey:"Enter",escKey:"Esc",recent:"最近",favorites:"收藏",actions:"操作",listLabel:"搜索结果",groupCount:(e,o)=>`${n(e)}${o?"+":""}`,groupLabel:(e,o,t)=>`${e},${n(o)}${t?"+":""} 项`,seeAll:e=>`查看全部${l(e)}`,searchFailed:"搜索失败,请检查网络连接后重试。",partialFailure:"部分结果未能加载。",tabKey:"Tab",nextGroup:"下一组"},grid:{selectAll:"全选",insertRowAbove:"在上方插入行",insertRowBelow:"在下方插入行",deleteRow:e=>`删除第 ${e} 行`,insertColumnLeft:"在左侧插入列",insertColumnRight:"在右侧插入列",deleteColumn:e=>`删除${d(e)}列`,resize:"拖动调整大小 · 双击自动适应",fill:"拖动填充"},sidebar:{resize:"拖动调整大小 · 双击重置",sections:"栏目",closeSections:"关闭栏目"},resizeHandle:{label:"调整面板大小",hint:"拖动调整大小 · 双击重置"},number:{increase:"增加",decrease:"减少"},slider:{value:e=>`${s(e)}数值`},accordion:{changed:e=>`已更改 ${e} 项`},settingView:{auto:"自动",edited:"已在此视图中更改",resetName:e=>`重置${l(e)}`,inheritName:e=>`${s(e)}继承上级布局`,inheritParentLayout:"继承上级布局",backToDefault:"恢复为网站默认值",backToAuto:"恢复为自动",backTo:e=>`恢复为${l(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:"汽车"},widths:{column:e=>`第 ${e} 栏`,divider:(e,o)=>`第 ${e} 栏和第 ${o} 栏之间的分隔线`,dividerValue:(e,o,t,a)=>`第 ${e} 栏 ${p(o,0)},第 ${t} 栏 ${p(a,0)}`,dragHint:"拖动来调整栏宽",hint:(e,o)=>`输入宽度,或拖动分隔线。每栏不少于 ${p(o,0)}。`,equal:"等宽"},color:{swatch:(e,o)=>`${e}:${o}`,none:"无",panel:e=>`${s(e)}选择器`,square:"饱和度和亮度",squareValue:(e,o)=>`饱和度 ${p(e,0)},亮度 ${p(o,0)}`,hue:"色相",opacity:e=>`${s(e)}不透明度`,hex:e=>`${s(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=>`${s(e)}文字`,linkOf:(e,o)=>`${s(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=>`打开${l(e)}`,removeFavorite:"从收藏中移除",pageResult:"页面",accountMenu:e=>`${s(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=>`未识别的严重级别${l(e)}`},meter:{noData:"无数据",warningAt:e=>`警告 ≥ ${n(e)}`,criticalAt:e=>`严重 ≥ ${n(e)}`,legendWarning:"警告",legendCritical:"严重",noReading:"无读数",noBudget:"无预算",ofBudget:e=>`预算的 ${e}`,budget:"预算",pace:"此刻应达到",hoursMinutes:(e,o)=>`${n(e)} 小时 ${n(o)} 分`,minutesSeconds:(e,o)=>`${n(e)} 分 ${n(o)} 秒`,seconds:e=>`${n(e)} 秒`},charts:{showTable:"以表格显示数据",loading:"正在加载图表数据",noData:"此时间段内无数据。",windowStart:"时间段起点",windowEnd:"时间段终点",window:(e,o,t)=>`时间段:正在显示 ${e} 至 ${o},共 ${n(t)} 个区间`,overIntervals:(e,o)=>`${e.join("、")},共 ${n(o)} 个区间`,acrossCategories:(e,o)=>`${e.join("、")},共 ${n(o)} 个类别`,acrossMeasures:(e,o)=>`${e.join("、")},共 ${n(o)} 项指标`,breakdown:(e,o)=>`${s(e)}的构成,共 ${n(o)} 个部分`,funnel:(e,o,t)=>`漏斗图,共 ${n(e)} 个阶段,从${d(o)}到${l(t)}`,radialTrack:e=>`${n(e)} 个类别,以同心环占比显示`,radialCycle:e=>`${n(e)} 个类别,按环形周期排列`,tableFrom:"来源",tableTo:"去向",tableItem:"项目",tableLevel:"层级",tableSeries:"系列",inBucket:e=>`此区间内共 ${e}`,zoomRange:(e,o,t)=>`${e} – ${o} · ${n(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}:${n(o)} 个类别的五数概括`,outliers:e=>`${n(e)} 个离群值超出须线范围`,price:"价格",ohlc:(e,o)=>`${e}:${n(o)} 个周期的开盘、最高、最低和收盘`,closedAbove:"收盘高于开盘",closedBelow:"收盘低于开盘",noFlows:"没有可绘制的流量。",chord:e=>`${n(e)} 个参与方之间的流量`,chordFolded:e=>`另有 ${n(e)} 个参与方归入"其他"`,noStages:"没有可绘制的阶段。",ofFirstStage:"占首阶段",droppedHere:"此处流失",intensity:"强度",noActivity:"此时间段内无活动。",heatmap:(e,o,t)=>`${e},${n(o)} 行 ${n(t)} 列`,countAxis:"数量",histogram:(e,o,t)=>`${e}:${n(t)} 个观测值,分为 ${n(o)} 组`,observations:"观测值",notEnough:"符合条件的请求不足,无法判断。",objectiveMet:e=>`已达到目标 ${e}`,objectiveMissed:e=>`未达到目标 ${e}`,nothingToPlot:"没有可绘制的数据。",nothingToCompare:"没有可比较的数据。",other:"其他",nothingToBreakDown:"没有可细分的数据。",range:"范围",rangeLabel:(e,o)=>`${e}:${n(o)} 个类别的最低值和最高值`,nothingToRank:"此时间段内没有可排名的数据。",emphasised:"(重点)",sankey:(e,o)=>`${n(e)} 个节点之间的流量,共 ${n(o)} 条连接`,noObservations:"此时间段内无观测值。",xAxis:"x",yAxis:"y",size:"大小",scatter:(e,o,t)=>`${e.join("、")}:${s(o)}与${d(t)}的关系`,outsideRange:e=>`${n(e)} 个点超出显示范围`,waterfall:(e,o,t)=>`瀑布图,共 ${n(e)} 步,从${d(o)}到${l(t)}`,balance:"余额",increase:"增加",decrease:"减少",runningTotal:"累计",sunburst:(e,o)=>`${s(e)}的层级构成,共 ${n(o)} 层`,treemap:e=>`矩形树图,共 ${n(e)} 项`,trendUp:"上升",trendDown:"下降",trendFlat:"持平"},timeline:{days:e=>`${r(e)} 天`,daysToToday:e=>`距今 ${r(e)} 天`,notReached:"尚未达成",next:"下一项",more:e=>`还有 ${n(e)} 项`,today:"今天",todayTitle:e=>`今天:${e}`,open:e=>`打开${l(e)}`,openButton:"打开",scrub:"拖动浏览时间线",alsoToCome:e=>`后续还有:${e.join("、")}`,start:e=>`开始 · ${e}`,events:(e,o)=>`${n(e)} 个事件 · ${o.join("、")}`,started:e=>`开始于 ${e}`,duration:e=>`${r(e)} 天`,reached:(e,o)=>`已达成 ${n(e)} / ${n(o)} 个里程碑`,milestones:e=>`${s(e)}里程碑`},production:{heading:"生产进度",start:"开始",estimated:"预计",estimatedCompletion:"预计完成",estDone:"预计完工",play:"播放",pause:"暂停",playTitle:"逐份报告播放时间线",backTo:e=>`返回${l(e)}`,showing:e=>`正在显示 ${e}`,overall:e=>`总体 ${p(e,0)}`,inStock:e=>`库存 ${r(e)} 件`,noReport:"尚未提交生产报告",leadTime:e=>`交货周期 ${r(e)} 天`,report:"生产报告",shipment:"发货",inspection:"检验",invoice:"发票",scrub:"拖动浏览生产时间线",label:(e,o)=>`生产报告和事件,${e} 至 ${o}`},containers:{items:e=>`${n(e)} 项`,pieces:e=>`${n(e)} 件`,split:(e,o)=>`(指令 ${n(e)} / 已装 ${n(o)})`,added:(e,o)=>`新增 ${n(e)} 项(${n(o)} 件)`,fill:(e,o)=>`${c(e,1)} / ${n(o)} m³`,total:"合计:",instructed:e=>`指令 ${c(e,2)} m³`,loaded:e=>`已装 ${c(e,2)} m³`,volume:e=>`${c(e,2)} m³`,noVolume:"体积:暂无(这些料号没有体积数据)"},toast:{notification:"通知",undo:"撤销"},map:{failed:"无法在此处绘制地图。列表中包含地图显示的全部内容。",approximate:e=>`${e},大致位置`,approximateTitle:e=>`${e}(大致位置)`,places:()=>"地点",group:(e,o)=>`此处有 ${n(e)} 个${l(o)}`,stops:e=>`第 ${e} 站`,closeBy:(e,o)=>`附近还有 ${n(e)} 个${l(o)},放大地图后显示`,spread:"点按以分开查看",cycle:"这些地点位于同一位置:点按查看下一个",fullScreen:"全屏",leaveFullScreen:"退出全屏",chosen:e=>`${e},已在地图上选中`,closeCard:"关闭",openRecord:"打开"},pdf:{previousPage:"上一页",nextPage:"下一页",pageOf:(e,o)=>`${n(e)} / ${n(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=>`复制${l(e)}`,copyRows:e=>1===e?"复制此行":`复制 ${n(e)} 行`,exportSelected:"将所选导出为 CSV",selectAll:"全选",selectAllLoaded:e=>`全选已加载的 ${n(e)} 项`,clearSelection:"清除所选",refresh:"刷新",copiedText:"文本",copiedRows:e=>1===e?"该行":`${n(e)} 行`,exported:e=>`已导出 ${n(e)} 行。`,exportTruncated:(e,o)=>`仅导出了 ${n(o)} 行中的 ${n(e)} 行。服务器限制了本次导出,文件不完整。`,exportTruncatedUnknown:e=>`仅导出了 ${n(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=>`新密码至少需要 ${n(e)} 个字符。`,mismatch:"两次输入的密码不一致。",failed:"修改密码失败。",changed:"您的密码已修改成功。"},pdfAction:{label:"PDF",loading:"加载中",preview:"预览",download:"下载",email:"通过邮件发送",downloaded:e=>`${s(e)}已下载。`,tookTooLong:e=>`${s(e)}加载时间过长,请重试。`,previewLoading:"正在加载 PDF",previewTookTooLong:"此文档加载时间过长。请关闭此窗口后重试。",previewFailed:"PDF 加载失败。"},undo:{undo:"撤销",redo:"重做",undoStep:(e,o)=>`撤销${l(e)}(${o})`,redoStep:(e,o)=>`重做${l(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=>`每 ${n(e)} 秒`,session:"会话",user:"用户",notSignedIn:"未登录",role:"角色",build:"构建",app:"应用",userAgent:"用户代理",pingHint:"点击 ↻ 立即检测",refresh:"刷新"},bulkImport:{description:"可从电子表格粘贴、直接输入或上传 CSV。行无需按顺序排列,系统会自动匹配。列表中没有的值将添加到末尾。留空的字段不受影响。",lines:e=>`${n(e)} 行`,total:(e,o)=>`${e}:${o}`,clear:"清除",upload:"上传 CSV",importLines:e=>`导入 ${n(e)} 行`,importing:"导入中",importFailed:"导入失败。",enterAtLeastOne:(e,o)=>`请至少输入一个${l(o)||"值"}。`,allSkipped:"所有行均已跳过。",cancel:"取消",mapTitle:"将 CSV 列映射到字段",skip:"— 跳过 —",columnOption:(e,o)=>`第 ${n(e)} 列(例如 ${o})`,rowsDetected:e=>`检测到 ${n(e)} 行`,confirmMapping:"确认映射",duplicatesTitle:"检测到重复项",duplicatesFound:e=>`导入内容中有 ${n(e)} 个值出现了多次。请先选择每个值的处理方式,然后再继续。`,occurrences:e=>`出现 ${n(e)} 次`,keepFirst:"保留第一个",keepLast:"保留最后一个",keepAll:"全部保留",skipAll:"全部跳过",keptDropped:(e,o)=>`保留 ${n(e)} · 丢弃 ${n(o)}`,proceed:"继续",duplicatesMerged:e=>`有 ${n(e)} 个值出现了多次。每个值已合并为一行,数量已累加,请检查后再继续。`,mergedFrom:"合并自",mergedRows:e=>`${n(e)} 行`,mergeSummary:(e,o)=>`${n(e)} 个重复行 → 合并为 ${n(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=>`已隐藏 ${n(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=>`关于${l(e)}`,version:e=>`版本 ${e}`,partOf:e=>`属于 ${e} 桌面环境`,shellVersion:e=>`外壳 v${e}`,spreadsheet:"多工作表电子表格编辑器,支持导入和导出 CSV / TSV。",notepad:"带颜色标记的便笺,支持清单、桌面便签和实体自动链接。",documents:"信纸版面的编辑器,适用于 Word 文档和纯文本文件,支持图片、列表和对齐。",preview:"PDF 文档、图片、DXF 图纸和 3D 模型的查看器,支持带对象捕捉的 CAD 式测量和类似 AutoCAD 的命令栏。",files:"个人文件管理器,支持文件夹、上传、配额、回收站和桌面快捷文件夹。",browser:"简洁的网页浏览器,带书签、历史记录和导航栏。"}}}var p=c;export{i as ZH_HANS_REVIEWED_SECTIONS,p as default,c as zhHansStrings};
1
+ import{formatPlain as e,formatGrouped as o,formatFixed as t,formatPercent as a}from"../chunk-C3QOHMR6.js";var i=[],n=/^[A-Za-z0-9]/,r=/[A-Za-z0-9]$/,l=e=>n.test(e)?` ${e}`:e,s=e=>r.test(e)?`${e} `:e,d=e=>s(l(e));function c(i="zh-Hans"){const n=o=>e(o,i),r=e=>o(e,i),c=(e,o)=>t(e,o,i),p=(e,o)=>a(e,o,i);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=>`已选 ${n(e)} 项`,remove:"移除",removeItem:e=>`移除${l(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=>`关闭${l(e)}`,favorite:"已收藏",closeOthers:"关闭其他标签页",closeRight:"关闭右侧标签页",closeAll:"关闭全部标签页",unsaved:"有未保存的更改",copy:e=>`复制${l(e)}`,copied:"已复制",tabMenu:"窗口菜单",groupToggle:(e,o)=>`${e}:${n(o)} 个标签页`,discardTitle:"放弃未保存的更改?",discardOne:"此页面有尚未保存的更改。仍要关闭吗?",discardMany:"个页面有尚未保存的更改。仍要关闭吗?",discardCount:e=>`有 ${n(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=>`选择月份,当前为${l(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=>`已选 ${n(e)} 项`,selectedNotShown:(e,o)=>`已选 ${n(e)} 项,${n(o)} 项未显示`,allLoaded:(e,o)=>`已加载全部 ${r(e)} ${o}`,count:(e,o)=>`共 ${r(e)} ${o}`,loadedOf:(e,o,t)=>`已加载 ${r(e)} / ${r(o)} ${t}`,loadingMore:"正在加载更多",loadError:"无法加载此列表",loadErrorMessage:"获取这些记录时出错。请检查网络连接后重试。",retry:"重试"},kanban:{loading:"加载中",empty:"暂无条目。",dropHere:"拖放到此处",addItem:"添加条目"},files:{attach:"添加附件",drop:"松开即可添加附件",remove:e=>`移除${l(e)}`,chooseMany:"选择文件",chooseOne:"选择文件",dragMany:"或拖放到此处",dragOne:"或拖放到此处",notAccepted:(e,o)=>`${s(e)}的文件类型不受支持${o?`(${o})`:""}`,tooLarge:(e,o,t)=>`${s(e)}大小为 ${o},上限为 ${t}`,tooMany:(e,o)=>`未添加${l(e)}:最多只能添加 ${n(o)} 个文件`,bytes:e=>`${n(e)} B`,kilobytes:e=>`${n(e)} KB`,megabytes:e=>`${c(e,1)} MB`},media:{uploadImage:"上传图片",uploadVideo:"上传视频",uploadFile:"上传文件",upload:"上传媒体",cta:"从媒体库选择或上传",replace:"替换",remove:"移除",uploading:"上传中",choosing:"选择中",pickFailed:"无法打开媒体库,请重试。",cover:"封面",add:"添加",addMedia:"添加媒体",empty:"暂无媒体。",removeItem:e=>`移除${l(e)}`,reorder:(e,o,t)=>`${e},第 ${n(o)} 项,共 ${n(t)} 项。使用方向键调整顺序。`,image:"图片",video:"视频",changeImage:"更换图片",changeVideo:"更换视频",focus:"图片焦点",usedIn:e=>`用于 ${n(e)} 处`,notUsed:"未被使用",moveTo:(e,o)=>`将 ${n(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=>`将 ${n(e)} 个文件移到回收站`,filesSelected:e=>`已选择 ${n(e)} 个文件`,fileCount:e=>`${n(e)} 个文件`,selected:e=>`已选择 ${n(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=>`使用 ${n(e)} 处`,email:"邮件",private:"私有",daysAgo:e=>`${n(e)} 天前`,details:"详情",name:"名称",type:"类型",size:"大小",resolution:"分辨率",addedBy:"添加人",folder:"文件夹",usedIn:"使用位置",places:e=>`${n(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)=>`${n(e)} / ${n(o)}`,openOriginal:"打开原图",openFile:"打开文件"},brandAsset:{save:(e,o)=>`保存${l(o)}`,remove:(e,o)=>`移除${l(o)}`,discard:"放弃更改",saveFailed:(e,o)=>`无法保存${l(o)}。`,removeFailed:(e,o)=>`无法移除${l(o)}。`,region:(e,o)=>`${s(o)}的${e}`,usedFor:e=>`用于${l(e)}。`,previews:e=>`${s(e)}预览`,preview:"预览",alt:(e,o)=>`${s(e)}${o}`},copy:{copy:"复制",copyLabel:e=>`复制${l(e)}`,copied:"已复制",copyValue:e=>`复制${l(e)}`,copiedValue:"已复制!",copiedLabel:e=>`已复制${l(e)}`,failed:"无法复制到剪贴板"},keypad:{backspace:"退格",enter:"确认"},banner:{dismiss:"关闭"},transfer:{uploading:"上传中",error:"出错",retry:"重试",dismiss:"关闭",cancel:"取消",cancelVerb:e=>`取消${l(String(e).replace(/中$/,""))}`},count:{items:e=>`${n(e)} 项`,tabs:e=>`${n(e)} 个标签页`,windows:e=>`${n(e)} 个窗口`},badge:{remove:"移除",removeItem:e=>`移除${l(e)}`},breadcrumbs:{label:"面包屑导航",hidden:"已隐藏的层级"},emptyState:{message:"暂无内容。"},errors:{notFound:"找不到页面",notFoundBody:"您访问的页面不存在或已被移动。",forbidden:"访问被拒绝",forbiddenBody:"您没有查看此页面的权限。",noAccess:"您无权访问此内容",serverError:"出错了",serverErrorBody:"发生意外错误,请重试。",retry:"重试",details:"错误详情"},search:{placeholder:"搜索…",escBadge:"ESC",searching:"搜索中",noResults:"未找到结果。",minChars:e=>`请至少输入 ${n(e)} 个字符再搜索…`,navigate:"切换",open:"打开",close:"关闭",enterKey:"Enter",escKey:"Esc",recent:"最近",favorites:"收藏",actions:"操作",listLabel:"搜索结果",groupCount:(e,o)=>`${n(e)}${o?"+":""}`,groupLabel:(e,o,t)=>`${e},${n(o)}${t?"+":""} 项`,seeAll:e=>`查看全部${l(e)}`,searchFailed:"搜索失败,请检查网络连接后重试。",partialFailure:"部分结果未能加载。",tabKey:"Tab",nextGroup:"下一组"},grid:{selectAll:"全选",insertRowAbove:"在上方插入行",insertRowBelow:"在下方插入行",deleteRow:e=>`删除第 ${e} 行`,insertColumnLeft:"在左侧插入列",insertColumnRight:"在右侧插入列",deleteColumn:e=>`删除${d(e)}列`,resize:"拖动调整大小 · 双击自动适应",fill:"拖动填充"},sidebar:{resize:"拖动调整大小 · 双击重置",sections:"栏目",closeSections:"关闭栏目"},resizeHandle:{label:"调整面板大小",hint:"拖动调整大小 · 双击重置"},number:{increase:"增加",decrease:"减少"},slider:{value:e=>`${s(e)}数值`},accordion:{changed:e=>`已更改 ${e} 项`},settingView:{auto:"自动",edited:"已在此视图中更改",resetName:e=>`重置${l(e)}`,inheritName:e=>`${s(e)}继承上级布局`,inheritParentLayout:"继承上级布局",backToDefault:"恢复为网站默认值",backToAuto:"恢复为自动",backTo:e=>`恢复为${l(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} 栏 ${p(o,0)},第 ${t} 栏 ${p(a,0)}`,dragHint:"拖动来调整栏宽",hint:(e,o)=>`输入宽度,或拖动分隔线。每栏不少于 ${p(o,0)}。`,equal:"等宽"},color:{swatch:(e,o)=>`${e}:${o}`,none:"无",panel:e=>`${s(e)}选择器`,square:"饱和度和亮度",squareValue:(e,o)=>`饱和度 ${p(e,0)},亮度 ${p(o,0)}`,hue:"色相",opacity:e=>`${s(e)}不透明度`,hex:e=>`${s(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=>`${s(e)}文字`,linkOf:(e,o)=>`${s(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=>`打开${l(e)}`,removeFavorite:"从收藏中移除",pageResult:"页面",accountMenu:e=>`${s(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=>`未识别的严重级别${l(e)}`},meter:{noData:"无数据",warningAt:e=>`警告 ≥ ${n(e)}`,criticalAt:e=>`严重 ≥ ${n(e)}`,legendWarning:"警告",legendCritical:"严重",noReading:"无读数",noBudget:"无预算",ofBudget:e=>`预算的 ${e}`,budget:"预算",pace:"此刻应达到",hoursMinutes:(e,o)=>`${n(e)} 小时 ${n(o)} 分`,minutesSeconds:(e,o)=>`${n(e)} 分 ${n(o)} 秒`,seconds:e=>`${n(e)} 秒`},charts:{showTable:"以表格显示数据",loading:"正在加载图表数据",noData:"此时间段内无数据。",windowStart:"时间段起点",windowEnd:"时间段终点",window:(e,o,t)=>`时间段:正在显示 ${e} 至 ${o},共 ${n(t)} 个区间`,overIntervals:(e,o)=>`${e.join("、")},共 ${n(o)} 个区间`,acrossCategories:(e,o)=>`${e.join("、")},共 ${n(o)} 个类别`,acrossMeasures:(e,o)=>`${e.join("、")},共 ${n(o)} 项指标`,breakdown:(e,o)=>`${s(e)}的构成,共 ${n(o)} 个部分`,funnel:(e,o,t)=>`漏斗图,共 ${n(e)} 个阶段,从${d(o)}到${l(t)}`,radialTrack:e=>`${n(e)} 个类别,以同心环占比显示`,radialCycle:e=>`${n(e)} 个类别,按环形周期排列`,tableFrom:"来源",tableTo:"去向",tableItem:"项目",tableLevel:"层级",tableSeries:"系列",inBucket:e=>`此区间内共 ${e}`,zoomRange:(e,o,t)=>`${e} – ${o} · ${n(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}:${n(o)} 个类别的五数概括`,outliers:e=>`${n(e)} 个离群值超出须线范围`,price:"价格",ohlc:(e,o)=>`${e}:${n(o)} 个周期的开盘、最高、最低和收盘`,closedAbove:"收盘高于开盘",closedBelow:"收盘低于开盘",noFlows:"没有可绘制的流量。",chord:e=>`${n(e)} 个参与方之间的流量`,chordFolded:e=>`另有 ${n(e)} 个参与方归入"其他"`,noStages:"没有可绘制的阶段。",ofFirstStage:"占首阶段",droppedHere:"此处流失",intensity:"强度",noActivity:"此时间段内无活动。",heatmap:(e,o,t)=>`${e},${n(o)} 行 ${n(t)} 列`,countAxis:"数量",histogram:(e,o,t)=>`${e}:${n(t)} 个观测值,分为 ${n(o)} 组`,observations:"观测值",notEnough:"符合条件的请求不足,无法判断。",objectiveMet:e=>`已达到目标 ${e}`,objectiveMissed:e=>`未达到目标 ${e}`,nothingToPlot:"没有可绘制的数据。",nothingToCompare:"没有可比较的数据。",other:"其他",nothingToBreakDown:"没有可细分的数据。",range:"范围",rangeLabel:(e,o)=>`${e}:${n(o)} 个类别的最低值和最高值`,nothingToRank:"此时间段内没有可排名的数据。",emphasised:"(重点)",sankey:(e,o)=>`${n(e)} 个节点之间的流量,共 ${n(o)} 条连接`,noObservations:"此时间段内无观测值。",xAxis:"x",yAxis:"y",size:"大小",scatter:(e,o,t)=>`${e.join("、")}:${s(o)}与${d(t)}的关系`,outsideRange:e=>`${n(e)} 个点超出显示范围`,waterfall:(e,o,t)=>`瀑布图,共 ${n(e)} 步,从${d(o)}到${l(t)}`,balance:"余额",increase:"增加",decrease:"减少",runningTotal:"累计",sunburst:(e,o)=>`${s(e)}的层级构成,共 ${n(o)} 层`,treemap:e=>`矩形树图,共 ${n(e)} 项`,trendUp:"上升",trendDown:"下降",trendFlat:"持平"},timeline:{days:e=>`${r(e)} 天`,daysToToday:e=>`距今 ${r(e)} 天`,notReached:"尚未达成",next:"下一项",more:e=>`还有 ${n(e)} 项`,today:"今天",todayTitle:e=>`今天:${e}`,open:e=>`打开${l(e)}`,openButton:"打开",scrub:"拖动浏览时间线",alsoToCome:e=>`后续还有:${e.join("、")}`,start:e=>`开始 · ${e}`,events:(e,o)=>`${n(e)} 个事件 · ${o.join("、")}`,started:e=>`开始于 ${e}`,duration:e=>`${r(e)} 天`,reached:(e,o)=>`已达成 ${n(e)} / ${n(o)} 个里程碑`,milestones:e=>`${s(e)}里程碑`},production:{heading:"生产进度",start:"开始",estimated:"预计",estimatedCompletion:"预计完成",estDone:"预计完工",play:"播放",pause:"暂停",playTitle:"逐份报告播放时间线",backTo:e=>`返回${l(e)}`,showing:e=>`正在显示 ${e}`,overall:e=>`总体 ${p(e,0)}`,inStock:e=>`库存 ${r(e)} 件`,noReport:"尚未提交生产报告",leadTime:e=>`交货周期 ${r(e)} 天`,report:"生产报告",shipment:"发货",inspection:"检验",invoice:"发票",scrub:"拖动浏览生产时间线",label:(e,o)=>`生产报告和事件,${e} 至 ${o}`},containers:{items:e=>`${n(e)} 项`,pieces:e=>`${n(e)} 件`,split:(e,o)=>`(指令 ${n(e)} / 已装 ${n(o)})`,added:(e,o)=>`新增 ${n(e)} 项(${n(o)} 件)`,fill:(e,o)=>`${c(e,1)} / ${n(o)} m³`,total:"合计:",instructed:e=>`指令 ${c(e,2)} m³`,loaded:e=>`已装 ${c(e,2)} m³`,volume:e=>`${c(e,2)} m³`,noVolume:"体积:暂无(这些料号没有体积数据)"},toast:{notification:"通知",undo:"撤销"},map:{failed:"无法在此处绘制地图。列表中包含地图显示的全部内容。",approximate:e=>`${e},大致位置`,approximateTitle:e=>`${e}(大致位置)`,places:()=>"地点",group:(e,o)=>`此处有 ${n(e)} 个${l(o)}`,stops:e=>`第 ${e} 站`,closeBy:(e,o)=>`附近还有 ${n(e)} 个${l(o)},放大地图后显示`,spread:"点按以分开查看",cycle:"这些地点位于同一位置:点按查看下一个",fullScreen:"全屏",leaveFullScreen:"退出全屏",chosen:e=>`${e},已在地图上选中`,closeCard:"关闭",openRecord:"打开"},pdf:{previousPage:"上一页",nextPage:"下一页",pageOf:(e,o)=>`${n(e)} / ${n(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=>`复制${l(e)}`,copyRows:e=>1===e?"复制此行":`复制 ${n(e)} 行`,exportSelected:"将所选导出为 CSV",selectAll:"全选",selectAllLoaded:e=>`全选已加载的 ${n(e)} 项`,clearSelection:"清除所选",refresh:"刷新",copiedText:"文本",copiedRows:e=>1===e?"该行":`${n(e)} 行`,exported:e=>`已导出 ${n(e)} 行。`,exportTruncated:(e,o)=>`仅导出了 ${n(o)} 行中的 ${n(e)} 行。服务器限制了本次导出,文件不完整。`,exportTruncatedUnknown:e=>`仅导出了 ${n(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=>`新密码至少需要 ${n(e)} 个字符。`,mismatch:"两次输入的密码不一致。",failed:"修改密码失败。",changed:"您的密码已修改成功。"},pdfAction:{label:"PDF",loading:"加载中",preview:"预览",download:"下载",email:"通过邮件发送",downloaded:e=>`${s(e)}已下载。`,tookTooLong:e=>`${s(e)}加载时间过长,请重试。`,previewLoading:"正在加载 PDF",previewTookTooLong:"此文档加载时间过长。请关闭此窗口后重试。",previewFailed:"PDF 加载失败。"},undo:{undo:"撤销",redo:"重做",undoStep:(e,o)=>`撤销${l(e)}(${o})`,redoStep:(e,o)=>`重做${l(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=>`每 ${n(e)} 秒`,session:"会话",user:"用户",notSignedIn:"未登录",role:"角色",build:"构建",app:"应用",userAgent:"用户代理",pingHint:"点击 ↻ 立即检测",refresh:"刷新"},bulkImport:{description:"可从电子表格粘贴、直接输入或上传 CSV。行无需按顺序排列,系统会自动匹配。列表中没有的值将添加到末尾。留空的字段不受影响。",lines:e=>`${n(e)} 行`,total:(e,o)=>`${e}:${o}`,clear:"清除",upload:"上传 CSV",importLines:e=>`导入 ${n(e)} 行`,importing:"导入中",importFailed:"导入失败。",enterAtLeastOne:(e,o)=>`请至少输入一个${l(o)||"值"}。`,allSkipped:"所有行均已跳过。",cancel:"取消",mapTitle:"将 CSV 列映射到字段",skip:"— 跳过 —",columnOption:(e,o)=>`第 ${n(e)} 列(例如 ${o})`,rowsDetected:e=>`检测到 ${n(e)} 行`,confirmMapping:"确认映射",duplicatesTitle:"检测到重复项",duplicatesFound:e=>`导入内容中有 ${n(e)} 个值出现了多次。请先选择每个值的处理方式,然后再继续。`,occurrences:e=>`出现 ${n(e)} 次`,keepFirst:"保留第一个",keepLast:"保留最后一个",keepAll:"全部保留",skipAll:"全部跳过",keptDropped:(e,o)=>`保留 ${n(e)} · 丢弃 ${n(o)}`,proceed:"继续",duplicatesMerged:e=>`有 ${n(e)} 个值出现了多次。每个值已合并为一行,数量已累加,请检查后再继续。`,mergedFrom:"合并自",mergedRows:e=>`${n(e)} 行`,mergeSummary:(e,o)=>`${n(e)} 个重复行 → 合并为 ${n(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=>`已隐藏 ${n(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=>`关于${l(e)}`,version:e=>`版本 ${e}`,partOf:e=>`属于 ${e} 桌面环境`,shellVersion:e=>`外壳 v${e}`,spreadsheet:"多工作表电子表格编辑器,支持导入和导出 CSV / TSV。",notepad:"带颜色标记的便笺,支持清单、桌面便签和实体自动链接。",documents:"信纸版面的编辑器,适用于 Word 文档和纯文本文件,支持图片、列表和对齐。",preview:"PDF 文档、图片、DXF 图纸和 3D 模型的查看器,支持带对象捕捉的 CAD 式测量和类似 AutoCAD 的命令栏。",files:"个人文件管理器,支持文件夹、上传、配额、回收站和桌面快捷文件夹。",browser:"简洁的网页浏览器,带书签、历史记录和导航栏。"}}}var p=c;export{i as ZH_HANS_REVIEWED_SECTIONS,p as default,c as zhHansStrings};
package/dist/map/index.js CHANGED
@@ -1,21 +1,21 @@
1
1
  "use client";
2
- import{Button_default as e}from"../chunk-I4VIEGCX.js";import"../chunk-UQYNPYF4.js";import"../chunk-34URULVW.js";import{Icon as t}from"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as n}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-6XBWM453.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import{rootIsDark as r,ROOT_THEME_ATTRIBUTES as o}from"../chunk-F27JJHNJ.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as a}from"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";import{useRef as l,useState as s,useEffect as i,useCallback as c,useMemo as u,useSyncExternalStore as d}from"react";import{createPortal as p}from"react-dom";import{jsxs as m,jsx as h,Fragment as g}from"react/jsx-runtime";import{useQuery as f}from"@tanstack/react-query";var b="maplibregl-compact-show";function y(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(b)&&(e.classList.remove(b),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var x="https://tiles.openfreemap.org",k={connect:[x]},v={light:`${x}/styles/positron`,dark:`${x}/styles/dark`},w=20,N=12,M=480,C={center:[0,0],left:[w,0],right:[-20,0],top:[0,w],"top-left":[0,w],"top-right":[0,w],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},L=(e,t=12)=>Math.max(0,Math.floor(e-t-N-w-10-16));function j(e,t,n,r=12){const o=e.y-w-r,a=n.height-e.y-w-N,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<N?(i="-left",c=Math.max(0,N-e.x)):e.x+t.width/2>n.width-N&&(i="-right",c=-Math.max(0,e.x-(n.width-N))),{anchor:`${l?"bottom":"top"}${i}`,move:{x:c,y:s}}}var E="maplibre-gl-worker.mjs",$=e=>`/maplibre-gl/${e}/${E}`,S=null;function B(){return S??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl($(e.getVersion())),e)).catch(e=>{throw S=null,e}),S}var A=null;var z=24,R=28,W=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 O(e){const t=Math.max(R,12+8*e.length);return t+t%2}var F=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function K(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var q=e=>F(e.x,e.y,e.width,e.height);function H(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(K(q(e[t]),q(e[n])))return[e[t],e[n]];return null}function P(e,t=[]){const n=[],r=e=>t.some(t=>K(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:R,height:R,under:0}));for(let e=H(o);e;e=H(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=O(T(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(q(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=F(t.x,t.y,z,z),l=o.find(t=>K(q(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const s=a.find(t=>K(q(t),e));s?s.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:z,height:z,under:0})}return{groups:[...o,...a],hidden:n}}function _(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}function I(e){const t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:o}),()=>t.disconnect()}var D=r;var U=(...e)=>e.filter(Boolean).join(" "),J=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function Z(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-")&&!J.test(r.slice(7))})}var V="ring-2 ring-gray-900 ring-offset-2",G={portal:{frame:e=>U("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)=>U("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 U("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-sm transition-transform motion-reduce:transition-none",!Z(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":V),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")},mark:e=>U("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",!Z(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)=>U("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&&V),badge:e=>U("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=>U("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)=>U("rosh-map-target",t&&(null!=e.stop?"rosh-map-target--stop":"rosh-map-target--sized")),pinMark:(e,t,n,r)=>U("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=>U("rosh-map-mark",e.stop&&"rosh-map-mark--stop"),groupButton:"rosh-map-target",groupDisc:(e,t,n)=>U("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 A??=import("efficient-shell/map-site.css").catch(e=>{throw A=null,e}),A}}},Q="routes",X=["routes-road","routes-estimate"];function Y(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(),ee(n)}function ee(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 te={center:[30,20],zoom:1};var ne="http://www.w3.org/2000/svg",re=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,oe=(...e)=>e.filter(Boolean).join(" ");function ae(e){const t=document.createElementNS(ne,"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(ne,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function le(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}function se({pins:t,selectedKey:n,focus:r,onSelect:o,ariaLabel:u,className:g="",children:f,routes:b,fitTo:x,attribution:k,marks:w,groupCrowded:N=!1,noun:M,highlightKey:E=null,picking:$=!1,onPick:S,card:A,cardMinMapWidth:W=480,fullScreen:O,initialView:F=te,cooperativeGestures:K=!1,look:q="portal",theme:H}){const U=a().map,J=l(null),Z=l(null),V=l(null),ne=l(null),se=l([]),ue=l(/* @__PURE__ */new Map),de=l(/* @__PURE__ */new Map),pe=l(/* @__PURE__ */new Map),me=l(null),he=l(/* @__PURE__ */new Map),ge=l(""),[fe,be]=s(!1),[ye,xe]=s(!1),ke=d(I,D,()=>!1),ve=H??(ke?"dark":"light"),we=G[q],Ne=l({onSelect:o,onPick:S,picking:$,pins:t,selectedKey:n,highlightKey:E,groupCrowded:N,strings:U,noun:M,looks:we});i(()=>{Ne.current={onSelect:o,onPick:S,picking:$,pins:t,selectedKey:n,highlightKey:E,groupCrowded:N,strings:U,noun:M,looks:we}}),i(()=>{we.sheet?.().catch(e=>console.warn("[map] could not load the look's stylesheet",e))},[we]);const Me=c(()=>{const e=V.current,{pins:t,selectedKey:n}=Ne.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:re()?0:400})},[]),Ce=l(!1),Le=c((e,t)=>{const n=V.current,r=ne.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(Ne.current.selectedKey??"");return void Ne.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>ue.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)=>_(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;Ce.current=!0,n.once("moveend",()=>{if(Ce.current=!1,!p)return;const e=a[0].key,t=ue.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...de.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:re()?0:600})},[]),je=c(()=>{const e=V.current,t=ne.current;if(!e||!t||!J.current||Ce.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l,looks:s}=Ne.current;for(const[e,t]of ue.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=[...J.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([...ue.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?ue.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(ue.current.get(e).button,!1);const i=r.keys.join(" ");let m=de.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=ue.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(),Le(a.keys,n)}),m=a}m.keys=r.keys;const h=r.keys.map(e=>ue.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(ue.current.get(e).button,!1);for(const[e,t]of de.current)p.has(e)||t.marker.remove();de.current=p}if(me.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?ue.current.get(r):void 0,n=r?pe.current.get(r):void 0,o=e?{at:ue.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?R:z),height:t.button.offsetHeight||(null!=t.pin.stop?R:z)}:n?{at:n.mark,width:n.element.offsetWidth||R,height:n.element.offsetHeight||R}:null,a=me.current.getElement();a.style.display=o?"":"none",o&&(me.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Le]);i(()=>{if(je(),!J.current)return;const e=new ResizeObserver(()=>je());e.observe(J.current);for(const t of J.current.children)t.contains(Z.current)||e.observe(t);return()=>e.disconnect()}),i(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await B();if(e||!Z.current)return;ne.current=o,t=new o.Map({container:Z.current,style:v[ve],center:F.center,zoom:F.zoom,attributionControl:k?{compact:!0,customAttribution:k}:{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=Ne.current.looks.ring,a.style.display="none",me.current=new o.Marker({element:a,anchor:"center"}).setLngLat(F.center).addTo(t),t.on("click",e=>{Ne.current.picking&&Ne.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",je),t.on("moveend",je),t.on("resize",je),t.on("error",e=>console.warn("[map]",e.error?.message)),r=y(Z.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),Me()}),n.observe(Z.current),V.current=t,be(!0)}catch(t){console.error("[map] could not start",t),e||xe(!0)}})(),()=>{e=!0,n?.disconnect(),r(),se.current.forEach(e=>e.remove()),se.current=[],de.current.forEach(e=>e.marker.remove()),de.current.clear(),me.current?.remove(),me.current=null,t?.remove(),V.current=null}},[]);const Ee=l(ve);i(()=>{fe&&V.current&&Ee.current!==ve&&(Ee.current=ve,V.current.setStyle(v[ve]))},[fe,ve]),i(()=>{const e=V.current,n=ne.current;if(!fe||!e||!n)return;se.current.forEach(e=>e.remove()),se.current=[],de.current.forEach(e=>e.marker.remove()),de.current.clear(),ue.current.clear(),pe.current.clear();for(const e of he.current.keys())t.some(t=>t.key===e)||he.current.delete(e);const r=Ne.current.strings;for(const o of t){const t=document.createElement("button");t.type="button",t.dataset.pin=o.key,t.className=we.pinButton(o,N);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);t.setAttribute("aria-label",a),t.title=l;const s=document.createElement("span");if(le(s,o.data),o.dot);else if(null!=o.iconNode){const e=he.current.get(o.key);e&&s.append(e)}else o.icon?.length?s.append(ae(o.icon)):s.textContent=null!=o.stop?String(o.stop):o.glyph;if(t.append(s),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=we.badge(o.badgeTone),e.textContent=o.badge,t.appendChild(e)}t.addEventListener("click",e=>{e.stopPropagation(),Ne.current.onSelect(o.key)}),se.current.push(new n.Marker({element:t,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),ue.current.set(o.key,{pin:o,button:t,mark:s,name:a,title:l})}for(const t of w??[]){const r=document.createElement("div");r.dataset.mapMark=t.key,le(r,t.data),r.className=we.mark(t),r.textContent=t.text,r.title=t.title??t.label,r.setAttribute("role","img"),r.setAttribute("aria-label",t.label),se.current.push(new n.Marker({element:r,anchor:"center"}).setLngLat([t.lng,t.lat]).addTo(e)),pe.current.set(t.key,{mark:t,element:r})}je()},[fe,t,w,N,je,q]),i(()=>{fe&&je()},[fe,n,E,je]),i(()=>{if(!fe||!n)return;const e=requestAnimationFrame(Me);return()=>cancelAnimationFrame(e)},[fe,n,Me]),i(()=>{const e=V.current,n=ne.current,r=x?[...t,...w??[]].filter(e=>x.includes(e.key)):t;if(!fe||!e||!n||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(ge.current===o)return;const a=""===ge.current;if(ge.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new n.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})},[fe,t,w,x]),i(()=>{const e=V.current;if(!fe||!e)return;const t=(b??[]).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(),ee(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?Y(e.color):r},geometry:{type:"LineString",coordinates:e.coordinates}}))},a=["case",["get","faded"],.25,.85],l=["get","color"],s=e.getSource(Q);if(s&&(s.attribution||"")!==n){for(const t of X)e.getLayer(t)&&e.removeLayer(t);e.removeSource(Q)}const i=e.getSource(Q);i?i.setData(o):e.addSource(Q,{type:"geojson",data:o,...n?{attribution:n}:{}}),e.getLayer("routes-road")||e.addLayer({id:"routes-road",type:"line",source:Q,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:Q,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)}},[fe,b,ve]),i(()=>{const e=V.current;if(!fe||!e||!r)return;const n=t.find(e=>e.key===r.key);if(!n)return;const o=e.getZoom(),a=N?_(e.project([n.lng,n.lat]),t.filter(e=>e.key!==n.key).map(t=>e.project([t.lng,t.lat])),o):-1/0,l={center:[n.lng,n.lat],zoom:Math.min(18,Math.max(o,13,a))};re()?e.jumpTo(l):e.flyTo({...l,duration:600})},[fe,r?.n]);const[$e,Se]=s(!1);i(()=>{const e=J.current;if(!e)return;const t=()=>Se(e.clientWidth<W);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[W]);const Be=n?t.find(e=>e.key===n)??null:null,Ae=Be?.key??null,ze=Be?.lng??0,Re=Be?.lat??0,We=fe&&!$e&&null!=A&&!!Be,[Te,Oe]=s(null);i(()=>{const e=V.current,t=ne.current;if(!(We&&e&&t&&Ae))return;const n=document.createElement("div");n.dataset.mapCard="",n.className=Ne.current.looks.cardFloating;const r=new t.Popup({anchor:"bottom",offset:C,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([ze,Re]).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=Ne.current.looks===G.site?"var(--rosh-map-pin, #111)":"var(--color-gray-600, #4b5563)";l&&Object.assign(l.style,{borderTopColor:s,borderBottomColor:s}),Oe(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(),J.current)+8,s=`${L(a,l)}px`;n.style.maxHeight!==s&&(n.style.maxHeight=s);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=j(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:re()?0:250}),je()},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=ue.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(),Oe(null),h&&(!document.activeElement||document.activeElement===document.body)){const e=g.get(Ae)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[We,Ae,ze,Re,je]);const Fe=O?.active??!1,Ke=l(O?.onChange);i(()=>{Ke.current=O?.onChange}),i(()=>{if(!O)return;const e=document.documentElement;Fe&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!Fe&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[Fe]);const qe=!!O;return i(()=>{if(!qe)return;const e=()=>{document.fullscreenElement||Ke.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[qe]),/* @__PURE__ */m("div",{ref:J,className:oe(we.frame($),g),children:[
3
- /* @__PURE__ */h("div",{className:we.fill,children:/* @__PURE__ */h("div",{ref:Z,className:we.box,role:"region","aria-label":u})}),ye&&/* @__PURE__ */h("p",{className:we.failed,children:U.failed}),O&&/* @__PURE__ */h(e,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>O.onChange(!O.active),leftIcon:/* @__PURE__ */h(ce,{leave:O.active}),children:O.active?U.leaveFullScreen:U.fullScreen}),f,null!=A&&!We&&/* @__PURE__ */h("div",{"data-map-card":"",className:we.cardInline,children:A}),We&&Te?p(A,Te):null,fe&&/* @__PURE__ */h(ie,{pins:t,hosts:he.current,hostClass:we.iconHost})]})}function ie({pins:e,hosts:t,hostClass:n}){/* @__PURE__ */
2
+ import{Button_default as e}from"../chunk-HXNMRJQ4.js";import"../chunk-UQYNPYF4.js";import"../chunk-SQCUN2DX.js";import{Icon as t}from"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-Q3IR5SKD.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import{rootIsDark as n,ROOT_THEME_ATTRIBUTES as r}from"../chunk-F27JJHNJ.js";import"../chunk-TWVUQUUD.js";import"../chunk-D65T4H6J.js";import{SpinnerRing as o}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import{useShellStrings as a}from"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import{useRef as l,useState as s,useEffect as i,useCallback as c,useMemo as u,useSyncExternalStore as d}from"react";import{createPortal as p}from"react-dom";import{jsxs as m,jsx as h,Fragment as g}from"react/jsx-runtime";import{useQuery as f}from"@tanstack/react-query";var b="maplibregl-compact-show";function y(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(b)&&(e.classList.remove(b),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var x="https://tiles.openfreemap.org",k={connect:[x]},v={light:`${x}/styles/positron`,dark:`${x}/styles/dark`},w=20,N=12,M=480,C={center:[0,0],left:[w,0],right:[-20,0],top:[0,w],"top-left":[0,w],"top-right":[0,w],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},L=(e,t=12)=>Math.max(0,Math.floor(e-t-N-w-10-16));function j(e,t,n,r=12){const o=e.y-w-r,a=n.height-e.y-w-N,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<N?(i="-left",c=Math.max(0,N-e.x)):e.x+t.width/2>n.width-N&&(i="-right",c=-Math.max(0,e.x-(n.width-N))),{anchor:`${l?"bottom":"top"}${i}`,move:{x:c,y:s}}}var $="maplibre-gl-worker.mjs",S=e=>`/maplibre-gl/${e}/${$}`,E=null;function B(){return E??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl(S(e.getVersion())),e)).catch(e=>{throw E=null,e}),E}var z=null;var A=24,R=28,T=29;function O(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 F(e){const t=Math.max(R,12+8*e.length);return t+t%2}var W=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function K(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var H=e=>W(e.x,e.y,e.width,e.height);function q(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(K(H(e[t]),H(e[n])))return[e[t],e[n]];return null}function _(e,t=[]){const n=[],r=e=>t.some(t=>K(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:R,height:R,under:0}));for(let e=q(o);e;e=q(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=F(O(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(H(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=W(t.x,t.y,A,A),l=o.find(t=>K(H(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const s=a.find(t=>K(H(t),e));s?s.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:A,height:A,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}function P(e){const t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:r}),()=>t.disconnect()}var I=n;var J=(...e)=>e.filter(Boolean).join(" "),Q=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function U(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-")&&!Q.test(r.slice(7))})}var Z="ring-2 ring-gray-900 ring-offset-2",G={portal:{frame:e=>J("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)=>J("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 J("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-sm transition-transform motion-reduce:transition-none",!U(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":Z),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")},mark:e=>J("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",!U(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)=>J("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&&Z),badge:e=>J("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=>J("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)=>J("rosh-map-target",t&&(null!=e.stop?"rosh-map-target--stop":"rosh-map-target--sized")),pinMark:(e,t,n,r)=>J("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=>J("rosh-map-mark",e.stop&&"rosh-map-mark--stop"),groupButton:"rosh-map-target",groupDisc:(e,t,n)=>J("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 z??=import("efficient-shell/map-site.css").catch(e=>{throw z=null,e}),z}}},V="routes",X=["routes-road","routes-estimate"];function Y(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(),ee(n)}function ee(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 te={center:[30,20],zoom:1};var ne="http://www.w3.org/2000/svg",re=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,oe=(...e)=>e.filter(Boolean).join(" ");function ae(e){const t=document.createElementNS(ne,"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(ne,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function le(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}function se({pins:t,selectedKey:n,focus:r,onSelect:o,ariaLabel:u,className:g="",children:f,routes:b,fitTo:x,attribution:k,marks:w,groupCrowded:N=!1,noun:M,highlightKey:$=null,picking:S=!1,onPick:E,card:z,cardMinMapWidth:T=480,fullScreen:F,initialView:W=te,cooperativeGestures:K=!1,look:H="portal",theme:q}){const J=a().map,Q=l(null),U=l(null),Z=l(null),ne=l(null),se=l([]),ue=l(/* @__PURE__ */new Map),de=l(/* @__PURE__ */new Map),pe=l(/* @__PURE__ */new Map),me=l(null),he=l(/* @__PURE__ */new Map),ge=l(""),[fe,be]=s(!1),[ye,xe]=s(!1),ke=d(P,I,()=>!1),ve=q??(ke?"dark":"light"),we=G[H],Ne=l({onSelect:o,onPick:E,picking:S,pins:t,selectedKey:n,highlightKey:$,groupCrowded:N,strings:J,noun:M,looks:we});i(()=>{Ne.current={onSelect:o,onPick:E,picking:S,pins:t,selectedKey:n,highlightKey:$,groupCrowded:N,strings:J,noun:M,looks:we}}),i(()=>{we.sheet?.().catch(e=>console.warn("[map] could not load the look's stylesheet",e))},[we]);const Me=c(()=>{const e=Z.current,{pins:t,selectedKey:n}=Ne.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:re()?0:400})},[]),Ce=l(!1),Le=c((e,t)=>{const n=Z.current,r=ne.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(Ne.current.selectedKey??"");return void Ne.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>ue.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;Ce.current=!0,n.once("moveend",()=>{if(Ce.current=!1,!p)return;const e=a[0].key,t=ue.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...de.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:re()?0:600})},[]),je=c(()=>{const e=Z.current,t=ne.current;if(!e||!t||!Q.current||Ce.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l,looks:s}=Ne.current;for(const[e,t]of ue.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=[...Q.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=_([...ue.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?ue.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(ue.current.get(e).button,!1);const i=r.keys.join(" ");let m=de.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=ue.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(),Le(a.keys,n)}),m=a}m.keys=r.keys;const h=r.keys.map(e=>ue.current.get(e)),g=r.stops.length>0?O(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(ue.current.get(e).button,!1);for(const[e,t]of de.current)p.has(e)||t.marker.remove();de.current=p}if(me.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?ue.current.get(r):void 0,n=r?pe.current.get(r):void 0,o=e?{at:ue.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?R:A),height:t.button.offsetHeight||(null!=t.pin.stop?R:A)}:n?{at:n.mark,width:n.element.offsetWidth||R,height:n.element.offsetHeight||R}:null,a=me.current.getElement();a.style.display=o?"":"none",o&&(me.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Le]);i(()=>{if(je(),!Q.current)return;const e=new ResizeObserver(()=>je());e.observe(Q.current);for(const t of Q.current.children)t.contains(U.current)||e.observe(t);return()=>e.disconnect()}),i(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await B();if(e||!U.current)return;ne.current=o,t=new o.Map({container:U.current,style:v[ve],center:W.center,zoom:W.zoom,attributionControl:k?{compact:!0,customAttribution:k}:{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=Ne.current.looks.ring,a.style.display="none",me.current=new o.Marker({element:a,anchor:"center"}).setLngLat(W.center).addTo(t),t.on("click",e=>{Ne.current.picking&&Ne.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",je),t.on("moveend",je),t.on("resize",je),t.on("error",e=>console.warn("[map]",e.error?.message)),r=y(U.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),Me()}),n.observe(U.current),Z.current=t,be(!0)}catch(t){console.error("[map] could not start",t),e||xe(!0)}})(),()=>{e=!0,n?.disconnect(),r(),se.current.forEach(e=>e.remove()),se.current=[],de.current.forEach(e=>e.marker.remove()),de.current.clear(),me.current?.remove(),me.current=null,t?.remove(),Z.current=null}},[]);const $e=l(ve);i(()=>{fe&&Z.current&&$e.current!==ve&&($e.current=ve,Z.current.setStyle(v[ve]))},[fe,ve]),i(()=>{const e=Z.current,n=ne.current;if(!fe||!e||!n)return;se.current.forEach(e=>e.remove()),se.current=[],de.current.forEach(e=>e.marker.remove()),de.current.clear(),ue.current.clear(),pe.current.clear();for(const e of he.current.keys())t.some(t=>t.key===e)||he.current.delete(e);const r=Ne.current.strings;for(const o of t){const t=document.createElement("button");t.type="button",t.dataset.pin=o.key,t.className=we.pinButton(o,N);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);t.setAttribute("aria-label",a),t.title=l;const s=document.createElement("span");if(le(s,o.data),o.dot);else if(null!=o.iconNode){const e=he.current.get(o.key);e&&s.append(e)}else o.icon?.length?s.append(ae(o.icon)):s.textContent=null!=o.stop?String(o.stop):o.glyph;if(t.append(s),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=we.badge(o.badgeTone),e.textContent=o.badge,t.appendChild(e)}t.addEventListener("click",e=>{e.stopPropagation(),Ne.current.onSelect(o.key)}),se.current.push(new n.Marker({element:t,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),ue.current.set(o.key,{pin:o,button:t,mark:s,name:a,title:l})}for(const t of w??[]){const r=document.createElement("div");r.dataset.mapMark=t.key,le(r,t.data),r.className=we.mark(t),r.textContent=t.text,r.title=t.title??t.label,r.setAttribute("role","img"),r.setAttribute("aria-label",t.label),se.current.push(new n.Marker({element:r,anchor:"center"}).setLngLat([t.lng,t.lat]).addTo(e)),pe.current.set(t.key,{mark:t,element:r})}je()},[fe,t,w,N,je,H]),i(()=>{fe&&je()},[fe,n,$,je]),i(()=>{if(!fe||!n)return;const e=requestAnimationFrame(Me);return()=>cancelAnimationFrame(e)},[fe,n,Me]),i(()=>{const e=Z.current,n=ne.current,r=x?[...t,...w??[]].filter(e=>x.includes(e.key)):t;if(!fe||!e||!n||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(ge.current===o)return;const a=""===ge.current;if(ge.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new n.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})},[fe,t,w,x]),i(()=>{const e=Z.current;if(!fe||!e)return;const t=(b??[]).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(),ee(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?Y(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 X)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)}},[fe,b,ve]),i(()=>{const e=Z.current;if(!fe||!e||!r)return;const n=t.find(e=>e.key===r.key);if(!n)return;const o=e.getZoom(),a=N?D(e.project([n.lng,n.lat]),t.filter(e=>e.key!==n.key).map(t=>e.project([t.lng,t.lat])),o):-1/0,l={center:[n.lng,n.lat],zoom:Math.min(18,Math.max(o,13,a))};re()?e.jumpTo(l):e.flyTo({...l,duration:600})},[fe,r?.n]);const[Se,Ee]=s(!1);i(()=>{const e=Q.current;if(!e)return;const t=()=>Ee(e.clientWidth<T);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[T]);const Be=n?t.find(e=>e.key===n)??null:null,ze=Be?.key??null,Ae=Be?.lng??0,Re=Be?.lat??0,Te=fe&&!Se&&null!=z&&!!Be,[Oe,Fe]=s(null);i(()=>{const e=Z.current,t=ne.current;if(!(Te&&e&&t&&ze))return;const n=document.createElement("div");n.dataset.mapCard="",n.className=Ne.current.looks.cardFloating;const r=new t.Popup({anchor:"bottom",offset:C,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([Ae,Re]).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=Ne.current.looks===G.site?"var(--rosh-map-pin, #111)":"var(--color-gray-600, #4b5563)";l&&Object.assign(l.style,{borderTopColor:s,borderBottomColor:s}),Fe(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(),Q.current)+8,s=`${L(a,l)}px`;n.style.maxHeight!==s&&(n.style.maxHeight=s);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=j(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:re()?0:250}),je()},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=ue.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(),Fe(null),h&&(!document.activeElement||document.activeElement===document.body)){const e=g.get(ze)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[Te,ze,Ae,Re,je]);const We=F?.active??!1,Ke=l(F?.onChange);i(()=>{Ke.current=F?.onChange}),i(()=>{if(!F)return;const e=document.documentElement;We&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!We&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[We]);const He=!!F;return i(()=>{if(!He)return;const e=()=>{document.fullscreenElement||Ke.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[He]),/* @__PURE__ */m("div",{ref:Q,className:oe(we.frame(S),g),children:[
3
+ /* @__PURE__ */h("div",{className:we.fill,children:/* @__PURE__ */h("div",{ref:U,className:we.box,role:"region","aria-label":u})}),ye&&/* @__PURE__ */h("p",{className:we.failed,children:J.failed}),F&&/* @__PURE__ */h(e,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>F.onChange(!F.active),leftIcon:/* @__PURE__ */h(ce,{leave:F.active}),children:F.active?J.leaveFullScreen:J.fullScreen}),f,null!=z&&!Te&&/* @__PURE__ */h("div",{"data-map-card":"",className:we.cardInline,children:z}),Te&&Oe?p(z,Oe):null,fe&&/* @__PURE__ */h(ie,{pins:t,hosts:he.current,hostClass:we.iconHost})]})}function ie({pins:e,hosts:t,hostClass:n}){/* @__PURE__ */
4
4
  return h(g,{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)),p(e.iconNode,r,e.key)})})}function ce({leave:e}){/* @__PURE__ */
5
- return h(t,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 ue(){const[e,t]=s(null);return{highlightKey:e,pointAt:c(e=>{const n=()=>t(e),r=()=>t(t=>t===e?null:t);return{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r}},[])}}var de=3e3,pe=e=>!!e?.pending&&3e3,me=e=>`${e.kind}:${e.id}`,he=e=>("located"===e.placement||"approximate"===e.placement)&&null!=e.lat&&null!=e.lng;function ge(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 fe={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"}},be=["importer","dealer","retail","supplier","delivery_location","warehouse"];function ye(e){return"supplier"===e.kind?"supplier":"customer"===e.kind?e.category||"importer":e.kind}var xe=(e,t=fe)=>t[e]?.tone??"bg-gray-700 text-white",ke=(e,t=fe)=>t[e]?.label??e,ve=(e,t)=>xe(ye(e),t);function we(e,t,n=fe){return null!=t?String(t):(n[ye(e)]?.label??"").charAt(0).toUpperCase()}var Ne=["delivery_location","warehouse"];function Me(e,t=Ne){const n=/* @__PURE__ */new Map;let r=0;for(const o of e)t.includes(o.kind)&&n.set(me(o),++r);return n}function Ce(e){const t={onMap:0,approximate:0,pending:0,off:0};for(const n of e)he(n)?(t.onMap+=1,"approximate"===n.placement&&(t.approximate+=1)):"pending"===n.placement?t.pending+=1:t.off+=1;return t}function Le(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 je(e){const t=[...new Set(e.filter(he).map(ye))];return[...be.filter(e=>t.includes(e)),...t.filter(e=>!be.includes(e))]}function Ee(e,t){return e.filter(e=>!he(e)&&"pending"!==e.placement).map(e=>{const n=t?.get(me(e)),r=ge(e.placement)?.replace(/^Not on the map: /,"")??"";return{key:me(e),text:`${null!=n?`${n}. `:""}${e.label}: ${r}`}})}function $e({categories:e,palette:t=fe,floating:n=!0}){return e.length<2?null:/* @__PURE__ */h("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__ */m("span",{className:"inline-flex items-center gap-2",children:[
6
- /* @__PURE__ */h("span",{"aria-hidden":!0,className:`h-2.5 w-2.5 rounded-full ${xe(e,t)}`}),ke(e,t)]},e))})}function Se({point:n,number:r,onOpen:o,onClose:l,palette:s=fe}){const i=ge(n.placement),c=ye(n),u=a().map;/* @__PURE__ */
5
+ return h(t,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 ue(){const[e,t]=s(null);return{highlightKey:e,pointAt:c(e=>{const n=()=>t(e),r=()=>t(t=>t===e?null:t);return{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r}},[])}}var de=3e3,pe=e=>!!e?.pending&&3e3,me=e=>`${e.kind}:${e.id}`,he=e=>("located"===e.placement||"approximate"===e.placement)&&null!=e.lat&&null!=e.lng;function ge(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 fe={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"}},be=["importer","dealer","retail","supplier","delivery_location","warehouse"];function ye(e){return"supplier"===e.kind?"supplier":"customer"===e.kind?e.category||"importer":e.kind}var xe=(e,t=fe)=>t[e]?.tone??"bg-gray-700 text-white",ke=(e,t=fe)=>t[e]?.label??e,ve=(e,t)=>xe(ye(e),t);function we(e,t,n=fe){return null!=t?String(t):(n[ye(e)]?.label??"").charAt(0).toUpperCase()}var Ne=["delivery_location","warehouse"];function Me(e,t=Ne){const n=/* @__PURE__ */new Map;let r=0;for(const o of e)t.includes(o.kind)&&n.set(me(o),++r);return n}function Ce(e){const t={onMap:0,approximate:0,pending:0,off:0};for(const n of e)he(n)?(t.onMap+=1,"approximate"===n.placement&&(t.approximate+=1)):"pending"===n.placement?t.pending+=1:t.off+=1;return t}function Le(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 je(e){const t=[...new Set(e.filter(he).map(ye))];return[...be.filter(e=>t.includes(e)),...t.filter(e=>!be.includes(e))]}function $e(e,t){return e.filter(e=>!he(e)&&"pending"!==e.placement).map(e=>{const n=t?.get(me(e)),r=ge(e.placement)?.replace(/^Not on the map: /,"")??"";return{key:me(e),text:`${null!=n?`${n}. `:""}${e.label}: ${r}`}})}function Se({categories:e,palette:t=fe,floating:n=!0}){return e.length<2?null:/* @__PURE__ */h("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__ */m("span",{className:"inline-flex items-center gap-2",children:[
6
+ /* @__PURE__ */h("span",{"aria-hidden":!0,className:`h-2.5 w-2.5 rounded-full ${xe(e,t)}`}),ke(e,t)]},e))})}function Ee({point:n,number:r,onOpen:o,onClose:l,palette:s=fe}){const i=ge(n.placement),c=ye(n),u=a().map;/* @__PURE__ */
7
7
  return m("section",{"aria-label":u.chosen(n.label),className:"absolute bottom-3 left-3 right-3 z-10 max-w-md space-y-2 rounded-lg border border-line bg-surface p-3 shadow-(--elevation-panel)",children:[
8
8
  /* @__PURE__ */m("div",{className:"flex items-start justify-between gap-2",children:[
9
9
  /* @__PURE__ */m("div",{className:"min-w-0",children:[
10
10
  /* @__PURE__ */m("h3",{className:"text-sm font-semibold text-gray-900 [overflow-wrap:anywhere]",children:[null!=r&&/* @__PURE__ */m("span",{className:"mr-1 text-gray-400",children:[r,"."]}),n.label,n.code&&/* @__PURE__ */h("span",{className:"ml-2 text-xs font-normal text-ink-faintest",children:n.code})]}),
11
11
  /* @__PURE__ */h("p",{className:"text-xs text-gray-500",children:s[c]?ke(c,s):n.category})]}),
12
12
  /* @__PURE__ */h("button",{type:"button",onClick:l,"aria-label":u.closeCard,className:"rounded p-0.5 text-gray-400 hover:text-gray-600",children:/* @__PURE__ */h(t,{name:"close","aria-hidden":!0,className:"h-4 w-4",strokeWidth:2})})]}),
13
- /* @__PURE__ */h("p",{className:"text-sm text-gray-700 [overflow-wrap:anywhere]",children:n.address||"—"}),i&&/* @__PURE__ */h("p",{className:"text-xs text-gray-500",children:i}),n.matched&&"approximate"===n.placement&&/* @__PURE__ */m("p",{className:"text-xs text-gray-400 [overflow-wrap:anywhere]",children:["Placed at: ",n.matched]}),o&&/* @__PURE__ */h("div",{className:"flex justify-end",children:/* @__PURE__ */h(e,{variant:"secondary",size:"sm",onClick:o,children:u.openRecord})})]})}function Be(e,t,{staleTime:n}={}){return f({queryKey:e,queryFn:t,staleTime:n,refetchInterval:e=>pe(e.state.data)})}function Ae({queryKey:e,queryFn:t,refreshSignal:r,onOpen:o,ariaLabel:a,title:c="Locations",palette:d=fe,numbers:p,className:g="",mapClassName:f="min-h-[240px] flex-1"}){const{data:b,isError:y,refetch:x}=Be(e,t,{staleTime:0}),k=l(!1);i(()=>{k.current?x():k.current=!0},[r]);const[v,w]=s(null),N=u(()=>b?.points??[],[b]),M=u(()=>p??Me(N),[p,N]),C=u(()=>N.filter(he).map(e=>({key:me(e),label:e.label,lat:e.lat,lng:e.lng,glyph:we(e,M.get(me(e))??null,d),tone:ve(e,d),approximate:"approximate"===e.placement})),[N,M,d]),L=u(()=>Ee(N,M),[N,M]),j=u(()=>je(N),[N]),E=b?.pending??0,$=N.find(e=>me(e)===v)??null,S=$&&o?o($):null;/* @__PURE__ */
13
+ /* @__PURE__ */h("p",{className:"text-sm text-gray-700 [overflow-wrap:anywhere]",children:n.address||"—"}),i&&/* @__PURE__ */h("p",{className:"text-xs text-gray-500",children:i}),n.matched&&"approximate"===n.placement&&/* @__PURE__ */m("p",{className:"text-xs text-gray-400 [overflow-wrap:anywhere]",children:["Placed at: ",n.matched]}),o&&/* @__PURE__ */h("div",{className:"flex justify-end",children:/* @__PURE__ */h(e,{variant:"secondary",size:"sm",onClick:o,children:u.openRecord})})]})}function Be(e,t,{staleTime:n}={}){return f({queryKey:e,queryFn:t,staleTime:n,refetchInterval:e=>pe(e.state.data)})}function ze({queryKey:e,queryFn:t,refreshSignal:n,onOpen:r,ariaLabel:a,title:c="Locations",palette:d=fe,numbers:p,className:g="",mapClassName:f="min-h-[240px] flex-1"}){const{data:b,isError:y,refetch:x}=Be(e,t,{staleTime:0}),k=l(!1);i(()=>{k.current?x():k.current=!0},[n]);const[v,w]=s(null),N=u(()=>b?.points??[],[b]),M=u(()=>p??Me(N),[p,N]),C=u(()=>N.filter(he).map(e=>({key:me(e),label:e.label,lat:e.lat,lng:e.lng,glyph:we(e,M.get(me(e))??null,d),tone:ve(e,d),approximate:"approximate"===e.placement})),[N,M,d]),L=u(()=>$e(N,M),[N,M]),j=u(()=>je(N),[N]),$=b?.pending??0,S=N.find(e=>me(e)===v)??null,E=S&&r?r(S):null;/* @__PURE__ */
14
14
  return m("section",{"aria-label":c,className:`flex min-w-0 flex-col ${g}`,children:[
15
15
  /* @__PURE__ */m("div",{className:"flex min-h-[30px] items-center justify-between mb-2",children:[
16
16
  /* @__PURE__ */h("h3",{className:"text-sm font-semibold text-gray-900",children:c}),b&&/* @__PURE__ */h("span",{className:"text-xs text-gray-500",children:Le(Ce(N))})]}),
17
17
  /* @__PURE__ */m(se,{pins:C,selectedKey:v,focus:null,onSelect:w,ariaLabel:a,className:f,children:[
18
18
  /* @__PURE__ */m("div",{className:"absolute left-3 top-3 z-10 flex max-w-[70%] flex-col items-start gap-2",children:[
19
- /* @__PURE__ */h($e,{categories:j,palette:d,floating:!1}),y&&/* @__PURE__ */m("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
- /* @__PURE__ */h("button",{type:"button",onClick:()=>{x()},className:"font-medium text-blue-600 hover:text-blue-800 hover:underline",children:"Try again"})]}),!y&&(E>0||L.length>0)&&/* @__PURE__ */m("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:[E>0&&/* @__PURE__ */m("p",{className:"flex items-center gap-2 text-ink-faint",children:[
21
- /* @__PURE__ */h(n,{}),"Locating ",E," address",1===E?"":"es"]}),L.slice(0,3).map(e=>/* @__PURE__ */h("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),L.length>3&&/* @__PURE__ */m("p",{className:"text-gray-500",children:["+",L.length-3," more not on the map"]})]})]}),$&&/* @__PURE__ */h(Se,{point:$,number:M.get(me($))??null,onOpen:S,onClose:()=>w(null),palette:d})]})]})}export{M as CARD_MIN_MAP_WIDTH,b as COMPACT_SHOW,se as EntityMap,Ae as LocationsMap,E as MAPLIBRE_WORKER_FILE,W as MAP_APART_PX,fe as MAP_CATEGORIES,k as MAP_CSP_SOURCES,G as MAP_LOOKS,R as MAP_STOP_PX,v as MAP_STYLE_URLS,z as MAP_TARGET_PX,x as MAP_TILE_ORIGIN,$e as MapLegend,de as PENDING_POLL_MS,Ne as SECONDARY_KINDS,Se as SelectedCard,L as cardMaxHeight,ke as categoryLabel,xe as categoryTone,y as foldAttributionOnce,he as isOnMap,P as layoutPins,je as legendCategories,B as loadMapLibre,Me as locationNumbers,$ as mapLibreWorkerUrl,pe as mapPointsRefetchInterval,Ee as offMapNotes,ye as pinCategory,we as pinGlyph,ve as pinTone,j as placeCard,ge as placementNote,me as pointKey,T as stopsLabel,Ce as summarize,Le as summaryText,ue as useMapHighlight,Be as useMapPoints,_ as zoomApart};
19
+ /* @__PURE__ */h(Se,{categories:j,palette:d,floating:!1}),y&&/* @__PURE__ */m("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
+ /* @__PURE__ */h("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__ */m("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__ */m("p",{className:"flex items-center gap-2 text-ink-faint",children:[
21
+ /* @__PURE__ */h(o,{}),"Locating ",$," address",1===$?"":"es"]}),L.slice(0,3).map(e=>/* @__PURE__ */h("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),L.length>3&&/* @__PURE__ */m("p",{className:"text-gray-500",children:["+",L.length-3," more not on the map"]})]})]}),S&&/* @__PURE__ */h(Ee,{point:S,number:M.get(me(S))??null,onOpen:E,onClose:()=>w(null),palette:d})]})]})}export{M as CARD_MIN_MAP_WIDTH,b as COMPACT_SHOW,se as EntityMap,ze as LocationsMap,$ as MAPLIBRE_WORKER_FILE,T as MAP_APART_PX,fe as MAP_CATEGORIES,k as MAP_CSP_SOURCES,G as MAP_LOOKS,R as MAP_STOP_PX,v as MAP_STYLE_URLS,A as MAP_TARGET_PX,x as MAP_TILE_ORIGIN,Se as MapLegend,de as PENDING_POLL_MS,Ne as SECONDARY_KINDS,Ee as SelectedCard,L as cardMaxHeight,ke as categoryLabel,xe as categoryTone,y as foldAttributionOnce,he as isOnMap,_ as layoutPins,je as legendCategories,B as loadMapLibre,Me as locationNumbers,S as mapLibreWorkerUrl,pe as mapPointsRefetchInterval,$e as offMapNotes,ye as pinCategory,we as pinGlyph,ve as pinTone,j as placeCard,ge as placementNote,me as pointKey,O as stopsLabel,Ce as summarize,Le as summaryText,ue as useMapHighlight,Be as useMapPoints,D as zoomApart};
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Every meaning the one set draws. `<Icon name>` takes exactly these.
7
7
  */
8
- declare const ICON_NAMES: readonly ["academic-cap", "accent", "account", "account-circle", "add", "add-circle", "add-person", "adjust", "align-center", "align-justify", "align-left", "align-right", "align-separate", "alignment", "anchor", "animation", "apps", "archive-box", "arrow", "arrow-down", "arrow-left", "arrow-left-end-on-rectangle", "arrow-long-right", "arrow-right", "arrow-trending-down", "arrow-trending-up", "arrow-up", "arrow-up-right", "at-symbol", "attach", "background", "bag", "bank", "bars-3-bottom-left", "battery", "beaker", "bell", "bell-alert", "bell-plus", "billing", "black-and-white", "block-badge", "block-banner", "block-box", "block-button", "block-column", "block-coupon", "block-divider", "block-footer", "block-heading", "block-image", "block-included-list", "block-layered-images", "block-product", "block-product-title", "block-section", "block-social", "block-spacer", "block-text", "block-video", "blog-post", "bold", "bolt", "book-open", "bookmark", "bookmark-square", "border-all", "border-bottom", "border-left", "border-right", "border-top", "braces", "brand-1password", "brand-adyen", "brand-afterpay", "brand-aircall", "brand-alipay", "brand-amd", "brand-americanexpress", "brand-anthropic", "brand-apple", "brand-applepay", "brand-aws", "brand-bigcommerce", "brand-brevo", "brand-calendly", "brand-campaignmonitor", "brand-cloudflare", "brand-dell", "brand-dhl", "brand-dinersclub", "brand-dropbox", "brand-ebay", "brand-etsy", "brand-facebook", "brand-fedex", "brand-github", "brand-gmail", "brand-googleads", "brand-googleanalytics", "brand-googlecalendar", "brand-googledrive", "brand-googlepay", "brand-googlesheets", "brand-hubspot", "brand-instagram", "brand-intel", "brand-intercom", "brand-jcb", "brand-klarna", "brand-line", "brand-linkedin", "brand-mailchimp", "brand-mailgun", "brand-make", "brand-mastercard", "brand-messenger", "brand-meta", "brand-myob", "brand-notion", "brand-nvidia", "brand-paypal", "brand-pinterest", "brand-quickbooks", "brand-sage", "brand-samsung", "brand-shopify", "brand-square", "brand-squarespace", "brand-stripe", "brand-telegram", "brand-tiktok", "brand-trello", "brand-ups", "brand-visa", "brand-vonage", "brand-wechat", "brand-whatsapp", "brand-wise", "brand-wix", "brand-woocommerce", "brand-x", "brand-xero", "brand-youtube", "brand-zapier", "brand-zendesk", "brand-zoom", "breadcrumb", "briefcase", "bug", "bug-ant", "building-library", "building-office-2", "button", "button-arrow", "button-icon", "calculator", "calendar", "calendar-check", "camera", "caption", "car", "card-payment", "caret", "cart", "case", "case-capitalized", "case-lower", "case-normal", "case-upper", "category", "chart", "chart-bar", "chart-bar-square", "chart-line", "chat", "chat-bubble-left-right", "chat-bubble-oval-left-ellipsis", "check", "check-circle", "checkbox", "chevron", "chevron-double", "chevron-double-left", "chevron-double-right", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevron-up-down", "circle-stack", "clear-marks", "clipboard", "clipboard-check", "clipboard-document-list", "clipboard-list", "clock", "close", "close-circle", "cloud", "cloud-alert", "cloud-arrow-up", "cloud-check", "cloud-download", "cloud-pause", "cloud-slash", "code", "code-bracket", "collapse", "collapse-all", "column-gap", "column-widths", "columns", "company", "compose", "contrast", "cookie", "copied", "copy", "copy-style", "copy-to-page", "corner", "count-up", "crop", "crop-bottom", "crop-left", "crop-left-right", "crop-right", "crop-top", "crop-y", "cube-transparent", "cursor", "cursor-arrow-rays", "cursor-click", "dashboard", "date", "desktop", "detach", "diagram", "direction", "direction-down", "direction-left", "direction-right", "direction-up", "document", "document-check", "document-magnifying-glass", "dollar", "dot", "download", "drag", "drop", "duplicate", "duration", "edit", "email", "emphasis", "enter", "eraser", "error", "expand", "external", "eye", "eye-off", "face-smile", "filter", "finish", "fire", "flag", "flag-au", "flag-ca", "flag-eu", "flag-gb", "flag-nz", "flag-us", "folder", "folder-open", "folder-plus", "forward", "full-width", "gap", "gem", "gift", "globe", "grid", "ground", "hand", "hand-thumb-up", "hash", "headquarters", "heart", "height", "help", "help-off", "hexagon", "home", "hover", "hover-lift", "hover-next-image", "hover-none", "hover-rotate", "hover-zoom", "icon-after-text", "icon-at-end", "icon-before-text", "identification", "image", "image-off", "images", "inbox", "info", "italic", "key", "layers", "layout", "letter-spacing", "lightbulb", "line-between", "line-dashed", "line-dotted", "line-solid", "line-spacing", "line-style", "link", "link-slash", "list", "list-format", "list-none", "location", "lock", "logo", "logout", "loop", "map", "media", "media-layout-big-two", "media-layout-inset", "media-layout-side-by-side", "media-layout-stacked", "megaphone", "menu", "meta", "microphone", "money", "moon", "more", "more-vertical", "move-down", "move-up", "newspaper", "no-symbol", "note", "nudge", "nudge-x", "nudge-y", "numbered-list", "opacity", "own-text", "package", "package-open", "padding-all", "padding-bottom", "padding-left", "padding-left-right", "padding-right", "padding-top", "padding-x", "padding-y", "page", "paint-brush", "palette", "panel-left", "panel-right", "paragraph-spacing", "parcel", "paste", "paste-style", "pause", "pen", "people", "percent", "phone", "phone-hidden", "placement", "play", "plus-minus", "power", "presentation-chart-bar", "print", "product", "product-field", "product-size", "progress", "quote", "radio-dot", "radius", "receipt", "receipt-percent", "receipt-refund", "rectangle-group", "redo", "refresh", "remove", "remove-circle", "rename", "reply", "reply-all", "revert", "robot", "rotate", "scale", "scroll-point", "scroll-text", "search", "select-all", "send", "server", "settings", "shadow", "shape-ellipse", "shape-rect", "share", "shared", "shield-check", "shield-exclamation", "sides-each", "signal", "signal-slash", "sitemap", "slide-arrows-bare", "slide-arrows-round", "slide-arrows-square", "slide-picker-bar", "slide-picker-cards", "slide-picker-dots", "slide-picker-numbers", "slide-picker-squares", "sort", "sparkles", "speaker", "speaker-wave", "spec-table", "spinner", "split", "square", "star", "state", "status-circle", "status-dot", "sticky", "stop-circle", "store", "strike", "styles", "subscript", "success-burst", "sun", "superscript", "swap", "swatch", "table", "tablet", "tabs", "tag", "target", "team", "telephone", "template", "text-color", "text-lines", "text-size", "text-small", "text-value", "texture", "theme", "ticket", "title", "trash", "trigger", "truck", "tv", "type", "tyre", "underline", "undo", "upload", "v-align", "verified", "video-off", "view-columns", "wallet", "warning", "weight", "wheel", "widgets", "width", "window", "windows", "words-from", "wrap", "wrench", "wrench-screwdriver", "zoom-in"];
8
+ declare const ICON_NAMES: readonly ["academic-cap", "accent", "account", "account-circle", "add", "add-circle", "add-person", "adjust", "align-center", "align-justify", "align-left", "align-right", "align-separate", "alignment", "anchor", "animation", "apps", "archive-box", "arrow", "arrow-down", "arrow-left", "arrow-left-end-on-rectangle", "arrow-long-right", "arrow-right", "arrow-trending-down", "arrow-trending-up", "arrow-up", "arrow-up-right", "at-symbol", "attach", "background", "bag", "bank", "bars-3-bottom-left", "battery", "beaker", "bell", "bell-alert", "bell-plus", "billing", "black-and-white", "block-badge", "block-banner", "block-box", "block-button", "block-column", "block-coupon", "block-divider", "block-footer", "block-heading", "block-image", "block-included-list", "block-layered-images", "block-product", "block-product-title", "block-section", "block-social", "block-spacer", "block-text", "block-video", "blog-post", "bold", "bolt", "book-open", "bookmark", "bookmark-square", "border-all", "border-bottom", "border-left", "border-right", "border-top", "braces", "brand-1password", "brand-adyen", "brand-afterpay", "brand-aircall", "brand-alipay", "brand-amd", "brand-americanexpress", "brand-anthropic", "brand-apple", "brand-applepay", "brand-aws", "brand-bigcommerce", "brand-brevo", "brand-calendly", "brand-campaignmonitor", "brand-cloudflare", "brand-dell", "brand-dhl", "brand-dinersclub", "brand-dropbox", "brand-ebay", "brand-etsy", "brand-facebook", "brand-fedex", "brand-github", "brand-gmail", "brand-googleads", "brand-googleanalytics", "brand-googlecalendar", "brand-googledrive", "brand-googlepay", "brand-googlesheets", "brand-hubspot", "brand-instagram", "brand-intel", "brand-intercom", "brand-jcb", "brand-klarna", "brand-line", "brand-linkedin", "brand-mailchimp", "brand-mailgun", "brand-make", "brand-mastercard", "brand-messenger", "brand-meta", "brand-myob", "brand-notion", "brand-nvidia", "brand-paypal", "brand-pinterest", "brand-quickbooks", "brand-sage", "brand-samsung", "brand-shopify", "brand-square", "brand-squarespace", "brand-stripe", "brand-telegram", "brand-tiktok", "brand-trello", "brand-ups", "brand-visa", "brand-vonage", "brand-wechat", "brand-whatsapp", "brand-wise", "brand-wix", "brand-woocommerce", "brand-x", "brand-xero", "brand-youtube", "brand-zapier", "brand-zendesk", "brand-zoom", "breadcrumb", "briefcase", "bug", "bug-ant", "building-library", "building-office-2", "button", "button-arrow", "button-icon", "calculator", "calendar", "calendar-check", "camera", "caption", "car", "card-payment", "caret", "cart", "case", "case-capitalized", "case-lower", "case-normal", "case-upper", "category", "chart", "chart-bar", "chart-bar-square", "chart-line", "chat", "chat-bubble-left-right", "chat-bubble-oval-left-ellipsis", "check", "check-circle", "checkbox", "chevron", "chevron-double", "chevron-double-left", "chevron-double-right", "chevron-down", "chevron-left", "chevron-right", "chevron-up", "chevron-up-down", "circle-stack", "clear-marks", "clipboard", "clipboard-check", "clipboard-document-list", "clipboard-list", "clock", "close", "close-circle", "cloud", "cloud-alert", "cloud-arrow-up", "cloud-check", "cloud-download", "cloud-pause", "cloud-slash", "code", "code-bracket", "collapse", "collapse-all", "column-gap", "column-widths", "columns", "company", "compose", "contrast", "cookie", "copied", "copy", "copy-style", "copy-to-page", "corner", "count-up", "crop", "crop-bottom", "crop-left", "crop-left-right", "crop-right", "crop-top", "crop-y", "cube-transparent", "cursor", "cursor-arrow-rays", "cursor-click", "dashboard", "date", "desktop", "detach", "diagram", "direction", "direction-down", "direction-left", "direction-right", "direction-up", "document", "document-check", "document-magnifying-glass", "dollar", "dot", "download", "drag", "drop", "duplicate", "duration", "edit", "email", "emphasis", "enter", "eraser", "error", "expand", "external", "eye", "eye-off", "face-smile", "filter", "finish", "fire", "flag", "flag-au", "flag-ca", "flag-eu", "flag-gb", "flag-nz", "flag-us", "folder", "folder-open", "folder-plus", "forward", "full-width", "gap", "gem", "gift", "globe", "grid", "ground", "hand", "hand-thumb-up", "hash", "headquarters", "heart", "height", "help", "help-off", "hexagon", "home", "hover", "hover-lift", "hover-next-image", "hover-none", "hover-rotate", "hover-zoom", "icon-after-text", "icon-at-end", "icon-before-text", "identification", "image", "image-off", "images", "inbox", "info", "italic", "key", "layers", "layout", "letter-spacing", "lightbulb", "line-between", "line-dashed", "line-dotted", "line-solid", "line-spacing", "line-style", "link", "link-slash", "list", "list-format", "list-none", "location", "lock", "logo", "logout", "loop", "map", "media", "media-layout-big-two", "media-layout-inset", "media-layout-side-by-side", "media-layout-stacked", "megaphone", "menu", "meta", "microphone", "money", "moon", "more", "more-vertical", "move-down", "move-up", "newspaper", "no-symbol", "note", "nudge", "nudge-x", "nudge-y", "numbered-list", "opacity", "own-text", "package", "package-open", "padding-all", "padding-bottom", "padding-left", "padding-left-right", "padding-right", "padding-top", "padding-x", "padding-y", "page", "paint-brush", "palette", "panel-left", "panel-right", "paragraph-spacing", "parcel", "paste", "paste-style", "pause", "pen", "people", "percent", "phone", "phone-hidden", "placement", "play", "plus-minus", "power", "presentation-chart-bar", "print", "product", "product-field", "product-size", "progress", "quote", "radio-dot", "radius", "receipt", "receipt-percent", "receipt-refund", "rectangle-group", "redo", "refresh", "remove", "remove-circle", "rename", "reply", "reply-all", "revert", "robot", "rotate", "scale", "scroll-point", "scroll-text", "search", "select-all", "send", "separator-slash", "separator-triangle", "server", "settings", "shadow", "shape-ellipse", "shape-rect", "share", "shared", "shield-check", "shield-exclamation", "sides-each", "signal", "signal-slash", "sitemap", "slide-arrows-bare", "slide-arrows-round", "slide-arrows-square", "slide-picker-bar", "slide-picker-cards", "slide-picker-dots", "slide-picker-numbers", "slide-picker-squares", "sort", "sparkles", "speaker", "speaker-wave", "spec-table", "spinner", "split", "square", "star", "state", "status-circle", "status-dot", "sticky", "stop-circle", "store", "strike", "styles", "subscript", "success-burst", "sun", "superscript", "swap", "swatch", "table", "tablet", "tabs", "tag", "target", "team", "telephone", "template", "text-color", "text-lines", "text-size", "text-small", "text-value", "texture", "theme", "ticket", "title", "trash", "trigger", "truck", "tv", "type", "tyre", "underline", "undo", "upload", "v-align", "verified", "video-off", "view-columns", "wallet", "warning", "weight", "wheel", "widgets", "width", "window", "windows", "words-from", "wrap", "wrench", "wrench-screwdriver", "zoom-in"];
9
9
  type IconName = (typeof ICON_NAMES)[number];
10
10
  /** Whether `value` is a meaning the set draws. */
11
11
  declare const isIconName: (value: unknown) => value is IconName;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import{TabStrip as e}from"../chunk-6AS5PHHK.js";import{useShellLanguage as t}from"../chunk-UPQW4GCT.js";import"../chunk-F2R3UFNQ.js";import{confirm as n}from"../chunk-XZGGJHJC.js";import"../chunk-LU6NA4RU.js";import"../chunk-QHOBK35Y.js";import"../chunk-3DVNXNTF.js";import"../chunk-N3TOHWFF.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-4WEFGKJL.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-UQYNPYF4.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-6XBWM453.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-F27JJHNJ.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as i}from"../chunk-4PAWQEXM.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),F=s(null),K=12;var N=(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 A(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 M(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:N(e.mounted,t),dirty:N(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function J(e,t){switch(t.type){case"visit":return A(e,t.entry,t.maxTabs);case"transient":return M(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]:N(e.dirty,t)}}(e,t.key,t.dirty)}}var L=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 I({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const F=m(),K=h(),N=i().pageTabs,C=y(),I=a(c);I.current=c;const O=d(e=>{const t=I.current(e);return t?{key:t.key??e.pathname,path:L(e),title:t.title}:null},[]),{language:D}=t(),[Q,U]=p(J,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=>O(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:T(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},s.map(e=>O(w(e))).filter(e=>Boolean(e)));const n=v?O(F):null;return t=n?A(t,n,k):M(t),t}),W=a(Q);W.current=Q;const x=a(/* @__PURE__ */new Map),H=v?O(F):null,P=H?.key??null;r(()=>{if(!v)return;const e=O(F);e?(x.current.set(e.key,F),U({type:"visit",entry:e,maxTabs:k})):U({type:"transient"})},[F,v,k,O]),o(()=>{const e=new Set(Q.tabs.map(e=>e.key));for(const t of x.current.keys())e.has(t)||x.current.delete(t)},[Q.tabs]);const S=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)}(Q,D),[Q,D]);o(()=>{if(l)try{localStorage.setItem(l,S)}catch{}},[S,l]);const B=Q.dirty.length>0;o(()=>{if(!B)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[B]);const G=a(/* @__PURE__ */new Map),E=d((e,t)=>{let n=G.current.get(e);return void 0===n&&(n=G.current.size,G.current.set(e,n)),`${C}-page-${t}-${n}`},[C]),R=d(e=>g?g(e):n({title:N.discardTitle,message:1===e.length?N.discardOne:N.discardCount?.(e.length)??`${e.length} ${N.discardMany}`,confirmLabel:N.discardConfirm,cancelLabel:N.keepEditing,variant:"warning"}),[g,N]),X=d(()=>{const e=W.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),$=d((e,t,n)=>{const r=W.current,i=r.activeKey;if(!i||!e.includes(i))return void U({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()}U({type:"close",keys:e.filter(e=>e!==i),closing:i}),K(c)},[K,X]),V=d(async(e,t={})=>{const n=W.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&K(t.to),!1):!(!t.force&&W.current.dirty.includes(e)&&!await R([n]))&&(!!W.current.tabs.some(t=>t.key===e)&&($([e],t.to),!0))},[R,$,K]),Y=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)}(W.current,e,t);const r=W.current.tabs.filter(e=>n.includes(e.key)&&W.current.dirty.includes(e.key));r.length&&!await R(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(W.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&$(n,void 0,"all"===e?null:t)},[R,$]),Z=d(e=>{const t=W.current.tabs.find(t=>t.key===e);t&&e!==W.current.activeKey&&K(t.path)},[K]),z=d((e,t)=>U({type:"title",key:e,title:t}),[]),q=d((e,t)=>U({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=>O(e)?.key??null,[O]),re=d(e=>x.current.get(e),[]),ie=u(()=>v?Q.tabs.filter(e=>e.key!==Q.closing):[],[v,Q.tabs,Q.closing]),ce=u(()=>({enabled:v,state:Q,currentKey:P,resolve:c,keyFor:ne,locationFor:re,idFor:E,activate:Z,close:V,closeMany:Y,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,Q,P,c,ne,re,E,Z,V,Y,z,q,_,te,ie]);/* @__PURE__ */
3
- return b(j.Provider,{value:ce,children:e})}var O=c.Activity,D=Boolean(O);function Q({active:e,children:t}){return O?/* @__PURE__ */b(O,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */b(v,{children:t})}var U=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(F.Provider,{value:f,children:/* @__PURE__ */b(Q,{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)),W="\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)},W);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(U,{tabKey:n,active:i,location:a,render:e,className:t,panelId:l(n,"panel"),tabId:l(n,"tab")},n):null}),!c&&/* @__PURE__ */b(U,{tabKey:W,active:!0,location:r,render:e,className:t},W)]})}function H({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 P={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function S(){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)}:P}function B(){const e=k(j),t=k(F),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 G(e){const t=k(j),n=k(F),r=t?.enabled?t.setTitle:void 0,i=n?.key;o(()=>{r&&i&&e&&r(i,e)},[r,i,e])}function E(e){const t=k(j),n=k(F),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 R(e){const t=k(j),n=k(F),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,D as PAGE_TABS_PAUSE_HIDDEN,H as PageTabBar,x as PageTabsOutlet,I as PageTabsProvider,w as parseTabPath,B as usePageTab,E as usePageTabCopy,R as usePageTabDirty,G as usePageTabTitle,S as usePageTabs};
2
+ import{TabStrip as e}from"../chunk-ZI3DGOW6.js";import{useShellLanguage as t}from"../chunk-7TZV6G2F.js";import"../chunk-2E2SUEEE.js";import{confirm as n}from"../chunk-XQMPLXGG.js";import"../chunk-GLBLKHYA.js";import"../chunk-HS2E7DVI.js";import"../chunk-3DVNXNTF.js";import"../chunk-3J2PO3KW.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-3VLG6LR3.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-UQYNPYF4.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-Q3IR5SKD.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-F27JJHNJ.js";import"../chunk-TWVUQUUD.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import{useShellStrings as i}from"../chunk-GDQJBQ5B.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),F=12;var N=(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 L(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=D(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=D(n,e[0].key)}return n}(c,n)}function A(e){let t={...e,activeKey:null};return t.closing&&(t=D(t,t.closing)),t}function D(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:N(e.mounted,t),dirty:N(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 L(e,t.entry,t.maxTabs);case"transient":return A(e);case"close":{let n=e;for(const e of t.keys)n=D(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]:N(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 J({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const K=m(),F=h(),N=i().pageTabs,D=y(),J=a(c);J.current=c;const C=d(e=>{const t=J.current(e);return t?{key:t.key??e.pathname,path:M(e),title:t.title}:null},[]),{language:G}=t(),[O,S]=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=>C(w(e)),G);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=>C(w(e))).filter(e=>Boolean(e)));const n=v?C(K):null;return t=n?L(t,n,k):A(t),t}),E=a(O);E.current=O;const Q=a(/* @__PURE__ */new Map),x=v?C(K):null,B=x?.key??null;r(()=>{if(!v)return;const e=C(K);e?(Q.current.set(e.key,K),S({type:"visit",entry:e,maxTabs:k})):S({type:"transient"})},[K,v,k,C]),o(()=>{const e=new Set(O.tabs.map(e=>e.key));for(const t of Q.current.keys())e.has(t)||Q.current.delete(t)},[O.tabs]);const P=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)}(O,G),[O,G]);o(()=>{if(l)try{localStorage.setItem(l,P)}catch{}},[P,l]);const R=O.dirty.length>0;o(()=>{if(!R)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[R]);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)),`${D}-page-${t}-${n}`},[D]),H=d(e=>g?g(e):n({title:N.discardTitle,message:1===e.length?N.discardOne:N.discardCount?.(e.length)??`${e.length} ${N.discardMany}`,confirmLabel:N.discardConfirm,cancelLabel:N.keepEditing,variant:"warning"}),[g,N]),V=d(()=>{const e=E.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),$=d((e,t,n)=>{const r=E.current,i=r.activeKey;if(!i||!e.includes(i))return void S({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??V()}S({type:"close",keys:e.filter(e=>e!==i),closing:i}),F(c)},[F,V]),X=d(async(e,t={})=>{const n=E.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&F(t.to),!1):!(!t.force&&E.current.dirty.includes(e)&&!await H([n]))&&(!!E.current.tabs.some(t=>t.key===e)&&($([e],t.to),!0))},[H,$,F]),Y=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)}(E.current,e,t);const r=E.current.tabs.filter(e=>n.includes(e.key)&&E.current.dirty.includes(e.key));r.length&&!await H(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(E.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&$(n,void 0,"all"===e?null:t)},[H,$]),Z=d(e=>{const t=E.current.tabs.find(t=>t.key===e);t&&e!==E.current.activeKey&&F(t.path)},[F]),z=d((e,t)=>S({type:"title",key:e,title:t}),[]),q=d((e,t)=>S({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=>C(e)?.key??null,[C]),re=d(e=>Q.current.get(e),[]),ie=u(()=>v?O.tabs.filter(e=>e.key!==O.closing):[],[v,O.tabs,O.closing]),ce=u(()=>({enabled:v,state:O,currentKey:B,resolve:c,keyFor:ne,locationFor:re,idFor:W,activate:Z,close:X,closeMany:Y,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,O,B,c,ne,re,W,Z,X,Y,z,q,_,te,ie]);/* @__PURE__ */
3
+ return b(j.Provider,{value:ce,children:e})}var C=c.Activity,G=Boolean(C);function O({active:e,children:t}){return C?/* @__PURE__ */b(C,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */b(v,{children:t})}var S=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(O,{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)),E="\0transient";function Q({children:e,frameClassName:t}){const n=k(j),r=m();if(!n||!n.enabled)/* @__PURE__ */
5
+ return b("div",{className:t,children:e(r)},E);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(S,{tabKey:n,active:i,location:a,render:e,className:t,panelId:l(n,"panel"),tabId:l(n,"tab")},n):null}),!c&&/* @__PURE__ */b(S,{tabKey:E,active:!0,location:r,render:e,className:t},E)]})}function x({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 P(){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 R(){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 H(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{F as DEFAULT_MAX_TABS,G as PAGE_TABS_PAUSE_HIDDEN,x as PageTabBar,Q as PageTabsOutlet,J as PageTabsProvider,w as parseTabPath,R as usePageTab,W as usePageTabCopy,H as usePageTabDirty,U as usePageTabTitle,P 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-LU5JKHSG.js"));export{e as PdfViewer};
2
+ import{lazy as r}from"react";var e=r(()=>import("../PdfViewer-Y3SAVADX.js"));export{e as PdfViewer};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{AccordionBody,AccordionHeading,accordionIdOf,Accordion as default}from"../chunk-H4HB5OET.js";import"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";
2
+ export{AccordionBody,AccordionHeading,accordionIdOf,Accordion as default}from"../chunk-AWKJZSTO.js";import"../chunk-GDQJBQ5B.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-4G2C6J4I.js";import"../chunk-ZW3IDCP2.js";import"../chunk-I4VIEGCX.js";import"../chunk-UQYNPYF4.js";import"../chunk-34URULVW.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-6XBWM453.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-F27JJHNJ.js";import"../chunk-TWVUQUUD.js";import"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";
2
+ export{APP_UPDATE_POLL_MS,AppUpdateBanner as default,useAppUpdate}from"../chunk-EQCFPRKJ.js";import"../chunk-ZGOHRLXG.js";import"../chunk-HXNMRJQ4.js";import"../chunk-UQYNPYF4.js";import"../chunk-SQCUN2DX.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-Q3IR5SKD.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-F27JJHNJ.js";import"../chunk-TWVUQUUD.js";import"../chunk-D65T4H6J.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{AvatarGroup,Avatar as default}from"../chunk-DKGZPVLL.js";import"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";
2
+ export{AvatarGroup,Avatar as default}from"../chunk-AFYLVV74.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Banner as default}from"../chunk-ZW3IDCP2.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";
2
+ export{Banner as default}from"../chunk-ZGOHRLXG.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Breadcrumbs as default}from"../chunk-3AH524CN.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";
2
+ export{Breadcrumbs as default}from"../chunk-XYECIBVX.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{budgetState,BudgetBar as default}from"../chunk-UTWJKSET.js";import"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";
2
+ export{budgetState,BudgetBar as default}from"../chunk-UEISJFZH.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{StatCard,Card as default}from"../chunk-TOVKWNI2.js";import"../chunk-4PAWQEXM.js";import"../chunk-C3QOHMR6.js";
2
+ export{StatCard,Card as default}from"../chunk-P3RXXWXN.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";