@next-degree/pickle-shared-js 0.12.7 → 0.13.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 (349) hide show
  1. package/dist/{company_service_sanity-2J1ZuUnu.d.cts → company_service_sanity-ByIKe90u.d.cts} +560 -560
  2. package/dist/{company_service_sanity-KaAGfnNV.d.ts → company_service_sanity-DbYwWmnS.d.ts} +560 -560
  3. package/dist/components/buttons/BackButton.cjs +5 -8
  4. package/dist/components/buttons/BackButton.cjs.map +1 -1
  5. package/dist/components/buttons/BackButton.d.cts +2 -2
  6. package/dist/components/buttons/BackButton.d.ts +2 -2
  7. package/dist/components/buttons/BackButton.js +5 -8
  8. package/dist/components/buttons/BackButton.js.map +1 -1
  9. package/dist/components/company/CompanyBenefits.cjs +1 -5
  10. package/dist/components/company/CompanyBenefits.cjs.map +1 -1
  11. package/dist/components/company/CompanyBenefits.d.cts +2 -2
  12. package/dist/components/company/CompanyBenefits.d.ts +2 -2
  13. package/dist/components/company/CompanyBenefits.js +1 -5
  14. package/dist/components/company/CompanyBenefits.js.map +1 -1
  15. package/dist/components/company/CompanyInformation.cjs +23 -44
  16. package/dist/components/company/CompanyInformation.cjs.map +1 -1
  17. package/dist/components/company/CompanyInformation.d.cts +2 -2
  18. package/dist/components/company/CompanyInformation.d.ts +2 -2
  19. package/dist/components/company/CompanyInformation.js +23 -44
  20. package/dist/components/company/CompanyInformation.js.map +1 -1
  21. package/dist/components/company/CompanyTake.cjs +12 -26
  22. package/dist/components/company/CompanyTake.cjs.map +1 -1
  23. package/dist/components/company/CompanyTake.d.cts +2 -2
  24. package/dist/components/company/CompanyTake.d.ts +2 -2
  25. package/dist/components/company/CompanyTake.js +12 -26
  26. package/dist/components/company/CompanyTake.js.map +1 -1
  27. package/dist/components/jobCard/JobLocation.cjs +23 -34
  28. package/dist/components/jobCard/JobLocation.cjs.map +1 -1
  29. package/dist/components/jobCard/JobLocation.d.cts +3 -3
  30. package/dist/components/jobCard/JobLocation.d.ts +3 -3
  31. package/dist/components/jobCard/JobLocation.js +23 -34
  32. package/dist/components/jobCard/JobLocation.js.map +1 -1
  33. package/dist/components/jobPost/JobDescription.cjs +164 -30
  34. package/dist/components/jobPost/JobDescription.cjs.map +1 -1
  35. package/dist/components/jobPost/JobDescription.d.cts +2 -2
  36. package/dist/components/jobPost/JobDescription.d.ts +2 -2
  37. package/dist/components/jobPost/JobDescription.js +164 -30
  38. package/dist/components/jobPost/JobDescription.js.map +1 -1
  39. package/dist/components/jobPost/JobHeader.cjs +110 -138
  40. package/dist/components/jobPost/JobHeader.cjs.map +1 -1
  41. package/dist/components/jobPost/JobHeader.d.cts +2 -2
  42. package/dist/components/jobPost/JobHeader.d.ts +2 -2
  43. package/dist/components/jobPost/JobHeader.js +110 -138
  44. package/dist/components/jobPost/JobHeader.js.map +1 -1
  45. package/dist/components/jobPost/JobPost.cjs +382 -318
  46. package/dist/components/jobPost/JobPost.cjs.map +1 -1
  47. package/dist/components/jobPost/JobPost.d.cts +3 -3
  48. package/dist/components/jobPost/JobPost.d.ts +3 -3
  49. package/dist/components/jobPost/JobPost.js +344 -280
  50. package/dist/components/jobPost/JobPost.js.map +1 -1
  51. package/dist/components/primitives/avatar.cjs +3 -4
  52. package/dist/components/primitives/avatar.cjs.map +1 -1
  53. package/dist/components/primitives/avatar.js +3 -4
  54. package/dist/components/primitives/avatar.js.map +1 -1
  55. package/dist/components/primitives/command.cjs +37 -50
  56. package/dist/components/primitives/command.cjs.map +1 -1
  57. package/dist/components/primitives/command.d.cts +5 -6
  58. package/dist/components/primitives/command.d.ts +5 -6
  59. package/dist/components/primitives/command.js +37 -50
  60. package/dist/components/primitives/command.js.map +1 -1
  61. package/dist/components/primitives/dialog.cjs +18 -27
  62. package/dist/components/primitives/dialog.cjs.map +1 -1
  63. package/dist/components/primitives/dialog.d.cts +2 -3
  64. package/dist/components/primitives/dialog.d.ts +2 -3
  65. package/dist/components/primitives/dialog.js +18 -27
  66. package/dist/components/primitives/dialog.js.map +1 -1
  67. package/dist/components/primitives/input-otp.cjs +8 -11
  68. package/dist/components/primitives/input-otp.cjs.map +1 -1
  69. package/dist/components/primitives/input-otp.d.cts +2 -2
  70. package/dist/components/primitives/input-otp.d.ts +2 -2
  71. package/dist/components/primitives/input-otp.js +8 -11
  72. package/dist/components/primitives/input-otp.js.map +1 -1
  73. package/dist/components/primitives/popover.cjs +2 -3
  74. package/dist/components/primitives/popover.cjs.map +1 -1
  75. package/dist/components/primitives/popover.js +2 -3
  76. package/dist/components/primitives/popover.js.map +1 -1
  77. package/dist/components/primitives/radio-group.cjs +12 -16
  78. package/dist/components/primitives/radio-group.cjs.map +1 -1
  79. package/dist/components/primitives/radio-group.js +12 -16
  80. package/dist/components/primitives/radio-group.js.map +1 -1
  81. package/dist/components/primitives/separator.cjs +1 -2
  82. package/dist/components/primitives/separator.cjs.map +1 -1
  83. package/dist/components/primitives/separator.js +1 -2
  84. package/dist/components/primitives/separator.js.map +1 -1
  85. package/dist/components/primitives/tooltip.cjs +1 -2
  86. package/dist/components/primitives/tooltip.cjs.map +1 -1
  87. package/dist/components/primitives/tooltip.js +1 -2
  88. package/dist/components/primitives/tooltip.js.map +1 -1
  89. package/dist/components/ui/Avatar.cjs +6 -11
  90. package/dist/components/ui/Avatar.cjs.map +1 -1
  91. package/dist/components/ui/Avatar.d.cts +3 -3
  92. package/dist/components/ui/Avatar.d.ts +3 -3
  93. package/dist/components/ui/Avatar.js +6 -11
  94. package/dist/components/ui/Avatar.js.map +1 -1
  95. package/dist/components/ui/Badge.cjs +12 -2
  96. package/dist/components/ui/Badge.cjs.map +1 -1
  97. package/dist/components/ui/Badge.d.cts +1 -2
  98. package/dist/components/ui/Badge.d.ts +1 -2
  99. package/dist/components/ui/Badge.js +2 -2
  100. package/dist/components/ui/Badge.js.map +1 -1
  101. package/dist/components/ui/Button.cjs +163 -8
  102. package/dist/components/ui/Button.cjs.map +1 -1
  103. package/dist/components/ui/Button.d.cts +4 -8
  104. package/dist/components/ui/Button.d.ts +4 -8
  105. package/dist/components/ui/Button.js +153 -8
  106. package/dist/components/ui/Button.js.map +1 -1
  107. package/dist/components/ui/Checkbox.cjs +18 -28
  108. package/dist/components/ui/Checkbox.cjs.map +1 -1
  109. package/dist/components/ui/Checkbox.js +18 -28
  110. package/dist/components/ui/Checkbox.js.map +1 -1
  111. package/dist/components/ui/Chip.cjs +12 -2
  112. package/dist/components/ui/Chip.cjs.map +1 -1
  113. package/dist/components/ui/Chip.d.cts +1 -2
  114. package/dist/components/ui/Chip.d.ts +1 -2
  115. package/dist/components/ui/Chip.js +2 -2
  116. package/dist/components/ui/Chip.js.map +1 -1
  117. package/dist/components/ui/Combobox.cjs +171 -233
  118. package/dist/components/ui/Combobox.cjs.map +1 -1
  119. package/dist/components/ui/Combobox.js +171 -233
  120. package/dist/components/ui/Combobox.js.map +1 -1
  121. package/dist/components/ui/Counter.cjs +56 -74
  122. package/dist/components/ui/Counter.cjs.map +1 -1
  123. package/dist/components/ui/Counter.js +56 -74
  124. package/dist/components/ui/Counter.js.map +1 -1
  125. package/dist/components/ui/DatePicker.cjs +44 -68
  126. package/dist/components/ui/DatePicker.cjs.map +1 -1
  127. package/dist/components/ui/DatePicker.js +44 -68
  128. package/dist/components/ui/DatePicker.js.map +1 -1
  129. package/dist/components/ui/DismissibleBanner.cjs +13 -16
  130. package/dist/components/ui/DismissibleBanner.cjs.map +1 -1
  131. package/dist/components/ui/DismissibleBanner.d.cts +2 -2
  132. package/dist/components/ui/DismissibleBanner.d.ts +2 -2
  133. package/dist/components/ui/DismissibleBanner.js +13 -16
  134. package/dist/components/ui/DismissibleBanner.js.map +1 -1
  135. package/dist/components/ui/ErrorMessage.cjs +1 -2
  136. package/dist/components/ui/ErrorMessage.cjs.map +1 -1
  137. package/dist/components/ui/ErrorMessage.d.cts +2 -2
  138. package/dist/components/ui/ErrorMessage.d.ts +2 -2
  139. package/dist/components/ui/ErrorMessage.js +1 -2
  140. package/dist/components/ui/ErrorMessage.js.map +1 -1
  141. package/dist/components/ui/Icon.cjs +1 -2
  142. package/dist/components/ui/Icon.cjs.map +1 -1
  143. package/dist/components/ui/Icon.js +1 -2
  144. package/dist/components/ui/Icon.js.map +1 -1
  145. package/dist/components/ui/Input.cjs +48 -68
  146. package/dist/components/ui/Input.cjs.map +1 -1
  147. package/dist/components/ui/Input.js +48 -68
  148. package/dist/components/ui/Input.js.map +1 -1
  149. package/dist/components/ui/InputOtp.cjs +56 -73
  150. package/dist/components/ui/InputOtp.cjs.map +1 -1
  151. package/dist/components/ui/InputOtp.js +56 -73
  152. package/dist/components/ui/InputOtp.js.map +1 -1
  153. package/dist/components/ui/Label.cjs +14 -24
  154. package/dist/components/ui/Label.cjs.map +1 -1
  155. package/dist/components/ui/Label.d.cts +2 -2
  156. package/dist/components/ui/Label.d.ts +2 -2
  157. package/dist/components/ui/Label.js +14 -24
  158. package/dist/components/ui/Label.js.map +1 -1
  159. package/dist/components/ui/LinkButton.cjs +5 -5
  160. package/dist/components/ui/LinkButton.cjs.map +1 -1
  161. package/dist/components/ui/LinkButton.d.cts +1 -2
  162. package/dist/components/ui/LinkButton.d.ts +1 -2
  163. package/dist/components/ui/LinkButton.js +5 -5
  164. package/dist/components/ui/LinkButton.js.map +1 -1
  165. package/dist/components/ui/ListItem.cjs +32 -48
  166. package/dist/components/ui/ListItem.cjs.map +1 -1
  167. package/dist/components/ui/ListItem.d.cts +2 -2
  168. package/dist/components/ui/ListItem.d.ts +2 -2
  169. package/dist/components/ui/ListItem.js +32 -48
  170. package/dist/components/ui/ListItem.js.map +1 -1
  171. package/dist/components/ui/Map/ClusterMarker.cjs +80 -0
  172. package/dist/components/ui/Map/ClusterMarker.cjs.map +1 -0
  173. package/dist/components/ui/Map/ClusterMarker.d.cts +6 -0
  174. package/dist/components/ui/Map/ClusterMarker.d.ts +6 -0
  175. package/dist/components/ui/Map/ClusterMarker.js +56 -0
  176. package/dist/components/ui/Map/ClusterMarker.js.map +1 -0
  177. package/dist/components/ui/Map/FocusCircle.cjs +86 -0
  178. package/dist/components/ui/Map/FocusCircle.cjs.map +1 -0
  179. package/dist/components/ui/Map/FocusCircle.d.cts +5 -0
  180. package/dist/components/ui/Map/FocusCircle.d.ts +5 -0
  181. package/dist/components/ui/Map/FocusCircle.js +62 -0
  182. package/dist/components/ui/Map/FocusCircle.js.map +1 -0
  183. package/dist/components/ui/Map/IndividualMarker.cjs +60 -0
  184. package/dist/components/ui/Map/IndividualMarker.cjs.map +1 -0
  185. package/dist/components/ui/Map/IndividualMarker.d.cts +6 -0
  186. package/dist/components/ui/Map/IndividualMarker.d.ts +6 -0
  187. package/dist/components/ui/Map/IndividualMarker.js +36 -0
  188. package/dist/components/ui/Map/IndividualMarker.js.map +1 -0
  189. package/dist/components/ui/Map/MapComponent.cjs +401 -0
  190. package/dist/components/ui/Map/MapComponent.cjs.map +1 -0
  191. package/dist/components/ui/Map/MapComponent.d.cts +6 -0
  192. package/dist/components/ui/Map/MapComponent.d.ts +6 -0
  193. package/dist/components/ui/Map/MapComponent.js +367 -0
  194. package/dist/components/ui/Map/MapComponent.js.map +1 -0
  195. package/dist/components/ui/Map/MapContent.cjs +279 -0
  196. package/dist/components/ui/Map/MapContent.cjs.map +1 -0
  197. package/dist/components/ui/Map/MapContent.d.cts +6 -0
  198. package/dist/components/ui/Map/MapContent.d.ts +6 -0
  199. package/dist/components/ui/Map/MapContent.js +255 -0
  200. package/dist/components/ui/Map/MapContent.js.map +1 -0
  201. package/dist/components/ui/Map/clustering.cjs +105 -0
  202. package/dist/components/ui/Map/clustering.cjs.map +1 -0
  203. package/dist/components/ui/Map/clustering.d.cts +17 -0
  204. package/dist/components/ui/Map/clustering.d.ts +17 -0
  205. package/dist/components/ui/Map/clustering.js +77 -0
  206. package/dist/components/ui/Map/clustering.js.map +1 -0
  207. package/dist/components/ui/Map/constants.cjs +65 -0
  208. package/dist/components/ui/Map/constants.cjs.map +1 -0
  209. package/dist/components/ui/Map/constants.d.cts +28 -0
  210. package/dist/components/ui/Map/constants.d.ts +28 -0
  211. package/dist/components/ui/Map/constants.js +34 -0
  212. package/dist/components/ui/Map/constants.js.map +1 -0
  213. package/dist/components/ui/Map/hooks.cjs +96 -0
  214. package/dist/components/ui/Map/hooks.cjs.map +1 -0
  215. package/dist/components/ui/Map/hooks.d.cts +17 -0
  216. package/dist/components/ui/Map/hooks.d.ts +17 -0
  217. package/dist/components/ui/Map/hooks.js +59 -0
  218. package/dist/components/ui/Map/hooks.js.map +1 -0
  219. package/dist/components/ui/Map/index.cjs +402 -0
  220. package/dist/components/ui/Map/index.cjs.map +1 -0
  221. package/dist/components/ui/Map/index.d.cts +3 -0
  222. package/dist/components/ui/Map/index.d.ts +3 -0
  223. package/dist/components/ui/Map/index.js +365 -0
  224. package/dist/components/ui/Map/index.js.map +1 -0
  225. package/dist/components/ui/Map/types.cjs +19 -0
  226. package/dist/components/ui/Map/types.cjs.map +1 -0
  227. package/dist/components/ui/Map/types.d.cts +82 -0
  228. package/dist/components/ui/Map/types.d.ts +82 -0
  229. package/dist/components/ui/Map/types.js +1 -0
  230. package/dist/components/ui/Map/types.js.map +1 -0
  231. package/dist/components/ui/Map/utils.cjs +80 -0
  232. package/dist/components/ui/Map/utils.cjs.map +1 -0
  233. package/dist/components/ui/Map/utils.d.cts +9 -0
  234. package/dist/components/ui/Map/utils.d.ts +9 -0
  235. package/dist/components/ui/Map/utils.js +49 -0
  236. package/dist/components/ui/Map/utils.js.map +1 -0
  237. package/dist/components/ui/PlacesQueryInput.cjs +71 -94
  238. package/dist/components/ui/PlacesQueryInput.cjs.map +1 -1
  239. package/dist/components/ui/PlacesQueryInput.d.cts +2 -2
  240. package/dist/components/ui/PlacesQueryInput.d.ts +2 -2
  241. package/dist/components/ui/PlacesQueryInput.js +71 -94
  242. package/dist/components/ui/PlacesQueryInput.js.map +1 -1
  243. package/dist/components/ui/Radio.cjs +49 -69
  244. package/dist/components/ui/Radio.cjs.map +1 -1
  245. package/dist/components/ui/Radio.js +49 -69
  246. package/dist/components/ui/Radio.js.map +1 -1
  247. package/dist/components/ui/ReadMore.cjs +163 -25
  248. package/dist/components/ui/ReadMore.cjs.map +1 -1
  249. package/dist/components/ui/ReadMore.d.cts +2 -2
  250. package/dist/components/ui/ReadMore.d.ts +2 -2
  251. package/dist/components/ui/ReadMore.js +163 -25
  252. package/dist/components/ui/ReadMore.js.map +1 -1
  253. package/dist/components/ui/Select.cjs +138 -172
  254. package/dist/components/ui/Select.cjs.map +1 -1
  255. package/dist/components/ui/Select.js +132 -166
  256. package/dist/components/ui/Select.js.map +1 -1
  257. package/dist/components/ui/StepTabs.cjs +24 -27
  258. package/dist/components/ui/StepTabs.cjs.map +1 -1
  259. package/dist/components/ui/StepTabs.d.cts +3 -3
  260. package/dist/components/ui/StepTabs.d.ts +3 -3
  261. package/dist/components/ui/StepTabs.js +24 -27
  262. package/dist/components/ui/StepTabs.js.map +1 -1
  263. package/dist/components/ui/Switch.cjs +13 -21
  264. package/dist/components/ui/Switch.cjs.map +1 -1
  265. package/dist/components/ui/Switch.js +13 -21
  266. package/dist/components/ui/Switch.js.map +1 -1
  267. package/dist/components/ui/buttonShadcn.cjs +1 -2
  268. package/dist/components/ui/buttonShadcn.cjs.map +1 -1
  269. package/dist/components/ui/buttonShadcn.d.cts +1 -1
  270. package/dist/components/ui/buttonShadcn.d.ts +1 -1
  271. package/dist/components/ui/buttonShadcn.js +1 -2
  272. package/dist/components/ui/buttonShadcn.js.map +1 -1
  273. package/dist/components/ui/calendar.cjs +5 -6
  274. package/dist/components/ui/calendar.cjs.map +1 -1
  275. package/dist/components/ui/calendar.d.cts +1 -2
  276. package/dist/components/ui/calendar.d.ts +1 -2
  277. package/dist/components/ui/calendar.js +5 -6
  278. package/dist/components/ui/calendar.js.map +1 -1
  279. package/dist/contexts/WindowHistoryProvider.cjs +1 -2
  280. package/dist/contexts/WindowHistoryProvider.cjs.map +1 -1
  281. package/dist/contexts/WindowHistoryProvider.d.cts +1 -2
  282. package/dist/contexts/WindowHistoryProvider.d.ts +1 -2
  283. package/dist/contexts/WindowHistoryProvider.js +1 -2
  284. package/dist/contexts/WindowHistoryProvider.js.map +1 -1
  285. package/dist/{displayText-DahwdHdi.d.ts → displayText-Ce_aqgGP.d.ts} +2 -2
  286. package/dist/{displayText-DW0qiJqh.d.cts → displayText-Cm8PqS6s.d.cts} +2 -2
  287. package/dist/hooks/useDisplayText.d.cts +3 -3
  288. package/dist/hooks/useDisplayText.d.ts +3 -3
  289. package/dist/hooks/useWindowHistory.cjs +0 -1
  290. package/dist/hooks/useWindowHistory.cjs.map +1 -1
  291. package/dist/hooks/useWindowHistory.d.cts +0 -1
  292. package/dist/hooks/useWindowHistory.d.ts +0 -1
  293. package/dist/hooks/useWindowHistory.js +0 -1
  294. package/dist/hooks/useWindowHistory.js.map +1 -1
  295. package/dist/index.cjs +1343 -1111
  296. package/dist/index.cjs.map +1 -1
  297. package/dist/index.d.cts +8 -8
  298. package/dist/index.d.ts +8 -8
  299. package/dist/index.js +1293 -1061
  300. package/dist/index.js.map +1 -1
  301. package/dist/{job_posting_service_sanity-BKo9TBDT.d.ts → job_posting_service_sanity-1eG3Jh9_.d.ts} +496 -496
  302. package/dist/{job_posting_service_sanity-BNq-Am9N.d.cts → job_posting_service_sanity-DKYye6oH.d.cts} +496 -496
  303. package/dist/lib/locations.d.cts +3 -3
  304. package/dist/lib/locations.d.ts +3 -3
  305. package/dist/lib/mappings.d.cts +3 -3
  306. package/dist/lib/mappings.d.ts +3 -3
  307. package/dist/lib/salaryRange.d.cts +1 -1
  308. package/dist/lib/salaryRange.d.ts +1 -1
  309. package/dist/services/displayText.d.cts +3 -3
  310. package/dist/services/displayText.d.ts +3 -3
  311. package/dist/styles/globals.css +179 -6
  312. package/dist/styles/globals.css.map +1 -1
  313. package/dist/types/data/company_service_latest.d.cts +1 -1
  314. package/dist/types/data/company_service_latest.d.ts +1 -1
  315. package/dist/types/data/job_posting_service_latest.d.cts +1 -1
  316. package/dist/types/data/job_posting_service_latest.d.ts +1 -1
  317. package/dist/types/data/shared_pickle_output_latest.d.cts +1 -1
  318. package/dist/types/data/shared_pickle_output_latest.d.ts +1 -1
  319. package/dist/types/index.d.cts +6 -6
  320. package/dist/types/index.d.ts +6 -6
  321. package/dist/types/latest/company_service_latest.d.cts +1 -1
  322. package/dist/types/latest/company_service_latest.d.ts +1 -1
  323. package/dist/types/latest/custom/company_service_sanity.d.cts +3 -3
  324. package/dist/types/latest/custom/company_service_sanity.d.ts +3 -3
  325. package/dist/types/latest/custom/job_posting_service_sanity.d.cts +3 -3
  326. package/dist/types/latest/custom/job_posting_service_sanity.d.ts +3 -3
  327. package/dist/types/latest/job_posting_service_latest.d.cts +1 -1
  328. package/dist/types/latest/job_posting_service_latest.d.ts +1 -1
  329. package/dist/types/latest/shared_pickle_output_latest.d.cts +1 -1
  330. package/dist/types/latest/shared_pickle_output_latest.d.ts +1 -1
  331. package/package.json +5 -3
  332. package/dist/components/ui/MapComponent.cjs +0 -61
  333. package/dist/components/ui/MapComponent.cjs.map +0 -1
  334. package/dist/components/ui/MapComponent.d.cts +0 -15
  335. package/dist/components/ui/MapComponent.d.ts +0 -15
  336. package/dist/components/ui/MapComponent.js +0 -41
  337. package/dist/components/ui/MapComponent.js.map +0 -1
  338. package/dist/{company_service_latest-CITz7F53.d.cts → company_service_latest-BjyG4KCB.d.cts} +319 -319
  339. package/dist/{company_service_latest-CITz7F53.d.ts → company_service_latest-BjyG4KCB.d.ts} +319 -319
  340. package/dist/{company_service_latest-C7Moeufo.d.cts → company_service_latest-KJi2W9Ij.d.cts} +319 -319
  341. package/dist/{company_service_latest-C7Moeufo.d.ts → company_service_latest-KJi2W9Ij.d.ts} +319 -319
  342. package/dist/{job_posting_service_latest-DdgK8Nnz.d.cts → job_posting_service_latest-82DHqOGu.d.cts} +274 -274
  343. package/dist/{job_posting_service_latest-DdgK8Nnz.d.ts → job_posting_service_latest-82DHqOGu.d.ts} +274 -274
  344. package/dist/{job_posting_service_latest-C_TEBzCf.d.cts → job_posting_service_latest-D9I5NE7l.d.cts} +274 -274
  345. package/dist/{job_posting_service_latest-C_TEBzCf.d.ts → job_posting_service_latest-D9I5NE7l.d.ts} +274 -274
  346. package/dist/{shared_pickle_output_latest-CtvHTPeX.d.cts → shared_pickle_output_latest-YbRs_xtC.d.cts} +22 -22
  347. package/dist/{shared_pickle_output_latest-CtvHTPeX.d.ts → shared_pickle_output_latest-YbRs_xtC.d.ts} +22 -22
  348. package/dist/{shared_pickle_output_latest-CXBCG04N.d.cts → shared_pickle_output_latest-dO-t8iZx.d.cts} +22 -22
  349. package/dist/{shared_pickle_output_latest-CXBCG04N.d.ts → shared_pickle_output_latest-dO-t8iZx.d.ts} +22 -22
@@ -0,0 +1,365 @@
1
+ // src/components/ui/Map/MapComponent.tsx
2
+ import { APIProvider } from "@vis.gl/react-google-maps";
3
+
4
+ // src/components/ui/Map/constants.ts
5
+ var DEFAULT_POSITION = { lat: 40.715021, lng: -74.00459 };
6
+ var DEFAULT_ZOOM = 10;
7
+ var CLUSTER_DISTANCE_THRESHOLD = 1e-3;
8
+ var PIN_COLORS = {
9
+ background: "#0B5441",
10
+ borderColor: "#EBFDF1",
11
+ glyphColor: "#D4F500"
12
+ };
13
+ var FOCUS_CIRCLE_STYLES = {
14
+ strokeColor: "#0B5441",
15
+ strokeOpacity: 0.8,
16
+ strokeWeight: 2,
17
+ fillColor: "#0B5441",
18
+ fillOpacity: 0.1,
19
+ clickable: false,
20
+ zIndex: 1
21
+ };
22
+ var CLUSTERING_CONFIG = {
23
+ radius: 60,
24
+ maxZoom: 16,
25
+ minPoints: 2
26
+ };
27
+
28
+ // src/components/ui/Map/hooks.ts
29
+ import { useMemo, useState } from "react";
30
+ import useSupercluster from "use-supercluster";
31
+
32
+ // src/components/ui/Map/utils.ts
33
+ function getCenterForCoordinates(coords) {
34
+ if (coords.length === 0) return DEFAULT_POSITION;
35
+ const avgLat = coords.reduce((sum, coord) => sum + coord.lat, 0) / coords.length;
36
+ const avgLng = coords.reduce((sum, coord) => sum + coord.lng, 0) / coords.length;
37
+ return { lat: avgLat, lng: avgLng };
38
+ }
39
+ function getZoomForCoordinates(coords, defaultZoom) {
40
+ if (coords.length <= 1) return defaultZoom;
41
+ const lats = coords.map((coord) => coord.lat);
42
+ const lngs = coords.map((coord) => coord.lng);
43
+ const latDiff = Math.max(...lats) - Math.min(...lats);
44
+ const lngDiff = Math.max(...lngs) - Math.min(...lngs);
45
+ const maxDiff = Math.max(latDiff, lngDiff);
46
+ if (maxDiff > 0.1) return 8;
47
+ if (maxDiff > 0.05) return 10;
48
+ if (maxDiff > 0.01) return 12;
49
+ return 14;
50
+ }
51
+ function filterClusterCoordinates(coordinates, clusterLat, clusterLng) {
52
+ return coordinates.filter((coord) => {
53
+ const latDiff = Math.abs(coord.lat - clusterLat);
54
+ const lngDiff = Math.abs(coord.lng - clusterLng);
55
+ const distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);
56
+ return distance < CLUSTER_DISTANCE_THRESHOLD;
57
+ });
58
+ }
59
+
60
+ // src/components/ui/Map/clustering.ts
61
+ function convertCoordinatesToGeoJSON(coordinates) {
62
+ return coordinates.map((coord, index) => ({
63
+ type: "Feature",
64
+ properties: {
65
+ cluster: false,
66
+ pointId: index,
67
+ data: coord.data
68
+ },
69
+ geometry: {
70
+ type: "Point",
71
+ coordinates: [coord.lng, coord.lat]
72
+ }
73
+ }));
74
+ }
75
+
76
+ // src/components/ui/Map/hooks.ts
77
+ function useMapBounds(_coordinates) {
78
+ const [bounds, setBounds] = useState([
79
+ [-180, -85],
80
+ [180, 85]
81
+ ]);
82
+ return { bounds, setBounds };
83
+ }
84
+ function useZoomLevel(initialZoom) {
85
+ const [zoomLevel, setZoomLevel] = useState(initialZoom);
86
+ return { zoomLevel, setZoomLevel };
87
+ }
88
+ function useClusters(coordinates, bounds, zoomLevel) {
89
+ const points = useMemo(() => {
90
+ if (!coordinates) return [];
91
+ return convertCoordinatesToGeoJSON(coordinates);
92
+ }, [coordinates]);
93
+ const { clusters, supercluster } = useSupercluster({
94
+ points,
95
+ bounds: [-180, -85, 180, 85],
96
+ // Use global bounds for consistency
97
+ zoom: zoomLevel || 10,
98
+ options: CLUSTERING_CONFIG
99
+ });
100
+ return { clusters, supercluster };
101
+ }
102
+
103
+ // src/components/ui/Map/MapContent.tsx
104
+ import { AdvancedMarker as AdvancedMarker3, Map, Pin as Pin2, useMap, useMapsLibrary } from "@vis.gl/react-google-maps";
105
+ import { useCallback } from "react";
106
+
107
+ // src/components/ui/Map/ClusterMarker.tsx
108
+ import { AdvancedMarker } from "@vis.gl/react-google-maps";
109
+ function ClusterMarker({
110
+ cluster,
111
+ coordinates,
112
+ onPinClick,
113
+ onPinHover,
114
+ zoomToLevel,
115
+ supercluster
116
+ }) {
117
+ const [lng, lat] = cluster.geometry.coordinates;
118
+ const { point_count: pointCount } = cluster.properties;
119
+ const handleClick = () => {
120
+ const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng);
121
+ onPinClick?.(clusterCoordinates);
122
+ const expansionZoom = supercluster.getClusterExpansionZoom(cluster.id);
123
+ zoomToLevel(expansionZoom);
124
+ };
125
+ const handleMouseEnter = () => {
126
+ const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng);
127
+ onPinHover?.(clusterCoordinates);
128
+ };
129
+ const handleMouseLeave = () => onPinHover?.(null);
130
+ return /* @__PURE__ */ React.createElement(
131
+ AdvancedMarker,
132
+ {
133
+ key: `cluster-${cluster.id}`,
134
+ position: { lat, lng },
135
+ onClick: handleClick,
136
+ onMouseEnter: handleMouseEnter,
137
+ onMouseLeave: handleMouseLeave
138
+ },
139
+ /* @__PURE__ */ React.createElement("div", { className: "relative flex items-center justify-center", id: "CLUSTER_MARKER" }, /* @__PURE__ */ React.createElement("div", { className: "flex h-8 w-8 items-center justify-center rounded-full border-2 border-white bg-red-500 text-sm font-bold text-white shadow-lg" }, pointCount || "?"))
140
+ );
141
+ }
142
+
143
+ // src/components/ui/Map/FocusCircle.tsx
144
+ import { useEffect, useMemo as useMemo2, useRef } from "react";
145
+ function FocusCircle({
146
+ focusPoint,
147
+ radiusMiles,
148
+ map,
149
+ mapsLibrary
150
+ }) {
151
+ const circleRef = useRef(null);
152
+ const circleProps = useMemo2(() => {
153
+ if (!focusPoint || !radiusMiles) return null;
154
+ return {
155
+ center: focusPoint,
156
+ radius: radiusMiles * 1609.34
157
+ };
158
+ }, [focusPoint, radiusMiles]);
159
+ useEffect(() => {
160
+ if (!map || !mapsLibrary || !circleProps) {
161
+ return;
162
+ }
163
+ if (!circleRef.current) {
164
+ const circle = new google.maps.Circle({
165
+ center: circleProps.center,
166
+ radius: circleProps.radius,
167
+ ...FOCUS_CIRCLE_STYLES,
168
+ map
169
+ });
170
+ circleRef.current = circle;
171
+ } else {
172
+ circleRef.current.setCenter(circleProps.center);
173
+ circleRef.current.setRadius(circleProps.radius);
174
+ }
175
+ }, [map, mapsLibrary, circleProps]);
176
+ useEffect(() => {
177
+ return () => {
178
+ if (circleRef.current) {
179
+ circleRef.current.setMap(null);
180
+ circleRef.current = null;
181
+ }
182
+ };
183
+ }, []);
184
+ return null;
185
+ }
186
+
187
+ // src/components/ui/Map/IndividualMarker.tsx
188
+ import { AdvancedMarker as AdvancedMarker2, Pin } from "@vis.gl/react-google-maps";
189
+ function IndividualMarker({
190
+ coordinate,
191
+ onPinClick,
192
+ onPinHover
193
+ }) {
194
+ const handleMouseEnter = () => onPinHover?.(coordinate);
195
+ const handleMouseLeave = () => onPinHover?.(null);
196
+ const handleClick = () => onPinClick?.(coordinate);
197
+ return /* @__PURE__ */ React.createElement(
198
+ AdvancedMarker2,
199
+ {
200
+ position: { lat: coordinate.lat, lng: coordinate.lng },
201
+ onMouseEnter: handleMouseEnter,
202
+ onMouseLeave: handleMouseLeave,
203
+ onClick: handleClick
204
+ },
205
+ /* @__PURE__ */ React.createElement(Pin, { ...PIN_COLORS })
206
+ );
207
+ }
208
+
209
+ // src/lib/utils.ts
210
+ import { clsx } from "clsx";
211
+ import { twMerge } from "tailwind-merge";
212
+ function cn(...inputs) {
213
+ return twMerge(clsx(inputs));
214
+ }
215
+
216
+ // src/components/ui/Map/MapContent.tsx
217
+ function MapContent({
218
+ mapId,
219
+ mapCenter,
220
+ mapZoom,
221
+ position,
222
+ coordinates,
223
+ clusters,
224
+ supercluster,
225
+ onPinHover,
226
+ onPinClick,
227
+ focusPoint,
228
+ radiusMiles,
229
+ className,
230
+ setBounds,
231
+ setZoomLevel
232
+ }) {
233
+ const map = useMap();
234
+ const mapsLibrary = useMapsLibrary("maps");
235
+ const zoomToLevel = useCallback(
236
+ (newZoom) => {
237
+ if (map) {
238
+ map.setZoom(newZoom);
239
+ }
240
+ },
241
+ [map]
242
+ );
243
+ const handleBoundsChanged = (e) => {
244
+ if (e.detail.bounds) {
245
+ const bounds = e.detail.bounds;
246
+ setBounds([
247
+ [bounds.south, bounds.west],
248
+ [bounds.north, bounds.east]
249
+ ]);
250
+ }
251
+ };
252
+ const handleZoomChanged = (e) => {
253
+ if (e.detail.zoom) {
254
+ setZoomLevel(e.detail.zoom);
255
+ }
256
+ };
257
+ const handleCameraChanged = (e) => {
258
+ if (e.detail.zoom) {
259
+ setZoomLevel(e.detail.zoom);
260
+ }
261
+ };
262
+ return /* @__PURE__ */ React.createElement("div", { className: cn("relative h-screen max-w-full", className) }, /* @__PURE__ */ React.createElement(
263
+ Map,
264
+ {
265
+ defaultZoom: mapZoom,
266
+ defaultCenter: mapCenter,
267
+ mapId,
268
+ keyboardShortcuts: true,
269
+ disableDefaultUI: true,
270
+ zoomControl: true,
271
+ onBoundsChanged: handleBoundsChanged,
272
+ onZoomChanged: handleZoomChanged,
273
+ onCameraChanged: handleCameraChanged
274
+ },
275
+ position && !coordinates && /* @__PURE__ */ React.createElement(AdvancedMarker3, { position }, /* @__PURE__ */ React.createElement(Pin2, { ...PIN_COLORS })),
276
+ coordinates && clusters.map((cluster) => {
277
+ const { cluster: isCluster } = cluster.properties;
278
+ if (isCluster) {
279
+ return /* @__PURE__ */ React.createElement(
280
+ ClusterMarker,
281
+ {
282
+ key: `cluster-${cluster.id}`,
283
+ cluster,
284
+ coordinates,
285
+ onPinClick,
286
+ onPinHover,
287
+ zoomToLevel,
288
+ supercluster
289
+ }
290
+ );
291
+ }
292
+ const originalPoint = coordinates[cluster.properties.pointId];
293
+ return /* @__PURE__ */ React.createElement(
294
+ IndividualMarker,
295
+ {
296
+ key: `marker-${cluster.properties.pointId}`,
297
+ coordinate: originalPoint,
298
+ onPinClick,
299
+ onPinHover
300
+ }
301
+ );
302
+ }),
303
+ coordinates && clusters.length === 0 && coordinates.map((coord, index) => /* @__PURE__ */ React.createElement(
304
+ IndividualMarker,
305
+ {
306
+ key: `fallback-${index}`,
307
+ coordinate: coord,
308
+ onPinClick,
309
+ onPinHover
310
+ }
311
+ )),
312
+ focusPoint && radiusMiles && /* @__PURE__ */ React.createElement(
313
+ FocusCircle,
314
+ {
315
+ focusPoint,
316
+ radiusMiles,
317
+ map,
318
+ mapsLibrary
319
+ }
320
+ )
321
+ ));
322
+ }
323
+
324
+ // src/components/ui/Map/MapComponent.tsx
325
+ function MapComponent({
326
+ apiKey,
327
+ mapId,
328
+ position,
329
+ coordinates,
330
+ onPinHover,
331
+ onPinClick,
332
+ focusPoint,
333
+ radiusMiles,
334
+ className,
335
+ zoom = 10
336
+ }) {
337
+ const { bounds, setBounds } = useMapBounds(coordinates);
338
+ const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM);
339
+ const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel);
340
+ const mapCenter = coordinates && coordinates.length > 0 ? getCenterForCoordinates(coordinates) : position || DEFAULT_POSITION;
341
+ const mapZoom = coordinates && coordinates.length > 1 ? getZoomForCoordinates(coordinates, zoom) : position ? zoom : DEFAULT_ZOOM;
342
+ return /* @__PURE__ */ React.createElement(APIProvider, { apiKey }, /* @__PURE__ */ React.createElement(
343
+ MapContent,
344
+ {
345
+ mapId,
346
+ mapCenter,
347
+ mapZoom,
348
+ position,
349
+ coordinates,
350
+ clusters,
351
+ supercluster,
352
+ onPinHover,
353
+ onPinClick,
354
+ focusPoint,
355
+ radiusMiles,
356
+ className,
357
+ setBounds,
358
+ setZoomLevel
359
+ }
360
+ ));
361
+ }
362
+ export {
363
+ MapComponent
364
+ };
365
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/Map/MapComponent.tsx","../../../../src/components/ui/Map/constants.ts","../../../../src/components/ui/Map/hooks.ts","../../../../src/components/ui/Map/utils.ts","../../../../src/components/ui/Map/clustering.ts","../../../../src/components/ui/Map/MapContent.tsx","../../../../src/components/ui/Map/ClusterMarker.tsx","../../../../src/components/ui/Map/FocusCircle.tsx","../../../../src/components/ui/Map/IndividualMarker.tsx","../../../../src/lib/utils.ts"],"sourcesContent":["'use client'\n\nimport { APIProvider } from '@vis.gl/react-google-maps'\n\nimport { DEFAULT_POSITION, DEFAULT_ZOOM } from '@/components/ui/Map/constants'\nimport { useClusters, useMapBounds, useZoomLevel } from '@/components/ui/Map/hooks'\nimport { MapContent } from '@/components/ui/Map/MapContent'\nimport type { MapComponentProps, PinData } from '@/components/ui/Map/types'\nimport { getCenterForCoordinates, getZoomForCoordinates } from '@/components/ui/Map/utils'\n\nexport function MapComponent<T = PinData>({\n apiKey,\n mapId,\n position,\n coordinates,\n onPinHover,\n onPinClick,\n focusPoint,\n radiusMiles,\n className,\n zoom = 10,\n}: Readonly<MapComponentProps<T>>) {\n const { bounds, setBounds } = useMapBounds(coordinates)\n const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM)\n const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel)\n\n const mapCenter =\n coordinates && coordinates.length > 0\n ? getCenterForCoordinates(coordinates)\n : position || DEFAULT_POSITION\n\n const mapZoom =\n coordinates && coordinates.length > 1\n ? getZoomForCoordinates(coordinates, zoom)\n : position\n ? zoom\n : DEFAULT_ZOOM\n\n return (\n <APIProvider apiKey={apiKey}>\n <MapContent\n mapId={mapId}\n mapCenter={mapCenter}\n mapZoom={mapZoom}\n position={position}\n coordinates={coordinates}\n clusters={clusters}\n supercluster={supercluster}\n onPinHover={onPinHover}\n onPinClick={onPinClick}\n focusPoint={focusPoint}\n radiusMiles={radiusMiles}\n className={className}\n setBounds={setBounds}\n setZoomLevel={setZoomLevel}\n />\n </APIProvider>\n )\n}\n","export const DEFAULT_POSITION = { lat: 40.715021, lng: -74.00459 }\nexport const DEFAULT_ZOOM = 10\nexport const CLUSTER_PIN_SCALE = 1.5\nexport const CLUSTER_DISTANCE_THRESHOLD = 0.001\n\nexport const PIN_COLORS = {\n background: '#0B5441',\n borderColor: '#EBFDF1',\n glyphColor: '#D4F500',\n} as const\n\nexport const FOCUS_CIRCLE_STYLES = {\n strokeColor: '#0B5441',\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: '#0B5441',\n fillOpacity: 0.1,\n clickable: false,\n zIndex: 1,\n} as const\n\nexport const CLUSTERING_CONFIG = {\n radius: 60,\n maxZoom: 16,\n minPoints: 2,\n} as const\n","import { useMemo, useState } from 'react'\nimport useSupercluster from 'use-supercluster'\n\nimport { convertCoordinatesToGeoJSON } from '@/components/ui/Map/clustering'\nimport { CLUSTERING_CONFIG } from '@/components/ui/Map/constants'\nimport type { Coordinate, PinData } from '@/components/ui/Map/types'\n\nexport function useMapBounds<T = PinData>(_coordinates?: Coordinate<T>[]) {\n const [bounds, setBounds] = useState<[[number, number], [number, number]]>([\n [-180, -85],\n [180, 85],\n ])\n\n // Use global bounds for stability - let the map handle the actual bounds\n // This prevents constant recalculation that causes clustering instability\n return { bounds, setBounds }\n}\n\nexport function useZoomLevel(initialZoom: number) {\n const [zoomLevel, setZoomLevel] = useState(initialZoom)\n return { zoomLevel, setZoomLevel }\n}\n\nexport function useClusters<T = PinData>(\n coordinates?: Coordinate<T>[],\n bounds?: [[number, number], [number, number]],\n zoomLevel?: number\n) {\n const points = useMemo(() => {\n if (!coordinates) return []\n return convertCoordinatesToGeoJSON<T>(coordinates)\n }, [coordinates])\n\n const { clusters, supercluster } = useSupercluster({\n points,\n bounds: [-180, -85, 180, 85], // Use global bounds for consistency\n zoom: zoomLevel || 10,\n options: CLUSTERING_CONFIG,\n })\n\n return { clusters, supercluster }\n}\n","import { CLUSTER_DISTANCE_THRESHOLD, DEFAULT_POSITION } from '@/components/ui/Map/constants'\nimport type { Coordinate, PinData } from '@/components/ui/Map/types'\n\nexport function getCenterForCoordinates<T = PinData>(coords: Coordinate<T>[]): Coordinate<T> {\n if (coords.length === 0) return DEFAULT_POSITION as Coordinate<T>\n\n const avgLat = coords.reduce((sum, coord) => sum + coord.lat, 0) / coords.length\n const avgLng = coords.reduce((sum, coord) => sum + coord.lng, 0) / coords.length\n\n return { lat: avgLat, lng: avgLng }\n}\n\nexport function getZoomForCoordinates<T = PinData>(\n coords: Coordinate<T>[],\n defaultZoom: number\n): number {\n if (coords.length <= 1) return defaultZoom\n\n const lats = coords.map((coord) => coord.lat)\n const lngs = coords.map((coord) => coord.lng)\n\n const latDiff = Math.max(...lats) - Math.min(...lats)\n const lngDiff = Math.max(...lngs) - Math.min(...lngs)\n const maxDiff = Math.max(latDiff, lngDiff)\n\n if (maxDiff > 0.1) return 8\n if (maxDiff > 0.05) return 10\n if (maxDiff > 0.01) return 12\n return 14\n}\n\nexport function getClusteringRadius(zoom: number): number {\n if (zoom <= 8) return 200\n if (zoom <= 12) return 150\n return 100\n}\n\nexport function filterClusterCoordinates<T = PinData>(\n coordinates: Coordinate<T>[],\n clusterLat: number,\n clusterLng: number\n): Coordinate<T>[] {\n return coordinates.filter((coord) => {\n const latDiff = Math.abs(coord.lat - clusterLat)\n const lngDiff = Math.abs(coord.lng - clusterLng)\n const distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff)\n return distance < CLUSTER_DISTANCE_THRESHOLD\n })\n}\n\nexport function calculateDistance<T = PinData>(\n coord1: Coordinate<T>,\n coord2: Coordinate<T>\n): number {\n const latDiff = Math.abs(coord1.lat - coord2.lat)\n const lngDiff = Math.abs(coord1.lng - coord2.lng)\n return Math.sqrt(latDiff * latDiff + lngDiff * lngDiff)\n}\n","import { CLUSTER_DISTANCE_THRESHOLD } from '@/components/ui/Map/constants'\nimport type { ClusterFeature, Coordinate, PinData } from '@/components/ui/Map/types'\nimport { calculateDistance } from '@/components/ui/Map/utils'\n\nexport function convertCoordinatesToGeoJSON<T = PinData>(coordinates: Coordinate<T>[]) {\n return coordinates.map((coord, index) => ({\n type: 'Feature' as const,\n properties: {\n cluster: false,\n pointId: index,\n data: coord.data,\n },\n geometry: {\n type: 'Point' as const,\n coordinates: [coord.lng, coord.lat],\n },\n }))\n}\n\nexport function createManualClusters<T = PinData>(\n coordinates: Coordinate<T>[]\n): ClusterFeature<T>[] {\n if (!coordinates || coordinates.length === 0) return []\n\n const clusters: ClusterFeature<T>[] = []\n const processed = new Set<number>()\n\n coordinates.forEach((coord, index) => {\n if (processed.has(index)) return\n\n const nearby: number[] = [index]\n coordinates.forEach((otherCoord, otherIndex) => {\n if (otherIndex === index || processed.has(otherIndex)) return\n\n const distance = calculateDistance(coord, otherCoord)\n\n if (distance < CLUSTER_DISTANCE_THRESHOLD) {\n nearby.push(otherIndex)\n }\n })\n\n if (nearby.length >= 2) {\n clusters.push({\n type: 'Feature' as const,\n properties: {\n cluster: true,\n point_count: nearby.length,\n },\n geometry: {\n type: 'Point' as const,\n coordinates: [coord.lng, coord.lat],\n },\n id: clusters.length,\n })\n\n nearby.forEach((i) => processed.add(i))\n } else {\n clusters.push({\n type: 'Feature' as const,\n properties: {\n cluster: false,\n pointId: index,\n data: coord.data,\n },\n geometry: {\n type: 'Point' as const,\n coordinates: [coord.lng, coord.lat],\n },\n id: clusters.length,\n })\n processed.add(index)\n }\n })\n\n return clusters\n}\n","'use client'\n\nimport { AdvancedMarker, Map, Pin, useMap, useMapsLibrary } from '@vis.gl/react-google-maps'\nimport { useCallback } from 'react'\n\nimport { ClusterMarker } from '@/components/ui/Map/ClusterMarker'\nimport { PIN_COLORS } from '@/components/ui/Map/constants'\nimport { FocusCircle } from '@/components/ui/Map/FocusCircle'\nimport { IndividualMarker } from '@/components/ui/Map/IndividualMarker'\nimport type { MapContentProps, PinData } from '@/components/ui/Map/types'\nimport { cn } from '@/lib/utils'\n\nexport function MapContent<T = PinData>({\n mapId,\n mapCenter,\n mapZoom,\n position,\n coordinates,\n clusters,\n supercluster,\n onPinHover,\n onPinClick,\n focusPoint,\n radiusMiles,\n className,\n setBounds,\n setZoomLevel,\n}: MapContentProps<T>) {\n const map = useMap()\n const mapsLibrary = useMapsLibrary('maps')\n\n const zoomToLevel = useCallback(\n (newZoom: number) => {\n if (map) {\n map.setZoom(newZoom)\n }\n },\n [map]\n )\n\n const handleBoundsChanged = (e: {\n detail: { bounds: { south: number; west: number; north: number; east: number } }\n }) => {\n if (e.detail.bounds) {\n const bounds = e.detail.bounds\n setBounds([\n [bounds.south, bounds.west],\n [bounds.north, bounds.east],\n ])\n }\n }\n\n const handleZoomChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n const handleCameraChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n return (\n <div className={cn('relative h-screen max-w-full', className)}>\n <Map\n defaultZoom={mapZoom}\n defaultCenter={mapCenter}\n mapId={mapId}\n keyboardShortcuts={true}\n disableDefaultUI={true}\n zoomControl={true}\n onBoundsChanged={handleBoundsChanged}\n onZoomChanged={handleZoomChanged}\n onCameraChanged={handleCameraChanged}\n >\n {position && !coordinates && (\n <AdvancedMarker position={position}>\n <Pin {...PIN_COLORS} />\n </AdvancedMarker>\n )}\n\n {coordinates &&\n clusters.map((cluster) => {\n const { cluster: isCluster } = cluster.properties\n\n if (isCluster) {\n return (\n <ClusterMarker\n key={`cluster-${cluster.id}`}\n cluster={cluster}\n coordinates={coordinates}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n zoomToLevel={zoomToLevel}\n supercluster={supercluster}\n />\n )\n }\n\n const originalPoint = coordinates[cluster.properties.pointId!]\n return (\n <IndividualMarker\n key={`marker-${cluster.properties.pointId}`}\n coordinate={originalPoint}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n />\n )\n })}\n\n {coordinates &&\n clusters.length === 0 &&\n coordinates.map((coord, index) => (\n <IndividualMarker\n key={`fallback-${index}`}\n coordinate={coord}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n />\n ))}\n\n {focusPoint && radiusMiles && (\n <FocusCircle\n focusPoint={focusPoint}\n radiusMiles={radiusMiles}\n map={map}\n mapsLibrary={mapsLibrary}\n />\n )}\n </Map>\n </div>\n )\n}\n","'use client'\n\nimport { AdvancedMarker } from '@vis.gl/react-google-maps'\n\nimport type { ClusterMarkerProps, PinData } from '@/components/ui/Map/types'\nimport { filterClusterCoordinates } from '@/components/ui/Map/utils'\n\nexport function ClusterMarker<T = PinData>({\n cluster,\n coordinates,\n onPinClick,\n onPinHover,\n zoomToLevel,\n supercluster,\n}: ClusterMarkerProps<T>) {\n const [lng, lat] = cluster.geometry.coordinates\n const { point_count: pointCount } = cluster.properties\n\n const handleClick = () => {\n const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng)\n onPinClick?.(clusterCoordinates)\n\n const expansionZoom = supercluster.getClusterExpansionZoom(cluster.id)\n zoomToLevel(expansionZoom)\n }\n\n const handleMouseEnter = () => {\n const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng)\n onPinHover?.(clusterCoordinates)\n }\n\n const handleMouseLeave = () => onPinHover?.(null)\n\n return (\n <AdvancedMarker\n key={`cluster-${cluster.id}`}\n position={{ lat, lng }}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div className=\"relative flex items-center justify-center\" id=\"CLUSTER_MARKER\">\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full border-2 border-white bg-red-500 text-sm font-bold text-white shadow-lg\">\n {pointCount || '?'}\n </div>\n </div>\n </AdvancedMarker>\n )\n}\n","'use client'\n\nimport { useEffect, useMemo, useRef } from 'react'\n\nimport { FOCUS_CIRCLE_STYLES } from '@/components/ui/Map/constants'\nimport type { FocusCircleProps, PinData } from '@/components/ui/Map/types'\n\nexport function FocusCircle<T = PinData>({\n focusPoint,\n radiusMiles,\n map,\n mapsLibrary,\n}: FocusCircleProps<T>) {\n const circleRef = useRef<google.maps.Circle | null>(null)\n\n const circleProps = useMemo(() => {\n if (!focusPoint || !radiusMiles) return null\n return {\n center: focusPoint,\n radius: radiusMiles * 1609.34,\n }\n }, [focusPoint, radiusMiles])\n\n useEffect(() => {\n if (!map || !mapsLibrary || !circleProps) {\n return\n }\n\n if (!circleRef.current) {\n const circle = new google.maps.Circle({\n center: circleProps.center,\n radius: circleProps.radius,\n ...FOCUS_CIRCLE_STYLES,\n map: map,\n })\n\n circleRef.current = circle\n } else {\n circleRef.current.setCenter(circleProps.center)\n circleRef.current.setRadius(circleProps.radius)\n }\n }, [map, mapsLibrary, circleProps])\n\n useEffect(() => {\n return () => {\n if (circleRef.current) {\n circleRef.current.setMap(null)\n circleRef.current = null\n }\n }\n }, [])\n\n return null\n}\n","'use client'\n\nimport { AdvancedMarker, Pin } from '@vis.gl/react-google-maps'\n\nimport { PIN_COLORS } from '@/components/ui/Map/constants'\nimport type { IndividualMarkerProps, PinData } from '@/components/ui/Map/types'\n\nexport function IndividualMarker<T = PinData>({\n coordinate,\n onPinClick,\n onPinHover,\n}: IndividualMarkerProps<T>) {\n const handleMouseEnter = () => onPinHover?.(coordinate)\n const handleMouseLeave = () => onPinHover?.(null)\n const handleClick = () => onPinClick?.(coordinate)\n\n return (\n <AdvancedMarker\n position={{ lat: coordinate.lat, lng: coordinate.lng }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onClick={handleClick}\n >\n <Pin {...PIN_COLORS} />\n </AdvancedMarker>\n )\n}\n","import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"mappings":"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","names":["AdvancedMarker","Pin","useMemo","useMemo","AdvancedMarker","AdvancedMarker","AdvancedMarker","Pin"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/components/ui/Map/types.ts
17
+ var types_exports = {};
18
+ module.exports = __toCommonJS(types_exports);
19
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ui/Map/types.ts"],"sourcesContent":["// Base pin data interface\nexport interface PinData {\n name?: string\n type?: string\n}\n\n// Generic coordinate interface with typed data\nexport interface Coordinate<T = PinData> {\n lat: number\n lng: number\n data?: T\n}\n\n// Type alias for common use cases\nexport type LocationCoordinate = Coordinate<PinData>\n\n// Cluster-related interfaces\nexport interface ClusterPinData {\n coordinates: Coordinate[]\n count: number\n}\n\nexport interface ClusterFeature<T = PinData> {\n type: 'Feature'\n properties: {\n cluster: boolean\n point_count?: number\n pointId?: number\n data?: T\n }\n geometry: {\n type: 'Point'\n coordinates: [number, number]\n }\n id: number\n}\n\nexport interface SuperclusterInstance {\n getClusterExpansionZoom(clusterId: number): number\n}\n\nexport type PinEventHandler<T = PinData> = (pin: Coordinate<T> | Coordinate<T>[] | null) => void\n\nexport type PinClickHandler<T = PinData> = (pin: Coordinate<T> | Coordinate<T>[]) => void\n\nexport interface MapComponentProps<T = PinData> {\n apiKey: string\n mapId: string\n position?: Coordinate<T>\n coordinates?: Coordinate<T>[]\n onPinHover?: PinEventHandler<T>\n onPinClick?: PinClickHandler<T>\n focusPoint?: Coordinate<T>\n radiusMiles?: number\n className?: string\n zoom?: number\n}\n\nexport interface MapContentProps<T = PinData> {\n mapId: string\n mapCenter: Coordinate<T>\n mapZoom: number\n position?: Coordinate<T>\n coordinates?: Coordinate<T>[]\n clusters: ClusterFeature<T>[]\n supercluster: SuperclusterInstance\n onPinHover?: PinEventHandler<T>\n onPinClick?: PinClickHandler<T>\n focusPoint?: Coordinate<T>\n radiusMiles?: number\n className?: string\n setBounds: (bounds: [[number, number], [number, number]]) => void\n setZoomLevel: (zoom: number) => void\n}\n\nexport interface ClusterMarkerProps<T = PinData> {\n cluster: ClusterFeature<T>\n coordinates: Coordinate<T>[]\n onPinClick?: PinClickHandler<T>\n onPinHover?: PinEventHandler<T>\n zoomToLevel: (zoom: number) => void\n supercluster: SuperclusterInstance\n}\n\nexport interface IndividualMarkerProps<T = PinData> {\n coordinate: Coordinate<T>\n onPinClick?: PinClickHandler<T>\n onPinHover?: PinEventHandler<T>\n}\n\nexport interface FocusCircleProps<T = PinData> {\n focusPoint: Coordinate<T>\n radiusMiles: number\n map: google.maps.Map | null\n mapsLibrary: google.maps.MapsLibrary | null\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,82 @@
1
+ interface PinData {
2
+ name?: string;
3
+ type?: string;
4
+ }
5
+ interface Coordinate<T = PinData> {
6
+ lat: number;
7
+ lng: number;
8
+ data?: T;
9
+ }
10
+ type LocationCoordinate = Coordinate<PinData>;
11
+ interface ClusterPinData {
12
+ coordinates: Coordinate[];
13
+ count: number;
14
+ }
15
+ interface ClusterFeature<T = PinData> {
16
+ type: 'Feature';
17
+ properties: {
18
+ cluster: boolean;
19
+ point_count?: number;
20
+ pointId?: number;
21
+ data?: T;
22
+ };
23
+ geometry: {
24
+ type: 'Point';
25
+ coordinates: [number, number];
26
+ };
27
+ id: number;
28
+ }
29
+ interface SuperclusterInstance {
30
+ getClusterExpansionZoom(clusterId: number): number;
31
+ }
32
+ type PinEventHandler<T = PinData> = (pin: Coordinate<T> | Coordinate<T>[] | null) => void;
33
+ type PinClickHandler<T = PinData> = (pin: Coordinate<T> | Coordinate<T>[]) => void;
34
+ interface MapComponentProps<T = PinData> {
35
+ apiKey: string;
36
+ mapId: string;
37
+ position?: Coordinate<T>;
38
+ coordinates?: Coordinate<T>[];
39
+ onPinHover?: PinEventHandler<T>;
40
+ onPinClick?: PinClickHandler<T>;
41
+ focusPoint?: Coordinate<T>;
42
+ radiusMiles?: number;
43
+ className?: string;
44
+ zoom?: number;
45
+ }
46
+ interface MapContentProps<T = PinData> {
47
+ mapId: string;
48
+ mapCenter: Coordinate<T>;
49
+ mapZoom: number;
50
+ position?: Coordinate<T>;
51
+ coordinates?: Coordinate<T>[];
52
+ clusters: ClusterFeature<T>[];
53
+ supercluster: SuperclusterInstance;
54
+ onPinHover?: PinEventHandler<T>;
55
+ onPinClick?: PinClickHandler<T>;
56
+ focusPoint?: Coordinate<T>;
57
+ radiusMiles?: number;
58
+ className?: string;
59
+ setBounds: (bounds: [[number, number], [number, number]]) => void;
60
+ setZoomLevel: (zoom: number) => void;
61
+ }
62
+ interface ClusterMarkerProps<T = PinData> {
63
+ cluster: ClusterFeature<T>;
64
+ coordinates: Coordinate<T>[];
65
+ onPinClick?: PinClickHandler<T>;
66
+ onPinHover?: PinEventHandler<T>;
67
+ zoomToLevel: (zoom: number) => void;
68
+ supercluster: SuperclusterInstance;
69
+ }
70
+ interface IndividualMarkerProps<T = PinData> {
71
+ coordinate: Coordinate<T>;
72
+ onPinClick?: PinClickHandler<T>;
73
+ onPinHover?: PinEventHandler<T>;
74
+ }
75
+ interface FocusCircleProps<T = PinData> {
76
+ focusPoint: Coordinate<T>;
77
+ radiusMiles: number;
78
+ map: google.maps.Map | null;
79
+ mapsLibrary: google.maps.MapsLibrary | null;
80
+ }
81
+
82
+ export type { ClusterFeature, ClusterMarkerProps, ClusterPinData, Coordinate, FocusCircleProps, IndividualMarkerProps, LocationCoordinate, MapComponentProps, MapContentProps, PinClickHandler, PinData, PinEventHandler, SuperclusterInstance };
@@ -0,0 +1,82 @@
1
+ interface PinData {
2
+ name?: string;
3
+ type?: string;
4
+ }
5
+ interface Coordinate<T = PinData> {
6
+ lat: number;
7
+ lng: number;
8
+ data?: T;
9
+ }
10
+ type LocationCoordinate = Coordinate<PinData>;
11
+ interface ClusterPinData {
12
+ coordinates: Coordinate[];
13
+ count: number;
14
+ }
15
+ interface ClusterFeature<T = PinData> {
16
+ type: 'Feature';
17
+ properties: {
18
+ cluster: boolean;
19
+ point_count?: number;
20
+ pointId?: number;
21
+ data?: T;
22
+ };
23
+ geometry: {
24
+ type: 'Point';
25
+ coordinates: [number, number];
26
+ };
27
+ id: number;
28
+ }
29
+ interface SuperclusterInstance {
30
+ getClusterExpansionZoom(clusterId: number): number;
31
+ }
32
+ type PinEventHandler<T = PinData> = (pin: Coordinate<T> | Coordinate<T>[] | null) => void;
33
+ type PinClickHandler<T = PinData> = (pin: Coordinate<T> | Coordinate<T>[]) => void;
34
+ interface MapComponentProps<T = PinData> {
35
+ apiKey: string;
36
+ mapId: string;
37
+ position?: Coordinate<T>;
38
+ coordinates?: Coordinate<T>[];
39
+ onPinHover?: PinEventHandler<T>;
40
+ onPinClick?: PinClickHandler<T>;
41
+ focusPoint?: Coordinate<T>;
42
+ radiusMiles?: number;
43
+ className?: string;
44
+ zoom?: number;
45
+ }
46
+ interface MapContentProps<T = PinData> {
47
+ mapId: string;
48
+ mapCenter: Coordinate<T>;
49
+ mapZoom: number;
50
+ position?: Coordinate<T>;
51
+ coordinates?: Coordinate<T>[];
52
+ clusters: ClusterFeature<T>[];
53
+ supercluster: SuperclusterInstance;
54
+ onPinHover?: PinEventHandler<T>;
55
+ onPinClick?: PinClickHandler<T>;
56
+ focusPoint?: Coordinate<T>;
57
+ radiusMiles?: number;
58
+ className?: string;
59
+ setBounds: (bounds: [[number, number], [number, number]]) => void;
60
+ setZoomLevel: (zoom: number) => void;
61
+ }
62
+ interface ClusterMarkerProps<T = PinData> {
63
+ cluster: ClusterFeature<T>;
64
+ coordinates: Coordinate<T>[];
65
+ onPinClick?: PinClickHandler<T>;
66
+ onPinHover?: PinEventHandler<T>;
67
+ zoomToLevel: (zoom: number) => void;
68
+ supercluster: SuperclusterInstance;
69
+ }
70
+ interface IndividualMarkerProps<T = PinData> {
71
+ coordinate: Coordinate<T>;
72
+ onPinClick?: PinClickHandler<T>;
73
+ onPinHover?: PinEventHandler<T>;
74
+ }
75
+ interface FocusCircleProps<T = PinData> {
76
+ focusPoint: Coordinate<T>;
77
+ radiusMiles: number;
78
+ map: google.maps.Map | null;
79
+ mapsLibrary: google.maps.MapsLibrary | null;
80
+ }
81
+
82
+ export type { ClusterFeature, ClusterMarkerProps, ClusterPinData, Coordinate, FocusCircleProps, IndividualMarkerProps, LocationCoordinate, MapComponentProps, MapContentProps, PinClickHandler, PinData, PinEventHandler, SuperclusterInstance };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}