@abcagency/hc-ui-components 1.9.35 → 1.9.37

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 +58 -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 -271
  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 -373
  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 -226
  499. package/src/styles/components.css +0 -30
  500. package/src/util/algoliaSearchUtil.js +0 -151
  501. package/src/util/twMerge.js +0 -6
package/README.md DELETED
@@ -1,323 +0,0 @@
1
- # HireControl UI Components
2
-
3
- A flexible, customizable React component library for job search interfaces with integrated maps and filtering.
4
-
5
- ## Features
6
-
7
- - 🗺️ **Interactive Map Integration** - Google Maps with job location markers
8
- - 🔍 **Advanced Filtering** - Multi-faceted search with dynamic counts
9
- - 📱 **Mobile Responsive** - Tab-based mobile interface
10
- - 🎨 **Fully Customizable** - Override any component with your own
11
- - ⚡ **Performance Optimized** - Lazy loading and efficient rendering
12
- - 🎯 **Type Safe** - TypeScript support
13
- - 🧩 **Modular Architecture** - Use what you need
14
-
15
- ## Installation
16
-
17
- ```bash
18
- npm install @hirecontrol/hc-ui-components
19
- ```
20
-
21
- ## Quick Start
22
-
23
- ```jsx
24
- import { HireControlMap } from '@hirecontrol/hc-ui-components';
25
-
26
- function App() {
27
- return (
28
- <HireControlMap
29
- googleMapsApiKey="your-api-key"
30
- siteConfiguration={siteConfig}
31
- listings={listings}
32
- entities={entities}
33
- />
34
- );
35
- }
36
- ```
37
-
38
- ## Component Customization
39
-
40
- **NEW!** Override any component to customize the UI while preserving all business logic:
41
-
42
- ```jsx
43
- import { HireControlMap } from '@hirecontrol/hc-ui-components';
44
- import MyCustomFilter from './MyCustomFilter';
45
- import MyCustomListItem from './MyCustomListItem';
46
-
47
- <HireControlMap
48
- googleMapsApiKey="your-api-key"
49
- siteConfiguration={siteConfig}
50
- listings={listings}
51
- entities={entities}
52
- components={{
53
- Filter: MyCustomFilter,
54
- ListItem: MyCustomListItem,
55
- MapMarker: MyCustomMapMarker,
56
- // Override any component you want
57
- }}
58
- />
59
- ```
60
-
61
- ### Available Components
62
-
63
- - **Map Components**: `MapList`, `MapTabs`, `Map`, `MapMarker`, `PlaceMarker`, `InfoWindowCard`
64
- - **Filter Components**: `Filter`, `FilterItem`, `FilterSearch`, `FilterLocation`, `FilterCommute`
65
- - **List Components**: `ListItem`, `ItemsList`, `ListHeader`, `FieldMapperDesktop`, `FieldMapperMobile`
66
- - **Accordion Components**: `Accordion`, `FiltersAccordion`, `FilterItemAccordion`, `MapAccordionItem`
67
- - **Button Components**: `Button`, `ButtonGroupApply`, `ItemsPill`, `ShowAllButton`
68
- - **Card Components**: `Card`, `CardFilter`
69
- - **Dialog Components**: `ApplyDialog`
70
- - **Utility Components**: `Grid`, `Icon`
71
-
72
- See [Component Customization Guide](./docs/COMPONENT_CUSTOMIZATION.md) for detailed documentation.
73
-
74
- ## Props
75
-
76
- ### Required Props
77
-
78
- | Prop | Type | Description |
79
- |------|------|-------------|
80
- | `googleMapsApiKey` | string | Google Maps API key |
81
- | `siteConfiguration` | object | Site configuration object |
82
- | `listings` | array | Job listings data |
83
-
84
- ### Optional Props
85
-
86
- | Prop | Type | Default | Description |
87
- |------|------|---------|-------------|
88
- | `entities` | array | `[]` | Entity/location data |
89
- | `components` | object | `{}` | Component overrides |
90
- | `containerStyle` | object | `{ height: '100vh' }` | Container styling |
91
- | `hideMap` | boolean | `false` | Hide map view |
92
- | `hideFilters` | boolean | `false` | Hide filter panel |
93
- | `filterConfig` | object | `{}` | Filter configuration |
94
- | `trackEvent` | function | Console log | Analytics tracking |
95
- | `navigateToDetails` | function | `null` | Custom navigation handler |
96
- | `Link` | component | `null` | Custom Link component |
97
- | `defaultFilters` | object | `null` | Initial filter state |
98
- | `hiddenFilters` | array | `null` | Filters to hide |
99
-
100
- See full prop documentation in [API Reference](./docs/API_REFERENCE.md).
101
-
102
- ## Site Configuration
103
-
104
- ```javascript
105
- const siteConfiguration = {
106
- colors: {
107
- primary: '#3B82F6',
108
- primaryDark: '#1E40AF',
109
- secondary: '#10B981',
110
- secondaryDark: '#047857',
111
- uiText: '#1F2937',
112
- uiAccent: '#6B7280',
113
- borderDefault: '#E5E7EB'
114
- },
115
- showMap: true,
116
- mapPosition: 'bottom', // 'top' or 'bottom'
117
- fieldsShown: ['title', 'category', 'entityName', 'location'],
118
- fieldNames: {
119
- title: 'Job Title',
120
- category: 'Category',
121
- entityName: 'Company',
122
- location: 'Location'
123
- },
124
- pointsOfInterestConfig: {
125
- placeMappings: {},
126
- showAtZoomLevel: 12,
127
- placeMarkerColors: {},
128
- placeMarkerSize: 30
129
- }
130
- };
131
- ```
132
-
133
- ## Advanced Usage
134
-
135
- ### Using Component Hooks
136
-
137
- ```jsx
138
- import { useComponents } from '@hirecontrol/hc-ui-components';
139
-
140
- const MyCustomComponent = () => {
141
- const { Filter, ListItem } = useComponents();
142
-
143
- return (
144
- <div>
145
- <Filter {...filterProps} />
146
- <ListItem {...itemProps} />
147
- </div>
148
- );
149
- };
150
- ```
151
-
152
- ### Extending Default Components
153
-
154
- ```jsx
155
- import { defaultComponents } from '@hirecontrol/hc-ui-components';
156
-
157
- const EnhancedFilter = (props) => {
158
- const DefaultFilter = defaultComponents.Filter;
159
-
160
- return (
161
- <div className="enhanced-wrapper">
162
- <DefaultFilter {...props} />
163
- <div className="custom-addition">Extra content</div>
164
- </div>
165
- );
166
- };
167
- ```
168
-
169
- ### Higher-Order Component Pattern
170
-
171
- ```jsx
172
- import { withComponents } from '@hirecontrol/hc-ui-components';
173
-
174
- const MyContainer = ({ Filter, ListItem, data }) => {
175
- return (
176
- <div>
177
- <Filter />
178
- {data.map(item => <ListItem key={item.id} item={item} />)}
179
- </div>
180
- );
181
- };
182
-
183
- export default withComponents(['Filter', 'ListItem'])(MyContainer);
184
- ```
185
-
186
- ## Styling
187
-
188
- The library uses Tailwind CSS with a custom `hc-` prefix to avoid conflicts:
189
-
190
- ```jsx
191
- <div className="hc-bg-primary hc-text-white hc-p-4 hc-rounded-lg">
192
- Custom styled element
193
- </div>
194
- ```
195
-
196
- ### Customizing Styles
197
-
198
- 1. **Override components** with your own styling
199
- 2. **Use filterConfig.classNames** to inject custom classes
200
- 3. **Wrap with styled containers** around default components
201
-
202
- ## Examples
203
-
204
- ### Custom Filter with Analytics
205
-
206
- ```jsx
207
- const AnalyticsFilter = (props) => {
208
- const { Filter } = useComponents();
209
-
210
- useEffect(() => {
211
- analytics.track('Filter Panel Viewed');
212
- }, []);
213
-
214
- const handleFilterChange = (filters) => {
215
- analytics.track('Filters Applied', { filters });
216
- props.setSelectedFilters(filters);
217
- };
218
-
219
- return <Filter {...props} setSelectedFilters={handleFilterChange} />;
220
- };
221
- ```
222
-
223
- ### Custom List Item with Favorites
224
-
225
- ```jsx
226
- const CustomListItem = ({ item, favorites, handleSettingFavorites, ...props }) => {
227
- const isFavorite = favorites.includes(item.id);
228
-
229
- return (
230
- <div className="hc-border hc-rounded-lg hc-p-4 hc-hover:shadow-lg">
231
- <div className="hc-flex hc-justify-between">
232
- <h3>{item.fields.title}</h3>
233
- <button
234
- onClick={(e) => {
235
- e.stopPropagation();
236
- handleSettingFavorites(item.id);
237
- }}
238
- >
239
- {isFavorite ? '❤️' : '🤍'}
240
- </button>
241
- </div>
242
- <p className="hc-text-gray-600">{item.fields.category}</p>
243
- <p className="hc-text-sm">{item.mapDetails?.entityDisplayName}</p>
244
- </div>
245
- );
246
- };
247
- ```
248
-
249
- ## TypeScript Support
250
-
251
- The library includes TypeScript definitions:
252
-
253
- ```typescript
254
- import { HireControlMap, ComponentOverrides } from '@hirecontrol/hc-ui-components';
255
-
256
- const customComponents: ComponentOverrides = {
257
- Filter: MyCustomFilter,
258
- ListItem: MyCustomListItem,
259
- };
260
-
261
- <HireControlMap
262
- googleMapsApiKey={apiKey}
263
- siteConfiguration={config}
264
- listings={listings}
265
- components={customComponents}
266
- />
267
- ```
268
-
269
- ## Browser Support
270
-
271
- - Chrome (latest)
272
- - Firefox (latest)
273
- - Safari (latest)
274
- - Edge (latest)
275
- - Mobile browsers (iOS Safari, Chrome Mobile)
276
-
277
- ## Performance
278
-
279
- - Lazy loading of Google Maps
280
- - Virtual scrolling for large lists
281
- - Debounced search inputs
282
- - Optimized re-renders with React.memo
283
- - Efficient clustering for map markers
284
-
285
- ## Troubleshooting
286
-
287
- ### Google Maps Not Loading
288
- - Verify API key is correct
289
- - Check API key has Maps JavaScript API enabled
290
- - Ensure domain is whitelisted in Google Console
291
-
292
- ### Custom Components Not Rendering
293
- - Verify component name matches exactly (case-sensitive)
294
- - Ensure all required props are handled
295
- - Check browser console for errors
296
-
297
- ### Styling Conflicts
298
- - Use the `hc-` prefix for Tailwind classes
299
- - Check CSS specificity
300
- - Use browser dev tools to inspect styles
301
-
302
- See [Troubleshooting Guide](./docs/TROUBLESHOOTING.md) for more help.
303
-
304
- ## Documentation
305
-
306
- - [Component Customization Guide](./docs/COMPONENT_CUSTOMIZATION.md) - Detailed customization docs
307
- - [Component Reference](./docs/COMPONENT_REFERENCE.md) - Quick reference for all components
308
- - [API Reference](./docs/API_REFERENCE.md) - Complete prop documentation
309
- - [Examples](./docs/EXAMPLES.md) - Code examples and use cases
310
-
311
- ## Contributing
312
-
313
- Contributions are welcome! Please read our [Contributing Guide](./CONTRIBUTING.md) first.
314
-
315
- ## License
316
-
317
- MIT License - see [LICENSE](./LICENSE) file for details.
318
-
319
- ## Support
320
-
321
- - GitHub Issues: https://github.com/hirecontrol/hc-ui-components/issues
322
- - Documentation: https://docs.hirecontrol.com
323
- - Email: support@hirecontrol.com
@@ -1,67 +0,0 @@
1
- import React from 'react';
2
- import { GoogleMap, useLoadScript } from "@react-google-maps/api";
3
- import ShowAllButton from "~/components/modules/buttons/show-all-button";
4
-
5
- const Map = ({
6
- zoom,
7
- center,
8
- mapContainerRef,
9
- onLoad,
10
- onIdle,
11
- mapInteracted,
12
- pinIconUrl,
13
- setMapInteracted,
14
- fitBounds,
15
- mapRef,
16
- setQuery,
17
- filteredListingsLength,
18
- setSelectedFilters,
19
- children
20
- }) => {
21
- // Don't render GoogleMap until google.maps.Map constructor is available
22
- const isGoogleMapsAvailable = typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map;
23
-
24
- return (
25
- <>
26
- <div ref={mapContainerRef} className="hc-h-full hc-relative">
27
- {isGoogleMapsAvailable && (
28
- <GoogleMap
29
- zoom={zoom}
30
- onLoad={onLoad}
31
- onIdle={onIdle}
32
- center={center}
33
- mapContainerStyle={{
34
- width: "100%",
35
- height: "100%"
36
- }}
37
- options={{
38
- styles: [
39
- {
40
- featureType: "poi",
41
- elementType: "labels",
42
- stylers: [{ visibility: "off" }]
43
- }
44
- ]
45
- }}
46
- )}
47
- >
48
- {children}
49
- </GoogleMap>
50
- {mapInteracted && (
51
- <ShowAllButton
52
- mapInteracted={mapInteracted}
53
- setMapInteracted={setMapInteracted}
54
- fitBounds={fitBounds}
55
- mapRef={mapRef}
56
- pinIconUrl={pinIconUrl}
57
- setQuery={setQuery}
58
- listingCount={filteredListingsLength}
59
- setSelectedFilters={setSelectedFilters}
60
- />
61
- )}
62
- </div>
63
- </>
64
- );
65
- };
66
-
67
- export default Map;
@@ -1,67 +0,0 @@
1
- import React from 'react';
2
- import { GoogleMap, useLoadScript } from "@react-google-maps/api";
3
- import ShowAllButton from "~/components/modules/buttons/show-all-button";
4
-
5
- const Map = ({
6
- zoom,
7
- center,
8
- mapContainerRef,
9
- onLoad,
10
- onIdle,
11
- mapInteracted,
12
- pinIconUrl,
13
- setMapInteracted,
14
- fitBounds,
15
- mapRef,
16
- setQuery,
17
- filteredListingsLength,
18
- setSelectedFilters,
19
- children
20
- }) => {
21
- // Don't render GoogleMap until google.maps.Map constructor is available
22
- const isGoogleMapsAvailable = typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map;
23
-
24
- return (
25
- <>
26
- <div ref={mapContainerRef} className="hc-h-full hc-relative">
27
- {isGoogleMapsAvailable && (
28
- <GoogleMap
29
- zoom={zoom}
30
- onLoad={onLoad}
31
- onIdle={onIdle}
32
- center={center}
33
- mapContainerStyle={{
34
- width: "100%",
35
- height: "100%"
36
- }}
37
- options={{
38
- styles: [
39
- {
40
- featureType: "poi",
41
- elementType: "labels",
42
- stylers: [{ visibility: "off" }]
43
- }
44
- ]
45
- }}
46
-
47
- >
48
- {children}
49
- </GoogleMap>
50
- {mapInteracted && (
51
- <ShowAllButton
52
- mapInteracted={mapInteracted}
53
- setMapInteracted={setMapInteracted}
54
- fitBounds={fitBounds}
55
- mapRef={mapRef}
56
- pinIconUrl={pinIconUrl}
57
- setQuery={setQuery}
58
- listingCount={filteredListingsLength}
59
- setSelectedFilters={setSelectedFilters}
60
- />
61
- )}
62
- </div>
63
- </>
64
- );
65
- };
66
-
67
- export default Map;
@@ -1,226 +0,0 @@
1
- import React, { createContext, useContext, useMemo } from 'react';
2
-
3
- // Import all default components
4
- import MapList from '~/components/modules/maps/map-list';
5
- import MapTabs from '~/components/modules/maps/tabs';
6
- import Map from '~/components/modules/maps/map';
7
- import PlaceMarker from '~/components/modules/maps/place-marker';
8
- import MapMarker from '~/components/modules/maps/map-marker';
9
- import InfoWindowCard from '~/components/modules/maps/info-window-card';
10
- import InfoWindowContent from '~/components/modules/maps/info-window-content';
11
-
12
- import Filter from '~/components/modules/filter/index';
13
- import FilterItem from '~/components/modules/filter/item';
14
- import FilterSearch from '~/components/modules/filter/search';
15
- import FilterLocation from '~/components/modules/filter/location';
16
- import FilterCommute from '~/components/modules/filter/commute';
17
- import FilterRadioItem from '~/components/modules/filter/radio-item';
18
- import FilterSort from '~/components/modules/filter/sort';
19
-
20
- import ListItem from '~/components/modules/list/list-item/list-item';
21
- import ItemsList from '~/components/modules/list/item-list';
22
- import ListHeader from '~/components/modules/list/header';
23
- import ListHeaderItem from '~/components/modules/list/header-item';
24
- import FieldMapperDesktop from '~/components/modules/list/field-mapper-desktop';
25
- import FieldMapperMobile from '~/components/modules/list/field-mapper-mobile';
26
- import ItemExpandCard from '~/components/modules/list/item-expand-card/index';
27
- import RecruiterDetails from '~/components/modules/list/item-expand-card/recruiter-details';
28
- import RecruiterHeadshot from '~/components/modules/list/item-expand-card/recruiter-headshot';
29
- import RecruiterContactNav from '~/components/modules/list/item-expand-card/recruiter-contact-nav';
30
-
31
- import ListingDetails from '~/components/modules/jobListing/listing-details';
32
-
33
- import Accordion from '~/components/modules/accordions/default';
34
- import FiltersAccordion from '~/components/modules/accordions/filters';
35
- import FilterItemAccordion from '~/components/modules/accordions/filterItem';
36
- import MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';
37
-
38
- import Button from '~/components/modules/buttons/default';
39
- import ButtonGroupApply from '~/components/modules/buttons/button-group-apply';
40
- import ItemsPill from '~/components/modules/buttons/items-pill';
41
- import PillWrapper from '~/components/modules/buttons/pill-wrapper';
42
- import ShowAllButton from '~/components/modules/buttons/show-all-button';
43
-
44
- import Card from '~/components/modules/cards/default';
45
- import CardFilter from '~/components/modules/cards/filter';
46
-
47
- import ApplyDialog from '~/components/modules/dialogs/apply-dialog';
48
-
49
- import Grid from '~/components/modules/grid';
50
- import Icon from '~/components/modules/icon';
51
-
52
- /**
53
- * Default component registry - all available components in the library
54
- */
55
- export const defaultComponents = {
56
- // Map components
57
- MapList,
58
- MapTabs,
59
- Map,
60
- PlaceMarker,
61
- MapMarker,
62
- InfoWindowCard,
63
- InfoWindowContent,
64
-
65
- // Filter components
66
- Filter,
67
- FilterItem,
68
- FilterSearch,
69
- FilterLocation,
70
- FilterCommute,
71
- FilterRadioItem,
72
- FilterSort,
73
-
74
- // List components
75
- ListItem,
76
- ItemsList,
77
- ListHeader,
78
- ListHeaderItem,
79
- FieldMapperDesktop,
80
- FieldMapperMobile,
81
- ItemExpandCard,
82
- RecruiterDetails,
83
- RecruiterHeadshot,
84
- RecruiterContactNav,
85
-
86
- // Job listing components
87
- ListingDetails,
88
-
89
- // Accordion components
90
- Accordion,
91
- FiltersAccordion,
92
- FilterItemAccordion,
93
- MapAccordionItem,
94
-
95
- // Button components
96
- Button,
97
- ButtonGroupApply,
98
- ItemsPill,
99
- PillWrapper,
100
- ShowAllButton,
101
-
102
- // Card components
103
- Card,
104
- CardFilter,
105
-
106
- // Dialog components
107
- ApplyDialog,
108
-
109
- // Utility components
110
- Grid,
111
- Icon,
112
- };
113
-
114
- /**
115
- * Type for component overrides
116
- * Users can override any component by passing a custom implementation
117
- */
118
- export type ComponentOverrides = Partial<typeof defaultComponents>;
119
-
120
- /**
121
- * Component registry type - combines defaults with overrides
122
- */
123
- export type ComponentRegistry = typeof defaultComponents;
124
-
125
- interface ComponentProviderProps {
126
- children: React.ReactNode;
127
- components?: ComponentOverrides;
128
- }
129
-
130
- /**
131
- * Context for accessing components throughout the app
132
- */
133
- const ComponentContext = createContext<ComponentRegistry>(defaultComponents);
134
-
135
- /**
136
- * ComponentProvider - Provides component registry with optional overrides
137
- *
138
- * @example
139
- * ```tsx
140
- * // Using default components
141
- * <ComponentProvider>
142
- * <HireControlMap />
143
- * </ComponentProvider>
144
- *
145
- * // With custom components
146
- * <ComponentProvider components={{
147
- * Filter: MyCustomFilter,
148
- * ListItem: MyCustomListItem
149
- * }}>
150
- * <HireControlMap />
151
- * </ComponentProvider>
152
- * ```
153
- */
154
- export const ComponentProvider: React.FC<ComponentProviderProps> = ({
155
- children,
156
- components = {}
157
- }) => {
158
- // Merge default components with custom overrides
159
- const componentRegistry = useMemo(() => ({
160
- ...defaultComponents,
161
- ...components,
162
- }), [components]);
163
-
164
- return (
165
- <ComponentContext.Provider value={componentRegistry}>
166
- {children}
167
- </ComponentContext.Provider>
168
- );
169
- };
170
-
171
- /**
172
- * Hook to access component registry
173
- *
174
- * @example
175
- * ```tsx
176
- * const { Filter, ListItem } = useComponents();
177
- * return <Filter {...props} />;
178
- * ```
179
- */
180
- export const useComponents = (): ComponentRegistry => {
181
- const context = useContext(ComponentContext);
182
- if (!context) {
183
- throw new Error('useComponents must be used within a ComponentProvider');
184
- }
185
- return context;
186
- };
187
-
188
- /**
189
- * HOC to inject specific components as props
190
- * Useful for containers that need specific components
191
- *
192
- * @example
193
- * ```tsx
194
- * const MyContainer = withComponents(['Filter', 'ListItem'])(({ Filter, ListItem, ...props }) => {
195
- * return (
196
- * <div>
197
- * <Filter {...filterProps} />
198
- * <ListItem {...itemProps} />
199
- * </div>
200
- * );
201
- * });
202
- * ```
203
- */
204
- export const withComponents = <T extends (keyof ComponentRegistry)[]>(
205
- componentKeys: T
206
- ) => {
207
- return <P extends object>(
208
- Component: React.ComponentType<P & Pick<ComponentRegistry, T[number]>>
209
- ) => {
210
- const WrappedComponent = (props: P) => {
211
- const components = useComponents();
212
- const selectedComponents = componentKeys.reduce((acc, key) => {
213
- acc[key] = components[key];
214
- return acc;
215
- }, {} as Pick<ComponentRegistry, T[number]>);
216
-
217
- return <Component {...props} {...selectedComponents} />;
218
- };
219
-
220
- WrappedComponent.displayName = `withComponents(${Component.displayName || Component.name || 'Component'})`;
221
-
222
- return WrappedComponent;
223
- };
224
- };
225
-
226
- export default ComponentProvider;
@@ -1,30 +0,0 @@
1
- @config "../../tailwind.config.js";
2
-
3
- /* Only include components and utilities - no base styles */
4
- @tailwind components;
5
- @tailwind utilities;
6
-
7
- @layer components {
8
- .track * {
9
- @apply hc-pointer-events-none;
10
- }
11
-
12
- .stretched-link::after {
13
- @apply hc-content-[''] hc-absolute hc-inset-0 hc-z-[1] hc-pointer-events-auto hc-bg-transparent;
14
- }
15
- }
16
-
17
- /* Component-specific utilities */
18
- .fit-content {
19
- height: fit-content;
20
- }
21
-
22
- /* CSS Variables for theming - these should be set by the consuming app */
23
- :root {
24
- --ui-text: #000000;
25
- --ui-accent: #959595;
26
- --primary: #959595;
27
- --primary-dark: #959595;
28
- --secondary: #959595;
29
- --secondary-dark: #959595;
30
- }