@abcagency/hc-ui-components 1.9.34 → 1.9.36

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 (501) hide show
  1. package/dist/_virtual/jsx-runtime.js +4 -0
  2. package/dist/_virtual/jsx-runtime.js.map +1 -0
  3. package/dist/_virtual/react-jsx-runtime.production.min.js +4 -0
  4. package/dist/_virtual/react-jsx-runtime.production.min.js.map +1 -0
  5. package/dist/apis/hcApi.js +91 -0
  6. package/dist/apis/hcApi.js.map +1 -0
  7. package/dist/clientToken.js +10 -0
  8. package/dist/clientToken.js.map +1 -0
  9. package/dist/components/HireControlMap.js +175 -203
  10. package/dist/components/HireControlMap.js.map +1 -1
  11. package/dist/components/containers/accordions/filter-container.js +9 -22
  12. package/dist/components/containers/accordions/filter-container.js.map +1 -1
  13. package/dist/components/containers/accordions/filter-item-container.js +11 -16
  14. package/dist/components/containers/accordions/filter-item-container.js.map +1 -1
  15. package/dist/components/containers/accordions/map-accordion-item-container.js +12 -37
  16. package/dist/components/containers/accordions/map-accordion-item-container.js.map +1 -1
  17. package/dist/components/containers/filter/commute-container.js +7 -18
  18. package/dist/components/containers/filter/commute-container.js.map +1 -1
  19. package/dist/components/containers/filter/filter-container.js +16 -12
  20. package/dist/components/containers/filter/filter-container.js.map +1 -1
  21. package/dist/components/containers/filter/filter-item-container.js +28 -44
  22. package/dist/components/containers/filter/filter-item-container.js.map +1 -1
  23. package/dist/components/containers/filter/location-container.js +7 -15
  24. package/dist/components/containers/filter/location-container.js.map +1 -1
  25. package/dist/components/containers/filter/points-of-interest-container.js +8 -21
  26. package/dist/components/containers/filter/points-of-interest-container.js.map +1 -1
  27. package/dist/components/containers/filter/points-of-interest-radio-item-container.js +3 -6
  28. package/dist/components/containers/filter/points-of-interest-radio-item-container.js.map +1 -1
  29. package/dist/components/containers/filter/search-container.js +4 -11
  30. package/dist/components/containers/filter/search-container.js.map +1 -1
  31. package/dist/components/containers/jobListing/listing-details-container.js +5 -10
  32. package/dist/components/containers/jobListing/listing-details-container.js.map +1 -1
  33. package/dist/components/containers/list/item-list-container.js +15 -22
  34. package/dist/components/containers/list/item-list-container.js.map +1 -1
  35. package/dist/components/containers/list/list-item/list-item-container.js +5 -16
  36. package/dist/components/containers/list/list-item/list-item-container.js.map +1 -1
  37. package/dist/components/containers/maps/info-window-content-container.js +3 -6
  38. package/dist/components/containers/maps/info-window-content-container.js.map +1 -1
  39. package/dist/components/containers/maps/map-container.js +28 -106
  40. package/dist/components/containers/maps/map-container.js.map +1 -1
  41. package/dist/components/containers/maps/map-list-container.js +7 -35
  42. package/dist/components/containers/maps/map-list-container.js.map +1 -1
  43. package/dist/components/containers/maps/map-marker-container.js +8 -11
  44. package/dist/components/containers/maps/map-marker-container.js.map +1 -1
  45. package/dist/components/modules/accordions/MapAccordionItem.js +5 -5
  46. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
  47. package/dist/components/modules/accordions/default.js +15 -15
  48. package/dist/components/modules/accordions/default.js.map +1 -1
  49. package/dist/components/modules/accordions/filterItem.js +7 -12
  50. package/dist/components/modules/accordions/filterItem.js.map +1 -1
  51. package/dist/components/modules/accordions/filters.js +7 -17
  52. package/dist/components/modules/accordions/filters.js.map +1 -1
  53. package/dist/components/modules/buttons/button-group-apply.js +19 -20
  54. package/dist/components/modules/buttons/button-group-apply.js.map +1 -1
  55. package/dist/components/modules/buttons/default.js +9 -9
  56. package/dist/components/modules/buttons/default.js.map +1 -1
  57. package/dist/components/modules/buttons/items-pill.js +2 -2
  58. package/dist/components/modules/buttons/items-pill.js.map +1 -1
  59. package/dist/components/modules/buttons/pill-wrapper.js +3 -4
  60. package/dist/components/modules/buttons/pill-wrapper.js.map +1 -1
  61. package/dist/components/modules/buttons/show-all-button.js +3 -3
  62. package/dist/components/modules/buttons/show-all-button.js.map +1 -1
  63. package/dist/components/modules/cards/default.js +11 -11
  64. package/dist/components/modules/cards/default.js.map +1 -1
  65. package/dist/components/modules/cards/filter.js +5 -5
  66. package/dist/components/modules/cards/filter.js.map +1 -1
  67. package/dist/components/modules/dialogs/apply-dialog.js +19 -19
  68. package/dist/components/modules/dialogs/apply-dialog.js.map +1 -1
  69. package/dist/components/modules/filter/commute.js +20 -21
  70. package/dist/components/modules/filter/commute.js.map +1 -1
  71. package/dist/components/modules/filter/index.js +30 -122
  72. package/dist/components/modules/filter/index.js.map +1 -1
  73. package/dist/components/modules/filter/item.js +9 -15
  74. package/dist/components/modules/filter/item.js.map +1 -1
  75. package/dist/components/modules/filter/location.js +6 -6
  76. package/dist/components/modules/filter/location.js.map +1 -1
  77. package/dist/components/modules/filter/radio-item.js +6 -6
  78. package/dist/components/modules/filter/radio-item.js.map +1 -1
  79. package/dist/components/modules/filter/search.js +11 -16
  80. package/dist/components/modules/filter/search.js.map +1 -1
  81. package/dist/components/modules/filter/sort.js +28 -28
  82. package/dist/components/modules/filter/sort.js.map +1 -1
  83. package/dist/components/modules/grid.js +4 -4
  84. package/dist/components/modules/grid.js.map +1 -1
  85. package/dist/components/modules/icon.js +4 -4
  86. package/dist/components/modules/icon.js.map +1 -1
  87. package/dist/components/modules/jobListing/listing-details.js +5 -8
  88. package/dist/components/modules/jobListing/listing-details.js.map +1 -1
  89. package/dist/components/modules/list/field-mapper-desktop.js +14 -38
  90. package/dist/components/modules/list/field-mapper-desktop.js.map +1 -1
  91. package/dist/components/modules/list/field-mapper-mobile.js +63 -94
  92. package/dist/components/modules/list/field-mapper-mobile.js.map +1 -1
  93. package/dist/components/modules/list/header-item.js +7 -7
  94. package/dist/components/modules/list/header-item.js.map +1 -1
  95. package/dist/components/modules/list/header.js +5 -5
  96. package/dist/components/modules/list/header.js.map +1 -1
  97. package/dist/components/modules/list/item-expand-card/index.js +3 -3
  98. package/dist/components/modules/list/item-expand-card/index.js.map +1 -1
  99. package/dist/components/modules/list/item-list.js +18 -15
  100. package/dist/components/modules/list/item-list.js.map +1 -1
  101. package/dist/components/modules/list/list-item/list-item.js +18 -95
  102. package/dist/components/modules/list/list-item/list-item.js.map +1 -1
  103. package/dist/components/modules/maps/info-window-card.js +2 -2
  104. package/dist/components/modules/maps/info-window-card.js.map +1 -1
  105. package/dist/components/modules/maps/info-window-content.js +5 -5
  106. package/dist/components/modules/maps/info-window-content.js.map +1 -1
  107. package/dist/components/modules/maps/map-list.js +5 -5
  108. package/dist/components/modules/maps/map-list.js.map +1 -1
  109. package/dist/components/modules/maps/map-marker.js +3 -3
  110. package/dist/components/modules/maps/map-marker.js.map +1 -1
  111. package/dist/components/modules/maps/map.js +5 -17
  112. package/dist/components/modules/maps/map.js.map +1 -1
  113. package/dist/components/modules/maps/place-marker.js +5 -5
  114. package/dist/components/modules/maps/place-marker.js.map +1 -1
  115. package/dist/components/modules/maps/tabs.js +25 -25
  116. package/dist/components/modules/maps/tabs.js.map +1 -1
  117. package/dist/contexts/componentContext.js +68 -6
  118. package/dist/contexts/componentContext.js.map +1 -1
  119. package/dist/contexts/mapContext.js +20 -49
  120. package/dist/contexts/mapContext.js.map +1 -1
  121. package/dist/contexts/mapListContext.js +70 -218
  122. package/dist/contexts/mapListContext.js.map +1 -1
  123. package/dist/contexts/placesContext.js +5 -7
  124. package/dist/contexts/placesContext.js.map +1 -1
  125. package/dist/contexts/themeContext.js +5 -10
  126. package/dist/contexts/themeContext.js.map +1 -1
  127. package/dist/contexts/trackEventContext.js +2 -2
  128. package/dist/contexts/trackEventContext.js.map +1 -1
  129. package/dist/hc_react_map_npm/packages/hc-ui-components/node_modules/tslib/tslib.es6.js +45 -0
  130. package/dist/hc_react_map_npm/packages/hc-ui-components/node_modules/tslib/tslib.es6.js.map +1 -0
  131. package/dist/hooks/useList.js +1 -3
  132. package/dist/hooks/useList.js.map +1 -1
  133. package/dist/index.js +1 -2
  134. package/dist/index.js.map +1 -1
  135. package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js +1 -0
  136. package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js.map +1 -1
  137. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +802 -0
  138. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
  139. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +679 -0
  140. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
  141. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +343 -0
  142. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -0
  143. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +140 -0
  144. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
  145. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +137 -0
  146. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
  147. package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js +33 -0
  148. package/dist/node_modules/@headlessui/react/dist/components/combobox/combobox.js.map +1 -0
  149. package/dist/node_modules/@headlessui/react/dist/components/keyboard.js +4 -0
  150. package/dist/node_modules/@headlessui/react/dist/components/keyboard.js.map +1 -0
  151. package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js +19 -0
  152. package/dist/node_modules/@headlessui/react/dist/components/transitions/transition.js.map +1 -0
  153. package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js +8 -0
  154. package/dist/node_modules/@headlessui/react/dist/components/transitions/utils/transition.js.map +1 -0
  155. package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js +8 -0
  156. package/dist/node_modules/@headlessui/react/dist/hooks/use-computed.js.map +1 -0
  157. package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js +7 -0
  158. package/dist/node_modules/@headlessui/react/dist/hooks/use-controllable.js.map +1 -0
  159. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +7 -0
  160. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -0
  161. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +7 -0
  162. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -0
  163. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +7 -0
  164. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -0
  165. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +7 -0
  166. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -0
  167. package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js +9 -0
  168. package/dist/node_modules/@headlessui/react/dist/hooks/use-id.js.map +1 -0
  169. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +7 -0
  170. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -0
  171. package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js +7 -0
  172. package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -0
  173. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +7 -0
  174. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -0
  175. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +10 -0
  176. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -0
  177. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +7 -0
  178. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -0
  179. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +7 -0
  180. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -0
  181. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +7 -0
  182. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -0
  183. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +7 -0
  184. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -0
  185. package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js +6 -0
  186. package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js.map +1 -0
  187. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +11 -0
  188. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -0
  189. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +8 -0
  190. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -0
  191. package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js +7 -0
  192. package/dist/node_modules/@headlessui/react/dist/hooks/use-watch.js.map +1 -0
  193. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +7 -0
  194. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -0
  195. package/dist/node_modules/@headlessui/react/dist/internal/hidden.js +6 -0
  196. package/dist/node_modules/@headlessui/react/dist/internal/hidden.js.map +1 -0
  197. package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js +6 -0
  198. package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js.map +1 -0
  199. package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js +6 -0
  200. package/dist/node_modules/@headlessui/react/dist/utils/active-element-history.js.map +1 -0
  201. package/dist/node_modules/@headlessui/react/dist/utils/bugs.js +4 -0
  202. package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -0
  203. package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js +4 -0
  204. package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js.map +1 -0
  205. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +4 -0
  206. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -0
  207. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +6 -0
  208. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -0
  209. package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js +4 -0
  210. package/dist/node_modules/@headlessui/react/dist/utils/document-ready.js.map +1 -0
  211. package/dist/node_modules/@headlessui/react/dist/utils/env.js +4 -0
  212. package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -0
  213. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +7 -0
  214. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -0
  215. package/dist/node_modules/@headlessui/react/dist/utils/form.js +4 -0
  216. package/dist/node_modules/@headlessui/react/dist/utils/form.js.map +1 -0
  217. package/dist/node_modules/@headlessui/react/dist/utils/match.js +4 -0
  218. package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -0
  219. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +4 -0
  220. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -0
  221. package/dist/node_modules/@headlessui/react/dist/utils/once.js +4 -0
  222. package/dist/node_modules/@headlessui/react/dist/utils/once.js.map +1 -0
  223. package/dist/node_modules/@headlessui/react/dist/utils/owner.js +6 -0
  224. package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -0
  225. package/dist/node_modules/@headlessui/react/dist/utils/platform.js +4 -0
  226. package/dist/node_modules/@headlessui/react/dist/utils/platform.js.map +1 -0
  227. package/dist/node_modules/@headlessui/react/dist/utils/render.js +11 -0
  228. package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -0
  229. package/dist/node_modules/@iconify/react/dist/iconify.js +1928 -0
  230. package/dist/node_modules/@iconify/react/dist/iconify.js.map +1 -0
  231. package/dist/node_modules/@radix-ui/number/dist/index.js +7 -0
  232. package/dist/node_modules/@radix-ui/number/dist/index.js.map +1 -0
  233. package/dist/node_modules/@radix-ui/primitive/dist/index.js +12 -0
  234. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -0
  235. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +304 -0
  236. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
  237. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +26 -0
  238. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -0
  239. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +145 -0
  240. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
  241. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +69 -0
  242. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
  243. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +19 -0
  244. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
  245. package/dist/node_modules/@radix-ui/react-context/dist/index.js +80 -0
  246. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
  247. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +320 -0
  248. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -0
  249. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +12 -0
  250. package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -0
  251. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +212 -0
  252. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -0
  253. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +27 -0
  254. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -0
  255. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +208 -0
  256. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -0
  257. package/dist/node_modules/@radix-ui/react-id/dist/index.js +16 -0
  258. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -0
  259. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +279 -0
  260. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -0
  261. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +18 -0
  262. package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -0
  263. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +120 -0
  264. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -0
  265. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +42 -0
  266. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
  267. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +221 -0
  268. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -0
  269. package/dist/node_modules/@radix-ui/react-select/dist/index.js +1109 -0
  270. package/dist/node_modules/@radix-ui/react-select/dist/index.js.map +1 -0
  271. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +82 -0
  272. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
  273. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +187 -0
  274. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -0
  275. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +13 -0
  276. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -0
  277. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +47 -0
  278. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -0
  279. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +19 -0
  280. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -0
  281. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +8 -0
  282. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -0
  283. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +16 -0
  284. package/dist/node_modules/@radix-ui/react-use-previous/dist/index.js.map +1 -0
  285. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +41 -0
  286. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -0
  287. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +35 -0
  288. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -0
  289. package/dist/node_modules/@react-google-maps/api/dist/esm.js +8515 -0
  290. package/dist/node_modules/@react-google-maps/api/dist/esm.js.map +1 -0
  291. package/dist/node_modules/@remix-run/router/dist/router.js +271 -0
  292. package/dist/node_modules/@remix-run/router/dist/router.js.map +1 -0
  293. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js +43 -0
  294. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js.map +1 -0
  295. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js +669 -0
  296. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js.map +1 -0
  297. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js +61 -0
  298. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js.map +1 -0
  299. package/dist/node_modules/aria-hidden/dist/es2015/index.js +137 -0
  300. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -0
  301. package/dist/node_modules/fuse.js/dist/fuse.js +1779 -0
  302. package/dist/node_modules/fuse.js/dist/fuse.js.map +1 -0
  303. package/dist/node_modules/get-nonce/dist/es2015/index.js +9 -0
  304. package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -0
  305. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +17 -0
  306. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -0
  307. package/dist/node_modules/react/jsx-runtime.js +12 -0
  308. package/dist/node_modules/react/jsx-runtime.js.map +1 -0
  309. package/dist/node_modules/react-loader-spinner/dist/index.js +134 -83
  310. package/dist/node_modules/react-loader-spinner/dist/index.js.map +1 -1
  311. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +10 -0
  312. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
  313. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +161 -0
  314. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
  315. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +39 -0
  316. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -0
  317. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +22 -0
  318. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
  319. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +107 -0
  320. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
  321. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +6 -0
  322. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -0
  323. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +8 -0
  324. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
  325. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +57 -0
  326. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
  327. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +11 -0
  328. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
  329. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +32 -0
  330. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
  331. package/dist/node_modules/react-router/dist/index.js +280 -0
  332. package/dist/node_modules/react-router/dist/index.js.map +1 -0
  333. package/dist/node_modules/react-router-dom/dist/index.js +201 -0
  334. package/dist/node_modules/react-router-dom/dist/index.js.map +1 -0
  335. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +20 -0
  336. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -0
  337. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +26 -0
  338. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -0
  339. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +52 -0
  340. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -0
  341. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +716 -4
  342. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -1
  343. package/dist/node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +5 -7
  344. package/dist/node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -1
  345. package/dist/node_modules/styled-components/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js.map +1 -1
  346. package/dist/node_modules/stylis/src/Enum.js +2 -2
  347. package/dist/node_modules/stylis/src/Enum.js.map +1 -1
  348. package/dist/node_modules/stylis/src/Middleware.js +59 -49
  349. package/dist/node_modules/stylis/src/Middleware.js.map +1 -1
  350. package/dist/node_modules/stylis/src/Parser.js +135 -137
  351. package/dist/node_modules/stylis/src/Parser.js.map +1 -1
  352. package/dist/node_modules/stylis/src/Prefixer.js +187 -135
  353. package/dist/node_modules/stylis/src/Prefixer.js.map +1 -1
  354. package/dist/node_modules/stylis/src/Serializer.js +21 -18
  355. package/dist/node_modules/stylis/src/Serializer.js.map +1 -1
  356. package/dist/node_modules/stylis/src/Tokenizer.js +121 -117
  357. package/dist/node_modules/stylis/src/Tokenizer.js.map +1 -1
  358. package/dist/node_modules/stylis/src/Utility.js +26 -24
  359. package/dist/node_modules/stylis/src/Utility.js.map +1 -1
  360. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2530 -0
  361. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  362. package/dist/node_modules/tinycolor2/esm/tinycolor.js.map +1 -1
  363. package/dist/node_modules/tslib/tslib.es6.js +13 -1
  364. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  365. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +25 -0
  366. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
  367. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +49 -0
  368. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
  369. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +43 -0
  370. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -0
  371. package/dist/node_modules/use-places-autocomplete/dist/index.esm.js +243 -0
  372. package/dist/node_modules/use-places-autocomplete/dist/index.esm.js.map +1 -0
  373. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +22 -0
  374. package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -0
  375. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +78 -0
  376. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -0
  377. package/dist/services/configService.js +15 -0
  378. package/dist/services/configService.js.map +1 -0
  379. package/dist/services/listingAggregatorService.js +37 -0
  380. package/dist/services/listingAggregatorService.js.map +1 -0
  381. package/dist/services/listingEntityService.js +15 -0
  382. package/dist/services/listingEntityService.js.map +1 -0
  383. package/dist/services/listingService.js +30 -0
  384. package/dist/services/listingService.js.map +1 -0
  385. package/dist/styles/index.css +3 -1
  386. package/dist/types/components/containers/accordions/filter-container.d.ts +11 -0
  387. package/dist/types/components/containers/accordions/map-accordion-item-container.d.ts +1 -2
  388. package/dist/types/components/containers/filter/commute-container.d.ts +5 -0
  389. package/dist/types/components/containers/filter/filter-container.d.ts +7 -0
  390. package/dist/types/components/containers/filter/location-container.d.ts +10 -0
  391. package/dist/types/components/containers/filter/points-of-interest-container.d.ts +10 -0
  392. package/dist/types/components/containers/filter/points-of-interest-radio-item-container.d.ts +8 -0
  393. package/dist/types/components/containers/filter/search-container.d.ts +8 -0
  394. package/dist/types/components/containers/list/list-item/list-item-container.d.ts +1 -3
  395. package/dist/types/components/containers/maps/info-window-content-container.d.ts +5 -0
  396. package/dist/types/components/containers/maps/map-container.d.ts +7 -0
  397. package/dist/types/components/containers/maps/map-list-container.d.ts +15 -0
  398. package/dist/types/components/containers/maps/map-marker-container.d.ts +13 -0
  399. package/dist/types/components/modules/buttons/button-group-apply.d.ts +1 -2
  400. package/dist/types/components/modules/jobListing/listing-details.d.ts +1 -2
  401. package/dist/types/components/modules/list/field-mapper-desktop.d.ts +1 -2
  402. package/dist/types/components/modules/list/field-mapper-mobile.d.ts +1 -2
  403. package/dist/types/components/modules/list/list-item/list-item.d.ts +1 -1
  404. package/dist/types/constants/placeTypes.d.ts +8 -0
  405. package/dist/types/contexts/mapContext.d.ts +0 -1
  406. package/dist/types/contexts/mapListContext.d.ts +2 -54
  407. package/dist/types/contexts/placesContext.d.ts +10 -0
  408. package/dist/types/hooks/useList.d.ts +3 -3
  409. package/dist/types/services/configService.d.ts +6 -0
  410. package/dist/types/services/listingAggregatorService.d.ts +9 -0
  411. package/dist/types/services/listingEntityService.d.ts +6 -0
  412. package/dist/types/services/listingService.d.ts +9 -0
  413. package/dist/types/services/recruiterService.d.ts +6 -0
  414. package/dist/types/types/GetListingParams.d.ts +1 -1
  415. package/dist/types/types/ListingEntity.d.ts +1 -2
  416. package/dist/types/types/ListingFields.d.ts +2 -4
  417. package/dist/types/types/Listings.d.ts +1 -0
  418. package/dist/types/types/config/Colors.d.ts +0 -1
  419. package/dist/types/types/config/MapConfig.d.ts +0 -4
  420. package/dist/types/types/config/PointsOfInterestConfig.d.ts +0 -1
  421. package/dist/types/util/filterUtil.d.ts +8 -12
  422. package/dist/types/util/mapIconUtil.d.ts +24 -0
  423. package/dist/types/util/mapUtil.d.ts +3 -3
  424. package/dist/types/util/urlFilterUtil.d.ts +0 -1
  425. package/dist/util/filterUtil.js +122 -413
  426. package/dist/util/filterUtil.js.map +1 -1
  427. package/dist/util/loading.js +3 -3
  428. package/dist/util/loading.js.map +1 -1
  429. package/dist/util/mapUtil.js +25 -43
  430. package/dist/util/mapUtil.js.map +1 -1
  431. package/dist/util/urlFilterUtil.js +1 -5
  432. package/dist/util/urlFilterUtil.js.map +1 -1
  433. package/package.json +17 -66
  434. package/src/apis/hcApi.ts +2 -9
  435. package/src/components/HireControlMap.js +95 -160
  436. package/src/components/containers/accordions/filter-container.js +4 -14
  437. package/src/components/containers/accordions/filter-item-container.js +5 -7
  438. package/src/components/containers/accordions/map-accordion-item-container.js +7 -28
  439. package/src/components/containers/filter/commute-container.js +4 -15
  440. package/src/components/containers/filter/filter-container.js +13 -8
  441. package/src/components/containers/filter/filter-item-container.js +25 -39
  442. package/src/components/containers/filter/location-container.js +4 -9
  443. package/src/components/containers/filter/points-of-interest-container.js +3 -14
  444. package/src/components/containers/filter/points-of-interest-radio-item-container.js +1 -4
  445. package/src/components/containers/filter/search-container.js +2 -8
  446. package/src/components/containers/jobListing/listing-details-container.js +2 -6
  447. package/src/components/containers/list/item-list-container.tsx +13 -22
  448. package/src/components/containers/list/list-item/list-item-container.js +2 -11
  449. package/src/components/containers/maps/info-window-content-container.js +2 -5
  450. package/src/components/containers/maps/map-container.js +14 -92
  451. package/src/components/containers/maps/map-list-container.js +5 -33
  452. package/src/components/containers/maps/map-marker-container.js +2 -4
  453. package/src/components/modules/accordions/filterItem.js +3 -16
  454. package/src/components/modules/accordions/filters.js +4 -19
  455. package/src/components/modules/buttons/button-group-apply.js +9 -14
  456. package/src/components/modules/buttons/pill-wrapper.js +1 -2
  457. package/src/components/modules/dialogs/apply-dialog.js +2 -2
  458. package/src/components/modules/filter/commute.js +5 -7
  459. package/src/components/modules/filter/index.js +50 -137
  460. package/src/components/modules/filter/item.js +3 -16
  461. package/src/components/modules/filter/search.js +1 -7
  462. package/src/components/modules/jobListing/listing-details.js +3 -5
  463. package/src/components/modules/list/field-mapper-desktop.jsx +13 -32
  464. package/src/components/modules/list/field-mapper-mobile.jsx +80 -92
  465. package/src/components/modules/list/header-item.js +1 -1
  466. package/src/components/modules/list/item-list.tsx +5 -2
  467. package/src/components/modules/list/list-item/list-item.jsx +11 -85
  468. package/src/components/modules/maps/map-list.js +1 -1
  469. package/src/components/modules/maps/map.js +18 -30
  470. package/src/components/modules/maps/tabs.js +5 -5
  471. package/src/contexts/mapContext.tsx +18 -45
  472. package/src/contexts/mapListContext.tsx +86 -308
  473. package/src/contexts/placesContext.js +3 -3
  474. package/src/contexts/themeContext.js +3 -8
  475. package/src/hooks/useList.js +1 -3
  476. package/src/index.js +0 -9
  477. package/src/services/configService.ts +16 -0
  478. package/src/services/listingAggregatorService.ts +58 -0
  479. package/src/services/listingEntityService.ts +16 -0
  480. package/src/services/listingService.ts +40 -0
  481. package/src/services/recruiterService.ts +18 -0
  482. package/src/styles/bundle.css +1 -3
  483. package/src/styles/index.css +2 -4
  484. package/src/types/GetListingParams.ts +1 -1
  485. package/src/types/ListingEntity.ts +1 -2
  486. package/src/types/ListingFields.ts +2 -4
  487. package/src/types/Listings.ts +1 -0
  488. package/src/types/config/Colors.ts +0 -1
  489. package/src/types/config/MapConfig.ts +0 -2
  490. package/src/types/config/PointsOfInterestConfig.ts +0 -1
  491. package/src/util/fieldMapper.js +2 -6
  492. package/src/util/filterUtil.js +55 -261
  493. package/src/util/mapUtil.js +41 -59
  494. package/src/util/urlFilterUtil.js +1 -4
  495. package/README.md +0 -323
  496. package/src/components/modules/maps/map.js.bak +0 -67
  497. package/src/components/modules/maps/map.js.bak2 +0 -67
  498. package/src/contexts/componentContext.tsx +0 -213
  499. package/src/styles/components.css +0 -30
  500. package/src/util/algoliaSearchUtil.js +0 -151
  501. package/src/util/twMerge.js +0 -6
@@ -1,8 +1,7 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import { useTrackEvent } from '~/contexts/trackEventContext';
3
- import { useComponents } from '~/contexts/componentContext';
3
+ import FilterItem from '~/components/modules/filter/item';
4
4
  import { useMapList } from '~/contexts/mapListContext';
5
- import { twMerge } from '~/util/twMerge';
6
5
 
7
6
  const FilterItemContainer = ({
8
7
  className,
@@ -18,38 +17,18 @@ const FilterItemContainer = ({
18
17
  subcategoryRequireCategory = false,
19
18
  ...rest
20
19
  }) => {
21
- // All hooks MUST be called before any early returns
22
- const { FilterItem } = useComponents();
23
20
  const { trackEvent, eventTypes } = useTrackEvent();
24
- const { filteredListings, filterConfig } = useMapList();
25
-
26
- // Initialize itemName and itemKey safely
27
- const itemName = item?.name ? item.name : item;
28
- const safeItemKey = itemKey === null ? itemName : itemKey;
29
- const isActive = selectedFilters != undefined && !!selectedFilters[field]?.[safeItemKey];
21
+ const itemName = item.name ? item.name : item;
22
+ itemKey = itemKey === null ? itemName : itemKey;
23
+ const isActive = selectedFilters != undefined && !!selectedFilters[field]?.[itemKey];
30
24
  const [activeItem, setActiveItem] = useState(isActive);
31
25
 
32
26
  useEffect(() => {
33
27
  if (!selectedFilters || isExternalLink) return;
34
- setActiveItem(!!selectedFilters[field]?.[safeItemKey]);
35
- }, [selectedFilters, field, safeItemKey, isExternalLink]);
36
-
37
- useEffect(() => {
38
- if (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;
39
- else if (activeItem === true) {
40
- setActiveItem(false);
41
- }
42
- }, [selectedFilters, activeItem, field]);
43
-
44
- // NOW we can do the guard check after all hooks
45
- if (!item) {
46
- console.warn('FilterItemContainer received undefined item for field:', field);
47
- return null;
48
- }
49
-
50
- // Re-assign itemKey for the rest of the component
51
- itemKey = safeItemKey;
28
+ setActiveItem(!!selectedFilters[field]?.[itemKey]);
29
+ }, [selectedFilters, field, itemKey]);
52
30
 
31
+ const { filteredListings } = useMapList();
53
32
  const changeHandler = () => {
54
33
  if (!isActive || isExternalLink) {
55
34
  trackEvent(eventTypes.FILTER_APPLIED, { filterType: field, filterChecked: itemKey });
@@ -76,30 +55,30 @@ const FilterItemContainer = ({
76
55
  delete updatedFilters[field];
77
56
  }
78
57
 
79
- if (field === 'category' && subcategoryRequireCategory) {
58
+ if (field === 'categoryClass' && subcategoryRequireCategory) {
80
59
  const activeCategoryClass = itemKey;
81
60
  const categoriesToConsiderForRemoval = new Set(
82
61
  filteredListings
83
- .filter(listing => listing.fields.category === activeCategoryClass)
84
- .flatMap(listing => listing.fields.subCategory || [])
62
+ .filter(listing => listing.fields.categoryClass === activeCategoryClass)
63
+ .flatMap(listing => listing.fields.category || [])
85
64
  );
86
65
 
87
66
  const categoriesToRetain = new Set(
88
67
  filteredListings
89
- .filter(listing => listing.fields.category !== activeCategoryClass)
90
- .flatMap(listing => listing.fields.subCategory || [])
68
+ .filter(listing => listing.fields.categoryClass !== activeCategoryClass)
69
+ .flatMap(listing => listing.fields.category || [])
91
70
  .filter(category => categoriesToConsiderForRemoval.has(category))
92
71
  );
93
72
 
94
- if (updatedFilters['subCategory']) {
95
- Object.keys(updatedFilters['subCategory']).forEach(categoryKey => {
73
+ if (updatedFilters['category']) {
74
+ Object.keys(updatedFilters['category']).forEach(categoryKey => {
96
75
  if (categoriesToConsiderForRemoval.has(categoryKey) && !categoriesToRetain.has(categoryKey)) {
97
- delete updatedFilters['subCategory'][categoryKey];
76
+ delete updatedFilters['category'][categoryKey];
98
77
  }
99
78
  });
100
79
 
101
- if (Object.keys(updatedFilters['subCategory']).length === 0) {
102
- delete updatedFilters['subCategory'];
80
+ if (Object.keys(updatedFilters['category']).length === 0) {
81
+ delete updatedFilters['category'];
103
82
  }
104
83
  }
105
84
  }
@@ -108,9 +87,16 @@ const FilterItemContainer = ({
108
87
  });
109
88
  };
110
89
 
90
+ useEffect(() => {
91
+ if (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;
92
+ else if (activeItem === true) {
93
+ setActiveItem(false);
94
+ }
95
+ }, [selectedFilters]);
96
+
111
97
  return (
112
98
  <FilterItem
113
- className={twMerge(className, filterConfig?.classNames?.filterItem)}
99
+ className={className}
114
100
  item={item}
115
101
  type={type}
116
102
  itemKey={itemKey}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { useComponents } from '~/contexts/componentContext';
2
+ import FilterLocation from '~/components/modules/filter/location';
3
3
  import FilterCommute from '~/components/containers/filter/commute-container';
4
4
  import FilterPointsOfInterest from '~/components/containers/filter/points-of-interest-container';
5
5
  import { useMapList } from '~/contexts/mapListContext';
@@ -12,14 +12,10 @@ const FilterLocationContainer = ({
12
12
  setLocation,
13
13
  setSelectedListItem
14
14
  }) => {
15
- // Get injected FilterLocation component from context
16
- const { FilterLocation } = useComponents();
17
-
18
- const { setSelectedFilters, selectedFilters, filterOptions, noEntities, siteConfig } = useMapList();
15
+ const { setSelectedFilters, selectedFilters, filterOptions } = useMapList();
19
16
 
20
17
  const locations = filterOptions?.locations;
21
18
  const pointsOfInterest = filterOptions?.pointsOfInterest;
22
- const showAtZoomLevel = siteConfig?.pointsOfInterestConfig?.showAtZoomLevel ?? 12;
23
19
 
24
20
  return (
25
21
  <FilterLocation
@@ -33,14 +29,13 @@ const FilterLocationContainer = ({
33
29
  setSelectedFilters={setSelectedFilters}
34
30
  selectedFilters={selectedFilters}
35
31
  >
36
- {showMap && !noEntities && <FilterCommute className="hc-mt-6" />}
37
- {showMap && !noEntities && (
32
+ {showMap && <FilterCommute className="hc-mt-6" />}
33
+ {showMap && (
38
34
  <FilterPointsOfInterest
39
35
  className="hc-mt-4"
40
36
  pointsOfInterest={pointsOfInterest}
41
37
  setDefaultValue={setDefaultValue}
42
38
  defaultValue={defaultValue}
43
- showAtZoomLevel={showAtZoomLevel}
44
39
  />
45
40
  )}
46
41
  </FilterLocation>
@@ -1,26 +1,15 @@
1
1
  import React from 'react';
2
- import { useComponents } from '~/contexts/componentContext';
2
+ import Accordion from '~/components/modules/accordions/default';
3
+ import AccordionFilterItem from '~/components/modules/accordions/filterItem';
3
4
  import RadioItemContainer from '~/components/containers/filter/points-of-interest-radio-item-container';
4
- import { usePlaces } from '~/contexts/placesContext';
5
5
 
6
6
  const FilterPointsOfInterestContainer = ({
7
7
  title = "Points of interest",
8
8
  pointsOfInterest,
9
9
  setDefaultValue,
10
10
  className,
11
- defaultValue,
12
- showAtZoomLevel = 12
11
+ defaultValue
13
12
  }) => {
14
- // Get injected components from context
15
- const { Accordion, FilterItemAccordion: AccordionFilterItem } = useComponents();
16
-
17
- const { currentZoom } = usePlaces();
18
-
19
- // Don't render if zoom level is below threshold
20
- if (currentZoom < showAtZoomLevel) {
21
- return null;
22
- }
23
-
24
13
  const renderRadioItem = (item, index) => (
25
14
  <RadioItemContainer key={item.key + index} item={item} field={item.id} />
26
15
  );
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { useComponents } from '~/contexts/componentContext';
2
+ import RadioItem from '~/components/modules/filter/radio-item';
3
3
  import { useMap } from '~/contexts/mapContext';
4
4
  import { useTrackEvent } from '~/contexts/trackEventContext';
5
5
 
@@ -9,9 +9,6 @@ const RadioItemContainer = ({
9
9
  field,
10
10
  ...rest
11
11
  }) => {
12
- // Get injected FilterRadioItem component from context
13
- const { FilterRadioItem: RadioItem } = useComponents();
14
-
15
12
  const { trackEvent, eventTypes } = useTrackEvent();
16
13
  const { selectedPlaces, setSelectedPlaces } = useMap();
17
14
  const chosenPlace = item.key.toLowerCase();
@@ -1,6 +1,6 @@
1
1
  import React, { useRef, useState, useEffect } from 'react';
2
2
  import { useMapList } from '~/contexts/mapListContext';
3
- import { useComponents } from '~/contexts/componentContext';
3
+ import Search from '~/components/modules/filter/search';
4
4
 
5
5
  const SearchContainer = ({
6
6
  inputPlaceholder = "Keywords",
@@ -8,9 +8,6 @@ const SearchContainer = ({
8
8
  className,
9
9
  labelClassName
10
10
  }) => {
11
- // Get injected FilterSearch component from context
12
- const { FilterSearch: Search } = useComponents();
13
-
14
11
  const { query, setQuery, siteConfig } = useMapList();
15
12
  const [inputValue, setInputValue] = useState(query != null ? query : "");
16
13
  const debounceTimer = useRef(null);
@@ -40,11 +37,8 @@ const SearchContainer = ({
40
37
  setQuery("");
41
38
  };
42
39
 
43
- // Update input value when query changes from context (e.g., loaded from URL or localStorage)
44
40
  useEffect(() => {
45
- if (query !== null && query !== inputValue) {
46
- setInputValue(query);
47
- } else if (query === null || query === "") {
41
+ if (query == null) {
48
42
  setInputValue("");
49
43
  }
50
44
  }, [query]);
@@ -2,15 +2,12 @@ import React from 'react';
2
2
  import { useMap } from '~/contexts/mapContext';
3
3
  import { useMapList } from '~/contexts/mapListContext';
4
4
  import { useTrackEvent } from '~/contexts/trackEventContext';
5
- import { useComponents } from '~/contexts/componentContext';
5
+ import ListingDetails from '~/components/modules/jobListing/listing-details';
6
6
 
7
7
  const ListingDetailsContainer = ({ item, recruiter }) => {
8
- // Get injected ListingDetails component from context
9
- const { ListingDetails } = useComponents();
10
-
11
8
  const { trackEvent, eventTypes } = useTrackEvent();
12
9
  const { travelTime } = useMap();
13
- const { siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, easyApplyUrl, easyApplyText, isIframe, mobileDetailsCallback } = useMapList();
10
+ const { siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, easyApplyUrl, easyApplyText, isIframe } = useMapList();
14
11
 
15
12
  const {
16
13
  useDetailsPostMessage,
@@ -39,7 +36,6 @@ const ListingDetailsContainer = ({ item, recruiter }) => {
39
36
  jobsDomain={jobsDomain}
40
37
  trackEvent={trackEvent}
41
38
  eventTypes={eventTypes}
42
- mobileDetailsCallback={mobileDetailsCallback}
43
39
  />
44
40
  );
45
41
  };
@@ -1,9 +1,10 @@
1
- import React, { useMemo } from 'react';
1
+ import React from 'react';
2
2
  import useListLogic from '~/hooks/useList';
3
3
  import { useMap } from '~/contexts/mapContext';
4
4
  import { useMapList } from '~/contexts/mapListContext';
5
5
  import { useTrackEvent } from '~/contexts/trackEventContext';
6
- import { useComponents } from '~/contexts/componentContext';
6
+ import ItemsList from '~/components/modules/list/item-list';
7
+ import Accordion from '~/components/modules/accordions/default';
7
8
  import MapAccordionItemContainer from '~/components/containers/accordions/map-accordion-item-container';
8
9
  import { dynamicSort } from '~/util/sortUtil';
9
10
  import { Listing } from '~/types/Listings';
@@ -22,28 +23,19 @@ const ItemsListContainer: React.FC<ItemsListContainerProps> = ({
22
23
  fieldsShown,
23
24
  specialFeatures
24
25
  }) => {
25
- // Get injected components from context
26
- const { ItemsList, Accordion } = useComponents();
27
-
28
- const { filteredListings, loading, commuteLocation, sortSetting, setSortSetting, ExpandListComponent, favorites, noEntities } = useMapList();
26
+ const { filteredListings, loading, commuteLocation, sortSetting, setSortSetting, ExpandListComponent, favorites } = useMapList();
29
27
  const { itemLimit, loader, scrollContainerRef, itemRefs } = useListLogic(filteredListings as any);
30
28
  const { selectedListItem } = useMap();
31
29
  const { trackEvent, eventTypes } = useTrackEvent() as any;
32
30
  const itemExpandedContent = (item: any, recruiter: any) =>
33
31
  item ? (ExpandListComponent ? <ExpandListComponent listing={item} /> : <ListingDetailsContainer item={item} recruiter={recruiter} />) : null;
34
32
 
35
- // Use useMemo to avoid hydration mismatch - create new array instead of mutating prop
36
- // CommuteLocation starts as null on both server/client, so no hydration issue
37
- const effectiveFieldsShown = useMemo(() => {
38
- const fields = [...fieldsShown];
39
- if (!fields.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0 && !noEntities) {
40
- fields.push('travelTime');
41
- fieldNames['travelTime'] = 'Commute';
42
- } else if (fields.includes('travelTime') && (!commuteLocation || noEntities)) {
43
- return fields.filter(x => x !== 'travelTime');
44
- }
45
- return fields;
46
- }, [fieldsShown, commuteLocation, noEntities, fieldNames]);
33
+ if (!fieldsShown.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0) {
34
+ fieldsShown.push('travelTime');
35
+ fieldNames['travelTime'] = 'Commute';
36
+ } else if (fieldsShown.includes('travelTime') && !commuteLocation) {
37
+ fieldsShown = fieldsShown.filter(x => x !== 'travelTime');
38
+ }
47
39
 
48
40
  const setTrackedSortSetting = (sortSetting: { field: string; type: string }) => {
49
41
  trackEvent(eventTypes.LIST_SORTED, sortSetting);
@@ -55,7 +47,7 @@ const ItemsListContainer: React.FC<ItemsListContainerProps> = ({
55
47
  <ItemsList
56
48
  fieldNames={fieldNames}
57
49
  showMap={showMap}
58
- fieldsShown={effectiveFieldsShown}
50
+ fieldsShown={fieldsShown}
59
51
  filteredListings={filteredListings}
60
52
  loading={loading}
61
53
  sortSetting={sortSetting}
@@ -67,16 +59,15 @@ const ItemsListContainer: React.FC<ItemsListContainerProps> = ({
67
59
  selectedListItem={selectedListItem}
68
60
  includeFavorite={true}
69
61
  >
70
- <Accordion className="hc-divide-y-0 md:hc-divide-y hc-divide-uiAccent/10" defaultValue={selectedListItem?.id}>
62
+ <Accordion className="hc-divide-y hc-divide-uiAccent/10 hc-z-[1000] hc-h-[100%]" defaultValue={selectedListItem?.id}>
71
63
  {(sortSetting ? dynamicSort(filteredListings, sortSetting.field, sortSetting.type, favorites as any) : filteredListings)
72
64
  .slice(0, itemLimit)
73
65
  .map((item: Listing, index: number) => (
74
66
  <MapAccordionItemContainer
75
67
  key={item.id}
76
- showMap={showMap}
77
68
  item={item}
78
69
  itemRefs={itemRefs}
79
- fieldsShown={effectiveFieldsShown}
70
+ fieldsShown={fieldsShown}
80
71
  itemExpandedContent={itemExpandedContent}
81
72
  specialFeatures={specialFeatures}
82
73
  isActive={selectedListItem?.id === item.id}
@@ -1,27 +1,21 @@
1
1
  import React from 'react';
2
2
  import { useMapList } from '~/contexts/mapListContext';
3
- import { useComponents } from '~/contexts/componentContext';
3
+ import ListItem from '~/components/modules/list/list-item/list-item';
4
4
 
5
5
  const ListItemContainer = ({
6
6
  isActive,
7
- showMap,
8
7
  item,
9
8
  fieldsShown,
10
9
  specialFeatures,
11
10
  bodyClassName,
12
11
  onItemSelected,
13
- index,
14
12
  ...props
15
13
  }) => {
16
- // Get injected ListItem component from context
17
- const { ListItem } = useComponents();
18
-
19
- const { siteConfig, googleMapsApiKey, favorites, handleSettingFavorites, setMobileTab } = useMapList();
14
+ const { favorites, handleSettingFavorites, setMobileTab } = useMapList();
20
15
 
21
16
  return (
22
17
  <ListItem
23
18
  isActive={isActive}
24
- showMap={showMap}
25
19
  item={item}
26
20
  fieldsShown={fieldsShown}
27
21
  specialFeatures={specialFeatures}
@@ -29,11 +23,8 @@ const ListItemContainer = ({
29
23
  bodyClassName={bodyClassName}
30
24
  onItemSelected={onItemSelected}
31
25
  setMobileTab={setMobileTab}
32
- siteConfig={siteConfig}
33
- googleMapsApiKey={googleMapsApiKey}
34
26
  favorites={favorites}
35
27
  handleSettingFavorites={handleSettingFavorites}
36
- index={index}
37
28
  {...props}
38
29
  />
39
30
  );
@@ -1,14 +1,11 @@
1
1
  import React from 'react';
2
- import { useComponents } from '~/contexts/componentContext';
2
+ import InfoWindowContent from '~/components/modules/maps/info-window-content';
3
3
  import { useMapList } from '~/contexts/mapListContext';
4
4
  import { useTrackEvent } from '~/contexts/trackEventContext';
5
5
 
6
6
  const InfoWindowContentContainer = ({
7
7
  item
8
8
  }) => {
9
- // Get injected InfoWindowContent component from context
10
- const { InfoWindowContent } = useComponents();
11
-
12
9
  const { trackEvent, eventTypes } = useTrackEvent();
13
10
  const { setSelectedFilters, setMobileTab, selectedFilters, siteConfig } = useMapList();
14
11
  const fieldsShown = siteConfig.locationFiltersShown;
@@ -60,7 +57,7 @@ const InfoWindowContentContainer = ({
60
57
  newFilters.state = { [items[0].fields.state]: true };
61
58
  filters.push({ filterType: 'state', filterChecked: items[0].fields.state });
62
59
  }
63
-
60
+
64
61
  newFilters.entityName = { [items[0].fields.entityName]: true };
65
62
  filters.push({ filterType: 'entityName', filterChecked: items[0].fields.entityName });
66
63
 
@@ -3,7 +3,7 @@
3
3
  import React, { useEffect, useRef, useState } from "react";
4
4
 
5
5
  import MapMarker from "~/components/containers/maps/map-marker-container";
6
- import { useComponents } from '~/contexts/componentContext';
6
+ import PlaceMarker from "~/components/modules/maps/place-marker";
7
7
 
8
8
  import { usePlaces } from "~/contexts/placesContext";
9
9
  import { useMap } from "~/contexts/mapContext";
@@ -11,44 +11,11 @@ import { useMapList } from "~/contexts/mapListContext";
11
11
 
12
12
  import { markerIconSelected, markerIcon, pinIcon } from "~/util/mapIconUtil";
13
13
 
14
+ import Map from "~/components/modules/maps/map";
14
15
  import { MarkerClustererF, Marker } from "@react-google-maps/api";
15
16
  import { clusterOptions } from "~/util/mapUtil";
16
- import { BallTriangle } from 'react-loader-spinner';
17
17
 
18
18
  const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }) => {
19
- // Get injected components from context
20
- const { Map, PlaceMarker } = useComponents();
21
-
22
- const [isGoogleMapsReady, setIsGoogleMapsReady] = useState(false);
23
-
24
- // Check if Google Maps is loaded
25
- useEffect(() => {
26
- if (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {
27
- console.log('Google Maps already loaded');
28
- setIsGoogleMapsReady(true);
29
- return;
30
- }
31
-
32
- console.log('Waiting for Google Maps to load...');
33
- let attempts = 0;
34
- const maxAttempts = 50; // 5 seconds max
35
-
36
- // Poll for Google Maps to become available
37
- const checkInterval = setInterval(() => {
38
- attempts++;
39
- if (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {
40
- console.log('Google Maps loaded after', attempts * 100, 'ms');
41
- setIsGoogleMapsReady(true);
42
- clearInterval(checkInterval);
43
- } else if (attempts >= maxAttempts) {
44
- console.error('Google Maps failed to load after 5 seconds');
45
- clearInterval(checkInterval);
46
- }
47
- }, 100);
48
-
49
- return () => clearInterval(checkInterval);
50
- }, []);
51
-
52
19
  const {
53
20
  location,
54
21
  zoom,
@@ -66,8 +33,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
66
33
  selectedFilters,
67
34
  setSelectedFilters,
68
35
  setQuery,
69
- siteConfig,
70
- setMapBounds
36
+ siteConfig
71
37
  } = useMapList();
72
38
  const [mapItems, setMapItems] = useState(null);
73
39
  const [markersToHideFromBounds, setMarkersToHideFromBounds] = useState([]);
@@ -97,12 +63,6 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
97
63
  if (newZoom !== currentZoom) {
98
64
  setCurrentZoom(newZoom);
99
65
  }
100
-
101
- // Update map bounds for viewport filtering
102
- if (mapRef.current && setMapBounds) {
103
- const bounds = mapRef.current.getBounds();
104
- setMapBounds(bounds);
105
- }
106
66
  };
107
67
 
108
68
  useEffect(() => {
@@ -168,26 +128,23 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
168
128
  fitBounds(mapRef.current, true);
169
129
  }
170
130
  if (mapRef.current && !mapInteracted) {
171
- const jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;
172
131
  const currZoom = mapRef.current.zoom;
173
- const setZoomVal = currZoom < (jobPinZoomLevel + 1) ? currZoom : jobPinZoomLevel;
132
+ const setZoomVal = currZoom < 13 ? currZoom : 12;
174
133
  mapRef.current.setZoom(setZoomVal);
175
134
  }
176
- }, [filteredListings, siteConfig]);
135
+ }, [filteredListings]);
177
136
 
178
137
  useEffect(() => {
179
138
  if (!mapRef.current || !location || mapInteracted) return;
180
- const jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;
181
139
  mapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));
182
140
  if (mapRef.current) {
183
- const setZoomVal = zoom < (jobPinZoomLevel + 1) ? zoom : jobPinZoomLevel;
141
+ const setZoomVal = zoom < 13 ? zoom : 12;
184
142
  mapRef.current.setZoom(setZoomVal);
185
143
  }
186
- }, [location, zoom, siteConfig]);
144
+ }, [location, zoom, mapRef.current]);
187
145
 
188
146
  const fitBounds = (map, overload = false) => {
189
147
  if ((mapInteracted === false || overload) && mapItems != null) {
190
- if (typeof window === 'undefined' || !window.google) return;
191
148
  const bounds = new window.google.maps.LatLngBounds();
192
149
 
193
150
  mapItems.forEach(item => {
@@ -229,15 +186,6 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
229
186
  setMapInteracted(true);
230
187
  setMarkersToHideFromBounds([]);
231
188
  selectLocationEntity(mapLocation);
232
- const jobPinZoomLevel = siteConfig?.jobPinZoomLevel;
233
- if (jobPinZoomLevel !== undefined && mapRef.current) {
234
- setTimeout(() => {
235
- if (mapRef.current) {
236
- mapRef.current.panTo(new google.maps.LatLng(mapLocation.latitude, mapLocation.longitude));
237
- mapRef.current.setZoom(jobPinZoomLevel);
238
- }
239
- }, 300);
240
- }
241
189
  };
242
190
 
243
191
  const onLoad = map => {
@@ -281,7 +229,6 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
281
229
  }
282
230
 
283
231
  setTimeout(() => {
284
- if (typeof window === 'undefined' || !window.google) return;
285
232
  const bounds = new window.google.maps.LatLngBounds();
286
233
 
287
234
  markers.forEach(marker => {
@@ -306,37 +253,12 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
306
253
  }
307
254
  }, 300);
308
255
  };
309
- if (!isGoogleMapsReady) {
310
- return (
311
- <div className="hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center hc-min-h-[400px]">
312
- <BallTriangle
313
- height={80}
314
- width={80}
315
- radius={5}
316
- color="#2563eb"
317
- ariaLabel="ball-triangle-loading"
318
- wrapperStyle={{}}
319
- wrapperClass=""
320
- visible={true}
321
- />
322
- </div>
323
- );
256
+ if (!mapItems) {
257
+ return null;
324
258
  }
259
+ const mapItemsKey = mapItems.map(item => item.id).join("-");
325
260
 
326
- // Ensure mapItems is an array
327
- const mapItemsArray = Array.isArray(mapItems) ? mapItems : [];
328
-
329
- if (!mapItemsArray || mapItemsArray.length === 0) {
330
- return (
331
- <div className="hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center">
332
- <div className="hc-text-gray-600">No locations to display</div>
333
- </div>
334
- );
335
- }
336
-
337
- const mapItemsKey = mapItemsArray.map(item => item.id).join("-");
338
-
339
-
261
+ console.log(location);
340
262
  return (
341
263
  <Map
342
264
  zoom={zoom}
@@ -370,7 +292,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
370
292
  >
371
293
  {clusterer => (
372
294
  <>
373
- {mapItemsArray.map(item => {
295
+ {mapItems.map(item => {
374
296
  const markerCount = Object.values(item.items).length;
375
297
  return (
376
298
  <MapMarker
@@ -395,7 +317,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
395
317
  currentZoom >= marker.minZoom &&
396
318
  currentZoom <= marker.maxZoom && (
397
319
  <Marker
398
- key={`additional-marker-${marker.title}-${index}`}
320
+ key={`marker-${marker.title}-${index}`}
399
321
  position={marker.position}
400
322
  title={marker.title}
401
323
  icon={{
@@ -409,7 +331,7 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
409
331
  {poiMarkers &&
410
332
  poiMarkers.markers.map((marker, index) => (
411
333
  <PlaceMarker
412
- key={`poi-marker-${marker.title}-${index}`}
334
+ key={`marker-${marker.title}-${index}`}
413
335
  marker={marker}
414
336
  index={index}
415
337
  selectedPlaceMarker={selectedPlaceMarker}
@@ -1,28 +1,9 @@
1
- import React, { lazy, Suspense } from 'react';
2
- import { BallTriangle } from 'react-loader-spinner';
1
+ import React from 'react';
3
2
 
4
3
  import List from '~/components/containers/list/item-list-container';
4
+ import Map from '~/components/containers/maps/map-container';
5
5
  import Filter from '~/components/containers/filter/filter-container';
6
- import { useComponents } from '~/contexts/componentContext';
7
-
8
- // Dynamically import the Map container (Google Maps is heavy)
9
- const Map = lazy(() => import('~/components/containers/maps/map-container'));
10
-
11
- // Loading placeholder that maintains layout
12
- const MapLoadingPlaceholder = () => (
13
- <div className="hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center hc-min-h-[400px]">
14
- <BallTriangle
15
- height={80}
16
- width={80}
17
- radius={5}
18
- color="#2563eb"
19
- ariaLabel="ball-triangle-loading"
20
- wrapperStyle={{}}
21
- wrapperClass=""
22
- visible={true}
23
- />
24
- </div>
25
- );
6
+ import MapList from '~/components/modules/maps/map-list';
26
7
 
27
8
  const MapListContainer = ({
28
9
  loading = false,
@@ -37,9 +18,7 @@ const MapListContainer = ({
37
18
  placeMappings,
38
19
  mapPosition
39
20
  }) => {
40
- // Get injected components from context
41
- const { MapList } = useComponents();
42
-
21
+
43
22
  const listProps = {
44
23
  fieldsShown,
45
24
  fieldNames,
@@ -57,20 +36,13 @@ const MapListContainer = ({
57
36
  showMap
58
37
  };
59
38
 
60
- // Always render map immediately - it handles its own loading state
61
- const mapComponent = showMap ? (
62
- <Suspense fallback={<MapLoadingPlaceholder />}>
63
- <Map {...mapProps} />
64
- </Suspense>
65
- ) : null;
66
-
67
39
  return (
68
40
  <MapList
69
41
  showMap={showMap}
70
42
  containerStyle={containerStyle}
71
43
  loading={loading}
72
44
  list={<List {...listProps} />}
73
- map={mapComponent}
45
+ map={<Map {...mapProps} />}
74
46
  filter={<Filter showMap={showMap} className="md:hc-hidden" />}
75
47
  mapPosition={mapPosition}
76
48
  />