@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
@@ -2,116 +2,104 @@ import React from 'react';
2
2
  import Grid from '~/components/modules/grid';
3
3
  import Icon from '~/components/modules/icon';
4
4
  import PillWrapper from '~/components/modules/buttons/pill-wrapper';
5
- import { getFieldValue } from '~/util/filterUtil';
6
- import { twMerge } from 'tailwind-merge';
7
5
 
8
6
  const FieldMapperMobile = ({
9
7
  item,
10
8
  fieldsShown,
11
9
  specialFeatures,
12
- specialFeaturePills,
13
10
  handleFavouriteClick,
14
11
  isFavorite,
15
12
  includeFavorite = true
16
13
  }) => {
17
- const specialFeaturePillsRender = field => {
18
- if (field !== 'title' || !specialFeatures || !specialFeaturePills) return null;
19
-
20
- return Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {
21
- // Only show pill if it's configured in specialFeaturePills
22
- if (!specialFeaturePills[featureKey]) return null;
23
-
24
- const value = getFieldValue(item, featureKey);
25
- const customClassName = specialFeaturePills[featureKey]?.className || '';
26
-
27
- // Handle boolean fields (value == 1 or "true")
28
- if (value == 1 || value === 1 || value === '1' || value === 'true' || value === 'True' || value === true) {
29
- return <PillWrapper key={featureKey} className={customClassName}>{featureLabel}</PillWrapper>;
30
- }
31
- // Handle multi-value custom fields - show the value if it's not empty/false
32
- if (value && value !== '' && value !== 'false' && value !== 'False' && value !== '0' && value !== 0) {
33
- return <PillWrapper key={featureKey} className={customClassName}>{featureLabel}: {value}</PillWrapper>;
34
- }
35
- return null;
36
- });
14
+ const specialFeaturePills = field => {
15
+ return field === 'position' && specialFeatures &&
16
+ Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {
17
+ return item.fields[featureKey] == 1 && (
18
+ <PillWrapper key={featureKey}>{featureLabel}</PillWrapper>
19
+ );
20
+ });
37
21
  };
38
22
 
39
23
  return (
40
- <Grid.Item className="md:hc-hidden hc-text-[#5d5e5e]">
41
- {fieldsShown.includes("title") &&
24
+ <Grid.Item className="md:hc-hidden">
25
+ {fieldsShown.includes("position") &&
42
26
  <>
43
- <div className="hc-flex hc-items-start hc-justify-between">
44
- <div className="hc-flex-1">
45
- <div className="hc-font-bold hc-text-primary hc-leading-tight hc-text-sm">{getFieldValue(item, "title")}</div>
46
- {/* Category */}
47
- <div className='hc-pl-2px'>
48
- {fieldsShown.includes("category") && getFieldValue(item, "category") && (
49
- <div className="hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px">
50
- <Icon icon="icon-park-solid:tree-list" size="hc-size-3.5" className="hc-text-[#5d5e5e]" />
51
- <span className="hc-sr-only">category</span>
52
- {getFieldValue(item, "category")}
53
- </div>
54
- )}
55
- {/* SubCategory */}
56
- {fieldsShown.includes("subCategory") && getFieldValue(item, "subCategory") && (
57
- <div className="hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px">
58
- <Icon icon="icon-park-solid:tree-list" size="hc-size-3.5" className="hc-text-[#5d5e5e]" />
59
- <span className="hc-sr-only">subCategory</span>
60
- {getFieldValue(item, "subCategory")}
61
- </div>
62
- )}
63
- {/* Location: cityState OR city, state OR just city OR just state */}
64
- {(fieldsShown.includes("cityState") && getFieldValue(item, "cityState")) && (
65
- <div className="hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px">
66
- <Icon icon="fluent:location-16-filled" size="hc-size-3.5" className="hc-text-[#5d5e5e]" />
67
- <span className="hc-sr-only">Location</span>
68
- {getFieldValue(item, "cityState")}
69
- </div>
70
- )}
71
- {!(fieldsShown.includes("cityState") && getFieldValue(item, "cityState")) && ((fieldsShown.includes("city") && getFieldValue(item, "city")) || (fieldsShown.includes("state") && getFieldValue(item, "state"))) && (
72
- <div className="hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px">
73
- <Icon icon="fluent:location-16-filled" size="hc-size-3.5" className="hc-text-[#5d5e5e]" />
74
- <span className="hc-sr-only">Location</span>
75
- {getFieldValue(item, "city") && getFieldValue(item, "state")
76
- ? `${getFieldValue(item, "city")}, ${getFieldValue(item, "state")}`
77
- : getFieldValue(item, "city") || getFieldValue(item, "state")}
78
- </div>
79
- )}
80
- {/* Schedule */}
81
- {fieldsShown.includes("schedule") && getFieldValue(item, "schedule") && (
82
- <div className="hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px">
83
- <Icon icon="gravity-ui:clock-fill" size="hc-size-3.5" className="hc-text-[#5d5e5e]" />
84
- <span className="hc-sr-only">Schedule</span>
85
- {getFieldValue(item, "schedule")}
86
- </div>
87
- )}
88
- {/* Travel Time */}
89
- {fieldsShown.includes("travelTime") && getFieldValue(item, "travelTime") && (
90
- <div className="hc-flex hc-gap-1 hc-items-center hc-text-xs hc-my-px">
91
- <Icon icon="ri:pin-distance-fill" size="hc-size-3.5" className="hc-text-[#5d5e5e]" />
92
- <span className="hc-sr-only">Commute</span>
93
- {getFieldValue(item, "travelTime")}
94
- </div>
95
- )}
27
+ <div className="hc-flex hc-items-start">
28
+ <div className="hc-flex hc-justify-between hc-items-center hc-min-w-[100%]">
29
+ <h3 className="hc-font-bold hc-mb-3 hc-flex-1">{item.fields.position}</h3>
30
+ {includeFavorite && <div className="hc-flex hc-justify-end hc-pb-2">
31
+ <Icon
32
+ icon={isFavorite ? "mdi:heart" : "mdi:heart-outline"}
33
+ size="hc-size-3.5"
34
+ iconClasses={isFavorite ? "hc-text-primary" : ""}
35
+ className={`hc-transition-opacity hc-duration-300 hc-cursor-pointer
36
+ ${isFavorite ? "hc-opacity-100" : "hc-text-uiText/60 group-hover:hc-opacity-100"}
37
+ `}
38
+ onClick={e => handleFavouriteClick(e, item)}
39
+ />
96
40
  </div>
41
+ }
97
42
  </div>
98
- {includeFavorite && <div className="hc-flex hc-justify-end">
99
- <Icon
100
- icon={isFavorite ? "mdi:heart" : "mdi:heart-outline"}
101
- size="hc-size-3.5"
102
- iconClasses={isFavorite ? "hc-text-primary" : "hc-text-[#5d5e5e]"}
103
- className={`hc-transition-opacity hc-duration-300 hc-cursor-pointer ${isFavorite ? "hc-opacity-100" : ""}`}
104
- onClick={e => handleFavouriteClick(e, item)}
105
- />
106
- </div>
107
- }
108
- </div>
109
-
110
- {specialFeatures && <div className='hc-pb-0'>{specialFeaturePillsRender("title")} </div>}
43
+ </div>
44
+ {specialFeatures && <div className='hc-pb-4'>{specialFeaturePills("position", true)} </div>}
111
45
  </>
112
46
  }
47
+
48
+ <ul className="hc-space-y-2 hc-text-xs">
49
+ {[
50
+ {
51
+ field: "categoryClass",
52
+ name: "categoryClass",
53
+ icon: "icon-park-solid:tree-list"
54
+ },
55
+ {
56
+ field: "category",
57
+ name: "Category",
58
+ icon: "icon-park-solid:tree-list"
59
+ },
60
+ {
61
+ field: "schedule",
62
+ name: "Schedule",
63
+ icon: "gravity-ui:clock-fill"
64
+ },
65
+ {
66
+ field: "city",
67
+ name: "Location",
68
+ icon: "fluent:location-16-filled"
69
+ },
70
+ {
71
+ field: "state",
72
+ name: "Location",
73
+ icon: "fluent:location-16-filled"
74
+ },
75
+ {
76
+ field: "cityState",
77
+ name: "Location",
78
+ icon: "fluent:location-16-filled"
79
+ },
80
+ {
81
+ field: "travelTime",
82
+ name: "Commute",
83
+ icon: "ri:pin-distance-fill"
84
+ }
85
+ ].map(listItem => (
86
+ (fieldsShown.includes(listItem.field) && item.fields[listItem.field]) &&
87
+ <li
88
+ key={listItem.field}
89
+ className="hc-flex hc-gap-2"
90
+ >
91
+ <Icon
92
+ icon={listItem.icon}
93
+ size="hc-size-3.5"
94
+ className="hc-text-uiAccent/30"
95
+ />
96
+ <span className="hc-sr-only">{listItem.name}</span>
97
+ {item.fields[listItem.field]}
98
+ </li>
99
+ ))}
100
+ </ul>
113
101
  </Grid.Item>
114
102
  );
115
103
  };
116
104
 
117
- export default FieldMapperMobile;
105
+ export default FieldMapperMobile;
@@ -57,7 +57,7 @@ const HeaderItem = ({
57
57
  size="none"
58
58
  className={`
59
59
  hc-p-2 hc-rounded-none hc-text-left hc-normal-case hover:hc-bg-uiAccent/5 focus:hc-bg-uiAccent/5
60
- ${field.toLowerCase() === "title" ? "hc-pl-7 hc-col-span-4" : (field.toLowerCase() === "state" || field.toLowerCase() == "favorite") ? "hc-col-span-1" : "hc-col-span-2"}
60
+ ${field.toLowerCase() === "position" ? "hc-pl-7 hc-col-span-4" : (field.toLowerCase() === "state" || field.toLowerCase() == "favorite") ? "hc-col-span-1" : "hc-col-span-2"}
61
61
  ${className ?? ""}
62
62
  `}
63
63
  {...rest}
@@ -66,7 +66,7 @@ const ItemsList: React.FC<ItemsListProps> = ({
66
66
  }, [scrollContainerRef]);
67
67
 
68
68
  return (
69
- <div className="hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col hc-h-full">
69
+ <div className="hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col hc-h-[100%]">
70
70
  <div className="hc-flex hc-flex-wrap hc-items-center hc-justify-between hc-gap-4 md:hc-mb-2 hc-p-3 md:hc-p-0 hc-bg-uiAccent/10 md:hc-bg-transparent hc-border-b md:hc-border-none hc-border-uiAccent/20">
71
71
  <h2 className="hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm">
72
72
  {loading && <span>Loading...</span>}
@@ -94,7 +94,10 @@ const ItemsList: React.FC<ItemsListProps> = ({
94
94
  </div>
95
95
  <div
96
96
  ref={scrollContainerRef}
97
- className="hc-flex-grow hc-overflow-y-auto"
97
+ className={`
98
+ hc-flex-grow hc-overflow-y-auto
99
+ ${showMap ? " hc-max-h-[88%] md:hc-max-[100%]" : "md:hc-max-h-[95%] hc-max-h-[95%]"}
100
+ `}
98
101
  >
99
102
  {loading ? (
100
103
  <div className="hc-flex hc-justify-center hc-items-center hc-pt-20">
@@ -1,8 +1,9 @@
1
- import React, { forwardRef, useState, useEffect, useRef } from 'react';
1
+ import React, { forwardRef } from 'react';
2
2
  import Grid from '~/components/modules/grid';
3
3
  import Icon from '~/components/modules/icon';
4
4
  import FieldMapper from '~/components/modules/list/field-mapper-desktop';
5
5
  import FieldMapperMobile from '~/components/modules/list/field-mapper-mobile';
6
+
6
7
  const ListItem = forwardRef(
7
8
  (
8
9
  {
@@ -13,83 +14,15 @@ const ListItem = forwardRef(
13
14
  fieldsShown,
14
15
  specialFeatures,
15
16
  onItemSelected,
16
- showMap,
17
- setMobileTab,
18
17
  handleSettingFavorites,
19
18
  favorites,
20
19
  includeFavorite = true,
21
20
  siteConfig,
22
- googleMapsApiKey,
23
- index,
21
+ index = 0,
24
22
  ...props
25
23
  },
26
24
  ref
27
25
  ) => {
28
- const mapPinColor = !showMap ? null : siteConfig.colors.primary.replace("#", "");
29
-
30
- // Generate static map URL for mobile
31
- const staticMapUrl = showMap && item.mapDetails?.latitude && item.mapDetails?.longitude
32
- ? `https://maps.googleapis.com/maps/api/staticmap?scale=2&center=${item.mapDetails.latitude},${item.mapDetails.longitude}&zoom=10&size=240x180&maptype=roadmap&markers=color:0x${mapPinColor}%7Clabel:•%7C${item.mapDetails.latitude},${item.mapDetails.longitude}&key=${googleMapsApiKey}`
33
- : null;
34
-
35
- // Mobile detection for bandwidth optimization
36
- const [isMobile, setIsMobile] = useState(false);
37
-
38
- // Individual item loading based on scroll position
39
- const [isMapLoaded, setIsMapLoaded] = useState(false);
40
- const itemRef = useRef(null);
41
-
42
- useEffect(() => {
43
- if (typeof window === 'undefined') return;
44
-
45
- const checkIsMobile = () => {
46
- setIsMobile(window.innerWidth < 768); // md breakpoint in Tailwind
47
- };
48
-
49
- checkIsMobile();
50
- window.addEventListener('resize', checkIsMobile);
51
-
52
- return () => window.removeEventListener('resize', checkIsMobile);
53
- }, []);
54
-
55
- // Load individual map when item comes into view
56
- useEffect(() => {
57
- if (typeof window === 'undefined') return;
58
- if (!isMobile || !showMap || !itemRef.current || isMapLoaded) return;
59
-
60
- const checkIfInView = () => {
61
- if (!itemRef.current || isMapLoaded) return;
62
-
63
- const rect = itemRef.current.getBoundingClientRect();
64
- const windowHeight = window.innerHeight;
65
-
66
- // Load only when item is actually visible or very close to viewport
67
- // Much more conservative - only load what's immediately needed
68
- const isInView = rect.top < windowHeight && rect.bottom > 0;
69
-
70
- if (isInView) {
71
- setIsMapLoaded(true);
72
- }
73
- };
74
-
75
- // Check immediately
76
- checkIfInView();
77
-
78
- // Only check on scroll, not continuously
79
- let scrollTimeout;
80
- const handleScroll = () => {
81
- clearTimeout(scrollTimeout);
82
- scrollTimeout = setTimeout(checkIfInView, 300); // Much less frequent
83
- };
84
-
85
- window.addEventListener('scroll', handleScroll, { passive: true });
86
-
87
- return () => {
88
- window.removeEventListener('scroll', handleScroll);
89
- clearTimeout(scrollTimeout);
90
- };
91
- }, [isMobile, showMap, isMapLoaded]);
92
-
93
26
  const handleClick = () => {
94
27
  if (onItemSelected) {
95
28
  onItemSelected(item);
@@ -111,18 +44,7 @@ const ListItem = forwardRef(
111
44
  };
112
45
  return (
113
46
  <button
114
- ref={el => {
115
- // Forward the ref to the parent component
116
- if (ref) {
117
- if (typeof ref === 'function') {
118
- ref(el);
119
- } else {
120
- ref.current = el;
121
- }
122
- }
123
- // Also store our own ref for scroll detection
124
- itemRef.current = el;
125
- }}
47
+ ref={ref}
126
48
  onClick={() => { handleClick(); }}
127
49
  className={`
128
50
  hc-group hc-relative hc-flex md:hc-flex-col hc-w-full hc-text-left hc-bg-clip-border hc-border hc-border-transparent hc-break-words hc-overflow-hidden hc-cursor-pointer hc-transition-colors hover:hc-bg-uiAccent/5 focus:hover:hc-bg-uiAccent/5
@@ -155,14 +77,18 @@ const ListItem = forwardRef(
155
77
  <FieldMapper
156
78
  item={item}
157
79
  fieldsShown={fieldsShown}
158
- specialFeatures={specialFeatures} specialFeaturePills={siteConfig?.specialFeaturePills} isFavorite={isFavorite}
80
+ specialFeatures={specialFeatures}
81
+ specialFeaturePills={siteConfig?.specialFeaturePills}
82
+ isFavorite={isFavorite}
159
83
  includeFavorite={includeFavorite}
160
84
  handleFavouriteClick={handleFavouriteClick}
161
85
  />
162
86
  <FieldMapperMobile
163
87
  item={item}
164
88
  fieldsShown={fieldsShown}
165
- specialFeatures={specialFeatures} specialFeaturePills={siteConfig?.specialFeaturePills} isFavorite={isFavorite}
89
+ specialFeatures={specialFeatures}
90
+ specialFeaturePills={siteConfig?.specialFeaturePills}
91
+ isFavorite={isFavorite}
166
92
  includeFavorite={includeFavorite}
167
93
  handleFavouriteClick={handleFavouriteClick}
168
94
  />
@@ -200,4 +126,4 @@ export default React.memo(ListItem, (prevProps, nextProps) => {
200
126
  prevProps.bodyClassName === nextProps.bodyClassName &&
201
127
  prevProps.className === nextProps.className
202
128
  );
203
- });
129
+ });
@@ -8,7 +8,7 @@ const MapList = ({ showMap, loading, list, map, filter, mapPosition, containerSt
8
8
  style={containerStyle}
9
9
  className={`
10
10
  ${showMap === false ? "md:hc-grid-rows-[100%]" : "md:hc-grid-rows-[50%_50%]"}
11
- hc-hidden md:hc-grid hc-overflow-hidden hc-relative bg-gray-100
11
+ hc-hidden md:hc-grid md:hc-pt-4 hc-overflow-hidden hc-relative bg-gray-100
12
12
  `}
13
13
  >
14
14
  {mapPosition && mapPosition === 'top' && showMap ? (
@@ -1,7 +1,5 @@
1
- "use client";
2
-
3
- import React, { useState, useEffect } from 'react';
4
- import { GoogleMap, useLoadScript } from "@react-google-maps/api";
1
+ import React from 'react';
2
+ import { GoogleMap } from "@react-google-maps/api";
5
3
  import ShowAllButton from "~/components/modules/buttons/show-all-button";
6
4
 
7
5
  const Map = ({
@@ -20,20 +18,10 @@ const Map = ({
20
18
  setSelectedFilters,
21
19
  children
22
20
  }) => {
23
- // Use state to avoid hydration mismatch
24
- const [isGoogleMapsAvailable, setIsGoogleMapsAvailable] = useState(false);
25
-
26
- useEffect(() => {
27
- // Check if Google Maps is available after mount (client-side only)
28
- if (window.google && window.google.maps && window.google.maps.Map) {
29
- setIsGoogleMapsAvailable(true);
30
- }
31
- }, []);
32
-
33
21
  return (
34
22
  <>
35
- <div ref={mapContainerRef} className="hc-h-full hc-relative">
36
- {isGoogleMapsAvailable && (
23
+ {zoom && center && (
24
+ <div ref={mapContainerRef} className="hc-h-full hc-relative">
37
25
  <GoogleMap
38
26
  zoom={zoom}
39
27
  onLoad={onLoad}
@@ -55,20 +43,20 @@ const Map = ({
55
43
  >
56
44
  {children}
57
45
  </GoogleMap>
58
- )}
59
- {mapInteracted && (
60
- <ShowAllButton
61
- mapInteracted={mapInteracted}
62
- setMapInteracted={setMapInteracted}
63
- fitBounds={fitBounds}
64
- mapRef={mapRef}
65
- pinIconUrl={pinIconUrl}
66
- setQuery={setQuery}
67
- listingCount={filteredListingsLength}
68
- setSelectedFilters={setSelectedFilters}
69
- />
70
- )}
71
- </div>
46
+ {mapInteracted && (
47
+ <ShowAllButton
48
+ mapInteracted={mapInteracted}
49
+ setMapInteracted={setMapInteracted}
50
+ fitBounds={fitBounds}
51
+ mapRef={mapRef}
52
+ pinIconUrl={pinIconUrl}
53
+ setQuery={setQuery}
54
+ listingCount={filteredListingsLength}
55
+ setSelectedFilters={setSelectedFilters}
56
+ />
57
+ )}
58
+ </div>
59
+ )}
72
60
  </>
73
61
  );
74
62
  };
@@ -64,10 +64,10 @@ const MapTabs = ({
64
64
  </Tabs.List>
65
65
 
66
66
  {/* Tab content */}
67
- <div className="hc-flex-grow hc-h-[calc(100vh-180px)] md:hc-h-[calc(100%-48px)]">
67
+ <div className="hc-flex-grow hc-h-[calc(100%-48px)]">
68
68
  {/* List Tab Content */}
69
69
  <Tabs.Content
70
- className="hc-h-full hc-bg-white hc-outline-none"
70
+ className="hc-h-full hc-overflow-auto hc-bg-white hc-outline-none"
71
71
  value="listTab"
72
72
  >
73
73
  {list}
@@ -76,7 +76,7 @@ const MapTabs = ({
76
76
  {/* Map Tab Content */}
77
77
  {showMap && (
78
78
  <Tabs.Content
79
- className="hc-h-[100vh] hc-bg-white hc-outline-none"
79
+ className="hc-h-full hc-overflow-auto hc-bg-white hc-outline-none"
80
80
  value="mapTab"
81
81
  >
82
82
  {map}
@@ -85,7 +85,7 @@ const MapTabs = ({
85
85
 
86
86
  {/* Filter Tab Content */}
87
87
  <Tabs.Content
88
- className="hc-h-full hc-max-h-[calc(100vh-158px)] hc-bg-white hc-outline-none"
88
+ className="hc-h-full hc-bg-white hc-outline-none"
89
89
  value="filterTab"
90
90
  >
91
91
  {filter}
@@ -96,4 +96,4 @@ const MapTabs = ({
96
96
  );
97
97
  };
98
98
 
99
- export default MapTabs;
99
+ export default MapTabs;
@@ -37,62 +37,37 @@ interface MapProviderProps {
37
37
  children: ReactNode;
38
38
  resetFilters: boolean;
39
39
  defaultZoomOverride?: number | null;
40
- localStorageKey?: string;
41
40
  }
42
41
 
43
- export const MapProvider: React.FC<MapProviderProps> = ({ children, resetFilters, defaultZoomOverride, localStorageKey = '' }) => {
44
- // Initialize with defaults to avoid hydration mismatch - load from localStorage after mount
45
- const [selectedListItem, setSelectedListItem] = useState<Listing | null>(null);
46
- const [location, setLocation] = useState<any>(null);
47
- const [center, setCenter] = useState<LatLng>({ lat: 39.8283, lng: -98.5795 });
48
- const [zoom, setZoom] = useState<number>(9);
42
+ export const MapProvider: React.FC<MapProviderProps> = ({ children, resetFilters, defaultZoomOverride }) => {
43
+ const [selectedListItem, setSelectedListItem] = useState<Listing | null>(getStorageObject('selectedListItem'));
44
+ const [location, setLocation] = useState<any>(getStorageObject('location'));
45
+ const [center, setCenter] = useState<LatLng>(getStorageObject("center", { lat: 39.8283, lng: -98.5795 }) || { lat: 39.8283, lng: -98.5795 });
46
+ const [zoom, setZoom] = useState<number>(getStorageObject("zoom", 9) || 9);
49
47
  const [selectedPlaces, setSelectedPlaces] = useState<string[]>([]);
50
48
  const [mapInteracted, setMapInteracted] = useState<boolean>(false);
51
- const [firstLoadListItem, setFirstLoadListItem] = useState<any>({ id: "defaultId" });
49
+ const [firstLoadListItem] = useState<any>(getStorageObject('selectedListItem', { id: "defaultId" }));
52
50
  const userSetZoom = useRef<boolean>(true);
53
- const [hasMounted, setHasMounted] = useState(false);
54
51
 
55
- // Load from localStorage after mount to avoid hydration mismatch
56
52
  useEffect(() => {
57
- if (typeof window !== 'undefined') {
58
- const storedItem = getStorageObject(localStorageKey + 'selectedListItem');
59
- const storedLocation = getStorageObject(localStorageKey + 'location');
60
- const storedCenter = getStorageObject(localStorageKey + "center", { lat: 39.8283, lng: -98.5795 });
61
- const storedZoom = getStorageObject(localStorageKey + "zoom", 9);
62
- const storedFirstLoad = getStorageObject(localStorageKey + 'selectedListItem', { id: "defaultId" });
63
-
64
- if (storedItem) setSelectedListItem(storedItem);
65
- if (storedLocation) setLocation(storedLocation);
66
- if (storedCenter) setCenter(storedCenter);
67
- if (storedZoom) setZoom(storedZoom);
68
- if (storedFirstLoad) setFirstLoadListItem(storedFirstLoad);
69
- setHasMounted(true);
70
- }
71
- }, [localStorageKey]);
53
+ setStorageObject("selectedListItem", selectedListItem);
54
+ }, [selectedListItem]);
72
55
 
73
56
  useEffect(() => {
74
- setStorageObject(localStorageKey + "selectedListItem", selectedListItem);
75
- }, [selectedListItem, localStorageKey]);
57
+ localStorage.setItem("zoom", zoom.toString());
58
+ }, [zoom]);
76
59
 
77
60
  useEffect(() => {
78
- if (typeof window !== 'undefined') {
79
- localStorage.setItem(localStorageKey + "zoom", zoom.toString());
61
+ if (location == null) {
62
+ localStorage.removeItem("location");
63
+ } else {
64
+ setStorageObject("location", location);
80
65
  }
81
- }, [zoom, localStorageKey]);
66
+ }, [location]);
82
67
 
83
68
  useEffect(() => {
84
- if (typeof window !== 'undefined') {
85
- if (location == null) {
86
- localStorage.removeItem(localStorageKey + "location");
87
- } else {
88
- setStorageObject(localStorageKey + "location", location);
89
- }
90
- }
91
- }, [location, localStorageKey]);
92
-
93
- useEffect(() => {
94
- setStorageObject(localStorageKey + "center", center);
95
- }, [center, localStorageKey]);
69
+ setStorageObject("center", center);
70
+ }, [center]);
96
71
 
97
72
  const selectItem = (item: Listing, itemLocation: LatLng | null, zoom: number, center: LatLng) => {
98
73
  setSelectedListItem(item);
@@ -123,9 +98,7 @@ export const MapProvider: React.FC<MapProviderProps> = ({ children, resetFilters
123
98
  }, [resetFilters]);
124
99
 
125
100
  const selectLocationEntity = (location: LatLng) => {
126
- if (typeof window !== 'undefined') {
127
- localStorage.removeItem(localStorageKey + "selectedListItem");
128
- }
101
+ localStorage.removeItem("selectedListItem");
129
102
  setTimeout(() => setLocation(location), 200);
130
103
  setSelectedListItem(null);
131
104
  };