@next-degree/pickle-shared-js 0.13.1 → 0.13.4

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 (581) hide show
  1. package/dist/chunk-2FGZQI42.js +11 -0
  2. package/dist/chunk-2FGZQI42.js.map +1 -0
  3. package/dist/chunk-325GPWFN.js +24 -0
  4. package/dist/chunk-325GPWFN.js.map +1 -0
  5. package/dist/chunk-37YFXNLL.cjs +46 -0
  6. package/dist/chunk-37YFXNLL.cjs.map +1 -0
  7. package/dist/chunk-3BGXWNKI.cjs +26 -0
  8. package/dist/chunk-3BGXWNKI.cjs.map +1 -0
  9. package/dist/chunk-3CI6PTKT.cjs +82 -0
  10. package/dist/chunk-3CI6PTKT.cjs.map +1 -0
  11. package/dist/chunk-3PARXYUI.cjs +86 -0
  12. package/dist/chunk-3PARXYUI.cjs.map +1 -0
  13. package/dist/chunk-3VIRJK7I.js +63 -0
  14. package/dist/chunk-3VIRJK7I.js.map +1 -0
  15. package/dist/chunk-47H3M7TP.js +72 -0
  16. package/dist/chunk-47H3M7TP.js.map +1 -0
  17. package/dist/chunk-4E3ANVRR.js +35 -0
  18. package/dist/chunk-4E3ANVRR.js.map +1 -0
  19. package/dist/chunk-4GDAUTH4.cjs +112 -0
  20. package/dist/chunk-4GDAUTH4.cjs.map +1 -0
  21. package/dist/chunk-4IJ5TMHI.js +20 -0
  22. package/dist/chunk-4IJ5TMHI.js.map +1 -0
  23. package/dist/chunk-4KXEHU2Z.js +142 -0
  24. package/dist/chunk-4KXEHU2Z.js.map +1 -0
  25. package/dist/chunk-4NEPWF3Z.js +152 -0
  26. package/dist/chunk-4NEPWF3Z.js.map +1 -0
  27. package/dist/chunk-4OJ7NEZU.js +107 -0
  28. package/dist/chunk-4OJ7NEZU.js.map +1 -0
  29. package/dist/chunk-4RVGUZNF.js +72 -0
  30. package/dist/chunk-4RVGUZNF.js.map +1 -0
  31. package/dist/chunk-4TLLJ52E.cjs +28 -0
  32. package/dist/chunk-4TLLJ52E.cjs.map +1 -0
  33. package/dist/chunk-4TP4NYO2.js +41 -0
  34. package/dist/chunk-4TP4NYO2.js.map +1 -0
  35. package/dist/chunk-567FG76G.cjs +39 -0
  36. package/dist/chunk-567FG76G.cjs.map +1 -0
  37. package/dist/chunk-5H35ZVLR.js +43 -0
  38. package/dist/chunk-5H35ZVLR.js.map +1 -0
  39. package/dist/chunk-5H75FIY2.cjs +64 -0
  40. package/dist/chunk-5H75FIY2.cjs.map +1 -0
  41. package/dist/chunk-5QXQ2LBB.cjs +4 -0
  42. package/dist/chunk-5QXQ2LBB.cjs.map +1 -0
  43. package/dist/chunk-5REFGTWO.js +87 -0
  44. package/dist/chunk-5REFGTWO.js.map +1 -0
  45. package/dist/chunk-5RH3VTNV.js +81 -0
  46. package/dist/chunk-5RH3VTNV.js.map +1 -0
  47. package/dist/chunk-5Z4ILTRD.js +48 -0
  48. package/dist/chunk-5Z4ILTRD.js.map +1 -0
  49. package/dist/chunk-7CKQ3FSB.js +24 -0
  50. package/dist/chunk-7CKQ3FSB.js.map +1 -0
  51. package/dist/chunk-7VHZCQL3.js +30 -0
  52. package/dist/chunk-7VHZCQL3.js.map +1 -0
  53. package/dist/chunk-7X6S7GJK.cjs +11 -0
  54. package/dist/chunk-7X6S7GJK.cjs.map +1 -0
  55. package/dist/chunk-A46BJOVJ.cjs +71 -0
  56. package/dist/chunk-A46BJOVJ.cjs.map +1 -0
  57. package/dist/chunk-A7E5UPEP.cjs +36 -0
  58. package/dist/chunk-A7E5UPEP.cjs.map +1 -0
  59. package/dist/chunk-A7MLO6YN.cjs +109 -0
  60. package/dist/chunk-A7MLO6YN.cjs.map +1 -0
  61. package/dist/chunk-AB3775NI.cjs +93 -0
  62. package/dist/chunk-AB3775NI.cjs.map +1 -0
  63. package/dist/chunk-AMNEAWA7.cjs +59 -0
  64. package/dist/chunk-AMNEAWA7.cjs.map +1 -0
  65. package/dist/chunk-AQ54YTF2.js +80 -0
  66. package/dist/chunk-AQ54YTF2.js.map +1 -0
  67. package/dist/chunk-CDQM72QX.cjs +46 -0
  68. package/dist/chunk-CDQM72QX.cjs.map +1 -0
  69. package/dist/chunk-CIFWAE4A.js +39 -0
  70. package/dist/chunk-CIFWAE4A.js.map +1 -0
  71. package/dist/chunk-CUICNKLS.cjs +42 -0
  72. package/dist/chunk-CUICNKLS.cjs.map +1 -0
  73. package/dist/chunk-D5CBPEAR.js +67 -0
  74. package/dist/chunk-D5CBPEAR.js.map +1 -0
  75. package/dist/chunk-DGDBIRAA.js +118 -0
  76. package/dist/chunk-DGDBIRAA.js.map +1 -0
  77. package/dist/chunk-DHB467LV.js +34 -0
  78. package/dist/chunk-DHB467LV.js.map +1 -0
  79. package/dist/chunk-DU5OQA67.cjs +49 -0
  80. package/dist/chunk-DU5OQA67.cjs.map +1 -0
  81. package/dist/chunk-DVSHUNGT.cjs +49 -0
  82. package/dist/chunk-DVSHUNGT.cjs.map +1 -0
  83. package/dist/chunk-E5S6MGBJ.cjs +51 -0
  84. package/dist/chunk-E5S6MGBJ.cjs.map +1 -0
  85. package/dist/chunk-EAFZZSYR.js +69 -0
  86. package/dist/chunk-EAFZZSYR.js.map +1 -0
  87. package/dist/chunk-EBKY3MJH.cjs +72 -0
  88. package/dist/chunk-EBKY3MJH.cjs.map +1 -0
  89. package/dist/chunk-EG7G3RZ2.cjs +79 -0
  90. package/dist/chunk-EG7G3RZ2.cjs.map +1 -0
  91. package/dist/chunk-FMST4EVC.js +11 -0
  92. package/dist/chunk-FMST4EVC.js.map +1 -0
  93. package/dist/chunk-FOJTLQJO.js +152 -0
  94. package/dist/chunk-FOJTLQJO.js.map +1 -0
  95. package/dist/chunk-FRXKCHZ7.cjs +50 -0
  96. package/dist/chunk-FRXKCHZ7.cjs.map +1 -0
  97. package/dist/chunk-FSMBDLNU.js +34 -0
  98. package/dist/chunk-FSMBDLNU.js.map +1 -0
  99. package/dist/chunk-G5ERI2MS.js +59 -0
  100. package/dist/chunk-G5ERI2MS.js.map +1 -0
  101. package/dist/chunk-GK3QI7HQ.js +49 -0
  102. package/dist/chunk-GK3QI7HQ.js.map +1 -0
  103. package/dist/chunk-GN3JZCM3.cjs +99 -0
  104. package/dist/chunk-GN3JZCM3.cjs.map +1 -0
  105. package/dist/chunk-GP5XW2ZR.cjs +36 -0
  106. package/dist/chunk-GP5XW2ZR.cjs.map +1 -0
  107. package/dist/chunk-GQNVPLSG.cjs +44 -0
  108. package/dist/chunk-GQNVPLSG.cjs.map +1 -0
  109. package/dist/chunk-GRLH3A6S.js +40 -0
  110. package/dist/chunk-GRLH3A6S.js.map +1 -0
  111. package/dist/chunk-HCXPKYJR.cjs +37 -0
  112. package/dist/chunk-HCXPKYJR.cjs.map +1 -0
  113. package/dist/chunk-HEHLGQ2U.js +198 -0
  114. package/dist/chunk-HEHLGQ2U.js.map +1 -0
  115. package/dist/chunk-HJYGNJD5.js +27 -0
  116. package/dist/chunk-HJYGNJD5.js.map +1 -0
  117. package/dist/chunk-HMKEBIBE.cjs +14 -0
  118. package/dist/chunk-HMKEBIBE.cjs.map +1 -0
  119. package/dist/chunk-HVNR3VXM.js +34 -0
  120. package/dist/chunk-HVNR3VXM.js.map +1 -0
  121. package/dist/chunk-I4H7XREK.js +91 -0
  122. package/dist/chunk-I4H7XREK.js.map +1 -0
  123. package/dist/chunk-IHWVGIDT.cjs +86 -0
  124. package/dist/chunk-IHWVGIDT.cjs.map +1 -0
  125. package/dist/chunk-IVPCYGXE.cjs +20 -0
  126. package/dist/chunk-IVPCYGXE.cjs.map +1 -0
  127. package/dist/chunk-J5GVGJZA.js +23 -0
  128. package/dist/chunk-J5GVGJZA.js.map +1 -0
  129. package/dist/chunk-JDAV6RWN.js +26 -0
  130. package/dist/chunk-JDAV6RWN.js.map +1 -0
  131. package/dist/chunk-JZVRCP3M.cjs +411 -0
  132. package/dist/chunk-JZVRCP3M.cjs.map +1 -0
  133. package/dist/chunk-K3653KJ6.js +11 -0
  134. package/dist/chunk-K3653KJ6.js.map +1 -0
  135. package/dist/chunk-K76RPF2X.js +37 -0
  136. package/dist/chunk-K76RPF2X.js.map +1 -0
  137. package/dist/chunk-KH3K3OI4.cjs +86 -0
  138. package/dist/chunk-KH3K3OI4.cjs.map +1 -0
  139. package/dist/chunk-KR33HZBW.js +31 -0
  140. package/dist/chunk-KR33HZBW.js.map +1 -0
  141. package/dist/chunk-KWIGG26N.js +3 -0
  142. package/dist/chunk-KWIGG26N.js.map +1 -0
  143. package/dist/chunk-KZBS5RNE.js +41 -0
  144. package/dist/chunk-KZBS5RNE.js.map +1 -0
  145. package/dist/chunk-L4SZQQK6.cjs +171 -0
  146. package/dist/chunk-L4SZQQK6.cjs.map +1 -0
  147. package/dist/chunk-L56JW56Y.cjs +129 -0
  148. package/dist/chunk-L56JW56Y.cjs.map +1 -0
  149. package/dist/chunk-LQPOFYD3.js +47 -0
  150. package/dist/chunk-LQPOFYD3.js.map +1 -0
  151. package/dist/chunk-LQQ244AY.js +28 -0
  152. package/dist/chunk-LQQ244AY.js.map +1 -0
  153. package/dist/chunk-LRBADBNS.cjs +23 -0
  154. package/dist/chunk-LRBADBNS.cjs.map +1 -0
  155. package/dist/chunk-LUCDLADP.cjs +49 -0
  156. package/dist/chunk-LUCDLADP.cjs.map +1 -0
  157. package/dist/chunk-LUFPA3WC.cjs +93 -0
  158. package/dist/chunk-LUFPA3WC.cjs.map +1 -0
  159. package/dist/chunk-M3HMXHAL.cjs +266 -0
  160. package/dist/chunk-M3HMXHAL.cjs.map +1 -0
  161. package/dist/chunk-MDLLVPLD.cjs +35 -0
  162. package/dist/chunk-MDLLVPLD.cjs.map +1 -0
  163. package/dist/chunk-MGWZXPMF.cjs +13 -0
  164. package/dist/chunk-MGWZXPMF.cjs.map +1 -0
  165. package/dist/chunk-NHAD5YHP.js +134 -0
  166. package/dist/chunk-NHAD5YHP.js.map +1 -0
  167. package/dist/chunk-NLGWU2KI.cjs +36 -0
  168. package/dist/chunk-NLGWU2KI.cjs.map +1 -0
  169. package/dist/chunk-NU2XENOZ.js +90 -0
  170. package/dist/chunk-NU2XENOZ.js.map +1 -0
  171. package/dist/chunk-OC2OB575.cjs +200 -0
  172. package/dist/chunk-OC2OB575.cjs.map +1 -0
  173. package/dist/chunk-OT3J7XYM.cjs +120 -0
  174. package/dist/chunk-OT3J7XYM.cjs.map +1 -0
  175. package/dist/chunk-P7CAVAYY.cjs +198 -0
  176. package/dist/chunk-P7CAVAYY.cjs.map +1 -0
  177. package/dist/chunk-PB2N5UFC.js +20 -0
  178. package/dist/chunk-PB2N5UFC.js.map +1 -0
  179. package/dist/chunk-PLL2MFTV.js +26 -0
  180. package/dist/chunk-PLL2MFTV.js.map +1 -0
  181. package/dist/chunk-PLPEZUCB.js +42 -0
  182. package/dist/chunk-PLPEZUCB.js.map +1 -0
  183. package/dist/chunk-PNXBZYED.js +24 -0
  184. package/dist/chunk-PNXBZYED.js.map +1 -0
  185. package/dist/chunk-PONUWUJ7.js +29 -0
  186. package/dist/chunk-PONUWUJ7.js.map +1 -0
  187. package/dist/chunk-PRZZF2EB.js +9 -0
  188. package/dist/chunk-PRZZF2EB.js.map +1 -0
  189. package/dist/chunk-PSRWV7UW.cjs +50 -0
  190. package/dist/chunk-PSRWV7UW.cjs.map +1 -0
  191. package/dist/chunk-PZ5AY32C.js +9 -0
  192. package/dist/chunk-PZ5AY32C.js.map +1 -0
  193. package/dist/chunk-Q7SFCCGT.cjs +11 -0
  194. package/dist/chunk-Q7SFCCGT.cjs.map +1 -0
  195. package/dist/chunk-QDSCHWM3.cjs +64 -0
  196. package/dist/chunk-QDSCHWM3.cjs.map +1 -0
  197. package/dist/chunk-QNVDG3L3.cjs +171 -0
  198. package/dist/chunk-QNVDG3L3.cjs.map +1 -0
  199. package/dist/chunk-RDPMXAQG.cjs +50 -0
  200. package/dist/chunk-RDPMXAQG.cjs.map +1 -0
  201. package/dist/chunk-RIG6I4HV.cjs +49 -0
  202. package/dist/chunk-RIG6I4HV.cjs.map +1 -0
  203. package/dist/chunk-ROBFZCJT.js +176 -0
  204. package/dist/chunk-ROBFZCJT.js.map +1 -0
  205. package/dist/chunk-RYAVZOGW.js +46 -0
  206. package/dist/chunk-RYAVZOGW.js.map +1 -0
  207. package/dist/chunk-SBPJFFRB.js +107 -0
  208. package/dist/chunk-SBPJFFRB.js.map +1 -0
  209. package/dist/chunk-SKMP4FO7.cjs +42 -0
  210. package/dist/chunk-SKMP4FO7.cjs.map +1 -0
  211. package/dist/chunk-SMDQTPJE.cjs +31 -0
  212. package/dist/chunk-SMDQTPJE.cjs.map +1 -0
  213. package/dist/chunk-SPAVM3EE.cjs +95 -0
  214. package/dist/chunk-SPAVM3EE.cjs.map +1 -0
  215. package/dist/chunk-T6O5RJA3.js +91 -0
  216. package/dist/chunk-T6O5RJA3.js.map +1 -0
  217. package/dist/chunk-T7LYMPIA.js +49 -0
  218. package/dist/chunk-T7LYMPIA.js.map +1 -0
  219. package/dist/chunk-TBV7NDAG.cjs +37 -0
  220. package/dist/chunk-TBV7NDAG.cjs.map +1 -0
  221. package/dist/chunk-TCV6N3EK.js +400 -0
  222. package/dist/chunk-TCV6N3EK.js.map +1 -0
  223. package/dist/chunk-TJVXG27I.cjs +13 -0
  224. package/dist/chunk-TJVXG27I.cjs.map +1 -0
  225. package/dist/chunk-U2T647VT.cjs +144 -0
  226. package/dist/chunk-U2T647VT.cjs.map +1 -0
  227. package/dist/chunk-U3D4LL6T.js +54 -0
  228. package/dist/chunk-U3D4LL6T.js.map +1 -0
  229. package/dist/chunk-U6G7EXM6.js +33 -0
  230. package/dist/chunk-U6G7EXM6.js.map +1 -0
  231. package/dist/chunk-USQZOJUG.cjs +121 -0
  232. package/dist/chunk-USQZOJUG.cjs.map +1 -0
  233. package/dist/chunk-UTPXIIHX.js +24 -0
  234. package/dist/chunk-UTPXIIHX.js.map +1 -0
  235. package/dist/chunk-UTYX2NMA.cjs +47 -0
  236. package/dist/chunk-UTYX2NMA.cjs.map +1 -0
  237. package/dist/chunk-V563IKQH.cjs +4 -0
  238. package/dist/chunk-V563IKQH.cjs.map +1 -0
  239. package/dist/chunk-VANX3AQD.js +3 -0
  240. package/dist/chunk-VANX3AQD.js.map +1 -0
  241. package/dist/chunk-VM36U3TK.js +106 -0
  242. package/dist/chunk-VM36U3TK.js.map +1 -0
  243. package/dist/chunk-VUBXXZUL.cjs +22 -0
  244. package/dist/chunk-VUBXXZUL.cjs.map +1 -0
  245. package/dist/chunk-VXNZRGLE.cjs +140 -0
  246. package/dist/chunk-VXNZRGLE.cjs.map +1 -0
  247. package/dist/chunk-VYILTAQR.cjs +51 -0
  248. package/dist/chunk-VYILTAQR.cjs.map +1 -0
  249. package/dist/chunk-W4VQ5YRX.js +45 -0
  250. package/dist/chunk-W4VQ5YRX.js.map +1 -0
  251. package/dist/chunk-W6BMYVY5.js +17 -0
  252. package/dist/chunk-W6BMYVY5.js.map +1 -0
  253. package/dist/chunk-WAZSWGCH.js +47 -0
  254. package/dist/chunk-WAZSWGCH.js.map +1 -0
  255. package/dist/chunk-WPH6SRZT.js +48 -0
  256. package/dist/chunk-WPH6SRZT.js.map +1 -0
  257. package/dist/chunk-WRANITBW.cjs +48 -0
  258. package/dist/chunk-WRANITBW.cjs.map +1 -0
  259. package/dist/chunk-WSDKENUA.cjs +99 -0
  260. package/dist/chunk-WSDKENUA.cjs.map +1 -0
  261. package/dist/chunk-WYSZMCAK.js +12 -0
  262. package/dist/chunk-WYSZMCAK.js.map +1 -0
  263. package/dist/chunk-XAPQTBJR.cjs +45 -0
  264. package/dist/chunk-XAPQTBJR.cjs.map +1 -0
  265. package/dist/chunk-XCYNYXC7.cjs +81 -0
  266. package/dist/chunk-XCYNYXC7.cjs.map +1 -0
  267. package/dist/chunk-XFGURTBJ.js +259 -0
  268. package/dist/chunk-XFGURTBJ.js.map +1 -0
  269. package/dist/chunk-XKKJHTSY.js +77 -0
  270. package/dist/chunk-XKKJHTSY.js.map +1 -0
  271. package/dist/chunk-XUTLQ573.cjs +20 -0
  272. package/dist/chunk-XUTLQ573.cjs.map +1 -0
  273. package/dist/chunk-YB2USB4M.js +17 -0
  274. package/dist/chunk-YB2USB4M.js.map +1 -0
  275. package/dist/chunk-YEYEUQM6.cjs +13 -0
  276. package/dist/chunk-YEYEUQM6.cjs.map +1 -0
  277. package/dist/chunk-YPA6HVCD.cjs +34 -0
  278. package/dist/chunk-YPA6HVCD.cjs.map +1 -0
  279. package/dist/chunk-YUA4DBYT.js +23 -0
  280. package/dist/chunk-YUA4DBYT.js.map +1 -0
  281. package/dist/chunk-Z33TWZHI.js +81 -0
  282. package/dist/chunk-Z33TWZHI.js.map +1 -0
  283. package/dist/chunk-ZBCGHL2Z.cjs +108 -0
  284. package/dist/chunk-ZBCGHL2Z.cjs.map +1 -0
  285. package/dist/chunk-ZC7K3XKN.cjs +51 -0
  286. package/dist/chunk-ZC7K3XKN.cjs.map +1 -0
  287. package/dist/chunk-ZZCTMR2F.cjs +37 -0
  288. package/dist/chunk-ZZCTMR2F.cjs.map +1 -0
  289. package/dist/components/buttons/BackButton.cjs +11 -153
  290. package/dist/components/buttons/BackButton.cjs.map +1 -1
  291. package/dist/components/buttons/BackButton.js +7 -134
  292. package/dist/components/buttons/BackButton.js.map +1 -1
  293. package/dist/components/company/CompanyBenefits.cjs +10 -31
  294. package/dist/components/company/CompanyBenefits.cjs.map +1 -1
  295. package/dist/components/company/CompanyBenefits.js +3 -8
  296. package/dist/components/company/CompanyBenefits.js.map +1 -1
  297. package/dist/components/company/CompanyInformation.cjs +9 -86
  298. package/dist/components/company/CompanyInformation.cjs.map +1 -1
  299. package/dist/components/company/CompanyInformation.js +4 -53
  300. package/dist/components/company/CompanyInformation.js.map +1 -1
  301. package/dist/components/company/CompanyTake.cjs +10 -122
  302. package/dist/components/company/CompanyTake.cjs.map +1 -1
  303. package/dist/components/company/CompanyTake.js +6 -91
  304. package/dist/components/company/CompanyTake.js.map +1 -1
  305. package/dist/components/jobCard/JobLocation.cjs +11 -151
  306. package/dist/components/jobCard/JobLocation.cjs.map +1 -1
  307. package/dist/components/jobCard/JobLocation.js +7 -121
  308. package/dist/components/jobCard/JobLocation.js.map +1 -1
  309. package/dist/components/jobPost/JobDescription.cjs +10 -347
  310. package/dist/components/jobPost/JobDescription.cjs.map +1 -1
  311. package/dist/components/jobPost/JobDescription.js +6 -315
  312. package/dist/components/jobPost/JobDescription.js.map +1 -1
  313. package/dist/components/jobPost/JobHeader.cjs +16 -406
  314. package/dist/components/jobPost/JobHeader.cjs.map +1 -1
  315. package/dist/components/jobPost/JobHeader.js +12 -398
  316. package/dist/components/jobPost/JobHeader.js.map +1 -1
  317. package/dist/components/jobPost/JobPost.cjs +42 -1820
  318. package/dist/components/jobPost/JobPost.cjs.map +1 -1
  319. package/dist/components/jobPost/JobPost.js +33 -1812
  320. package/dist/components/jobPost/JobPost.js.map +1 -1
  321. package/dist/components/primitives/avatar.cjs +17 -82
  322. package/dist/components/primitives/avatar.cjs.map +1 -1
  323. package/dist/components/primitives/avatar.js +4 -50
  324. package/dist/components/primitives/avatar.js.map +1 -1
  325. package/dist/components/primitives/command.cjs +41 -207
  326. package/dist/components/primitives/command.cjs.map +1 -1
  327. package/dist/components/primitives/command.js +5 -170
  328. package/dist/components/primitives/command.js.map +1 -1
  329. package/dist/components/primitives/dialog.cjs +45 -124
  330. package/dist/components/primitives/dialog.cjs.map +1 -1
  331. package/dist/components/primitives/dialog.js +4 -85
  332. package/dist/components/primitives/dialog.js.map +1 -1
  333. package/dist/components/primitives/input-otp.cjs +20 -90
  334. package/dist/components/primitives/input-otp.cjs.map +1 -1
  335. package/dist/components/primitives/input-otp.js +4 -58
  336. package/dist/components/primitives/input-otp.js.map +1 -1
  337. package/dist/components/primitives/popover.cjs +17 -67
  338. package/dist/components/primitives/popover.cjs.map +1 -1
  339. package/dist/components/primitives/popover.js +4 -35
  340. package/dist/components/primitives/popover.js.map +1 -1
  341. package/dist/components/primitives/radio-group.cjs +12 -64
  342. package/dist/components/primitives/radio-group.cjs.map +1 -1
  343. package/dist/components/primitives/radio-group.js +4 -36
  344. package/dist/components/primitives/radio-group.js.map +1 -1
  345. package/dist/components/primitives/separator.cjs +9 -62
  346. package/dist/components/primitives/separator.cjs.map +1 -1
  347. package/dist/components/primitives/separator.js +4 -32
  348. package/dist/components/primitives/separator.js.map +1 -1
  349. package/dist/components/primitives/tooltip.cjs +21 -69
  350. package/dist/components/primitives/tooltip.cjs.map +1 -1
  351. package/dist/components/primitives/tooltip.js +4 -36
  352. package/dist/components/primitives/tooltip.js.map +1 -1
  353. package/dist/components/ui/Avatar.cjs +12 -105
  354. package/dist/components/ui/Avatar.cjs.map +1 -1
  355. package/dist/components/ui/Avatar.js +5 -75
  356. package/dist/components/ui/Avatar.js.map +1 -1
  357. package/dist/components/ui/Badge.cjs +12 -62
  358. package/dist/components/ui/Badge.cjs.map +1 -1
  359. package/dist/components/ui/Badge.js +4 -31
  360. package/dist/components/ui/Badge.js.map +1 -1
  361. package/dist/components/ui/Button.cjs +13 -299
  362. package/dist/components/ui/Button.cjs.map +1 -1
  363. package/dist/components/ui/Button.js +4 -267
  364. package/dist/components/ui/Button.js.map +1 -1
  365. package/dist/components/ui/Checkbox.cjs +13 -109
  366. package/dist/components/ui/Checkbox.cjs.map +1 -1
  367. package/dist/components/ui/Checkbox.js +5 -81
  368. package/dist/components/ui/Checkbox.js.map +1 -1
  369. package/dist/components/ui/Chip.cjs +8 -59
  370. package/dist/components/ui/Chip.cjs.map +1 -1
  371. package/dist/components/ui/Chip.js +3 -29
  372. package/dist/components/ui/Chip.js.map +1 -1
  373. package/dist/components/ui/Combobox.cjs +22 -591
  374. package/dist/components/ui/Combobox.cjs.map +1 -1
  375. package/dist/components/ui/Combobox.js +14 -560
  376. package/dist/components/ui/Combobox.js.map +1 -1
  377. package/dist/components/ui/Counter.cjs +11 -226
  378. package/dist/components/ui/Counter.cjs.map +1 -1
  379. package/dist/components/ui/Counter.js +7 -197
  380. package/dist/components/ui/Counter.js.map +1 -1
  381. package/dist/components/ui/DatePicker.cjs +14 -274
  382. package/dist/components/ui/DatePicker.cjs.map +1 -1
  383. package/dist/components/ui/DatePicker.js +10 -245
  384. package/dist/components/ui/DatePicker.js.map +1 -1
  385. package/dist/components/ui/DismissibleBanner.cjs +9 -77
  386. package/dist/components/ui/DismissibleBanner.cjs.map +1 -1
  387. package/dist/components/ui/DismissibleBanner.js +4 -56
  388. package/dist/components/ui/DismissibleBanner.js.map +1 -1
  389. package/dist/components/ui/ErrorMessage.cjs +7 -36
  390. package/dist/components/ui/ErrorMessage.cjs.map +1 -1
  391. package/dist/components/ui/ErrorMessage.js +4 -16
  392. package/dist/components/ui/ErrorMessage.js.map +1 -1
  393. package/dist/components/ui/Icon.cjs +9 -108
  394. package/dist/components/ui/Icon.cjs.map +1 -1
  395. package/dist/components/ui/Icon.js +4 -87
  396. package/dist/components/ui/Icon.js.map +1 -1
  397. package/dist/components/ui/Input.cjs +9 -186
  398. package/dist/components/ui/Input.cjs.map +1 -1
  399. package/dist/components/ui/Input.js +7 -159
  400. package/dist/components/ui/Input.js.map +1 -1
  401. package/dist/components/ui/InputOtp.cjs +12 -175
  402. package/dist/components/ui/InputOtp.cjs.map +1 -1
  403. package/dist/components/ui/InputOtp.js +8 -145
  404. package/dist/components/ui/InputOtp.js.map +1 -1
  405. package/dist/components/ui/Label.cjs +7 -79
  406. package/dist/components/ui/Label.cjs.map +1 -1
  407. package/dist/components/ui/Label.js +5 -52
  408. package/dist/components/ui/Label.js.map +1 -1
  409. package/dist/components/ui/LinkButton.cjs +10 -58
  410. package/dist/components/ui/LinkButton.cjs.map +1 -1
  411. package/dist/components/ui/LinkButton.js +3 -25
  412. package/dist/components/ui/LinkButton.js.map +1 -1
  413. package/dist/components/ui/ListItem.cjs +8 -150
  414. package/dist/components/ui/ListItem.cjs.map +1 -1
  415. package/dist/components/ui/ListItem.js +6 -125
  416. package/dist/components/ui/ListItem.js.map +1 -1
  417. package/dist/components/ui/Map/ClusterMarker.cjs +9 -74
  418. package/dist/components/ui/Map/ClusterMarker.cjs.map +1 -1
  419. package/dist/components/ui/Map/ClusterMarker.js +5 -55
  420. package/dist/components/ui/Map/ClusterMarker.js.map +1 -1
  421. package/dist/components/ui/Map/FocusCircle.cjs +9 -81
  422. package/dist/components/ui/Map/FocusCircle.cjs.map +1 -1
  423. package/dist/components/ui/Map/FocusCircle.js +4 -61
  424. package/dist/components/ui/Map/FocusCircle.js.map +1 -1
  425. package/dist/components/ui/Map/IndividualMarker.cjs +9 -55
  426. package/dist/components/ui/Map/IndividualMarker.cjs.map +1 -1
  427. package/dist/components/ui/Map/IndividualMarker.js +4 -35
  428. package/dist/components/ui/Map/IndividualMarker.js.map +1 -1
  429. package/dist/components/ui/Map/MapComponent.cjs +16 -395
  430. package/dist/components/ui/Map/MapComponent.cjs.map +1 -1
  431. package/dist/components/ui/Map/MapComponent.js +12 -366
  432. package/dist/components/ui/Map/MapComponent.js.map +1 -1
  433. package/dist/components/ui/Map/MapContent.cjs +13 -273
  434. package/dist/components/ui/Map/MapContent.cjs.map +1 -1
  435. package/dist/components/ui/Map/MapContent.js +9 -254
  436. package/dist/components/ui/Map/MapContent.js.map +1 -1
  437. package/dist/components/ui/Map/clustering.cjs +13 -99
  438. package/dist/components/ui/Map/clustering.cjs.map +1 -1
  439. package/dist/components/ui/Map/clustering.js +5 -76
  440. package/dist/components/ui/Map/clustering.js.map +1 -1
  441. package/dist/components/ui/Map/constants.cjs +33 -61
  442. package/dist/components/ui/Map/constants.cjs.map +1 -1
  443. package/dist/components/ui/Map/constants.js +3 -33
  444. package/dist/components/ui/Map/constants.js.map +1 -1
  445. package/dist/components/ui/Map/hooks.cjs +18 -90
  446. package/dist/components/ui/Map/hooks.cjs.map +1 -1
  447. package/dist/components/ui/Map/hooks.js +6 -58
  448. package/dist/components/ui/Map/hooks.js.map +1 -1
  449. package/dist/components/ui/Map/index.cjs +21 -400
  450. package/dist/components/ui/Map/index.cjs.map +1 -1
  451. package/dist/components/ui/Map/index.js +13 -364
  452. package/dist/components/ui/Map/index.js.map +1 -1
  453. package/dist/components/ui/Map/types.cjs +2 -17
  454. package/dist/components/ui/Map/types.cjs.map +1 -1
  455. package/dist/components/ui/Map/types.js +2 -0
  456. package/dist/components/ui/Map/types.js.map +1 -1
  457. package/dist/components/ui/Map/utils.cjs +25 -75
  458. package/dist/components/ui/Map/utils.cjs.map +1 -1
  459. package/dist/components/ui/Map/utils.js +4 -48
  460. package/dist/components/ui/Map/utils.js.map +1 -1
  461. package/dist/components/ui/PlacesQueryInput.cjs +9 -301
  462. package/dist/components/ui/PlacesQueryInput.cjs.map +1 -1
  463. package/dist/components/ui/PlacesQueryInput.js +7 -275
  464. package/dist/components/ui/PlacesQueryInput.js.map +1 -1
  465. package/dist/components/ui/Radio.cjs +12 -151
  466. package/dist/components/ui/Radio.cjs.map +1 -1
  467. package/dist/components/ui/Radio.js +8 -123
  468. package/dist/components/ui/Radio.js.map +1 -1
  469. package/dist/components/ui/ReadMore.cjs +9 -340
  470. package/dist/components/ui/ReadMore.cjs.map +1 -1
  471. package/dist/components/ui/ReadMore.js +5 -311
  472. package/dist/components/ui/ReadMore.js.map +1 -1
  473. package/dist/components/ui/Select.cjs +11 -303
  474. package/dist/components/ui/Select.cjs.map +1 -1
  475. package/dist/components/ui/Select.js +9 -282
  476. package/dist/components/ui/Select.js.map +1 -1
  477. package/dist/components/ui/StepTabs.cjs +9 -129
  478. package/dist/components/ui/StepTabs.cjs.map +1 -1
  479. package/dist/components/ui/StepTabs.js +4 -99
  480. package/dist/components/ui/StepTabs.js.map +1 -1
  481. package/dist/components/ui/Switch.cjs +9 -69
  482. package/dist/components/ui/Switch.cjs.map +1 -1
  483. package/dist/components/ui/Switch.js +5 -39
  484. package/dist/components/ui/Switch.js.map +1 -1
  485. package/dist/components/ui/buttonShadcn.cjs +13 -81
  486. package/dist/components/ui/buttonShadcn.cjs.map +1 -1
  487. package/dist/components/ui/buttonShadcn.js +4 -49
  488. package/dist/components/ui/buttonShadcn.js.map +1 -1
  489. package/dist/components/ui/calendar.cjs +9 -135
  490. package/dist/components/ui/calendar.cjs.map +1 -1
  491. package/dist/components/ui/calendar.js +5 -106
  492. package/dist/components/ui/calendar.js.map +1 -1
  493. package/dist/contexts/WindowHistoryProvider.cjs +13 -43
  494. package/dist/contexts/WindowHistoryProvider.cjs.map +1 -1
  495. package/dist/contexts/WindowHistoryProvider.js +3 -21
  496. package/dist/contexts/WindowHistoryProvider.js.map +1 -1
  497. package/dist/hooks/useDisplayText.cjs +10 -496
  498. package/dist/hooks/useDisplayText.cjs.map +1 -1
  499. package/dist/hooks/useDisplayText.js +6 -476
  500. package/dist/hooks/useDisplayText.js.map +1 -1
  501. package/dist/hooks/useWindowHistory.cjs +9 -37
  502. package/dist/hooks/useWindowHistory.cjs.map +1 -1
  503. package/dist/hooks/useWindowHistory.js +4 -16
  504. package/dist/hooks/useWindowHistory.js.map +1 -1
  505. package/dist/index.cjs +216 -4128
  506. package/dist/index.cjs.map +1 -1
  507. package/dist/index.js +73 -4107
  508. package/dist/index.js.map +1 -1
  509. package/dist/lib/google.cjs +21 -81
  510. package/dist/lib/google.cjs.map +1 -1
  511. package/dist/lib/google.js +3 -57
  512. package/dist/lib/google.js.map +1 -1
  513. package/dist/lib/icons.cjs +10 -50
  514. package/dist/lib/icons.cjs.map +1 -1
  515. package/dist/lib/icons.js +3 -48
  516. package/dist/lib/icons.js.map +1 -1
  517. package/dist/lib/locations.cjs +17 -66
  518. package/dist/lib/locations.cjs.map +1 -1
  519. package/dist/lib/locations.js +3 -42
  520. package/dist/lib/locations.js.map +1 -1
  521. package/dist/lib/mappings.cjs +45 -439
  522. package/dist/lib/mappings.cjs.map +1 -1
  523. package/dist/lib/mappings.js +3 -408
  524. package/dist/lib/mappings.js.map +1 -1
  525. package/dist/lib/salaryRange.cjs +14 -453
  526. package/dist/lib/salaryRange.cjs.map +1 -1
  527. package/dist/lib/salaryRange.js +10 -437
  528. package/dist/lib/salaryRange.js.map +1 -1
  529. package/dist/lib/utils.cjs +10 -32
  530. package/dist/lib/utils.cjs.map +1 -1
  531. package/dist/lib/utils.js +3 -9
  532. package/dist/lib/utils.js.map +1 -1
  533. package/dist/services/displayText.cjs +9 -464
  534. package/dist/services/displayText.cjs.map +1 -1
  535. package/dist/services/displayText.js +5 -442
  536. package/dist/services/displayText.js.map +1 -1
  537. package/dist/types/data/company_service_latest.cjs +73 -246
  538. package/dist/types/data/company_service_latest.cjs.map +1 -1
  539. package/dist/types/data/company_service_latest.js +4 -209
  540. package/dist/types/data/company_service_latest.js.map +1 -1
  541. package/dist/types/data/job_posting_service_latest.cjs +42 -276
  542. package/dist/types/data/job_posting_service_latest.cjs.map +1 -1
  543. package/dist/types/data/job_posting_service_latest.js +5 -256
  544. package/dist/types/data/job_posting_service_latest.js.map +1 -1
  545. package/dist/types/data/shared_pickle_output_latest.cjs +39 -99
  546. package/dist/types/data/shared_pickle_output_latest.cjs.map +1 -1
  547. package/dist/types/data/shared_pickle_output_latest.js +3 -74
  548. package/dist/types/data/shared_pickle_output_latest.js.map +1 -1
  549. package/dist/types/displayText.errors.cjs +13 -40
  550. package/dist/types/displayText.errors.cjs.map +1 -1
  551. package/dist/types/displayText.errors.js +3 -17
  552. package/dist/types/displayText.errors.js.map +1 -1
  553. package/dist/types/index.cjs +28 -494
  554. package/dist/types/index.cjs.map +1 -1
  555. package/dist/types/index.js +9 -478
  556. package/dist/types/index.js.map +1 -1
  557. package/dist/types/latest/company_service_latest.cjs +73 -246
  558. package/dist/types/latest/company_service_latest.cjs.map +1 -1
  559. package/dist/types/latest/company_service_latest.js +4 -209
  560. package/dist/types/latest/company_service_latest.js.map +1 -1
  561. package/dist/types/latest/custom/company_service_sanity.cjs +46 -307
  562. package/dist/types/latest/custom/company_service_sanity.cjs.map +1 -1
  563. package/dist/types/latest/custom/company_service_sanity.js +6 -287
  564. package/dist/types/latest/custom/company_service_sanity.js.map +1 -1
  565. package/dist/types/latest/custom/custom_sanity_models.cjs +13 -39
  566. package/dist/types/latest/custom/custom_sanity_models.cjs.map +1 -1
  567. package/dist/types/latest/custom/custom_sanity_models.js +3 -16
  568. package/dist/types/latest/custom/custom_sanity_models.js.map +1 -1
  569. package/dist/types/latest/custom/job_posting_service_sanity.cjs +66 -353
  570. package/dist/types/latest/custom/job_posting_service_sanity.cjs.map +1 -1
  571. package/dist/types/latest/custom/job_posting_service_sanity.js +7 -330
  572. package/dist/types/latest/custom/job_posting_service_sanity.js.map +1 -1
  573. package/dist/types/latest/job_posting_service_latest.cjs +42 -276
  574. package/dist/types/latest/job_posting_service_latest.cjs.map +1 -1
  575. package/dist/types/latest/job_posting_service_latest.js +5 -256
  576. package/dist/types/latest/job_posting_service_latest.js.map +1 -1
  577. package/dist/types/latest/shared_pickle_output_latest.cjs +39 -99
  578. package/dist/types/latest/shared_pickle_output_latest.cjs.map +1 -1
  579. package/dist/types/latest/shared_pickle_output_latest.js +3 -74
  580. package/dist/types/latest/shared_pickle_output_latest.js.map +1 -1
  581. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -1,4147 +1,235 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
-
30
- // src/index.ts
31
- var index_exports = {};
32
- __export(index_exports, {
33
- Avatar: () => Avatar,
34
- BackButton: () => BackButton,
35
- Badge: () => Badge,
36
- Button: () => Button,
37
- Checkbox: () => Checkbox,
38
- Chip: () => Chip_default,
39
- Combobox: () => Combobox,
40
- CompanyBenefits: () => CompanyBenefits,
41
- CompanyInformation: () => CompanyInformation,
42
- CompanyService: () => company_service_latest_exports2,
43
- CompanyTake: () => CompanyTake,
44
- Counter: () => Counter,
45
- DatePicker: () => DatePicker,
46
- DismissibleBanner: () => DismissibleBanner,
47
- Icon: () => Icon,
48
- Input: () => Input_default,
49
- InputOtp: () => InputOtp,
50
- JobDescription: () => JobDescription,
51
- JobHeader: () => JobHeader,
52
- JobLocation: () => JobLocation,
53
- JobPost: () => JobPost,
54
- JobPostService: () => job_posting_service_latest_exports2,
55
- Label: () => Label_default,
56
- LinkButton: () => LinkButton,
57
- ListItem: () => ListItem_default,
58
- MapComponent: () => MapComponent,
59
- PlacesQueryInput: () => PlacesQueryInput_default,
60
- Radio: () => Radio,
61
- ReadMore: () => ReadMore,
62
- Select: () => Select_default,
63
- SharedService: () => shared_pickle_output_latest_exports2,
64
- StepTabs: () => StepTabs,
65
- Switch: () => Switch,
66
- WindowHistoryProvider: () => WindowHistoryProvider,
67
- cn: () => cn,
68
- fetchLocation: () => fetchLocation,
69
- salaryRange: () => salaryRange,
70
- useDisplayText: () => useDisplayText,
71
- useWindowHistory: () => useWindowHistory
72
- });
73
- module.exports = __toCommonJS(index_exports);
74
-
75
- // src/components/ui/Chip.tsx
76
- var import_cva = require("cva");
77
- var import_react = __toESM(require("react"), 1);
78
- var import_tailwind_merge = require("tailwind-merge");
79
- var Chip = ({ className, variant, size, ...props }) => /* @__PURE__ */ import_react.default.createElement("div", { className: (0, import_tailwind_merge.twMerge)(chipVariants({ variant, size, className })), ...props });
80
- var chipVariants = (0, import_cva.cva)(["flex", "items-center", "rounded-3xl", "border", "w-fit"], {
81
- variants: {
82
- variant: {
83
- neutral: ["text-grey-80", "border-grey-10"],
84
- primary: ["text-purple-100", "border-purple-20"],
85
- danger: ["text-pumpkin-100", "border-pumpkin-20"],
86
- jobLocation: ["text-grey-80", "border-grey-10", "bg-grey-5"],
87
- onboarding: ["text-green-100", "bg-green-10", "cursor-pointer"],
88
- onboardingSelected: ["text-white", "bg-green-90", "cursor-pointer"]
89
- },
90
- size: {
91
- small: ["text-sm", "leading-5", "px-2", "py-1", "gap-1.5"],
92
- medium: ["text-base", "leading-6", "px-3", "py-2", "gap-2"]
93
- }
94
- },
95
- defaultVariants: {
96
- variant: "neutral",
97
- size: "medium"
98
- }
99
- });
100
- var Chip_default = Chip;
101
-
102
- // src/components/ui/Input.tsx
103
- var import_cva2 = require("cva");
104
- var import_lucide_react2 = require("lucide-react");
105
- var import_react2 = require("react");
106
-
107
- // src/lib/utils.ts
108
- var import_clsx = require("clsx");
109
- var import_tailwind_merge2 = require("tailwind-merge");
110
- function cn(...inputs) {
111
- return (0, import_tailwind_merge2.twMerge)((0, import_clsx.clsx)(inputs));
112
- }
113
-
114
- // src/components/ui/ErrorMessage.tsx
115
- function ErrorMessage({ message, className, ...props }) {
116
- if (!message) return null;
117
- return /* @__PURE__ */ React.createElement("p", { className: cn("px-1 text-xs text-red-600", className), ...props }, message);
118
- }
119
- var ErrorMessage_default = ErrorMessage;
120
-
121
- // src/components/ui/Label.tsx
122
- var import_lucide_react = require("lucide-react");
123
-
124
- // src/components/primitives/tooltip.tsx
125
- var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
126
- var React3 = __toESM(require("react"), 1);
127
- var TooltipProvider = TooltipPrimitive.Provider;
128
- var Tooltip = TooltipPrimitive.Root;
129
- var TooltipTrigger = TooltipPrimitive.Trigger;
130
- var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React3.createElement(
131
- TooltipPrimitive.Content,
132
- {
133
- ref,
134
- sideOffset,
135
- className: cn(
136
- "z-50 overflow-hidden rounded-md border border-neutral-200 bg-white px-3 py-1.5 text-sm text-neutral-950 shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
137
- className
138
- ),
139
- ...props
140
- }
141
- ));
142
- TooltipContent.displayName = TooltipPrimitive.Content.displayName;
143
-
144
- // src/components/ui/Label.tsx
145
- function Label({ text, required, description, className, ...props }) {
146
- if (!text) return null;
147
- return /* @__PURE__ */ React.createElement("div", { className: "flex w-full flex-row gap-1" }, /* @__PURE__ */ React.createElement(
148
- "label",
149
- {
150
- className: cn(
151
- "text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
152
- className
153
- ),
154
- ...props
155
- },
156
- text,
157
- required && /* @__PURE__ */ React.createElement("span", { className: "text-red-600" }, "\xA0*")
158
- ), !!description && /* @__PURE__ */ React.createElement(TooltipProvider, null, /* @__PURE__ */ React.createElement(Tooltip, null, /* @__PURE__ */ React.createElement(TooltipTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(import_lucide_react.InfoIcon, { className: "h-4 w-4" })), /* @__PURE__ */ React.createElement(TooltipContent, { className: "max-w-48" }, description))));
159
- }
160
- var Label_default = Label;
161
-
162
- // src/components/ui/Input.tsx
163
- var Input = (0, import_react2.forwardRef)(
164
- ({ label, error, description, theme, icon, onClear, value, onChange, classNames, ...props }, ref) => {
165
- const handleClear = () => {
166
- onChange?.({ target: { value: "" } });
167
- onClear?.();
168
- };
169
- const IconComponent = icon && import_lucide_react2.icons[icon];
170
- const placeholder = props.placeholder ?? (icon === "Search" ? "Search..." : "");
171
- const hasIcon = !!icon;
172
- const iconColor = theme === "dark" ? "text-white" : "text-grey-80";
173
- return /* @__PURE__ */ React.createElement("div", { className: "group flex w-full flex-col gap-1", "data-testid": `input-wrapper-${props.id}` }, label && /* @__PURE__ */ React.createElement(
174
- Label_default,
175
- {
176
- text: label,
177
- htmlFor: props.name,
178
- required: props.required,
179
- description,
180
- className: classNames?.label
181
- }
182
- ), /* @__PURE__ */ React.createElement("div", { className: "relative flex flex-row items-center" }, IconComponent && /* @__PURE__ */ React.createElement(
183
- IconComponent,
184
- {
185
- className: `absolute left-3 h-4 w-4 ${iconColor} opacity-50 group-hover:opacity-100`
186
- }
187
- ), /* @__PURE__ */ React.createElement(
188
- "input",
189
- {
190
- className: cn(inputVariants({ theme, hasIcon })),
191
- ref,
192
- placeholder,
193
- value,
194
- onChange,
195
- "data-testid": `input-element-${props.id}`,
196
- ...props
197
- }
198
- ), hasIcon && value && /* @__PURE__ */ React.createElement(
199
- import_lucide_react2.X,
200
- {
201
- className: `absolute right-3 h-4 w-4 cursor-pointer ${iconColor}`,
202
- onClick: handleClear,
203
- "data-testid": "clear-button"
204
- }
205
- )), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
206
- }
207
- );
208
- Input.displayName = "Input";
209
- var inputVariants = (0, import_cva2.cva)(
210
- [
211
- "border-input",
212
- "placeholder:text-muted-foreground",
213
- "focus-visible:ring-ring",
214
- "inline-flex",
215
- "w-full",
216
- "h-11",
217
- "items-center",
218
- "justify-start",
219
- "gap-3",
220
- "rounded-lg",
221
- "bg-transparent",
222
- "px-3",
223
- "pt-0.5",
224
- "text-sm",
225
- "shadow-sm",
226
- "ring-grey-50",
227
- "transition-colors",
228
- "focus-visible:outline-none",
229
- "focus-visible:ring-1",
230
- "disabled:cursor-not-allowed",
231
- "disabled:opacity-50",
232
- "appearance-none",
233
- "[&::-webkit-search-cancel-button]:appearance-none",
234
- "[&::-webkit-search-decoration]:appearance-none",
235
- "[&::-webkit-search-results-button]:appearance-none",
236
- "[&::-webkit-search-results-decoration]:appearance-none",
237
- "[&::-ms-clear]:display-none",
238
- "[&::-ms-reveal]:display-none"
239
- ],
240
- {
241
- variants: {
242
- theme: {
243
- light: "text-grey-80 border",
244
- dark: "text-white"
245
- },
246
- hasIcon: {
247
- false: "pl-3",
248
- true: "pl-8"
249
- }
250
- },
251
- defaultVariants: {
252
- theme: "light",
253
- hasIcon: false
254
- }
255
- }
256
- );
257
- var Input_default = Input;
258
-
259
- // src/components/ui/ListItem.tsx
260
- var import_lucide_react4 = require("lucide-react");
261
- var import_lucide_react5 = require("lucide-react");
262
-
263
- // src/components/ui/Checkbox.tsx
264
- var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
265
- var import_lucide_react3 = require("lucide-react");
266
- var import_react3 = require("react");
267
- var CheckboxToggle = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
268
- CheckboxPrimitive.Root,
269
- {
270
- ref,
271
- className: cn(
272
- "group",
273
- "peer",
274
- "h-5",
275
- "w-5",
276
- "shrink-0",
277
- "rounded-md",
278
- "border",
279
- "border-grey-10",
280
- "outline",
281
- "outline-1",
282
- "outline-offset-2",
283
- "outline-transparent",
284
- "hover:border-grey-20",
285
- "focus:outline-purple-100",
286
- "active:border-green-80",
287
- "disabled:cursor-not-allowed",
288
- "disabled:opacity-50",
289
- "data-[state=checked]:bg-green-80",
290
- "data-[state=indeterminate]:bg-green-80",
291
- "data-[state=checked]:text-white",
292
- "data-[state=indeterminate]:text-primary-foreground",
293
- props.disabled && "bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",
294
- className
295
- ),
296
- ...props
297
- },
298
- /* @__PURE__ */ React.createElement(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current" }, /* @__PURE__ */ React.createElement(import_lucide_react3.Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }), /* @__PURE__ */ React.createElement(import_lucide_react3.Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" }))
299
- ));
300
- CheckboxToggle.displayName = CheckboxPrimitive.Root.displayName;
301
- var Checkbox = (0, import_react3.forwardRef)(
302
- ({ error, classNames, children, ...props }, ref) => {
303
- const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`;
304
- return /* @__PURE__ */ React.createElement("div", { className: cn("flex space-x-2", classNames?.wrapper) }, /* @__PURE__ */ React.createElement(CheckboxToggle, { id, ref, ...props }), /* @__PURE__ */ React.createElement(
305
- "label",
306
- {
307
- htmlFor: id,
308
- className: cn(
309
- "text-sm",
310
- props.disabled && "pointer-events-none text-grey-40",
311
- classNames?.label
312
- )
313
- },
314
- children,
315
- /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error, className: "mt-1" })
316
- ));
317
- }
318
- );
319
- Checkbox.displayName = "Checkbox";
320
-
321
- // src/components/ui/ListItem.tsx
322
- function ListItem({
323
- icon,
324
- hasCheckbox,
325
- isSelected,
326
- className,
327
- title,
328
- value,
329
- description,
330
- ...props
331
- }) {
332
- const getIconIfValid = (icon2) => {
333
- if (icon2 in import_lucide_react5.icons) {
334
- const IconComponent = import_lucide_react5.icons[icon2];
335
- return /* @__PURE__ */ React.createElement(IconComponent, { size: 14 });
336
- }
337
- return null;
338
- };
339
- const optionIcon = icon ? getIconIfValid(icon) : void 0;
340
- return /* @__PURE__ */ React.createElement(
341
- "li",
342
- {
343
- className: cn(
344
- "group relative flex w-72 cursor-pointer flex-row items-center text-left text-sm",
345
- className
346
- ),
347
- ...props,
348
- "data-state": isSelected ? "checked" : "unchecked"
349
- },
350
- optionIcon && /* @__PURE__ */ React.createElement("span", { className: "mr-2" }, optionIcon),
351
- hasCheckbox && /* @__PURE__ */ React.createElement(Checkbox, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
352
- /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("p", null, title), /* @__PURE__ */ React.createElement("p", { className: "text-xs text-grey-80" }, description)),
353
- /* @__PURE__ */ React.createElement(
354
- import_lucide_react4.CheckIcon,
355
- {
356
- className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
357
- size: 16
358
- }
359
- )
360
- );
361
- }
362
- var ListItem_default = ListItem;
363
-
364
- // src/components/ui/Map/MapComponent.tsx
365
- var import_react_google_maps4 = require("@vis.gl/react-google-maps");
366
-
367
- // src/components/ui/Map/constants.ts
368
- var DEFAULT_POSITION = { lat: 40.715021, lng: -74.00459 };
369
- var DEFAULT_ZOOM = 10;
370
- var CLUSTER_DISTANCE_THRESHOLD = 1e-3;
371
- var PIN_COLORS = {
372
- background: "#0B5441",
373
- borderColor: "#EBFDF1",
374
- glyphColor: "#D4F500"
375
- };
376
- var FOCUS_CIRCLE_STYLES = {
377
- strokeColor: "#0B5441",
378
- strokeOpacity: 0.8,
379
- strokeWeight: 2,
380
- fillColor: "#0B5441",
381
- fillOpacity: 0.1,
382
- clickable: false,
383
- zIndex: 1
384
- };
385
- var CLUSTERING_CONFIG = {
386
- radius: 60,
387
- maxZoom: 16,
388
- minPoints: 2
389
- };
390
-
391
- // src/components/ui/Map/hooks.ts
392
- var import_react4 = require("react");
393
- var import_use_supercluster = __toESM(require("use-supercluster"), 1);
394
-
395
- // src/components/ui/Map/utils.ts
396
- function getCenterForCoordinates(coords) {
397
- if (coords.length === 0) return DEFAULT_POSITION;
398
- const avgLat = coords.reduce((sum, coord) => sum + coord.lat, 0) / coords.length;
399
- const avgLng = coords.reduce((sum, coord) => sum + coord.lng, 0) / coords.length;
400
- return { lat: avgLat, lng: avgLng };
401
- }
402
- function getZoomForCoordinates(coords, defaultZoom) {
403
- if (coords.length <= 1) return defaultZoom;
404
- const lats = coords.map((coord) => coord.lat);
405
- const lngs = coords.map((coord) => coord.lng);
406
- const latDiff = Math.max(...lats) - Math.min(...lats);
407
- const lngDiff = Math.max(...lngs) - Math.min(...lngs);
408
- const maxDiff = Math.max(latDiff, lngDiff);
409
- if (maxDiff > 0.1) return 8;
410
- if (maxDiff > 0.05) return 10;
411
- if (maxDiff > 0.01) return 12;
412
- return 14;
413
- }
414
- function filterClusterCoordinates(coordinates, clusterLat, clusterLng) {
415
- return coordinates.filter((coord) => {
416
- const latDiff = Math.abs(coord.lat - clusterLat);
417
- const lngDiff = Math.abs(coord.lng - clusterLng);
418
- const distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);
419
- return distance < CLUSTER_DISTANCE_THRESHOLD;
420
- });
421
- }
422
-
423
- // src/components/ui/Map/clustering.ts
424
- function convertCoordinatesToGeoJSON(coordinates) {
425
- return coordinates.map((coord, index) => ({
426
- type: "Feature",
427
- properties: {
428
- cluster: false,
429
- pointId: index,
430
- data: coord.data
431
- },
432
- geometry: {
433
- type: "Point",
434
- coordinates: [coord.lng, coord.lat]
435
- }
436
- }));
437
- }
438
-
439
- // src/components/ui/Map/hooks.ts
440
- function useMapBounds(_coordinates) {
441
- const [bounds, setBounds] = (0, import_react4.useState)([
442
- [-180, -85],
443
- [180, 85]
444
- ]);
445
- return { bounds, setBounds };
446
- }
447
- function useZoomLevel(initialZoom) {
448
- const [zoomLevel, setZoomLevel] = (0, import_react4.useState)(initialZoom);
449
- return { zoomLevel, setZoomLevel };
450
- }
451
- function useClusters(coordinates, bounds, zoomLevel) {
452
- const points = (0, import_react4.useMemo)(() => {
453
- if (!coordinates) return [];
454
- return convertCoordinatesToGeoJSON(coordinates);
455
- }, [coordinates]);
456
- const { clusters, supercluster } = (0, import_use_supercluster.default)({
457
- points,
458
- bounds: [-180, -85, 180, 85],
459
- // Use global bounds for consistency
460
- zoom: zoomLevel || 10,
461
- options: CLUSTERING_CONFIG
462
- });
463
- return { clusters, supercluster };
464
- }
465
-
466
- // src/components/ui/Map/MapContent.tsx
467
- var import_react_google_maps3 = require("@vis.gl/react-google-maps");
468
- var import_react6 = require("react");
469
-
470
- // src/components/ui/Map/ClusterMarker.tsx
471
- var import_react_google_maps = require("@vis.gl/react-google-maps");
472
- function ClusterMarker({
473
- cluster,
474
- coordinates,
475
- onPinClick,
476
- onPinHover,
477
- zoomToLevel,
478
- supercluster
479
- }) {
480
- const [lng, lat] = cluster.geometry.coordinates;
481
- const { point_count: pointCount } = cluster.properties;
482
- const handleClick = () => {
483
- const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng);
484
- onPinClick?.(clusterCoordinates);
485
- const expansionZoom = supercluster.getClusterExpansionZoom(cluster.id);
486
- zoomToLevel(expansionZoom);
487
- };
488
- const handleMouseEnter = () => {
489
- const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng);
490
- onPinHover?.(clusterCoordinates);
491
- };
492
- const handleMouseLeave = () => onPinHover?.(null);
493
- return /* @__PURE__ */ React.createElement(
494
- import_react_google_maps.AdvancedMarker,
495
- {
496
- key: `cluster-${cluster.id}`,
497
- position: { lat, lng },
498
- onClick: handleClick,
499
- onMouseEnter: handleMouseEnter,
500
- onMouseLeave: handleMouseLeave
501
- },
502
- /* @__PURE__ */ React.createElement("div", { className: "relative flex items-center justify-center", id: "CLUSTER_MARKER" }, /* @__PURE__ */ React.createElement("div", { className: "flex h-8 w-8 items-center justify-center rounded-full border-2 border-white bg-red-500 text-sm font-bold text-white shadow-lg" }, pointCount || "?"))
503
- );
504
- }
505
-
506
- // src/components/ui/Map/FocusCircle.tsx
507
- var import_react5 = require("react");
508
- function FocusCircle({
509
- focusPoint,
510
- radiusMiles,
511
- map,
512
- mapsLibrary
513
- }) {
514
- const circleRef = (0, import_react5.useRef)(null);
515
- const circleProps = (0, import_react5.useMemo)(() => {
516
- if (!focusPoint || !radiusMiles) return null;
517
- return {
518
- center: focusPoint,
519
- radius: radiusMiles * 1609.34
520
- };
521
- }, [focusPoint, radiusMiles]);
522
- (0, import_react5.useEffect)(() => {
523
- if (!map || !mapsLibrary || !circleProps) {
524
- return;
525
- }
526
- if (!circleRef.current) {
527
- const circle = new google.maps.Circle({
528
- center: circleProps.center,
529
- radius: circleProps.radius,
530
- ...FOCUS_CIRCLE_STYLES,
531
- map
532
- });
533
- circleRef.current = circle;
534
- } else {
535
- circleRef.current.setCenter(circleProps.center);
536
- circleRef.current.setRadius(circleProps.radius);
537
- }
538
- }, [map, mapsLibrary, circleProps]);
539
- (0, import_react5.useEffect)(() => {
540
- return () => {
541
- if (circleRef.current) {
542
- circleRef.current.setMap(null);
543
- circleRef.current = null;
544
- }
545
- };
546
- }, []);
547
- return null;
548
- }
549
-
550
- // src/components/ui/Map/IndividualMarker.tsx
551
- var import_react_google_maps2 = require("@vis.gl/react-google-maps");
552
- function IndividualMarker({
553
- coordinate,
554
- onPinClick,
555
- onPinHover
556
- }) {
557
- const handleMouseEnter = () => onPinHover?.(coordinate);
558
- const handleMouseLeave = () => onPinHover?.(null);
559
- const handleClick = () => onPinClick?.(coordinate);
560
- return /* @__PURE__ */ React.createElement(
561
- import_react_google_maps2.AdvancedMarker,
562
- {
563
- position: { lat: coordinate.lat, lng: coordinate.lng },
564
- onMouseEnter: handleMouseEnter,
565
- onMouseLeave: handleMouseLeave,
566
- onClick: handleClick
567
- },
568
- /* @__PURE__ */ React.createElement(import_react_google_maps2.Pin, { ...PIN_COLORS })
569
- );
570
- }
571
-
572
- // src/components/ui/Map/MapContent.tsx
573
- function MapContent({
574
- mapId,
575
- mapCenter,
576
- mapZoom,
577
- position,
578
- coordinates,
579
- clusters,
580
- supercluster,
581
- onPinHover,
582
- onPinClick,
583
- focusPoint,
584
- radiusMiles,
585
- className,
586
- setBounds,
587
- setZoomLevel
588
- }) {
589
- const map = (0, import_react_google_maps3.useMap)();
590
- const mapsLibrary = (0, import_react_google_maps3.useMapsLibrary)("maps");
591
- const zoomToLevel = (0, import_react6.useCallback)(
592
- (newZoom) => {
593
- if (map) {
594
- map.setZoom(newZoom);
595
- }
596
- },
597
- [map]
598
- );
599
- const handleBoundsChanged = (e) => {
600
- if (e.detail.bounds) {
601
- const bounds = e.detail.bounds;
602
- setBounds([
603
- [bounds.south, bounds.west],
604
- [bounds.north, bounds.east]
605
- ]);
606
- }
607
- };
608
- const handleZoomChanged = (e) => {
609
- if (e.detail.zoom) {
610
- setZoomLevel(e.detail.zoom);
611
- }
612
- };
613
- const handleCameraChanged = (e) => {
614
- if (e.detail.zoom) {
615
- setZoomLevel(e.detail.zoom);
616
- }
617
- };
618
- return /* @__PURE__ */ React.createElement("div", { className: cn("relative h-screen max-w-full", className) }, /* @__PURE__ */ React.createElement(
619
- import_react_google_maps3.Map,
620
- {
621
- defaultZoom: mapZoom,
622
- defaultCenter: mapCenter,
623
- mapId,
624
- keyboardShortcuts: true,
625
- disableDefaultUI: true,
626
- zoomControl: true,
627
- onBoundsChanged: handleBoundsChanged,
628
- onZoomChanged: handleZoomChanged,
629
- onCameraChanged: handleCameraChanged
630
- },
631
- position && !coordinates && /* @__PURE__ */ React.createElement(import_react_google_maps3.AdvancedMarker, { position }, /* @__PURE__ */ React.createElement(import_react_google_maps3.Pin, { ...PIN_COLORS })),
632
- coordinates && clusters.map((cluster) => {
633
- const { cluster: isCluster } = cluster.properties;
634
- if (isCluster) {
635
- return /* @__PURE__ */ React.createElement(
636
- ClusterMarker,
637
- {
638
- key: `cluster-${cluster.id}`,
639
- cluster,
640
- coordinates,
641
- onPinClick,
642
- onPinHover,
643
- zoomToLevel,
644
- supercluster
645
- }
646
- );
647
- }
648
- const originalPoint = coordinates[cluster.properties.pointId];
649
- return /* @__PURE__ */ React.createElement(
650
- IndividualMarker,
651
- {
652
- key: `marker-${cluster.properties.pointId}`,
653
- coordinate: originalPoint,
654
- onPinClick,
655
- onPinHover
656
- }
657
- );
658
- }),
659
- coordinates && clusters.length === 0 && coordinates.map((coord, index) => /* @__PURE__ */ React.createElement(
660
- IndividualMarker,
661
- {
662
- key: `fallback-${index}`,
663
- coordinate: coord,
664
- onPinClick,
665
- onPinHover
666
- }
667
- )),
668
- focusPoint && radiusMiles && /* @__PURE__ */ React.createElement(
669
- FocusCircle,
670
- {
671
- focusPoint,
672
- radiusMiles,
673
- map,
674
- mapsLibrary
675
- }
676
- )
677
- ));
678
- }
679
-
680
- // src/components/ui/Map/MapComponent.tsx
681
- function MapComponent({
682
- apiKey,
683
- mapId,
684
- position,
685
- coordinates,
686
- onPinHover,
687
- onPinClick,
688
- focusPoint,
689
- radiusMiles,
690
- className,
691
- zoom = 10
692
- }) {
693
- const { bounds, setBounds } = useMapBounds(coordinates);
694
- const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM);
695
- const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel);
696
- const mapCenter = coordinates && coordinates.length > 0 ? getCenterForCoordinates(coordinates) : position || DEFAULT_POSITION;
697
- const mapZoom = coordinates && coordinates.length > 1 ? getZoomForCoordinates(coordinates, zoom) : position ? zoom : DEFAULT_ZOOM;
698
- return /* @__PURE__ */ React.createElement(import_react_google_maps4.APIProvider, { apiKey }, /* @__PURE__ */ React.createElement(
699
- MapContent,
700
- {
701
- mapId,
702
- mapCenter,
703
- mapZoom,
704
- position,
705
- coordinates,
706
- clusters,
707
- supercluster,
708
- onPinHover,
709
- onPinClick,
710
- focusPoint,
711
- radiusMiles,
712
- className,
713
- setBounds,
714
- setZoomLevel
715
- }
716
- ));
717
- }
718
-
719
- // src/components/ui/PlacesQueryInput.tsx
720
- var import_lucide_react8 = require("lucide-react");
721
- var import_react7 = require("react");
722
-
723
- // src/components/primitives/command.tsx
724
- var import_cmdk = require("cmdk");
725
- var import_lucide_react7 = require("lucide-react");
726
- var React5 = __toESM(require("react"), 1);
727
-
728
- // src/components/primitives/dialog.tsx
729
- var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
730
- var import_lucide_react6 = require("lucide-react");
731
- var React4 = __toESM(require("react"), 1);
732
- var DialogPortal = DialogPrimitive.Portal;
733
- var DialogOverlay = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
734
- DialogPrimitive.Overlay,
735
- {
736
- ref,
737
- className: cn(
738
- "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
739
- className
740
- ),
741
- ...props
742
- }
743
- ));
744
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
745
- var DialogContent = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React4.createElement(DialogPortal, null, /* @__PURE__ */ React4.createElement(DialogOverlay, null), /* @__PURE__ */ React4.createElement(
746
- DialogPrimitive.Content,
747
- {
748
- ref,
749
- className: cn(
750
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-neutral-200 bg-white p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] dark:border-neutral-800 dark:bg-neutral-950 sm:rounded-lg",
751
- className
752
- ),
753
- ...props
754
- },
755
- children,
756
- /* @__PURE__ */ React4.createElement(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-950 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500 dark:ring-offset-neutral-950 dark:focus:ring-neutral-300 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-400" }, /* @__PURE__ */ React4.createElement(import_lucide_react6.X, { className: "h-4 w-4" }), /* @__PURE__ */ React4.createElement("span", { className: "sr-only" }, "Close"))
757
- )));
758
- DialogContent.displayName = DialogPrimitive.Content.displayName;
759
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ React4.createElement("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
760
- DialogHeader.displayName = "DialogHeader";
761
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ React4.createElement(
762
- "div",
763
- {
764
- className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
765
- ...props
766
- }
767
- );
768
- DialogFooter.displayName = "DialogFooter";
769
- var DialogTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
770
- DialogPrimitive.Title,
771
- {
772
- ref,
773
- className: cn("text-lg font-semibold leading-none tracking-tight", className),
774
- ...props
775
- }
776
- ));
777
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
778
- var DialogDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
779
- DialogPrimitive.Description,
780
- {
781
- ref,
782
- className: cn("text-sm text-neutral-500 dark:text-neutral-400", className),
783
- ...props
784
- }
785
- ));
786
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
787
-
788
- // src/components/primitives/command.tsx
789
- var Command = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
790
- import_cmdk.Command,
791
- {
792
- ref,
793
- className: cn(
794
- "flex h-full w-full flex-col overflow-hidden rounded-xl bg-white text-neutral-950",
795
- className
796
- ),
797
- ...props
798
- }
799
- ));
800
- Command.displayName = import_cmdk.Command.displayName;
801
- var CommandInput = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement("div", { className: "m-1 flex items-center rounded-xl border px-3", "cmdk-input-wrapper": "" }, /* @__PURE__ */ React5.createElement(import_lucide_react7.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), /* @__PURE__ */ React5.createElement(
802
- import_cmdk.Command.Input,
803
- {
804
- ref,
805
- className: cn(
806
- "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-neutral-500 disabled:cursor-not-allowed disabled:opacity-50",
807
- className
808
- ),
809
- ...props
810
- }
811
- )));
812
- CommandInput.displayName = import_cmdk.Command.Input.displayName;
813
- var CommandList = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
814
- import_cmdk.Command.List,
815
- {
816
- ref,
817
- className: cn("overflow-y-auto overflow-x-hidden", className),
818
- ...props
819
- }
820
- ));
821
- CommandList.displayName = import_cmdk.Command.List.displayName;
822
- var CommandEmpty = React5.forwardRef((props, ref) => /* @__PURE__ */ React5.createElement(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
823
- CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
824
- var CommandGroup = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
825
- import_cmdk.Command.Group,
826
- {
827
- ref,
828
- className: cn(
829
- "overflow-hidden p-1 text-neutral-950 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-neutral-500",
830
- className
831
- ),
832
- ...props
833
- }
834
- ));
835
- CommandGroup.displayName = import_cmdk.Command.Group.displayName;
836
- var CommandSeparator = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
837
- import_cmdk.Command.Separator,
838
- {
839
- ref,
840
- className: cn("-mx-1 h-px bg-neutral-200", className),
841
- ...props
842
- }
843
- ));
844
- CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
845
- var CommandItem = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
846
- import_cmdk.Command.Item,
847
- {
848
- ref,
849
- className: cn(
850
- "relative flex cursor-pointer select-none items-center rounded-xl px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-neutral-100 data-[selected=true]:text-neutral-900 data-[disabled=true]:opacity-50",
851
- className
852
- ),
853
- ...props
854
- }
855
- ));
856
- CommandItem.displayName = import_cmdk.Command.Item.displayName;
857
- var CommandShortcut = ({ className, ...props }) => {
858
- return /* @__PURE__ */ React5.createElement(
859
- "span",
860
- {
861
- className: cn("ml-auto text-xs tracking-widest text-neutral-500", className),
862
- ...props
863
- }
864
- );
865
- };
866
- CommandShortcut.displayName = "CommandShortcut";
867
-
868
- // src/lib/google.ts
869
- var import_google_maps_services_js = require("@googlemaps/google-maps-services-js");
870
- var client = new import_google_maps_services_js.Client();
871
- var autocomplete = async (input, key) => {
872
- try {
873
- const response = await client.placeAutocomplete({
874
- params: { input, key, types: import_google_maps_services_js.PlaceAutocompleteType.address }
875
- });
876
- return response.data.predictions;
877
- } catch (error) {
878
- console.error(error);
879
- }
880
- };
881
- var fetchLocation = async (place, key) => {
882
- try {
883
- if (place.place_id) {
884
- const placeDetails = await getPlaceDetails(place.place_id, key);
885
- if (placeDetails) return placeDetails;
886
- }
887
- if (place.address) {
888
- const result = await geocode(place.address, key);
889
- const firstAddress = result?.[0];
890
- return firstAddress;
891
- }
892
- return void 0;
893
- } catch (error) {
894
- console.error("Error fetching location:", error);
895
- }
896
- };
897
- var getPlaceDetails = async (place_id, key) => {
898
- try {
899
- const response = await client.placeDetails({
900
- params: { place_id, key }
901
- });
902
- return response.data.result;
903
- } catch (error) {
904
- console.error(error);
905
- }
906
- };
907
- var geocode = async (address, key) => {
908
- try {
909
- const response = await client.geocode({
910
- params: { address, key }
911
- });
912
- return response.data.results;
913
- } catch (error) {
914
- console.error(error);
915
- }
916
- };
917
-
918
- // src/components/ui/PlacesQueryInput.tsx
919
- function PlacesQueryInput({
920
- apiKey,
921
- selected,
922
- onSelect,
923
- className
924
- }) {
925
- const [predictions, setPredictions] = (0, import_react7.useState)(null);
926
- const [input, setInput] = (0, import_react7.useState)(selected?.description ?? "");
927
- const [isLoadingPredictions, setIsLoadingPredictions] = (0, import_react7.useState)(false);
928
- const [shouldOpenUpward, setShouldOpenUpward] = (0, import_react7.useState)(false);
929
- const timeoutRef = (0, import_react7.useRef)(null);
930
- const inputRef = (0, import_react7.useRef)(null);
931
- const debouncedAutocomplete = (0, import_react7.useCallback)((value) => {
932
- if (timeoutRef.current) {
933
- clearTimeout(timeoutRef.current);
934
- }
935
- timeoutRef.current = setTimeout(async () => {
936
- try {
937
- if (value.length > 2) {
938
- setIsLoadingPredictions(true);
939
- const fetchedPredictions = await autocomplete(value, apiKey);
940
- setIsLoadingPredictions(false);
941
- setPredictions(fetchedPredictions ?? []);
942
- } else {
943
- setPredictions(null);
944
- }
945
- } catch (error) {
946
- setIsLoadingPredictions(false);
947
- setPredictions([]);
948
- console.error("Autocomplete error:", error);
949
- }
950
- }, 300);
951
- }, []);
952
- const handleInputChange = (value) => {
953
- setInput(value);
954
- debouncedAutocomplete(value);
955
- };
956
- const handleSelect = (prediction) => {
957
- onSelect(prediction);
958
- setPredictions(null);
959
- setInput(prediction.description);
960
- };
961
- const handleClear = () => {
962
- onSelect();
963
- setPredictions(null);
964
- setInput("");
965
- };
966
- const handleBlur = () => setTimeout(() => setPredictions(null), 200);
967
- (0, import_react7.useEffect)(() => {
968
- const checkDropdownPosition = () => {
969
- if (inputRef.current) {
970
- const rect = inputRef.current.getBoundingClientRect();
971
- const windowHeight = window.innerHeight;
972
- setShouldOpenUpward(rect.bottom + 200 > windowHeight);
973
- }
974
- };
975
- checkDropdownPosition();
976
- window.addEventListener("resize", checkDropdownPosition);
977
- return () => window.removeEventListener("resize", checkDropdownPosition);
978
- }, []);
979
- return /* @__PURE__ */ React.createElement("div", { className: cn("relative w-full", className), ref: inputRef, onBlur: handleBlur }, /* @__PURE__ */ React.createElement(Command, null, /* @__PURE__ */ React.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ React.createElement(
980
- CommandInput,
981
- {
982
- placeholder: "Type an address to search...",
983
- value: input,
984
- onValueChange: handleInputChange,
985
- className: "truncate pr-8"
986
- }
987
- ), isLoadingPredictions && /* @__PURE__ */ React.createElement(import_lucide_react8.LoaderCircle, { className: "absolute inset-y-0 right-2 my-auto flex h-8 w-8 animate-spin items-center justify-center rounded-full text-green-100" }), input && /* @__PURE__ */ React.createElement(
988
- "button",
989
- {
990
- type: "button",
991
- className: "absolute inset-y-0 right-2 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",
992
- onClick: handleClear
993
- },
994
- /* @__PURE__ */ React.createElement(import_lucide_react8.CircleX, { className: "h-4 w-4 text-green-100" })
995
- )), predictions && /* @__PURE__ */ React.createElement(
996
- CommandList,
997
- {
998
- className: cn(
999
- "absolute z-50 w-full rounded-md border bg-white shadow-lg",
1000
- shouldOpenUpward ? "bottom-full" : "top-full"
1001
- )
1002
- },
1003
- /* @__PURE__ */ React.createElement(CommandEmpty, null, "No results"),
1004
- /* @__PURE__ */ React.createElement(CommandGroup, null, predictions.map((prediction) => /* @__PURE__ */ React.createElement(
1005
- CommandItem,
1006
- {
1007
- key: prediction.place_id,
1008
- onSelect: () => handleSelect(prediction),
1009
- className: "truncate"
1010
- },
1011
- prediction.description
1012
- )))
1013
- )));
1014
- }
1015
- var PlacesQueryInput_default = PlacesQueryInput;
1016
-
1017
- // src/components/ui/Select.tsx
1018
- var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
1019
- var import_lucide_react9 = require("lucide-react");
1020
- var import_react8 = require("react");
1021
-
1022
- // src/components/primitives/separator.tsx
1023
- var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
1024
- var React6 = __toESM(require("react"), 1);
1025
- var Separator = React6.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ React6.createElement(
1026
- SeparatorPrimitive.Root,
1027
- {
1028
- ref,
1029
- decorative,
1030
- orientation,
1031
- className: cn(
1032
- "shrink-0 bg-grey-10",
1033
- orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
1034
- className
1035
- ),
1036
- ...props
1037
- }
1038
- ));
1039
- Separator.displayName = SeparatorPrimitive.Root.displayName;
1040
-
1041
- // src/components/ui/Select.tsx
1042
- var Select = (0, import_react8.forwardRef)(
1043
- ({
1044
- label,
1045
- options,
1046
- placeholder,
1047
- multiselect,
1048
- description,
1049
- classNames,
1050
- dropdownAlign = "start",
1051
- error,
1052
- id,
1053
- children: footer,
1054
- ...props
1055
- }, ref) => {
1056
- const { value, defaultValue, dir, className, onChange, ...rest } = props;
1057
- const [selected, setSelected] = (0, import_react8.useState)([]);
1058
- const [open, setOpen] = (0, import_react8.useState)(false);
1059
- const containerRef = (0, import_react8.useRef)(null);
1060
- (0, import_react8.useEffect)(() => {
1061
- if (!value) return setSelected([]);
1062
- setSelected(Array.isArray(value) ? value : [value]);
1063
- }, [value]);
1064
- const toggleOpen = () => setOpen((prev) => !prev);
1065
- const closeOnEscape = (event) => event.key === "Escape" && setOpen(false);
1066
- const handleOnOpenChange = (isOpen) => (!multiselect || isOpen) && setOpen(isOpen);
1067
- const setValueOnEnter = (event, value2) => event.key === "Enter" && handleChange(value2);
1068
- const getLabel = () => selected.map((o) => options?.find((option) => option.value === o)?.title).join(", ");
1069
- const chipLabels = selected?.map((s) => options?.find(({ value: value2 }) => value2 === s)).filter(Boolean);
1070
- function handleChange(newValue) {
1071
- if (newValue === "" && !multiselect) return;
1072
- let newSelected = [];
1073
- setSelected((prev) => {
1074
- newSelected = prev.includes(newValue) ? prev.filter((item) => item !== newValue) : [...prev, newValue];
1075
- return multiselect ? newSelected : [newValue];
1076
- });
1077
- onChange?.(multiselect ? newSelected : newValue);
1078
- }
1079
- return /* @__PURE__ */ React.createElement(
1080
- "div",
1081
- {
1082
- className: cn("flex w-full flex-col gap-1", className),
1083
- ref: containerRef,
1084
- "data-testid": `${(label ?? id)?.toLowerCase()}-select-element`
1085
- },
1086
- /* @__PURE__ */ React.createElement(
1087
- Label_default,
1088
- {
1089
- text: label,
1090
- htmlFor: props.name,
1091
- required: props.required,
1092
- description,
1093
- className: classNames?.label
1094
- }
1095
- ),
1096
- /* @__PURE__ */ React.createElement(
1097
- SelectPrimitive.Root,
1098
- {
1099
- open,
1100
- value: selected.join(","),
1101
- onOpenChange: handleOnOpenChange,
1102
- onValueChange: multiselect ? void 0 : handleChange,
1103
- defaultValue: typeof defaultValue === "string" ? defaultValue : void 0,
1104
- dir: dir === "rtl" ? "rtl" : "ltr",
1105
- ...rest
1106
- },
1107
- /* @__PURE__ */ React.createElement(
1108
- SelectPrimitive.Trigger,
1109
- {
1110
- ref,
1111
- className: cn(
1112
- "group flex h-11 w-full flex-row items-center justify-between gap-3 rounded-lg border px-4 py-3 text-sm font-normal focus:outline-purple-100 disabled:bg-grey-5 data-[placeholder]:text-grey-50 data-[placeholder]:disabled:text-grey-40",
1113
- classNames?.trigger
1114
- )
1115
- },
1116
- /* @__PURE__ */ React.createElement("span", { className: "truncate" }, /* @__PURE__ */ React.createElement(
1117
- SelectPrimitive.Value,
1118
- {
1119
- placeholder: placeholder ?? "Select an option",
1120
- "aria-label": getLabel()
1121
- },
1122
- getLabel()
1123
- )),
1124
- /* @__PURE__ */ React.createElement(
1125
- import_lucide_react9.ChevronDownIcon,
1126
- {
1127
- className: "transform text-black group-data-[state=open]:rotate-180",
1128
- size: "16"
1129
- }
1130
- )
1131
- ),
1132
- /* @__PURE__ */ React.createElement(SelectPrimitive.Portal, { container: containerRef.current }, /* @__PURE__ */ React.createElement(
1133
- SelectPrimitive.Content,
1134
- {
1135
- hideWhenDetached: true,
1136
- className: cn(
1137
- "z-10 max-h-[var(--radix-select-content-available-height)] overflow-hidden rounded-md bg-white py-2 shadow-lg",
1138
- "w-[var(--radix-select-trigger-width)] min-w-[var(--radix-select-trigger-width)]",
1139
- classNames?.content
1140
- ),
1141
- position: "popper",
1142
- align: dropdownAlign,
1143
- sideOffset: 4,
1144
- onPointerDownOutside: toggleOpen,
1145
- onKeyDown: closeOnEscape
1146
- },
1147
- /* @__PURE__ */ React.createElement(SelectPrimitive.Viewport, null, multiselect && !!chipLabels?.length && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
1148
- SelectPrimitive.Group,
1149
- {
1150
- className: "mb-2 flex flex-row flex-wrap gap-1 px-2",
1151
- "data-testid": "selected-labels"
1152
- },
1153
- chipLabels?.map(
1154
- (chip) => chip && /* @__PURE__ */ React.createElement(Chip_default, { key: chip.title, size: "small", variant: "primary" }, /* @__PURE__ */ React.createElement("span", null, chip.title), /* @__PURE__ */ React.createElement(
1155
- import_lucide_react9.X,
1156
- {
1157
- size: 18,
1158
- "data-testid": `chip-remove-${chip.value}`,
1159
- className: "cursor-pointer",
1160
- onClick: () => handleChange(chip.value)
1161
- }
1162
- ))
1163
- )
1164
- ), /* @__PURE__ */ React.createElement(Separator, null)), options?.map(({ id: id2, title, value: value2, description: description2 }) => /* @__PURE__ */ React.createElement(
1165
- SelectPrimitive.Item,
1166
- {
1167
- key: id2,
1168
- value: value2,
1169
- className: cn(
1170
- "group relative cursor-pointer px-4 py-2 text-left text-sm hover:bg-purple-50 focus:bg-purple-50 focus:outline-none data-[state=checked]:bg-purple-50 data-[state=checked]:pr-10 data-[state=checked]:text-purple-100",
1171
- classNames?.item
1172
- ),
1173
- "data-state": selected.includes(value2) ? "checked" : "unchecked",
1174
- onKeyDown: (e) => setValueOnEnter(e, value2),
1175
- onClick: () => handleChange(value2)
1176
- },
1177
- /* @__PURE__ */ React.createElement(
1178
- import_lucide_react9.CheckIcon,
1179
- {
1180
- className: cn(
1181
- "absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block",
1182
- classNames?.checkmark
1183
- ),
1184
- size: 16
1185
- }
1186
- ),
1187
- /* @__PURE__ */ React.createElement(SelectPrimitive.ItemText, null, title),
1188
- description2 && /* @__PURE__ */ React.createElement("span", { className: "block text-sm text-grey-70" }, description2)
1189
- )), !!footer && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Separator, null), /* @__PURE__ */ React.createElement(
1190
- SelectPrimitive.Group,
1191
- {
1192
- className: "mt-2 flex flex-row flex-wrap gap-1 px-2",
1193
- "data-testid": "selected-labels"
1194
- },
1195
- footer
1196
- )))
1197
- ))
1198
- ),
1199
- /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error })
1200
- );
1201
- }
1202
- );
1203
- Select.displayName = "Select";
1204
- var Select_default = Select;
1205
-
1206
- // src/components/ui/Avatar.tsx
1207
- var import_cva3 = require("cva");
1208
- var import_link = __toESM(require("next/link"), 1);
1209
-
1210
- // src/components/primitives/avatar.tsx
1211
- var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"), 1);
1212
- var React7 = __toESM(require("react"), 1);
1213
- var AvatarBase = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
1214
- AvatarPrimitive.Root,
1215
- {
1216
- ref,
1217
- className: cn("relative flex shrink-0 overflow-hidden rounded-full", className),
1218
- ...props
1219
- }
1220
- ));
1221
- AvatarBase.displayName = AvatarPrimitive.Root.displayName;
1222
- var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
1223
- AvatarPrimitive.Image,
1224
- {
1225
- ref,
1226
- className: cn("aspect-square h-full w-full", className),
1227
- "data-testid": "job-card-avatar",
1228
- ...props
1229
- }
1230
- ));
1231
- AvatarImage.displayName = AvatarPrimitive.Image.displayName;
1232
- var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
1233
- AvatarPrimitive.Fallback,
1234
- {
1235
- ref,
1236
- className: cn(
1237
- "flex h-full w-full items-center justify-center rounded-full bg-pumpkin-100 py-2 text-sm font-bold capitalize leading-normal text-white md:text-lg",
1238
- className
1239
- ),
1240
- ...props
1241
- }
1242
- ));
1243
- AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
1244
-
1245
- // src/components/ui/Avatar.tsx
1246
- function Avatar({ size, src, href, name, ...linkProps }) {
1247
- const fallbackShort = name?.slice(0, 2);
1248
- const fallbackWords = name?.split(" ").map((n) => n[0]).join("").slice(0, 2);
1249
- const fallback = fallbackWords && fallbackWords.length > 1 ? fallbackWords : fallbackShort;
1250
- const renderAvatar = () => /* @__PURE__ */ React.createElement(AvatarBase, { className: avatarVariants({ size }) }, /* @__PURE__ */ React.createElement(AvatarImage, { src, alt: name }), /* @__PURE__ */ React.createElement(AvatarFallback, null, fallback?.toUpperCase()));
1251
- if (href) {
1252
- return /* @__PURE__ */ React.createElement(import_link.default, { href, ...linkProps }, renderAvatar());
1253
- }
1254
- return renderAvatar();
1255
- }
1256
- var avatarVariants = (0, import_cva3.cva)("ring ring-white ring-2", {
1257
- variants: {
1258
- size: {
1259
- large: "h-16 w-16",
1260
- medium: "h-10 w-10",
1261
- small: "h-8 w-8"
1262
- }
1263
- },
1264
- defaultVariants: {
1265
- size: "medium"
1266
- }
1
+ 'use strict';
2
+
3
+ require('./chunk-V563IKQH.cjs');
4
+ var chunkLUCDLADP_cjs = require('./chunk-LUCDLADP.cjs');
5
+ require('./chunk-OT3J7XYM.cjs');
6
+ require('./chunk-SKMP4FO7.cjs');
7
+ require('./chunk-EBKY3MJH.cjs');
8
+ require('./chunk-CUICNKLS.cjs');
9
+ require('./chunk-DU5OQA67.cjs');
10
+ require('./chunk-PSRWV7UW.cjs');
11
+ require('./chunk-4TLLJ52E.cjs');
12
+ require('./chunk-NLGWU2KI.cjs');
13
+ var chunkIHWVGIDT_cjs = require('./chunk-IHWVGIDT.cjs');
14
+ var chunkQNVDG3L3_cjs = require('./chunk-QNVDG3L3.cjs');
15
+ var chunkAB3775NI_cjs = require('./chunk-AB3775NI.cjs');
16
+ var chunkA7MLO6YN_cjs = require('./chunk-A7MLO6YN.cjs');
17
+ var chunkAMNEAWA7_cjs = require('./chunk-AMNEAWA7.cjs');
18
+ var chunkDVSHUNGT_cjs = require('./chunk-DVSHUNGT.cjs');
19
+ var chunkP7CAVAYY_cjs = require('./chunk-P7CAVAYY.cjs');
20
+ var chunk4GDAUTH4_cjs = require('./chunk-4GDAUTH4.cjs');
21
+ var chunkWRANITBW_cjs = require('./chunk-WRANITBW.cjs');
22
+ var chunkVYILTAQR_cjs = require('./chunk-VYILTAQR.cjs');
23
+ var chunkZBCGHL2Z_cjs = require('./chunk-ZBCGHL2Z.cjs');
24
+ var chunkFRXKCHZ7_cjs = require('./chunk-FRXKCHZ7.cjs');
25
+ var chunkOC2OB575_cjs = require('./chunk-OC2OB575.cjs');
26
+ var chunkZC7K3XKN_cjs = require('./chunk-ZC7K3XKN.cjs');
27
+ var chunk37YFXNLL_cjs = require('./chunk-37YFXNLL.cjs');
28
+ var chunkKH3K3OI4_cjs = require('./chunk-KH3K3OI4.cjs');
29
+ var chunkU2T647VT_cjs = require('./chunk-U2T647VT.cjs');
30
+ var chunkEG7G3RZ2_cjs = require('./chunk-EG7G3RZ2.cjs');
31
+ require('./chunk-XCYNYXC7.cjs');
32
+ require('./chunk-5H75FIY2.cjs');
33
+ var chunk3BGXWNKI_cjs = require('./chunk-3BGXWNKI.cjs');
34
+ require('./chunk-HMKEBIBE.cjs');
35
+ require('./chunk-USQZOJUG.cjs');
36
+ require('./chunk-WSDKENUA.cjs');
37
+ require('./chunk-A46BJOVJ.cjs');
38
+ require('./chunk-RIG6I4HV.cjs');
39
+ require('./chunk-UTYX2NMA.cjs');
40
+ require('./chunk-CDQM72QX.cjs');
41
+ var chunkA7E5UPEP_cjs = require('./chunk-A7E5UPEP.cjs');
42
+ require('./chunk-RDPMXAQG.cjs');
43
+ var chunkL56JW56Y_cjs = require('./chunk-L56JW56Y.cjs');
44
+ var chunkGQNVPLSG_cjs = require('./chunk-GQNVPLSG.cjs');
45
+ var chunk7X6S7GJK_cjs = require('./chunk-7X6S7GJK.cjs');
46
+ var chunkMDLLVPLD_cjs = require('./chunk-MDLLVPLD.cjs');
47
+ var chunkYPA6HVCD_cjs = require('./chunk-YPA6HVCD.cjs');
48
+ var chunkVUBXXZUL_cjs = require('./chunk-VUBXXZUL.cjs');
49
+ require('./chunk-XAPQTBJR.cjs');
50
+ var chunkTJVXG27I_cjs = require('./chunk-TJVXG27I.cjs');
51
+ var chunkE5S6MGBJ_cjs = require('./chunk-E5S6MGBJ.cjs');
52
+ var chunkM3HMXHAL_cjs = require('./chunk-M3HMXHAL.cjs');
53
+ var chunkVXNZRGLE_cjs = require('./chunk-VXNZRGLE.cjs');
54
+ require('./chunk-SMDQTPJE.cjs');
55
+ var chunkGP5XW2ZR_cjs = require('./chunk-GP5XW2ZR.cjs');
56
+ var chunk3CI6PTKT_cjs = require('./chunk-3CI6PTKT.cjs');
57
+ var chunkTBV7NDAG_cjs = require('./chunk-TBV7NDAG.cjs');
58
+ require('./chunk-QDSCHWM3.cjs');
59
+ var chunkHCXPKYJR_cjs = require('./chunk-HCXPKYJR.cjs');
60
+ var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
61
+ require('./chunk-5QXQ2LBB.cjs');
62
+ require('./chunk-SPAVM3EE.cjs');
63
+ require('./chunk-GN3JZCM3.cjs');
64
+ require('./chunk-IVPCYGXE.cjs');
65
+ require('./chunk-3PARXYUI.cjs');
66
+ require('./chunk-L4SZQQK6.cjs');
67
+ require('./chunk-LUFPA3WC.cjs');
68
+ var chunk567FG76G_cjs = require('./chunk-567FG76G.cjs');
69
+ require('./chunk-ZZCTMR2F.cjs');
70
+ require('./chunk-JZVRCP3M.cjs');
71
+ require('./chunk-XUTLQ573.cjs');
72
+ var chunkYEYEUQM6_cjs = require('./chunk-YEYEUQM6.cjs');
73
+ var chunkLRBADBNS_cjs = require('./chunk-LRBADBNS.cjs');
74
+ require('./chunk-Q7SFCCGT.cjs');
75
+
76
+
77
+
78
+ Object.defineProperty(exports, "MapComponent", {
79
+ enumerable: true,
80
+ get: function () { return chunkLUCDLADP_cjs.MapComponent; }
81
+ });
82
+ Object.defineProperty(exports, "JobPostService", {
83
+ enumerable: true,
84
+ get: function () { return chunkIHWVGIDT_cjs.job_posting_service_latest_exports; }
85
+ });
86
+ Object.defineProperty(exports, "CompanyService", {
87
+ enumerable: true,
88
+ get: function () { return chunkQNVDG3L3_cjs.company_service_latest_exports; }
89
+ });
90
+ Object.defineProperty(exports, "SharedService", {
91
+ enumerable: true,
92
+ get: function () { return chunkAB3775NI_cjs.shared_pickle_output_latest_exports; }
93
+ });
94
+ Object.defineProperty(exports, "PlacesQueryInput", {
95
+ enumerable: true,
96
+ get: function () { return chunkA7MLO6YN_cjs.PlacesQueryInput_default; }
97
+ });
98
+ Object.defineProperty(exports, "fetchLocation", {
99
+ enumerable: true,
100
+ get: function () { return chunkAMNEAWA7_cjs.fetchLocation; }
101
+ });
102
+ Object.defineProperty(exports, "Radio", {
103
+ enumerable: true,
104
+ get: function () { return chunkDVSHUNGT_cjs.Radio; }
105
+ });
106
+ Object.defineProperty(exports, "Select", {
107
+ enumerable: true,
108
+ get: function () { return chunkP7CAVAYY_cjs.Select_default; }
109
+ });
110
+ Object.defineProperty(exports, "StepTabs", {
111
+ enumerable: true,
112
+ get: function () { return chunk4GDAUTH4_cjs.StepTabs; }
113
+ });
114
+ Object.defineProperty(exports, "Switch", {
115
+ enumerable: true,
116
+ get: function () { return chunkWRANITBW_cjs.Switch; }
117
+ });
118
+ Object.defineProperty(exports, "DismissibleBanner", {
119
+ enumerable: true,
120
+ get: function () { return chunkVYILTAQR_cjs.DismissibleBanner; }
121
+ });
122
+ Object.defineProperty(exports, "Input", {
123
+ enumerable: true,
124
+ get: function () { return chunkZBCGHL2Z_cjs.Input_default; }
125
+ });
126
+ Object.defineProperty(exports, "InputOtp", {
127
+ enumerable: true,
128
+ get: function () { return chunkFRXKCHZ7_cjs.InputOtp; }
129
+ });
130
+ Object.defineProperty(exports, "Combobox", {
131
+ enumerable: true,
132
+ get: function () { return chunkOC2OB575_cjs.Combobox; }
133
+ });
134
+ Object.defineProperty(exports, "ListItem", {
135
+ enumerable: true,
136
+ get: function () { return chunkZC7K3XKN_cjs.ListItem_default; }
137
+ });
138
+ Object.defineProperty(exports, "Badge", {
139
+ enumerable: true,
140
+ get: function () { return chunk37YFXNLL_cjs.Badge; }
141
+ });
142
+ Object.defineProperty(exports, "Checkbox", {
143
+ enumerable: true,
144
+ get: function () { return chunkKH3K3OI4_cjs.Checkbox; }
145
+ });
146
+ Object.defineProperty(exports, "Counter", {
147
+ enumerable: true,
148
+ get: function () { return chunkU2T647VT_cjs.Counter; }
149
+ });
150
+ Object.defineProperty(exports, "DatePicker", {
151
+ enumerable: true,
152
+ get: function () { return chunkEG7G3RZ2_cjs.DatePicker; }
153
+ });
154
+ Object.defineProperty(exports, "Label", {
155
+ enumerable: true,
156
+ get: function () { return chunk3BGXWNKI_cjs.Label_default; }
157
+ });
158
+ Object.defineProperty(exports, "JobLocation", {
159
+ enumerable: true,
160
+ get: function () { return chunkA7E5UPEP_cjs.JobLocation; }
161
+ });
162
+ Object.defineProperty(exports, "JobPost", {
163
+ enumerable: true,
164
+ get: function () { return chunkL56JW56Y_cjs.JobPost; }
1267
165
  });
1268
-
1269
- // src/components/ui/Badge.tsx
1270
- var import_cva4 = require("cva");
1271
- var React8 = __toESM(require("react"), 1);
1272
- var badgeVariants = (0, import_cva4.cva)("rounded-full px-2 py-0.5 text-xs font-semibold", {
1273
- variants: {
1274
- variant: {
1275
- green: "bg-green-90 text-white",
1276
- pickle: "bg-pickle-100 text-black",
1277
- purple: "bg-purple-100 text-white"
1278
- }
1279
- },
1280
- defaultVariants: {
1281
- variant: "green"
1282
- }
166
+ Object.defineProperty(exports, "salaryRange", {
167
+ enumerable: true,
168
+ get: function () { return chunkGQNVPLSG_cjs.salaryRange; }
1283
169
  });
1284
- function Badge({ className, variant, ...props }) {
1285
- return /* @__PURE__ */ React8.createElement("div", { className: cn(badgeVariants({ variant }), className), ...props });
1286
- }
1287
-
1288
- // src/components/ui/Button.tsx
1289
- var import_react_slot = require("@radix-ui/react-slot");
1290
- var import_cva5 = require("cva");
1291
- var import_lucide_react10 = require("lucide-react");
1292
- var import_react9 = __toESM(require("react"), 1);
1293
- var Button = (0, import_react9.forwardRef)(
1294
- ({
1295
- className,
1296
- variant,
1297
- size,
1298
- asChild = false,
1299
- type = "button",
1300
- children,
1301
- isLoading = false,
1302
- ...props
1303
- }, ref) => {
1304
- const Component = asChild ? import_react_slot.Slot : "button";
1305
- return /* @__PURE__ */ import_react9.default.createElement(
1306
- Component,
1307
- {
1308
- className: cn(buttonVariants({ variant, size, className, isLoading, asChild })),
1309
- type,
1310
- ref,
1311
- ...props
1312
- },
1313
- asChild ? children : /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, children, isLoading && /* @__PURE__ */ import_react9.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-white/30 backdrop-blur-[0.5px]" }, /* @__PURE__ */ import_react9.default.createElement(import_lucide_react10.Loader2, { className: "h-5 w-5 animate-spin text-gray-800" })))
1314
- );
1315
- }
1316
- );
1317
- Button.displayName = "Button";
1318
- var buttonVariants = (0, import_cva5.cva)(
1319
- [
1320
- "relative",
1321
- "flex",
1322
- "items-center",
1323
- "justify-center",
1324
- "gap-2",
1325
- "rounded-full",
1326
- "font-bold",
1327
- "outline-2",
1328
- "outline-offset-2",
1329
- "outline-dashed",
1330
- "outline-transparent",
1331
- "overflow-hidden"
1332
- ],
1333
- {
1334
- variants: {
1335
- variant: {
1336
- neutral: [
1337
- "bg-black",
1338
- "text-white",
1339
- "hover:bg-grey-90",
1340
- "active:bg-grey-80",
1341
- "focus:outline-purple-100",
1342
- "disabled:text-grey-40",
1343
- "disabled:bg-grey-10"
1344
- ],
1345
- primary: [
1346
- "bg-pickle-100",
1347
- "text-black",
1348
- "hover:bg-pickle-80",
1349
- "active:bg-pickle-60",
1350
- "focus:outline-purple-100",
1351
- "disabled:text-grey-40",
1352
- "disabled:bg-grey-10"
1353
- ],
1354
- secondary: [
1355
- "bg-green-80",
1356
- "text-white",
1357
- "hover:bg-green-90",
1358
- "active:bg-green-100",
1359
- "focus:outline-pickle-100",
1360
- "disabled:text-grey-40",
1361
- "disabled:bg-grey-10"
1362
- ],
1363
- transparent: [
1364
- "text-white",
1365
- "hover:bg-green-80",
1366
- "active:bg-green-100",
1367
- "focus:outline-pickle-100",
1368
- "disabled:text-grey-40"
1369
- ],
1370
- link: [
1371
- "leading-tight",
1372
- "text-black",
1373
- "underline",
1374
- "hover:text-purple-100",
1375
- "focus:text-black",
1376
- "focus:outline-purple-100",
1377
- "active:text-purple-80"
1378
- ],
1379
- "outline-primary": [
1380
- "bg-transparent",
1381
- "border-2",
1382
- "border-pickle-100",
1383
- "text-pickle-100",
1384
- "hover:bg-pickle-100",
1385
- "hover:text-black",
1386
- "active:bg-pickle-80",
1387
- "active:text-black",
1388
- "focus:outline-purple-100",
1389
- "disabled:text-grey-40",
1390
- "disabled:border-grey-40",
1391
- "disabled:hover:bg-transparent",
1392
- "disabled:hover:text-grey-40"
1393
- ],
1394
- "outline-secondary": [
1395
- "bg-transparent",
1396
- "border-2",
1397
- "border-green-80",
1398
- "text-green-80",
1399
- "hover:bg-green-80",
1400
- "hover:text-white",
1401
- "active:bg-green-90",
1402
- "active:text-white",
1403
- "focus:outline-pickle-100",
1404
- "disabled:text-grey-40",
1405
- "disabled:border-grey-40",
1406
- "disabled:hover:bg-transparent",
1407
- "disabled:hover:text-grey-40"
1408
- ],
1409
- "icon-outline": [
1410
- "bg-transparent",
1411
- "text-black",
1412
- "hover:bg-grey-5",
1413
- "active:bg-grey-10",
1414
- "focus:outline-purple-100",
1415
- "disabled:text-grey-40",
1416
- "disabled:hover:bg-transparent",
1417
- "disabled:hover:text-grey-40"
1418
- ],
1419
- "icon-primary": [
1420
- "bg-pickle-100",
1421
- "text-black",
1422
- "hover:bg-pickle-80",
1423
- "active:bg-pickle-60",
1424
- "focus:outline-purple-100",
1425
- "disabled:text-grey-40",
1426
- "disabled:bg-grey-10"
1427
- ],
1428
- "icon-secondary": [
1429
- "bg-green-80",
1430
- "text-white",
1431
- "hover:bg-green-90",
1432
- "active:bg-green-100",
1433
- "focus:outline-pickle-100",
1434
- "disabled:text-grey-40",
1435
- "disabled:bg-grey-10"
1436
- ]
1437
- },
1438
- size: {
1439
- "extra-small": ["h-8", "text-xs", "px-3", "py-1"],
1440
- small: ["h-10", "text-sm", "px-4", "py-2"],
1441
- medium: ["h-12", "text-base", "px-6", "py-3"],
1442
- large: ["h-14", "text-lg", "px-8", "py-4"]
1443
- },
1444
- isLoading: {
1445
- true: ["cursor-not-allowed", "pointer-events-none"]
1446
- },
1447
- asChild: {
1448
- true: [],
1449
- false: ["cursor-pointer", "pointer-events-auto"]
1450
- }
1451
- },
1452
- defaultVariants: {
1453
- variant: "neutral",
1454
- size: "medium",
1455
- isLoading: false,
1456
- asChild: false
1457
- },
1458
- compoundVariants: [
1459
- {
1460
- variant: "link",
1461
- size: "extra-small",
1462
- class: ["h-3", "text-xs", "p-0"]
1463
- },
1464
- {
1465
- variant: "link",
1466
- size: "small",
1467
- class: ["h-3", "text-xs", "p-0"]
1468
- },
1469
- {
1470
- variant: "link",
1471
- size: "medium",
1472
- class: ["h-4", "text-sm", "p-0"]
1473
- },
1474
- {
1475
- variant: "link",
1476
- size: "large",
1477
- class: ["h-6", "text-base", "p-0"]
1478
- },
1479
- {
1480
- variant: "icon-outline",
1481
- size: "extra-small",
1482
- class: ["h-8", "w-8", "p-1.5", "[&>svg]:w-5", "[&>svg]:h-5"]
1483
- },
1484
- {
1485
- variant: "icon-outline",
1486
- size: "small",
1487
- class: ["h-10", "w-10", "p-2", "[&>svg]:w-6", "[&>svg]:h-6"]
1488
- },
1489
- {
1490
- variant: "icon-outline",
1491
- size: "medium",
1492
- class: ["h-12", "w-12", "p-2.5", "[&>svg]:w-7", "[&>svg]:h-7"]
1493
- },
1494
- {
1495
- variant: "icon-outline",
1496
- size: "large",
1497
- class: ["h-14", "w-14", "p-3", "[&>svg]:w-8", "[&>svg]:h-8"]
1498
- },
1499
- {
1500
- variant: "icon-primary",
1501
- size: "extra-small",
1502
- class: ["h-8", "w-8", "p-1.5", "[&>svg]:w-5", "[&>svg]:h-5"]
1503
- },
1504
- {
1505
- variant: "icon-primary",
1506
- size: "small",
1507
- class: ["h-10", "w-10", "p-2", "[&>svg]:w-6", "[&>svg]:h-6"]
1508
- },
1509
- {
1510
- variant: "icon-primary",
1511
- size: "medium",
1512
- class: ["h-12", "w-12", "p-2.5", "[&>svg]:w-7", "[&>svg]:h-7"]
1513
- },
1514
- {
1515
- variant: "icon-primary",
1516
- size: "large",
1517
- class: ["h-14", "w-14", "p-3", "[&>svg]:w-8", "[&>svg]:h-8"]
1518
- },
1519
- {
1520
- variant: "icon-secondary",
1521
- size: "extra-small",
1522
- class: ["h-8", "w-8", "p-1.5", "[&>svg]:w-5", "[&>svg]:h-5"]
1523
- },
1524
- {
1525
- variant: "icon-secondary",
1526
- size: "small",
1527
- class: ["h-10", "w-10", "p-2", "[&>svg]:w-6", "[&>svg]:h-6"]
1528
- },
1529
- {
1530
- variant: "icon-secondary",
1531
- size: "medium",
1532
- class: ["h-12", "w-12", "p-2.5", "[&>svg]:w-7", "[&>svg]:h-7"]
1533
- },
1534
- {
1535
- variant: "icon-secondary",
1536
- size: "large",
1537
- class: ["h-14", "w-14", "p-3", "[&>svg]:w-8", "[&>svg]:h-8"]
1538
- }
1539
- ]
1540
- }
1541
- );
1542
-
1543
- // src/components/ui/Combobox.tsx
1544
- var import_cva6 = require("cva");
1545
- var import_lucide_react11 = require("lucide-react");
1546
- var import_react10 = require("react");
1547
-
1548
- // src/components/primitives/popover.tsx
1549
- var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
1550
- var React10 = __toESM(require("react"), 1);
1551
- var Popover = PopoverPrimitive.Root;
1552
- var PopoverTrigger = PopoverPrimitive.Trigger;
1553
- var PopoverContent = React10.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React10.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React10.createElement(
1554
- PopoverPrimitive.Content,
1555
- {
1556
- ref,
1557
- align,
1558
- sideOffset,
1559
- className: cn(
1560
- "z-50 rounded-2xl border bg-white p-4 text-black shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
1561
- className
1562
- ),
1563
- ...props
1564
- }
1565
- )));
1566
- PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1567
-
1568
- // src/components/ui/Combobox.tsx
1569
- var Combobox = (0, import_react10.forwardRef)((props, ref) => {
1570
- const {
1571
- id,
1572
- name,
1573
- value,
1574
- label,
1575
- options,
1576
- required,
1577
- description,
1578
- classNames,
1579
- multiselect,
1580
- placeholder,
1581
- error,
1582
- variant = "default",
1583
- size,
1584
- icon,
1585
- className,
1586
- onChange: handleChange,
1587
- children: footer
1588
- } = props;
1589
- const [selected, setSelected] = (0, import_react10.useState)([]);
1590
- const [open, setOpen] = (0, import_react10.useState)(false);
1591
- const isUserUpdate = (0, import_react10.useRef)(false);
1592
- const IconComponent = icon && import_lucide_react11.icons[icon];
1593
- const hideSearchBox = options?.length <= 5;
1594
- const isDefault = variant === "default";
1595
- const isChip = variant === "chip";
1596
- const isEmpty = selected.length === 0;
1597
- const showChevron = isDefault ? isEmpty : true;
1598
- const close = () => setOpen(false);
1599
- (0, import_react10.useEffect)(() => {
1600
- if (!isUserUpdate.current) {
1601
- const valueArray = multiselect ? value ?? [] : value ? [value] : [];
1602
- setSelected(
1603
- valueArray.map((v) => options.find((o) => o.value === v)).filter((v) => v !== void 0)
1604
- );
1605
- }
1606
- }, [value, options, multiselect]);
1607
- (0, import_react10.useEffect)(() => {
1608
- if (isUserUpdate.current) {
1609
- if (multiselect) {
1610
- handleChange?.(selected.map((o) => o.value));
1611
- } else {
1612
- handleChange?.(selected[0]?.value ?? "");
1613
- }
1614
- isUserUpdate.current = false;
1615
- }
1616
- }, [selected, multiselect, handleChange]);
1617
- const updateMultiSelect = (prev, option) => {
1618
- return prev.some((o) => o.value === option.value) ? prev.filter((v) => v !== option) : [...prev, option];
1619
- };
1620
- const handleSelect = (value2) => {
1621
- const option = options.find((o) => o.value === value2);
1622
- if (!option) return;
1623
- isUserUpdate.current = true;
1624
- if (multiselect) {
1625
- setSelected((prev) => updateMultiSelect(prev, option));
1626
- } else {
1627
- setSelected([option]);
1628
- close();
1629
- }
1630
- };
1631
- const handleClear = () => {
1632
- isUserUpdate.current = true;
1633
- setSelected([]);
1634
- };
1635
- const handleDisplayValue = () => {
1636
- const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(", ") : placeholder;
1637
- return isDefault ? defaultLabel : label;
1638
- };
1639
- return /* @__PURE__ */ React.createElement("div", { className: cn("flex flex-col gap-1", className) }, isDefault && /* @__PURE__ */ React.createElement(
1640
- Label_default,
1641
- {
1642
- text: label,
1643
- htmlFor: name,
1644
- required,
1645
- description,
1646
- className: classNames?.label
1647
- }
1648
- ), /* @__PURE__ */ React.createElement("div", { className: "relative flex" }, /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(
1649
- PopoverTrigger,
1650
- {
1651
- asChild: true,
1652
- disabled: options.length === 0,
1653
- "data-testid": `${id ?? name}-combobox-trigger`
1654
- },
1655
- /* @__PURE__ */ React.createElement(
1656
- "div",
1657
- {
1658
- ref,
1659
- className: cn(
1660
- triggerVariants({ variant, size }),
1661
- isDefault && !isEmpty && "pr-10",
1662
- classNames?.trigger
1663
- ),
1664
- "aria-expanded": open
1665
- },
1666
- isDefault && IconComponent && /* @__PURE__ */ React.createElement(IconComponent, { className: "h-4 w-4 shrink-0" }),
1667
- isChip && !isEmpty && /* @__PURE__ */ React.createElement(Badge, { variant: "purple" }, selected.length),
1668
- /* @__PURE__ */ React.createElement(
1669
- "span",
1670
- {
1671
- className: cn(
1672
- "w-full truncate leading-normal",
1673
- isDefault && isEmpty && "text-grey-40"
1674
- )
1675
- },
1676
- handleDisplayValue()
1677
- ),
1678
- showChevron && /* @__PURE__ */ React.createElement(
1679
- import_lucide_react11.ChevronDownIcon,
1680
- {
1681
- className: "shrink-0 transform group-data-[state=open]:rotate-180",
1682
- size: "16"
1683
- }
1684
- )
1685
- )
1686
- ), /* @__PURE__ */ React.createElement(
1687
- PopoverContent,
1688
- {
1689
- className: cn(
1690
- "flex w-full max-w-xs flex-col overflow-hidden p-0",
1691
- "max-h-[--radix-popover-content-available-height]",
1692
- classNames?.content
1693
- ),
1694
- collisionPadding: 8,
1695
- sideOffset: 4,
1696
- align: "start"
1697
- },
1698
- /* @__PURE__ */ React.createElement(Command, null, !hideSearchBox && /* @__PURE__ */ React.createElement(CommandInput, { placeholder: "Search..." }), /* @__PURE__ */ React.createElement(CommandList, null, /* @__PURE__ */ React.createElement(CommandEmpty, null, "No results"), /* @__PURE__ */ React.createElement(CommandGroup, null, options.map(({ id: id2, ...option }) => /* @__PURE__ */ React.createElement(
1699
- CommandItem,
1700
- {
1701
- key: id2,
1702
- value: option.title,
1703
- onSelect: () => handleSelect(option.value)
1704
- },
1705
- /* @__PURE__ */ React.createElement(
1706
- ListItem_default,
1707
- {
1708
- className: cn(classNames?.items, "truncate py-1"),
1709
- isSelected: selected.some((s) => s.value === option.value),
1710
- hasCheckbox: multiselect,
1711
- ...option
1712
- }
1713
- )
1714
- )))), !!footer && /* @__PURE__ */ React.createElement(Separator, null), footer && footer({ close }))
1715
- )), isDefault && !isEmpty && /* @__PURE__ */ React.createElement(
1716
- "button",
1717
- {
1718
- type: "button",
1719
- className: "absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",
1720
- onClick: handleClear
1721
- },
1722
- /* @__PURE__ */ React.createElement(import_lucide_react11.CircleX, { className: "h-4 w-4 text-green-100" })
1723
- )), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
170
+ Object.defineProperty(exports, "CompanyBenefits", {
171
+ enumerable: true,
172
+ get: function () { return chunk7X6S7GJK_cjs.CompanyBenefits; }
1724
173
  });
1725
- Combobox.displayName = "Combobox";
1726
- var triggerVariants = (0, import_cva6.cva)(
1727
- "group relative cursor-pointer text-green-100 flex flex-row items-center justify-between gap-2 border border-grey-20 focus:outline-green-80 disabled:bg-grey-5",
1728
- {
1729
- variants: {
1730
- variant: {
1731
- default: ["w-full", "rounded-lg"],
1732
- chip: [
1733
- "font-bold",
1734
- "rounded-3xl",
1735
- "data-[state=open]:bg-black",
1736
- "data-[state=open]:text-white"
1737
- ]
1738
- },
1739
- size: {
1740
- small: ["h-8", "py-1", "px-2", "text-xs"],
1741
- normal: ["h-9", "py-2", "px-3", "text-sm"],
1742
- large: ["h-10", "py-3", "px-4", "text-base"]
1743
- }
1744
- },
1745
- defaultVariants: {
1746
- variant: "default",
1747
- size: "normal"
1748
- }
1749
- }
1750
- );
1751
-
1752
- // src/components/ui/Switch.tsx
1753
- var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"), 1);
1754
- var import_react11 = require("react");
1755
- var Switch = (0, import_react11.forwardRef)(
1756
- ({ label, error, className, ...props }, ref) => {
1757
- return /* @__PURE__ */ React.createElement("div", { className: cn("flex items-center", props.disabled && "opacity-50") }, /* @__PURE__ */ React.createElement(
1758
- SwitchPrimitive.Root,
1759
- {
1760
- className: cn(
1761
- "relative h-[25px] w-[42px] cursor-default rounded-full bg-grey-20 shadow-md outline-none focus:outline-purple-100 data-[state=checked]:bg-green-90",
1762
- className
1763
- ),
1764
- ref,
1765
- ...props
1766
- },
1767
- /* @__PURE__ */ React.createElement(SwitchPrimitive.Thumb, { className: "block h-[21px] w-[21px] translate-x-0.5 rounded-full bg-white shadow-[0_2px_2px] transition-transform duration-100 will-change-transform data-[state=checked]:translate-x-[19px]" })
1768
- ), label && /* @__PURE__ */ React.createElement("label", { className: "pl-4 text-sm leading-none text-inherit", htmlFor: props.name }, label, /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error, className: "mt-1" })));
1769
- }
1770
- );
1771
- Switch.displayName = "Switch";
1772
-
1773
- // src/components/ui/Radio.tsx
1774
- var import_react13 = require("react");
1775
-
1776
- // src/components/primitives/radio-group.tsx
1777
- var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
1778
- var import_react12 = require("react");
1779
- var RadioGroup = (0, import_react12.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(RadioGroupPrimitive.Root, { className, ...props, ref }));
1780
- RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
1781
- var RadioGroupItem = (0, import_react12.forwardRef)(({ className, children, ...props }, ref) => {
1782
- return /* @__PURE__ */ React.createElement("div", { className: "group flex flex-row items-center gap-2" }, /* @__PURE__ */ React.createElement(
1783
- RadioGroupPrimitive.Item,
1784
- {
1785
- ref,
1786
- className: cn(
1787
- "peer aspect-square h-4 rounded-full border border-grey-10 shadow outline outline-1 outline-offset-2 outline-transparent focus:outline-none focus:outline-purple-100 focus-visible:ring-1 focus-visible:ring-ring active:border-green-80 disabled:cursor-not-allowed disabled:opacity-50 group-hover:border-grey-20 data-[state=checked]:border-4 data-[disabled]:border-grey-20 data-[state=checked]:border-green-90 data-[disabled]:bg-grey-10 data-[state=checked]:group-hover:border-green-80",
1788
- className
1789
- ),
1790
- ...props
1791
- }
1792
- ), /* @__PURE__ */ React.createElement("label", { htmlFor: props.id, className: "text-sm peer-data-[disabled]:text-grey-40" }, children));
174
+ Object.defineProperty(exports, "CompanyInformation", {
175
+ enumerable: true,
176
+ get: function () { return chunkMDLLVPLD_cjs.CompanyInformation; }
1793
177
  });
1794
- RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
1795
-
1796
- // src/components/ui/Radio.tsx
1797
- var Radio = (0, import_react13.forwardRef)(
1798
- ({
1799
- label,
1800
- error,
1801
- description,
1802
- options,
1803
- classNames,
1804
- onChange: handleValueChange,
1805
- orientation,
1806
- ...props
1807
- }, ref) => {
1808
- return /* @__PURE__ */ React.createElement("div", { className: cn("flex flex-col gap-1", classNames?.root) }, /* @__PURE__ */ React.createElement(Label_default, { text: label, description, required: props.required }), /* @__PURE__ */ React.createElement(
1809
- RadioGroup,
1810
- {
1811
- ref,
1812
- className: cn(
1813
- "flex text-sm",
1814
- orientation === "vertical" ? "flex-col gap-2" : "flex-row gap-4",
1815
- classNames?.group
1816
- ),
1817
- onValueChange: handleValueChange,
1818
- ...props
1819
- },
1820
- options?.map(({ id, title, value }) => /* @__PURE__ */ React.createElement(
1821
- RadioGroupItem,
1822
- {
1823
- key: id,
1824
- value,
1825
- id: `radio-group-item-${title}`,
1826
- className: classNames?.item
1827
- },
1828
- title
1829
- ))
1830
- ), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
1831
- }
1832
- );
1833
- Radio.displayName = "Radio";
1834
-
1835
- // src/components/ui/Counter.tsx
1836
- var import_cva7 = require("cva");
1837
- var import_lucide_react12 = require("lucide-react");
1838
- var import_react14 = require("react");
1839
- var Counter = (0, import_react14.forwardRef)(
1840
- ({ label, error, min, max, step = 1, description, theme, value, classNames, onChange, ...props }, ref) => {
1841
- const [count, setCount] = (0, import_react14.useState)(0);
1842
- (0, import_react14.useEffect)(() => {
1843
- setCount(value ?? 0);
1844
- }, [value]);
1845
- const handleChange = (e) => {
1846
- const newValue = parseInt(e.target.value.replace(/\D/g, ""), 10);
1847
- if (isNaN(newValue)) return;
1848
- if (min && newValue < min) {
1849
- onChange?.(min);
1850
- setCount(min);
1851
- return;
1852
- }
1853
- if (max && newValue > max) {
1854
- onChange?.(max);
1855
- setCount(max);
1856
- return;
1857
- }
1858
- onChange?.(newValue);
1859
- setCount(newValue);
1860
- };
1861
- const decrement = () => {
1862
- const proposedValue = count - step;
1863
- const newValue = Math.max(min ?? -Infinity, proposedValue);
1864
- onChange?.(newValue);
1865
- setCount(newValue);
1866
- };
1867
- const increment = () => {
1868
- const proposedValue = count + step;
1869
- const newValue = Math.min(max ?? Infinity, proposedValue);
1870
- onChange?.(newValue);
1871
- setCount(newValue);
1872
- };
1873
- return /* @__PURE__ */ React.createElement(
1874
- "div",
1875
- {
1876
- className: cn("flex w-auto flex-col gap-1", classNames?.root),
1877
- "data-testid": `counter-wrapper-${props.id}`
1878
- },
1879
- label && /* @__PURE__ */ React.createElement(
1880
- Label_default,
1881
- {
1882
- text: label,
1883
- htmlFor: props.name,
1884
- required: props.required,
1885
- description,
1886
- className: classNames?.label
1887
- }
1888
- ),
1889
- /* @__PURE__ */ React.createElement("div", { className: "relative flex w-[122px] flex-row items-center" }, /* @__PURE__ */ React.createElement(
1890
- "button",
1891
- {
1892
- type: "button",
1893
- className: "absolute inset-y-0 left-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",
1894
- onClick: decrement
1895
- },
1896
- /* @__PURE__ */ React.createElement(import_lucide_react12.Minus, { className: "h-4 w-4 text-green-100" })
1897
- ), /* @__PURE__ */ React.createElement(
1898
- "input",
1899
- {
1900
- className: cn(counterVariants({ theme }), classNames?.input),
1901
- ref,
1902
- value: count,
1903
- onChange: handleChange,
1904
- "data-testid": `counter-element-${props.id}`,
1905
- ...props
1906
- }
1907
- ), /* @__PURE__ */ React.createElement(
1908
- "button",
1909
- {
1910
- type: "button",
1911
- className: "absolute inset-y-0 right-1 my-auto flex h-8 w-8 cursor-pointer items-center justify-center rounded-full hover:bg-pickle-20",
1912
- onClick: increment
1913
- },
1914
- /* @__PURE__ */ React.createElement(import_lucide_react12.Plus, { className: "h-4 w-4 text-green-100" })
1915
- )),
1916
- /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error })
1917
- );
1918
- }
1919
- );
1920
- Counter.displayName = "Counter";
1921
- var counterVariants = (0, import_cva7.cva)(
1922
- [
1923
- "border-input",
1924
- "placeholder:text-muted-foreground",
1925
- "focus-visible:ring-ring",
1926
- "inline-flex",
1927
- "w-[122px]",
1928
- "h-11",
1929
- "items-center",
1930
- "justify-start",
1931
- "gap-3",
1932
- "rounded-lg",
1933
- "bg-transparent",
1934
- "px-3",
1935
- "pt-0.5",
1936
- "text-sm",
1937
- "text-center",
1938
- "shadow-sm",
1939
- "ring-grey-50",
1940
- "transition-colors",
1941
- "focus-visible:outline-none",
1942
- "focus-visible:ring-1",
1943
- "disabled:cursor-not-allowed",
1944
- "disabled:opacity-50",
1945
- "appearance-none",
1946
- "[&::-webkit-search-cancel-button]:appearance-none",
1947
- "[&::-webkit-search-decoration]:appearance-none",
1948
- "[&::-webkit-search-results-button]:appearance-none",
1949
- "[&::-webkit-search-results-decoration]:appearance-none",
1950
- "[&::-ms-clear]:display-none",
1951
- "[&::-ms-reveal]:display-none"
1952
- ],
1953
- {
1954
- variants: {
1955
- theme: {
1956
- light: "text-grey-80 border",
1957
- dark: "text-white"
1958
- },
1959
- hasIcon: {
1960
- false: "pl-3",
1961
- true: "pl-8"
1962
- }
1963
- },
1964
- defaultVariants: {
1965
- theme: "light",
1966
- hasIcon: false
1967
- }
1968
- }
1969
- );
1970
-
1971
- // src/components/ui/Icon.tsx
1972
- var import_react_slot2 = require("@radix-ui/react-slot");
1973
- var import_cva8 = require("cva");
1974
- var import_react15 = require("react");
1975
- var import_tailwind_merge3 = require("tailwind-merge");
1976
- var Icon = (0, import_react15.forwardRef)(
1977
- ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
1978
- const Component = readonly ? import_react_slot2.Slot : "button";
1979
- return /* @__PURE__ */ React.createElement(
1980
- Component,
1981
- {
1982
- className: cn(
1983
- (0, import_tailwind_merge3.twMerge)(iconVariants({ variant: active ? "active" : variant, size })),
1984
- className
1985
- ),
1986
- ...props,
1987
- ref
1988
- }
1989
- );
1990
- }
1991
- );
1992
- Icon.displayName = "Icon";
1993
- var iconVariants = (0, import_cva8.cva)(
1994
- [
1995
- "inline-flex",
1996
- "items-center",
1997
- "rounded-full",
1998
- "outline-2",
1999
- "outline-offset-2",
2000
- "outline-dashed",
2001
- "outline-transparent",
2002
- "disabled:text-grey-40",
2003
- "disabled:bg-transparent",
2004
- "disabled:pointer-events-none"
2005
- ],
2006
- {
2007
- variants: {
2008
- variant: {
2009
- filled: [
2010
- "border",
2011
- "border-green-80",
2012
- "bg-green-90",
2013
- "text-white",
2014
- "hover:bg-green-80",
2015
- "active:bg-green-80",
2016
- "focus:outline-pickle-100",
2017
- "disabled:bg-green-70"
2018
- ],
2019
- transparent: [
2020
- "text-black",
2021
- "hover:bg-grey-5",
2022
- "active:bg-grey-10",
2023
- "focus:outline-purple-100"
2024
- ],
2025
- tonal: [
2026
- "border",
2027
- "border-grey-5",
2028
- "hover:border-grey-10",
2029
- "active:border-grey-20",
2030
- "focus:outline-purple-100"
2031
- ],
2032
- active: ["text-black", "bg-pickle-100"]
2033
- },
2034
- size: {
2035
- small: ["h-10", "w-10", "p-3"],
2036
- medium: ["h-12", "w-12", "p-4"],
2037
- large: ["h-14", "w-14", "p-4"]
2038
- }
2039
- },
2040
- defaultVariants: {
2041
- variant: "filled",
2042
- size: "medium"
2043
- }
2044
- }
2045
- );
2046
-
2047
- // src/components/ui/InputOtp.tsx
2048
- var import_react16 = require("react");
2049
-
2050
- // src/components/primitives/input-otp.tsx
2051
- var import_input_otp = require("input-otp");
2052
- var import_lucide_react13 = require("lucide-react");
2053
- var React11 = __toESM(require("react"), 1);
2054
- var InputOTP = React11.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ React11.createElement(
2055
- import_input_otp.OTPInput,
2056
- {
2057
- ref,
2058
- containerClassName: cn(
2059
- "flex items-center gap-2 has-[:disabled]:opacity-50",
2060
- containerClassName
2061
- ),
2062
- className: cn("disabled:cursor-not-allowed", className),
2063
- ...props
2064
- }
2065
- ));
2066
- InputOTP.displayName = "InputOTP";
2067
- var InputOTPGroup = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React11.createElement("div", { ref, className: cn("flex items-center", className), ...props }));
2068
- InputOTPGroup.displayName = "InputOTPGroup";
2069
- var InputOTPSlot = React11.forwardRef(({ index, error, className, ...props }, ref) => {
2070
- const inputOTPContext = React11.useContext(import_input_otp.OTPInputContext);
2071
- const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
2072
- return /* @__PURE__ */ React11.createElement(
2073
- "div",
2074
- {
2075
- ref,
2076
- className: cn(
2077
- "relative flex h-10 w-10 items-center justify-center border-y border-r border-neutral-200 text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md dark:border-neutral-800",
2078
- isActive && "z-10 ring-2 ring-purple-100 ring-offset-white dark:ring-purple-20 dark:ring-offset-purple-100",
2079
- error && "border-red-500 dark:border-red-400",
2080
- className
2081
- ),
2082
- ...props
2083
- },
2084
- char,
2085
- hasFakeCaret && /* @__PURE__ */ React11.createElement("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React11.createElement("div", { className: "h-4 w-px animate-caret-blink bg-neutral-950 duration-1000 dark:bg-neutral-50" }))
2086
- );
178
+ Object.defineProperty(exports, "LinkButton", {
179
+ enumerable: true,
180
+ get: function () { return chunkYPA6HVCD_cjs.LinkButton; }
2087
181
  });
2088
- InputOTPSlot.displayName = "InputOTPSlot";
2089
- var InputOTPSeparator = React11.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React11.createElement("div", { ref, role: "separator", ...props }, /* @__PURE__ */ React11.createElement(import_lucide_react13.Dot, null)));
2090
- InputOTPSeparator.displayName = "InputOTPSeparator";
2091
-
2092
- // src/components/ui/InputOtp.tsx
2093
- var InputOtp = (0, import_react16.forwardRef)(
2094
- ({ digits, label, description, error, ...props }, ref) => {
2095
- return /* @__PURE__ */ React.createElement(
2096
- "div",
2097
- {
2098
- className: "group flex w-full flex-col gap-1",
2099
- "data-testid": `input-otp-wrapper-${props.id}`
2100
- },
2101
- label && /* @__PURE__ */ React.createElement(
2102
- Label_default,
2103
- {
2104
- text: label,
2105
- htmlFor: props.name,
2106
- required: props.required,
2107
- description
2108
- }
2109
- ),
2110
- /* @__PURE__ */ React.createElement("div", { className: "relative flex flex-row items-center" }, /* @__PURE__ */ React.createElement(
2111
- InputOTP,
2112
- {
2113
- ref,
2114
- maxLength: digits,
2115
- "data-testid": `input-otp-element-${props.id}`,
2116
- ...props
2117
- },
2118
- [...Array(digits)].map((_, index) => /* @__PURE__ */ React.createElement(InputOTPGroup, { key: index }, /* @__PURE__ */ React.createElement(
2119
- InputOTPSlot,
2120
- {
2121
- "data-testid": `input-otp-slot-${index}`,
2122
- index,
2123
- error: Boolean(error)
2124
- }
2125
- )))
2126
- )),
2127
- /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error })
2128
- );
2129
- }
2130
- );
2131
- InputOtp.displayName = "Input";
2132
-
2133
- // src/components/ui/LinkButton.tsx
2134
- var import_link2 = __toESM(require("next/link"), 1);
2135
- var import_react17 = __toESM(require("react"), 1);
2136
- var LinkButton = ({
2137
- disabled = false,
2138
- useAnchor = false,
2139
- children,
2140
- href,
2141
- ...props
2142
- }) => {
2143
- const Component = useAnchor ? "a" : import_link2.default;
2144
- return /* @__PURE__ */ import_react17.default.createElement(
2145
- Component,
2146
- {
2147
- href,
2148
- className: `inline-flex items-center justify-center gap-2 rounded-full text-sm font-bold leading-tight text-black underline outline-dashed outline-2 outline-offset-2 outline-transparent hover:text-purple-100 focus:text-black focus:outline-purple-100 active:text-purple-80 ${disabled ? "pointer-events-none text-grey-40" : ""} `,
2149
- ...disabled && { "aria-disabled": true, tabIndex: -1 },
2150
- ...props
2151
- },
2152
- children
2153
- );
2154
- };
2155
-
2156
- // src/components/ui/ReadMore.tsx
2157
- var import_react18 = require("react");
2158
- var import_react_markdown = __toESM(require("react-markdown"), 1);
2159
- function ReadMore({ text, ...props }) {
2160
- const [isExpanded, setIsExpanded] = (0, import_react18.useState)(false);
2161
- const [maxWords, setMaxWords] = (0, import_react18.useState)(160);
2162
- const isOverMaxWords = text.split(" ").length > maxWords;
2163
- (0, import_react18.useEffect)(() => {
2164
- const updateMaxWords = () => {
2165
- const windowWidth = window.innerWidth;
2166
- if (windowWidth <= 768) {
2167
- setMaxWords(50);
2168
- } else {
2169
- setMaxWords(160);
2170
- }
2171
- };
2172
- updateMaxWords();
2173
- window.addEventListener("resize", updateMaxWords);
2174
- return () => window.removeEventListener("resize", updateMaxWords);
2175
- }, []);
2176
- function createReadMoreText(text2, maxWords2, isExpanded2) {
2177
- if (!isOverMaxWords) return text2;
2178
- const words = text2.split(" ");
2179
- const snippet2 = isExpanded2 ? text2 : words.slice(0, maxWords2).join(" ");
2180
- const readMoreText = isExpanded2 ? "" : "...";
2181
- return `${snippet2} ${readMoreText}`;
2182
- }
2183
- const toggleText = () => setIsExpanded(!isExpanded);
2184
- const snippet = createReadMoreText(text, maxWords, isExpanded);
2185
- return /* @__PURE__ */ React.createElement("div", { ...props }, /* @__PURE__ */ React.createElement("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg" }, /* @__PURE__ */ React.createElement(import_react_markdown.default, null, snippet)), isOverMaxWords && /* @__PURE__ */ React.createElement(
2186
- Button,
2187
- {
2188
- type: "button",
2189
- className: "mt-2 flex items-center justify-center",
2190
- variant: "link",
2191
- onClick: toggleText
2192
- },
2193
- /* @__PURE__ */ React.createElement("p", { className: "text-sm font-bold underline underline-offset-2" }, "Read ", isExpanded ? "less" : "more")
2194
- ));
2195
- }
2196
-
2197
- // src/components/ui/DatePicker.tsx
2198
- var import_cva9 = require("cva");
2199
- var import_date_fns = require("date-fns");
2200
- var import_lucide_react15 = require("lucide-react");
2201
- var import_react19 = require("react");
2202
-
2203
- // src/components/ui/calendar.tsx
2204
- var import_lucide_react14 = require("lucide-react");
2205
- var React14 = __toESM(require("react"), 1);
2206
- var import_react_day_picker = require("react-day-picker");
2207
-
2208
- // src/components/ui/buttonShadcn.tsx
2209
- var import_react_slot3 = require("@radix-ui/react-slot");
2210
- var import_class_variance_authority = require("class-variance-authority");
2211
- var React13 = __toESM(require("react"), 1);
2212
- var buttonVariants2 = (0, import_class_variance_authority.cva)(
2213
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-neutral-950 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 dark:focus-visible:ring-neutral-300",
2214
- {
2215
- variants: {
2216
- variant: {
2217
- default: "bg-neutral-900 text-neutral-50 shadow hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
2218
- destructive: "bg-red-500 text-neutral-50 shadow-sm hover:bg-red-500/90 dark:bg-red-900 dark:text-neutral-50 dark:hover:bg-red-900/90",
2219
- outline: "border border-neutral-200 bg-white shadow-sm hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
2220
- secondary: "bg-neutral-100 text-neutral-900 shadow-sm hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
2221
- ghost: "hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
2222
- link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50"
2223
- },
2224
- size: {
2225
- default: "h-9 px-4 py-2",
2226
- sm: "h-8 rounded-md px-3 text-xs",
2227
- lg: "h-10 rounded-md px-8",
2228
- icon: "h-9 w-9"
2229
- }
2230
- },
2231
- defaultVariants: {
2232
- variant: "default",
2233
- size: "default"
2234
- }
2235
- }
2236
- );
2237
- var Button2 = React13.forwardRef(
2238
- ({ className, variant, size, asChild = false, ...props }, ref) => {
2239
- const Comp = asChild ? import_react_slot3.Slot : "button";
2240
- return /* @__PURE__ */ React13.createElement(Comp, { className: cn(buttonVariants2({ variant, size, className })), ref, ...props });
2241
- }
2242
- );
2243
- Button2.displayName = "Button";
2244
-
2245
- // src/components/ui/calendar.tsx
2246
- function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
2247
- return /* @__PURE__ */ React14.createElement(
2248
- import_react_day_picker.DayPicker,
2249
- {
2250
- showOutsideDays,
2251
- className: cn("p-3", className),
2252
- classNames: {
2253
- months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
2254
- month: "space-y-4",
2255
- caption: "flex justify-center pt-1 relative items-center",
2256
- caption_label: "text-sm font-medium",
2257
- nav: "space-x-1 flex items-center",
2258
- nav_button: cn(
2259
- buttonVariants2({ variant: "outline" }),
2260
- "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
2261
- ),
2262
- nav_button_previous: "absolute left-1",
2263
- nav_button_next: "absolute right-1",
2264
- table: "w-full border-collapse space-y-1",
2265
- head_row: "flex",
2266
- head_cell: "text-neutral-500 rounded-md w-8 font-normal text-[0.8rem] dark:text-neutral-400",
2267
- row: "flex w-full mt-2",
2268
- cell: cn(
2269
- "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-neutral-100 [&:has([aria-selected].day-outside)]:bg-neutral-100/50 [&:has([aria-selected].day-range-end)]:rounded-r-md dark:[&:has([aria-selected])]:bg-neutral-800 dark:[&:has([aria-selected].day-outside)]:bg-neutral-800/50",
2270
- props.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
2271
- ),
2272
- day: cn(
2273
- buttonVariants2({ variant: "ghost" }),
2274
- "h-8 w-8 p-0 font-normal aria-selected:opacity-100"
2275
- ),
2276
- day_range_start: "day-range-start",
2277
- day_range_end: "day-range-end",
2278
- day_selected: "bg-neutral-900 text-neutral-50 hover:bg-neutral-900 hover:text-neutral-50 focus:bg-neutral-900 focus:text-neutral-50 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50 dark:hover:text-neutral-900 dark:focus:bg-neutral-50 dark:focus:text-neutral-900",
2279
- day_today: "bg-neutral-100 text-neutral-900 dark:bg-neutral-800 dark:text-neutral-50",
2280
- day_outside: "day-outside text-neutral-500 aria-selected:bg-neutral-100/50 aria-selected:text-neutral-500 dark:text-neutral-400 dark:aria-selected:bg-neutral-800/50 dark:aria-selected:text-neutral-400",
2281
- day_disabled: "text-neutral-500 opacity-50 dark:text-neutral-400",
2282
- day_range_middle: "aria-selected:bg-neutral-100 aria-selected:text-neutral-900 dark:aria-selected:bg-neutral-800 dark:aria-selected:text-neutral-50",
2283
- day_hidden: "invisible",
2284
- ...classNames
2285
- },
2286
- components: {
2287
- IconLeft: ({ className: className2, ...props2 }) => /* @__PURE__ */ React14.createElement(import_lucide_react14.ChevronLeft, { className: cn("h-4 w-4", className2), ...props2 }),
2288
- IconRight: ({ className: className2, ...props2 }) => /* @__PURE__ */ React14.createElement(import_lucide_react14.ChevronRight, { className: cn("h-4 w-4", className2), ...props2 })
2289
- },
2290
- ...props
2291
- }
2292
- );
2293
- }
2294
- Calendar.displayName = "Calendar";
2295
-
2296
- // src/components/ui/DatePicker.tsx
2297
- var DatePicker = (0, import_react19.forwardRef)(
2298
- ({ label, description, required, classNames, value, onChange, error, id, testId }, ref) => {
2299
- const [date, setDate] = (0, import_react19.useState)(null);
2300
- (0, import_react19.useEffect)(() => {
2301
- setDate(value ?? null);
2302
- }, [value]);
2303
- const handleDateSelect = (dateSelected) => {
2304
- if (!dateSelected) return;
2305
- onChange?.(dateSelected);
2306
- setDate(dateSelected);
2307
- };
2308
- return /* @__PURE__ */ React.createElement("div", { id, className: cn("flex w-auto flex-col gap-1") }, label && /* @__PURE__ */ React.createElement(
2309
- Label_default,
2310
- {
2311
- text: label,
2312
- required,
2313
- description,
2314
- className: classNames?.label
2315
- }
2316
- ), /* @__PURE__ */ React.createElement(Popover, null, /* @__PURE__ */ React.createElement(PopoverTrigger, { "data-testid": testId }, /* @__PURE__ */ React.createElement("div", { className: cn(datePickerStyle(), classNames?.input) }, /* @__PURE__ */ React.createElement(import_lucide_react15.Calendar, { size: 16 }), date ? (0, import_date_fns.format)(date, "MM/dd/yyyy") : "Select a date")), /* @__PURE__ */ React.createElement(PopoverContent, { ref }, /* @__PURE__ */ React.createElement(
2317
- Calendar,
2318
- {
2319
- mode: "single",
2320
- selected: date || void 0,
2321
- onSelect: handleDateSelect,
2322
- captionLayout: "dropdown",
2323
- showOutsideDays: true,
2324
- className: classNames?.calendar
2325
- }
2326
- ))), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
2327
- }
2328
- );
2329
- var datePickerStyle = (0, import_cva9.cva)([
2330
- "placeholder:text-muted-foreground",
2331
- "focus-visible:ring-ring",
2332
- "inline-flex",
2333
- "w-full",
2334
- "h-11",
2335
- "items-center",
2336
- "justify-start",
2337
- "gap-3",
2338
- "rounded-lg",
2339
- "bg-transparent",
2340
- "px-3",
2341
- "pt-0.5",
2342
- "text-sm",
2343
- "shadow-sm",
2344
- "ring-grey-50",
2345
- "transition-colors",
2346
- "focus-visible:outline-none",
2347
- "focus-visible:ring-1",
2348
- "disabled:cursor-not-allowed",
2349
- "disabled:opacity-50",
2350
- "appearance-none",
2351
- "[&::-webkit-search-cancel-button]:appearance-none",
2352
- "[&::-webkit-search-decoration]:appearance-none",
2353
- "[&::-webkit-search-results-button]:appearance-none",
2354
- "[&::-webkit-search-results-decoration]:appearance-none",
2355
- "[&::-ms-clear]:display-none",
2356
- "[&::-ms-reveal]:display-none",
2357
- "text-grey-80 border",
2358
- "font-normal"
2359
- ]);
2360
-
2361
- // src/components/ui/StepTabs.tsx
2362
- var Tabs = __toESM(require("@radix-ui/react-tabs"), 1);
2363
- var import_cva10 = require("cva");
2364
- var tabParentVariants = (0, import_cva10.cva)("flex flex-col", {
2365
- variants: {
2366
- variant: {
2367
- primary: "rounded-lg border shadow-sm",
2368
- neutral: "",
2369
- minimal: "relative overflow-x-auto"
2370
- }
2371
- },
2372
- defaultVariants: {
2373
- variant: "primary"
2374
- }
182
+ Object.defineProperty(exports, "CompanyTake", {
183
+ enumerable: true,
184
+ get: function () { return chunkVUBXXZUL_cjs.CompanyTake; }
2375
185
  });
2376
- var headerVariants = (0, import_cva10.cva)("flex shrink-0 border-b border-grey-20", {
2377
- variants: {
2378
- variant: {
2379
- primary: "",
2380
- neutral: "",
2381
- minimal: "w-fit relative border-none"
2382
- }
2383
- },
2384
- defaultVariants: {
2385
- variant: "primary"
2386
- }
186
+ Object.defineProperty(exports, "JobDescription", {
187
+ enumerable: true,
188
+ get: function () { return chunkTJVXG27I_cjs.JobDescription; }
2387
189
  });
2388
- var singleTabVariants = (0, import_cva10.cva)(
2389
- "flex h-[45px] flex-1 cursor-pointer select-none items-center justify-center bg-white px-5 text-[15px] leading-none text-gray-800 outline-none",
2390
- {
2391
- variants: {
2392
- variant: {
2393
- primary: "first:rounded-tl-md last:rounded-tr-md hover:text-purple-100 data-[state=active]:text-purple-100 data-[state=active]:shadow-[inset_0_-1px_0_0,0_1px_0_0] data-[state=active]:shadow-current data-[state=active]:focus:relative data-[state=active]:focus:shadow-[0_0_0_2px] data-[state=active]:focus:shadow-black",
2394
- neutral: "first:rounded-tl-md last:rounded-tr-md hover:text-black data-[state=active]:text-black data-[state=active]:shadow-[inset_0_-1px_0_0,0_1px_0_0] data-[state=active]:shadow-current data-[state=active]:focus:relative",
2395
- minimal: "whitespace-nowrap flex-none first:rounded-tl-md last:rounded-tr-md hover:text-black data-[state=active]:font-bold data-[state=active]:text-black data-[state=active]:shadow-[inset_0_-2px_0_0] data-[state=active]:shadow-current data-[state=active]:focus:relative"
2396
- }
2397
- },
2398
- defaultVariants: {
2399
- variant: "primary"
2400
- }
2401
- }
2402
- );
2403
- function StepTabs({
2404
- list,
2405
- currentStep,
2406
- setCurrentStep,
2407
- children,
2408
- className,
2409
- classNameTab,
2410
- defaultValue,
2411
- variant,
2412
- ...props
2413
- }) {
2414
- return /* @__PURE__ */ React.createElement(
2415
- Tabs.Root,
2416
- {
2417
- value: currentStep,
2418
- onValueChange: setCurrentStep,
2419
- defaultValue: defaultValue ?? "0",
2420
- className: cn(tabParentVariants({ variant }), className),
2421
- ...props
2422
- },
2423
- /* @__PURE__ */ React.createElement(Tabs.List, { className: cn(headerVariants({ variant })) }, list.length > 1 && list.map((item, index) => /* @__PURE__ */ React.createElement(
2424
- Tabs.Trigger,
2425
- {
2426
- key: `${item}-${index}`,
2427
- className: cn(singleTabVariants({ variant }), classNameTab),
2428
- value: index.toString()
2429
- },
2430
- item
2431
- ))),
2432
- children && children.map((child, index) => /* @__PURE__ */ React.createElement(
2433
- Tabs.Content,
2434
- {
2435
- key: index,
2436
- className: cn(
2437
- "grow rounded-b-md bg-white p-5 outline-none",
2438
- variant === "minimal" && "border-t"
2439
- ),
2440
- value: index.toString()
2441
- },
2442
- child
2443
- ))
2444
- );
2445
- }
2446
-
2447
- // src/components/ui/DismissibleBanner.tsx
2448
- var import_lucide_react16 = require("lucide-react");
2449
- var import_react20 = require("react");
2450
- function DismissibleBanner({
2451
- children,
2452
- cookieId,
2453
- className,
2454
- textClassNames,
2455
- buttonClassNames
2456
- }) {
2457
- const safeId = encodeURIComponent(cookieId);
2458
- const [isVisible, setIsVisible] = (0, import_react20.useState)(false);
2459
- (0, import_react20.useEffect)(() => {
2460
- const cookies = document.cookie.split(";");
2461
- const isDismissed = cookies.some((cookie) => cookie.trim().startsWith(`${safeId}=true`));
2462
- if (!isDismissed) {
2463
- setIsVisible(true);
2464
- }
2465
- }, [safeId]);
2466
- const handleDismiss = () => {
2467
- document.cookie = `${safeId}=true;path=/`;
2468
- setIsVisible(false);
2469
- };
2470
- if (!isVisible) return null;
2471
- return /* @__PURE__ */ React.createElement(
2472
- "nav",
2473
- {
2474
- className: cn(
2475
- "align-center flex w-full items-center justify-between gap-2 bg-blue-100 px-4 py-3",
2476
- className
2477
- )
2478
- },
2479
- /* @__PURE__ */ React.createElement("div", { className: cn("w-full text-center text-sm text-green-100", textClassNames) }, children),
2480
- /* @__PURE__ */ React.createElement(
2481
- "button",
2482
- {
2483
- className: cn("text-green-100", buttonClassNames),
2484
- "aria-label": "Close banner",
2485
- onClick: handleDismiss
2486
- },
2487
- /* @__PURE__ */ React.createElement(import_lucide_react16.X, { size: 28 })
2488
- )
2489
- );
2490
- }
2491
-
2492
- // src/types/latest/company_service_latest.ts
2493
- var import_zod2 = require("zod");
2494
-
2495
- // src/types/latest/shared_pickle_output_latest.ts
2496
- var shared_pickle_output_latest_exports = {};
2497
- __export(shared_pickle_output_latest_exports, {
2498
- CurrencyEnum: () => CurrencyEnum,
2499
- DetailLevelEnum: () => DetailLevelEnum,
2500
- TypeEnum: () => TypeEnum,
2501
- UnitTextEnum: () => UnitTextEnum,
2502
- imageAssetSchema: () => imageAssetSchema,
2503
- imageSchema: () => imageSchema,
2504
- monetaryAmountSchema: () => monetaryAmountSchema,
2505
- placeSchema: () => placeSchema,
2506
- postalAddressSchema: () => postalAddressSchema,
2507
- quantitativeValueSchema: () => quantitativeValueSchema
190
+ Object.defineProperty(exports, "ReadMore", {
191
+ enumerable: true,
192
+ get: function () { return chunkE5S6MGBJ_cjs.ReadMore; }
2508
193
  });
2509
- var import_zod = require("zod");
2510
- var TypeEnum = import_zod.z.enum(["IMAGE"]);
2511
- var DetailLevelEnum = import_zod.z.enum(["COUNTRY", "GEO", "LOCALITY", "POSTAL_CODE", "REGION"]);
2512
- var UnitTextEnum = import_zod.z.enum(["DAY", "HOUR", "MONTH", "PER_ACTIVITY", "WEEK", "YEAR"]);
2513
- var CurrencyEnum = import_zod.z.enum(["EUR", "GBP", "USD"]);
2514
- var postalAddressSchema = import_zod.z.object({
2515
- version: import_zod.z.literal("1.0.0").default("1.0.0"),
2516
- type: import_zod.z.string().describe("Document type used for schema"),
2517
- addressCountry: import_zod.z.string().describe("The physical country as defined in ISO 3166 Alpha-2"),
2518
- addressRegion: import_zod.z.optional(import_zod.z.string()).describe("The region in which the locality is, and which is in the country."),
2519
- addressLocality: import_zod.z.optional(import_zod.z.string()).describe("The locality in which the street address is, and which is in the region. In the US this would be city."),
2520
- streetAddress: import_zod.z.optional(import_zod.z.string()).describe("The street name of the address within the locality."),
2521
- streetNumber: import_zod.z.optional(import_zod.z.string()).describe("The house of building number within the street."),
2522
- postalCode: import_zod.z.optional(import_zod.z.string()).describe("The postal code"),
2523
- description: import_zod.z.optional(import_zod.z.string()).describe("A descriptive string containing the full address.")
194
+ Object.defineProperty(exports, "Button", {
195
+ enumerable: true,
196
+ get: function () { return chunkM3HMXHAL_cjs.Button; }
2524
197
  });
2525
- var placeSchema = import_zod.z.object({
2526
- version: import_zod.z.literal("1.0.0").default("1.0.0"),
2527
- detailLevel: import_zod.z.optional(DetailLevelEnum),
2528
- latitude: import_zod.z.optional(import_zod.z.number()).describe("The latitude of a location."),
2529
- longitude: import_zod.z.optional(import_zod.z.number()).describe("The longitude of a location."),
2530
- address: import_zod.z.optional(postalAddressSchema).describe("The physical place of the location")
198
+ Object.defineProperty(exports, "JobHeader", {
199
+ enumerable: true,
200
+ get: function () { return chunkVXNZRGLE_cjs.JobHeader; }
2531
201
  });
2532
- var quantitativeValueSchema = import_zod.z.object({
2533
- version: import_zod.z.literal("1.0.0").default("1.0.0"),
2534
- type: import_zod.z.string().describe("Document type used for schema"),
2535
- value: import_zod.z.optional(import_zod.z.number()).describe("The single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Typically used for a single salary."),
2536
- minValue: import_zod.z.optional(import_zod.z.number()).describe("The single minium value in a range for a quantitative_value, requires a maximum value."),
2537
- maxValue: import_zod.z.optional(import_zod.z.number()).describe("The maximum value in a range for a quantitative_value, requires a minimum value."),
2538
- unitText: UnitTextEnum
202
+ Object.defineProperty(exports, "BackButton", {
203
+ enumerable: true,
204
+ get: function () { return chunkGP5XW2ZR_cjs.BackButton; }
2539
205
  });
2540
- var monetaryAmountSchema = import_zod.z.object({
2541
- version: import_zod.z.literal("1.0.0").default("1.0.0"),
2542
- type: import_zod.z.string().describe("Document type used for schema"),
2543
- singleValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Deprecated - use value.value instead."),
2544
- minValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized single minium value in a range for a quantitative_value. Deprecated use value.minValue"),
2545
- maxValue: import_zod.z.optional(import_zod.z.number()).describe("The annualized maximum value in a range for a quantitative_value. Deprecated use value.maxValue"),
2546
- value: import_zod.z.optional(quantitativeValueSchema).describe("The quantitative_value for a given salary"),
2547
- currency: import_zod.z.optional(CurrencyEnum)
206
+ Object.defineProperty(exports, "Icon", {
207
+ enumerable: true,
208
+ get: function () { return chunk3CI6PTKT_cjs.Icon; }
2548
209
  });
2549
- var imageAssetSchema = import_zod.z.object({
2550
- version: import_zod.z.literal("1.0.0").default("1.0.0"),
2551
- altText: import_zod.z.optional(import_zod.z.string()).describe("The alt text for the image"),
2552
- assetId: import_zod.z.optional(import_zod.z.string()).describe("The asset ID for the image"),
2553
- description: import_zod.z.optional(import_zod.z.string()).describe("The description for the image"),
2554
- extension: import_zod.z.optional(import_zod.z.string()).describe("The extension for the image"),
2555
- label: import_zod.z.optional(import_zod.z.string()).describe("The label for the image"),
2556
- mimeType: import_zod.z.optional(import_zod.z.string()).describe("The mime type for the image"),
2557
- originalFilename: import_zod.z.optional(import_zod.z.string()).describe("The original filename for the image"),
2558
- path: import_zod.z.optional(import_zod.z.string()).describe("The path for the image"),
2559
- sha1Hash: import_zod.z.optional(import_zod.z.string()).describe("The SHA1 hash for the image"),
2560
- size: import_zod.z.optional(import_zod.z.number()).describe("The size for the image"),
2561
- title: import_zod.z.optional(import_zod.z.string()).describe("The title for the image"),
2562
- uploadId: import_zod.z.optional(import_zod.z.string()).describe("The upload ID for the image"),
2563
- url: import_zod.z.optional(import_zod.z.string()).describe("The URL for the image")
210
+ Object.defineProperty(exports, "Avatar", {
211
+ enumerable: true,
212
+ get: function () { return chunkTBV7NDAG_cjs.Avatar; }
2564
213
  });
2565
- var imageSchema = import_zod.z.object({
2566
- version: import_zod.z.literal("1.0.0").default("1.0.0"),
2567
- type: import_zod.z.string().describe("Document type used for schema"),
2568
- asset: import_zod.z.optional(imageAssetSchema).describe("The asset for the image")
214
+ Object.defineProperty(exports, "Chip", {
215
+ enumerable: true,
216
+ get: function () { return chunkHCXPKYJR_cjs.Chip_default; }
2569
217
  });
2570
-
2571
- // src/types/latest/company_service_latest.ts
2572
- var TypeEnum2 = import_zod2.z.enum(["OFFICE"]);
2573
- var CategoryEnum = import_zod2.z.enum(["FINANCIAL", "HEALTH", "PROFESSIONAL_DEVELOPMENT", "WORK_LIFE_BALANCE"]);
2574
- var TitleEnum = import_zod2.z.enum(["DMD", "JD", "MBA", "MD", "MHA", "MPH", "PT", "PH_D", "RN"]);
2575
- var PublishStatusEnum = import_zod2.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
2576
- var OfficeTypeEnum = import_zod2.z.enum(["BRANCH", "HEADQUARTERS", "SATELLITE"]);
2577
- var socialMediaSchema = import_zod2.z.object({
2578
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2579
- url: import_zod2.z.string().describe("The link to the social media platform"),
2580
- type: import_zod2.z.string().describe("The type of social media link")
218
+ Object.defineProperty(exports, "cn", {
219
+ enumerable: true,
220
+ get: function () { return chunkMGWZXPMF_cjs.cn; }
2581
221
  });
2582
- var companyBenefitsSchema = import_zod2.z.object({
2583
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2584
- type: import_zod2.z.string().describe("Document type used for schema"),
2585
- title: import_zod2.z.string(),
2586
- description: import_zod2.z.optional(import_zod2.z.string()),
2587
- category: CategoryEnum
2588
- });
2589
- var industrySchema = import_zod2.z.lazy(() => import_zod2.z.object({
2590
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2591
- type: import_zod2.z.string().describe("Document type used for schema"),
2592
- name: import_zod2.z.string(),
2593
- description: import_zod2.z.optional(import_zod2.z.string()).describe("A brief description of the industry"),
2594
- onetIndustryId: import_zod2.z.optional(import_zod2.z.string()).describe("ONET industry ID"),
2595
- parent: import_zod2.z.optional(industrySchema)
2596
- }));
2597
- var jobBoardSchema = import_zod2.z.object({
2598
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2599
- type: import_zod2.z.string().describe("Document type used for schema"),
2600
- name: import_zod2.z.string().describe("The name of the job board"),
2601
- description: import_zod2.z.string().describe("A brief description of the job board"),
2602
- logo: import_zod2.z.optional(imageSchema).describe("The logo of the job board"),
2603
- baseUrl: import_zod2.z.optional(import_zod2.z.string()).describe("The base URL of the job board")
2604
- });
2605
- var personSchema = import_zod2.z.object({
2606
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2607
- type: import_zod2.z.string().describe("Document type used for schema"),
2608
- firstName: import_zod2.z.string().describe("The first name of the person"),
2609
- lastName: import_zod2.z.string().describe("The last name of the person"),
2610
- title: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())).describe("The titles of the degree of the person"),
2611
- slug: import_zod2.z.string().describe("person slug - should be familyname-givenname-title(s)"),
2612
- jobTitle: import_zod2.z.optional(import_zod2.z.string()).describe("The job title of the person"),
2613
- isDoctor: import_zod2.z.optional(import_zod2.z.boolean()).describe("Is the person a doctor"),
2614
- isMedical: import_zod2.z.optional(import_zod2.z.boolean()).describe("Are they of a medical background?"),
2615
- isScientist: import_zod2.z.optional(import_zod2.z.boolean()).describe("Are they a scientist?"),
2616
- image: import_zod2.z.optional(imageSchema).describe("The image of the person"),
2617
- email: import_zod2.z.optional(import_zod2.z.string()).describe("The email of the person"),
2618
- socialMedia: import_zod2.z.optional(import_zod2.z.array(socialMediaSchema)).describe("The social media links of the person"),
2619
- telephone: import_zod2.z.optional(import_zod2.z.string()).describe("The telephone number of the person"),
2620
- url: import_zod2.z.optional(import_zod2.z.string()).describe("The URL of the person"),
2621
- address: import_zod2.z.optional(placeSchema).describe("The address of the person")
2622
- });
2623
- var companyCareersSchema = import_zod2.z.object({
2624
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2625
- type: import_zod2.z.string().describe("Document type used for schema"),
2626
- careersUrl: import_zod2.z.string().describe("The URL of the company careers page"),
2627
- jobBoard: import_zod2.z.optional(jobBoardSchema),
2628
- jobBoardSlug: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())),
2629
- companyBenefits: import_zod2.z.optional(import_zod2.z.array(companyBenefitsSchema)).describe("What are the specific benefits of that company. The benefit is generic.")
2630
- });
2631
- var companyPhilosophySchema = import_zod2.z.object({
2632
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2633
- type: import_zod2.z.string().describe("Document type used for schema"),
2634
- companyMission: import_zod2.z.optional(import_zod2.z.string()).describe("The mission statement of the company."),
2635
- companyHow: import_zod2.z.optional(import_zod2.z.string()).describe("How does the company achieve its mission"),
2636
- companyCulture: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())).describe("What are some of the culture aspects of this company?")
2637
- });
2638
- var companyNdgSchema = import_zod2.z.object({
2639
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2640
- type: import_zod2.z.string().describe("Document type used for schema"),
2641
- companyWow: import_zod2.z.optional(import_zod2.z.string()).describe("What is the wow of this company?"),
2642
- companyNdgTake: import_zod2.z.optional(import_zod2.z.string()).describe("What is the NDG POV on this company?"),
2643
- companyBestFit: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string())),
2644
- companyInterests: import_zod2.z.optional(import_zod2.z.array(import_zod2.z.string()))
2645
- });
2646
- var foundingInformationSchema = import_zod2.z.object({
2647
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2648
- type: import_zod2.z.string().describe("Document type used for schema"),
2649
- foundedDate: import_zod2.z.optional(import_zod2.z.string()),
2650
- foundedCountry: import_zod2.z.optional(import_zod2.z.string()),
2651
- foundedCity: import_zod2.z.optional(import_zod2.z.string()),
2652
- founders: import_zod2.z.optional(import_zod2.z.array(personSchema))
2653
- });
2654
- var ngdMetadataSchema = import_zod2.z.object({
2655
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2656
- type: import_zod2.z.string().describe("Document type used for schema"),
2657
- lastScraped: import_zod2.z.optional(import_zod2.z.string()).describe("Date the last entity was scraped, if applicable"),
2658
- scraperVersion: import_zod2.z.optional(import_zod2.z.string()),
2659
- postProcessorVersion: import_zod2.z.optional(import_zod2.z.string()),
2660
- uniqueRunId: import_zod2.z.optional(import_zod2.z.string()),
2661
- postProcessorUniqueRunId: import_zod2.z.optional(import_zod2.z.string()),
2662
- isScrapeManaged: import_zod2.z.optional(import_zod2.z.boolean()).default(true)
2663
- });
2664
- var companySchema = import_zod2.z.object({
2665
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2666
- id: import_zod2.z.string().describe("The NDG specific id for a company. Cannot be changed."),
2667
- createdAt: import_zod2.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2668
- updatedAt: import_zod2.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2669
- companyName: import_zod2.z.string().describe("The name of the company"),
2670
- slug: import_zod2.z.string().describe("The NDG specific slug for a company."),
2671
- type: import_zod2.z.string().describe("Document type used for schema"),
2672
- logo: import_zod2.z.optional(imageSchema).describe("The logo of the company"),
2673
- companyWebsite: import_zod2.z.optional(import_zod2.z.string()).describe("The website of the company"),
2674
- socialMedia: import_zod2.z.optional(import_zod2.z.array(socialMediaSchema)).describe("The social media links of the company"),
2675
- brandColor: import_zod2.z.optional(import_zod2.z.string()).describe("The brand color of the company"),
2676
- companyCareers: import_zod2.z.optional(companyCareersSchema).describe("Career Specific Information for the company."),
2677
- companyPhilosophy: import_zod2.z.optional(companyPhilosophySchema).describe("Company mission,values and how the company achieves its mission."),
2678
- companyNdg: import_zod2.z.optional(companyNdgSchema).describe("Next Degree specific information for the company."),
2679
- foundingInfo: import_zod2.z.optional(foundingInformationSchema),
2680
- headquartersLocation: import_zod2.z.optional(placeSchema),
2681
- employeeEstimate: import_zod2.z.optional(import_zod2.z.string()),
2682
- publishStatus: import_zod2.z.optional(import_zod2.z.string()),
2683
- ngdMetadata: import_zod2.z.optional(ngdMetadataSchema)
2684
- });
2685
- var officeSchema = import_zod2.z.object({
2686
- version: import_zod2.z.literal("1.0.0").default("1.0.0"),
2687
- type: import_zod2.z.string().describe("Document type used for schema"),
2688
- name: import_zod2.z.string().describe("Name or nickname for the office (e.g., 'NYC HQ', 'West Coast Branch')"),
2689
- officeType: OfficeTypeEnum,
2690
- companyId: import_zod2.z.optional(companySchema),
2691
- geoLocation: import_zod2.z.optional(placeSchema).describe("Geographical location details: coordinates + postal address"),
2692
- createdAt: import_zod2.z.optional(import_zod2.z.string()),
2693
- updatedAt: import_zod2.z.optional(import_zod2.z.string())
2694
- });
2695
-
2696
- // src/types/latest/job_posting_service_latest.ts
2697
- var import_zod3 = require("zod");
2698
- var TypeEnum3 = import_zod3.z.enum(["JOB_POST"]);
2699
- var JobLocationTypeEnum = import_zod3.z.enum(["FLOAT", "HYBRID", "ONSITE", "REMOTE"]);
2700
- var EmploymentTypeEnum = import_zod3.z.enum(["CONTRACT", "FULL_TIME", "INTERNSHIP", "OTHER", "PART_TIME", "PER_DIEM", "TEMPORARY"]);
2701
- var EmploymentLevelEnum = import_zod3.z.enum(["DIRECTOR", "ENTRY_LEVEL", "EXECUTIVE", "EXPERIENCED", "INTERN", "MANAGER"]);
2702
- var JobFunctionEnum = import_zod3.z.enum(["CLINICAL_RESEARCH", "CUSTOMER_SUCCESS", "DATA_ANALYTICS", "FINANCE_AND_AUDIT", "MARKETING", "OPERATIONS", "PEOPLE_HUMAN_RESOURCES", "PRODUCT_AND_TECH", "QUALITY_ASSURANCE_AND_OUTCOMES", "SALES_AND_BUSINESS_DEVELOPMENT", "STRATEGY_AND_CONSULTING"]);
2703
- var PublishStatusEnum2 = import_zod3.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
2704
- var BestFitEnum = import_zod3.z.enum(["DENTIST", "DIETICIAN", "DOULA", "MEDICAL_ASSISTANT", "MIDWIFE", "NURSE", "OCCUPATIONAL_THERAPIST", "PHARMACIST", "PHYSICAL_THERAPIST", "PHYSICIAN", "PHYSICIAN_ASSISTANT", "PSYCHOLOGIST", "RADIOLOGIST", "SOCIAL_WORKER", "SPEECH_LANGUAGE_PATHOLOGIST", "SURGEON"]);
2705
- var ClinicalLicenseEnum = import_zod3.z.enum(["CNA", "CNM", "CNS", "COTA", "CRNA", "LPN", "LVN", "NP", "OT", "PT", "PTA", "RN"]);
2706
- var ShiftEnum = import_zod3.z.enum(["DAY", "EIGHT_HOUR", "EVENING", "FLEXIBLE", "MID_SHIFT", "MONDAY_TO_FRIDAY", "NIGHT", "ON_CALL", "TEN_HOUR", "TWELVE_HOUR", "WEEKENDS"]);
2707
- var ClinicalSettingEnum = import_zod3.z.enum(["ACUTE_CARE", "AMBULATORY_SURGERY_CENTER", "CLINIC", "HOME_HEALTH", "HOSPITAL", "INPATIENT", "LONG_TERM_CARE", "MED_SPA", "NURSING_HOME", "OFFICE", "OUTPATIENT", "PRIVATE_PRACTICE", "REHAB_CENTER", "SCHOOL", "SKILLED_NURSING_FACILITY"]);
2708
- var ClinicalSpecialtyEnum = import_zod3.z.enum(["ANESTHESIOLOGY", "CARDIOLOGY", "CASE_MANAGEMENT", "CHRONIC_PAIN", "CLINICAL_ELECTROPHYSIOLOGY", "CRITICAL_AND_ACUTE_CARE", "DERMATOLOGY", "DIALYSIS", "EMERGENCY_MEDICINE", "ENDOCRINOLOGY", "ERGONOMICS", "FEEDING_EATING_AND_SWALLOWING", "GASTROENTEROLOGY", "GERIATRICS", "HAND_THERAPY", "HEMATOLOGY", "HOLISTIC_MEDICINE", "INFORMATICS", "INTERNAL_MEDICINE", "LABOR_AND_DELIVERY", "MANUAL_THERAPY", "MED_SURG", "MENTAL_HEALTH", "NEPHROLOGY", "NEUROLOGY", "ONCOLOGY", "ORTHOPEDICS", "OTOLARYNGOLOGY", "PEDIATRICS", "PHYSICAL_AND_REHABILITATION_MEDICINE", "PLASTIC_SURGERY", "PRIMARY_CARE", "PSYCHIATRY", "PULMONOLOGY", "RADIOLOGY", "SENSORY", "SPORTS", "SURGERY", "TRAUMA_MEDICINE", "URGENT_CARE", "UROLOGY", "VISION", "WOMENS_HEALTH", "WOUND_AND_BURN_CARE"]);
2709
- var jobPostSchema = import_zod3.z.object({
2710
- version: import_zod3.z.literal("1.0.0").default("1.0.0"),
2711
- id: import_zod3.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed."),
2712
- type: import_zod3.z.string().describe("Document type used for schema"),
2713
- createdAt: import_zod3.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2714
- updatedAt: import_zod3.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2715
- dateAdded: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job was added to the platform"),
2716
- datePosted: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job was published for public viewing"),
2717
- dateRemoved: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job was removed from public viewing"),
2718
- validThrough: import_zod3.z.optional(import_zod3.z.string().datetime()).describe("The date the job posting is valid through. After this date it will be removed from public viewing"),
2719
- vacancyCount: import_zod3.z.optional(import_zod3.z.number().int()).describe("The number of vacancies for a given job posting"),
2720
- clientId: import_zod3.z.string().describe("The ID assigned by the client to a job - normally the same as the GH / Lever / Ashby ID or internal ID"),
2721
- url: import_zod3.z.string().describe("The URL of the job to be displayed for users to apply with. Direct job link."),
2722
- title: import_zod3.z.string().describe("The title of the job post"),
2723
- description: import_zod3.z.string().describe("The description of the job post saved as markdown. Used for rendering the job description."),
2724
- richTextDescription: import_zod3.z.optional(import_zod3.z.string()).describe("The description of the job post saved as rich text"),
2725
- isClinical: import_zod3.z.boolean().default(false).describe("Denotes if a job posting is clinical in nature or not. A role is clinical if it requires direct clinical patient care."),
2726
- isRemote: import_zod3.z.boolean().default(false).describe("Denotes if a job posting is remote in nature. For a posting to be 'remote' it must be 100% remote (e.g hybrid roles would denote this to false)."),
2727
- isVerified: import_zod3.z.boolean().default(false).describe("Denotes if a job posting has been manually verified - and thus ALL fields can be considered accurate. Can be used for DS training."),
2728
- isDirectApply: import_zod3.z.boolean().default(false).describe("Denotes if a job posting url is direct apply. To be direct apply a user must be able to apply to the role without logging in and under 2 clicks."),
2729
- jobLocationType: import_zod3.z.optional(import_zod3.z.array(JobLocationTypeEnum)),
2730
- employmentType: import_zod3.z.optional(import_zod3.z.array(EmploymentTypeEnum)),
2731
- employmentLevel: import_zod3.z.optional(EmploymentLevelEnum),
2732
- jobFunction: import_zod3.z.optional(JobFunctionEnum),
2733
- publishStatus: PublishStatusEnum2,
2734
- bestFit: import_zod3.z.optional(import_zod3.z.array(BestFitEnum)),
2735
- clinicalLicense: import_zod3.z.optional(import_zod3.z.array(ClinicalLicenseEnum)),
2736
- shift: import_zod3.z.optional(import_zod3.z.array(ShiftEnum)),
2737
- clinicalSetting: import_zod3.z.optional(import_zod3.z.array(ClinicalSettingEnum)),
2738
- clinicalSpecialty: import_zod3.z.optional(import_zod3.z.array(ClinicalSpecialtyEnum)),
2739
- estimatedSalary: import_zod3.z.optional(monetaryAmountSchema).describe("Determines the estimated salary for a given job posting"),
2740
- jobLocation: import_zod3.z.optional(postalAddressSchema).describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
2741
- applicableOffices: import_zod3.z.optional(import_zod3.z.array(officeSchema)).describe("The physical location(s) in which employees may be located for to be eligible for the job. Used in conjunction with job_location_type."),
2742
- applicantLocationRequirements: import_zod3.z.optional(import_zod3.z.array(placeSchema)).describe("The geographic location(s) in which employees may be located for to be eligible for the job. The job description must clearly state that the applicant may be located in certain geographical location(s). This property is required if applicants may be located in one or more geographic locations and the job is 100% remote."),
2743
- hiringOrganization: import_zod3.z.optional(companySchema).describe("The organization that is hiring for the role")
2744
- });
2745
-
2746
- // src/types/latest/custom/company_service_sanity.ts
2747
- var import_zod5 = require("zod");
2748
-
2749
- // src/types/latest/custom/custom_sanity_models.ts
2750
- var import_zod4 = require("zod");
2751
- var sanityReferenceSchema = import_zod4.z.object({
2752
- _ref: import_zod4.z.string(),
2753
- _type: import_zod4.z.string(),
2754
- _key: import_zod4.z.optional(import_zod4.z.string())
2755
- });
2756
- var sanitySlugSchema = import_zod4.z.object({
2757
- current: import_zod4.z.string(),
2758
- _type: import_zod4.z.string(),
2759
- _key: import_zod4.z.optional(import_zod4.z.string())
2760
- });
2761
-
2762
- // src/types/latest/custom/company_service_sanity.ts
2763
- var foundingInformationSchema2 = foundingInformationSchema.extend({
2764
- _type: import_zod5.z.string().describe("Document type used within sanity").default("companyFounding"),
2765
- founders: import_zod5.z.optional(import_zod5.z.union([import_zod5.z.array(personSchema), import_zod5.z.array(sanityReferenceSchema)])).nullable(),
2766
- founderList: import_zod5.z.optional(import_zod5.z.union([import_zod5.z.array(personSchema), import_zod5.z.array(sanityReferenceSchema)])).nullable()
2767
- }).omit({ type: true }).strict().transform((data) => ({
2768
- ...data,
2769
- type: data._type,
2770
- founders: data.founders || data.founderList || void 0
2771
- })).transform(({ _type, founderList, ...rest }) => rest);
2772
- var companyNdgSchema2 = companyNdgSchema.extend({
2773
- _type: import_zod5.z.string().describe("Document type used within sanity").default("companyNDG"),
2774
- companyNDGTake: import_zod5.z.string().nullable().describe("What is the NDG POV on this company?")
2775
- }).omit({ type: true }).strict().transform((data) => ({
2776
- ...data,
2777
- type: data._type,
2778
- companyNdgTake: data.companyNDGTake
2779
- })).transform(({ _type, companyNDGTake, ...rest }) => rest);
2780
- var ngdMetadataSchema2 = ngdMetadataSchema.extend({
2781
- _type: import_zod5.z.string().describe("Document type used within sanity").default("ndgMetadata")
2782
- }).omit({ type: true }).transform((data) => ({
2783
- ...data,
2784
- type: data._type
2785
- })).transform(({ _type, ...rest }) => rest);
2786
- var companyPhilosophySchema2 = companyPhilosophySchema.extend({
2787
- _type: import_zod5.z.string().describe("Document type used within sanity").default("companyPhilosophy")
2788
- }).omit({ type: true }).strict().transform((data) => ({
2789
- ...data,
2790
- type: data._type
2791
- })).transform(({ _type, ...rest }) => rest);
2792
- var companyCareersSchema2 = companyCareersSchema.extend({
2793
- _type: import_zod5.z.string().describe("Document type used within sanity").default("companyCareers"),
2794
- companyBenefits: import_zod5.z.optional(import_zod5.z.array(
2795
- import_zod5.z.union([companyBenefitsSchema, sanityReferenceSchema])
2796
- )).nullable().describe("What are the specific benefits of that company. The benefit is generic."),
2797
- jobBoard: import_zod5.z.union([jobBoardSchema, sanityReferenceSchema]).nullable(),
2798
- jobBoardSlug: import_zod5.z.optional(import_zod5.z.union([import_zod5.z.array(import_zod5.z.string()), import_zod5.z.array(sanitySlugSchema)]))
2799
- }).omit({ type: true }).strict().transform((data) => ({
2800
- ...data,
2801
- type: data._type
2802
- })).transform(({ _type, ...rest }) => rest);
2803
- var companySchema2 = companySchema.extend({
2804
- _id: import_zod5.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed."),
2805
- _rev: import_zod5.z.string().nullable().describe("Revision number"),
2806
- _type: import_zod5.z.string().describe("Document type used within sanity").default("company"),
2807
- _createdAt: import_zod5.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2808
- _updatedAt: import_zod5.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2809
- companyCareers: companyCareersSchema2.nullable().describe("Career Specific Information for the company."),
2810
- companyPhilosophy: companyPhilosophySchema2.nullable().describe("Company mission,values and how the company achieves its mission."),
2811
- companyNDG: companyNdgSchema2.nullable().describe("Next Degree specific information for the company."),
2812
- foundingInfo: foundingInformationSchema2.nullable(),
2813
- slug: import_zod5.z.union([import_zod5.z.string(), sanitySlugSchema]).describe("The NDG specific slug for a company."),
2814
- ndgMetadata: ngdMetadataSchema2.nullable(),
2815
- logo: import_zod5.z.union([imageSchema, import_zod5.z.record(import_zod5.z.any())]).nullable().describe("The logo of the company"),
2816
- //Deprecated Models
2817
- logoImageURL: import_zod5.z.optional(import_zod5.z.string()).describe("The logo of the company"),
2818
- industryList: import_zod5.z.optional(import_zod5.z.array(sanityReferenceSchema)).describe("The industry of the company")
2819
- }).omit({ type: true, id: true, createdAt: true, updatedAt: true }).strict().transform((data) => ({
2820
- ...data,
2821
- type: data._type,
2822
- id: data._id,
2823
- createdAt: data._createdAt,
2824
- updatedAt: data._updatedAt,
2825
- rev: data._rev
2826
- })).transform(({ _type, _id, _rev, _createdAt, _updatedAt, ...rest }) => rest);
2827
-
2828
- // src/types/latest/custom/job_posting_service_sanity.ts
2829
- var import_zod6 = require("zod");
2830
- var JobPostTypeEnum = import_zod6.z.enum(["jobPost"]);
2831
- var MonetaryAmountTypeEnum = import_zod6.z.enum(["monetaryAmount"]);
2832
- var postalAddressSchema2 = postalAddressSchema.extend({
2833
- _type: import_zod6.z.string().describe("Document type used within sanity").default("address")
2834
- }).omit({ type: true }).strict().transform((data) => ({
2835
- ...data,
2836
- type: data._type
2837
- })).transform(({ _type, ...rest }) => rest);
2838
- var quantitativeValueSchema2 = quantitativeValueSchema.extend({
2839
- _type: import_zod6.z.string().describe("Document type used within sanity").default("quantitativeValue")
2840
- }).omit({ type: true }).strict().transform((data) => ({
2841
- ...data,
2842
- type: data._type
2843
- })).transform(({ _type, ...rest }) => rest);
2844
- var monetaryAmountSchema2 = monetaryAmountSchema.extend({
2845
- _type: import_zod6.z.string().describe("Document type used within sanity").default("monetaryAmount"),
2846
- value: quantitativeValueSchema2.optional().describe("The quantitative_value for a given salary")
2847
- }).omit({ type: true }).strict().transform((data) => ({
2848
- ...data,
2849
- type: data._type
2850
- })).transform(({ _type, ...rest }) => rest);
2851
- var jobPostSchema2 = jobPostSchema.extend({
2852
- // Override base fields with Sanity-specific fields
2853
- _id: import_zod6.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed.").regex(/^ndg-.*-.*$/),
2854
- _rev: import_zod6.z.string().optional().describe("Revision number"),
2855
- _type: import_zod6.z.string().describe("Document type used within sanity").default("jobPost"),
2856
- _createdAt: import_zod6.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2857
- _updatedAt: import_zod6.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
2858
- // Override fields with new schemas
2859
- estimatedSalary: monetaryAmountSchema2.optional().describe("Determines the estimated salary for a given job posting"),
2860
- jobLocation: postalAddressSchema2.optional().describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
2861
- // Add Sanity-specific fields
2862
- ndgMetadata: import_zod6.z.record(import_zod6.z.any()).optional(),
2863
- ndgID: import_zod6.z.string().optional(),
2864
- hiringOrganization: import_zod6.z.optional(import_zod6.z.union([sanityReferenceSchema, companySchema])),
2865
- raw: import_zod6.z.record(import_zod6.z.any()).optional(),
2866
- isLoaded: import_zod6.z.boolean().default(false),
2867
- isVerified: import_zod6.z.boolean().default(false),
2868
- needsReview: import_zod6.z.boolean().default(false),
2869
- schema_version: import_zod6.z.string().optional(),
2870
- origin: import_zod6.z.string().optional(),
2871
- temp: import_zod6.z.record(import_zod6.z.any()).optional(),
2872
- applicationType: import_zod6.z.string().optional(),
2873
- // Override clientId to use Sanity naming convention
2874
- clientID: import_zod6.z.string()
2875
- }).omit({ type: true, id: true, createdAt: true, updatedAt: true, clientId: true }).transform((data) => ({
2876
- ...data,
2877
- type: data._type,
2878
- id: data._id,
2879
- createdAt: data._createdAt,
2880
- updatedAt: data._updatedAt,
2881
- rev: data._rev
2882
- })).transform(({ _type, _id, _rev, _createdAt, _updatedAt, ...rest }) => rest);
2883
-
2884
- // src/lib/salaryRange.ts
2885
- var CurrencyEnum2 = shared_pickle_output_latest_exports.CurrencyEnum;
2886
- function salaryRange(salary, showUnitText = true) {
2887
- if (!salary) return null;
2888
- let min = salary.minValue;
2889
- let max = salary.maxValue;
2890
- let single = salary.singleValue;
2891
- let value = salary.value;
2892
- let unitText = "YEAR";
2893
- const signs = {
2894
- [CurrencyEnum2.Values.USD]: "$",
2895
- [CurrencyEnum2.Values.GBP]: "\xA3",
2896
- [CurrencyEnum2.Values.EUR]: "\u20AC"
2897
- };
2898
- const sign = signs[salary.currency ?? CurrencyEnum2.Values.USD];
2899
- if (value != null && typeof value === "object") {
2900
- min = value.minValue;
2901
- max = value.maxValue;
2902
- single = value.value;
2903
- unitText = value.unitText;
2904
- }
2905
- if (unitText === "YEAR") unitText = " per year";
2906
- if (unitText === "MONTH") unitText = " per month";
2907
- if (unitText === "WEEK") unitText = " per week";
2908
- if (unitText === "DAY") unitText = " per day";
2909
- if (unitText === "PER_ACTIVITY") unitText = " per activity";
2910
- if (unitText === "HOUR") unitText = " per hour";
2911
- if (showUnitText === false) unitText = "";
2912
- const isValid = (v) => v != null && v >= 0;
2913
- if (!isValid(min) && !isValid(max) && !isValid(single)) return null;
2914
- if (isValid(single)) return sign + single.toLocaleString() + unitText;
2915
- if (min === max) return sign + min?.toLocaleString() + unitText;
2916
- if (isValid(min) && isValid(max))
2917
- return sign + min?.toLocaleString() + " - " + sign + max?.toLocaleString() + unitText;
2918
- return null;
2919
- }
2920
-
2921
- // src/components/company/CompanyBenefits.tsx
2922
- function CompanyBenefits({ benefits }) {
2923
- if (!benefits) return null;
2924
- return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits" }, /* @__PURE__ */ React.createElement("h2", { className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg" }, "Company benefits"), /* @__PURE__ */ React.createElement("ul", { className: "flex flex-col gap-3" }, benefits.map((benefit, i) => /* @__PURE__ */ React.createElement("li", { key: `${benefit}-${i}`, className: "text-base text-grey-80" }, benefit))));
2925
- }
2926
-
2927
- // src/components/company/CompanyInformation.tsx
2928
- function CompanyInformation({
2929
- name,
2930
- how,
2931
- mission,
2932
- wow,
2933
- website
2934
- }) {
2935
- return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React.createElement(
2936
- "h2",
2937
- {
2938
- "data-testid": "company-name",
2939
- className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg"
2940
- },
2941
- "About ",
2942
- name
2943
- ), how && /* @__PURE__ */ React.createElement("p", { "data-testid": "company-information", className: "text-base text-grey-80" }, how), mission && /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement("span", null, "\u{1F680}"), /* @__PURE__ */ React.createElement("p", { className: "text-base text-grey-80" }, /* @__PURE__ */ React.createElement("span", { className: "pr-1 font-bold" }, "Mission"), mission)), wow && /* @__PURE__ */ React.createElement("div", { className: "flex gap-2" }, /* @__PURE__ */ React.createElement("span", null, "\u{1F31F}"), /* @__PURE__ */ React.createElement("p", { className: "text-base text-grey-80" }, /* @__PURE__ */ React.createElement("span", { className: "pr-1 font-bold" }, "Wow Factor"), wow)), website && /* @__PURE__ */ React.createElement("div", { className: "pt-2" }, /* @__PURE__ */ React.createElement(
2944
- LinkButton,
2945
- {
2946
- "data-testid": "company-website-link",
2947
- href: website,
2948
- target: "_blank",
2949
- rel: "noopener noreferrer"
2950
- },
2951
- "Website"
2952
- )));
2953
- }
2954
-
2955
- // src/components/company/CompanyTake.tsx
2956
- function CompanyTake({ content, avatarSrc }) {
2957
- if (!content) return null;
2958
- return /* @__PURE__ */ React.createElement(
2959
- "div",
2960
- {
2961
- "data-testid": "company-take",
2962
- className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6"
2963
- },
2964
- /* @__PURE__ */ React.createElement("p", { className: "text-lg font-bold text-white sm:text-xl" }, "The Real Dill \u2618\uFE0F"),
2965
- /* @__PURE__ */ React.createElement("div", { className: "mt-2 flex items-center justify-start" }, /* @__PURE__ */ React.createElement("p", { className: "text-sm font-normal text-grey-10" }, content)),
2966
- /* @__PURE__ */ React.createElement("div", { className: "mt-8 flex w-full items-center gap-3" }, /* @__PURE__ */ React.createElement(Avatar, { name: "Jon Lee", src: avatarSrc }), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col flex-wrap items-start" }, /* @__PURE__ */ React.createElement("p", { className: "text-sm font-bold text-white" }, "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA"), /* @__PURE__ */ React.createElement("p", { className: "text-xs font-normal text-grey-30" }, "Pickle co-founder")))
2967
- );
2968
- }
2969
-
2970
- // src/components/jobPost/JobDescription.tsx
2971
- function JobDescription({ description }) {
2972
- if (!description) return null;
2973
- return /* @__PURE__ */ React.createElement("div", { className: "flex w-full flex-col gap-2" }, /* @__PURE__ */ React.createElement("h3", { className: "text-xl font-bold" }, "Job Description"), /* @__PURE__ */ React.createElement(ReadMore, { text: description }));
2974
- }
2975
-
2976
- // src/components/jobPost/JobHeader.tsx
2977
- var import_lucide_react19 = require("lucide-react");
2978
- var import_image = __toESM(require("next/image"), 1);
2979
-
2980
- // src/components/buttons/BackButton.tsx
2981
- var import_lucide_react17 = require("lucide-react");
2982
- var import_navigation2 = require("next/navigation");
2983
-
2984
- // src/hooks/useWindowHistory.ts
2985
- var import_react22 = require("react");
2986
-
2987
- // src/contexts/WindowHistoryProvider.tsx
2988
- var import_navigation = require("next/navigation");
2989
- var import_react21 = require("react");
2990
- var WindowHistoryContext = (0, import_react21.createContext)({});
2991
- function WindowHistoryProvider({ children }) {
2992
- const [history, setHistory] = (0, import_react21.useState)([]);
2993
- const searchParams = (0, import_navigation.useSearchParams)();
2994
- (0, import_react21.useEffect)(() => {
2995
- setHistory(
2996
- (prev) => prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]
2997
- );
2998
- }, [searchParams]);
2999
- const contextValue = (0, import_react21.useMemo)(() => ({ history }), [history]);
3000
- return /* @__PURE__ */ React.createElement(WindowHistoryContext.Provider, { value: contextValue }, children);
3001
- }
3002
-
3003
- // src/hooks/useWindowHistory.ts
3004
- function useWindowHistory() {
3005
- const windowHistoryContext = (0, import_react22.useContext)(WindowHistoryContext);
3006
- return windowHistoryContext;
3007
- }
3008
-
3009
- // src/components/buttons/BackButton.tsx
3010
- function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
3011
- const { history } = useWindowHistory();
3012
- const router = (0, import_navigation2.useRouter)();
3013
- const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(new URL(r).pathname));
3014
- const goBack = () => {
3015
- const previous = history[history.length - 2];
3016
- if (history.length > 1 && isAcceptedRoute(previous)) {
3017
- router.back();
3018
- } else {
3019
- router.push(fallbackHref ?? "/");
3020
- }
3021
- };
3022
- return /* @__PURE__ */ React.createElement(
3023
- Icon,
3024
- {
3025
- "aria-label": "back button",
3026
- variant: "transparent",
3027
- size: "small",
3028
- onClick: goBack,
3029
- className,
3030
- ...props
3031
- },
3032
- /* @__PURE__ */ React.createElement(import_lucide_react17.X, null)
3033
- );
3034
- }
3035
-
3036
- // src/lib/icons.ts
3037
- var import_lucide_react18 = require("lucide-react");
3038
- var iconMap = {
3039
- house: import_lucide_react18.Home,
3040
- layers: import_lucide_react18.Layers,
3041
- users: import_lucide_react18.Users,
3042
- settings: import_lucide_react18.Settings,
3043
- building: import_lucide_react18.Building,
3044
- bell: import_lucide_react18.Bell,
3045
- wallet: import_lucide_react18.Wallet,
3046
- contact: import_lucide_react18.Contact,
3047
- banknote: import_lucide_react18.Banknote,
3048
- "message-square-dot": import_lucide_react18.MessageSquareDot,
3049
- "life-buoy": import_lucide_react18.LifeBuoy,
3050
- "building-2": import_lucide_react18.Building2,
3051
- "gallery-vertical-end": import_lucide_react18.GalleryVerticalEnd,
3052
- "square-kanban": import_lucide_react18.SquareKanban,
3053
- "briefcase-business": import_lucide_react18.BriefcaseBusiness,
3054
- "circle-user": import_lucide_react18.CircleUser,
3055
- "key-round": import_lucide_react18.KeyRound,
3056
- "clock-2": import_lucide_react18.Clock2,
3057
- "circle-user-round": import_lucide_react18.CircleUserRound,
3058
- "map-pin": import_lucide_react18.MapPin
3059
- };
3060
-
3061
- // src/components/jobPost/JobHeader.tsx
3062
- function JobHeader({
3063
- title,
3064
- subtitles,
3065
- standalone,
3066
- bannerSrc,
3067
- avatarSrc,
3068
- avatarName,
3069
- avatarHref,
3070
- backFallbackHref,
3071
- backAcceptedRoutes,
3072
- actions,
3073
- tags
3074
- }) {
3075
- const renderIcon = (icon) => {
3076
- const Icon2 = iconMap[icon];
3077
- return /* @__PURE__ */ React.createElement(Icon2, { size: 18 });
3078
- };
3079
- return /* @__PURE__ */ React.createElement(
3080
- "div",
3081
- {
3082
- "data-testid": "job-header-root",
3083
- className: cn(
3084
- "-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0",
3085
- !standalone && "rounded-3xl"
3086
- )
3087
- },
3088
- !standalone && /* @__PURE__ */ React.createElement("div", { className: "relative flex min-h-16 w-full items-center rounded-t-3xl bg-transparent md:min-h-24 md:flex-row lg:min-h-32" }, /* @__PURE__ */ React.createElement(
3089
- import_image.default,
3090
- {
3091
- className: "h-full w-full rounded-t-3xl object-cover",
3092
- src: bannerSrc,
3093
- alt: "job banner",
3094
- fill: true
3095
- }
3096
- ), /* @__PURE__ */ React.createElement(
3097
- BackButton,
3098
- {
3099
- acceptedRoutes: backAcceptedRoutes,
3100
- fallbackHref: backFallbackHref,
3101
- className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
3102
- "data-testid": "job-header-back-button"
3103
- }
3104
- ), /* @__PURE__ */ React.createElement(
3105
- "div",
3106
- {
3107
- className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
3108
- "data-testid": "job-header-avatar"
3109
- },
3110
- /* @__PURE__ */ React.createElement(
3111
- Avatar,
3112
- {
3113
- size: "large",
3114
- target: "_blank",
3115
- href: avatarHref,
3116
- name: avatarName,
3117
- src: avatarSrc,
3118
- rel: "noopener noreferrer"
3119
- }
3120
- )
3121
- )),
3122
- /* @__PURE__ */ React.createElement("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col md:flex-row" }, standalone && /* @__PURE__ */ React.createElement("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar" }, /* @__PURE__ */ React.createElement(
3123
- Avatar,
3124
- {
3125
- size: "large",
3126
- target: "_blank",
3127
- href: avatarHref,
3128
- name: avatarName,
3129
- src: avatarSrc,
3130
- rel: "noopener noreferrer"
3131
- }
3132
- )), /* @__PURE__ */ React.createElement("div", { className: "prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg" }, subtitles?.map((subtitle, i) => /* @__PURE__ */ React.createElement(
3133
- "div",
3134
- {
3135
- key: subtitle,
3136
- "data-testid": `job-header-subtitle-${i}`,
3137
- className: "flex items-center"
3138
- },
3139
- subtitle,
3140
- i < subtitles.length - 1 && /* @__PURE__ */ React.createElement(import_lucide_react19.Dot, { className: "mx-1 shrink-0", size: 10 })
3141
- )))), /* @__PURE__ */ React.createElement(
3142
- "div",
3143
- {
3144
- "data-testid": "job-header-content",
3145
- className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1"
3146
- },
3147
- /* @__PURE__ */ React.createElement(
3148
- "h2",
3149
- {
3150
- "data-testid": "job-header-title",
3151
- className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg"
3152
- },
3153
- title
3154
- ),
3155
- !!actions && /* @__PURE__ */ React.createElement(
3156
- "div",
3157
- {
3158
- className: "flex w-full justify-end gap-2 md:w-auto",
3159
- "data-testid": "job-header-actions"
3160
- },
3161
- actions
3162
- )
3163
- ), /* @__PURE__ */ React.createElement(
3164
- "div",
3165
- {
3166
- "data-testid": "job-header-tags",
3167
- className: "flex flex-row flex-wrap items-center justify-start gap-2"
3168
- },
3169
- tags?.map(({ name, label, icon }) => /* @__PURE__ */ React.createElement(
3170
- Chip_default,
3171
- {
3172
- key: `${name}-${label}`,
3173
- size: "small",
3174
- variant: "neutral",
3175
- "aria-label": name,
3176
- "data-testid": `job-header-tag-${name}`
3177
- },
3178
- renderIcon(icon),
3179
- /* @__PURE__ */ React.createElement("span", null, label)
3180
- ))
3181
- ))
3182
- );
3183
- }
3184
-
3185
- // src/components/jobPost/JobPost.tsx
3186
- var DateFns = __toESM(require("date-fns"), 1);
3187
-
3188
- // src/hooks/useDisplayText.ts
3189
- var import_react23 = require("react");
3190
-
3191
- // src/lib/mappings.ts
3192
- var employmentTypeDisplayText = {
3193
- FULL_TIME: {
3194
- en: "Full Time"
3195
- },
3196
- INTERNSHIP: {
3197
- en: "Internship"
3198
- },
3199
- OTHER: {
3200
- en: "Other"
3201
- },
3202
- PART_TIME: {
3203
- en: "Part Time"
3204
- },
3205
- PER_DIEM: {
3206
- en: "Per-Diem"
3207
- },
3208
- TEMPORARY: {
3209
- en: "Temporary"
3210
- },
3211
- CONTRACT: {
3212
- en: "Contract"
3213
- }
3214
- };
3215
- var unitTextDisplayText = {
3216
- DAY: {
3217
- en: "Day"
3218
- },
3219
- HOUR: {
3220
- en: "Hour"
3221
- },
3222
- MONTH: {
3223
- en: "Month"
3224
- },
3225
- PER_ACTIVITY: {
3226
- en: "Per Activity"
3227
- },
3228
- WEEK: {
3229
- en: "Week"
3230
- },
3231
- YEAR: {
3232
- en: "Year"
3233
- }
3234
- };
3235
- var currencyDisplayText = {
3236
- EUR: {
3237
- en: "\u20AC"
3238
- },
3239
- GBP: {
3240
- en: "\xA3"
3241
- },
3242
- USD: {
3243
- en: "$"
3244
- }
3245
- };
3246
- var employmentLevelDisplayText = {
3247
- DIRECTOR: {
3248
- en: "Director"
3249
- },
3250
- ENTRY_LEVEL: {
3251
- en: "Entry Level"
3252
- },
3253
- EXECUTIVE: {
3254
- en: "Executive"
3255
- },
3256
- EXPERIENCED: {
3257
- en: "Experienced"
3258
- },
3259
- INTERN: {
3260
- en: "Intern"
3261
- },
3262
- MANAGER: {
3263
- en: "Manager"
3264
- }
3265
- };
3266
- var jobFunctionDisplayText = {
3267
- CLINICAL_RESEARCH: {
3268
- en: "Clinical Research"
3269
- },
3270
- CUSTOMER_SUCCESS: {
3271
- en: "Customer Success"
3272
- },
3273
- DATA_ANALYTICS: {
3274
- en: "Data Analytics"
3275
- },
3276
- FINANCE_AND_AUDIT: {
3277
- en: "Finance and Audit"
3278
- },
3279
- MARKETING: {
3280
- en: "Marketing"
3281
- },
3282
- OPERATIONS: {
3283
- en: "Operations"
3284
- },
3285
- PEOPLE_HUMAN_RESOURCES: {
3286
- en: "People Human Resources"
3287
- },
3288
- PRODUCT_AND_TECH: {
3289
- en: "Product and Tech"
3290
- },
3291
- QUALITY_ASSURANCE_AND_OUTCOMES: {
3292
- en: "Quality Assurance and Outcomes"
3293
- },
3294
- SALES_AND_BUSINESS_DEVELOPMENT: {
3295
- en: "Sales and Business Development"
3296
- },
3297
- STRATEGY_AND_CONSULTING: {
3298
- en: "Strategy and Consulting"
3299
- }
3300
- };
3301
- var bestFitDisplayText = {
3302
- DENTIST: {
3303
- en: "Dentist"
3304
- },
3305
- DIETICIAN: {
3306
- en: "Dietician"
3307
- },
3308
- DOULA: {
3309
- en: "Doula"
3310
- },
3311
- MEDICAL_ASSISTANT: {
3312
- en: "Medical Assistant"
3313
- },
3314
- MIDWIFE: {
3315
- en: "Midwife"
3316
- },
3317
- NURSE: {
3318
- en: "Nurse"
3319
- },
3320
- OCCUPATIONAL_THERAPIST: {
3321
- en: "Occupational Therapist"
3322
- },
3323
- PHARMACIST: {
3324
- en: "Pharmacist"
3325
- },
3326
- PHYSICAL_THERAPIST: {
3327
- en: "Physical Therapist"
3328
- },
3329
- PHYSICIAN: {
3330
- en: "Physician"
3331
- },
3332
- PHYSICIAN_ASSISTANT: {
3333
- en: "Physician Assistant"
3334
- },
3335
- PSYCHOLOGIST: {
3336
- en: "Psychologist"
3337
- },
3338
- RADIOLOGIST: {
3339
- en: "Radiologist"
3340
- },
3341
- SOCIAL_WORKER: {
3342
- en: "Social Worker"
3343
- },
3344
- SPEECH_LANGUAGE_PATHOLOGIST: {
3345
- en: "Speech Language Pathologist"
3346
- },
3347
- SURGEON: {
3348
- en: "Surgeon"
3349
- }
3350
- };
3351
- var clinicalSpecialtyDisplayText = {
3352
- ANESTHESIOLOGY: {
3353
- en: "Anesthesiology"
3354
- },
3355
- CARDIOLOGY: {
3356
- en: "Cardiology"
3357
- },
3358
- CARDIOVASCULAR_AND_PULMONARY: {
3359
- en: "Cardiovascular and Pulmonary"
3360
- },
3361
- CASE_MANAGEMENT: {
3362
- en: "Case Management"
3363
- },
3364
- CHRONIC_PAIN: {
3365
- en: "Chronic Pain"
3366
- },
3367
- CLINICAL_ELECTROPHYSIOLOGY: {
3368
- en: "Clinical Electrophysiology"
3369
- },
3370
- CRITICAL_AND_ACUTE_CARE: {
3371
- en: "Critical and Acute Care"
3372
- },
3373
- DERMATOLOGY: {
3374
- en: "Dermatology"
3375
- },
3376
- DIALYSIS: {
3377
- en: "Dialysis"
3378
- },
3379
- EMERGENCY_MEDICINE: {
3380
- en: "Emergency Medicine"
3381
- },
3382
- ENDOCRINOLOGY: {
3383
- en: "Endocrinology"
3384
- },
3385
- ERGONOMICS: {
3386
- en: "Ergonomics"
3387
- },
3388
- FEEDING_EATING_AND_SWALLOWING: {
3389
- en: "Feeding, Eating, and Swallowing"
3390
- },
3391
- GASTROENTEROLOGY: {
3392
- en: "Gastroenterology"
3393
- },
3394
- GERIATRICS: {
3395
- en: "Geriatrics"
3396
- },
3397
- HAND_THERAPY: {
3398
- en: "Hand Therapy"
3399
- },
3400
- HEMATOLOGY: {
3401
- en: "Hematology"
3402
- },
3403
- HOLISTIC_MEDICINE: {
3404
- en: "Holistic Medicine"
3405
- },
3406
- INFORMATICS: {
3407
- en: "Informatics"
3408
- },
3409
- INTERNAL_MEDICINE: {
3410
- en: "Internal Medicine"
3411
- },
3412
- LABOR_AND_DELIVERY: {
3413
- en: "Labor and Delivery"
3414
- },
3415
- MANUAL_THERAPY: {
3416
- en: "Manual Therapy"
3417
- },
3418
- MED_SURG: {
3419
- en: "Medical-Surgical"
3420
- },
3421
- MENTAL_HEALTH: {
3422
- en: "Mental Health"
3423
- },
3424
- NEPHROLOGY: {
3425
- en: "Nephrology"
3426
- },
3427
- NEUROLOGY: {
3428
- en: "Neurology"
3429
- },
3430
- ONCOLOGY: {
3431
- en: "Oncology"
3432
- },
3433
- ORTHOPEDICS: {
3434
- en: "Orthopedics"
3435
- },
3436
- OTOLARYNGOLOGY: {
3437
- en: "Otolaryngology"
3438
- },
3439
- PEDIATRICS: {
3440
- en: "Pediatrics"
3441
- },
3442
- PHYSICAL_AND_REHABILITATION_MEDICINE: {
3443
- en: "Physical and Rehabilitation Medicine"
3444
- },
3445
- PLASTIC_SURGERY: {
3446
- en: "Plastic Surgery"
3447
- },
3448
- PRIMARY_CARE: {
3449
- en: "Primary Care"
3450
- },
3451
- PSYCHIATRY: {
3452
- en: "Psychiatry"
3453
- },
3454
- PULMONOLOGY: {
3455
- en: "Pulmonology"
3456
- },
3457
- RADIOLOGY: {
3458
- en: "Radiology"
3459
- },
3460
- SENSORY: {
3461
- en: "Sensory"
3462
- },
3463
- SPORTS: {
3464
- en: "Sports"
3465
- },
3466
- SURGERY: {
3467
- en: "Surgery"
3468
- },
3469
- TRANSPLANT_SURGERY: {
3470
- en: "Transplant Surgery"
3471
- },
3472
- TRAUMA_MEDICINE: {
3473
- en: "Trauma Medicine"
3474
- },
3475
- URGENT_CARE: {
3476
- en: "Urgent Care"
3477
- },
3478
- UROLOGY: {
3479
- en: "Urology"
3480
- },
3481
- VISION: {
3482
- en: "Vision"
3483
- },
3484
- WOMENS_HEALTH: {
3485
- en: "Women's Health"
3486
- },
3487
- WOUND_AND_BURN_CARE: {
3488
- en: "Wound and Burn Care"
3489
- },
3490
- WOUND_MANAGEMENT: {
3491
- en: "Wound Management"
3492
- }
3493
- };
3494
- var shiftDisplayText = {
3495
- TEN_HOUR: {
3496
- en: "10 Hour"
3497
- },
3498
- TWELVE_HOUR: {
3499
- en: "12 Hour"
3500
- },
3501
- EIGHT_HOUR: {
3502
- en: "8 Hour"
3503
- },
3504
- DAY: {
3505
- en: "Day"
3506
- },
3507
- EVENING: {
3508
- en: "Evening"
3509
- },
3510
- FLEXIBLE: {
3511
- en: "Flexible"
3512
- },
3513
- MID_SHIFT: {
3514
- en: "Mid Shift"
3515
- },
3516
- MONDAY_TO_FRIDAY: {
3517
- en: "Monday to Friday"
3518
- },
3519
- NIGHT: {
3520
- en: "Night"
3521
- },
3522
- ON_CALL: {
3523
- en: "On Call"
3524
- },
3525
- WEEKENDS: {
3526
- en: "Weekends"
3527
- }
3528
- };
3529
- var clinicalSettingDisplayText = {
3530
- ACUTE_CARE: {
3531
- en: "Acute Care"
3532
- },
3533
- AMBULATORY_SURGERY_CENTER: {
3534
- en: "Ambulatory Surgery Center"
3535
- },
3536
- CLINIC: {
3537
- en: "Clinic"
3538
- },
3539
- HOME_HEALTH: {
3540
- en: "Home Health"
3541
- },
3542
- HOSPITAL: {
3543
- en: "Hospital"
3544
- },
3545
- INPATIENT: {
3546
- en: "Inpatient"
3547
- },
3548
- LONG_TERM_CARE: {
3549
- en: "Long Term Care"
3550
- },
3551
- MED_SPA: {
3552
- en: "Med Spa"
3553
- },
3554
- NURSING_HOME: {
3555
- en: "Nursing Home"
3556
- },
3557
- OFFICE: {
3558
- en: "Office"
3559
- },
3560
- OUTPATIENT: {
3561
- en: "Outpatient"
3562
- },
3563
- PRIVATE_PRACTICE: {
3564
- en: "Private Practice"
3565
- },
3566
- REHAB_CENTER: {
3567
- en: "Rehab Center"
3568
- },
3569
- SCHOOL: {
3570
- en: "School"
3571
- },
3572
- SKILLED_NURSING_FACILITY: {
3573
- en: "Skilled Nursing Facility"
3574
- }
3575
- };
3576
- var defaultMappings = {
3577
- employmentType: employmentTypeDisplayText,
3578
- unitText: unitTextDisplayText,
3579
- currency: currencyDisplayText,
3580
- employmentLevel: employmentLevelDisplayText,
3581
- jobFunction: jobFunctionDisplayText,
3582
- bestFit: bestFitDisplayText,
3583
- clinicalSpecialty: clinicalSpecialtyDisplayText,
3584
- clinicalSetting: clinicalSettingDisplayText,
3585
- shift: shiftDisplayText
3586
- };
3587
-
3588
- // src/types/displayText.errors.tsx
3589
- var DisplayTextScopeNotFoundError = class extends Error {
3590
- constructor(scope) {
3591
- super(`No display text mapping found for scope: ${scope}`);
3592
- this.name = "DisplayTextScopeNotFoundError";
3593
- }
3594
- };
3595
- var DisplayTextValueNotFoundError = class extends Error {
3596
- constructor(value, scope) {
3597
- super(`No display text found for value: '${value}' in scope: '${scope}'`);
3598
- this.name = "DisplayTextValueNotFoundError";
3599
- }
3600
- };
3601
-
3602
- // src/services/displayText.tsx
3603
- var DisplayTextService = class {
3604
- constructor(customMappings) {
3605
- this.defaultLanguage = "en";
3606
- this.mappings = {
3607
- ...defaultMappings,
3608
- // Use all pre-defined mappings as defaults
3609
- ...customMappings
3610
- // Override with any custom mappings if provided
3611
- };
3612
- }
3613
- async getDisplayText(scope, value, language = this.defaultLanguage) {
3614
- const scopeMapping = this.mappings[scope];
3615
- if (!scopeMapping) {
3616
- throw new DisplayTextScopeNotFoundError(scope);
3617
- }
3618
- if (Array.isArray(value)) {
3619
- const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language));
3620
- const displayTexts2 = await Promise.all(displayTextPromises);
3621
- return displayTexts2.filter((v) => !!v).join(", ");
3622
- }
3623
- const displayTexts = scopeMapping[value];
3624
- if (!displayTexts) {
3625
- throw new DisplayTextValueNotFoundError(value, scope);
3626
- }
3627
- return displayTexts[language] || displayTexts[this.defaultLanguage] || value;
3628
- }
3629
- };
3630
-
3631
- // src/hooks/useDisplayText.ts
3632
- var useDisplayText = (scope, value) => {
3633
- const [displayText, setDisplayText] = (0, import_react23.useState)("");
3634
- const displayService = (0, import_react23.useMemo)(() => new DisplayTextService(), []);
3635
- (0, import_react23.useEffect)(() => {
3636
- if (!displayService || !value) {
3637
- setDisplayText("");
3638
- return;
3639
- }
3640
- void (async () => {
3641
- try {
3642
- const result = await displayService.getDisplayText(scope, value);
3643
- if (typeof result === "string") {
3644
- setDisplayText(result);
3645
- } else {
3646
- console.error("Expected a string result, but got:", result);
3647
- }
3648
- } catch (error) {
3649
- if (error instanceof DisplayTextValueNotFoundError) {
3650
- console.warn("Display text value not found:", value);
3651
- setDisplayText(String(value));
3652
- } else {
3653
- console.error("Unexpected error formatting text:", error);
3654
- setDisplayText(String(value));
3655
- }
3656
- }
3657
- })();
3658
- }, [scope, value, displayService]);
3659
- return displayText;
3660
- };
3661
-
3662
- // src/lib/locations.ts
3663
- function formattedAddress(address, isRemote = false) {
3664
- if (!address) return null;
3665
- const { addressLocality, addressRegion, addressCountry } = address;
3666
- const remoteMessage = isRemote ? " | Remote" : "";
3667
- if (addressLocality && addressRegion)
3668
- return `${addressLocality}, ${addressRegion + remoteMessage}`;
3669
- if (addressRegion && addressCountry) return `${addressRegion}, ${addressCountry + remoteMessage}`;
3670
- if (addressRegion) return `${addressRegion + remoteMessage}`;
3671
- if (addressCountry) return `${addressCountry + remoteMessage}`;
3672
- return null;
3673
- }
3674
- function getAddressList(jobPost) {
3675
- const locations = [];
3676
- if (jobPost.jobLocation) {
3677
- const address = formattedAddress(jobPost.jobLocation, jobPost.isRemote);
3678
- if (address) locations.push(address);
3679
- }
3680
- if (jobPost.applicableOffices && jobPost.applicableOffices.length > 0) {
3681
- jobPost.applicableOffices.map((office) => {
3682
- const address = formattedAddress(office?.geoLocation?.address, jobPost.isRemote);
3683
- if (address && !locations.includes(address)) locations.push(address);
3684
- });
3685
- }
3686
- if (jobPost.applicantLocationRequirements && jobPost.applicantLocationRequirements.length > 0) {
3687
- jobPost.applicantLocationRequirements.map((place) => {
3688
- const address = formattedAddress(place?.address, jobPost.isRemote);
3689
- if (address && !locations.includes(address)) locations.push(address);
3690
- });
3691
- }
3692
- return locations;
3693
- }
3694
-
3695
- // src/components/jobPost/JobPost.tsx
3696
- function JobPost({
3697
- job,
3698
- bannerSrc,
3699
- avatarSrc,
3700
- standalone,
3701
- avatarHref,
3702
- fallbackHref,
3703
- backAcceptedRoutes,
3704
- actions
3705
- }) {
3706
- const formattedEmploymentType = useDisplayText("employmentType", job.employmentType);
3707
- const formattedEmploymentLevel = useDisplayText("employmentLevel", job.employmentLevel);
3708
- const formattedJobFunction = useDisplayText("jobFunction", job.jobFunction);
3709
- const formattedLocations = getAddressList(job);
3710
- const formattedSalary = salaryRange(job.estimatedSalary);
3711
- const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted), {
3712
- addSuffix: true
3713
- });
3714
- const tags = [
3715
- !!formattedSalary && {
3716
- icon: "banknote",
3717
- name: "salary",
3718
- label: formattedSalary
3719
- },
3720
- !!formattedEmploymentType && {
3721
- icon: "briefcase-business",
3722
- name: "employmentType",
3723
- label: formattedEmploymentType
3724
- },
3725
- !!formattedEmploymentLevel && {
3726
- icon: "circle-user",
3727
- name: "level",
3728
- label: formattedEmploymentLevel
3729
- },
3730
- !!formattedJobFunction && {
3731
- icon: "briefcase-business",
3732
- name: "jobFunction",
3733
- label: formattedJobFunction
3734
- },
3735
- ...formattedLocations.map((label) => ({
3736
- icon: "map-pin",
3737
- name: "location",
3738
- label
3739
- }))
3740
- ].filter((t) => !!t);
3741
- return /* @__PURE__ */ React.createElement(
3742
- "div",
3743
- {
3744
- className: cn(
3745
- "flex flex-col gap-10 pb-4",
3746
- !standalone && "border-1 rounded-3xl border-grey-5"
3747
- )
3748
- },
3749
- /* @__PURE__ */ React.createElement(
3750
- JobHeader,
3751
- {
3752
- title: job.title,
3753
- bannerSrc,
3754
- avatarName: job.hiringOrganization?.companyName,
3755
- avatarSrc: job.hiringOrganization?.logo?.asset?.url,
3756
- subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
3757
- actions,
3758
- standalone,
3759
- avatarHref,
3760
- backFallbackHref: fallbackHref,
3761
- backAcceptedRoutes,
3762
- tags
3763
- }
3764
- ),
3765
- /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-8 px-6" }, /* @__PURE__ */ React.createElement(JobDescription, { description: job.description }), /* @__PURE__ */ React.createElement(
3766
- CompanyTake,
3767
- {
3768
- avatarSrc,
3769
- content: job.hiringOrganization?.companyNDG?.companyNDGTake
3770
- }
3771
- ), /* @__PURE__ */ React.createElement(
3772
- CompanyInformation,
3773
- {
3774
- name: job.hiringOrganization?.companyName ?? "",
3775
- how: job.hiringOrganization?.companyPhilosophy?.companyHow,
3776
- mission: job.hiringOrganization?.companyPhilosophy?.companyMission,
3777
- wow: job.hiringOrganization?.companyNDG?.companyWow,
3778
- website: job.hiringOrganization?.companyWebsite
3779
- }
3780
- ), /* @__PURE__ */ React.createElement(
3781
- CompanyBenefits,
3782
- {
3783
- benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.title).filter((d) => d !== void 0)
3784
- }
3785
- ))
3786
- );
3787
- }
3788
-
3789
- // src/components/jobCard/JobLocation.tsx
3790
- var import_lucide_react20 = require("lucide-react");
3791
- function JobLocation({ jobPost }) {
3792
- const locations = getAddressList(jobPost);
3793
- if (!locations || locations.length === 0) return null;
3794
- const primaryOffice = locations[0];
3795
- const extendedLocations = locations.slice(1).map((address) => address);
3796
- return /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2", "data-testid": "job-location-element" }, /* @__PURE__ */ React.createElement(import_lucide_react20.MapPin, { size: 16 }), /* @__PURE__ */ React.createElement("span", { className: "text-sm font-thin" }, primaryOffice), extendedLocations.length > 0 && /* @__PURE__ */ React.createElement(TooltipProvider, null, /* @__PURE__ */ React.createElement(Tooltip, null, /* @__PURE__ */ React.createElement(TooltipTrigger, null, /* @__PURE__ */ React.createElement(
3797
- Chip_default,
3798
- {
3799
- className: "font-bold",
3800
- size: "small",
3801
- variant: "jobLocation",
3802
- "data-testid": "job-location-tooltip"
3803
- },
3804
- "+ ",
3805
- extendedLocations.length,
3806
- " more"
3807
- )), /* @__PURE__ */ React.createElement(
3808
- TooltipContent,
3809
- {
3810
- className: "border-1 rounded-md border border-grey-5 bg-white p-2",
3811
- "data-testid": "job-location-tooltip-content"
3812
- },
3813
- extendedLocations.map((location) => /* @__PURE__ */ React.createElement("div", { key: location, className: "text-nowrap text-sm" }, location))
3814
- ))));
3815
- }
3816
-
3817
- // src/types/data/company_service_latest.ts
3818
- var company_service_latest_exports2 = {};
3819
- __export(company_service_latest_exports2, {
3820
- CategoryEnum: () => CategoryEnum2,
3821
- OfficeTypeEnum: () => OfficeTypeEnum2,
3822
- PublishStatusEnum: () => PublishStatusEnum3,
3823
- TitleEnum: () => TitleEnum2,
3824
- TypeEnum: () => TypeEnum5,
3825
- companyBenefitsSchema: () => companyBenefitsSchema2,
3826
- companyCareersSchema: () => companyCareersSchema3,
3827
- companyNdgSchema: () => companyNdgSchema3,
3828
- companyPhilosophySchema: () => companyPhilosophySchema3,
3829
- companySchema: () => companySchema3,
3830
- foundingInformationSchema: () => foundingInformationSchema3,
3831
- industrySchema: () => industrySchema2,
3832
- jobBoardSchema: () => jobBoardSchema2,
3833
- ngdMetadataSchema: () => ngdMetadataSchema3,
3834
- officeSchema: () => officeSchema2,
3835
- personSchema: () => personSchema2,
3836
- socialMediaSchema: () => socialMediaSchema2
3837
- });
3838
- var import_zod8 = require("zod");
3839
-
3840
- // src/types/data/shared_pickle_output_latest.ts
3841
- var shared_pickle_output_latest_exports2 = {};
3842
- __export(shared_pickle_output_latest_exports2, {
3843
- CurrencyEnum: () => CurrencyEnum3,
3844
- DetailLevelEnum: () => DetailLevelEnum2,
3845
- TypeEnum: () => TypeEnum4,
3846
- UnitTextEnum: () => UnitTextEnum2,
3847
- imageAssetSchema: () => imageAssetSchema2,
3848
- imageSchema: () => imageSchema2,
3849
- monetaryAmountSchema: () => monetaryAmountSchema3,
3850
- placeSchema: () => placeSchema2,
3851
- postalAddressSchema: () => postalAddressSchema3,
3852
- quantitativeValueSchema: () => quantitativeValueSchema3
3853
- });
3854
- var import_zod7 = require("zod");
3855
- var TypeEnum4 = import_zod7.z.enum(["IMAGE"]);
3856
- var DetailLevelEnum2 = import_zod7.z.enum(["COUNTRY", "GEO", "LOCALITY", "POSTAL_CODE", "REGION"]);
3857
- var UnitTextEnum2 = import_zod7.z.enum(["DAY", "HOUR", "MONTH", "PER_ACTIVITY", "WEEK", "YEAR"]);
3858
- var CurrencyEnum3 = import_zod7.z.enum(["EUR", "GBP", "USD"]);
3859
- var postalAddressSchema3 = import_zod7.z.object({
3860
- version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3861
- type: import_zod7.z.string().describe("Document type used for schema"),
3862
- addressCountry: import_zod7.z.string().describe("The physical country as defined in ISO 3166 Alpha-2"),
3863
- addressRegion: import_zod7.z.optional(import_zod7.z.string()).describe("The region in which the locality is, and which is in the country."),
3864
- addressLocality: import_zod7.z.optional(import_zod7.z.string()).describe("The locality in which the street address is, and which is in the region. In the US this would be city."),
3865
- streetAddress: import_zod7.z.optional(import_zod7.z.string()).describe("The street name of the address within the locality."),
3866
- streetNumber: import_zod7.z.optional(import_zod7.z.string()).describe("The house of building number within the street."),
3867
- postalCode: import_zod7.z.optional(import_zod7.z.string()).describe("The postal code"),
3868
- description: import_zod7.z.optional(import_zod7.z.string()).describe("A descriptive string containing the full address.")
3869
- });
3870
- var placeSchema2 = import_zod7.z.object({
3871
- version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3872
- detailLevel: import_zod7.z.optional(DetailLevelEnum2),
3873
- latitude: import_zod7.z.optional(import_zod7.z.number()).describe("The latitude of a location."),
3874
- longitude: import_zod7.z.optional(import_zod7.z.number()).describe("The longitude of a location."),
3875
- address: import_zod7.z.optional(postalAddressSchema3).describe("The physical place of the location")
3876
- });
3877
- var quantitativeValueSchema3 = import_zod7.z.object({
3878
- version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3879
- type: import_zod7.z.string().describe("Document type used for schema"),
3880
- value: import_zod7.z.optional(import_zod7.z.number()).describe("The single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Typically used for a single salary."),
3881
- minValue: import_zod7.z.optional(import_zod7.z.number()).describe("The single minium value in a range for a quantitative_value, requires a maximum value."),
3882
- maxValue: import_zod7.z.optional(import_zod7.z.number()).describe("The maximum value in a range for a quantitative_value, requires a minimum value."),
3883
- unitText: UnitTextEnum2
3884
- });
3885
- var monetaryAmountSchema3 = import_zod7.z.object({
3886
- version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3887
- type: import_zod7.z.string().describe("Document type used for schema"),
3888
- singleValue: import_zod7.z.optional(import_zod7.z.number()).describe("The annualized single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Deprecated - use value.value instead."),
3889
- minValue: import_zod7.z.optional(import_zod7.z.number()).describe("The annualized single minium value in a range for a quantitative_value. Deprecated use value.minValue"),
3890
- maxValue: import_zod7.z.optional(import_zod7.z.number()).describe("The annualized maximum value in a range for a quantitative_value. Deprecated use value.maxValue"),
3891
- value: import_zod7.z.optional(quantitativeValueSchema3).describe("The quantitative_value for a given salary"),
3892
- currency: import_zod7.z.optional(CurrencyEnum3)
3893
- });
3894
- var imageAssetSchema2 = import_zod7.z.object({
3895
- version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3896
- altText: import_zod7.z.optional(import_zod7.z.string()).describe("The alt text for the image"),
3897
- assetId: import_zod7.z.optional(import_zod7.z.string()).describe("The asset ID for the image"),
3898
- description: import_zod7.z.optional(import_zod7.z.string()).describe("The description for the image"),
3899
- extension: import_zod7.z.optional(import_zod7.z.string()).describe("The extension for the image"),
3900
- label: import_zod7.z.optional(import_zod7.z.string()).describe("The label for the image"),
3901
- mimeType: import_zod7.z.optional(import_zod7.z.string()).describe("The mime type for the image"),
3902
- originalFilename: import_zod7.z.optional(import_zod7.z.string()).describe("The original filename for the image"),
3903
- path: import_zod7.z.optional(import_zod7.z.string()).describe("The path for the image"),
3904
- sha1Hash: import_zod7.z.optional(import_zod7.z.string()).describe("The SHA1 hash for the image"),
3905
- size: import_zod7.z.optional(import_zod7.z.number()).describe("The size for the image"),
3906
- title: import_zod7.z.optional(import_zod7.z.string()).describe("The title for the image"),
3907
- uploadId: import_zod7.z.optional(import_zod7.z.string()).describe("The upload ID for the image"),
3908
- url: import_zod7.z.optional(import_zod7.z.string()).describe("The URL for the image")
3909
- });
3910
- var imageSchema2 = import_zod7.z.object({
3911
- version: import_zod7.z.literal("1.0.0").default("1.0.0"),
3912
- type: import_zod7.z.string().describe("Document type used for schema"),
3913
- asset: import_zod7.z.optional(imageAssetSchema2).describe("The asset for the image")
3914
- });
3915
-
3916
- // src/types/data/company_service_latest.ts
3917
- var TypeEnum5 = import_zod8.z.enum(["OFFICE"]);
3918
- var CategoryEnum2 = import_zod8.z.enum(["FINANCIAL", "HEALTH", "PROFESSIONAL_DEVELOPMENT", "WORK_LIFE_BALANCE"]);
3919
- var TitleEnum2 = import_zod8.z.enum(["DMD", "JD", "MBA", "MD", "MHA", "MPH", "PT", "PH_D", "RN"]);
3920
- var PublishStatusEnum3 = import_zod8.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
3921
- var OfficeTypeEnum2 = import_zod8.z.enum(["BRANCH", "HEADQUARTERS", "SATELLITE"]);
3922
- var socialMediaSchema2 = import_zod8.z.object({
3923
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3924
- url: import_zod8.z.string().describe("The link to the social media platform"),
3925
- type: import_zod8.z.string().describe("The type of social media link")
3926
- });
3927
- var companyBenefitsSchema2 = import_zod8.z.object({
3928
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3929
- type: import_zod8.z.string().describe("Document type used for schema"),
3930
- title: import_zod8.z.string(),
3931
- description: import_zod8.z.optional(import_zod8.z.string()),
3932
- category: CategoryEnum2
3933
- });
3934
- var industrySchema2 = import_zod8.z.lazy(() => import_zod8.z.object({
3935
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3936
- type: import_zod8.z.string().describe("Document type used for schema"),
3937
- name: import_zod8.z.string(),
3938
- description: import_zod8.z.optional(import_zod8.z.string()).describe("A brief description of the industry"),
3939
- onetIndustryId: import_zod8.z.optional(import_zod8.z.string()).describe("ONET industry ID"),
3940
- parent: import_zod8.z.optional(industrySchema2)
3941
- }));
3942
- var jobBoardSchema2 = import_zod8.z.object({
3943
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3944
- type: import_zod8.z.string().describe("Document type used for schema"),
3945
- name: import_zod8.z.string().describe("The name of the job board"),
3946
- description: import_zod8.z.string().describe("A brief description of the job board"),
3947
- logo: import_zod8.z.optional(imageSchema2).describe("The logo of the job board"),
3948
- baseUrl: import_zod8.z.optional(import_zod8.z.string()).describe("The base URL of the job board")
3949
- });
3950
- var personSchema2 = import_zod8.z.object({
3951
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3952
- type: import_zod8.z.string().describe("Document type used for schema"),
3953
- firstName: import_zod8.z.string().describe("The first name of the person"),
3954
- lastName: import_zod8.z.string().describe("The last name of the person"),
3955
- title: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())).describe("The titles of the degree of the person"),
3956
- slug: import_zod8.z.string().describe("person slug - should be familyname-givenname-title(s)"),
3957
- jobTitle: import_zod8.z.optional(import_zod8.z.string()).describe("The job title of the person"),
3958
- isDoctor: import_zod8.z.optional(import_zod8.z.boolean()).describe("Is the person a doctor"),
3959
- isMedical: import_zod8.z.optional(import_zod8.z.boolean()).describe("Are they of a medical background?"),
3960
- isScientist: import_zod8.z.optional(import_zod8.z.boolean()).describe("Are they a scientist?"),
3961
- image: import_zod8.z.optional(imageSchema2).describe("The image of the person"),
3962
- email: import_zod8.z.optional(import_zod8.z.string()).describe("The email of the person"),
3963
- socialMedia: import_zod8.z.optional(import_zod8.z.array(socialMediaSchema2)).describe("The social media links of the person"),
3964
- telephone: import_zod8.z.optional(import_zod8.z.string()).describe("The telephone number of the person"),
3965
- url: import_zod8.z.optional(import_zod8.z.string()).describe("The URL of the person"),
3966
- address: import_zod8.z.optional(placeSchema2).describe("The address of the person")
3967
- });
3968
- var companyCareersSchema3 = import_zod8.z.object({
3969
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3970
- type: import_zod8.z.string().describe("Document type used for schema"),
3971
- careersUrl: import_zod8.z.string().describe("The URL of the company careers page"),
3972
- jobBoard: import_zod8.z.optional(jobBoardSchema2),
3973
- jobBoardSlug: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())),
3974
- companyBenefits: import_zod8.z.optional(import_zod8.z.array(companyBenefitsSchema2)).describe("What are the specific benefits of that company. The benefit is generic.")
3975
- });
3976
- var companyPhilosophySchema3 = import_zod8.z.object({
3977
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3978
- type: import_zod8.z.string().describe("Document type used for schema"),
3979
- companyMission: import_zod8.z.optional(import_zod8.z.string()).describe("The mission statement of the company."),
3980
- companyHow: import_zod8.z.optional(import_zod8.z.string()).describe("How does the company achieve its mission"),
3981
- companyCulture: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())).describe("What are some of the culture aspects of this company?")
3982
- });
3983
- var companyNdgSchema3 = import_zod8.z.object({
3984
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3985
- type: import_zod8.z.string().describe("Document type used for schema"),
3986
- companyWow: import_zod8.z.optional(import_zod8.z.string()).describe("What is the wow of this company?"),
3987
- companyNDGTake: import_zod8.z.optional(import_zod8.z.string()).describe("What is the NDG POV on this company?"),
3988
- companyBestFit: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string())),
3989
- companyInterests: import_zod8.z.optional(import_zod8.z.array(import_zod8.z.string()))
3990
- });
3991
- var foundingInformationSchema3 = import_zod8.z.object({
3992
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
3993
- type: import_zod8.z.string().describe("Document type used for schema"),
3994
- foundedDate: import_zod8.z.optional(import_zod8.z.string()),
3995
- foundedCountry: import_zod8.z.optional(import_zod8.z.string()),
3996
- foundedCity: import_zod8.z.optional(import_zod8.z.string()),
3997
- founders: import_zod8.z.optional(import_zod8.z.array(personSchema2))
3998
- });
3999
- var ngdMetadataSchema3 = import_zod8.z.object({
4000
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
4001
- type: import_zod8.z.string().describe("Document type used for schema"),
4002
- lastScraped: import_zod8.z.optional(import_zod8.z.string()).describe("Date the last entity was scraped, if applicable"),
4003
- scraperVersion: import_zod8.z.optional(import_zod8.z.string()),
4004
- postProcessorVersion: import_zod8.z.optional(import_zod8.z.string()),
4005
- uniqueRunId: import_zod8.z.optional(import_zod8.z.string()),
4006
- postProcessorUniqueRunId: import_zod8.z.optional(import_zod8.z.string()),
4007
- isScrapeManaged: import_zod8.z.optional(import_zod8.z.boolean()).default(true)
4008
- });
4009
- var companySchema3 = import_zod8.z.object({
4010
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
4011
- id: import_zod8.z.string().describe("The NDG specific id for a company. Cannot be changed."),
4012
- createdAt: import_zod8.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
4013
- updatedAt: import_zod8.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
4014
- companyName: import_zod8.z.string().describe("The name of the company"),
4015
- slug: import_zod8.z.string().describe("The NDG specific slug for a company."),
4016
- type: import_zod8.z.string().describe("Document type used for schema"),
4017
- logo: import_zod8.z.optional(imageSchema2).describe("The logo of the company"),
4018
- companyWebsite: import_zod8.z.optional(import_zod8.z.string()).describe("The website of the company"),
4019
- socialMedia: import_zod8.z.optional(import_zod8.z.array(socialMediaSchema2)).describe("The social media links of the company"),
4020
- brandColor: import_zod8.z.optional(import_zod8.z.string()).describe("The brand color of the company"),
4021
- companyCareers: import_zod8.z.optional(companyCareersSchema3).describe("Career Specific Information for the company."),
4022
- companyPhilosophy: import_zod8.z.optional(companyPhilosophySchema3).describe("Company mission,values and how the company achieves its mission."),
4023
- companyNDG: import_zod8.z.optional(companyNdgSchema3).describe("Next Degree specific information for the company."),
4024
- foundingInfo: import_zod8.z.optional(foundingInformationSchema3),
4025
- headquartersLocation: import_zod8.z.optional(placeSchema2),
4026
- employeeEstimate: import_zod8.z.optional(import_zod8.z.string()),
4027
- publishStatus: import_zod8.z.optional(import_zod8.z.string()),
4028
- ngdMetadata: import_zod8.z.optional(ngdMetadataSchema3)
4029
- });
4030
- var officeSchema2 = import_zod8.z.object({
4031
- version: import_zod8.z.literal("1.0.0").default("1.0.0"),
4032
- type: import_zod8.z.string().describe("Document type used for schema"),
4033
- name: import_zod8.z.string().describe("Name or nickname for the office (e.g., 'NYC HQ', 'West Coast Branch')"),
4034
- officeType: OfficeTypeEnum2,
4035
- companyId: import_zod8.z.optional(companySchema3),
4036
- geoLocation: import_zod8.z.optional(placeSchema2).describe("Geographical location details: coordinates + postal address"),
4037
- createdAt: import_zod8.z.optional(import_zod8.z.string()),
4038
- updatedAt: import_zod8.z.optional(import_zod8.z.string())
4039
- });
4040
-
4041
- // src/types/data/job_posting_service_latest.ts
4042
- var job_posting_service_latest_exports2 = {};
4043
- __export(job_posting_service_latest_exports2, {
4044
- BestFitEnum: () => BestFitEnum2,
4045
- ClinicalLicenseEnum: () => ClinicalLicenseEnum2,
4046
- ClinicalSettingEnum: () => ClinicalSettingEnum2,
4047
- ClinicalSpecialtyEnum: () => ClinicalSpecialtyEnum2,
4048
- EmploymentLevelEnum: () => EmploymentLevelEnum2,
4049
- EmploymentTypeEnum: () => EmploymentTypeEnum2,
4050
- JobFunctionEnum: () => JobFunctionEnum2,
4051
- JobLocationTypeEnum: () => JobLocationTypeEnum2,
4052
- PublishStatusEnum: () => PublishStatusEnum4,
4053
- ShiftEnum: () => ShiftEnum2,
4054
- TypeEnum: () => TypeEnum6,
4055
- jobPostSchema: () => jobPostSchema3
222
+ Object.defineProperty(exports, "useDisplayText", {
223
+ enumerable: true,
224
+ get: function () { return chunk567FG76G_cjs.useDisplayText; }
4056
225
  });
4057
- var import_zod9 = require("zod");
4058
- var TypeEnum6 = import_zod9.z.enum(["JOB_POST"]);
4059
- var JobLocationTypeEnum2 = import_zod9.z.enum(["FLOAT", "HYBRID", "ONSITE", "REMOTE"]);
4060
- var EmploymentTypeEnum2 = import_zod9.z.enum(["CONTRACT", "FULL_TIME", "INTERNSHIP", "OTHER", "PART_TIME", "PER_DIEM", "TEMPORARY"]);
4061
- var EmploymentLevelEnum2 = import_zod9.z.enum(["DIRECTOR", "ENTRY_LEVEL", "EXECUTIVE", "EXPERIENCED", "INTERN", "MANAGER"]);
4062
- var JobFunctionEnum2 = import_zod9.z.enum(["CLINICAL_RESEARCH", "CUSTOMER_SUCCESS", "DATA_ANALYTICS", "FINANCE_AND_AUDIT", "MARKETING", "OPERATIONS", "PEOPLE_HUMAN_RESOURCES", "PRODUCT_AND_TECH", "QUALITY_ASSURANCE_AND_OUTCOMES", "SALES_AND_BUSINESS_DEVELOPMENT", "STRATEGY_AND_CONSULTING"]);
4063
- var PublishStatusEnum4 = import_zod9.z.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
4064
- var BestFitEnum2 = import_zod9.z.enum(["DENTIST", "DIETICIAN", "DOULA", "MEDICAL_ASSISTANT", "MIDWIFE", "NURSE", "OCCUPATIONAL_THERAPIST", "PHARMACIST", "PHYSICAL_THERAPIST", "PHYSICIAN", "PHYSICIAN_ASSISTANT", "PSYCHOLOGIST", "RADIOLOGIST", "SOCIAL_WORKER", "SPEECH_LANGUAGE_PATHOLOGIST", "SURGEON"]);
4065
- var ClinicalLicenseEnum2 = import_zod9.z.enum(["CNA", "CNM", "CNS", "COTA", "CRNA", "LPN", "LVN", "NP", "OT", "PT", "PTA", "RN"]);
4066
- var ShiftEnum2 = import_zod9.z.enum(["DAY", "EIGHT_HOUR", "EVENING", "FLEXIBLE", "MID_SHIFT", "MONDAY_TO_FRIDAY", "NIGHT", "ON_CALL", "TEN_HOUR", "TWELVE_HOUR", "WEEKENDS"]);
4067
- var ClinicalSettingEnum2 = import_zod9.z.enum(["ACUTE_CARE", "AMBULATORY_SURGERY_CENTER", "CLINIC", "HOME_HEALTH", "HOSPITAL", "INPATIENT", "LONG_TERM_CARE", "MED_SPA", "NURSING_HOME", "OFFICE", "OUTPATIENT", "PRIVATE_PRACTICE", "REHAB_CENTER", "SCHOOL", "SKILLED_NURSING_FACILITY"]);
4068
- var ClinicalSpecialtyEnum2 = import_zod9.z.enum(["ANESTHESIOLOGY", "CARDIOLOGY", "CASE_MANAGEMENT", "CHRONIC_PAIN", "CLINICAL_ELECTROPHYSIOLOGY", "CRITICAL_AND_ACUTE_CARE", "DERMATOLOGY", "DIALYSIS", "EMERGENCY_MEDICINE", "ENDOCRINOLOGY", "ERGONOMICS", "FEEDING_EATING_AND_SWALLOWING", "GASTROENTEROLOGY", "GERIATRICS", "HAND_THERAPY", "HEMATOLOGY", "HOLISTIC_MEDICINE", "INFORMATICS", "INTERNAL_MEDICINE", "LABOR_AND_DELIVERY", "MANUAL_THERAPY", "MED_SURG", "MENTAL_HEALTH", "NEPHROLOGY", "NEUROLOGY", "ONCOLOGY", "ORTHOPEDICS", "OTOLARYNGOLOGY", "PEDIATRICS", "PHYSICAL_AND_REHABILITATION_MEDICINE", "PLASTIC_SURGERY", "PRIMARY_CARE", "PSYCHIATRY", "PULMONOLOGY", "RADIOLOGY", "SENSORY", "SPORTS", "SURGERY", "TRAUMA_MEDICINE", "URGENT_CARE", "UROLOGY", "VISION", "WOMENS_HEALTH", "WOUND_AND_BURN_CARE"]);
4069
- var jobPostSchema3 = import_zod9.z.object({
4070
- version: import_zod9.z.literal("1.0.0").default("1.0.0"),
4071
- id: import_zod9.z.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed."),
4072
- type: import_zod9.z.string().describe("Document type used for schema"),
4073
- createdAt: import_zod9.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
4074
- updatedAt: import_zod9.z.string().datetime().describe("Time document was created. Autoset by Sanity"),
4075
- dateAdded: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job was added to the platform"),
4076
- datePosted: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job was published for public viewing"),
4077
- dateRemoved: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job was removed from public viewing"),
4078
- validThrough: import_zod9.z.optional(import_zod9.z.string().datetime()).describe("The date the job posting is valid through. After this date it will be removed from public viewing"),
4079
- vacancyCount: import_zod9.z.optional(import_zod9.z.number().int()).describe("The number of vacancies for a given job posting"),
4080
- clientId: import_zod9.z.string().describe("The ID assigned by the client to a job - normally the same as the GH / Lever / Ashby ID or internal ID"),
4081
- url: import_zod9.z.string().describe("The URL of the job to be displayed for users to apply with. Direct job link."),
4082
- title: import_zod9.z.string().describe("The title of the job post"),
4083
- description: import_zod9.z.string().describe("The description of the job post saved as markdown. Used for rendering the job description."),
4084
- richTextDescription: import_zod9.z.optional(import_zod9.z.string()).describe("The description of the job post saved as rich text"),
4085
- isClinical: import_zod9.z.boolean().default(false).describe("Denotes if a job posting is clinical in nature or not. A role is clinical if it requires direct clinical patient care."),
4086
- isRemote: import_zod9.z.boolean().default(false).describe("Denotes if a job posting is remote in nature. For a posting to be 'remote' it must be 100% remote (e.g hybrid roles would denote this to false)."),
4087
- isVerified: import_zod9.z.boolean().default(false).describe("Denotes if a job posting has been manually verified - and thus ALL fields can be considered accurate. Can be used for DS training."),
4088
- isDirectApply: import_zod9.z.boolean().default(false).describe("Denotes if a job posting url is direct apply. To be direct apply a user must be able to apply to the role without logging in and under 2 clicks."),
4089
- jobLocationType: import_zod9.z.optional(import_zod9.z.array(JobLocationTypeEnum2)),
4090
- employmentType: import_zod9.z.optional(import_zod9.z.array(EmploymentTypeEnum2)),
4091
- employmentLevel: import_zod9.z.optional(EmploymentLevelEnum2),
4092
- jobFunction: import_zod9.z.optional(JobFunctionEnum2),
4093
- publishStatus: PublishStatusEnum4,
4094
- bestFit: import_zod9.z.optional(import_zod9.z.array(BestFitEnum2)),
4095
- clinicalLicense: import_zod9.z.optional(import_zod9.z.array(ClinicalLicenseEnum2)),
4096
- shift: import_zod9.z.optional(import_zod9.z.array(ShiftEnum2)),
4097
- clinicalSetting: import_zod9.z.optional(import_zod9.z.array(ClinicalSettingEnum2)),
4098
- clinicalSpecialty: import_zod9.z.optional(import_zod9.z.array(ClinicalSpecialtyEnum2)),
4099
- estimatedSalary: import_zod9.z.optional(monetaryAmountSchema3).describe("Determines the estimated salary for a given job posting"),
4100
- jobLocation: import_zod9.z.optional(postalAddressSchema3).describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
4101
- applicableOffices: import_zod9.z.optional(import_zod9.z.array(officeSchema2)).describe("The physical location(s) in which employees may be located for to be eligible for the job. Used in conjunction with job_location_type."),
4102
- applicantLocationRequirements: import_zod9.z.optional(import_zod9.z.array(placeSchema2)).describe("The geographic location(s) in which employees may be located for to be eligible for the job. The job description must clearly state that the applicant may be located in certain geographical location(s). This property is required if applicants may be located in one or more geographic locations and the job is 100% remote."),
4103
- hiringOrganization: import_zod9.z.optional(companySchema3).describe("The organization that is hiring for the role")
226
+ Object.defineProperty(exports, "useWindowHistory", {
227
+ enumerable: true,
228
+ get: function () { return chunkYEYEUQM6_cjs.useWindowHistory; }
4104
229
  });
4105
- // Annotate the CommonJS export names for ESM import in node:
4106
- 0 && (module.exports = {
4107
- Avatar,
4108
- BackButton,
4109
- Badge,
4110
- Button,
4111
- Checkbox,
4112
- Chip,
4113
- Combobox,
4114
- CompanyBenefits,
4115
- CompanyInformation,
4116
- CompanyService,
4117
- CompanyTake,
4118
- Counter,
4119
- DatePicker,
4120
- DismissibleBanner,
4121
- Icon,
4122
- Input,
4123
- InputOtp,
4124
- JobDescription,
4125
- JobHeader,
4126
- JobLocation,
4127
- JobPost,
4128
- JobPostService,
4129
- Label,
4130
- LinkButton,
4131
- ListItem,
4132
- MapComponent,
4133
- PlacesQueryInput,
4134
- Radio,
4135
- ReadMore,
4136
- Select,
4137
- SharedService,
4138
- StepTabs,
4139
- Switch,
4140
- WindowHistoryProvider,
4141
- cn,
4142
- fetchLocation,
4143
- salaryRange,
4144
- useDisplayText,
4145
- useWindowHistory
230
+ Object.defineProperty(exports, "WindowHistoryProvider", {
231
+ enumerable: true,
232
+ get: function () { return chunkLRBADBNS_cjs.WindowHistoryProvider; }
4146
233
  });
234
+ //# sourceMappingURL=index.cjs.map
4147
235
  //# sourceMappingURL=index.cjs.map