@macrostrat/map-interface 1.2.4 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/index.js +10 -10
  3. package/dist/cjs/{context-panel.3061a63e.js → map-interface.0e252a74.js} +3 -3
  4. package/dist/cjs/map-interface.0e252a74.js.map +1 -0
  5. package/dist/cjs/{tile-extent.06a4b2ed.js → map-interface.175c4635.js} +1 -1
  6. package/dist/cjs/{tile-extent.06a4b2ed.js.map → map-interface.175c4635.js.map} +1 -1
  7. package/dist/cjs/{map-page.1e1970d8.js → map-interface.17e81e8a.js} +14 -13
  8. package/dist/cjs/map-interface.17e81e8a.js.map +1 -0
  9. package/dist/cjs/{main.module.13eb33f8.css → map-interface.1b386e07.css} +1 -1
  10. package/dist/cjs/{main.module.13eb33f8.css.map → map-interface.1b386e07.css.map} +1 -1
  11. package/dist/cjs/{header.af864bde.js → map-interface.1d19056e.js} +4 -4
  12. package/dist/cjs/map-interface.1d19056e.js.map +1 -0
  13. package/dist/cjs/{main.module.becc2fe7.css → map-interface.26497065.css} +1 -1
  14. package/dist/cjs/{main.module.becc2fe7.css.map → map-interface.26497065.css.map} +1 -1
  15. package/dist/cjs/{main.module.a3a78b0d.js → map-interface.31742bd3.js} +1 -1
  16. package/dist/cjs/{main.module.a3a78b0d.js.map → map-interface.31742bd3.js.map} +1 -1
  17. package/dist/cjs/{expansion-panel.ef757efe.js → map-interface.354aaa39.js} +4 -4
  18. package/dist/cjs/map-interface.354aaa39.js.map +1 -0
  19. package/dist/cjs/{location-panel.e33becf0.js → map-interface.3934d6d6.js} +5 -5
  20. package/dist/cjs/{location-panel.e33becf0.js.map → map-interface.3934d6d6.js.map} +1 -1
  21. package/dist/cjs/{main.module.f57e27f2.css → map-interface.4a401c1f.css} +16 -5
  22. package/dist/cjs/map-interface.4a401c1f.css.map +1 -0
  23. package/dist/cjs/{xray.a23f8660.js → map-interface.4c5addca.js} +2 -2
  24. package/dist/cjs/map-interface.4c5addca.js.map +1 -0
  25. package/dist/cjs/{helpers.0f72ddaf.js → map-interface.5813e876.js} +22 -4
  26. package/dist/cjs/map-interface.5813e876.js.map +1 -0
  27. package/dist/cjs/{dev.e6613cda.js → map-interface.5cea0ff4.js} +5 -5
  28. package/dist/cjs/{dev.e6613cda.js.map → map-interface.5cea0ff4.js.map} +1 -1
  29. package/dist/cjs/{location-info.92e70042.js → map-interface.64823b7c.js} +15 -5
  30. package/dist/cjs/map-interface.64823b7c.js.map +1 -0
  31. package/dist/cjs/{main.module.e958948e.js → map-interface.70458f75.js} +1 -1
  32. package/dist/cjs/{main.module.e958948e.js.map → map-interface.70458f75.js.map} +1 -1
  33. package/dist/cjs/{headers.d9f3e324.js → map-interface.7509f2c1.js} +3 -3
  34. package/dist/cjs/{headers.d9f3e324.js.map → map-interface.7509f2c1.js.map} +1 -1
  35. package/dist/cjs/{hash-string.62e84f08.js → map-interface.860fcb7e.js} +2 -2
  36. package/dist/cjs/map-interface.860fcb7e.js.map +1 -0
  37. package/dist/cjs/{controls.5fcf8a91.js → map-interface.99a048dc.js} +3 -3
  38. package/dist/cjs/{controls.5fcf8a91.js.map → map-interface.99a048dc.js.map} +1 -1
  39. package/dist/cjs/{main.module.62939ea7.js → map-interface.a9fe0f5d.js} +4 -1
  40. package/dist/cjs/map-interface.a9fe0f5d.js.map +1 -0
  41. package/dist/cjs/{main.module.ccec47df.js → map-interface.abe5fe65.js} +1 -1
  42. package/dist/cjs/{main.module.ccec47df.js.map → map-interface.abe5fe65.js.map} +1 -1
  43. package/dist/cjs/{main.module.338867af.css → map-interface.adb45df9.css} +1 -1
  44. package/dist/cjs/{main.module.338867af.css.map → map-interface.adb45df9.css.map} +1 -1
  45. package/dist/cjs/{main.module.e872989b.css → map-interface.ae4c52a6.css} +1 -1
  46. package/dist/cjs/{main.module.e872989b.css.map → map-interface.ae4c52a6.css.map} +1 -1
  47. package/dist/cjs/{container.d2e83c46.js → map-interface.bda26b27.js} +4 -4
  48. package/dist/cjs/{container.d2e83c46.js.map → map-interface.bda26b27.js.map} +1 -1
  49. package/dist/cjs/{main.module.0bbfa859.js → map-interface.cd485bb4.js} +1 -1
  50. package/dist/cjs/{main.module.0bbfa859.js.map → map-interface.cd485bb4.js.map} +1 -1
  51. package/dist/cjs/{utils.09cef979.js → map-interface.dfaad4a1.js} +1 -1
  52. package/dist/cjs/{utils.09cef979.js.map → map-interface.dfaad4a1.js.map} +1 -1
  53. package/dist/cjs/{map-view.61e50e18.js → map-interface.e7194f92.js} +67 -37
  54. package/dist/cjs/map-interface.e7194f92.js.map +1 -0
  55. package/dist/cjs/{vector-tile-features.77121785.js → map-interface.e9bcd5c0.js} +6 -6
  56. package/dist/cjs/map-interface.e9bcd5c0.js.map +1 -0
  57. package/dist/cjs/{utils.26f02633.js → map-interface.ffb109ef.js} +1 -1
  58. package/dist/cjs/{utils.26f02633.js.map → map-interface.ffb109ef.js.map} +1 -1
  59. package/dist/esm/index.d.ts +69 -39
  60. package/dist/esm/index.d.ts.map +1 -1
  61. package/dist/esm/index.js +11 -11
  62. package/dist/esm/{map-page.1da2d70c.js → map-interface.00058d23.js} +15 -14
  63. package/dist/esm/map-interface.00058d23.js.map +1 -0
  64. package/dist/esm/{main.module.58922c04.js → map-interface.01826888.js} +1 -1
  65. package/dist/esm/{main.module.58922c04.js.map → map-interface.01826888.js.map} +1 -1
  66. package/dist/esm/{main.module.f70e002b.js → map-interface.065737fe.js} +4 -1
  67. package/dist/esm/map-interface.065737fe.js.map +1 -0
  68. package/dist/esm/{context-panel.5dae1a8c.js → map-interface.0b1aa8f2.js} +4 -4
  69. package/dist/esm/map-interface.0b1aa8f2.js.map +1 -0
  70. package/dist/esm/{xray.c0663c25.js → map-interface.1843c708.js} +2 -2
  71. package/dist/esm/map-interface.1843c708.js.map +1 -0
  72. package/dist/esm/{headers.32db7784.js → map-interface.1db44824.js} +4 -4
  73. package/dist/esm/{headers.32db7784.js.map → map-interface.1db44824.js.map} +1 -1
  74. package/dist/esm/{container.bba0b16c.js → map-interface.27587c50.js} +5 -5
  75. package/dist/esm/{container.bba0b16c.js.map → map-interface.27587c50.js.map} +1 -1
  76. package/dist/esm/{utils.d40349f0.js → map-interface.3033c825.js} +1 -1
  77. package/dist/esm/{utils.d40349f0.js.map → map-interface.3033c825.js.map} +1 -1
  78. package/dist/esm/{dev.b2d9d35d.js → map-interface.3248abc7.js} +5 -5
  79. package/dist/esm/{dev.b2d9d35d.js.map → map-interface.3248abc7.js.map} +1 -1
  80. package/dist/esm/{location-info.5543bb05.js → map-interface.3ef9d0ae.js} +15 -5
  81. package/dist/esm/map-interface.3ef9d0ae.js.map +1 -0
  82. package/dist/esm/{expansion-panel.465b822f.js → map-interface.3f07937e.js} +5 -5
  83. package/dist/esm/map-interface.3f07937e.js.map +1 -0
  84. package/dist/esm/{helpers.fb1d7227.js → map-interface.45814073.js} +21 -5
  85. package/dist/esm/map-interface.45814073.js.map +1 -0
  86. package/dist/esm/{main.module.9c57cc95.js → map-interface.473f1f2b.js} +1 -1
  87. package/dist/esm/{main.module.9c57cc95.js.map → map-interface.473f1f2b.js.map} +1 -1
  88. package/dist/esm/{controls.42c750c4.js → map-interface.50edfdfd.js} +4 -4
  89. package/dist/esm/{controls.42c750c4.js.map → map-interface.50edfdfd.js.map} +1 -1
  90. package/dist/esm/{vector-tile-features.53b48d66.js → map-interface.786d6e58.js} +7 -7
  91. package/dist/esm/map-interface.786d6e58.js.map +1 -0
  92. package/dist/esm/{main.module.5eb366de.js → map-interface.957e414c.js} +1 -1
  93. package/dist/esm/{main.module.5eb366de.js.map → map-interface.957e414c.js.map} +1 -1
  94. package/dist/esm/{map-view.1fc6297b.js → map-interface.9ce3d553.js} +71 -41
  95. package/dist/esm/map-interface.9ce3d553.js.map +1 -0
  96. package/dist/esm/{utils.122d1f2d.js → map-interface.c4fa120d.js} +1 -1
  97. package/dist/esm/{utils.122d1f2d.js.map → map-interface.c4fa120d.js.map} +1 -1
  98. package/dist/esm/{main.module.303f6d99.js → map-interface.c99b53b6.js} +1 -1
  99. package/dist/esm/{main.module.303f6d99.js.map → map-interface.c99b53b6.js.map} +1 -1
  100. package/dist/esm/{header.a73b6e0a.js → map-interface.e1493866.js} +5 -5
  101. package/dist/esm/map-interface.e1493866.js.map +1 -0
  102. package/dist/esm/{hash-string.836601b2.js → map-interface.e50c290f.js} +2 -2
  103. package/dist/esm/{hash-string.836601b2.js.map → map-interface.e50c290f.js.map} +1 -1
  104. package/dist/esm/{location-panel.c620b13b.js → map-interface.e5349e97.js} +6 -6
  105. package/dist/esm/{location-panel.c620b13b.js.map → map-interface.e5349e97.js.map} +1 -1
  106. package/dist/esm/{tile-extent.ca526996.js → map-interface.f107347b.js} +1 -1
  107. package/dist/esm/{tile-extent.ca526996.js.map → map-interface.f107347b.js.map} +1 -1
  108. package/dist/node/index.js +1 -1
  109. package/dist/node/index.js.map +1 -1
  110. package/dist/node/map-interface.02dd6884.js +2 -0
  111. package/dist/node/map-interface.02dd6884.js.map +1 -0
  112. package/dist/node/{main.module.2d51c752.css → map-interface.07882229.css} +1 -1
  113. package/dist/node/map-interface.07882229.css.map +1 -0
  114. package/dist/node/map-interface.10f5ef81.js +2 -0
  115. package/dist/node/map-interface.10f5ef81.js.map +1 -0
  116. package/dist/node/map-interface.1a5eecac.js +2 -0
  117. package/dist/node/map-interface.1a5eecac.js.map +1 -0
  118. package/dist/node/{main.module.8a9943af.css → map-interface.1be49df8.css} +1 -1
  119. package/dist/node/map-interface.1be49df8.css.map +1 -0
  120. package/dist/node/map-interface.20c346ba.js +2 -0
  121. package/dist/node/map-interface.20c346ba.js.map +1 -0
  122. package/dist/node/map-interface.2d12b35c.js +2 -0
  123. package/dist/node/map-interface.2d12b35c.js.map +1 -0
  124. package/dist/node/map-interface.3ea55e0c.js +2 -0
  125. package/dist/node/map-interface.3ea55e0c.js.map +1 -0
  126. package/dist/node/map-interface.42a4b05a.js +2 -0
  127. package/dist/node/map-interface.42a4b05a.js.map +1 -0
  128. package/dist/node/{main.module.29a15f3d.css → map-interface.42ef081d.css} +1 -1
  129. package/dist/node/map-interface.42ef081d.css.map +1 -0
  130. package/dist/node/map-interface.44d3f3bf.js +2 -0
  131. package/dist/node/map-interface.44d3f3bf.js.map +1 -0
  132. package/dist/node/map-interface.47b81f95.js +2 -0
  133. package/dist/node/map-interface.47b81f95.js.map +1 -0
  134. package/dist/node/map-interface.62b147ce.js +2 -0
  135. package/dist/node/map-interface.62b147ce.js.map +1 -0
  136. package/dist/node/map-interface.713361a4.js +2 -0
  137. package/dist/node/map-interface.713361a4.js.map +1 -0
  138. package/dist/node/map-interface.722387fb.js +2 -0
  139. package/dist/node/map-interface.722387fb.js.map +1 -0
  140. package/dist/node/map-interface.83fa8028.js +2 -0
  141. package/dist/node/map-interface.83fa8028.js.map +1 -0
  142. package/dist/node/map-interface.971af4bc.js +2 -0
  143. package/dist/node/map-interface.971af4bc.js.map +1 -0
  144. package/dist/node/map-interface.b14f08e8.js +2 -0
  145. package/dist/node/map-interface.b14f08e8.js.map +1 -0
  146. package/dist/node/map-interface.bc0fb98b.js +2 -0
  147. package/dist/node/map-interface.bc0fb98b.js.map +1 -0
  148. package/dist/node/{main.module.3943144e.css → map-interface.bd78832e.css} +1 -1
  149. package/dist/node/map-interface.bd78832e.css.map +1 -0
  150. package/dist/node/map-interface.cf540298.js +2 -0
  151. package/dist/node/map-interface.cf540298.js.map +1 -0
  152. package/dist/node/map-interface.d16a06b1.js +2 -0
  153. package/dist/node/map-interface.d16a06b1.js.map +1 -0
  154. package/dist/node/map-interface.d2fce135.css +2 -0
  155. package/dist/node/map-interface.d2fce135.css.map +1 -0
  156. package/dist/node/map-interface.d92b296e.js +2 -0
  157. package/dist/node/map-interface.d92b296e.js.map +1 -0
  158. package/dist/node/map-interface.e0032d67.js +2 -0
  159. package/dist/node/map-interface.e0032d67.js.map +1 -0
  160. package/dist/node/map-interface.eb663cae.js +2 -0
  161. package/dist/node/map-interface.eb663cae.js.map +1 -0
  162. package/dist/node/map-interface.ed6b5586.js +2 -0
  163. package/dist/node/map-interface.ed6b5586.js.map +1 -0
  164. package/dist/node/map-interface.f4d2a5eb.js +2 -0
  165. package/dist/node/map-interface.f4d2a5eb.js.map +1 -0
  166. package/package.json +9 -9
  167. package/src/container.ts +3 -3
  168. package/src/context-panel/index.ts +8 -8
  169. package/src/dev/map-page.ts +5 -13
  170. package/src/dev/tile-extent.ts +1 -1
  171. package/src/dev/vector-tile-features.ts +11 -7
  172. package/src/dev/xray.ts +7 -3
  173. package/src/expansion-panel/headers.ts +1 -1
  174. package/src/expansion-panel/index.ts +4 -4
  175. package/src/helpers.ts +42 -8
  176. package/src/location-info/hash-string.ts +2 -2
  177. package/src/location-info/index.ts +15 -6
  178. package/src/location-panel/header.ts +8 -6
  179. package/src/main.module.sass +13 -6
  180. package/src/map-view.ts +96 -47
  181. package/dist/cjs/context-panel.3061a63e.js.map +0 -1
  182. package/dist/cjs/expansion-panel.ef757efe.js.map +0 -1
  183. package/dist/cjs/hash-string.62e84f08.js.map +0 -1
  184. package/dist/cjs/header.af864bde.js.map +0 -1
  185. package/dist/cjs/helpers.0f72ddaf.js.map +0 -1
  186. package/dist/cjs/location-info.92e70042.js.map +0 -1
  187. package/dist/cjs/main.module.62939ea7.js.map +0 -1
  188. package/dist/cjs/main.module.f57e27f2.css.map +0 -1
  189. package/dist/cjs/map-page.1e1970d8.js.map +0 -1
  190. package/dist/cjs/map-view.61e50e18.js.map +0 -1
  191. package/dist/cjs/vector-tile-features.77121785.js.map +0 -1
  192. package/dist/cjs/xray.a23f8660.js.map +0 -1
  193. package/dist/esm/context-panel.5dae1a8c.js.map +0 -1
  194. package/dist/esm/expansion-panel.465b822f.js.map +0 -1
  195. package/dist/esm/header.a73b6e0a.js.map +0 -1
  196. package/dist/esm/helpers.fb1d7227.js.map +0 -1
  197. package/dist/esm/location-info.5543bb05.js.map +0 -1
  198. package/dist/esm/main.module.f70e002b.js.map +0 -1
  199. package/dist/esm/map-page.1da2d70c.js.map +0 -1
  200. package/dist/esm/map-view.1fc6297b.js.map +0 -1
  201. package/dist/esm/vector-tile-features.53b48d66.js.map +0 -1
  202. package/dist/esm/xray.c0663c25.js.map +0 -1
  203. package/dist/node/container.053f798f.js +0 -2
  204. package/dist/node/container.053f798f.js.map +0 -1
  205. package/dist/node/context-panel.0ae29ecf.js +0 -2
  206. package/dist/node/context-panel.0ae29ecf.js.map +0 -1
  207. package/dist/node/controls.6ec8e9ac.js +0 -2
  208. package/dist/node/controls.6ec8e9ac.js.map +0 -1
  209. package/dist/node/dev.4640438e.js +0 -2
  210. package/dist/node/dev.4640438e.js.map +0 -1
  211. package/dist/node/expansion-panel.62240ee3.js +0 -2
  212. package/dist/node/expansion-panel.62240ee3.js.map +0 -1
  213. package/dist/node/hash-string.3fc8ceb0.js +0 -2
  214. package/dist/node/hash-string.3fc8ceb0.js.map +0 -1
  215. package/dist/node/header.cf9ba12b.js +0 -2
  216. package/dist/node/header.cf9ba12b.js.map +0 -1
  217. package/dist/node/headers.2581f6d9.js +0 -2
  218. package/dist/node/headers.2581f6d9.js.map +0 -1
  219. package/dist/node/helpers.6bda171f.js +0 -2
  220. package/dist/node/helpers.6bda171f.js.map +0 -1
  221. package/dist/node/location-info.9f59aad3.js +0 -2
  222. package/dist/node/location-info.9f59aad3.js.map +0 -1
  223. package/dist/node/location-panel.2e422cc0.js +0 -2
  224. package/dist/node/location-panel.2e422cc0.js.map +0 -1
  225. package/dist/node/main.module.24615279.js +0 -2
  226. package/dist/node/main.module.24615279.js.map +0 -1
  227. package/dist/node/main.module.29a15f3d.css.map +0 -1
  228. package/dist/node/main.module.2d51c752.css.map +0 -1
  229. package/dist/node/main.module.3943144e.css.map +0 -1
  230. package/dist/node/main.module.3a8fef67.js +0 -2
  231. package/dist/node/main.module.3a8fef67.js.map +0 -1
  232. package/dist/node/main.module.434acaf9.js +0 -2
  233. package/dist/node/main.module.434acaf9.js.map +0 -1
  234. package/dist/node/main.module.5d5ab665.js +0 -2
  235. package/dist/node/main.module.5d5ab665.js.map +0 -1
  236. package/dist/node/main.module.65e40c2e.css +0 -2
  237. package/dist/node/main.module.65e40c2e.css.map +0 -1
  238. package/dist/node/main.module.8a9943af.css.map +0 -1
  239. package/dist/node/main.module.e200d631.js +0 -2
  240. package/dist/node/main.module.e200d631.js.map +0 -1
  241. package/dist/node/map-page.d0e099ab.js +0 -2
  242. package/dist/node/map-page.d0e099ab.js.map +0 -1
  243. package/dist/node/map-view.9dc96288.js +0 -2
  244. package/dist/node/map-view.9dc96288.js.map +0 -1
  245. package/dist/node/tile-extent.28db5d2c.js +0 -2
  246. package/dist/node/tile-extent.28db5d2c.js.map +0 -1
  247. package/dist/node/utils.274d0452.js +0 -2
  248. package/dist/node/utils.274d0452.js.map +0 -1
  249. package/dist/node/utils.dd92f725.js +0 -2
  250. package/dist/node/utils.dd92f725.js.map +0 -1
  251. package/dist/node/vector-tile-features.b5a23b71.js +0 -2
  252. package/dist/node/vector-tile-features.b5a23b71.js.map +0 -1
  253. package/dist/node/xray.bce11e7b.js +0 -2
  254. package/dist/node/xray.bce11e7b.js.map +0 -1
@@ -1,9 +1,9 @@
1
- import { useMemo } from "react";
2
1
  import { Navbar, Button, Spinner, Card, Text } from "@blueprintjs/core";
3
2
  import hyper from "@macrostrat/hyper";
4
3
  import styles from "./main.module.sass";
5
4
  import { useMapStatus } from "@macrostrat/mapbox-react";
6
5
  import { Spacer } from "@macrostrat/ui-components";
6
+ import type { ReactNode } from "react";
7
7
 
8
8
  const h = hyper.styled(styles);
9
9
 
@@ -19,7 +19,7 @@ export function LoadingButton({
19
19
  }) {
20
20
  return h(Button, {
21
21
  className: "loading-button",
22
- icon: isLoading ? spinnerElement : icon,
22
+ icon: (isLoading ? spinnerElement : icon) as any,
23
23
  large,
24
24
  minimal: true,
25
25
  onClick,
@@ -28,12 +28,12 @@ export function LoadingButton({
28
28
  });
29
29
  }
30
30
 
31
- export function MapLoadingButton(props) {
31
+ export function MapLoadingButton(props: any) {
32
32
  const isLoading = useMapStatus((s) => s.isLoading);
33
33
  return h(LoadingButton, { ...props, isLoading });
34
34
  }
35
35
 
36
- type AnyChildren = React.ReactNode;
36
+ type AnyChildren = ReactNode;
37
37
 
38
38
  export interface FloatingNavbarProps {
39
39
  className?: string;
@@ -58,12 +58,12 @@ export function FloatingNavbar({
58
58
  width,
59
59
  style = {},
60
60
  }: FloatingNavbarProps) {
61
- let _rightElement: React.ReactNode | null = null;
61
+ let _rightElement: ReactNode | null = null;
62
62
  if (rightElement != null) {
63
63
  _rightElement = h("div.right-element", rightElement);
64
64
  }
65
65
 
66
- let _headerElement: React.ReactNode | null = headerElement;
66
+ let _headerElement: ReactNode | null = headerElement;
67
67
  if (title != null && _headerElement == null) {
68
68
  if (typeof title === "string") {
69
69
  _headerElement = h(Text, { tagName: "h2", ellipsize: true }, title);
@@ -84,13 +84,13 @@ export function FloatingNavbar({
84
84
  className: "searchbar navbar panel",
85
85
  style: { height, ...style },
86
86
  },
87
- [_headerElement, children, _rightElement]
87
+ [_headerElement, children, _rightElement],
88
88
  ),
89
89
  ]),
90
90
  h.if(statusElement != null)(
91
91
  Card,
92
92
  { className: "status-tongue" },
93
- statusElement
93
+ statusElement,
94
94
  ),
95
95
  ]);
96
96
  }
@@ -7,7 +7,7 @@ import { useCallback, useState, useEffect } from "react";
7
7
  import { buildInspectorStyle } from "./xray";
8
8
  import { MapAreaContainer, PanelCard } from "../container";
9
9
  import { FloatingNavbar, MapLoadingButton } from "../context-panel";
10
- import { MapMarker } from "../helpers";
10
+ import { MapMarker, useBasicMapStyle } from "../helpers";
11
11
  import { LocationPanel } from "../location-panel";
12
12
  import { MapView } from "../map-view";
13
13
  import styles from "./main.module.sass";
@@ -67,15 +67,7 @@ export function MapInspectorV2({
67
67
  mapboxgl.accessToken = mapboxToken;
68
68
  }
69
69
 
70
- if (styleType == "macrostrat") {
71
- style ??= isEnabled
72
- ? "mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true"
73
- : "mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true";
74
- } else {
75
- style ??= isEnabled
76
- ? "mapbox://styles/mapbox/dark-v10"
77
- : "mapbox://styles/mapbox/light-v10";
78
- }
70
+ style ??= useBasicMapStyle({ styleType });
79
71
 
80
72
  const [isOpen, setOpen] = useState(false);
81
73
 
@@ -123,7 +115,7 @@ export function MapInspectorV2({
123
115
  },
124
116
  }),
125
117
  h(FeaturePanel, { features: data, focusedSource, focusedSourceTitle }),
126
- ]
118
+ ],
127
119
  );
128
120
  }
129
121
 
@@ -183,8 +175,8 @@ export function MapInspectorV2({
183
175
  }),
184
176
  h(TileExtentLayer, { tile, color: isEnabled ? "white" : "black" }),
185
177
  children,
186
- ]
187
- )
178
+ ],
179
+ ),
188
180
  );
189
181
  }
190
182
 
@@ -38,7 +38,7 @@ export function TileExtentLayer({
38
38
  style.layers.push(layer);
39
39
  map.setStyle(style);
40
40
  },
41
- [color]
41
+ [color],
42
42
  );
43
43
  const map = useMapRef();
44
44
  useMapConditionalStyle(map, tile, styleCallback);
@@ -178,7 +178,11 @@ function UnitNumber({ value, unit, precision = 1 }) {
178
178
  ]);
179
179
  }
180
180
 
181
- export function FeaturePanel({ features, focusedSource = null }) {
181
+ export function FeaturePanel({
182
+ features,
183
+ focusedSource = null,
184
+ focusedSourceTitle = null,
185
+ }) {
182
186
  if (features == null) return null;
183
187
 
184
188
  let focusedSourcePanel = null;
@@ -190,7 +194,7 @@ export function FeaturePanel({ features, focusedSource = null }) {
190
194
  focusedSourcePanel = h(
191
195
  ExpansionPanel,
192
196
  {
193
- title: "Macrostrat features",
197
+ title: focusedSourceTitle ?? "Macrostrat features",
194
198
  className: "macrostrat-features",
195
199
  expanded: true,
196
200
  },
@@ -199,7 +203,7 @@ export function FeaturePanel({ features, focusedSource = null }) {
199
203
  features,
200
204
  sourceID: focusedSource,
201
205
  }),
202
- ]
206
+ ],
203
207
  );
204
208
  filteredFeatures = features.filter((d) => d.source != focusedSource);
205
209
  }
@@ -213,7 +217,7 @@ export function FeaturePanel({ features, focusedSource = null }) {
213
217
  h(FeatureGroups, {
214
218
  features: filteredFeatures,
215
219
  }),
216
- ]
220
+ ],
217
221
  ),
218
222
  ]);
219
223
  }
@@ -222,7 +226,7 @@ function FeatureGroups({ features }) {
222
226
  /** Group features by source and sourceLayer */
223
227
  if (features == null) return null;
224
228
 
225
- const groups = group(features, (d) => `${d.source} - ${d.sourceLayer}`);
229
+ const groups = group(features, (d: any) => `${d.source} - ${d.sourceLayer}`);
226
230
 
227
231
  return h(
228
232
  "div.feature-groups",
@@ -231,13 +235,13 @@ function FeatureGroups({ features }) {
231
235
  h(FeatureHeader, { feature: features[0] }),
232
236
  h(Features, { features }),
233
237
  ]);
234
- })
238
+ }),
235
239
  );
236
240
  }
237
241
 
238
242
  export function Features({ features }) {
239
243
  return h(
240
244
  "div.features",
241
- features.map((feature, i) => h(FeatureRecord, { key: i, feature }))
245
+ features.map((feature, i) => h(FeatureRecord, { key: i, feature })),
242
246
  );
243
247
  }
package/src/dev/xray.ts CHANGED
@@ -11,7 +11,7 @@ interface XRayOptions {
11
11
 
12
12
  export async function buildXRayStyle(
13
13
  baseStyle: string | object,
14
- params: XRayOptions = null
14
+ params: XRayOptions = null,
15
15
  ) {
16
16
  const {
17
17
  inDarkMode = false,
@@ -24,7 +24,11 @@ export async function buildXRayStyle(
24
24
 
25
25
  let layers = [];
26
26
  for (let layer of style.layers) {
27
- if (!sources.includes(layer.source)) {
27
+ if (
28
+ "source" in layer &&
29
+ typeof layer.source === "string" &&
30
+ !sources.includes(layer.source)
31
+ ) {
28
32
  layers.push(layer);
29
33
  continue;
30
34
  }
@@ -90,7 +94,7 @@ type InspectorStyleOptions = XRayOptions & {
90
94
  export async function buildInspectorStyle(
91
95
  baseStyle: mapboxgl.Style | string,
92
96
  overlayStyle: mapboxgl.Style | string | null = null,
93
- params: InspectorStyleOptions = {}
97
+ params: InspectorStyleOptions = {},
94
98
  ) {
95
99
  const {
96
100
  mapboxToken,
@@ -11,7 +11,7 @@ export function PanelSubhead(props) {
11
11
  {
12
12
  className: "title",
13
13
  },
14
- title
14
+ title,
15
15
  ),
16
16
  children,
17
17
  ]);
@@ -20,7 +20,7 @@ function ExpansionPanelSummary(props) {
20
20
  title,
21
21
  component: titleComponent,
22
22
  },
23
- [children, h(Icon, { icon, className: "expansion-panel-icon" })]
23
+ [children, h(Icon, { icon, className: "expansion-panel-icon" })],
24
24
  );
25
25
  }
26
26
 
@@ -63,10 +63,10 @@ function ExpansionPanelBase(props) {
63
63
  h("span.expansion-panel-subtext", helpText),
64
64
  " ",
65
65
  sideComponent,
66
- ])
66
+ ]),
67
67
  ),
68
68
  h(Collapse, { isOpen }, h("div.expansion-children", null, children)),
69
- ]
69
+ ],
70
70
  );
71
71
  }
72
72
 
@@ -113,7 +113,7 @@ function ExpandableDetailsPanel(props) {
113
113
  h(
114
114
  Collapse,
115
115
  { isOpen },
116
- h("div.expandable-details-children", null, children)
116
+ h("div.expandable-details-children", null, children),
117
117
  ),
118
118
  ]);
119
119
  }
package/src/helpers.ts CHANGED
@@ -21,7 +21,7 @@ export function MapResizeManager({ containerRef }) {
21
21
  const debouncedResize = useRef(
22
22
  debounce(() => {
23
23
  mapRef.current?.resize();
24
- }, 100)
24
+ }, 100),
25
25
  );
26
26
 
27
27
  useResizeObserver({
@@ -48,7 +48,7 @@ export function MapPaddingManager({
48
48
  const mapRef = useMapRef();
49
49
 
50
50
  const [padding, setPadding] = useState(
51
- getMapPadding(containerRef, parentRef)
51
+ getMapPadding(containerRef, parentRef),
52
52
  );
53
53
 
54
54
  const _updateMapPadding = useCallback(() => {
@@ -58,7 +58,7 @@ export function MapPaddingManager({
58
58
 
59
59
  const updateMapPadding = useMemo(
60
60
  () => debounce(_updateMapPadding, debounceTime),
61
- [_updateMapPadding, debounceTime]
61
+ [_updateMapPadding, debounceTime],
62
62
  );
63
63
 
64
64
  useEffect(() => {
@@ -113,12 +113,19 @@ export function MapMovedReporter({ onMapMoved = null }) {
113
113
  return null;
114
114
  }
115
115
 
116
+ interface MapLoadingReporterProps {
117
+ ignoredSources?: string[];
118
+ onMapLoading?: (evt: mapboxgl.MapEvent) => void;
119
+ onMapIdle?: (evt: mapboxgl.MapEvent) => void;
120
+ mapIsLoading?: boolean;
121
+ }
122
+
116
123
  export function MapLoadingReporter({
117
124
  ignoredSources,
118
125
  onMapLoading = null,
119
126
  onMapIdle = null,
120
127
  mapIsLoading,
121
- }) {
128
+ }: MapLoadingReporterProps) {
122
129
  const mapRef = useMapRef();
123
130
  const loadingRef = useRef(false);
124
131
  const dispatch = useMapDispatch();
@@ -184,9 +191,36 @@ export function MapMarker({ position, setPosition, centerMarker = true }) {
184
191
  return null;
185
192
  }
186
193
 
187
- export function useBasicStylePair() {
194
+ export function useBasicMapStyle(
195
+ opts: {
196
+ styleType?: "macrostrat" | "standard";
197
+ } = {},
198
+ ) {
199
+ const { styleType } = opts;
188
200
  const inDarkMode = useInDarkMode();
189
- return inDarkMode
190
- ? "mapbox://styles/mapbox/dark-v10"
191
- : "mapbox://styles/mapbox/light-v10";
201
+
202
+ const props = useMemo(() => {
203
+ return { styleType, inDarkMode };
204
+ }, [styleType, inDarkMode]);
205
+
206
+ return getBasicMapStyle(props);
192
207
  }
208
+
209
+ export function getBasicMapStyle(opts: {
210
+ styleType?: "macrostrat" | "standard";
211
+ inDarkMode?: boolean;
212
+ }) {
213
+ const { styleType = "macrostrat", inDarkMode = false } = opts ?? {};
214
+
215
+ if (styleType == "macrostrat") {
216
+ return inDarkMode
217
+ ? "mapbox://styles/jczaplewski/cl5uoqzzq003614o6url9ou9z?optimize=true"
218
+ : "mapbox://styles/jczaplewski/clatdbkw4002q14lov8zx0bm0?optimize=true";
219
+ } else {
220
+ return inDarkMode
221
+ ? "mapbox://styles/mapbox/dark-v10"
222
+ : "mapbox://styles/mapbox/light-v10";
223
+ }
224
+ }
225
+
226
+ export const useBasicStylePair = useBasicMapStyle;
@@ -16,7 +16,7 @@ interface LocationHashParams {
16
16
 
17
17
  export function applyMapPositionToHash(
18
18
  args: LocationHashParams,
19
- mapPosition: MapPosition | null
19
+ mapPosition: MapPosition | null,
20
20
  ) {
21
21
  const pos = mapPosition?.camera;
22
22
  if (pos == null) return;
@@ -53,7 +53,7 @@ function _fmt(x: string | number | string[]) {
53
53
 
54
54
  export function getMapPositionForHash(
55
55
  hashData: ParsedQuery<string>,
56
- centerPosition: LatLng | null
56
+ centerPosition: LatLng | null,
57
57
  ): MapPosition {
58
58
  const {
59
59
  x = centerPosition?.lng ?? 0,
@@ -5,6 +5,7 @@ import {
5
5
  normalizeLng,
6
6
  } from "@macrostrat/mapbox-utils";
7
7
  import { formatValue } from "./utils";
8
+ import { LngLat } from "mapbox-gl";
8
9
 
9
10
  export * from "./hash-string";
10
11
 
@@ -29,12 +30,12 @@ export function DegreeCoord(props) {
29
30
 
30
31
  export interface LngLatProps {
31
32
  /** Map position */
32
- position: [number, number] | { lat: number; lng: number };
33
+ position: mapboxgl.LngLatLike | null;
33
34
  className?: string;
34
35
  /** Zoom level (used to infer coordinate rounding if provided) */
35
- zoom?: number | null;
36
+ zoom?: number;
36
37
  /** Number of decimal places to round coordinates to */
37
- precision: number | null;
38
+ precision?: number;
38
39
  /** Function to format coordinates */
39
40
  format?: (val: number, precision: number) => string;
40
41
  }
@@ -46,11 +47,19 @@ export function LngLatCoords(props: LngLatProps) {
46
47
  if (position == null) {
47
48
  return null;
48
49
  }
49
- let lat, lng;
50
+
51
+ let lat: number;
52
+ let lng: number;
50
53
  if (Array.isArray(position)) {
51
54
  [lng, lat] = position;
52
- } else {
53
- ({ lat, lng } = position);
55
+ } else if (position instanceof LngLat) {
56
+ [lng, lat] = position.toArray();
57
+ } else if ("lng" in position) {
58
+ lat = position.lat;
59
+ lng = position.lng;
60
+ } else if ("lon" in position) {
61
+ lat = position.lat;
62
+ lng = position.lon;
54
63
  }
55
64
 
56
65
  if (zoom != null && format == null && precision == null) {
@@ -9,6 +9,8 @@ import {
9
9
  isCentered,
10
10
  } from "@macrostrat/mapbox-react";
11
11
  import classNames from "classnames";
12
+ import type { ReactNode } from "react";
13
+ import type { LngLatBounds, LngLatLike } from "mapbox-gl";
12
14
 
13
15
  const h = hyper.styled(styles);
14
16
 
@@ -59,24 +61,24 @@ function CopyLinkButton({ itemName, children, onClick, ...rest }) {
59
61
  icon: "error",
60
62
  timeout: 1000,
61
63
  });
62
- }
64
+ },
63
65
  );
64
66
  },
65
67
  ...rest,
66
68
  },
67
- children ?? "Copy link"
69
+ children ?? "Copy link",
68
70
  );
69
71
  }
70
72
 
71
73
  export interface InfoDrawerHeaderProps {
72
74
  onClose?: () => void;
73
- position?: mapboxgl.LngLat;
75
+ position?: LngLatLike;
74
76
  zoom?: number;
75
77
  elevation?: number;
76
78
  showCopyPositionButton?: boolean;
77
- bounds?: mapboxgl.LngLatBounds;
79
+ bounds?: LngLatBounds;
78
80
  fixedHeight?: boolean;
79
- children?: React.ReactNode;
81
+ children?: ReactNode;
80
82
  className?: string;
81
83
  }
82
84
 
@@ -125,6 +127,6 @@ export function InfoDrawerHeader(props: InfoDrawerHeaderProps) {
125
127
  icon: "cross",
126
128
  onClick: onClose,
127
129
  }),
128
- ]
130
+ ],
129
131
  );
130
132
  }
@@ -61,6 +61,7 @@
61
61
  & > *
62
62
  flex: 1
63
63
 
64
+
64
65
  .map-control-stack
65
66
  display: flex
66
67
  flex-direction: column
@@ -89,6 +90,9 @@
89
90
  flex-grow: 1
90
91
  position: relative
91
92
  overflow: hidden
93
+ &.standalone
94
+ height: 100%
95
+ width: 100%
92
96
 
93
97
  .mapbox-map
94
98
  position: absolute
@@ -102,6 +106,13 @@
102
106
  position: absolute
103
107
 
104
108
 
109
+ /** These styles seem to help with weird map zooming behavior */
110
+ :global(.mapboxgl-canvas), :global(.mapboxgl-canvas-container)
111
+ position: relative
112
+ left: 0
113
+ top: 0
114
+
115
+
105
116
  .context-panel-holder > :global(.bp5-card)
106
117
  padding: 10px
107
118
  background-color: var(--panel-background-color)
@@ -376,7 +387,8 @@
376
387
  /* Make map fill page rather than containing div,
377
388
  by unsetting map position */
378
389
  // We should move this to another file.
379
- .map-view-container
390
+
391
+ .map-view-container:not(.standalone)
380
392
  position: unset
381
393
 
382
394
 
@@ -440,11 +452,6 @@
440
452
  .context-stack .spacer
441
453
  min-height: 1em
442
454
 
443
- /* Make map fill page rather than containing div,
444
- by unsetting map position */
445
- .map-view-container
446
- position: unset
447
-
448
455
  /** CSS Transitions **/
449
456
 
450
457
  .map-container