efficient-shell 11.2.0 → 11.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +12 -0
  2. package/dist/{Browser-2JOFXNUA.js → Browser-XMJFN62W.js} +14 -14
  3. package/dist/Calculator-OJSMHQKW.js +29 -0
  4. package/dist/{CurrencyConverter-6WJWHZUQ.js → CurrencyConverter-CUIFL32O.js} +6 -6
  5. package/dist/{Documents-DY2OBQNR.js → Documents-763OJV7I.js} +7 -7
  6. package/dist/{Files-ADJB2IFU.js → Files-LOJ6PPTE.js} +41 -41
  7. package/dist/{Notepad-HOJSMCCF.js → Notepad-ZAOFX5GU.js} +9 -9
  8. package/dist/{PomodoroTimer-5GWSBJW5.js → PomodoroTimer-IMNUQQAC.js} +21 -21
  9. package/dist/{Preview-JZBO2SP5.js → Preview-BYFMM2S5.js} +28 -28
  10. package/dist/Sidebar-BCTWRG7P.js +44 -0
  11. package/dist/{Spreadsheet-SS5Y3DV2.js → Spreadsheet-CQ5FWKAQ.js} +14 -14
  12. package/dist/{Stock-3LSKLYGI.js → Stock-S6URCQBQ.js} +2 -2
  13. package/dist/{Weather-26PCYFUR.js → Weather-SM5ZQUE2.js} +19 -19
  14. package/dist/{WorldClock-KRL72Y53.js → WorldClock-I26FGYJO.js} +4 -4
  15. package/dist/ai/index.js +91 -91
  16. package/dist/apps/index.js +1 -1
  17. package/dist/bin/media-host-check.js +1 -1
  18. package/dist/bin/ui-check.js +1 -1
  19. package/dist/charts/BoxPlotChart.js +1 -1
  20. package/dist/charts/CandlestickChart.js +1 -1
  21. package/dist/charts/CartesianPlot.js +1 -1
  22. package/dist/charts/ChartTooltip.js +1 -1
  23. package/dist/charts/ChordChart.js +1 -1
  24. package/dist/charts/ColumnChart.js +1 -1
  25. package/dist/charts/FunnelChart.js +1 -1
  26. package/dist/charts/HeatmapChart.js +1 -1
  27. package/dist/charts/HistogramChart.js +1 -1
  28. package/dist/charts/PieChart.js +1 -1
  29. package/dist/charts/RadarChart.js +1 -1
  30. package/dist/charts/RadialBarChart.js +1 -1
  31. package/dist/charts/RangeChart.js +1 -1
  32. package/dist/charts/SankeyChart.js +1 -1
  33. package/dist/charts/ScatterChart.js +1 -1
  34. package/dist/charts/SpecChart.js +1 -1
  35. package/dist/charts/SunburstChart.js +1 -1
  36. package/dist/charts/TimeSeriesChart.js +1 -1
  37. package/dist/charts/TreemapChart.js +1 -1
  38. package/dist/charts/WaterfallChart.js +1 -1
  39. package/dist/{chunk-QMUIXKBQ.js → chunk-2N64TKI5.js} +1 -1
  40. package/dist/{chunk-SHO35OPO.js → chunk-36PJGT4W.js} +3 -3
  41. package/dist/{chunk-WDQI3FV6.js → chunk-36VIGB6J.js} +6 -6
  42. package/dist/{chunk-LJAYUDN2.js → chunk-3BFZVVAT.js} +1 -1
  43. package/dist/chunk-3XZFWR6T.js +13 -0
  44. package/dist/chunk-4BCFBF3C.js +9 -0
  45. package/dist/{chunk-OTVK7DJM.js → chunk-4DDL6NXB.js} +1 -1
  46. package/dist/{chunk-YDMXW2Q4.js → chunk-4EBJO7ER.js} +11 -11
  47. package/dist/{chunk-T7PVHIXI.js → chunk-4P3324KU.js} +1 -1
  48. package/dist/chunk-4P57TIFK.js +2 -0
  49. package/dist/{chunk-ZXVJL7MS.js → chunk-4RGMRXYH.js} +1 -1
  50. package/dist/{chunk-P4VKU3SL.js → chunk-55AEZX6K.js} +1 -1
  51. package/dist/chunk-5PDHKH2A.js +3 -0
  52. package/dist/{chunk-EYPKBJYG.js → chunk-5PP435FL.js} +1 -1
  53. package/dist/{chunk-EB2IQNM5.js → chunk-5SBCAYBH.js} +1 -1
  54. package/dist/{chunk-GAIB5FEE.js → chunk-5XFBZ7C3.js} +74 -74
  55. package/dist/{chunk-NEZA7V6H.js → chunk-6IOFNPR6.js} +4 -4
  56. package/dist/{chunk-G3KXB7SP.js → chunk-6KGIHI6X.js} +4 -4
  57. package/dist/{chunk-MDV7UQJD.js → chunk-6M5O2P64.js} +9 -9
  58. package/dist/{chunk-COGSXN4D.js → chunk-7FW2BQTV.js} +2 -2
  59. package/dist/{chunk-FA5FBNWF.js → chunk-7JVGF555.js} +1 -1
  60. package/dist/chunk-7LU3H72S.js +7 -0
  61. package/dist/{chunk-PFKXPSOM.js → chunk-A6FR2D46.js} +5 -5
  62. package/dist/{chunk-SXQZ5GTA.js → chunk-AFG34RBV.js} +6 -6
  63. package/dist/{chunk-SS5SQMIB.js → chunk-AIJ6OR6X.js} +2 -2
  64. package/dist/{chunk-DLWKDAYX.js → chunk-ALTBTO3Z.js} +2 -2
  65. package/dist/{chunk-BQPMZXNB.js → chunk-AWGJIDBR.js} +1 -1
  66. package/dist/{chunk-BTRV3SMB.js → chunk-BBXFIBXB.js} +1 -1
  67. package/dist/{chunk-SX5BSWTN.js → chunk-BMXTPJ7T.js} +5 -5
  68. package/dist/{chunk-3TXSYEQM.js → chunk-BUO7XCYR.js} +13 -13
  69. package/dist/chunk-CH3JQUDW.js +8 -0
  70. package/dist/chunk-CJSZW3OS.js +1 -0
  71. package/dist/{chunk-4TGZODSH.js → chunk-COF33H6J.js} +5 -5
  72. package/dist/{chunk-MIC2F3W3.js → chunk-D5HGRACW.js} +1 -1
  73. package/dist/{chunk-ESZHN7PV.js → chunk-DIEH76MB.js} +1 -1
  74. package/dist/{chunk-A3Q7X35W.js → chunk-DOF56HTO.js} +6 -6
  75. package/dist/{chunk-TQE6O2JA.js → chunk-DVYIBJ3S.js} +3 -3
  76. package/dist/{chunk-MTIP5DH2.js → chunk-DWAA4YZV.js} +3 -3
  77. package/dist/{chunk-3NRQNKVP.js → chunk-DZOJQURG.js} +3 -3
  78. package/dist/{chunk-5F2AIDPY.js → chunk-E3EJWNNK.js} +9 -9
  79. package/dist/chunk-EOVXFXVV.js +2 -0
  80. package/dist/chunk-EXLHFM3V.js +6 -0
  81. package/dist/{chunk-LK5A2SGA.js → chunk-F56UUBKG.js} +1 -1
  82. package/dist/{chunk-JPNAEN53.js → chunk-FZM3ZPW3.js} +1 -1
  83. package/dist/{chunk-6EIZOX6W.js → chunk-G66SG6JN.js} +9 -9
  84. package/dist/{chunk-ZD36QKQS.js → chunk-H5NIW2KS.js} +1 -1
  85. package/dist/{chunk-4LQDORA6.js → chunk-HAYGUFNM.js} +13 -13
  86. package/dist/chunk-HFDSKCPL.js +1 -0
  87. package/dist/{chunk-HEGSRTXG.js → chunk-HNUKXGYP.js} +3 -3
  88. package/dist/{chunk-355CRSFS.js → chunk-HNVSVTNC.js} +11 -11
  89. package/dist/{chunk-6TJCIS5E.js → chunk-ILY4DU3D.js} +1 -1
  90. package/dist/{chunk-RRE2NNFS.js → chunk-IPO4LHSB.js} +6 -6
  91. package/dist/chunk-KC4NOKZ6.js +28 -0
  92. package/dist/{chunk-IGLPL2QU.js → chunk-KXU4ORKE.js} +1 -1
  93. package/dist/{chunk-VUIGU2LQ.js → chunk-KYBXJL6A.js} +15 -15
  94. package/dist/{chunk-4XNVIKZZ.js → chunk-LCSMBVMU.js} +3 -3
  95. package/dist/{chunk-VCMHBUKI.js → chunk-LE5LWALR.js} +1 -1
  96. package/dist/{chunk-OEQ52KWJ.js → chunk-M4IASUEE.js} +1 -1
  97. package/dist/{chunk-DU4WEVNS.js → chunk-MCAPJSB6.js} +1 -1
  98. package/dist/chunk-MHPFBVDD.js +8 -0
  99. package/dist/{chunk-RQDVAUXD.js → chunk-N5KO2IHG.js} +4 -4
  100. package/dist/{chunk-QQ2LDC6C.js → chunk-NJN5IKWO.js} +1 -1
  101. package/dist/{chunk-3XTSXZAC.js → chunk-NRALUW6P.js} +7 -7
  102. package/dist/chunk-NWC6YCIJ.js +11 -0
  103. package/dist/{chunk-VQBEZNHC.js → chunk-NZ34BQKH.js} +1 -1
  104. package/dist/chunk-NZISMTQE.js +7 -0
  105. package/dist/{chunk-KBV2UOTG.js → chunk-O7RR2ZZ2.js} +6 -6
  106. package/dist/{chunk-4MBYFQOI.js → chunk-OEPYQUXZ.js} +8 -8
  107. package/dist/{chunk-BW47XJLH.js → chunk-OKHKY3ZZ.js} +1 -1
  108. package/dist/{chunk-UGGHQYDN.js → chunk-P7H2DXJB.js} +10 -10
  109. package/dist/{chunk-GSF2UZTX.js → chunk-PLC656AN.js} +1 -1
  110. package/dist/{chunk-LGDMGDSV.js → chunk-PSR6SXCC.js} +11 -11
  111. package/dist/chunk-Q2SCJQ5H.js +1 -0
  112. package/dist/{chunk-OONJ43CQ.js → chunk-QGWKM7C3.js} +5 -5
  113. package/dist/{chunk-RABYGQQU.js → chunk-QO5E33DH.js} +2 -2
  114. package/dist/{chunk-CD7UWMPX.js → chunk-QOI4GQVH.js} +1 -1
  115. package/dist/{chunk-ZD56IH5K.js → chunk-QRU55BUS.js} +2 -2
  116. package/dist/chunk-RBZKV3ED.js +14 -0
  117. package/dist/{chunk-SYZLS2JA.js → chunk-RDKIYORS.js} +1 -1
  118. package/dist/{chunk-6UBOLLBC.js → chunk-RNBS6QGP.js} +16 -16
  119. package/dist/{chunk-JQBVSPF5.js → chunk-S4FPYCUU.js} +3 -3
  120. package/dist/{chunk-VAPSWR5Q.js → chunk-SX3SG522.js} +9 -9
  121. package/dist/chunk-T3DN2QBM.js +1 -0
  122. package/dist/{chunk-5CXFABVD.js → chunk-T6BGS26U.js} +1 -1
  123. package/dist/{chunk-PVPMJ5G2.js → chunk-TDAI4J27.js} +1 -1
  124. package/dist/{chunk-XWFLIGDQ.js → chunk-TE6R53YD.js} +1 -1
  125. package/dist/{chunk-DGNAUGZ3.js → chunk-TFSLPAGB.js} +4 -4
  126. package/dist/chunk-TNJ2VCH4.js +8 -0
  127. package/dist/{chunk-4QK4WNPB.js → chunk-U44DVPGB.js} +1 -1
  128. package/dist/{chunk-FXOYA2VJ.js → chunk-UNQ54QOF.js} +1 -1
  129. package/dist/{chunk-ALE56KOA.js → chunk-V2J2AHDW.js} +4 -4
  130. package/dist/{chunk-WMHZA4EO.js → chunk-VX4COEWP.js} +3 -3
  131. package/dist/{chunk-M4BPHBKI.js → chunk-VX6TKEEK.js} +1 -1
  132. package/dist/{chunk-47DO42IW.js → chunk-WDQEUNGE.js} +1 -1
  133. package/dist/{chunk-CJH2BGXY.js → chunk-WGLHB6WE.js} +1 -1
  134. package/dist/{chunk-RWPMLUFO.js → chunk-WL4U4MTQ.js} +3 -3
  135. package/dist/{chunk-OFG3JZZE.js → chunk-WLYYC3AP.js} +1 -1
  136. package/dist/{chunk-ZS3TIQQ4.js → chunk-WOAMPTZI.js} +14 -14
  137. package/dist/chunk-WPCNJ4UL.js +2 -0
  138. package/dist/{chunk-YCWALB3A.js → chunk-XBHXGBJR.js} +1 -1
  139. package/dist/{chunk-MXGDFO6A.js → chunk-XCAUDTCC.js} +5 -5
  140. package/dist/{chunk-M3JNILT2.js → chunk-XFH64VIG.js} +3 -3
  141. package/dist/{chunk-34H3CK7R.js → chunk-XXL5RLNM.js} +9 -9
  142. package/dist/{chunk-GELPD7EY.js → chunk-YQOVUH5W.js} +8 -8
  143. package/dist/{chunk-EKCQ7XBZ.js → chunk-Z44JWU75.js} +2 -2
  144. package/dist/{chunk-DANLBFBD.js → chunk-ZRLWE3JM.js} +1 -1
  145. package/dist/data/DataTable.js +1 -1
  146. package/dist/data/EntityList.js +1 -1
  147. package/dist/data/ListLoadError.js +1 -1
  148. package/dist/data/ResizableTable.js +1 -1
  149. package/dist/format/index.d.ts +2 -0
  150. package/dist/format/index.js +1 -1
  151. package/dist/forms/AlignmentGrid.js +1 -1
  152. package/dist/forms/BorderInput.js +1 -1
  153. package/dist/forms/BrandAssetEditor.js +1 -1
  154. package/dist/forms/Button.js +1 -1
  155. package/dist/forms/ColorPicker.js +1 -1
  156. package/dist/forms/ComposerAttachments.js +1 -1
  157. package/dist/forms/CornersInput.js +1 -1
  158. package/dist/forms/DateRangePicker.js +1 -1
  159. package/dist/forms/DisplayChips.js +1 -1
  160. package/dist/forms/FilePicker.js +1 -1
  161. package/dist/forms/IconButton.js +1 -1
  162. package/dist/forms/IconPicker.js +1 -1
  163. package/dist/forms/Input.js +1 -1
  164. package/dist/forms/InputNumber.js +1 -1
  165. package/dist/forms/LinkPicker.js +1 -1
  166. package/dist/forms/MediaLibrary.js +1 -1
  167. package/dist/forms/MediaUploadField.js +1 -1
  168. package/dist/forms/MediaUploadGrid.js +1 -1
  169. package/dist/forms/MediaUsedInList.js +1 -1
  170. package/dist/forms/NumericKeypad.js +1 -1
  171. package/dist/forms/PictureTiles.js +1 -1
  172. package/dist/forms/PositionInput.js +1 -1
  173. package/dist/forms/RenameField.d.ts +13 -0
  174. package/dist/forms/RenameField.js +2 -0
  175. package/dist/forms/Segmented.js +1 -1
  176. package/dist/forms/Select.js +1 -1
  177. package/dist/forms/SidesInput.js +1 -1
  178. package/dist/forms/Slider.js +1 -1
  179. package/dist/forms/Snippet.js +1 -1
  180. package/dist/forms/SplitButton.js +1 -1
  181. package/dist/forms/TagInput.js +1 -1
  182. package/dist/forms/TextToolbar.js +1 -1
  183. package/dist/forms/WidthsBar.js +1 -1
  184. package/dist/forms/colorMix.d.ts +38 -0
  185. package/dist/forms/colorMix.js +1 -0
  186. package/dist/hooks/useTheme.d.ts +1 -1
  187. package/dist/icons/efficient-glyphs.js +1 -1
  188. package/dist/icons/efficient-looks.js +1 -1
  189. package/dist/icons/efficient.js +1 -1
  190. package/dist/icons/looks/map.js +1 -1
  191. package/dist/icons/payment.js +1 -1
  192. package/dist/icons/sets.js +1 -1
  193. package/dist/index.d.ts +6 -3
  194. package/dist/index.js +666 -666
  195. package/dist/map/index.js +3 -3
  196. package/dist/motion/entrance.d.ts +38 -0
  197. package/dist/motion/entrance.js +1 -0
  198. package/dist/motion.css +101 -0
  199. package/dist/page-tabs/index.js +5 -5
  200. package/dist/shell/AppUpdateBanner.js +1 -1
  201. package/dist/shell/ColoredBadge.js +1 -1
  202. package/dist/shell/ContextMenu.js +1 -1
  203. package/dist/shell/DropdownMenu.js +1 -1
  204. package/dist/shell/EditableGrid.js +1 -1
  205. package/dist/shell/GlobalSearch.js +1 -1
  206. package/dist/shell/HelpCenter.js +1 -1
  207. package/dist/shell/IconRail.js +1 -1
  208. package/dist/shell/ImageLightbox.js +1 -1
  209. package/dist/shell/ItemCount.js +1 -1
  210. package/dist/shell/LanguageSelect.js +1 -1
  211. package/dist/shell/Markdown.js +1 -1
  212. package/dist/shell/PopupMenu.js +1 -1
  213. package/dist/shell/ResizeHandle.js +1 -1
  214. package/dist/shell/SearchableSelect.js +1 -1
  215. package/dist/shell/SettingReset.js +1 -1
  216. package/dist/shell/SidebarLayout.js +1 -1
  217. package/dist/shell/SidebarNav.js +1 -1
  218. package/dist/shell/SortableList.js +1 -1
  219. package/dist/shell/StatusBadge.js +1 -1
  220. package/dist/shell/Tabs.js +1 -1
  221. package/dist/shell/Tooltip.js +1 -1
  222. package/dist/shell/TopNav.js +1 -1
  223. package/dist/shell/TransferProgress.js +1 -1
  224. package/dist/shell/Tree.js +1 -1
  225. package/dist/telemetry/index.js +1 -1
  226. package/dist/templates/AuthScreen.js +1 -1
  227. package/dist/templates/ChatTemplate.js +1 -1
  228. package/dist/templates/CheckoutTemplate.js +1 -1
  229. package/dist/templates/DashboardTemplate.js +1 -1
  230. package/dist/templates/DataTablePage.js +1 -1
  231. package/dist/templates/EmailTemplate.js +1 -1
  232. package/dist/templates/ErrorBoundary.d.ts +1 -1
  233. package/dist/templates/ErrorBoundary.js +1 -1
  234. package/dist/templates/FormLayoutPage.js +1 -1
  235. package/dist/templates/GalleryTemplate.js +1 -1
  236. package/dist/ui/index.d.ts +3 -0
  237. package/dist/ui/index.js +1 -1
  238. package/dist/version.js +1 -1
  239. package/package.json +1 -1
  240. package/dist/Calculator-V3BHUF4G.js +0 -29
  241. package/dist/Sidebar-GQX7UM3M.js +0 -44
  242. package/dist/chunk-23G63EZ4.js +0 -29
  243. package/dist/chunk-56KADF2B.js +0 -11
  244. package/dist/chunk-7DI3VQCF.js +0 -2
  245. package/dist/chunk-EUAC2T5D.js +0 -2
  246. package/dist/chunk-EZYRHBOP.js +0 -13
  247. package/dist/chunk-FO6UPEZH.js +0 -7
  248. package/dist/chunk-GOZO6LU2.js +0 -8
  249. package/dist/chunk-HCXIXV4E.js +0 -8
  250. package/dist/chunk-IYXNRNAF.js +0 -8
  251. package/dist/chunk-L7XIGRIT.js +0 -6
  252. package/dist/chunk-LCMXVMF4.js +0 -14
  253. package/dist/chunk-MNMOBH2O.js +0 -1
  254. package/dist/chunk-RK7MN5L5.js +0 -3
  255. package/dist/chunk-RPL4H6LE.js +0 -9
  256. package/dist/chunk-WBJ6KNUF.js +0 -1
  257. package/dist/chunk-WUAKIM2B.js +0 -7
  258. /package/dist/{chunk-2F5SLLBJ.js → chunk-MXK7A6ZM.js} +0 -0
package/dist/map/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import{useRootIsDark as e}from"../chunk-UPXDDO3U.js";import{Button_default as t}from"../chunk-7DI3VQCF.js";import"../chunk-UQYNPYF4.js";import"../chunk-XWFLIGDQ.js";import{Icon as n}from"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as r}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as o}from"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import{useRef as a,useState as l,useEffect as s,useCallback as i,useMemo as c}from"react";import{createPortal as u}from"react-dom";import{jsxs as d,jsx as p,Fragment as m}from"react/jsx-runtime";import{useQuery as h}from"@tanstack/react-query";var g="maplibregl-compact-show";function f(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(g)&&(e.classList.remove(g),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var b="https://tiles.openfreemap.org",y={connect:[b]},x={light:`${b}/styles/positron`,dark:`${b}/styles/dark`},k=20,v=12,w=480,N={center:[0,0],left:[k,0],right:[-20,0],top:[0,k],"top-left":[0,k],"top-right":[0,k],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},M=(e,t=12)=>Math.max(0,Math.floor(e-t-v-k-10-16));function C(e,t,n,r=12){const o=e.y-k-r,a=n.height-e.y-k-v,l=t.height<=o||t.height>a&&o>=a,s=l?Math.max(0,t.height-o):-Math.max(0,t.height-a);let i="",c=0;return e.x-t.width/2<v?(i="-left",c=Math.max(0,v-e.x)):e.x+t.width/2>n.width-v&&(i="-right",c=-Math.max(0,e.x-(n.width-v))),{anchor:`${l?"bottom":"top"}${i}`,move:{x:c,y:s}}}var L="maplibre-gl-worker.mjs",j=e=>`/maplibre-gl/${e}/${L}`,$=null;function E(){return $??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl(j(e.getVersion())),e)).catch(e=>{throw $=null,e}),$}var S=null;var B=24,z=28,A=29;function R(e){const t=[...e].sort((e,t)=>e-t),n=[];for(let e=0;e<t.length;){let r=e;for(;r+1<t.length&&t[r+1]===t[r]+1;)r++;n.push(r===e?String(t[e]):`${t[e]}–${t[r]}`),e=r+1}return n.join(", ")}function T(e){const t=Math.max(z,12+8*e.length);return t+t%2}var F=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function O(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var W=e=>F(e.x,e.y,e.width,e.height);function D(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(O(W(e[t]),W(e[n])))return[e[t],e[n]];return null}function K(e,t=[]){const n=[],r=e=>t.some(t=>O(t,e));let o=e.filter(e=>null!==e.stop).sort((e,t)=>e.stop-t.stop).map(e=>({keys:[e.key],stops:[e.stop],x:e.x,y:e.y,width:z,height:z,under:0}));for(let e=D(o);e;e=D(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=T(R(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(W(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=F(t.x,t.y,B,B),l=o.find(t=>O(W(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const s=a.find(t=>O(W(t),e));s?s.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:B,height:B,under:0})}return{groups:[...o,...a],hidden:n}}function q(e,t,n){let r=-1/0;for(const o of t){const t=Math.max(Math.abs(o.x-e.x),Math.abs(o.y-e.y));r=Math.max(r,0===t?1/0:n+Math.log2(29/t))}return r}var H=(...e)=>e.filter(Boolean).join(" "),P=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function _(e){return e.split(/\s+/).some(e=>{const t=e.search(/[[(]/),n=t<0?e:e.slice(0,t),r=e.slice(n.lastIndexOf(":")+1);return r.startsWith("border-")&&!P.test(r.slice(7))})}var I="ring-2 ring-gray-900 ring-offset-2",Q={portal:{frame:e=>H("relative min-h-72 overflow-hidden rounded-lg border border-line bg-gray-100",e&&"[&_canvas]:cursor-crosshair"),fill:"absolute inset-0",box:"h-full w-full",failed:"absolute inset-0 grid place-items-center p-6 text-center text-sm text-ink-faint",cardInline:"absolute bottom-3 left-3 right-3 z-10 max-h-[calc(100%-1.5rem)] max-w-md overflow-y-auto overscroll-contain",cardFloating:"w-[26rem] overflow-y-auto overscroll-contain",ring:"pointer-events-none rounded-full border-2 border-gray-900 bg-gray-900/15 shadow-[0_0_0_2px_var(--color-white,#fff)]",pinButton:(e,t)=>H("relative grid place-items-center rounded-full cursor-pointer",t&&(null!=e.stop?"h-7 w-7":"h-6 w-6")),pinMark:(e,t,n,r)=>{const o=t&&!r&&null==e.stop&&!e.dot;return H("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-sm transition-transform motion-reduce:transition-none",!_(e.tone)&&"border-white",e.tone,e.dot?"h-4 w-4 opacity-80":null!=e.stop?"h-7 w-7 text-xs ring-2 ring-gray-900":o?"h-8 w-8 text-xs [&_svg]:h-4 [&_svg]:w-4":"h-6 w-6 text-2xs [&_svg]:h-3.5 [&_svg]:w-3.5",t&&(o?"ring-2 ring-gray-900 ring-offset-1":I),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")},mark:e=>H("grid place-items-center border-2 px-0.5 text-xs font-semibold leading-none shadow-sm",e.stop?"h-7 min-w-7":"h-6 min-w-6",!_(e.tone??"")&&"border-white",e.tone??"bg-gray-900 text-on-accent"),groupButton:"grid place-items-center rounded-full cursor-pointer",groupDisc:(e,t,n)=>H("grid place-items-center rounded-full border-2 border-gray-700 bg-surface font-semibold leading-none text-ink-strongest shadow-sm",e?"h-7 w-full px-1 text-xs ring-2 ring-gray-900":t?"h-5 w-5 text-3xs":"h-6 w-6 text-2xs",n&&I),badge:e=>H("absolute -right-2 -top-2 grid h-4 min-w-4 place-items-center rounded-full px-0.5 text-3xs font-semibold leading-none shadow",e??"bg-surface text-ink-strongest"),iconHost:"contents"},site:{frame:e=>H("rosh-map-frame",e&&"rosh-map-frame--picking"),fill:"rosh-map-fill",box:"rosh-map-box",failed:"rosh-map-failed",cardInline:"rosh-map-card-inline",cardFloating:"rosh-map-card-floating",ring:"rosh-map-ring",pinButton:(e,t)=>H("rosh-map-target",t&&(null!=e.stop?"rosh-map-target--stop":"rosh-map-target--sized")),pinMark:(e,t,n,r)=>H("rosh-map-pin",e.dot?"rosh-map-pin--dot":null!=e.stop?"rosh-map-pin--stop":null,t&&!r&&null==e.stop&&!e.dot&&"rosh-map-pin--grown",t&&"rosh-map-pin--chosen",e.approximate&&"rosh-map-pin--approximate",e.faded&&!t&&"rosh-map-pin--faded",n&&"rosh-map-pin--pointed"),mark:e=>H("rosh-map-mark",e.stop&&"rosh-map-mark--stop"),groupButton:"rosh-map-target",groupDisc:(e,t,n)=>H("rosh-map-group",e?"rosh-map-group--stops":t?"rosh-map-group--dots":null,n&&"rosh-map-group--chosen"),badge:()=>"rosh-map-badge",iconHost:"rosh-map-icon",sheet:function(){return S??=import("efficient-shell/map-site.css").catch(e=>{throw S=null,e}),S}}},U="routes",Z=["routes-road","routes-estimate"];function G(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(),J(n)}function J(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 V={center:[30,20],zoom:1};var X="http://www.w3.org/2000/svg",Y=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,ee=(...e)=>e.filter(Boolean).join(" ");function te(e){const t=document.createElementNS(X,"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(X,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function ne(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}function re({pins:n,selectedKey:r,focus:c,onSelect:m,ariaLabel:h,className:g="",children:b,routes:y,fitTo:k,attribution:v,marks:w,groupCrowded:L=!1,noun:j,highlightKey:$=null,picking:S=!1,onPick:A,card:T,cardMinMapWidth:F=480,fullScreen:O,initialView:W=V,cooperativeGestures:D=!1,look:H="portal",theme:P}){const _=o().map,I=a(null),X=a(null),re=a(null),le=a(null),se=a([]),ie=a(/* @__PURE__ */new Map),ce=a(/* @__PURE__ */new Map),ue=a(/* @__PURE__ */new Map),de=a(null),pe=a(/* @__PURE__ */new Map),me=a(""),[he,ge]=l(!1),[fe,be]=l(!1),ye=e(),xe=P??(ye?"dark":"light"),ke=Q[H],ve=a({onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke});s(()=>{ve.current={onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke}}),s(()=>{ke.sheet?.().catch(e=>console.warn("[map] could not load the look's stylesheet",e))},[ke]);const we=i(()=>{const e=re.current,{pins:t,selectedKey:n}=ve.current,r=n?t.find(e=>e.key===n):void 0;e&&r&&!e.getBounds().contains([r.lng,r.lat])&&e.easeTo({center:[r.lng,r.lat],duration:Y()?0:400})},[]),Ne=a(!1),Me=i((e,t)=>{const n=re.current,r=le.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(ve.current.selectedKey??"");return void ve.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>ie.current.get(e).pin),l=new r.LngLatBounds([a[0].lng,a[0].lat],[a[0].lng,a[0].lat]);for(const e of a)l.extend([e.lng,e.lat]);const s=a.map(e=>n.project([e.lng,e.lat])),i=Math.max(...s.map((e,t)=>q(e,s.filter((e,n)=>n!==t),o))),{clientWidth:c,clientHeight:u}=n.getContainer(),d=n.cameraForBounds(l,{padding:Math.min(64,c/4,u/4)})?.zoom??18,p=document.activeElement===t;Ne.current=!0,n.once("moveend",()=>{if(Ne.current=!1,!p)return;const e=a[0].key,t=ie.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...ce.current.values()].find(t=>t.keys.includes(e))?.button;n?.focus({preventScroll:!0})}),n.easeTo({center:l.getCenter(),zoom:Math.min(18,Math.max(o+1,Math.min(d,i))),duration:Y()?0:600})},[]),Ce=i(()=>{const e=re.current,t=le.current;if(!e||!t||!I.current||Ne.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l,looks:s}=ve.current;for(const[e,t]of ie.current){const a=s.pinMark(t.pin,e===n,e===r,o);t.mark.className!==a&&(t.mark.className=a);const l=e===n?"1":"";t.button.style.zIndex!==l&&(t.button.style.zIndex=l)}let i=null;if(o){const r=e.getContainer().getBoundingClientRect(),o=[...I.current.querySelectorAll("a[href], button, input, select, textarea, summary, [role='button'], [tabindex]:not([tabindex='-1'])")].filter(e=>!e.closest("[data-pin], [data-pin-group], .maplibregl-canvas")).map(e=>{const t=e.getBoundingClientRect(),n=e.closest("[data-map-card]")?.getBoundingClientRect()??t;return{left:Math.max(t.left,n.left)-r.left,top:Math.max(t.top,n.top)-r.top,right:Math.min(t.right,n.right)-r.left,bottom:Math.min(t.bottom,n.bottom)-r.top}}).filter(e=>e.right>e.left&&e.bottom>e.top);i=K([...ie.current.values()].map(({pin:t})=>{const n=e.project([t.lng,t.lat]);return{key:t.key,x:n.x,y:n.y,stop:t.stop??null}}),o);const c=e=>(l??a.places)(e),u=e.getZoom()<17.5?a.spread:a.cycle,d=(e,t)=>{const n=t?"":"none";e.style.display!==n&&(e.style.display=n)},p=/* @__PURE__ */new Map;for(const r of i.groups){const o=r.under>0?a.closeBy(r.under,c(r.under)):null,l=1===r.keys.length?ie.current.get(r.keys[0]):null;if(l){d(l.button,!0),l.button.setAttribute("aria-label",o?`${l.name}; ${o}`:l.name),l.button.title=o?`${l.title}\n${o}`:l.title;continue}for(const e of r.keys)d(ie.current.get(e).button,!1);const i=r.keys.join(" ");let m=ce.current.get(i);if(!m){const n=document.createElement("button");n.type="button",n.dataset.pinGroup="",n.className=s.groupButton,n.append(document.createElement("span"));const o=ie.current.get(r.keys[0]).pin,a={button:n,keys:r.keys,marker:new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)};n.addEventListener("click",e=>{e.stopPropagation(),Me(a.keys,n)}),m=a}m.keys=r.keys;const h=r.keys.map(e=>ie.current.get(e)),g=r.stops.length>0?R(r.stops):String(h.length),f=r.stops.length>0?a.stops(g):a.group(h.length,c(h.length));m.button.style.width=`${r.width}px`,m.button.style.height=`${r.height}px`,m.button.setAttribute("aria-label",`${f}: ${h.map(e=>e.pin.label).join("; ")}. ${u}${o?`; ${o}`:""}.`),m.button.title=[`${f}:`,...h.map(e=>e.title),...o?[o]:[],u].join("\n");const b=m.button.firstElementChild;b.textContent=g;const y=s.groupDisc(r.stops.length>0,h.every(e=>e.pin.dot),null!=n&&r.keys.includes(n));b.className!==y&&(b.className=y),p.set(i,m)}for(const e of i.hidden)d(ie.current.get(e).button,!1);for(const[e,t]of ce.current)p.has(e)||t.marker.remove();ce.current=p}if(de.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?ie.current.get(r):void 0,n=r?ue.current.get(r):void 0,o=e?{at:ie.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?z:B),height:t.button.offsetHeight||(null!=t.pin.stop?z:B)}:n?{at:n.mark,width:n.element.offsetWidth||z,height:n.element.offsetHeight||z}:null,a=de.current.getElement();a.style.display=o?"":"none",o&&(de.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Me]);s(()=>{if(Ce(),!I.current)return;const e=new ResizeObserver(()=>Ce());e.observe(I.current);for(const t of I.current.children)t.contains(X.current)||e.observe(t);return()=>e.disconnect()}),s(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await E();if(e||!X.current)return;le.current=o,t=new o.Map({container:X.current,style:x[xe],center:W.center,zoom:W.zoom,attributionControl:v?{compact:!0,customAttribution:v}:{compact:!0},dragRotate:!1,pitchWithRotate:!1,touchPitch:!1,maxPitch:0,cooperativeGestures:"coarse"===D?window.matchMedia("(pointer: coarse)").matches:D}),t.touchZoomRotate.disableRotation(),t.keyboard.disableRotation(),t.addControl(new o.NavigationControl({showCompass:!1}),"top-right");const a=document.createElement("div");a.dataset.pinRing="",a.setAttribute("aria-hidden","true"),a.className=ve.current.looks.ring,a.style.display="none",de.current=new o.Marker({element:a,anchor:"center"}).setLngLat(W.center).addTo(t),t.on("click",e=>{ve.current.picking&&ve.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",Ce),t.on("moveend",Ce),t.on("resize",Ce),t.on("error",e=>console.warn("[map]",e.error?.message)),r=f(X.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),we()}),n.observe(X.current),re.current=t,ge(!0)}catch(t){console.error("[map] could not start",t),e||be(!0)}})(),()=>{e=!0,n?.disconnect(),r(),se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),de.current?.remove(),de.current=null,t?.remove(),re.current=null}},[]);const Le=a(xe);s(()=>{he&&re.current&&Le.current!==xe&&(Le.current=xe,re.current.setStyle(x[xe]))},[he,xe]),s(()=>{const e=re.current,t=le.current;if(!he||!e||!t)return;se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),ie.current.clear(),ue.current.clear();for(const e of pe.current.keys())n.some(t=>t.key===e)||pe.current.delete(e);const r=ve.current.strings;for(const o of n){const n=document.createElement("button");n.type="button",n.dataset.pin=o.key,n.className=ke.pinButton(o,L);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);n.setAttribute("aria-label",a),n.title=l;const s=document.createElement("span");if(ne(s,o.data),o.dot);else if(null!=o.iconNode){const e=pe.current.get(o.key);e&&s.append(e)}else o.icon?.length?s.append(te(o.icon)):s.textContent=null!=o.stop?String(o.stop):o.glyph;if(n.append(s),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=ke.badge(o.badgeTone),e.textContent=o.badge,n.appendChild(e)}n.addEventListener("click",e=>{e.stopPropagation(),ve.current.onSelect(o.key)}),se.current.push(new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),ie.current.set(o.key,{pin:o,button:n,mark:s,name:a,title:l})}for(const n of w??[]){const r=document.createElement("div");r.dataset.mapMark=n.key,ne(r,n.data),r.className=ke.mark(n),r.textContent=n.text,r.title=n.title??n.label,r.setAttribute("role","img"),r.setAttribute("aria-label",n.label),se.current.push(new t.Marker({element:r,anchor:"center"}).setLngLat([n.lng,n.lat]).addTo(e)),ue.current.set(n.key,{mark:n,element:r})}Ce()},[he,n,w,L,Ce,H]),s(()=>{he&&Ce()},[he,r,$,Ce]),s(()=>{if(!he||!r)return;const e=requestAnimationFrame(we);return()=>cancelAnimationFrame(e)},[he,r,we]),s(()=>{const e=re.current,t=le.current,r=k?[...n,...w??[]].filter(e=>k.includes(e.key)):n;if(!he||!e||!t||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(me.current===o)return;const a=""===me.current;if(me.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new t.LngLatBounds([r[0].lng,r[0].lat],[r[0].lng,r[0].lat]);for(const e of r)l.extend([e.lng,e.lat]);e.fitBounds(l,{padding:48,maxZoom:14,animate:!a})},[he,n,w,k]),s(()=>{const e=re.current;if(!he||!e)return;const t=(y??[]).filter(e=>e.coordinates.length>=2),n=[...new Set(t.flatMap(e=>e.attribution?[e.attribution]:[]))].join(" · "),r=()=>{const r=function(){const e=document.createElement("span");e.className="text-blue-600",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e).color||"#2563eb";return e.remove(),J(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?G(e.color):r},geometry:{type:"LineString",coordinates:e.coordinates}}))},a=["case",["get","faded"],.25,.85],l=["get","color"],s=e.getSource(U);if(s&&(s.attribution||"")!==n){for(const t of Z)e.getLayer(t)&&e.removeLayer(t);e.removeSource(U)}const i=e.getSource(U);i?i.setData(o):e.addSource(U,{type:"geojson",data:o,...n?{attribution:n}:{}}),e.getLayer("routes-road")||e.addLayer({id:"routes-road",type:"line",source:U,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:U,filter:["get","estimate"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":3,"line-dasharray":[1.5,1.5],"line-opacity":a}})},o=()=>{try{r()}catch(e){console.debug("[map] routes wait for the style",e)}};return o(),e.on("style.load",o),e.once("idle",o),()=>{e.off("style.load",o),e.off("idle",o)}},[he,y,xe]),s(()=>{const e=re.current;if(!he||!e||!c)return;const t=n.find(e=>e.key===c.key);if(!t)return;const r=e.getZoom(),o=L?q(e.project([t.lng,t.lat]),n.filter(e=>e.key!==t.key).map(t=>e.project([t.lng,t.lat])),r):-1/0,a={center:[t.lng,t.lat],zoom:Math.min(18,Math.max(r,13,o))};Y()?e.jumpTo(a):e.flyTo({...a,duration:600})},[he,c?.n]);const[je,$e]=l(!1);s(()=>{const e=I.current;if(!e)return;const t=()=>$e(e.clientWidth<F);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[F]);const Ee=r?n.find(e=>e.key===r)??null:null,Se=Ee?.key??null,Be=Ee?.lng??0,ze=Ee?.lat??0,Ae=he&&!je&&null!=T&&!!Ee,[Re,Te]=l(null);s(()=>{const e=re.current,t=le.current;if(!(Ae&&e&&t&&Se))return;const n=document.createElement("div");n.dataset.mapCard="",n.className=ve.current.looks.cardFloating;const r=new t.Popup({anchor:"bottom",offset:N,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([Be,ze]).setDOMContent(n).addTo(e),o=r.getElement(),a=o.querySelector(".maplibregl-popup-content");a&&Object.assign(a.style,{padding:"0",background:"transparent",borderRadius:"0",boxShadow:"none"});const l=o.querySelector(".maplibregl-popup-tip"),s=ve.current.looks===Q.site?"var(--rosh-map-pin, #111)":"var(--color-gray-600, #4b5563)";l&&Object.assign(l.style,{borderTopColor:s,borderBottomColor:s}),Te(n);let i=!1,c=!1;const u=(t=!0)=>{if(c)return;if(e.isMoving())return void(i||(i=!0,e.once("moveend",()=>{i=!1,u()})));const{clientWidth:o,clientHeight:a}=e.getContainer(),l=function(e,t){const n=e.getBoundingClientRect().top,r=[...e.querySelectorAll(".maplibregl-ctrl-top-left > *, .maplibregl-ctrl-top-right > *"),...t?.querySelectorAll(":scope > [data-map-control]")??[]];let o=0;for(const e of r){const t=e.getBoundingClientRect();t.height>0&&(o=Math.max(o,t.bottom-n))}return o}(e.getContainer(),I.current)+8,s=`${M(a,l)}px`;n.style.maxHeight!==s&&(n.style.maxHeight=s);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=C(e.project(p),{width:d.offsetWidth,height:d.offsetHeight},{width:o,height:a},l);r.options.anchor!==m&&(r.options.anchor=m,r.setLngLat(p)),!t||0===h.x&&0===h.y||e.panBy([-h.x,-h.y],{duration:Y()?0:250}),Ce()},d=new ResizeObserver(()=>u());d.observe(n);const p=()=>u(),m=()=>{i||u(!1)};e.on("resize",p),e.on("moveend",m);let h=!1;const g=ie.current,f=e=>{h=n.contains(e.target)};return document.addEventListener("focusin",f),()=>{if(c=!0,d.disconnect(),e.off("resize",p),e.off("moveend",m),document.removeEventListener("focusin",f),r.remove(),Te(null),h&&(!document.activeElement||document.activeElement===document.body)){const e=g.get(Se)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[Ae,Se,Be,ze,Ce]);const Fe=O?.active??!1,Oe=a(O?.onChange);s(()=>{Oe.current=O?.onChange}),s(()=>{if(!O)return;const e=document.documentElement;Fe&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!Fe&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[Fe]);const We=!!O;return s(()=>{if(!We)return;const e=()=>{document.fullscreenElement||Oe.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[We]),/* @__PURE__ */d("div",{ref:I,className:ee(ke.frame(S),g),children:[
3
- /* @__PURE__ */p("div",{className:ke.fill,children:/* @__PURE__ */p("div",{ref:X,className:ke.box,role:"region","aria-label":h})}),fe&&/* @__PURE__ */p("p",{className:ke.failed,children:_.failed}),O&&/* @__PURE__ */p(t,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>O.onChange(!O.active),leftIcon:/* @__PURE__ */p(ae,{leave:O.active}),children:O.active?_.leaveFullScreen:_.fullScreen}),b,null!=T&&!Ae&&/* @__PURE__ */p("div",{"data-map-card":"",className:ke.cardInline,children:T}),Ae&&Re?u(T,Re):null,he&&/* @__PURE__ */p(oe,{pins:n,hosts:pe.current,hostClass:ke.iconHost})]})}function oe({pins:e,hosts:t,hostClass:n}){/* @__PURE__ */
2
+ import{useRootIsDark as e}from"../chunk-UPXDDO3U.js";import{Button_default as t}from"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import{Icon as n}from"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import{SpinnerRing as r}from"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as o}from"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import{useRef as a,useState as l,useEffect as s,useCallback as i,useMemo as c}from"react";import{createPortal as u}from"react-dom";import{jsxs as d,jsx as p,Fragment as m}from"react/jsx-runtime";import{useQuery as h}from"@tanstack/react-query";var g="maplibregl-compact-show";function f(e){if(!e)return()=>{};const t=()=>!!e.classList.contains(g)&&(e.classList.remove(g),!0);if(t())return()=>{};const n=new MutationObserver(()=>{t()&&n.disconnect()});return n.observe(e,{attributes:!0,attributeFilter:["class"]}),()=>n.disconnect()}var b="https://tiles.openfreemap.org",y={connect:[b]},x={light:`${b}/styles/positron`,dark:`${b}/styles/dark`},k=20,v=12,w=480,N={center:[0,0],left:[k,0],right:[-20,0],top:[0,k],"top-left":[0,k],"top-right":[0,k],bottom:[0,-20],"bottom-left":[0,-20],"bottom-right":[0,-20]},M=(e,t=12)=>Math.max(0,Math.floor(e-t-v-k-10-16));function C(e,t,n,r=12){const o=e.y-k-r,a=n.height-e.y-k-v,l=t.height<=o||t.height>a&&o>=a,s=l?Math.max(0,t.height-o):-Math.max(0,t.height-a);let i="",c=0;return e.x-t.width/2<v?(i="-left",c=Math.max(0,v-e.x)):e.x+t.width/2>n.width-v&&(i="-right",c=-Math.max(0,e.x-(n.width-v))),{anchor:`${l?"bottom":"top"}${i}`,move:{x:c,y:s}}}var L="maplibre-gl-worker.mjs",j=e=>`/maplibre-gl/${e}/${L}`,$=null;function E(){return $??=Promise.all([import("maplibre-gl"),import("maplibre-gl/dist/maplibre-gl.css")]).then(([e])=>(e.setWorkerUrl(j(e.getVersion())),e)).catch(e=>{throw $=null,e}),$}var S=null;var B=24,z=28,A=29;function R(e){const t=[...e].sort((e,t)=>e-t),n=[];for(let e=0;e<t.length;){let r=e;for(;r+1<t.length&&t[r+1]===t[r]+1;)r++;n.push(r===e?String(t[e]):`${t[e]}–${t[r]}`),e=r+1}return n.join(", ")}function T(e){const t=Math.max(z,12+8*e.length);return t+t%2}var O=(e,t,n,r)=>({left:e-n/2,top:t-r/2,right:e+n/2,bottom:t+r/2});function W(e,t){return e.left<t.right+1&&t.left<e.right+1&&e.top<t.bottom+1&&t.top<e.bottom+1}var F=e=>O(e.x,e.y,e.width,e.height);function K(e){for(let t=0;t<e.length;t++)for(let n=t+1;n<e.length;n++)if(W(F(e[t]),F(e[n])))return[e[t],e[n]];return null}function D(e,t=[]){const n=[],r=e=>t.some(t=>W(t,e));let o=e.filter(e=>null!==e.stop).sort((e,t)=>e.stop-t.stop).map(e=>({keys:[e.key],stops:[e.stop],x:e.x,y:e.y,width:z,height:z,under:0}));for(let e=K(o);e;e=K(o)){const[t,n]=e;t.keys.push(...n.keys),t.stops.push(...n.stops),t.stops.sort((e,t)=>e-t),t.width=T(R(t.stops)),o=o.filter(e=>e!==n)}o=o.filter(e=>!r(F(e))||(n.push(...e.keys),!1));const a=[];for(const t of e){if(null!==t.stop)continue;const e=O(t.x,t.y,B,B),l=o.find(t=>W(F(t),e));if(l||r(e)){n.push(t.key),l&&l.under++;continue}const s=a.find(t=>W(F(t),e));s?s.keys.push(t.key):a.push({keys:[t.key],stops:[],x:t.x,y:t.y,width:B,height:B,under:0})}return{groups:[...o,...a],hidden:n}}function q(e,t,n){let r=-1/0;for(const o of t){const t=Math.max(Math.abs(o.x-e.x),Math.abs(o.y-e.y));r=Math.max(r,0===t?1/0:n+Math.log2(29/t))}return r}var H=(...e)=>e.filter(Boolean).join(" "),P=/^(?:\d+|[xytrblse](?:-\d+)?|solid|dashed|dotted|double|hidden|none)$/;function _(e){return e.split(/\s+/).some(e=>{const t=e.search(/[[(]/),n=t<0?e:e.slice(0,t),r=e.slice(n.lastIndexOf(":")+1);return r.startsWith("border-")&&!P.test(r.slice(7))})}var I="ring-2 ring-gray-900 ring-offset-2",U={portal:{frame:e=>H("relative min-h-72 overflow-hidden rounded-lg border border-line bg-gray-100",e&&"[&_canvas]:cursor-crosshair"),fill:"absolute inset-0",box:"h-full w-full",failed:"absolute inset-0 grid place-items-center p-6 text-center text-sm text-ink-faint",cardInline:"absolute bottom-3 left-3 right-3 z-10 max-h-[calc(100%-1.5rem)] max-w-md overflow-y-auto overscroll-contain",cardFloating:"w-[26rem] overflow-y-auto overscroll-contain",ring:"pointer-events-none rounded-full border-2 border-gray-900 bg-gray-900/15 shadow-[0_0_0_2px_var(--color-white,#fff)]",pinButton:(e,t)=>H("relative grid place-items-center rounded-full cursor-pointer",t&&(null!=e.stop?"h-7 w-7":"h-6 w-6")),pinMark:(e,t,n,r)=>{const o=t&&!r&&null==e.stop&&!e.dot;return H("grid place-items-center rounded-full border-2 font-semibold leading-none shadow-sm transition-transform motion-reduce:transition-none",!_(e.tone)&&"border-white",e.tone,e.dot?"h-4 w-4 opacity-80":null!=e.stop?"h-7 w-7 text-xs ring-2 ring-gray-900":o?"h-8 w-8 text-xs [&_svg]:h-4 [&_svg]:w-4":"h-6 w-6 text-2xs [&_svg]:h-3.5 [&_svg]:w-3.5",t&&(o?"ring-2 ring-gray-900 ring-offset-1":I),e.approximate&&"border-dashed opacity-80",e.faded&&!t&&"opacity-40",n&&"scale-125 opacity-100")},mark:e=>H("grid place-items-center border-2 px-0.5 text-xs font-semibold leading-none shadow-sm",e.stop?"h-7 min-w-7":"h-6 min-w-6",!_(e.tone??"")&&"border-white",e.tone??"bg-gray-900 text-on-accent"),groupButton:"grid place-items-center rounded-full cursor-pointer",groupDisc:(e,t,n)=>H("grid place-items-center rounded-full border-2 border-gray-700 bg-surface font-semibold leading-none text-ink-strongest shadow-sm",e?"h-7 w-full px-1 text-xs ring-2 ring-gray-900":t?"h-5 w-5 text-3xs":"h-6 w-6 text-2xs",n&&I),badge:e=>H("absolute -right-2 -top-2 grid h-4 min-w-4 place-items-center rounded-full px-0.5 text-3xs font-semibold leading-none shadow",e??"bg-surface text-ink-strongest"),iconHost:"contents"},site:{frame:e=>H("rosh-map-frame",e&&"rosh-map-frame--picking"),fill:"rosh-map-fill",box:"rosh-map-box",failed:"rosh-map-failed",cardInline:"rosh-map-card-inline",cardFloating:"rosh-map-card-floating",ring:"rosh-map-ring",pinButton:(e,t)=>H("rosh-map-target",t&&(null!=e.stop?"rosh-map-target--stop":"rosh-map-target--sized")),pinMark:(e,t,n,r)=>H("rosh-map-pin",e.dot?"rosh-map-pin--dot":null!=e.stop?"rosh-map-pin--stop":null,t&&!r&&null==e.stop&&!e.dot&&"rosh-map-pin--grown",t&&"rosh-map-pin--chosen",e.approximate&&"rosh-map-pin--approximate",e.faded&&!t&&"rosh-map-pin--faded",n&&"rosh-map-pin--pointed"),mark:e=>H("rosh-map-mark",e.stop&&"rosh-map-mark--stop"),groupButton:"rosh-map-target",groupDisc:(e,t,n)=>H("rosh-map-group",e?"rosh-map-group--stops":t?"rosh-map-group--dots":null,n&&"rosh-map-group--chosen"),badge:()=>"rosh-map-badge",iconHost:"rosh-map-icon",sheet:function(){return S??=import("efficient-shell/map-site.css").catch(e=>{throw S=null,e}),S}}},J="routes",V=["routes-road","routes-estimate"];function Z(e){const t=document.createElement("span");t.style.display="none",t.style.color=e,document.body.appendChild(t);const n=getComputedStyle(t).color||"#2563eb";return t.remove(),Q(n)}function Q(e){const t=document.createElement("canvas").getContext("2d");if(!t)return"#2563eb";t.fillStyle="#2563eb",t.fillStyle=e,t.fillRect(0,0,1,1);const[n,r,o]=t.getImageData(0,0,1,1).data;return`rgb(${n}, ${r}, ${o})`}var G={center:[30,20],zoom:1};var X="http://www.w3.org/2000/svg",Y=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches,ee=(...e)=>e.filter(Boolean).join(" ");function te(e){const t=document.createElementNS(X,"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(X,"path");e.setAttribute("stroke-linecap","round"),e.setAttribute("stroke-linejoin","round"),e.setAttribute("d",n),t.appendChild(e)}return t}function ne(e,t){for(const[n,r]of Object.entries(t??{}))e.dataset[n]=r}function re({pins:n,selectedKey:r,focus:c,onSelect:m,ariaLabel:h,className:g="",children:b,routes:y,fitTo:k,attribution:v,marks:w,groupCrowded:L=!1,noun:j,highlightKey:$=null,picking:S=!1,onPick:A,card:T,cardMinMapWidth:O=480,fullScreen:W,initialView:F=G,cooperativeGestures:K=!1,look:H="portal",theme:P}){const _=o().map,I=a(null),X=a(null),re=a(null),le=a(null),se=a([]),ie=a(/* @__PURE__ */new Map),ce=a(/* @__PURE__ */new Map),ue=a(/* @__PURE__ */new Map),de=a(null),pe=a(/* @__PURE__ */new Map),me=a(""),[he,ge]=l(!1),[fe,be]=l(!1),ye=e(),xe=P??(ye?"dark":"light"),ke=U[H],ve=a({onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke});s(()=>{ve.current={onSelect:m,onPick:A,picking:S,pins:n,selectedKey:r,highlightKey:$,groupCrowded:L,strings:_,noun:j,looks:ke}}),s(()=>{ke.sheet?.().catch(e=>console.warn("[map] could not load the look's stylesheet",e))},[ke]);const we=i(()=>{const e=re.current,{pins:t,selectedKey:n}=ve.current,r=n?t.find(e=>e.key===n):void 0;e&&r&&!e.getBounds().contains([r.lng,r.lat])&&e.easeTo({center:[r.lng,r.lat],duration:Y()?0:400})},[]),Ne=a(!1),Me=i((e,t)=>{const n=re.current,r=le.current;if(!n||!r)return;const o=n.getZoom();if(o>=17.5){const t=e.indexOf(ve.current.selectedKey??"");return void ve.current.onSelect(e[(t+1)%e.length])}const a=e.map(e=>ie.current.get(e).pin),l=new r.LngLatBounds([a[0].lng,a[0].lat],[a[0].lng,a[0].lat]);for(const e of a)l.extend([e.lng,e.lat]);const s=a.map(e=>n.project([e.lng,e.lat])),i=Math.max(...s.map((e,t)=>q(e,s.filter((e,n)=>n!==t),o))),{clientWidth:c,clientHeight:u}=n.getContainer(),d=n.cameraForBounds(l,{padding:Math.min(64,c/4,u/4)})?.zoom??18,p=document.activeElement===t;Ne.current=!0,n.once("moveend",()=>{if(Ne.current=!1,!p)return;const e=a[0].key,t=ie.current.get(e)?.button,n=t&&"none"!==t.style.display?t:[...ce.current.values()].find(t=>t.keys.includes(e))?.button;n?.focus({preventScroll:!0})}),n.easeTo({center:l.getCenter(),zoom:Math.min(18,Math.max(o+1,Math.min(d,i))),duration:Y()?0:600})},[]),Ce=i(()=>{const e=re.current,t=le.current;if(!e||!t||!I.current||Ne.current&&e.isMoving())return;const{selectedKey:n,highlightKey:r,groupCrowded:o,strings:a,noun:l,looks:s}=ve.current;for(const[e,t]of ie.current){const a=s.pinMark(t.pin,e===n,e===r,o);t.mark.className!==a&&(t.mark.className=a);const l=e===n?"1":"";t.button.style.zIndex!==l&&(t.button.style.zIndex=l)}let i=null;if(o){const r=e.getContainer().getBoundingClientRect(),o=[...I.current.querySelectorAll("a[href], button, input, select, textarea, summary, [role='button'], [tabindex]:not([tabindex='-1'])")].filter(e=>!e.closest("[data-pin], [data-pin-group], .maplibregl-canvas")).map(e=>{const t=e.getBoundingClientRect(),n=e.closest("[data-map-card]")?.getBoundingClientRect()??t;return{left:Math.max(t.left,n.left)-r.left,top:Math.max(t.top,n.top)-r.top,right:Math.min(t.right,n.right)-r.left,bottom:Math.min(t.bottom,n.bottom)-r.top}}).filter(e=>e.right>e.left&&e.bottom>e.top);i=D([...ie.current.values()].map(({pin:t})=>{const n=e.project([t.lng,t.lat]);return{key:t.key,x:n.x,y:n.y,stop:t.stop??null}}),o);const c=e=>(l??a.places)(e),u=e.getZoom()<17.5?a.spread:a.cycle,d=(e,t)=>{const n=t?"":"none";e.style.display!==n&&(e.style.display=n)},p=/* @__PURE__ */new Map;for(const r of i.groups){const o=r.under>0?a.closeBy(r.under,c(r.under)):null,l=1===r.keys.length?ie.current.get(r.keys[0]):null;if(l){d(l.button,!0),l.button.setAttribute("aria-label",o?`${l.name}; ${o}`:l.name),l.button.title=o?`${l.title}\n${o}`:l.title;continue}for(const e of r.keys)d(ie.current.get(e).button,!1);const i=r.keys.join(" ");let m=ce.current.get(i);if(!m){const n=document.createElement("button");n.type="button",n.dataset.pinGroup="",n.className=s.groupButton,n.append(document.createElement("span"));const o=ie.current.get(r.keys[0]).pin,a={button:n,keys:r.keys,marker:new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)};n.addEventListener("click",e=>{e.stopPropagation(),Me(a.keys,n)}),m=a}m.keys=r.keys;const h=r.keys.map(e=>ie.current.get(e)),g=r.stops.length>0?R(r.stops):String(h.length),f=r.stops.length>0?a.stops(g):a.group(h.length,c(h.length));m.button.style.width=`${r.width}px`,m.button.style.height=`${r.height}px`,m.button.setAttribute("aria-label",`${f}: ${h.map(e=>e.pin.label).join("; ")}. ${u}${o?`; ${o}`:""}.`),m.button.title=[`${f}:`,...h.map(e=>e.title),...o?[o]:[],u].join("\n");const b=m.button.firstElementChild;b.textContent=g;const y=s.groupDisc(r.stops.length>0,h.every(e=>e.pin.dot),null!=n&&r.keys.includes(n));b.className!==y&&(b.className=y),p.set(i,m)}for(const e of i.hidden)d(ie.current.get(e).button,!1);for(const[e,t]of ce.current)p.has(e)||t.marker.remove();ce.current=p}if(de.current){const e=r&&i?i.groups.find(e=>e.keys.includes(r)&&e.keys.length>1):void 0,t=r?ie.current.get(r):void 0,n=r?ue.current.get(r):void 0,o=e?{at:ie.current.get(e.keys[0]).pin,width:e.width,height:e.height}:t?{at:t.pin,width:t.button.offsetWidth||(null!=t.pin.stop?z:B),height:t.button.offsetHeight||(null!=t.pin.stop?z:B)}:n?{at:n.mark,width:n.element.offsetWidth||z,height:n.element.offsetHeight||z}:null,a=de.current.getElement();a.style.display=o?"":"none",o&&(de.current.setLngLat([o.at.lng,o.at.lat]),a.style.width=`${o.width+22}px`,a.style.height=`${o.height+22}px`)}},[Me]);s(()=>{if(Ce(),!I.current)return;const e=new ResizeObserver(()=>Ce());e.observe(I.current);for(const t of I.current.children)t.contains(X.current)||e.observe(t);return()=>e.disconnect()}),s(()=>{let e=!1,t=null,n=null,r=()=>{};return(async()=>{try{const o=await E();if(e||!X.current)return;le.current=o,t=new o.Map({container:X.current,style:x[xe],center:F.center,zoom:F.zoom,attributionControl:v?{compact:!0,customAttribution:v}:{compact:!0},dragRotate:!1,pitchWithRotate:!1,touchPitch:!1,maxPitch:0,cooperativeGestures:"coarse"===K?window.matchMedia("(pointer: coarse)").matches:K}),t.touchZoomRotate.disableRotation(),t.keyboard.disableRotation(),t.addControl(new o.NavigationControl({showCompass:!1}),"top-right");const a=document.createElement("div");a.dataset.pinRing="",a.setAttribute("aria-hidden","true"),a.className=ve.current.looks.ring,a.style.display="none",de.current=new o.Marker({element:a,anchor:"center"}).setLngLat(F.center).addTo(t),t.on("click",e=>{ve.current.picking&&ve.current.onPick?.({lat:e.lngLat.lat,lng:e.lngLat.lng})}),t.on("move",Ce),t.on("moveend",Ce),t.on("resize",Ce),t.on("error",e=>console.warn("[map]",e.error?.message)),r=f(X.current.querySelector(".maplibregl-ctrl-attrib"));const l=t;n=new ResizeObserver(()=>{l.resize(),we()}),n.observe(X.current),re.current=t,ge(!0)}catch(t){console.error("[map] could not start",t),e||be(!0)}})(),()=>{e=!0,n?.disconnect(),r(),se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),de.current?.remove(),de.current=null,t?.remove(),re.current=null}},[]);const Le=a(xe);s(()=>{he&&re.current&&Le.current!==xe&&(Le.current=xe,re.current.setStyle(x[xe]))},[he,xe]),s(()=>{const e=re.current,t=le.current;if(!he||!e||!t)return;se.current.forEach(e=>e.remove()),se.current=[],ce.current.forEach(e=>e.marker.remove()),ce.current.clear(),ie.current.clear(),ue.current.clear();for(const e of pe.current.keys())n.some(t=>t.key===e)||pe.current.delete(e);const r=ve.current.strings;for(const o of n){const n=document.createElement("button");n.type="button",n.dataset.pin=o.key,n.className=ke.pinButton(o,L);const a=o.approximate?r.approximate(o.label):o.label,l=o.title??(o.approximate?r.approximateTitle(o.label):o.label);n.setAttribute("aria-label",a),n.title=l;const s=document.createElement("span");if(ne(s,o.data),o.dot);else if(null!=o.iconNode){const e=pe.current.get(o.key);e&&s.append(e)}else o.icon?.length?s.append(te(o.icon)):s.textContent=null!=o.stop?String(o.stop):o.glyph;if(n.append(s),o.badge){const e=document.createElement("span");e.setAttribute("aria-hidden","true"),e.className=ke.badge(o.badgeTone),e.textContent=o.badge,n.appendChild(e)}n.addEventListener("click",e=>{e.stopPropagation(),ve.current.onSelect(o.key)}),se.current.push(new t.Marker({element:n,anchor:"center"}).setLngLat([o.lng,o.lat]).addTo(e)),ie.current.set(o.key,{pin:o,button:n,mark:s,name:a,title:l})}for(const n of w??[]){const r=document.createElement("div");r.dataset.mapMark=n.key,ne(r,n.data),r.className=ke.mark(n),r.textContent=n.text,r.title=n.title??n.label,r.setAttribute("role","img"),r.setAttribute("aria-label",n.label),se.current.push(new t.Marker({element:r,anchor:"center"}).setLngLat([n.lng,n.lat]).addTo(e)),ue.current.set(n.key,{mark:n,element:r})}Ce()},[he,n,w,L,Ce,H]),s(()=>{he&&Ce()},[he,r,$,Ce]),s(()=>{if(!he||!r)return;const e=requestAnimationFrame(we);return()=>cancelAnimationFrame(e)},[he,r,we]),s(()=>{const e=re.current,t=le.current,r=k?[...n,...w??[]].filter(e=>k.includes(e.key)):n;if(!he||!e||!t||0===r.length)return;const o=r.map(e=>`${e.key}@${e.lat},${e.lng}`).sort().join("|");if(me.current===o)return;const a=""===me.current;if(me.current=o,1===r.length)return void e.jumpTo({center:[r[0].lng,r[0].lat],zoom:13});const l=new t.LngLatBounds([r[0].lng,r[0].lat],[r[0].lng,r[0].lat]);for(const e of r)l.extend([e.lng,e.lat]);e.fitBounds(l,{padding:48,maxZoom:14,animate:!a})},[he,n,w,k]),s(()=>{const e=re.current;if(!he||!e)return;const t=(y??[]).filter(e=>e.coordinates.length>=2),n=[...new Set(t.flatMap(e=>e.attribution?[e.attribution]:[]))].join(" · "),r=()=>{const r=function(){const e=document.createElement("span");e.className="text-blue-600",e.style.display="none",document.body.appendChild(e);const t=getComputedStyle(e).color||"#2563eb";return e.remove(),Q(t)}(),o={type:"FeatureCollection",features:t.map(e=>({type:"Feature",properties:{key:e.key,estimate:e.estimate,faded:!!e.faded,color:e.color?Z(e.color):r},geometry:{type:"LineString",coordinates:e.coordinates}}))},a=["case",["get","faded"],.25,.85],l=["get","color"],s=e.getSource(J);if(s&&(s.attribution||"")!==n){for(const t of V)e.getLayer(t)&&e.removeLayer(t);e.removeSource(J)}const i=e.getSource(J);i?i.setData(o):e.addSource(J,{type:"geojson",data:o,...n?{attribution:n}:{}}),e.getLayer("routes-road")||e.addLayer({id:"routes-road",type:"line",source:J,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:J,filter:["get","estimate"],layout:{"line-join":"round","line-cap":"round"},paint:{"line-color":l,"line-width":3,"line-dasharray":[1.5,1.5],"line-opacity":a}})},o=()=>{try{r()}catch(e){console.debug("[map] routes wait for the style",e)}};return o(),e.on("style.load",o),e.once("idle",o),()=>{e.off("style.load",o),e.off("idle",o)}},[he,y,xe]),s(()=>{const e=re.current;if(!he||!e||!c)return;const t=n.find(e=>e.key===c.key);if(!t)return;const r=e.getZoom(),o=L?q(e.project([t.lng,t.lat]),n.filter(e=>e.key!==t.key).map(t=>e.project([t.lng,t.lat])),r):-1/0,a={center:[t.lng,t.lat],zoom:Math.min(18,Math.max(r,13,o))};Y()?e.jumpTo(a):e.flyTo({...a,duration:600})},[he,c?.n]);const[je,$e]=l(!1);s(()=>{const e=I.current;if(!e)return;const t=()=>$e(e.clientWidth<O);t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[O]);const Ee=r?n.find(e=>e.key===r)??null:null,Se=Ee?.key??null,Be=Ee?.lng??0,ze=Ee?.lat??0,Ae=he&&!je&&null!=T&&!!Ee,[Re,Te]=l(null);s(()=>{const e=re.current,t=le.current;if(!(Ae&&e&&t&&Se))return;const n=document.createElement("div");n.dataset.mapCard="",n.className=ve.current.looks.cardFloating;const r=new t.Popup({anchor:"bottom",offset:N,className:"rosh-map-card",maxWidth:"none",closeButton:!1,closeOnClick:!1,closeOnMove:!1,focusAfterOpen:!1}).setLngLat([Be,ze]).setDOMContent(n).addTo(e),o=r.getElement(),a=o.querySelector(".maplibregl-popup-content");a&&Object.assign(a.style,{padding:"0",background:"transparent",borderRadius:"0",boxShadow:"none"});const l=o.querySelector(".maplibregl-popup-tip"),s=ve.current.looks===U.site?"var(--rosh-map-pin, #111)":"var(--color-gray-600, #4b5563)";l&&Object.assign(l.style,{borderTopColor:s,borderBottomColor:s}),Te(n);let i=!1,c=!1;const u=(t=!0)=>{if(c)return;if(e.isMoving())return void(i||(i=!0,e.once("moveend",()=>{i=!1,u()})));const{clientWidth:o,clientHeight:a}=e.getContainer(),l=function(e,t){const n=e.getBoundingClientRect().top,r=[...e.querySelectorAll(".maplibregl-ctrl-top-left > *, .maplibregl-ctrl-top-right > *"),...t?.querySelectorAll(":scope > [data-map-control]")??[]];let o=0;for(const e of r){const t=e.getBoundingClientRect();t.height>0&&(o=Math.max(o,t.bottom-n))}return o}(e.getContainer(),I.current)+8,s=`${M(a,l)}px`;n.style.maxHeight!==s&&(n.style.maxHeight=s);const d=r.getElement(),p=r.getLngLat(),{anchor:m,move:h}=C(e.project(p),{width:d.offsetWidth,height:d.offsetHeight},{width:o,height:a},l);r.options.anchor!==m&&(r.options.anchor=m,r.setLngLat(p)),!t||0===h.x&&0===h.y||e.panBy([-h.x,-h.y],{duration:Y()?0:250}),Ce()},d=new ResizeObserver(()=>u());d.observe(n);const p=()=>u(),m=()=>{i||u(!1)};e.on("resize",p),e.on("moveend",m);let h=!1;const g=ie.current,f=e=>{h=n.contains(e.target)};return document.addEventListener("focusin",f),()=>{if(c=!0,d.disconnect(),e.off("resize",p),e.off("moveend",m),document.removeEventListener("focusin",f),r.remove(),Te(null),h&&(!document.activeElement||document.activeElement===document.body)){const e=g.get(Se)?.button;e&&"none"!==e.style.display&&e.focus({preventScroll:!0})}}},[Ae,Se,Be,ze,Ce]);const Oe=W?.active??!1,We=a(W?.onChange);s(()=>{We.current=W?.onChange}),s(()=>{if(!W)return;const e=document.documentElement;Oe&&!document.fullscreenElement&&e.requestFullscreen&&e.requestFullscreen().catch(()=>{}),!Oe&&document.fullscreenElement&&document.exitFullscreen().catch(()=>{})},[Oe]);const Fe=!!W;return s(()=>{if(!Fe)return;const e=()=>{document.fullscreenElement||We.current?.(!1)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[Fe]),/* @__PURE__ */d("div",{ref:I,className:ee(ke.frame(S),g),children:[
3
+ /* @__PURE__ */p("div",{className:ke.fill,children:/* @__PURE__ */p("div",{ref:X,className:ke.box,role:"region","aria-label":h})}),fe&&/* @__PURE__ */p("p",{className:ke.failed,children:_.failed}),W&&/* @__PURE__ */p(t,{"data-map-control":"",variant:"secondary",size:"sm",className:"absolute left-3 top-3 z-10",onClick:()=>W.onChange(!W.active),leftIcon:/* @__PURE__ */p(ae,{leave:W.active}),children:W.active?_.leaveFullScreen:_.fullScreen}),b,null!=T&&!Ae&&/* @__PURE__ */p("div",{"data-map-card":"",className:ke.cardInline,children:T}),Ae&&Re?u(T,Re):null,he&&/* @__PURE__ */p(oe,{pins:n,hosts:pe.current,hostClass:ke.iconHost})]})}function oe({pins:e,hosts:t,hostClass:n}){/* @__PURE__ */
4
4
  return p(m,{children:e.map(e=>{if(null==e.iconNode||e.dot)return null;let r=t.get(e.key);return r||(r=document.createElement("span"),r.className=n,t.set(e.key,r)),u(e.iconNode,r,e.key)})})}function ae({leave:e}){/* @__PURE__ */
5
5
  return p(n,e?{name:"collapse","aria-hidden":"true",className:"h-4 w-4",strokeWidth:2}:{name:"expand","aria-hidden":"true",className:"h-4 w-4",strokeWidth:2})}function le(){const[e,t]=l(null);return{highlightKey:e,pointAt:i(e=>{const n=()=>t(e),r=()=>t(t=>t===e?null:t);return{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r}},[])}}var se=3e3,ie=e=>!!e?.pending&&3e3,ce=e=>`${e.kind}:${e.id}`,ue=e=>("located"===e.placement||"approximate"===e.placement)&&null!=e.lat&&null!=e.lng;function de(e){switch(e){case"located":return null;case"approximate":return"Approximate: only the suburb or postcode matched";case"pending":return"Locating";case"not_found":return"Not on the map: address not found";case"failed":return"Not on the map: the map service could not be reached";case"no_address":return"Not on the map: no city or postcode"}}var pe={importer:{label:"Importer",tone:"bg-sky-600 text-white"},dealer:{label:"Dealer",tone:"bg-purple-600 text-white"},retail:{label:"Retail",tone:"bg-green-600 text-white"},supplier:{label:"Supplier",tone:"bg-sky-600 text-white"},delivery_location:{label:"Delivery location",tone:"bg-amber-600 text-white"},warehouse:{label:"Warehouse",tone:"bg-amber-600 text-white"}},me=["importer","dealer","retail","supplier","delivery_location","warehouse"];function he(e){return"supplier"===e.kind?"supplier":"customer"===e.kind?e.category||"importer":e.kind}var ge=(e,t=pe)=>t[e]?.tone??"bg-gray-700 text-white",fe=(e,t=pe)=>t[e]?.label??e,be=(e,t)=>ge(he(e),t);function ye(e,t,n=pe){return null!=t?String(t):(n[he(e)]?.label??"").charAt(0).toUpperCase()}var xe=["delivery_location","warehouse"];function ke(e,t=xe){const n=/* @__PURE__ */new Map;let r=0;for(const o of e)t.includes(o.kind)&&n.set(ce(o),++r);return n}function ve(e){const t={onMap:0,approximate:0,pending:0,off:0};for(const n of e)ue(n)?(t.onMap+=1,"approximate"===n.placement&&(t.approximate+=1)):"pending"===n.placement?t.pending+=1:t.off+=1;return t}function we(e){const t=[`${e.onMap} on the map`];return e.approximate&&t.push(`${e.approximate} approximate`),e.pending&&t.push(`${e.pending} locating`),e.off&&t.push(`${e.off} not on the map`),t.join(" · ")}function Ne(e){const t=[...new Set(e.filter(ue).map(he))];return[...me.filter(e=>t.includes(e)),...t.filter(e=>!me.includes(e))]}function Me(e,t){return e.filter(e=>!ue(e)&&"pending"!==e.placement).map(e=>{const n=t?.get(ce(e)),r=de(e.placement)?.replace(/^Not on the map: /,"")??"";return{key:ce(e),text:`${null!=n?`${n}. `:""}${e.label}: ${r}`}})}function Ce({categories:e,palette:t=pe,floating:n=!0}){return e.length<2?null:/* @__PURE__ */p("div",{className:(n?"absolute left-3 top-3 z-10 ":"")+"flex flex-wrap gap-x-3 gap-y-1 rounded-lg border border-line bg-surface px-3 py-2 text-xs text-gray-600 shadow-sm",children:e.map(e=>/* @__PURE__ */d("span",{className:"inline-flex items-center gap-2",children:[
6
6
  /* @__PURE__ */p("span",{"aria-hidden":!0,className:`h-2.5 w-2.5 rounded-full ${ge(e,t)}`}),fe(e,t)]},e))})}function Le({point:e,number:r,onOpen:a,onClose:l,palette:s=pe}){const i=de(e.placement),c=he(e),u=o().map;/* @__PURE__ */
@@ -18,4 +18,4 @@ return d("section",{"aria-label":u,className:`flex min-w-0 flex-col ${g}`,childr
18
18
  /* @__PURE__ */d("div",{className:"absolute left-3 top-3 z-10 flex max-w-[70%] flex-col items-start gap-2",children:[
19
19
  /* @__PURE__ */p(Ce,{categories:j,palette:m,floating:!1}),y&&/* @__PURE__ */d("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface px-3 min-h-8 py-1 text-xs text-gray-600 shadow-sm",children:["Couldn’t load the locations.",
20
20
  /* @__PURE__ */p("button",{type:"button",onClick:()=>{x()},className:"font-medium text-blue-600 hover:text-blue-800 hover:underline",children:"Try again"})]}),!y&&($>0||L.length>0)&&/* @__PURE__ */d("div",{className:"max-w-full space-y-0.5 rounded-lg border border-line bg-surface px-3 py-2 text-xs shadow-sm","aria-live":"polite",children:[$>0&&/* @__PURE__ */d("p",{className:"flex items-center gap-2 text-ink-faint",children:[
21
- /* @__PURE__ */p(r,{}),"Locating ",$," address",1===$?"":"es"]}),L.slice(0,3).map(e=>/* @__PURE__ */p("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),L.length>3&&/* @__PURE__ */d("p",{className:"text-gray-500",children:["+",L.length-3," more not on the map"]})]})]}),E&&/* @__PURE__ */p(Le,{point:E,number:M.get(ce(E))??null,onOpen:S,onClose:()=>w(null),palette:m})]})]})}export{w as CARD_MIN_MAP_WIDTH,g as COMPACT_SHOW,re as EntityMap,$e as LocationsMap,L as MAPLIBRE_WORKER_FILE,A as MAP_APART_PX,pe as MAP_CATEGORIES,y as MAP_CSP_SOURCES,Q as MAP_LOOKS,z as MAP_STOP_PX,x as MAP_STYLE_URLS,B as MAP_TARGET_PX,b as MAP_TILE_ORIGIN,Ce as MapLegend,se as PENDING_POLL_MS,xe as SECONDARY_KINDS,Le as SelectedCard,M as cardMaxHeight,fe as categoryLabel,ge as categoryTone,f as foldAttributionOnce,ue as isOnMap,K as layoutPins,Ne as legendCategories,E as loadMapLibre,ke as locationNumbers,j as mapLibreWorkerUrl,ie as mapPointsRefetchInterval,Me as offMapNotes,he as pinCategory,ye as pinGlyph,be as pinTone,C as placeCard,de as placementNote,ce as pointKey,R as stopsLabel,ve as summarize,we as summaryText,le as useMapHighlight,je as useMapPoints,q as zoomApart};
21
+ /* @__PURE__ */p(r,{}),"Locating ",$," address",1===$?"":"es"]}),L.slice(0,3).map(e=>/* @__PURE__ */p("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),L.length>3&&/* @__PURE__ */d("p",{className:"text-gray-500",children:["+",L.length-3," more not on the map"]})]})]}),E&&/* @__PURE__ */p(Le,{point:E,number:M.get(ce(E))??null,onOpen:S,onClose:()=>w(null),palette:m})]})]})}export{w as CARD_MIN_MAP_WIDTH,g as COMPACT_SHOW,re as EntityMap,$e as LocationsMap,L as MAPLIBRE_WORKER_FILE,A as MAP_APART_PX,pe as MAP_CATEGORIES,y as MAP_CSP_SOURCES,U as MAP_LOOKS,z as MAP_STOP_PX,x as MAP_STYLE_URLS,B as MAP_TARGET_PX,b as MAP_TILE_ORIGIN,Ce as MapLegend,se as PENDING_POLL_MS,xe as SECONDARY_KINDS,Le as SelectedCard,M as cardMaxHeight,fe as categoryLabel,ge as categoryTone,f as foldAttributionOnce,ue as isOnMap,D as layoutPins,Ne as legendCategories,E as loadMapLibre,ke as locationNumbers,j as mapLibreWorkerUrl,ie as mapPointsRefetchInterval,Me as offMapNotes,he as pinCategory,ye as pinGlyph,be as pinTone,C as placeCard,de as placementNote,ce as pointKey,R as stopsLabel,ve as summarize,we as summaryText,le as useMapHighlight,je as useMapPoints,q as zoomApart};
@@ -0,0 +1,38 @@
1
+ /** The nine kinds, in the order the tiles show them. */
2
+ declare const ENTRANCE_KINDS: readonly ["none", "fade", "rise", "scale", "glide", "bounce", "flip", "reveal", "spin"];
3
+ type EntranceKind = (typeof ENTRANCE_KINDS)[number];
4
+ /** The kinds that come from a side, so the From row shows for them only. */
5
+ declare const ENTRANCE_KINDS_WITH_FROM: readonly ["glide", "bounce", "flip", "reveal"];
6
+ /** The four sides, in the order the From row shows them. */
7
+ declare const ENTRANCE_FROM: readonly ["top", "bottom", "left", "right"];
8
+ type EntranceFrom = (typeof ENTRANCE_FROM)[number];
9
+ /** The side a kind with a side comes from until one is chosen. */
10
+ declare const ENTRANCE_FROM_DEFAULT: EntranceFrom;
11
+ interface EntranceValue {
12
+ readonly kind: EntranceKind;
13
+ /** The side, for a kind that has one; `null` for every other kind. */
14
+ readonly from: EntranceFrom | null;
15
+ /** Seconds, inside `MOTION_TIMING.entrance`. */
16
+ readonly duration: number;
17
+ readonly delay: number;
18
+ }
19
+ declare const ENTRANCE_ATTR = "data-motion-entrance";
20
+ declare const ENTRANCE_FROM_ATTR = "data-motion-from";
21
+ /** `armed` (waiting hidden below the fold) or `play`. Written by `armEntrance` only. */
22
+ declare const ENTRANCE_STATE_ATTR = "data-motion-state";
23
+ /** A stored Entrance, read. An unknown kind is None; an unknown side is the default side. */
24
+ declare function readEntrance(kind: unknown, from?: unknown, duration?: unknown, delay?: unknown): EntranceValue;
25
+ /**
26
+ * What the element carries. None writes nothing. A time equal to the default is
27
+ * left to `motion.css`, so a page that never changed it follows the default.
28
+ */
29
+ declare function entranceAttrs(value: EntranceValue): {
30
+ attrs: Record<string, string>;
31
+ style: Record<string, string>;
32
+ };
33
+ /** Wait below the fold, play once on arrival. Returns the clean-up. */
34
+ declare function armEntrance(el: HTMLElement): () => void;
35
+ /** Play now (the editor's preview calls this too). It ends on the element's own `animationend`. */
36
+ declare function playEntrance(el: HTMLElement): void;
37
+
38
+ export { ENTRANCE_ATTR, ENTRANCE_FROM, ENTRANCE_FROM_ATTR, ENTRANCE_FROM_DEFAULT, ENTRANCE_KINDS, ENTRANCE_KINDS_WITH_FROM, ENTRANCE_STATE_ATTR, type EntranceFrom, type EntranceKind, type EntranceValue, armEntrance, entranceAttrs, playEntrance, readEntrance };
@@ -0,0 +1 @@
1
+ export{ENTRANCE_ATTR,ENTRANCE_FROM,ENTRANCE_FROM_ATTR,ENTRANCE_FROM_DEFAULT,ENTRANCE_KINDS,ENTRANCE_KINDS_WITH_FROM,ENTRANCE_STATE_ATTR,armEntrance,entranceAttrs,playEntrance,readEntrance}from"../chunk-Q2SCJQ5H.js";import"../chunk-AIJ3G6BD.js";
package/dist/motion.css CHANGED
@@ -24,3 +24,104 @@
24
24
  --page-hover-lift: 3px;
25
25
  --page-hover-rotate: 72deg;
26
26
  }
27
+
28
+ /*
29
+ * Entrance (src/motion/entrance.ts). The element carries data-motion-entrance
30
+ * (the kind), data-motion-from (the side, four kinds only) and, when changed,
31
+ * --motion-entrance-duration / --motion-entrance-delay inline. JS writes
32
+ * data-motion-state: "armed" waits hidden below the fold, "play" plays once.
33
+ * Each keyframe list ends on the element's own look, so a lost animationend
34
+ * costs nothing (fill-mode both rests on the last keyframe). Reveal is the one
35
+ * exception: a clip-path cannot animate to "none", so it ends on inset(0),
36
+ * which shows the whole box.
37
+ * Rise and Scale keep the distances the section entrance used (24px, 0.96).
38
+ */
39
+ [data-motion-entrance] {
40
+ /* Reset, so a nested element with the default times does not inherit its
41
+ parent's changed ones (custom properties inherit). Inline values win. */
42
+ --motion-entrance-duration: initial;
43
+ --motion-entrance-delay: initial;
44
+ --motion-entrance-x: 0px;
45
+ --motion-entrance-y: 48px;
46
+ --motion-entrance-flip: rotateX(-90deg);
47
+ --motion-entrance-clip: inset(100% 0 0 0);
48
+ }
49
+ [data-motion-from="top"] {
50
+ --motion-entrance-x: 0px;
51
+ --motion-entrance-y: -48px;
52
+ --motion-entrance-flip: rotateX(90deg);
53
+ --motion-entrance-clip: inset(0 0 100% 0);
54
+ }
55
+ [data-motion-from="bottom"] {
56
+ --motion-entrance-x: 0px;
57
+ --motion-entrance-y: 48px;
58
+ --motion-entrance-flip: rotateX(-90deg);
59
+ --motion-entrance-clip: inset(100% 0 0 0);
60
+ }
61
+ [data-motion-from="left"] {
62
+ --motion-entrance-x: -48px;
63
+ --motion-entrance-y: 0px;
64
+ --motion-entrance-flip: rotateY(90deg);
65
+ --motion-entrance-clip: inset(0 100% 0 0);
66
+ }
67
+ [data-motion-from="right"] {
68
+ --motion-entrance-x: 48px;
69
+ --motion-entrance-y: 0px;
70
+ --motion-entrance-flip: rotateY(-90deg);
71
+ --motion-entrance-clip: inset(0 0 0 100%);
72
+ }
73
+
74
+ @keyframes motion-entrance-fade {
75
+ from { opacity: 0; }
76
+ }
77
+ @keyframes motion-entrance-rise {
78
+ from { opacity: 0; transform: translateY(24px); }
79
+ }
80
+ @keyframes motion-entrance-scale {
81
+ from { opacity: 0; transform: scale(0.96); }
82
+ }
83
+ @keyframes motion-entrance-glide {
84
+ from { opacity: 0; transform: translate(var(--motion-entrance-x), var(--motion-entrance-y)); }
85
+ }
86
+ @keyframes motion-entrance-bounce {
87
+ 0% { opacity: 0; transform: translate(var(--motion-entrance-x), var(--motion-entrance-y)); }
88
+ 60% { opacity: 1; transform: translate(calc(var(--motion-entrance-x) * -0.15), calc(var(--motion-entrance-y) * -0.15)); }
89
+ 80% { transform: translate(calc(var(--motion-entrance-x) * 0.05), calc(var(--motion-entrance-y) * 0.05)); }
90
+ }
91
+ @keyframes motion-entrance-flip {
92
+ from { opacity: 0; transform: perspective(800px) var(--motion-entrance-flip); }
93
+ }
94
+ @keyframes motion-entrance-reveal {
95
+ from { clip-path: var(--motion-entrance-clip); }
96
+ to { clip-path: inset(0 0 0 0); }
97
+ }
98
+ @keyframes motion-entrance-spin {
99
+ from { opacity: 0; transform: rotate(-90deg) scale(0.8); }
100
+ }
101
+
102
+ [data-motion-entrance][data-motion-state="armed"] {
103
+ opacity: 0;
104
+ }
105
+ [data-motion-entrance][data-motion-state="play"] {
106
+ animation-duration: var(--motion-entrance-duration, var(--page-motion-entrance-duration));
107
+ animation-delay: var(--motion-entrance-delay, var(--page-motion-entrance-delay));
108
+ animation-timing-function: var(--page-ease-arrive);
109
+ animation-fill-mode: both;
110
+ }
111
+ [data-motion-entrance="fade"][data-motion-state="play"] { animation-name: motion-entrance-fade; }
112
+ [data-motion-entrance="rise"][data-motion-state="play"] { animation-name: motion-entrance-rise; }
113
+ [data-motion-entrance="scale"][data-motion-state="play"] { animation-name: motion-entrance-scale; }
114
+ [data-motion-entrance="glide"][data-motion-state="play"] { animation-name: motion-entrance-glide; }
115
+ [data-motion-entrance="bounce"][data-motion-state="play"] { animation-name: motion-entrance-bounce; }
116
+ [data-motion-entrance="flip"][data-motion-state="play"] { animation-name: motion-entrance-flip; }
117
+ [data-motion-entrance="reveal"][data-motion-state="play"] { animation-name: motion-entrance-reveal; }
118
+ [data-motion-entrance="spin"][data-motion-state="play"] { animation-name: motion-entrance-spin; }
119
+
120
+ /* Reduced motion has one answer, here: an element is never hidden and never
121
+ moves. The engine does not ask in JS. */
122
+ @media (prefers-reduced-motion: reduce) {
123
+ [data-motion-entrance][data-motion-state] {
124
+ opacity: 1;
125
+ animation: none;
126
+ }
127
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import{TabStrip as e}from"../chunk-6UBOLLBC.js";import{useShellLanguage as t}from"../chunk-7TZV6G2F.js";import"../chunk-2E2SUEEE.js";import{confirm as n}from"../chunk-PLK2WHZG.js";import"../chunk-7INZ7O3A.js";import"../chunk-P4VKU3SL.js";import"../chunk-3DVNXNTF.js";import"../chunk-ECJKIPWU.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-G3KXB7SP.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-UQYNPYF4.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as i}from"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.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=A(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=A(n,e[0].key)}return n}(c,n)}function C(e){let t={...e,activeKey:null};return t.closing&&(t=A(t,t.closing)),t}function A(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 D(e,t){switch(t.type){case"visit":return L(e,t.entry,t.maxTabs);case"transient":return C(e);case"close":{let n=e;for(const e of t.keys)n=A(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 I=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 B({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const K=m(),F=h(),N=i().pageTabs,A=y(),B=a(c);B.current=c;const M=d(e=>{const t=B.current(e);return t?{key:t.key??e.pathname,path:I(e),title:t.title}:null},[]),{language:O}=t(),[Q,S]=p(D,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=>M(w(e)),O);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=>M(w(e))).filter(e=>Boolean(e)));const n=v?M(K):null;return t=n?L(t,n,k):C(t),t}),E=a(Q);E.current=Q;const P=a(/* @__PURE__ */new Map),U=v?M(K):null,x=U?.key??null;r(()=>{if(!v)return;const e=M(K);e?(P.current.set(e.key,K),S({type:"visit",entry:e,maxTabs:k})):S({type:"transient"})},[K,v,k,M]),o(()=>{const e=new Set(Q.tabs.map(e=>e.key));for(const t of P.current.keys())e.has(t)||P.current.delete(t)},[Q.tabs]);const J=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,O),[Q,O]);o(()=>{if(l)try{localStorage.setItem(l,J)}catch{}},[J,l]);const G=Q.dirty.length>0;o(()=>{if(!G)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[G]);const W=a(/* @__PURE__ */new Map),$=d((e,t)=>{let n=W.current.get(e);return void 0===n&&(n=W.current.size,W.current.set(e,n)),`${A}-page-${t}-${n}`},[A]),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]),R=d(()=>{const e=E.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),V=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??R()}S({type:"close",keys:e.filter(e=>e!==i),closing:i}),F(c)},[F,R]),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)&&(V([e],t.to),!0))},[H,V,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&&V(n,void 0,"all"===e?null:t)},[H,V]),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=>M(e)?.key??null,[M]),re=d(e=>P.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:x,resolve:c,keyFor:ne,locationFor:re,idFor:$,activate:Z,close:X,closeMany:Y,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,Q,x,c,ne,re,$,Z,X,Y,z,q,_,te,ie]);/* @__PURE__ */
3
- return b(j.Provider,{value:ce,children:e})}var M=c.Activity,O=Boolean(M);function Q({active:e,children:t}){return M?/* @__PURE__ */b(M,{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(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)),E="\0transient";function P({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 U({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 x={enabled:!1,tabs:[],activeKey:null,activate:()=>{},close:async()=>!1,closeOthers:async()=>{},closeRight:async()=>{},closeAll:async()=>{}};function J(){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)}:x}function G(){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 W(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 $(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,O as PAGE_TABS_PAUSE_HIDDEN,U as PageTabBar,P as PageTabsOutlet,B as PageTabsProvider,w as parseTabPath,G as usePageTab,$ as usePageTabCopy,H as usePageTabDirty,W as usePageTabTitle,J as usePageTabs};
2
+ import{TabStrip as e}from"../chunk-RNBS6QGP.js";import{useShellLanguage as t}from"../chunk-7TZV6G2F.js";import"../chunk-2E2SUEEE.js";import{confirm as n}from"../chunk-PLK2WHZG.js";import"../chunk-7INZ7O3A.js";import"../chunk-55AEZX6K.js";import"../chunk-3DVNXNTF.js";import"../chunk-ECJKIPWU.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-UQYNPYF4.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import{useBrowserLayoutEffect as r}from"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import{useShellStrings as i}from"../chunk-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),N=12;var F=(e,t)=>e.filter(e=>e!==t);function T(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function I(e,t,n=12){const r=e.clock+1;let i;i=e.tabs.find(e=>e.key===t.key)?e.tabs.map(e=>e.key===t.key?{...e,path:t.path,title:"page"===e.titleFrom?e.title:t.title||e.title,lastActive:r}:e):[...e.tabs,{key:t.key,path:t.path,title:t.title,titleFrom:"route",pinned:!1,lastActive:r}];let c={...e,tabs:i,activeKey:t.key,mounted:(s=e.mounted,l=t.key,s.includes(l)?s:[...s,l]),clock:r};var s,l;return c.closing&&c.closing!==t.key?c=L(c,c.closing):c.closing===t.key&&(c={...c,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=L(n,e[0].key)}return n}(c,n)}function A(e){let t={...e,activeKey:null};return t.closing&&(t=L(t,t.closing)),t}function L(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:F(e.mounted,t),dirty:F(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function w(e,t){switch(t.type){case"visit":return I(e,t.entry,t.maxTabs);case"transient":return A(e);case"close":{let n=e;for(const e of t.keys)n=L(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:F(e.dirty,t)}}(e,t.key,t.dirty)}}var C=e=>`${e.pathname}${e.search}`;function D(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 M({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const K=m(),N=h(),F=i().pageTabs,L=y(),M=a(c);M.current=c;const E=d(e=>{const t=M.current(e);return t?{key:t.key??e.pathname,path:C(e),title:t.title}:null},[]),{language:O}=t(),[B,J]=p(w,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=>E(D(e)),O);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=>E(D(e))).filter(e=>Boolean(e)));const n=v?E(K):null;return t=n?I(t,n,k):A(t),t}),Q=a(B);Q.current=B;const S=a(/* @__PURE__ */new Map),x=v?E(K):null,G=x?.key??null;r(()=>{if(!v)return;const e=E(K);e?(S.current.set(e.key,K),J({type:"visit",entry:e,maxTabs:k})):J({type:"transient"})},[K,v,k,E]),o(()=>{const e=new Set(B.tabs.map(e=>e.key));for(const t of S.current.keys())e.has(t)||S.current.delete(t)},[B.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)}(B,O),[B,O]);o(()=>{if(l)try{localStorage.setItem(l,P)}catch{}},[P,l]);const U=B.dirty.length>0;o(()=>{if(!U)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[U]);const W=a(/* @__PURE__ */new Map),H=d((e,t)=>{let n=W.current.get(e);return void 0===n&&(n=W.current.size,W.current.set(e,n)),`${L}-page-${t}-${n}`},[L]),R=d(e=>g?g(e):n({title:F.discardTitle,message:1===e.length?F.discardOne:F.discardCount?.(e.length)??`${e.length} ${F.discardMany}`,confirmLabel:F.discardConfirm,cancelLabel:F.keepEditing,variant:"warning"}),[g,F]),X=d(()=>{const e=Q.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),$=d((e,t,n)=>{const r=Q.current,i=r.activeKey;if(!i||!e.includes(i))return void J({type:"close",keys:e,closing:null});let c=t;if(!c){const t={...r,tabs:r.tabs.filter(t=>t.key===i||!e.includes(t.key))},s=n?r.tabs.find(t=>t.key===n&&!e.includes(t.key)):void 0;c=(s??function(e,t){const n=e.tabs.filter(n=>n.key!==e.closing||n.key===t),r=n.findIndex(e=>e.key===t);return r<0?null:n[r+1]??n[r-1]??null}(t,i))?.path??X()}J({type:"close",keys:e.filter(e=>e!==i),closing:i}),N(c)},[N,X]),Z=d(async(e,t={})=>{const n=Q.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&N(t.to),!1):!(!t.force&&Q.current.dirty.includes(e)&&!await R([n]))&&(!!Q.current.tabs.some(t=>t.key===e)&&($([e],t.to),!0))},[R,$,N]),V=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)}(Q.current,e,t);const r=Q.current.tabs.filter(e=>n.includes(e.key)&&Q.current.dirty.includes(e.key));r.length&&!await R(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(Q.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&$(n,void 0,"all"===e?null:t)},[R,$]),Y=d(e=>{const t=Q.current.tabs.find(t=>t.key===e);t&&e!==Q.current.activeKey&&N(t.path)},[N]),z=d((e,t)=>J({type:"title",key:e,title:t}),[]),q=d((e,t)=>J({type:"dirty",key:e,dirty:t}),[]),[_,ee]=f({}),te=d((e,t)=>{ee(n=>{if((n[e]??null)===t)return n;const r={...n};return t?r[e]=t:delete r[e],r})},[]),ne=d(e=>E(e)?.key??null,[E]),re=d(e=>S.current.get(e),[]),ie=u(()=>v?B.tabs.filter(e=>e.key!==B.closing):[],[v,B.tabs,B.closing]),ce=u(()=>({enabled:v,state:B,currentKey:G,resolve:c,keyFor:ne,locationFor:re,idFor:H,activate:Y,close:Z,closeMany:V,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,B,G,c,ne,re,H,Y,Z,V,z,q,_,te,ie]);/* @__PURE__ */
3
+ return b(j.Provider,{value:ce,children:e})}var E=c.Activity,O=Boolean(E);function B({active:e,children:t}){return E?/* @__PURE__ */b(E,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */b(v,{children:t})}var J=l(function({tabKey:e,active:t,location:n,render:i,className:c,panelId:s,tabId:l}){const y=a(null),d=a(t),p=a(/* @__PURE__ */new Map);r(()=>{const e=d.current;if(d.current=t,t&&!e)for(const[e,[t,n]]of p.current)e.isConnected?(e.scrollTop=t,e.scrollLeft=n):p.current.delete(e)},[t]),o(()=>{const e=y.current;if(!e)return;const t=e=>{if(!d.current)return;const t=e.target;t&&"number"==typeof t.scrollTop&&p.current.set(t,[t.scrollTop,t.scrollLeft])};return e.addEventListener("scroll",t,!0),()=>e.removeEventListener("scroll",t,!0)},[]);const f=u(()=>({key:e,activeRef:d}),[e]);/* @__PURE__ */
4
+ return b("div",{ref:y,role:s?"tabpanel":void 0,id:s,"aria-labelledby":l,hidden:!t,style:t?void 0:{display:"none"},className:c,"data-page-tab":e,children:/* @__PURE__ */b(K.Provider,{value:f,children:/* @__PURE__ */b(B,{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)),Q="\0transient";function S({children:e,frameClassName:t}){const n=k(j),r=m();if(!n||!n.enabled)/* @__PURE__ */
5
+ return b("div",{className:t,children:e(r)},Q);const{state:i,currentKey:c,locationFor:s,idFor:l}=n,a=i.tabs.filter(e=>i.mounted.includes(e.key)).map(e=>e.key);return c&&!a.includes(c)&&a.push(c),/* @__PURE__ */g(v,{children:[a.map(n=>{const i=n===c,a=i?r:s(n);return a?/* @__PURE__ */b(J,{tabKey:n,active:i,location:a,render:e,className:t,panelId:l(n,"panel"),tabId:l(n,"tab")},n):null}),!c&&/* @__PURE__ */b(J,{tabKey:Q,active:!0,location:r,render:e,className:t},Q)]})}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(D(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 G={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)}:G}function U(){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 W(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 H(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 R(e){const t=k(j),n=k(K),r=t?.enabled?t.setDirty:void 0;o(()=>{if(r&&n)return r(n.key,e),()=>{n.activeRef.current&&r(n.key,!1)}},[r,n,e])}export{N as DEFAULT_MAX_TABS,O as PAGE_TABS_PAUSE_HIDDEN,x as PageTabBar,S as PageTabsOutlet,M as PageTabsProvider,D as parseTabPath,U as usePageTab,H as usePageTabCopy,R as usePageTabDirty,W as usePageTabTitle,P as usePageTabs};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{APP_UPDATE_POLL_MS,AppUpdateBanner as default,useAppUpdate}from"../chunk-ESZHN7PV.js";import"../chunk-ZGOHRLXG.js";import"../chunk-7DI3VQCF.js";import"../chunk-UQYNPYF4.js";import"../chunk-XWFLIGDQ.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{APP_UPDATE_POLL_MS,AppUpdateBanner as default,useAppUpdate}from"../chunk-DIEH76MB.js";import"../chunk-ZGOHRLXG.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ColoredBadge as default}from"../chunk-BW47XJLH.js";import"../chunk-JPNAEN53.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-CJH2BGXY.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{ColoredBadge as default}from"../chunk-OKHKY3ZZ.js";import"../chunk-FZM3ZPW3.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ContextMenu,useContextMenu}from"../chunk-SS5SQMIB.js";import"../chunk-OTVK7DJM.js";import"../chunk-G3KXB7SP.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{ContextMenu,useContextMenu}from"../chunk-AIJ6OR6X.js";import"../chunk-4DDL6NXB.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{DropdownMenu as default}from"../chunk-WUAKIM2B.js";import"../chunk-OTVK7DJM.js";import"../chunk-CDAJKLGL.js";import"../chunk-G3KXB7SP.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{DropdownMenu as default}from"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{EditableGrid as default,withSpareRow}from"../chunk-MDV7UQJD.js";import"../chunk-G6DKCCWH.js";import"../chunk-CJH2BGXY.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{EditableGrid as default,withSpareRow}from"../chunk-6M5O2P64.js";import"../chunk-G6DKCCWH.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{GlobalSearch as default,openGlobalSearch}from"../chunk-3NRQNKVP.js";import"../chunk-WGRS6QBT.js";import"../chunk-5A7MWTXX.js";import"../chunk-7QSDPSXP.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-D65T4H6J.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{GlobalSearch as default,openGlobalSearch}from"../chunk-DZOJQURG.js";import"../chunk-WGRS6QBT.js";import"../chunk-5A7MWTXX.js";import"../chunk-7QSDPSXP.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{HelpCenter as default}from"../chunk-4MBYFQOI.js";import"../chunk-CD7UWMPX.js";import"../chunk-UJUTS6LJ.js";import"../chunk-Q5Z3KHT2.js";import"../chunk-AYZY3YNC.js";import"../chunk-7DI3VQCF.js";import"../chunk-UQYNPYF4.js";import"../chunk-XWFLIGDQ.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{HelpCenter as default}from"../chunk-OEPYQUXZ.js";import"../chunk-QOI4GQVH.js";import"../chunk-UJUTS6LJ.js";import"../chunk-Q5Z3KHT2.js";import"../chunk-AYZY3YNC.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{IconRail,IconRailButton}from"../chunk-T7PVHIXI.js";import"../chunk-FQEALPZJ.js";import"../chunk-CLTRQ7AQ.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{IconRail,IconRailButton}from"../chunk-4P3324KU.js";import"../chunk-FQEALPZJ.js";import"../chunk-CLTRQ7AQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ImageLightbox as default,lightboxKind}from"../chunk-UGGHQYDN.js";import"../chunk-CGUMJZUB.js";import"../chunk-ZD36QKQS.js";import"../chunk-PVPMJ5G2.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-JPNAEN53.js";import"../chunk-CDAJKLGL.js";import"../chunk-7DI3VQCF.js";import"../chunk-UQYNPYF4.js";import"../chunk-XWFLIGDQ.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-CJH2BGXY.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{ImageLightbox as default,lightboxKind}from"../chunk-P7H2DXJB.js";import"../chunk-CGUMJZUB.js";import"../chunk-H5NIW2KS.js";import"../chunk-TDAI4J27.js";import"../chunk-VWGWZY7A.js";import"../chunk-7QSDPSXP.js";import"../chunk-FZM3ZPW3.js";import"../chunk-CDAJKLGL.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1 +1 @@
1
- export{ItemCount as default}from"../chunk-P4VKU3SL.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
1
+ export{ItemCount as default}from"../chunk-55AEZX6K.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{LanguagePanel,LanguageSelect,languageSelectWidth}from"../chunk-LJAYUDN2.js";import"../chunk-7TZV6G2F.js";import"../chunk-T23TIJ4P.js";import"../chunk-64ACCUNN.js";import"../chunk-32VV2J22.js";import"../chunk-NI5FXWK5.js";import"../chunk-M3JNILT2.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-6KBDNYRW.js";import"../chunk-VQCKMT5F.js";import"../chunk-2NMW66P5.js";import"../chunk-CGZBDI6C.js";import"../chunk-AYZY3YNC.js";import"../chunk-UGTRSRIW.js";import"../chunk-URHGHXDN.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{LanguagePanel,LanguageSelect,languageSelectWidth}from"../chunk-3BFZVVAT.js";import"../chunk-7TZV6G2F.js";import"../chunk-T23TIJ4P.js";import"../chunk-64ACCUNN.js";import"../chunk-32VV2J22.js";import"../chunk-NI5FXWK5.js";import"../chunk-XFH64VIG.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-6KBDNYRW.js";import"../chunk-VQCKMT5F.js";import"../chunk-2NMW66P5.js";import"../chunk-CGZBDI6C.js";import"../chunk-AYZY3YNC.js";import"../chunk-UGTRSRIW.js";import"../chunk-URHGHXDN.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Markdown as default,plainCell,tableToCsv}from"../chunk-CD7UWMPX.js";import"../chunk-UJUTS6LJ.js";import"../chunk-Q5Z3KHT2.js";import"../chunk-7DI3VQCF.js";import"../chunk-UQYNPYF4.js";import"../chunk-XWFLIGDQ.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{Markdown as default,plainCell,tableToCsv}from"../chunk-QOI4GQVH.js";import"../chunk-UJUTS6LJ.js";import"../chunk-Q5Z3KHT2.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{MenuCheckMark,MenuIcon,MenuSemanticsContext,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,itemLook,menuTextRowStyle}from"../chunk-G3KXB7SP.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{MenuCheckMark,MenuIcon,MenuSemanticsContext,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,itemLook,menuTextRowStyle}from"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ResizeHandle as default,readStoredWidth,resizedWidth}from"../chunk-EKCQ7XBZ.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{ResizeHandle as default,readStoredWidth,resizedWidth}from"../chunk-Z44JWU75.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{SearchableSelect as default,fitChoice}from"../chunk-EZYRHBOP.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-HEGSRTXG.js";import"../chunk-WUAKIM2B.js";import"../chunk-OTVK7DJM.js";import"../chunk-AYZY3YNC.js";import"../chunk-VCMHBUKI.js";import"../chunk-CDAJKLGL.js";import"../chunk-G3KXB7SP.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-7DI3VQCF.js";import"../chunk-UQYNPYF4.js";import"../chunk-XWFLIGDQ.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{SearchableSelect as default,fitChoice}from"../chunk-3XZFWR6T.js";import"../chunk-EO5RLFRX.js";import"../chunk-LJN77RG6.js";import"../chunk-HNUKXGYP.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-AYZY3YNC.js";import"../chunk-LE5LWALR.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-EOVXFXVV.js";import"../chunk-UQYNPYF4.js";import"../chunk-TE6R53YD.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{SettingReset as default}from"../chunk-DGNAUGZ3.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{SettingReset as default}from"../chunk-TFSLPAGB.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{SidebarLayout as default}from"../chunk-SXQZ5GTA.js";import"../chunk-QWK6DRSN.js";import"../chunk-EKCQ7XBZ.js";import"../chunk-UGTRSRIW.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{SidebarLayout as default}from"../chunk-AFG34RBV.js";import"../chunk-QWK6DRSN.js";import"../chunk-Z44JWU75.js";import"../chunk-UGTRSRIW.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,SidebarSection}from"../chunk-MTIP5DH2.js";import"../chunk-QWK6DRSN.js";import"../chunk-TZFNWAED.js";import"../chunk-P4VKU3SL.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,SidebarSection}from"../chunk-DWAA4YZV.js";import"../chunk-QWK6DRSN.js";import"../chunk-TZFNWAED.js";import"../chunk-55AEZX6K.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ListRow,SortableList}from"../chunk-RRE2NNFS.js";import"../chunk-FA5FBNWF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{ListRow,SortableList}from"../chunk-IPO4LHSB.js";import"../chunk-7JVGF555.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{GROUP_COLORS,GROUP_COLORS_SOLID,StatusBadgeProvider,StatusBadge as default,groupColors,useStatusLabel}from"../chunk-JPNAEN53.js";import"../chunk-CJH2BGXY.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{GROUP_COLORS,GROUP_COLORS_SOLID,StatusBadgeProvider,StatusBadge as default,groupColors,useStatusLabel}from"../chunk-FZM3ZPW3.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Tabs as default,tabButtonId,tabPanelId}from"../chunk-RQDVAUXD.js";import"../chunk-FQEALPZJ.js";import"../chunk-JDQGHQ2C.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{Tabs as default,tabButtonId,tabPanelId}from"../chunk-N5KO2IHG.js";import"../chunk-FQEALPZJ.js";import"../chunk-JDQGHQ2C.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Tooltip as default,useInsideTooltip}from"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{Tooltip as default,useInsideTooltip}from"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{TopNav as default}from"../chunk-5CXFABVD.js";import"../chunk-WUAKIM2B.js";import"../chunk-OTVK7DJM.js";import"../chunk-CDAJKLGL.js";import"../chunk-G3KXB7SP.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{TopNav as default}from"../chunk-T6BGS26U.js";import"../chunk-NZISMTQE.js";import"../chunk-4DDL6NXB.js";import"../chunk-CDAJKLGL.js";import"../chunk-6KGIHI6X.js";import"../chunk-URHGHXDN.js";import"../chunk-5QFPTDQF.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{TransferProgress as default}from"../chunk-PVPMJ5G2.js";import"../chunk-JPNAEN53.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-CJH2BGXY.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{TransferProgress as default}from"../chunk-TDAI4J27.js";import"../chunk-FZM3ZPW3.js";import"../chunk-R2VKEMZH.js";import"../chunk-MRJKZWWV.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam}from"../chunk-3XTSXZAC.js";import"../chunk-FA5FBNWF.js";import"../chunk-P4VKU3SL.js";import"../chunk-JPNAEN53.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-CJH2BGXY.js";import"../chunk-QQ2LDC6C.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";
2
+ export{Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam}from"../chunk-NRALUW6P.js";import"../chunk-7JVGF555.js";import"../chunk-55AEZX6K.js";import"../chunk-FZM3ZPW3.js";import"../chunk-2UO47XB4.js";import"../chunk-J75ZT2JQ.js";import"../chunk-WGLHB6WE.js";import"../chunk-NJN5IKWO.js";import"../chunk-PGN5ME7B.js";import"../chunk-62LW225J.js";import"../chunk-GLUJS42B.js";import"../chunk-D65T4H6J.js";import"../chunk-5FYDNH4Y.js";import"../chunk-LNXBTK7Q.js";import"../chunk-TWVUQUUD.js";import"../chunk-GDQJBQ5B.js";import"../chunk-C3QOHMR6.js";
@@ -1 +1 @@
1
- export{startClientTelemetry}from"../chunk-EB2IQNM5.js";import"../chunk-KNUR2UEG.js";import"../chunk-MNMOBH2O.js";
1
+ export{startClientTelemetry}from"../chunk-5SBCAYBH.js";import"../chunk-KNUR2UEG.js";import"../chunk-T3DN2QBM.js";