@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,9 @@
1
1
  "use client";
2
2
 
3
3
  import React, { useEffect, useRef } from "react";
4
- import { useComponents } from '~/contexts/componentContext';
4
+ import MapMarker from "~/components/modules/maps/map-marker";
5
5
  import { InfoWindow } from "@react-google-maps/api";
6
+ import InfoWindowCard from "~/components/modules/maps/info-window-card";
6
7
  import InfoWindowContent from "~/components/containers/maps/info-window-content-container";
7
8
 
8
9
  import { useMap } from "~/contexts/mapContext";
@@ -20,9 +21,6 @@ const MapMarkerContainer = ({
20
21
  selectedLocation,
21
22
  setMapInteracted
22
23
  }) => {
23
- // Get injected components from context
24
- const { MapMarker, InfoWindowCard } = useComponents();
25
-
26
24
  const { setLocation, commuteLocation } = useMap();
27
25
  const isSelected = item.id === selectedLocation?.id;
28
26
  const markerRef = useRef(null);
@@ -1,7 +1,5 @@
1
1
  import React from 'react';
2
2
  import Accordion from '~/components/modules/accordions/default';
3
- import { twMerge } from '~/util/twMerge';
4
- import { useMapList } from '~/contexts/mapListContext';
5
3
 
6
4
  const AccordionFilterItem = ({
7
5
  id,
@@ -9,28 +7,17 @@ const AccordionFilterItem = ({
9
7
  header,
10
8
  body
11
9
  }) => {
12
- const { filterConfig } = useMapList();
13
-
14
10
  return (
15
11
  <Accordion.Item key={id} id={id}>
16
12
  <Accordion.Trigger.HasHeader
17
13
  onClick={() => setDefaultValue(id)}
18
- className={twMerge(
19
- "hc-stretched-link hc-text-left",
20
- filterConfig?.classNames?.filterAccordion
21
- )}
14
+ className="hc-stretched-link hc-text-left"
22
15
  iconClassName="hc-order-last"
23
- headerClassName={twMerge(
24
- "hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none",
25
- filterConfig?.classNames?.filterAccordionHeader
26
- )}
16
+ headerClassName="hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none"
27
17
  >
28
18
  {header}
29
19
  </Accordion.Trigger.HasHeader>
30
- <Accordion.Content bodyClassName={twMerge(
31
- "hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto",
32
- filterConfig?.classNames?.filterAccordionContent
33
- )}>
20
+ <Accordion.Content bodyClassName="hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto">
34
21
  {body}
35
22
  </Accordion.Content>
36
23
  </Accordion.Item>
@@ -2,34 +2,19 @@ import React from 'react';
2
2
  import Accordion from '~/components/modules/accordions/default';
3
3
  import FilterCard from '~/components/modules/cards/filter';
4
4
  import Loading from '~/util/loading';
5
- import Button from '~/components/modules/buttons/default';
6
5
 
7
6
  const AccordionFilters = ({
8
7
  className,
9
8
  defaultValue,
10
9
  children,
11
- filterOptions,
12
- handleReset
10
+ filterOptions
13
11
  }) => {
14
12
  return (
15
13
  <FilterCard className={className ?? ""}>
16
14
  <FilterCard.Title icon="fa-solid:sliders-h">
17
- <div className="hc-flex hc-items-center hc-justify-between hc-w-full">
18
- <span>
19
- Filter <span className="md:hc-hidden lg:hc-inline">your search</span>
20
- </span>
21
- {handleReset && (
22
- <Button.Btn
23
- type="button"
24
- variant="outline"
25
- size="none"
26
- onClick={handleReset}
27
- className="hc-ml-auto hc-text-xs hc-px-2 hc-py-0.5"
28
- >
29
- Reset
30
- </Button.Btn>
31
- )}
32
- </div>
15
+ <span>
16
+ Filter <span className="md:hc-hidden lg:hc-inline">your search</span>
17
+ </span>
33
18
  </FilterCard.Title>
34
19
 
35
20
  <Accordion defaultValue={defaultValue} className="hc-space-y-4" >
@@ -25,32 +25,27 @@ const ButtonGroupApply = ({
25
25
  item,
26
26
  companyName,
27
27
  trackEvent,
28
- eventTypes,
29
- mobileDetailsCallback = null
28
+ eventTypes
30
29
  }) => {
31
30
  const href = linkFormat.replace('[slug]', item.slug ?? item.id);
32
31
 
33
32
  const trackApplyNow = () => {
34
33
  //console.log('calling trackApplyNow');
35
- trackEvent(eventTypes.APPLY_NOW_CLICKED, { jobCategory: item.fields.subCategory, jobCategoryClass: item.fields.category, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
34
+ trackEvent(eventTypes.APPLY_NOW_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
36
35
  };
37
36
  const trackApplyOpen = () => {
38
37
  //console.log('calling trackApplyOpen');
39
- trackEvent(eventTypes.APPLY_OPEN_CLICKED, { jobCategory: item.fields.subCategory, jobCategoryClass: item.fields.category, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
38
+ trackEvent(eventTypes.APPLY_OPEN_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
40
39
  };
41
40
  const trackEasyApply = () => {
42
41
  //console.log('calling trackEasyApply');
43
- trackEvent(eventTypes.EASY_APPLY_CLICKED, { jobCategory: item.fields.subCategory, jobCategoryClass: item.fields.category, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
42
+ trackEvent(eventTypes.EASY_APPLY_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
44
43
  };
45
44
  const trackViewDetails = () => {
46
45
  //console.log('calling trackViewDetails');
47
- trackEvent(eventTypes.VIEW_DETAILS_CLICKED, { jobCategory: item.fields.subCategory, jobCategoryClass: item.fields.category, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
46
+ trackEvent(eventTypes.VIEW_DETAILS_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
48
47
  };
49
48
 
50
- // Check if on mobile (same breakpoint as mobile callback check)
51
- const isMobile = typeof window !== 'undefined' && window.innerWidth < 768;
52
- const hideDetailsOnMobile = isMobile && mobileDetailsCallback;
53
-
54
49
  return (
55
50
  <nav
56
51
  className={twMerge`
@@ -83,9 +78,9 @@ const ButtonGroupApply = ({
83
78
  </Button.Anchor>
84
79
  ) : null}
85
80
 
86
- {item.fields.applyOnline == true && item.fields.applyUrl && !includeDialog &&
81
+ {item.applyOnline == 1 && item.applyUrl && !includeDialog &&
87
82
  <Button.Anchor
88
- href={item.fields.applyUrl}
83
+ href={item.applyUrl}
89
84
  variant={applyButtonVariant}
90
85
  size={buttonSize}
91
86
  className={"map-apply-now-button"}
@@ -96,8 +91,8 @@ const ButtonGroupApply = ({
96
91
  {applyNowText}
97
92
  </Button.Anchor>
98
93
  }
99
- {item.fields.applyOnline == true && item.fields.applyUrl && includeDialog &&
100
- <ApplyDialog applyUrl={item.fields.applyUrl} internalApplyLink={internalApplyLink} companyName={companyName} item={item} trackEvent={trackEvent} eventTypes={eventTypes} isIframe={isIframe}>
94
+ {item.applyOnline == 1 && item.applyUrl && includeDialog &&
95
+ <ApplyDialog applyUrl={item.applyUrl} internalApplyLink={internalApplyLink} companyName={companyName} item={item} trackEvent={trackEvent} eventTypes={eventTypes} isIframe={isIframe}>
101
96
  <Button.Anchor
102
97
  variant={applyButtonVariant}
103
98
  size={buttonSize}
@@ -1,5 +1,4 @@
1
1
  import React, { forwardRef } from 'react';
2
- import { twMerge } from 'tailwind-merge';
3
2
 
4
3
  import Button from '~/components/modules/buttons/default';
5
4
 
@@ -16,7 +15,7 @@ export const PillWrapper = forwardRef((
16
15
  ref={ref}
17
16
  size="none"
18
17
  variant="none"
19
- className={twMerge('hc-relative hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20', className)}
18
+ className={`hc-relative hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20 ${className}`}
20
19
  {...props}
21
20
  >
22
21
  {children}
@@ -7,11 +7,11 @@ import Icon from '~/components/modules/icon';
7
7
  const ApplyDialog = ({ children, applyUrl, internalApplyLink, companyName, item, trackEvent, eventTypes, isIframe }) => {
8
8
  const trackApplyOption1 = () => {
9
9
  //console.log('calling trackApplyOption1');
10
- trackEvent(eventTypes.APPLY_OPTION_1_CLICKED, { jobCategory: item.fields.subCategory, jobCategoryClass: item.fields.category, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
10
+ trackEvent(eventTypes.APPLY_OPTION_1_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
11
11
  };
12
12
  const trackApplyOption2 = () => {
13
13
  //console.log('calling trackApplyOption2');
14
- trackEvent(eventTypes.APPLY_OPTION_2_CLICKED, { jobCategory: item.fields.subCategory, jobCategoryClass: item.fields.category, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
14
+ trackEvent(eventTypes.APPLY_OPTION_2_CLICKED, { jobCategory: item.fields.category, jobCategoryClass: item.fields.categoryClass, jobEntity: item.fields.entityName, jobListingId: item.id, jobSchedule: item.fields.schedule });
15
15
  };
16
16
 
17
17
  return (
@@ -57,14 +57,12 @@ const FilterCommute = ({
57
57
  size="sqsm"
58
58
  onClick={() => {
59
59
  setIsCurrentLocation(!isCurrentLocation);
60
- if (typeof window !== 'undefined') {
61
60
  localStorage.setItem('isCurrentLocation', !isCurrentLocation);
62
- }
63
- if (isCurrentLocation || commuteLocation) {
64
- setCommuteLocation("");
65
- setSelected("");
66
- } else if (!commuteLocation) { fetchLocation(); }
67
- }}
61
+ if (isCurrentLocation || commuteLocation) {
62
+ setCommuteLocation("");
63
+ setSelected("");
64
+ } else if (!commuteLocation) { fetchLocation(); }
65
+ }}
68
66
 
69
67
  className=""
70
68
  >
@@ -1,163 +1,76 @@
1
1
  "use client";
2
2
  import Button from "~/components/modules/buttons/default";
3
- import React, { useEffect, useRef, useState } from "react";
4
- import { twMerge } from '~/util/twMerge';
5
- import { useMapList } from "~/contexts/mapListContext";
6
-
3
+ import React from "react";
7
4
  const Filter = ({
8
5
  className,
9
6
  hasActiveFilters,
10
7
  filteredListings,
11
8
  selectedFilters,
12
9
  setMobileTab,
10
+ handleReset,
13
11
  isDesktop = false,
14
12
  style,
15
13
  children
16
14
  }) => {
17
- const { filterConfig } = useMapList();
18
- const contentRef = useRef(null);
19
- const containerRef = useRef(null);
20
- const [hasOverflow, setHasOverflow] = useState(false);
21
- const [showFixedFooter, setShowFixedFooter] = useState(false);
22
- const [hasMounted, setHasMounted] = useState(false);
23
- const transitionTimeoutRef = useRef(null);
24
-
25
- // Set mounted state to avoid hydration mismatch
26
- useEffect(() => {
27
- setHasMounted(true);
28
- }, []);
29
-
30
- useEffect(() => {
31
- if (typeof window === 'undefined' || !hasMounted) return;
32
-
33
- const checkOverflow = () => {
34
- if (contentRef.current) {
35
- // Add a small tolerance (5px) to avoid false positives from rounding/padding
36
- const hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight + 5;
37
-
38
- if (hasScroll !== hasOverflow) {
39
- setHasOverflow(hasScroll);
40
-
41
- // Clear any pending transitions
42
- if (transitionTimeoutRef.current) {
43
- clearTimeout(transitionTimeoutRef.current);
44
- }
45
-
46
- // Add a delay when transitioning to fixed footer to smooth the transition
47
- if (hasScroll) {
48
- transitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(true), 200);
49
- } else {
50
- // Delay hiding fixed footer to allow animation to complete and prevent flashing
51
- transitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(false), 200);
52
- }
53
- }
54
- }
55
- };
56
-
57
- // Delay initial check to ensure layout is complete
58
- setTimeout(checkOverflow, 100);
59
-
60
- // Check on resize
61
- window.addEventListener('resize', checkOverflow);
62
-
63
- // Use ResizeObserver to detect container size changes
64
- const resizeObserver = new ResizeObserver(() => {
65
- setTimeout(checkOverflow, 50);
66
- });
67
- if (containerRef.current) {
68
- resizeObserver.observe(containerRef.current);
69
- }
70
- if (contentRef.current) {
71
- resizeObserver.observe(contentRef.current);
72
- }
73
-
74
- // Use MutationObserver to detect content changes
75
- const mutationObserver = new MutationObserver(() => {
76
- setTimeout(checkOverflow, 50);
77
- });
78
- if (contentRef.current) {
79
- mutationObserver.observe(contentRef.current, { childList: true, subtree: true, attributes: true });
80
- }
81
-
82
- return () => {
83
- window.removeEventListener('resize', checkOverflow);
84
- resizeObserver.disconnect();
85
- mutationObserver.disconnect();
86
- // Clear timeout on unmount
87
- if (transitionTimeoutRef.current) {
88
- clearTimeout(transitionTimeoutRef.current);
89
- }
90
- };
91
- }, [children, hasOverflow, hasMounted]);
92
-
93
- // Reusable button component
94
- const MobileButtons = () => (
95
- <>
96
- {selectedFilters && Object.keys(selectedFilters).length > 0 && (
97
- <Button.Btn
98
- onClick={() => setMobileTab("listTab")}
99
- variant="primary"
100
- size="sm"
101
- className={twMerge(
102
- `${hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100"}`,
103
- filterConfig?.classNames?.showJobsButton
104
- )}
105
- >
106
- <Button.Body>
107
- <Button.Icon icon="fluent:search-12-filled" size="hc-size-3.5" />
108
- Show {filteredListings.length} Jobs
109
- </Button.Body>
110
- </Button.Btn>
111
- )}
112
- </>
113
- );
114
-
115
15
  return (
116
16
  <div
117
- ref={containerRef}
118
17
  style={isDesktop ? style : undefined}
119
- className={twMerge(
120
- `/* Mobile layout */
121
- hc-relative hc-w-full hc-h-full hc-flex hc-flex-col
18
+ className={`
19
+ /* Mobile layout */
20
+ hc-relative hc-w-full hc-h-full hc-flex hc-flex-col
122
21
 
123
- /* Desktop layout */
124
- md:hc-relative md:hc-flex md:hc-flex-col md:hc-max-h-[100%]
22
+ /* Desktop layout */
23
+ md:hc-block md:hc-max-h-[100%] md:hc-overflow-y-auto md:hc-overflow-x-auto
125
24
 
126
- ${className ?? ""}`,
127
- filterConfig?.classNames?.filterContainer
128
- )}
25
+ ${className ?? ""}
26
+ `}
129
27
  >
130
28
  {/* Content area with scroll */}
131
- <div
132
- ref={contentRef}
133
- className={twMerge(
134
- `hc-w-full hc-flex-grow hc-max-h-full hc-overflow-auto ${hasOverflow ? 'hc-pb-16' : ''} md:hc-overflow-y-auto ${hasOverflow ? 'md:hc-pb-16' : 'md:hc-pb-0'}`,
135
- filterConfig?.classNames?.filterContent
136
- )}
137
- >
138
- <div className="hc-px-4 md:hc-pt-4 hc-space-y-4">
139
- {children}
29
+ <div className="hc-w-full hc-flex-grow hc-overflow-auto hc-pb-16 md:hc-pb-0">
30
+ <div className="hc-px-4 md:hc-pt-4 hc-space-y-4">{children}</div>
31
+ </div>
140
32
 
141
- {/* Inline buttons when no overflow - mobile only */}
142
- {!hasOverflow && !showFixedFooter && (
143
- <div className={twMerge(
144
- "hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-border-t hc-border-gray-200 hc-animate-in hc-fade-in hc-duration-300 md:hc-hidden",
145
- filterConfig?.classNames?.filterFooter
146
- )}>
147
- <MobileButtons />
148
- </div>
149
- )}
150
- </div>
33
+ {/* Desktop Reset Button - left aligned */}
34
+ <div className="hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4">
35
+ <Button.Btn onClick={handleReset} variant="outline" size="sm">
36
+ Reset All
37
+ </Button.Btn>
151
38
  </div>
152
39
 
153
- {/* Mobile Footer - fixed at bottom (only when overflow) */}
154
- {showFixedFooter && (
155
- <div className="hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 md:hc-hidden hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200">
156
- <MobileButtons />
157
- </div>
158
- )}
40
+ {/* Mobile Footer - fixed at bottom */}
41
+ <div
42
+ className="
43
+ hc-w-full
44
+ hc-absolute hc-bottom-0 hc-left-0 hc-right-0
45
+ hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4
46
+ hc-bg-white hc-border-t hc-border-gray-200
47
+ hc-z-10
48
+
49
+ /* Hide on desktop */
50
+ md:hc-hidden
51
+ "
52
+ >
53
+ <Button.Btn onClick={handleReset} variant="outline" size="sm">
54
+ Reset All
55
+ </Button.Btn>
56
+ {selectedFilters && Object.keys(selectedFilters).length > 0 && (
57
+ <Button.Btn
58
+ onClick={() => setMobileTab("listTab")}
59
+ variant="primary"
60
+ size="sm"
61
+ className={`
62
+ ${hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100"}
63
+ `}
64
+ >
65
+ <Button.Body>
66
+ <Button.Icon icon="fluent:search-12-filled" size="hc-size-3.5" />
67
+ Show {filteredListings.length} Jobs
68
+ </Button.Body>
69
+ </Button.Btn>
70
+ )}
71
+ </div>
159
72
  </div>
160
73
  );
161
74
  };
162
75
 
163
- export default Filter;
76
+ export default Filter;
@@ -1,7 +1,5 @@
1
1
  import React from 'react';
2
2
  import Icon from '~/components/modules/icon';
3
- import { twMerge } from '~/util/twMerge';
4
- import { useMapList } from '~/contexts/mapListContext';
5
3
 
6
4
  const FilterItem = ({
7
5
  className,
@@ -19,7 +17,6 @@ const FilterItem = ({
19
17
  eventTypes,
20
18
  ...rest
21
19
  }) => {
22
- const { filterConfig } = useMapList();
23
20
  const itemName = item.name ? item.name : item;
24
21
 
25
22
  return (
@@ -28,7 +25,6 @@ const FilterItem = ({
28
25
  onClick={() =>
29
26
  {
30
27
  if(!isExternalLink) return;
31
- if (typeof window === 'undefined') return;
32
28
  trackEvent(eventTypes.EXTERNAL_LINK_CLICKED, { link: externalLinkUrl });
33
29
  window.location.href = externalLinkUrl;
34
30
  }}
@@ -51,10 +47,7 @@ const FilterItem = ({
51
47
  disabled={item.count === 0}
52
48
  value={itemName}
53
49
  type={type}
54
- className={twMerge(
55
- "hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm",
56
- filterConfig?.classNames?.filterItemCheckbox
57
- )}
50
+ className="hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm"
58
51
  checked={activeItem}
59
52
  onChange={() => {
60
53
  setActiveItem(!activeItem);
@@ -63,15 +56,9 @@ const FilterItem = ({
63
56
  />
64
57
  )}
65
58
 
66
- <span className={twMerge(
67
- "hc-text-left hc-font-medium",
68
- filterConfig?.classNames?.filterItemLabel
69
- )}>{itemName}</span>
59
+ <span className="hc-text-left hc-font-medium">{itemName}</span>
70
60
  {hasCount && !isExternalLink && (
71
- <span className={twMerge(
72
- "hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary",
73
- filterConfig?.classNames?.filterItemCount
74
- )}>
61
+ <span className="hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary">
75
62
  ({item.count})
76
63
  </span>
77
64
  )}
@@ -2,8 +2,6 @@ import React, { useRef } from 'react';
2
2
  import Button from '~/components/modules/buttons/default';
3
3
  import Icon from '~/components/modules/icon';
4
4
  import FilterCard from '~/components/modules/cards/filter';
5
- import { twMerge } from '~/util/twMerge';
6
- import { useMapList } from '~/contexts/mapListContext';
7
5
 
8
6
  const Search = ({
9
7
  inputPlaceholder,
@@ -16,7 +14,6 @@ const Search = ({
16
14
  handleReset,
17
15
  label
18
16
  }) => {
19
- const { filterConfig } = useMapList();
20
17
  const inputRef = useRef(null);
21
18
  const buttonRef = useRef(null);
22
19
 
@@ -50,10 +47,7 @@ const Search = ({
50
47
  }}
51
48
  placeholder={inputPlaceholder}
52
49
  value={inputValue}
53
- className={twMerge(
54
- "hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none",
55
- filterConfig?.classNames?.searchInput
56
- )}
50
+ className="hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none"
57
51
  onChange={handleInputChange}
58
52
  />
59
53
 
@@ -16,8 +16,7 @@ const ListingDetails = ({
16
16
  companyName,
17
17
  jobsDomain,
18
18
  trackEvent,
19
- eventTypes,
20
- mobileDetailsCallback = null
19
+ eventTypes
21
20
  }) => {
22
21
  if (!item) {
23
22
  return null;
@@ -40,9 +39,8 @@ const ListingDetails = ({
40
39
  companyName={companyName}
41
40
  item={item}
42
41
  trackEvent={trackEvent}
43
- eventTypes={eventTypes}
44
- mobileDetailsCallback={mobileDetailsCallback}
45
- detailsUrl={item.useClientJobUrl ? item?.detailsUrl : `${jobsDomain}${item.id}`}
42
+ eventTypes={eventTypes}
43
+ detailsUrl={item.useClientJobUrl ? item?.detailsUrl : `${jobsDomain}${item.id}`}
46
44
  className={`
47
45
  lg:hc-w-auto hc-order-first lg:hc-order-last md:hc-self-center hc-py-2 lg:hc-p-0 lg:hc-mb-0 hc-border-b lg:hc-border-none hc-border-uiAccent/20
48
46
  lg:hc-flex-row
@@ -2,59 +2,40 @@ import React from 'react';
2
2
  import Grid from '~/components/modules/grid';
3
3
  import PillWrapper from '~/components/modules/buttons/pill-wrapper';
4
4
  import { capitalize } from '~/util/stringUtils';
5
- import { getFieldValue } from '~/util/filterUtil';
6
- import { twMerge } from 'tailwind-merge';
7
5
 
8
6
  const FieldMapperDesktop = ({
9
7
  item,
10
8
  fieldsShown,
11
- specialFeatures,
12
- specialFeaturePills
9
+ specialFeatures
13
10
  }) => {
14
- // Check both fields and customFields for field presence
15
- const orderedFields = fieldsShown.filter(field => {
16
- const value = getFieldValue(item, field);
17
- return value !== undefined && value !== null;
18
- });
11
+ const orderedFields = fieldsShown.filter(field => field in item.fields);
19
12
 
20
- const specialFeaturePillsRender = field => {
21
- if (field !== 'title' || !specialFeatures || !specialFeaturePills) return null;
22
-
23
- return Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {
24
- // Only show pill if it's configured in specialFeaturePills
25
- if (!specialFeaturePills[featureKey]) return null;
26
-
27
- const value = getFieldValue(item, featureKey);
28
- const customClassName = specialFeaturePills[featureKey]?.className || '';
29
-
30
- // Handle boolean fields (value == 1 or "true")
31
- if (value == 1 || value === 1 || value === '1' || value === 'true' || value === 'True' || value === true) {
32
- return <PillWrapper key={featureKey} className={customClassName}>{featureLabel}</PillWrapper>;
33
- }
34
- // Handle multi-value custom fields - show the value if it's not empty/false
35
- if (value && value !== '' && value !== 'false' && value !== 'False' && value !== '0' && value !== 0) {
36
- return <PillWrapper key={featureKey} className={customClassName}>{featureLabel}: {value}</PillWrapper>;
37
- }
38
- return null;
39
- });
13
+ const specialFeaturePills = field => {
14
+ return field === 'position' && specialFeatures &&
15
+ Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {
16
+ return item.fields[featureKey] == 1 && (
17
+ <PillWrapper key={featureKey}>{featureLabel}</PillWrapper>
18
+ );
19
+ });
40
20
  };
41
21
 
42
22
  return (
43
23
  <>
44
24
  {orderedFields.map((field, index) => {
45
- let value = getFieldValue(item, field);
25
+ let value = item.fields[field];
46
26
  return (
47
27
  <Grid.Item
48
28
  key={field}
49
29
  className={`
50
30
  hc-hidden md:hc-block hc-px-2
51
31
  ${index === 0 ? "hc-pl-7" : ""}
52
- ${field.toLowerCase() === "title" ? "hc-col-span-4 hc-text-balance hc-font-semibold" : (field.toLowerCase() === "state" || field.toLowerCase() == "favorite") ? "hc-col-span-1" : "hc-col-span-2"}
32
+ ${field.toLowerCase() === "position" ? "hc-col-span-4 hc-text-balance hc-font-semibold" : (field.toLowerCase() === "state" || field.toLowerCase() == "favorite") ? "hc-col-span-1" : "hc-col-span-2"}
53
33
  `}
54
34
  >
55
35
  <span className="hc-sr-only">{capitalize(field)}</span>
56
36
  {value}
57
- {specialFeaturePillsRender(field)}
37
+ <br />
38
+ {specialFeaturePills(field)}
58
39
  </Grid.Item>
59
40
  );
60
41
  })}