efficient-shell 10.24.0 → 11.2.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 (271) hide show
  1. package/README.md +18 -2
  2. package/dist/Browser-2JOFXNUA.js +44 -0
  3. package/dist/Calculator-V3BHUF4G.js +29 -0
  4. package/dist/{CurrencyConverter-7UMHQS2V.js → CurrencyConverter-6WJWHZUQ.js} +5 -5
  5. package/dist/{Documents-ODZ4AAOY.js → Documents-DY2OBQNR.js} +25 -25
  6. package/dist/{Files-BRGTTI2J.js → Files-ADJB2IFU.js} +43 -43
  7. package/dist/{Notepad-RMRDEGGU.js → Notepad-HOJSMCCF.js} +9 -9
  8. package/dist/{PomodoroTimer-4566W4F7.js → PomodoroTimer-5GWSBJW5.js} +5 -5
  9. package/dist/{Preview-7POJP7PB.js → Preview-JZBO2SP5.js} +13 -13
  10. package/dist/Sidebar-GQX7UM3M.js +44 -0
  11. package/dist/{Spreadsheet-7T4VT5IO.js → Spreadsheet-SS5Y3DV2.js} +13 -13
  12. package/dist/{Stock-H73C4R3N.js → Stock-3LSKLYGI.js} +3 -3
  13. package/dist/{Weather-WF56QCBI.js → Weather-26PCYFUR.js} +18 -18
  14. package/dist/{WorldClock-5QJNZYYS.js → WorldClock-KRL72Y53.js} +6 -6
  15. package/dist/ai/index.js +78 -78
  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/brand.css +1 -1
  20. package/dist/charts/BoxPlotChart.js +1 -1
  21. package/dist/charts/CandlestickChart.js +1 -1
  22. package/dist/charts/CartesianPlot.js +1 -1
  23. package/dist/charts/ChartTooltip.js +1 -1
  24. package/dist/charts/ChordChart.js +1 -1
  25. package/dist/charts/ColumnChart.js +1 -1
  26. package/dist/charts/FunnelChart.js +1 -1
  27. package/dist/charts/HeatmapChart.js +1 -1
  28. package/dist/charts/HistogramChart.js +1 -1
  29. package/dist/charts/PieChart.js +1 -1
  30. package/dist/charts/RadarChart.js +1 -1
  31. package/dist/charts/RadialBarChart.js +1 -1
  32. package/dist/charts/RangeChart.js +1 -1
  33. package/dist/charts/SankeyChart.js +1 -1
  34. package/dist/charts/ScatterChart.js +1 -1
  35. package/dist/charts/SpecChart.js +1 -1
  36. package/dist/charts/SunburstChart.js +1 -1
  37. package/dist/charts/TimeSeriesChart.js +1 -1
  38. package/dist/charts/TreemapChart.js +1 -1
  39. package/dist/charts/WaterfallChart.js +1 -1
  40. package/dist/chunk-23G63EZ4.js +29 -0
  41. package/dist/{chunk-XXL5RLNM.js → chunk-34H3CK7R.js} +9 -9
  42. package/dist/{chunk-HNVSVTNC.js → chunk-355CRSFS.js} +11 -11
  43. package/dist/{chunk-DZOJQURG.js → chunk-3NRQNKVP.js} +3 -3
  44. package/dist/{chunk-BUO7XCYR.js → chunk-3TXSYEQM.js} +13 -13
  45. package/dist/{chunk-NRALUW6P.js → chunk-3XTSXZAC.js} +7 -7
  46. package/dist/{chunk-WDQEUNGE.js → chunk-47DO42IW.js} +1 -1
  47. package/dist/{chunk-FUDUQ44A.js → chunk-4LQDORA6.js} +1 -1
  48. package/dist/{chunk-QWCEKHAP.js → chunk-4MBYFQOI.js} +4 -4
  49. package/dist/{chunk-U44DVPGB.js → chunk-4QK4WNPB.js} +1 -1
  50. package/dist/{chunk-COF33H6J.js → chunk-4TGZODSH.js} +5 -5
  51. package/dist/{chunk-LCSMBVMU.js → chunk-4XNVIKZZ.js} +3 -3
  52. package/dist/chunk-56KADF2B.js +11 -0
  53. package/dist/{chunk-GC3DA6D6.js → chunk-5CXFABVD.js} +1 -1
  54. package/dist/{chunk-E3EJWNNK.js → chunk-5F2AIDPY.js} +9 -9
  55. package/dist/{chunk-G66SG6JN.js → chunk-6EIZOX6W.js} +9 -9
  56. package/dist/{chunk-Z3SLQKE6.js → chunk-6TJCIS5E.js} +1 -1
  57. package/dist/chunk-6UBOLLBC.js +31 -0
  58. package/dist/chunk-7DI3VQCF.js +2 -0
  59. package/dist/{chunk-DOF56HTO.js → chunk-A3Q7X35W.js} +6 -6
  60. package/dist/chunk-AIJ3G6BD.js +1 -0
  61. package/dist/{chunk-V2J2AHDW.js → chunk-ALE56KOA.js} +4 -4
  62. package/dist/{chunk-CQEVJG43.js → chunk-BQPMZXNB.js} +1 -1
  63. package/dist/{chunk-BBXFIBXB.js → chunk-BTRV3SMB.js} +1 -1
  64. package/dist/{chunk-OKHKY3ZZ.js → chunk-BW47XJLH.js} +1 -1
  65. package/dist/{chunk-RZQGPWSN.js → chunk-CD7UWMPX.js} +1 -1
  66. package/dist/{chunk-WGLHB6WE.js → chunk-CJH2BGXY.js} +1 -1
  67. package/dist/{chunk-7FW2BQTV.js → chunk-COGSXN4D.js} +2 -2
  68. package/dist/{chunk-ZRLWE3JM.js → chunk-DANLBFBD.js} +1 -1
  69. package/dist/{chunk-TFSLPAGB.js → chunk-DGNAUGZ3.js} +4 -4
  70. package/dist/{chunk-ALTBTO3Z.js → chunk-DLWKDAYX.js} +2 -2
  71. package/dist/{chunk-MCAPJSB6.js → chunk-DU4WEVNS.js} +1 -1
  72. package/dist/{chunk-NZ7BFYCM.js → chunk-EB2IQNM5.js} +1 -1
  73. package/dist/{chunk-Z44JWU75.js → chunk-EKCQ7XBZ.js} +2 -2
  74. package/dist/{chunk-DIEH76MB.js → chunk-ESZHN7PV.js} +1 -1
  75. package/dist/chunk-EUAC2T5D.js +2 -0
  76. package/dist/{chunk-5PP435FL.js → chunk-EYPKBJYG.js} +1 -1
  77. package/dist/chunk-EZYRHBOP.js +13 -0
  78. package/dist/{chunk-7JVGF555.js → chunk-FA5FBNWF.js} +1 -1
  79. package/dist/chunk-FO6UPEZH.js +7 -0
  80. package/dist/{chunk-UNQ54QOF.js → chunk-FXOYA2VJ.js} +1 -1
  81. package/dist/{chunk-OTITQ3IH.js → chunk-G3KXB7SP.js} +8 -8
  82. package/dist/{chunk-3FBDLIQW.js → chunk-GAIB5FEE.js} +70 -70
  83. package/dist/{chunk-YQOVUH5W.js → chunk-GELPD7EY.js} +8 -8
  84. package/dist/chunk-GOZO6LU2.js +8 -0
  85. package/dist/{chunk-CX4XR4HO.js → chunk-GSF2UZTX.js} +1 -1
  86. package/dist/chunk-HCXIXV4E.js +8 -0
  87. package/dist/chunk-HEGSRTXG.js +5 -0
  88. package/dist/{chunk-DGWS4GTI.js → chunk-IGLPL2QU.js} +1 -1
  89. package/dist/chunk-IYXNRNAF.js +8 -0
  90. package/dist/{chunk-FZM3ZPW3.js → chunk-JPNAEN53.js} +1 -1
  91. package/dist/{chunk-S4FPYCUU.js → chunk-JQBVSPF5.js} +3 -3
  92. package/dist/{chunk-O7RR2ZZ2.js → chunk-KBV2UOTG.js} +6 -6
  93. package/dist/chunk-L7XIGRIT.js +6 -0
  94. package/dist/chunk-LCMXVMF4.js +14 -0
  95. package/dist/{chunk-PSR6SXCC.js → chunk-LGDMGDSV.js} +11 -11
  96. package/dist/chunk-LH7IKIGE.js +1 -0
  97. package/dist/{chunk-3BFZVVAT.js → chunk-LJAYUDN2.js} +1 -1
  98. package/dist/{chunk-Z6GQFTLJ.js → chunk-LK5A2SGA.js} +1 -1
  99. package/dist/{chunk-XFH64VIG.js → chunk-M3JNILT2.js} +3 -3
  100. package/dist/{chunk-VX6TKEEK.js → chunk-M4BPHBKI.js} +1 -1
  101. package/dist/{chunk-6M5O2P64.js → chunk-MDV7UQJD.js} +9 -9
  102. package/dist/{chunk-USVL5SLG.js → chunk-MIC2F3W3.js} +1 -1
  103. package/dist/chunk-MNMOBH2O.js +1 -0
  104. package/dist/{chunk-DWAA4YZV.js → chunk-MTIP5DH2.js} +3 -3
  105. package/dist/{chunk-XCAUDTCC.js → chunk-MXGDFO6A.js} +5 -5
  106. package/dist/{chunk-6IOFNPR6.js → chunk-NEZA7V6H.js} +4 -4
  107. package/dist/{chunk-IHNOWRTP.js → chunk-OEQ52KWJ.js} +2 -2
  108. package/dist/{chunk-WLYYC3AP.js → chunk-OFG3JZZE.js} +1 -1
  109. package/dist/{chunk-QGWKM7C3.js → chunk-OONJ43CQ.js} +5 -5
  110. package/dist/{chunk-CIHR5ZKF.js → chunk-OTVK7DJM.js} +1 -1
  111. package/dist/{chunk-HUA3TGMM.js → chunk-P2C33RHT.js} +1 -1
  112. package/dist/{chunk-55AEZX6K.js → chunk-P4VKU3SL.js} +1 -1
  113. package/dist/{chunk-A6FR2D46.js → chunk-PFKXPSOM.js} +5 -5
  114. package/dist/{chunk-TDAI4J27.js → chunk-PVPMJ5G2.js} +1 -1
  115. package/dist/chunk-Q5Z3KHT2.js +1 -0
  116. package/dist/{chunk-RSOBUPLK.js → chunk-QMUIXKBQ.js} +1 -1
  117. package/dist/{chunk-NJN5IKWO.js → chunk-QQ2LDC6C.js} +1 -1
  118. package/dist/{chunk-QO5E33DH.js → chunk-RABYGQQU.js} +2 -2
  119. package/dist/chunk-RK7MN5L5.js +3 -0
  120. package/dist/chunk-RPL4H6LE.js +9 -0
  121. package/dist/{chunk-N5KO2IHG.js → chunk-RQDVAUXD.js} +4 -4
  122. package/dist/{chunk-IPO4LHSB.js → chunk-RRE2NNFS.js} +6 -6
  123. package/dist/{chunk-WL4U4MTQ.js → chunk-RWPMLUFO.js} +3 -3
  124. package/dist/{chunk-36PJGT4W.js → chunk-SHO35OPO.js} +3 -3
  125. package/dist/{chunk-DRUQH4ZE.js → chunk-SS5SQMIB.js} +2 -2
  126. package/dist/{chunk-BMXTPJ7T.js → chunk-SX5BSWTN.js} +5 -5
  127. package/dist/{chunk-AFG34RBV.js → chunk-SXQZ5GTA.js} +6 -6
  128. package/dist/{chunk-RDKIYORS.js → chunk-SYZLS2JA.js} +1 -1
  129. package/dist/{chunk-4P3324KU.js → chunk-T7PVHIXI.js} +1 -1
  130. package/dist/{chunk-DVYIBJ3S.js → chunk-TQE6O2JA.js} +3 -3
  131. package/dist/{chunk-P7H2DXJB.js → chunk-UGGHQYDN.js} +10 -10
  132. package/dist/{chunk-EH2BNSG3.js → chunk-VAPSWR5Q.js} +9 -9
  133. package/dist/{chunk-LE5LWALR.js → chunk-VCMHBUKI.js} +1 -1
  134. package/dist/{chunk-NZ34BQKH.js → chunk-VQBEZNHC.js} +1 -1
  135. package/dist/chunk-VUIGU2LQ.js +23 -0
  136. package/dist/chunk-WBJ6KNUF.js +1 -0
  137. package/dist/{chunk-36VIGB6J.js → chunk-WDQI3FV6.js} +6 -6
  138. package/dist/{chunk-VX4COEWP.js → chunk-WMHZA4EO.js} +3 -3
  139. package/dist/chunk-WUAKIM2B.js +7 -0
  140. package/dist/{chunk-TE6R53YD.js → chunk-XWFLIGDQ.js} +1 -1
  141. package/dist/{chunk-XBHXGBJR.js → chunk-YCWALB3A.js} +1 -1
  142. package/dist/{chunk-4EBJO7ER.js → chunk-YDMXW2Q4.js} +11 -11
  143. package/dist/{chunk-H5NIW2KS.js → chunk-ZD36QKQS.js} +1 -1
  144. package/dist/{chunk-QRU55BUS.js → chunk-ZD56IH5K.js} +2 -2
  145. package/dist/{chunk-WOAMPTZI.js → chunk-ZS3TIQQ4.js} +14 -14
  146. package/dist/{chunk-4RGMRXYH.js → chunk-ZXVJL7MS.js} +1 -1
  147. package/dist/data/DataTable.js +1 -1
  148. package/dist/data/EntityList.js +1 -1
  149. package/dist/data/ListLoadError.js +1 -1
  150. package/dist/data/ResizableTable.js +1 -1
  151. package/dist/format/index.d.ts +1 -1
  152. package/dist/format/index.js +1 -1
  153. package/dist/forms/AlignmentGrid.js +1 -1
  154. package/dist/forms/BorderInput.js +1 -1
  155. package/dist/forms/BrandAssetEditor.js +1 -1
  156. package/dist/forms/Button.js +1 -1
  157. package/dist/forms/ColorPicker.js +1 -1
  158. package/dist/forms/ComposerAttachments.js +1 -1
  159. package/dist/forms/CornersInput.js +1 -1
  160. package/dist/forms/DateRangePicker.js +1 -1
  161. package/dist/forms/DisplayChips.js +1 -1
  162. package/dist/forms/FilePicker.js +1 -1
  163. package/dist/forms/IconButton.js +1 -1
  164. package/dist/forms/IconPicker.js +1 -1
  165. package/dist/forms/Input.d.ts +50 -2
  166. package/dist/forms/Input.js +1 -1
  167. package/dist/forms/InputNumber.js +1 -1
  168. package/dist/forms/LinkPicker.js +1 -1
  169. package/dist/forms/MediaLibrary.js +1 -1
  170. package/dist/forms/MediaUploadField.js +1 -1
  171. package/dist/forms/MediaUploadGrid.js +1 -1
  172. package/dist/forms/MediaUsedInList.js +1 -1
  173. package/dist/forms/NumericKeypad.js +1 -1
  174. package/dist/forms/PictureTiles.js +1 -1
  175. package/dist/forms/PositionInput.js +1 -1
  176. package/dist/forms/Segmented.js +1 -1
  177. package/dist/forms/Select.js +1 -1
  178. package/dist/forms/SidesInput.js +1 -1
  179. package/dist/forms/Slider.js +1 -1
  180. package/dist/forms/Snippet.js +1 -1
  181. package/dist/forms/SplitButton.js +1 -1
  182. package/dist/forms/TagInput.js +1 -1
  183. package/dist/forms/TextToolbar.js +1 -1
  184. package/dist/forms/WidthsBar.js +1 -1
  185. package/dist/forms/linkHref.js +1 -1
  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-meanings.d.ts +2 -2
  190. package/dist/icons/efficient-meanings.js +1 -1
  191. package/dist/icons/efficient.js +1 -1
  192. package/dist/icons/looks/map.js +1 -1
  193. package/dist/icons/payment.js +1 -1
  194. package/dist/icons/sets.js +1 -1
  195. package/dist/index.d.ts +5 -4
  196. package/dist/index.js +666 -667
  197. package/dist/map/index.js +3 -3
  198. package/dist/markup/index.d.ts +55 -11
  199. package/dist/markup/index.js +1 -1
  200. package/dist/motion/values.d.ts +75 -0
  201. package/dist/motion/values.js +1 -0
  202. package/dist/motion.css +26 -0
  203. package/dist/page-tabs/index.js +5 -5
  204. package/dist/shell/AppUpdateBanner.js +1 -1
  205. package/dist/shell/ColoredBadge.js +1 -1
  206. package/dist/shell/ContextMenu.js +1 -1
  207. package/dist/shell/DropdownMenu.js +1 -1
  208. package/dist/shell/EditableGrid.js +1 -1
  209. package/dist/shell/GlobalSearch.js +1 -1
  210. package/dist/shell/HelpCenter.js +1 -1
  211. package/dist/shell/IconRail.js +1 -1
  212. package/dist/shell/ImageLightbox.js +1 -1
  213. package/dist/shell/ItemCount.js +1 -1
  214. package/dist/shell/LanguageSelect.js +1 -1
  215. package/dist/shell/Markdown.js +1 -1
  216. package/dist/shell/PopupMenu.js +1 -1
  217. package/dist/shell/ResizeHandle.js +1 -1
  218. package/dist/shell/SearchableSelect.d.ts +11 -1
  219. package/dist/shell/SearchableSelect.js +1 -1
  220. package/dist/shell/SettingReset.js +1 -1
  221. package/dist/shell/SidebarLayout.js +1 -1
  222. package/dist/shell/SidebarNav.js +1 -1
  223. package/dist/shell/SortableList.js +1 -1
  224. package/dist/shell/StatusBadge.js +1 -1
  225. package/dist/shell/Tabs.js +1 -1
  226. package/dist/shell/Tooltip.js +1 -1
  227. package/dist/shell/TopNav.js +1 -1
  228. package/dist/shell/TransferProgress.js +1 -1
  229. package/dist/shell/Tree.js +1 -1
  230. package/dist/telemetry/index.js +1 -1
  231. package/dist/templates/AuthScreen.js +1 -1
  232. package/dist/templates/ChatTemplate.js +1 -1
  233. package/dist/templates/CheckoutTemplate.js +1 -1
  234. package/dist/templates/DashboardTemplate.js +1 -1
  235. package/dist/templates/DataTablePage.js +1 -1
  236. package/dist/templates/EmailTemplate.js +1 -1
  237. package/dist/templates/ErrorBoundary.d.ts +1 -1
  238. package/dist/templates/ErrorBoundary.js +1 -1
  239. package/dist/templates/FormLayoutPage.js +1 -1
  240. package/dist/templates/GalleryTemplate.js +1 -1
  241. package/dist/tokens/type.d.ts +3 -31
  242. package/dist/tokens/type.js +1 -1
  243. package/dist/ui/index.d.ts +2 -1
  244. package/dist/ui/index.js +1 -1
  245. package/dist/version.js +1 -1
  246. package/package.json +3 -2
  247. package/dist/Browser-KUFFOGYK.js +0 -43
  248. package/dist/Calculator-LENRW34X.js +0 -29
  249. package/dist/Sidebar-TU4QCKYJ.js +0 -44
  250. package/dist/chunk-3C5NKOVF.js +0 -1
  251. package/dist/chunk-4BCFBF3C.js +0 -9
  252. package/dist/chunk-4P57TIFK.js +0 -2
  253. package/dist/chunk-5DIGYJHD.js +0 -1
  254. package/dist/chunk-7LU3H72S.js +0 -7
  255. package/dist/chunk-7RP7QTRF.js +0 -12
  256. package/dist/chunk-CH3JQUDW.js +0 -8
  257. package/dist/chunk-DHKRXHJN.js +0 -1
  258. package/dist/chunk-EOVXFXVV.js +0 -2
  259. package/dist/chunk-EXLHFM3V.js +0 -6
  260. package/dist/chunk-GOXQJCXG.js +0 -28
  261. package/dist/chunk-H475WZPF.js +0 -23
  262. package/dist/chunk-JPOYR5AO.js +0 -7
  263. package/dist/chunk-MAMWQCJ6.js +0 -2
  264. package/dist/chunk-MHPFBVDD.js +0 -8
  265. package/dist/chunk-NWC6YCIJ.js +0 -11
  266. package/dist/chunk-PJPK2ADX.js +0 -1
  267. package/dist/chunk-PVDZG2U2.js +0 -14
  268. package/dist/chunk-S5DYR75A.js +0 -29
  269. package/dist/chunk-TNJ2VCH4.js +0 -8
  270. package/dist/chunk-USWA6YNZ.js +0 -3
  271. /package/dist/{chunk-RKLZDVAO.js → chunk-2F5SLLBJ.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-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__ */
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__ */
4
4
  return p(m,{children:e.map(e=>{if(null==e.iconNode||e.dot)return null;let r=t.get(e.key);return r||(r=document.createElement("span"),r.className=n,t.set(e.key,r)),u(e.iconNode,r,e.key)})})}function ae({leave:e}){/* @__PURE__ */
5
5
  return p(n,e?{name:"collapse","aria-hidden":"true",className:"h-4 w-4",strokeWidth:2}:{name:"expand","aria-hidden":"true",className:"h-4 w-4",strokeWidth:2})}function le(){const[e,t]=l(null);return{highlightKey:e,pointAt:i(e=>{const n=()=>t(e),r=()=>t(t=>t===e?null:t);return{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r}},[])}}var se=3e3,ie=e=>!!e?.pending&&3e3,ce=e=>`${e.kind}:${e.id}`,ue=e=>("located"===e.placement||"approximate"===e.placement)&&null!=e.lat&&null!=e.lng;function de(e){switch(e){case"located":return null;case"approximate":return"Approximate: only the suburb or postcode matched";case"pending":return"Locating";case"not_found":return"Not on the map: address not found";case"failed":return"Not on the map: the map service could not be reached";case"no_address":return"Not on the map: no city or postcode"}}var pe={importer:{label:"Importer",tone:"bg-sky-600 text-white"},dealer:{label:"Dealer",tone:"bg-purple-600 text-white"},retail:{label:"Retail",tone:"bg-green-600 text-white"},supplier:{label:"Supplier",tone:"bg-sky-600 text-white"},delivery_location:{label:"Delivery location",tone:"bg-amber-600 text-white"},warehouse:{label:"Warehouse",tone:"bg-amber-600 text-white"}},me=["importer","dealer","retail","supplier","delivery_location","warehouse"];function he(e){return"supplier"===e.kind?"supplier":"customer"===e.kind?e.category||"importer":e.kind}var ge=(e,t=pe)=>t[e]?.tone??"bg-gray-700 text-white",fe=(e,t=pe)=>t[e]?.label??e,be=(e,t)=>ge(he(e),t);function ye(e,t,n=pe){return null!=t?String(t):(n[he(e)]?.label??"").charAt(0).toUpperCase()}var xe=["delivery_location","warehouse"];function ke(e,t=xe){const n=/* @__PURE__ */new Map;let r=0;for(const o of e)t.includes(o.kind)&&n.set(ce(o),++r);return n}function ve(e){const t={onMap:0,approximate:0,pending:0,off:0};for(const n of e)ue(n)?(t.onMap+=1,"approximate"===n.placement&&(t.approximate+=1)):"pending"===n.placement?t.pending+=1:t.off+=1;return t}function we(e){const t=[`${e.onMap} on the map`];return e.approximate&&t.push(`${e.approximate} approximate`),e.pending&&t.push(`${e.pending} locating`),e.off&&t.push(`${e.off} not on the map`),t.join(" · ")}function Ne(e){const t=[...new Set(e.filter(ue).map(he))];return[...me.filter(e=>t.includes(e)),...t.filter(e=>!me.includes(e))]}function Me(e,t){return e.filter(e=>!ue(e)&&"pending"!==e.placement).map(e=>{const n=t?.get(ce(e)),r=de(e.placement)?.replace(/^Not on the map: /,"")??"";return{key:ce(e),text:`${null!=n?`${n}. `:""}${e.label}: ${r}`}})}function Ce({categories:e,palette:t=pe,floating:n=!0}){return e.length<2?null:/* @__PURE__ */p("div",{className:(n?"absolute left-3 top-3 z-10 ":"")+"flex flex-wrap gap-x-3 gap-y-1 rounded-lg border border-line bg-surface px-3 py-2 text-xs text-gray-600 shadow-sm",children:e.map(e=>/* @__PURE__ */d("span",{className:"inline-flex items-center gap-2",children:[
6
6
  /* @__PURE__ */p("span",{"aria-hidden":!0,className:`h-2.5 w-2.5 rounded-full ${ge(e,t)}`}),fe(e,t)]},e))})}function Le({point:e,number:r,onOpen:a,onClose:l,palette:s=pe}){const i=de(e.placement),c=he(e),u=o().map;/* @__PURE__ */
@@ -18,4 +18,4 @@ return d("section",{"aria-label":u,className:`flex min-w-0 flex-col ${g}`,childr
18
18
  /* @__PURE__ */d("div",{className:"absolute left-3 top-3 z-10 flex max-w-[70%] flex-col items-start gap-2",children:[
19
19
  /* @__PURE__ */p(Ce,{categories:j,palette:m,floating:!1}),y&&/* @__PURE__ */d("div",{className:"flex items-center gap-2 rounded-lg border border-line bg-surface px-3 min-h-8 py-1 text-xs text-gray-600 shadow-sm",children:["Couldn’t load the locations.",
20
20
  /* @__PURE__ */p("button",{type:"button",onClick:()=>{x()},className:"font-medium text-blue-600 hover:text-blue-800 hover:underline",children:"Try again"})]}),!y&&($>0||L.length>0)&&/* @__PURE__ */d("div",{className:"max-w-full space-y-0.5 rounded-lg border border-line bg-surface px-3 py-2 text-xs shadow-sm","aria-live":"polite",children:[$>0&&/* @__PURE__ */d("p",{className:"flex items-center gap-2 text-ink-faint",children:[
21
- /* @__PURE__ */p(r,{}),"Locating ",$," address",1===$?"":"es"]}),L.slice(0,3).map(e=>/* @__PURE__ */p("p",{className:"truncate text-amber-700",title:e.text,children:e.text},e.key)),L.length>3&&/* @__PURE__ */d("p",{className:"text-gray-500",children:["+",L.length-3," more not on the map"]})]})]}),E&&/* @__PURE__ */p(Le,{point:E,number:M.get(ce(E))??null,onOpen:S,onClose:()=>w(null),palette:m})]})]})}export{w as CARD_MIN_MAP_WIDTH,g as COMPACT_SHOW,re as EntityMap,$e as LocationsMap,L as MAPLIBRE_WORKER_FILE,A as MAP_APART_PX,pe as MAP_CATEGORIES,y as MAP_CSP_SOURCES,U as MAP_LOOKS,z as MAP_STOP_PX,x as MAP_STYLE_URLS,B as MAP_TARGET_PX,b as MAP_TILE_ORIGIN,Ce as MapLegend,se as PENDING_POLL_MS,xe as SECONDARY_KINDS,Le as SelectedCard,M as cardMaxHeight,fe as categoryLabel,ge as categoryTone,f as foldAttributionOnce,ue as isOnMap,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};
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};
@@ -72,6 +72,7 @@
72
72
  * [words]{sub} subscript
73
73
  * [words]{color=name} a theme colour, by NAME ({@link isColorName})
74
74
  * [words]{color=#rrggbb} any colour, six hex digits ({@link isColorValue})
75
+ * [words]{style=id} one of the site's text styles ({@link isStyleId})
75
76
  *
76
77
  * THE SPANS AND THE NUMBERED LINE (plan step E1, approved by GG 2026-10-06)
77
78
  * are the final text box's marks. One shape for all four, so one reading rule:
@@ -144,10 +145,10 @@
144
145
  * {@link MARKUP_TOOLS} offers yet. A colour carries a name, so it is written
145
146
  * by {@link applyColor}, not here. */
146
147
  type MarkStyle = 'bold' | 'italic' | 'strike' | 'code' | 'highlight' | 'quiet' | 'link' | 'bullet' | 'number' | 'quote' | 'clear' | 'underline' | 'sup' | 'sub';
147
- /** What a span means: `[words]{underline}`, `{sup}`, `{sub}` or
148
- * `{color=name}`. Only the tree reads these; {@link InlineKind} is the flat
149
- * reading's, which never makes one. */
150
- type SpanKind = 'underline' | 'sup' | 'sub' | 'color';
148
+ /** What a span means: `[words]{underline}`, `{sup}`, `{sub}`,
149
+ * `{color=name}` or `{style=id}`. Only the tree reads these;
150
+ * {@link InlineKind} is the flat reading's, which never makes one. */
151
+ type SpanKind = 'underline' | 'sup' | 'sub' | 'color' | 'style';
151
152
  /** What a parsed run MEANS. `accent` is the storefront/campaign brand colour —
152
153
  * the legacy `*phrase*` — and `highlight` is its standard-markdown successor;
153
154
  * both resolve to the same paint, which is what makes converting stored copy
@@ -166,13 +167,39 @@ declare function isColorName(name: string): boolean;
166
167
  * WIDENS E1 (GG 2026-10-06): the final design draws "Any color", and a
167
168
  * feature is never cut to fit. A hex does not follow the theme; a name does. */
168
169
  declare function isColorValue(value: string): boolean;
170
+ /** The colour slots, in the colour window's order. A slot names a colour of
171
+ * the theme of the SECTION the words sit in, so the words follow that
172
+ * section's theme (Lewis 2026-10-29, U1). `main` is what was called accent
173
+ * ("Main吧"); `muted` is the dim text colour (U2). */
174
+ declare const COLOR_SLOTS: readonly ["main", "text", "background", "muted"];
175
+ type ColorSlot = (typeof COLOR_SLOTS)[number];
176
+ /** What a saved colour value MEANS: a slot of the section's theme, or a fixed
177
+ * hex that follows no theme. */
178
+ type ColorRole = {
179
+ kind: 'slot';
180
+ slot: ColorSlot;
181
+ } | {
182
+ kind: 'hex';
183
+ hex: string;
184
+ };
185
+ /**
186
+ * The ONE reading of a saved colour value ({@link COLOR_SLOTS} or a 6-digit
187
+ * hex), for every renderer and every panel: each maps the role to its own
188
+ * paint, and none keeps its own list of names. Null for anything else — an
189
+ * old name (`accent`, `labels`), a 3-digit hex, a typo — which a renderer
190
+ * draws as plain words.
191
+ */
192
+ declare function colorRole(value: string): ColorRole | null;
193
+ /** A site text style's id as a span saves it — `heading-1` … `body-7`, the
194
+ * ids the Styles list gives them: lowercase letters, then `-` and digits. */
195
+ declare function isStyleId(id: string): boolean;
169
196
  /**
170
197
  * The words a press WRITES when nothing is selected — `**bold text**`, left
171
198
  * selected so the next keystroke replaces it. English unless the caller of
172
199
  * {@link applyMark} hands in its own (0.95.0: a host in another language).
173
200
  * They are words put in the box, not rules: nothing here changes what parses.
174
201
  */
175
- type MarkPlaceholders = Record<'bold' | 'italic' | 'strike' | 'code' | 'highlight' | 'quiet' | 'link', string> & Partial<Record<'underline' | 'sup' | 'sub' | 'color', string>>;
202
+ type MarkPlaceholders = Record<'bold' | 'italic' | 'strike' | 'code' | 'highlight' | 'quiet' | 'link', string> & Partial<Record<'underline' | 'sup' | 'sub' | 'color' | 'style', string>>;
176
203
  declare const MARK_PLACEHOLDERS: MarkPlaceholders;
177
204
  interface WrapResult {
178
205
  text: string;
@@ -432,12 +459,14 @@ interface MarkupText {
432
459
  /** A delimited run. `open` and `close` are the delimiters that were actually
433
460
  * saved — `#` for a legacy campaign bold, `**` for the standard one, `[` and
434
461
  * `]{sup}` for a span — so the tree writes back the same bytes it was read
435
- * from. `color` is the theme colour's name, on a `color` span only. */
462
+ * from. `color` is the theme colour's name, on a `color` span only; `style`
463
+ * the text style's id, on a `style` span only. */
436
464
  interface MarkupRun {
437
465
  kind: InlineRule['kind'] | SpanKind;
438
466
  open: string;
439
467
  close: string;
440
468
  color?: string;
469
+ style?: string;
441
470
  children: MarkupNode[];
442
471
  }
443
472
  /** `[words](href)`. Only made when {@link isSafeLinkHref} passes. */
@@ -495,7 +524,8 @@ declare function serializeMarkup(lines: readonly MarkupLine[]): string;
495
524
  *
496
525
  * `open` and `close` are the delimiters that were saved (`#` for a legacy
497
526
  * campaign bold), or, for a run made in the editor, the toolbar's own fence.
498
- * A link's `close` is `](href)`, a span's `]{sup}` or `]{color=name}`.
527
+ * A link's `close` is `](href)`, a span's `]{sup}`, `]{color=name}` or
528
+ * `]{style=id}`.
499
529
  */
500
530
  interface MarkSpan {
501
531
  id: number;
@@ -504,16 +534,18 @@ interface MarkSpan {
504
534
  close: string;
505
535
  href?: string;
506
536
  color?: string;
537
+ style?: string;
507
538
  }
508
539
  /**
509
540
  * A NEW run, as the toolbar writes it: `**` for bold, `_` for italic, and so on
510
541
  * ({@link applyMark}'s own fences), a link to `value`, or a colour span of
511
- * `value` — a theme name or a 6-digit hex, saved lowercase ({@link isColorValue}). Null for a style that writes no run (a line
512
- * prefix, clear) and for a link or colour with no usable value. A paste filter
542
+ * `value` — a theme name or a 6-digit hex, saved lowercase ({@link isColorValue}) —
543
+ * or a text-style span of `value` ({@link isStyleId}). Null for a style that writes no run (a line
544
+ * prefix, clear) and for a link, colour or text style with no usable value. A paste filter
513
545
  * or an editor making a run asks here, so no delimiter is spelled outside this
514
546
  * module (E8).
515
547
  */
516
- declare function spanFor(id: number, style: MarkStyle | 'color', value?: string): MarkSpan | null;
548
+ declare function spanFor(id: number, style: MarkStyle | 'color' | 'style', value?: string): MarkSpan | null;
517
549
  /** One character of the words — never a delimiter — with the runs it sits in,
518
550
  * outside first, and its offset in the saved string. */
519
551
  interface MarkedChar {
@@ -643,6 +675,18 @@ declare function colorOver(text: string, start: number, end: number, name: strin
643
675
  * selected, the word before the caret on its line — or null. What the colour
644
676
  * window draws as chosen, and the colour under the A. */
645
677
  declare function colorIn(text: string, start: number, end: number, rules?: readonly InlineRule[]): string | null;
678
+ /**
679
+ * Put the site text style `id` on the WORDS in `text[start:end]`
680
+ * (`[words]{style=id}`, Lewis 2026-10-29, B), as {@link colorOver} puts a
681
+ * colour: nested with the runs it meets, a style the words already wear
682
+ * replaced, `null` taking it off. An id {@link isStyleId} refuses, or nothing
683
+ * selected, changes nothing.
684
+ */
685
+ declare function styleOver(text: string, start: number, end: number, id: string | null, rules?: readonly InlineRule[]): WrapResult;
686
+ /** The ONE text style every word in `text[start:end]` wears — read the way
687
+ * {@link colorIn} reads a colour — or null. What the style list draws as
688
+ * chosen. */
689
+ declare function styleIn(text: string, start: number, end: number, rules?: readonly InlineRule[]): string | null;
646
690
  /**
647
691
  * Make every line `text[start:end]` touches (the caret's line, with nothing
648
692
  * selected) a bulleted list, a numbered list, or — `null` — no list. The
@@ -656,4 +700,4 @@ declare function setList(text: string, start: number, end: number, kind: 'bullet
656
700
  * kind of list line, else null — what the list buttons draw as pressed. */
657
701
  declare function listIn(text: string, start: number, end: number, rules?: readonly InlineRule[]): 'bullet' | 'number' | null;
658
702
 
659
- export { CAMPAIGN_MARKUP, COPY_FIELD_TOOLS, type InlineKind, type InlineRule, type InlineToken, type LinkSpan, MARKUP_TOOLS, MARK_NAMES, MARK_PLACEHOLDERS, type MarkPlaceholders, type MarkSpan, type MarkStyle, type MarkedChar, type MarkedLine, type MarkupLine, type MarkupLink, type MarkupNode, type MarkupRun, type MarkupText, type MarkupTool, RETIRED_MARKS, STANDARD_MARKUP, STOREFRONT_MARKUP, type SpanKind, type WrapResult, applyColor, applyMark, clearMarks, clearStyle, colorIn, colorOver, findLink, isColorName, isColorValue, isSafeLinkHref, linkOver, listIn, markedAt, markedLines, marksIn, markupTools, parseMarkup, removeLink, sameMarks, serializeMarkup, setList, spanFor, stripInline, toggleMark, tokenizeInline, unlinkAt, writeLink, writeMarkedLines };
703
+ export { CAMPAIGN_MARKUP, COLOR_SLOTS, COPY_FIELD_TOOLS, type ColorRole, type ColorSlot, type InlineKind, type InlineRule, type InlineToken, type LinkSpan, MARKUP_TOOLS, MARK_NAMES, MARK_PLACEHOLDERS, type MarkPlaceholders, type MarkSpan, type MarkStyle, type MarkedChar, type MarkedLine, type MarkupLine, type MarkupLink, type MarkupNode, type MarkupRun, type MarkupText, type MarkupTool, RETIRED_MARKS, STANDARD_MARKUP, STOREFRONT_MARKUP, type SpanKind, type WrapResult, applyColor, applyMark, clearMarks, clearStyle, colorIn, colorOver, colorRole, findLink, isColorName, isColorValue, isSafeLinkHref, isStyleId, linkOver, listIn, markedAt, markedLines, marksIn, markupTools, parseMarkup, removeLink, sameMarks, serializeMarkup, setList, spanFor, stripInline, styleIn, styleOver, toggleMark, tokenizeInline, unlinkAt, writeLink, writeMarkedLines };
@@ -1 +1 @@
1
- export{CAMPAIGN_MARKUP,COPY_FIELD_TOOLS,MARKUP_TOOLS,MARK_NAMES,MARK_PLACEHOLDERS,RETIRED_MARKS,STANDARD_MARKUP,STOREFRONT_MARKUP,applyColor,applyMark,clearMarks,clearStyle,colorIn,colorOver,findLink,isColorName,isColorValue,isSafeLinkHref,linkOver,listIn,markedAt,markedLines,marksIn,markupTools,parseMarkup,removeLink,sameMarks,serializeMarkup,setList,spanFor,stripInline,toggleMark,tokenizeInline,unlinkAt,writeLink,writeMarkedLines}from"../chunk-PJPK2ADX.js";
1
+ export{CAMPAIGN_MARKUP,COLOR_SLOTS,COPY_FIELD_TOOLS,MARKUP_TOOLS,MARK_NAMES,MARK_PLACEHOLDERS,RETIRED_MARKS,STANDARD_MARKUP,STOREFRONT_MARKUP,applyColor,applyMark,clearMarks,clearStyle,colorIn,colorOver,colorRole,findLink,isColorName,isColorValue,isSafeLinkHref,isStyleId,linkOver,listIn,markedAt,markedLines,marksIn,markupTools,parseMarkup,removeLink,sameMarks,serializeMarkup,setList,spanFor,stripInline,styleIn,styleOver,toggleMark,tokenizeInline,unlinkAt,writeLink,writeMarkedLines}from"../chunk-Q5Z3KHT2.js";
@@ -0,0 +1,75 @@
1
+ /**
2
+ * The page motion values — the numbers behind every animation a website page
3
+ * plays (a block arriving, a card on hover, a row that loops, a number counting
4
+ * up), not the editor's chrome (that is `MOTION_DURATIONS`, 120 / 160 ms).
5
+ * `src/motion.css` declares the same defaults as custom properties;
6
+ * `tests/motionValues.test.ts` holds the two to each other.
7
+ *
8
+ * Owner rulings, 2026-10-29 (the animation plan):
9
+ *
10
+ * groups the Animation tab, like Wix: Entrance · Hover · Scroll · Loop ·
11
+ * Click · Mouse · WebGL · Count up.
12
+ * timing every timed animation has a Duration and a Delay in SECONDS, a
13
+ * slider each, like Wix. No Short / Normal / Long steps (that
14
+ * scale, 2026-10-27, is retired). Defaults are today's times, so
15
+ * a page with no choice of its own does not change. Loop runs to
16
+ * 120 s, past Wix's 50 s: inovit.com's journal bar stores 80 s.
17
+ * rotate a wheel turns one spoke on hover: 360 / its spoke count, 72
18
+ * degrees when the count is unknown.
19
+ *
20
+ * Scroll, Mouse and WebGL follow the visitor (the scroll position, the
21
+ * pointer), so they have no Duration or Delay.
22
+ *
23
+ * A leaf that imports nothing: a published page reads it through the `format`
24
+ * entry. No utility is written out in this file: the brand stylesheet is
25
+ * compiled by scanning the repository, so a class named here would ship in it.
26
+ */
27
+ /** The Animation tab's groups, in the order it lists them. */
28
+ declare const MOTION_GROUPS: readonly ["entrance", "hover", "scroll", "loop", "click", "mouse", "webgl", "countUp"];
29
+ type MotionGroup = (typeof MOTION_GROUPS)[number];
30
+ /** One slider: its resting value, its ends and its step, in seconds. */
31
+ interface MotionRange {
32
+ readonly default: number;
33
+ readonly min: number;
34
+ readonly max: number;
35
+ readonly step: number;
36
+ }
37
+ interface MotionTiming {
38
+ readonly duration: MotionRange;
39
+ readonly delay: MotionRange;
40
+ }
41
+ /** The groups that play for a time of their own. */
42
+ type TimedMotionGroup = 'entrance' | 'hover' | 'loop' | 'click' | 'countUp';
43
+ /** Duration and Delay of every timed group, in seconds. */
44
+ declare const MOTION_TIMING: Readonly<Record<TimedMotionGroup, MotionTiming>>;
45
+ /**
46
+ * A stored Duration or Delay, read into its range and onto its step (a half
47
+ * step rounds up). A number or a plain decimal string counts; anything else is
48
+ * the default.
49
+ */
50
+ declare function motionSeconds(group: TimedMotionGroup, kind: keyof MotionTiming, stored: unknown): number;
51
+ /**
52
+ * The easing list. `arrive` slows to a stop (Entrance, Click); `loop` keeps an
53
+ * even speed; `media` is the card picture's curve on hover.
54
+ */
55
+ declare const MOTION_EASING: {
56
+ readonly arrive: "cubic-bezier(0.22, 1, 0.36, 1)";
57
+ readonly loop: "linear";
58
+ readonly media: "cubic-bezier(0.2, 0.6, 0.2, 1)";
59
+ };
60
+ type MotionEasing = keyof typeof MOTION_EASING;
61
+ /** How far a hover moves: Zoom's scale, Lift's rise in px, Rotate's fallback. */
62
+ declare const HOVER_MOTION: {
63
+ readonly zoom: 1.04;
64
+ readonly liftPx: 3;
65
+ readonly rotateFallbackDeg: 72;
66
+ };
67
+ /** Rotate on hover turns a wheel by one spoke: 360 / spokes, or 72 degrees. */
68
+ declare function rotateDegrees(spokes: number | null | undefined): number;
69
+ /**
70
+ * The defaults as the custom properties `motion.css` declares. The test holds
71
+ * the stylesheet to this list both ways; a page reads the stylesheet, not this.
72
+ */
73
+ declare function motionCustomProperties(): Record<string, string>;
74
+
75
+ export { HOVER_MOTION, MOTION_EASING, MOTION_GROUPS, MOTION_TIMING, type MotionEasing, type MotionGroup, type MotionRange, type MotionTiming, type TimedMotionGroup, motionCustomProperties, motionSeconds, rotateDegrees };
@@ -0,0 +1 @@
1
+ export{HOVER_MOTION,MOTION_EASING,MOTION_GROUPS,MOTION_TIMING,motionCustomProperties,motionSeconds,rotateDegrees}from"../chunk-AIJ3G6BD.js";
@@ -0,0 +1,26 @@
1
+ /*
2
+ * Page motion — the animations a website page plays (efficient-shell/motion.css).
3
+ *
4
+ * The defaults behind every Duration, Delay, easing and hover distance, the
5
+ * same numbers as `src/motion/values.ts` (tests/motionValues.test.ts holds the
6
+ * two together). A page's own choice is written inline over these.
7
+ * The editor chrome keeps its own `--motion-fast` / `--motion-base` (ui.css).
8
+ */
9
+ :root {
10
+ --page-motion-entrance-duration: 0.6s;
11
+ --page-motion-entrance-delay: 0s;
12
+ --page-motion-hover-duration: 0.7s;
13
+ --page-motion-hover-delay: 0s;
14
+ --page-motion-loop-duration: 50s;
15
+ --page-motion-loop-delay: 0s;
16
+ --page-motion-click-duration: 0.3s;
17
+ --page-motion-click-delay: 0s;
18
+ --page-motion-count-up-duration: 1.4s;
19
+ --page-motion-count-up-delay: 0s;
20
+ --page-ease-arrive: cubic-bezier(0.22, 1, 0.36, 1);
21
+ --page-ease-loop: linear;
22
+ --page-ease-media: cubic-bezier(0.2, 0.6, 0.2, 1);
23
+ --page-hover-zoom: 1.04;
24
+ --page-hover-lift: 3px;
25
+ --page-hover-rotate: 72deg;
26
+ }
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import{TabStrip as e}from"../chunk-GOXQJCXG.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-OTITQ3IH.js";import"../chunk-5QFPTDQF.js";import"../chunk-URHGHXDN.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 T=(e,t)=>e.filter(e=>e!==t);function F(e,t){return[...t.map(t=>e.find(e=>e.key===t)).filter(e=>Boolean(e)),...e.filter(e=>!t.includes(e.key))]}function 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=C(c,c.closing):c.closing===t.key&&(c={...c,closing:null}),function(e,t){let n=e;for(;n.tabs.length>t;){const e=n.tabs.filter(e=>!e.pinned&&e.key!==n.activeKey&&!n.dirty.includes(e.key)&&e.key!==n.closing).sort((e,t)=>e.lastActive-t.lastActive);if(0===e.length)break;n=C(n,e[0].key)}return n}(c,n)}function A(e){let t={...e,activeKey:null};return t.closing&&(t=C(t,t.closing)),t}function C(e,t){return{...e,tabs:e.tabs.filter(e=>e.key!==t),mounted:T(e.mounted,t),dirty:T(e.dirty,t),activeKey:e.activeKey===t?null:e.activeKey,closing:e.closing===t?null:e.closing}}function L(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=C(n,e);return t.closing?function(e,t){return{...e,closing:t}}(n,t.closing):n}case"title":return function(e,t,n){const r=e.tabs.find(e=>e.key===t);return!r||!n||r.title===n&&"page"===r.titleFrom?e:{...e,tabs:e.tabs.map(e=>e.key===t?{...e,title:n,titleFrom:"page"}:e)}}(e,t.key,t.title);case"dirty":return function(e,t,n){return n===e.dirty.includes(t)?e:{...e,dirty:n?[...e.dirty,t]:T(e.dirty,t)}}(e,t.key,t.dirty)}}var O=e=>`${e.pathname}${e.search}`;function w(e){const t=e.indexOf("#"),n=t>=0?e.slice(t):"",r=t>=0?e.slice(0,t):e,i=r.indexOf("?");return{pathname:i>=0?r.slice(0,i):r,search:i>=0?r.slice(i):"",hash:n}}function D({children:e,resolve:c,pinned:s=[],storageKey:l,maxTabs:k=12,enabled:v=!0,confirmDiscard:g}){const K=m(),N=h(),T=i().pageTabs,C=y(),D=a(c);D.current=c;const M=d(e=>{const t=D.current(e);return t?{key:t.key??e.pathname,path:O(e),title:t.title}:null},[]),{language:E}=t(),[J,Q]=p(L,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)),E);let t=function(e,t){const n=t.map(e=>e.key);let r=e.tabs.map(e=>({...e,pinned:n.includes(e.key)}));for(const e of t)r.some(t=>t.key===e.key)||(r=[...r,{key:e.key,path:e.path,title:e.title,titleFrom:"route",pinned:!0,lastActive:0}]);return{...e,tabs:F(r,n)}}({tabs:[],activeKey:null,mounted:[],dirty:[],closing:null,clock:0,tabs:e},s.map(e=>M(w(e))).filter(e=>Boolean(e)));const n=v?M(K):null;return t=n?I(t,n,k):A(t),t}),x=a(J);x.current=J;const B=a(/* @__PURE__ */new Map),G=v?M(K):null,S=G?.key??null;r(()=>{if(!v)return;const e=M(K);e?(B.current.set(e.key,K),Q({type:"visit",entry:e,maxTabs:k})):Q({type:"transient"})},[K,v,k,M]),o(()=>{const e=new Set(J.tabs.map(e=>e.key));for(const t of B.current.keys())e.has(t)||B.current.delete(t)},[J.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)}(J,E),[J,E]);o(()=>{if(l)try{localStorage.setItem(l,P)}catch{}},[P,l]);const U=J.dirty.length>0;o(()=>{if(!U)return;const e=e=>{e.preventDefault(),e.returnValue=""};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[U]);const W=a(/* @__PURE__ */new Map),X=d((e,t)=>{let n=W.current.get(e);return void 0===n&&(n=W.current.size,W.current.set(e,n)),`${C}-page-${t}-${n}`},[C]),H=d(e=>g?g(e):n({title:T.discardTitle,message:1===e.length?T.discardOne:T.discardCount?.(e.length)??`${e.length} ${T.discardMany}`,confirmLabel:T.discardConfirm,cancelLabel:T.keepEditing,variant:"warning"}),[g,T]),$=d(()=>{const e=x.current;return e.tabs.find(e=>e.pinned)?.path??"/"},[]),R=d((e,t,n)=>{const r=x.current,i=r.activeKey;if(!i||!e.includes(i))return void Q({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??$()}Q({type:"close",keys:e.filter(e=>e!==i),closing:i}),N(c)},[N,$]),Z=d(async(e,t={})=>{const n=x.current.tabs.find(t=>t.key===e);return!n||n.pinned?(t.to&&N(t.to),!1):!(!t.force&&x.current.dirty.includes(e)&&!await H([n]))&&(!!x.current.tabs.some(t=>t.key===e)&&(R([e],t.to),!0))},[H,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)}(x.current,e,t);const r=x.current.tabs.filter(e=>n.includes(e.key)&&x.current.dirty.includes(e.key));r.length&&!await H(r)&&(n=n.filter(e=>!r.some(t=>t.key===e)));const i=new Set(x.current.tabs.map(e=>e.key));n=n.filter(e=>i.has(e)),n.length&&R(n,void 0,"all"===e?null:t)},[H,R]),Y=d(e=>{const t=x.current.tabs.find(t=>t.key===e);t&&e!==x.current.activeKey&&N(t.path)},[N]),z=d((e,t)=>Q({type:"title",key:e,title:t}),[]),q=d((e,t)=>Q({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=>B.current.get(e),[]),ie=u(()=>v?J.tabs.filter(e=>e.key!==J.closing):[],[v,J.tabs,J.closing]),ce=u(()=>({enabled:v,state:J,currentKey:S,resolve:c,keyFor:ne,locationFor:re,idFor:X,activate:Y,close:Z,closeMany:V,setTitle:z,setDirty:q,copies:_,setCopy:te,visibleTabs:ie}),[v,J,S,c,ne,re,X,Y,Z,V,z,q,_,te,ie]);/* @__PURE__ */
3
- return b(j.Provider,{value:ce,children:e})}var M=c.Activity,E=Boolean(M);function J({active:e,children:t}){return M?/* @__PURE__ */b(M,{mode:e?"visible":"hidden",children:t}):/* @__PURE__ */b(v,{children:t})}var Q=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(J,{active:t,children:i(n)})})})},(e,t)=>e.active===t.active&&e.location===t.location&&e.className===t.className&&e.panelId===t.panelId&&e.tabId===t.tabId&&(!t.active||e.render===t.render)),x="\0transient";function B({children:e,frameClassName:t}){const n=k(j),r=m();if(!n||!n.enabled)/* @__PURE__ */
5
- return b("div",{className:t,children:e(r)},x);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(Q,{tabKey:n,active:i,location:a,render:e,className:t,panelId:l(n,"panel"),tabId:l(n,"tab")},n):null}),!c&&/* @__PURE__ */b(Q,{tabKey:x,active:!0,location:r,render:e,className:t},x)]})}function G({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 S={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)}:S}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 X(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{N as DEFAULT_MAX_TABS,E as PAGE_TABS_PAUSE_HIDDEN,G as PageTabBar,B as PageTabsOutlet,D as PageTabsProvider,w as parseTabPath,U as usePageTab,X as usePageTabCopy,H as usePageTabDirty,W as usePageTabTitle,P as usePageTabs};
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};
@@ -1,2 +1,2 @@
1
1
  "use client";
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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{ContextMenu,useContextMenu}from"../chunk-DRUQH4ZE.js";import"../chunk-CIHR5ZKF.js";import"../chunk-OTITQ3IH.js";import"../chunk-5QFPTDQF.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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{DropdownMenu as default}from"../chunk-JPOYR5AO.js";import"../chunk-CIHR5ZKF.js";import"../chunk-CDAJKLGL.js";import"../chunk-OTITQ3IH.js";import"../chunk-5QFPTDQF.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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{HelpCenter as default}from"../chunk-QWCEKHAP.js";import"../chunk-RZQGPWSN.js";import"../chunk-UJUTS6LJ.js";import"../chunk-PJPK2ADX.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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
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-CDAJKLGL.js";import"../chunk-FZM3ZPW3.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";
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";
@@ -1 +1 @@
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
+ 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,2 +1,2 @@
1
1
  "use client";
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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{Markdown as default,plainCell,tableToCsv}from"../chunk-RZQGPWSN.js";import"../chunk-UJUTS6LJ.js";import"../chunk-PJPK2ADX.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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{MenuCheckMark,MenuIcon,MenuSemanticsContext,PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,itemLook,menuTextRowStyle}from"../chunk-OTITQ3IH.js";import"../chunk-5QFPTDQF.js";import"../chunk-URHGHXDN.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";
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";
@@ -1,2 +1,2 @@
1
1
  "use client";
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";
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";