@next-degree/pickle-shared-js 0.12.7 → 0.13.0

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 (347) hide show
  1. package/dist/{company_service_sanity-2J1ZuUnu.d.cts → company_service_sanity-BzaIPM-N.d.ts} +2297 -2297
  2. package/dist/{company_service_sanity-KaAGfnNV.d.ts → company_service_sanity-Zy8TiORb.d.cts} +2297 -2297
  3. package/dist/components/buttons/BackButton.cjs +5 -8
  4. package/dist/components/buttons/BackButton.cjs.map +1 -1
  5. package/dist/components/buttons/BackButton.d.cts +2 -2
  6. package/dist/components/buttons/BackButton.d.ts +2 -2
  7. package/dist/components/buttons/BackButton.js +5 -8
  8. package/dist/components/buttons/BackButton.js.map +1 -1
  9. package/dist/components/company/CompanyBenefits.cjs +1 -5
  10. package/dist/components/company/CompanyBenefits.cjs.map +1 -1
  11. package/dist/components/company/CompanyBenefits.d.cts +2 -2
  12. package/dist/components/company/CompanyBenefits.d.ts +2 -2
  13. package/dist/components/company/CompanyBenefits.js +1 -5
  14. package/dist/components/company/CompanyBenefits.js.map +1 -1
  15. package/dist/components/company/CompanyInformation.cjs +23 -44
  16. package/dist/components/company/CompanyInformation.cjs.map +1 -1
  17. package/dist/components/company/CompanyInformation.d.cts +2 -2
  18. package/dist/components/company/CompanyInformation.d.ts +2 -2
  19. package/dist/components/company/CompanyInformation.js +23 -44
  20. package/dist/components/company/CompanyInformation.js.map +1 -1
  21. package/dist/components/company/CompanyTake.cjs +12 -26
  22. package/dist/components/company/CompanyTake.cjs.map +1 -1
  23. package/dist/components/company/CompanyTake.d.cts +2 -2
  24. package/dist/components/company/CompanyTake.d.ts +2 -2
  25. package/dist/components/company/CompanyTake.js +12 -26
  26. package/dist/components/company/CompanyTake.js.map +1 -1
  27. package/dist/components/jobCard/JobLocation.cjs +23 -34
  28. package/dist/components/jobCard/JobLocation.cjs.map +1 -1
  29. package/dist/components/jobCard/JobLocation.d.cts +3 -3
  30. package/dist/components/jobCard/JobLocation.d.ts +3 -3
  31. package/dist/components/jobCard/JobLocation.js +23 -34
  32. package/dist/components/jobCard/JobLocation.js.map +1 -1
  33. package/dist/components/jobPost/JobDescription.cjs +164 -30
  34. package/dist/components/jobPost/JobDescription.cjs.map +1 -1
  35. package/dist/components/jobPost/JobDescription.d.cts +2 -2
  36. package/dist/components/jobPost/JobDescription.d.ts +2 -2
  37. package/dist/components/jobPost/JobDescription.js +164 -30
  38. package/dist/components/jobPost/JobDescription.js.map +1 -1
  39. package/dist/components/jobPost/JobHeader.cjs +110 -138
  40. package/dist/components/jobPost/JobHeader.cjs.map +1 -1
  41. package/dist/components/jobPost/JobHeader.d.cts +2 -2
  42. package/dist/components/jobPost/JobHeader.d.ts +2 -2
  43. package/dist/components/jobPost/JobHeader.js +110 -138
  44. package/dist/components/jobPost/JobHeader.js.map +1 -1
  45. package/dist/components/jobPost/JobPost.cjs +382 -318
  46. package/dist/components/jobPost/JobPost.cjs.map +1 -1
  47. package/dist/components/jobPost/JobPost.d.cts +3 -3
  48. package/dist/components/jobPost/JobPost.d.ts +3 -3
  49. package/dist/components/jobPost/JobPost.js +344 -280
  50. package/dist/components/jobPost/JobPost.js.map +1 -1
  51. package/dist/components/primitives/avatar.cjs +3 -4
  52. package/dist/components/primitives/avatar.cjs.map +1 -1
  53. package/dist/components/primitives/avatar.js +3 -4
  54. package/dist/components/primitives/avatar.js.map +1 -1
  55. package/dist/components/primitives/command.cjs +37 -50
  56. package/dist/components/primitives/command.cjs.map +1 -1
  57. package/dist/components/primitives/command.d.cts +5 -6
  58. package/dist/components/primitives/command.d.ts +5 -6
  59. package/dist/components/primitives/command.js +37 -50
  60. package/dist/components/primitives/command.js.map +1 -1
  61. package/dist/components/primitives/dialog.cjs +18 -27
  62. package/dist/components/primitives/dialog.cjs.map +1 -1
  63. package/dist/components/primitives/dialog.d.cts +2 -3
  64. package/dist/components/primitives/dialog.d.ts +2 -3
  65. package/dist/components/primitives/dialog.js +18 -27
  66. package/dist/components/primitives/dialog.js.map +1 -1
  67. package/dist/components/primitives/input-otp.cjs +8 -11
  68. package/dist/components/primitives/input-otp.cjs.map +1 -1
  69. package/dist/components/primitives/input-otp.d.cts +2 -2
  70. package/dist/components/primitives/input-otp.d.ts +2 -2
  71. package/dist/components/primitives/input-otp.js +8 -11
  72. package/dist/components/primitives/input-otp.js.map +1 -1
  73. package/dist/components/primitives/popover.cjs +2 -3
  74. package/dist/components/primitives/popover.cjs.map +1 -1
  75. package/dist/components/primitives/popover.js +2 -3
  76. package/dist/components/primitives/popover.js.map +1 -1
  77. package/dist/components/primitives/radio-group.cjs +12 -16
  78. package/dist/components/primitives/radio-group.cjs.map +1 -1
  79. package/dist/components/primitives/radio-group.js +12 -16
  80. package/dist/components/primitives/radio-group.js.map +1 -1
  81. package/dist/components/primitives/separator.cjs +1 -2
  82. package/dist/components/primitives/separator.cjs.map +1 -1
  83. package/dist/components/primitives/separator.js +1 -2
  84. package/dist/components/primitives/separator.js.map +1 -1
  85. package/dist/components/primitives/tooltip.cjs +1 -2
  86. package/dist/components/primitives/tooltip.cjs.map +1 -1
  87. package/dist/components/primitives/tooltip.js +1 -2
  88. package/dist/components/primitives/tooltip.js.map +1 -1
  89. package/dist/components/ui/Avatar.cjs +6 -11
  90. package/dist/components/ui/Avatar.cjs.map +1 -1
  91. package/dist/components/ui/Avatar.d.cts +3 -3
  92. package/dist/components/ui/Avatar.d.ts +3 -3
  93. package/dist/components/ui/Avatar.js +6 -11
  94. package/dist/components/ui/Avatar.js.map +1 -1
  95. package/dist/components/ui/Badge.cjs +12 -2
  96. package/dist/components/ui/Badge.cjs.map +1 -1
  97. package/dist/components/ui/Badge.d.cts +1 -2
  98. package/dist/components/ui/Badge.d.ts +1 -2
  99. package/dist/components/ui/Badge.js +2 -2
  100. package/dist/components/ui/Badge.js.map +1 -1
  101. package/dist/components/ui/Button.cjs +163 -8
  102. package/dist/components/ui/Button.cjs.map +1 -1
  103. package/dist/components/ui/Button.d.cts +4 -8
  104. package/dist/components/ui/Button.d.ts +4 -8
  105. package/dist/components/ui/Button.js +153 -8
  106. package/dist/components/ui/Button.js.map +1 -1
  107. package/dist/components/ui/Checkbox.cjs +18 -28
  108. package/dist/components/ui/Checkbox.cjs.map +1 -1
  109. package/dist/components/ui/Checkbox.js +18 -28
  110. package/dist/components/ui/Checkbox.js.map +1 -1
  111. package/dist/components/ui/Chip.cjs +12 -2
  112. package/dist/components/ui/Chip.cjs.map +1 -1
  113. package/dist/components/ui/Chip.d.cts +2 -3
  114. package/dist/components/ui/Chip.d.ts +2 -3
  115. package/dist/components/ui/Chip.js +2 -2
  116. package/dist/components/ui/Chip.js.map +1 -1
  117. package/dist/components/ui/Combobox.cjs +171 -233
  118. package/dist/components/ui/Combobox.cjs.map +1 -1
  119. package/dist/components/ui/Combobox.js +171 -233
  120. package/dist/components/ui/Combobox.js.map +1 -1
  121. package/dist/components/ui/Counter.cjs +56 -74
  122. package/dist/components/ui/Counter.cjs.map +1 -1
  123. package/dist/components/ui/Counter.js +56 -74
  124. package/dist/components/ui/Counter.js.map +1 -1
  125. package/dist/components/ui/DatePicker.cjs +44 -68
  126. package/dist/components/ui/DatePicker.cjs.map +1 -1
  127. package/dist/components/ui/DatePicker.js +44 -68
  128. package/dist/components/ui/DatePicker.js.map +1 -1
  129. package/dist/components/ui/DismissibleBanner.cjs +13 -16
  130. package/dist/components/ui/DismissibleBanner.cjs.map +1 -1
  131. package/dist/components/ui/DismissibleBanner.d.cts +2 -2
  132. package/dist/components/ui/DismissibleBanner.d.ts +2 -2
  133. package/dist/components/ui/DismissibleBanner.js +13 -16
  134. package/dist/components/ui/DismissibleBanner.js.map +1 -1
  135. package/dist/components/ui/ErrorMessage.cjs +1 -2
  136. package/dist/components/ui/ErrorMessage.cjs.map +1 -1
  137. package/dist/components/ui/ErrorMessage.d.cts +2 -2
  138. package/dist/components/ui/ErrorMessage.d.ts +2 -2
  139. package/dist/components/ui/ErrorMessage.js +1 -2
  140. package/dist/components/ui/ErrorMessage.js.map +1 -1
  141. package/dist/components/ui/Icon.cjs +1 -2
  142. package/dist/components/ui/Icon.cjs.map +1 -1
  143. package/dist/components/ui/Icon.js +1 -2
  144. package/dist/components/ui/Icon.js.map +1 -1
  145. package/dist/components/ui/Input.cjs +48 -68
  146. package/dist/components/ui/Input.cjs.map +1 -1
  147. package/dist/components/ui/Input.js +48 -68
  148. package/dist/components/ui/Input.js.map +1 -1
  149. package/dist/components/ui/InputOtp.cjs +56 -73
  150. package/dist/components/ui/InputOtp.cjs.map +1 -1
  151. package/dist/components/ui/InputOtp.js +56 -73
  152. package/dist/components/ui/InputOtp.js.map +1 -1
  153. package/dist/components/ui/Label.cjs +14 -24
  154. package/dist/components/ui/Label.cjs.map +1 -1
  155. package/dist/components/ui/Label.d.cts +2 -2
  156. package/dist/components/ui/Label.d.ts +2 -2
  157. package/dist/components/ui/Label.js +14 -24
  158. package/dist/components/ui/Label.js.map +1 -1
  159. package/dist/components/ui/LinkButton.cjs +5 -5
  160. package/dist/components/ui/LinkButton.cjs.map +1 -1
  161. package/dist/components/ui/LinkButton.d.cts +1 -2
  162. package/dist/components/ui/LinkButton.d.ts +1 -2
  163. package/dist/components/ui/LinkButton.js +5 -5
  164. package/dist/components/ui/LinkButton.js.map +1 -1
  165. package/dist/components/ui/ListItem.cjs +32 -48
  166. package/dist/components/ui/ListItem.cjs.map +1 -1
  167. package/dist/components/ui/ListItem.d.cts +2 -2
  168. package/dist/components/ui/ListItem.d.ts +2 -2
  169. package/dist/components/ui/ListItem.js +32 -48
  170. package/dist/components/ui/ListItem.js.map +1 -1
  171. package/dist/components/ui/Map/ClusterMarker.cjs +80 -0
  172. package/dist/components/ui/Map/ClusterMarker.cjs.map +1 -0
  173. package/dist/components/ui/Map/ClusterMarker.d.cts +6 -0
  174. package/dist/components/ui/Map/ClusterMarker.d.ts +6 -0
  175. package/dist/components/ui/Map/ClusterMarker.js +56 -0
  176. package/dist/components/ui/Map/ClusterMarker.js.map +1 -0
  177. package/dist/components/ui/Map/FocusCircle.cjs +86 -0
  178. package/dist/components/ui/Map/FocusCircle.cjs.map +1 -0
  179. package/dist/components/ui/Map/FocusCircle.d.cts +5 -0
  180. package/dist/components/ui/Map/FocusCircle.d.ts +5 -0
  181. package/dist/components/ui/Map/FocusCircle.js +62 -0
  182. package/dist/components/ui/Map/FocusCircle.js.map +1 -0
  183. package/dist/components/ui/Map/IndividualMarker.cjs +60 -0
  184. package/dist/components/ui/Map/IndividualMarker.cjs.map +1 -0
  185. package/dist/components/ui/Map/IndividualMarker.d.cts +6 -0
  186. package/dist/components/ui/Map/IndividualMarker.d.ts +6 -0
  187. package/dist/components/ui/Map/IndividualMarker.js +36 -0
  188. package/dist/components/ui/Map/IndividualMarker.js.map +1 -0
  189. package/dist/components/ui/Map/MapComponent.cjs +401 -0
  190. package/dist/components/ui/Map/MapComponent.cjs.map +1 -0
  191. package/dist/components/ui/Map/MapComponent.d.cts +6 -0
  192. package/dist/components/ui/Map/MapComponent.d.ts +6 -0
  193. package/dist/components/ui/Map/MapComponent.js +367 -0
  194. package/dist/components/ui/Map/MapComponent.js.map +1 -0
  195. package/dist/components/ui/Map/MapContent.cjs +279 -0
  196. package/dist/components/ui/Map/MapContent.cjs.map +1 -0
  197. package/dist/components/ui/Map/MapContent.d.cts +6 -0
  198. package/dist/components/ui/Map/MapContent.d.ts +6 -0
  199. package/dist/components/ui/Map/MapContent.js +255 -0
  200. package/dist/components/ui/Map/MapContent.js.map +1 -0
  201. package/dist/components/ui/Map/clustering.cjs +105 -0
  202. package/dist/components/ui/Map/clustering.cjs.map +1 -0
  203. package/dist/components/ui/Map/clustering.d.cts +17 -0
  204. package/dist/components/ui/Map/clustering.d.ts +17 -0
  205. package/dist/components/ui/Map/clustering.js +77 -0
  206. package/dist/components/ui/Map/clustering.js.map +1 -0
  207. package/dist/components/ui/Map/constants.cjs +65 -0
  208. package/dist/components/ui/Map/constants.cjs.map +1 -0
  209. package/dist/components/ui/Map/constants.d.cts +28 -0
  210. package/dist/components/ui/Map/constants.d.ts +28 -0
  211. package/dist/components/ui/Map/constants.js +34 -0
  212. package/dist/components/ui/Map/constants.js.map +1 -0
  213. package/dist/components/ui/Map/hooks.cjs +96 -0
  214. package/dist/components/ui/Map/hooks.cjs.map +1 -0
  215. package/dist/components/ui/Map/hooks.d.cts +17 -0
  216. package/dist/components/ui/Map/hooks.d.ts +17 -0
  217. package/dist/components/ui/Map/hooks.js +59 -0
  218. package/dist/components/ui/Map/hooks.js.map +1 -0
  219. package/dist/components/ui/Map/index.cjs +402 -0
  220. package/dist/components/ui/Map/index.cjs.map +1 -0
  221. package/dist/components/ui/Map/index.d.cts +3 -0
  222. package/dist/components/ui/Map/index.d.ts +3 -0
  223. package/dist/components/ui/Map/index.js +365 -0
  224. package/dist/components/ui/Map/index.js.map +1 -0
  225. package/dist/components/ui/Map/types.cjs +19 -0
  226. package/dist/components/ui/Map/types.cjs.map +1 -0
  227. package/dist/components/ui/Map/types.d.cts +82 -0
  228. package/dist/components/ui/Map/types.d.ts +82 -0
  229. package/dist/components/ui/Map/types.js +1 -0
  230. package/dist/components/ui/Map/types.js.map +1 -0
  231. package/dist/components/ui/Map/utils.cjs +80 -0
  232. package/dist/components/ui/Map/utils.cjs.map +1 -0
  233. package/dist/components/ui/Map/utils.d.cts +9 -0
  234. package/dist/components/ui/Map/utils.d.ts +9 -0
  235. package/dist/components/ui/Map/utils.js +49 -0
  236. package/dist/components/ui/Map/utils.js.map +1 -0
  237. package/dist/components/ui/PlacesQueryInput.cjs +71 -94
  238. package/dist/components/ui/PlacesQueryInput.cjs.map +1 -1
  239. package/dist/components/ui/PlacesQueryInput.d.cts +2 -2
  240. package/dist/components/ui/PlacesQueryInput.d.ts +2 -2
  241. package/dist/components/ui/PlacesQueryInput.js +71 -94
  242. package/dist/components/ui/PlacesQueryInput.js.map +1 -1
  243. package/dist/components/ui/Radio.cjs +49 -69
  244. package/dist/components/ui/Radio.cjs.map +1 -1
  245. package/dist/components/ui/Radio.js +49 -69
  246. package/dist/components/ui/Radio.js.map +1 -1
  247. package/dist/components/ui/ReadMore.cjs +163 -25
  248. package/dist/components/ui/ReadMore.cjs.map +1 -1
  249. package/dist/components/ui/ReadMore.d.cts +2 -2
  250. package/dist/components/ui/ReadMore.d.ts +2 -2
  251. package/dist/components/ui/ReadMore.js +163 -25
  252. package/dist/components/ui/ReadMore.js.map +1 -1
  253. package/dist/components/ui/Select.cjs +138 -172
  254. package/dist/components/ui/Select.cjs.map +1 -1
  255. package/dist/components/ui/Select.js +132 -166
  256. package/dist/components/ui/Select.js.map +1 -1
  257. package/dist/components/ui/StepTabs.cjs +24 -27
  258. package/dist/components/ui/StepTabs.cjs.map +1 -1
  259. package/dist/components/ui/StepTabs.d.cts +3 -3
  260. package/dist/components/ui/StepTabs.d.ts +3 -3
  261. package/dist/components/ui/StepTabs.js +24 -27
  262. package/dist/components/ui/StepTabs.js.map +1 -1
  263. package/dist/components/ui/Switch.cjs +13 -21
  264. package/dist/components/ui/Switch.cjs.map +1 -1
  265. package/dist/components/ui/Switch.js +13 -21
  266. package/dist/components/ui/Switch.js.map +1 -1
  267. package/dist/components/ui/buttonShadcn.cjs +1 -2
  268. package/dist/components/ui/buttonShadcn.cjs.map +1 -1
  269. package/dist/components/ui/buttonShadcn.js +1 -2
  270. package/dist/components/ui/buttonShadcn.js.map +1 -1
  271. package/dist/components/ui/calendar.cjs +5 -6
  272. package/dist/components/ui/calendar.cjs.map +1 -1
  273. package/dist/components/ui/calendar.d.cts +1 -2
  274. package/dist/components/ui/calendar.d.ts +1 -2
  275. package/dist/components/ui/calendar.js +5 -6
  276. package/dist/components/ui/calendar.js.map +1 -1
  277. package/dist/contexts/WindowHistoryProvider.cjs +1 -2
  278. package/dist/contexts/WindowHistoryProvider.cjs.map +1 -1
  279. package/dist/contexts/WindowHistoryProvider.d.cts +1 -2
  280. package/dist/contexts/WindowHistoryProvider.d.ts +1 -2
  281. package/dist/contexts/WindowHistoryProvider.js +1 -2
  282. package/dist/contexts/WindowHistoryProvider.js.map +1 -1
  283. package/dist/{displayText-DahwdHdi.d.ts → displayText-DIxMXVLl.d.ts} +2 -2
  284. package/dist/{displayText-DW0qiJqh.d.cts → displayText-DRyxjHTZ.d.cts} +2 -2
  285. package/dist/hooks/useDisplayText.d.cts +3 -3
  286. package/dist/hooks/useDisplayText.d.ts +3 -3
  287. package/dist/hooks/useWindowHistory.cjs +0 -1
  288. package/dist/hooks/useWindowHistory.cjs.map +1 -1
  289. package/dist/hooks/useWindowHistory.d.cts +0 -1
  290. package/dist/hooks/useWindowHistory.d.ts +0 -1
  291. package/dist/hooks/useWindowHistory.js +0 -1
  292. package/dist/hooks/useWindowHistory.js.map +1 -1
  293. package/dist/index.cjs +1343 -1111
  294. package/dist/index.cjs.map +1 -1
  295. package/dist/index.d.cts +8 -8
  296. package/dist/index.d.ts +8 -8
  297. package/dist/index.js +1293 -1061
  298. package/dist/index.js.map +1 -1
  299. package/dist/{job_posting_service_latest-C_TEBzCf.d.cts → job_posting_service_latest-7q4A7RpW.d.cts} +1171 -1171
  300. package/dist/{job_posting_service_latest-C_TEBzCf.d.ts → job_posting_service_latest-7q4A7RpW.d.ts} +1171 -1171
  301. package/dist/{job_posting_service_latest-DdgK8Nnz.d.cts → job_posting_service_latest-BrZndMS6.d.cts} +1171 -1171
  302. package/dist/{job_posting_service_latest-DdgK8Nnz.d.ts → job_posting_service_latest-BrZndMS6.d.ts} +1171 -1171
  303. package/dist/{job_posting_service_sanity-BNq-Am9N.d.cts → job_posting_service_sanity-B5NZ-7tI.d.cts} +2126 -2126
  304. package/dist/{job_posting_service_sanity-BKo9TBDT.d.ts → job_posting_service_sanity-LlRkfIpt.d.ts} +2126 -2126
  305. package/dist/lib/locations.d.cts +3 -3
  306. package/dist/lib/locations.d.ts +3 -3
  307. package/dist/lib/mappings.d.cts +3 -3
  308. package/dist/lib/mappings.d.ts +3 -3
  309. package/dist/lib/salaryRange.d.cts +1 -1
  310. package/dist/lib/salaryRange.d.ts +1 -1
  311. package/dist/services/displayText.d.cts +3 -3
  312. package/dist/services/displayText.d.ts +3 -3
  313. package/dist/styles/globals.css +149 -6
  314. package/dist/styles/globals.css.map +1 -1
  315. package/dist/types/data/company_service_latest.d.cts +1 -1
  316. package/dist/types/data/company_service_latest.d.ts +1 -1
  317. package/dist/types/data/job_posting_service_latest.d.cts +1 -1
  318. package/dist/types/data/job_posting_service_latest.d.ts +1 -1
  319. package/dist/types/data/shared_pickle_output_latest.d.cts +1 -1
  320. package/dist/types/data/shared_pickle_output_latest.d.ts +1 -1
  321. package/dist/types/index.d.cts +6 -6
  322. package/dist/types/index.d.ts +6 -6
  323. package/dist/types/latest/company_service_latest.d.cts +1 -1
  324. package/dist/types/latest/company_service_latest.d.ts +1 -1
  325. package/dist/types/latest/custom/company_service_sanity.d.cts +3 -3
  326. package/dist/types/latest/custom/company_service_sanity.d.ts +3 -3
  327. package/dist/types/latest/custom/job_posting_service_sanity.d.cts +3 -3
  328. package/dist/types/latest/custom/job_posting_service_sanity.d.ts +3 -3
  329. package/dist/types/latest/job_posting_service_latest.d.cts +1 -1
  330. package/dist/types/latest/job_posting_service_latest.d.ts +1 -1
  331. package/dist/types/latest/shared_pickle_output_latest.d.cts +1 -1
  332. package/dist/types/latest/shared_pickle_output_latest.d.ts +1 -1
  333. package/package.json +4 -3
  334. package/dist/components/ui/MapComponent.cjs +0 -61
  335. package/dist/components/ui/MapComponent.cjs.map +0 -1
  336. package/dist/components/ui/MapComponent.d.cts +0 -15
  337. package/dist/components/ui/MapComponent.d.ts +0 -15
  338. package/dist/components/ui/MapComponent.js +0 -41
  339. package/dist/components/ui/MapComponent.js.map +0 -1
  340. package/dist/{company_service_latest-CITz7F53.d.cts → company_service_latest-BwbaqchJ.d.cts} +1220 -1220
  341. package/dist/{company_service_latest-CITz7F53.d.ts → company_service_latest-BwbaqchJ.d.ts} +1220 -1220
  342. package/dist/{company_service_latest-C7Moeufo.d.cts → company_service_latest-FHqG4LjA.d.cts} +1220 -1220
  343. package/dist/{company_service_latest-C7Moeufo.d.ts → company_service_latest-FHqG4LjA.d.ts} +1220 -1220
  344. package/dist/{shared_pickle_output_latest-CXBCG04N.d.cts → shared_pickle_output_latest-CKHNY1lx.d.cts} +42 -42
  345. package/dist/{shared_pickle_output_latest-CXBCG04N.d.ts → shared_pickle_output_latest-CKHNY1lx.d.ts} +42 -42
  346. package/dist/{shared_pickle_output_latest-CtvHTPeX.d.cts → shared_pickle_output_latest-DIPgxUul.d.cts} +42 -42
  347. package/dist/{shared_pickle_output_latest-CtvHTPeX.d.ts → shared_pickle_output_latest-DIPgxUul.d.ts} +42 -42
package/dist/index.cjs CHANGED
@@ -55,7 +55,7 @@ __export(index_exports, {
55
55
  Label: () => Label_default,
56
56
  LinkButton: () => LinkButton,
57
57
  ListItem: () => ListItem_default,
58
- MapComponent: () => MapComponent_default,
58
+ MapComponent: () => MapComponent,
59
59
  PlacesQueryInput: () => PlacesQueryInput_default,
60
60
  Radio: () => Radio,
61
61
  ReadMore: () => ReadMore,
@@ -74,9 +74,9 @@ module.exports = __toCommonJS(index_exports);
74
74
 
75
75
  // src/components/ui/Chip.tsx
76
76
  var import_cva = require("cva");
77
+ var import_react = __toESM(require("react"), 1);
77
78
  var import_tailwind_merge = require("tailwind-merge");
78
- var import_jsx_runtime = require("react/jsx-runtime");
79
- var Chip = ({ className, variant, size, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_tailwind_merge.twMerge)(chipVariants({ variant, size, className })), ...props });
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
80
  var chipVariants = (0, import_cva.cva)(["flex", "items-center", "rounded-3xl", "border", "w-fit"], {
81
81
  variants: {
82
82
  variant: {
@@ -102,7 +102,7 @@ var Chip_default = Chip;
102
102
  // src/components/ui/Input.tsx
103
103
  var import_cva2 = require("cva");
104
104
  var import_lucide_react2 = require("lucide-react");
105
- var import_react = require("react");
105
+ var import_react2 = require("react");
106
106
 
107
107
  // src/lib/utils.ts
108
108
  var import_clsx = require("clsx");
@@ -112,10 +112,9 @@ function cn(...inputs) {
112
112
  }
113
113
 
114
114
  // src/components/ui/ErrorMessage.tsx
115
- var import_jsx_runtime2 = require("react/jsx-runtime");
116
115
  function ErrorMessage({ message, className, ...props }) {
117
116
  if (!message) return null;
118
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: cn("px-1 text-xs text-red-600", className), ...props, children: message });
117
+ return /* @__PURE__ */ React.createElement("p", { className: cn("px-1 text-xs text-red-600", className), ...props }, message);
119
118
  }
120
119
  var ErrorMessage_default = ErrorMessage;
121
120
 
@@ -124,12 +123,11 @@ var import_lucide_react = require("lucide-react");
124
123
 
125
124
  // src/components/primitives/tooltip.tsx
126
125
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
127
- var React = __toESM(require("react"), 1);
128
- var import_jsx_runtime3 = require("react/jsx-runtime");
126
+ var React3 = __toESM(require("react"), 1);
129
127
  var TooltipProvider = TooltipPrimitive.Provider;
130
128
  var Tooltip = TooltipPrimitive.Root;
131
129
  var TooltipTrigger = TooltipPrimitive.Trigger;
132
- var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
130
+ var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React3.createElement(
133
131
  TooltipPrimitive.Content,
134
132
  {
135
133
  ref,
@@ -144,35 +142,25 @@ var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props },
144
142
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
145
143
 
146
144
  // src/components/ui/Label.tsx
147
- var import_jsx_runtime4 = require("react/jsx-runtime");
148
145
  function Label({ text, required, description, className, ...props }) {
149
146
  if (!text) return null;
150
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "flex w-full flex-row gap-1", children: [
151
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
152
- "label",
153
- {
154
- className: cn(
155
- "text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
156
- className
157
- ),
158
- ...props,
159
- children: [
160
- text,
161
- required && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: "text-red-600", children: "\xA0*" })
162
- ]
163
- }
164
- ),
165
- !!description && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Tooltip, { children: [
166
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_lucide_react.InfoIcon, { className: "h-4 w-4" }) }),
167
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TooltipContent, { className: "max-w-48", children: description })
168
- ] }) })
169
- ] });
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))));
170
159
  }
171
160
  var Label_default = Label;
172
161
 
173
162
  // src/components/ui/Input.tsx
174
- var import_jsx_runtime5 = require("react/jsx-runtime");
175
- var Input = (0, import_react.forwardRef)(
163
+ var Input = (0, import_react2.forwardRef)(
176
164
  ({ label, error, description, theme, icon, onClear, value, onChange, classNames, ...props }, ref) => {
177
165
  const handleClear = () => {
178
166
  onChange?.({ target: { value: "" } });
@@ -182,47 +170,39 @@ var Input = (0, import_react.forwardRef)(
182
170
  const placeholder = props.placeholder ?? (icon === "Search" ? "Search..." : "");
183
171
  const hasIcon = !!icon;
184
172
  const iconColor = theme === "dark" ? "text-white" : "text-grey-80";
185
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "group flex w-full flex-col gap-1", "data-testid": `input-wrapper-${props.id}`, children: [
186
- label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
187
- Label_default,
188
- {
189
- text: label,
190
- htmlFor: props.name,
191
- required: props.required,
192
- description,
193
- className: classNames?.label
194
- }
195
- ),
196
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "relative flex flex-row items-center", children: [
197
- IconComponent && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
198
- IconComponent,
199
- {
200
- className: `absolute left-3 h-4 w-4 ${iconColor} opacity-50 group-hover:opacity-100`
201
- }
202
- ),
203
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
204
- "input",
205
- {
206
- className: cn(inputVariants({ theme, hasIcon })),
207
- ref,
208
- placeholder,
209
- value,
210
- onChange,
211
- "data-testid": `input-element-${props.id}`,
212
- ...props
213
- }
214
- ),
215
- hasIcon && value && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
216
- import_lucide_react2.X,
217
- {
218
- className: `absolute right-3 h-4 w-4 cursor-pointer ${iconColor}`,
219
- onClick: handleClear,
220
- "data-testid": "clear-button"
221
- }
222
- )
223
- ] }),
224
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ErrorMessage_default, { message: error })
225
- ] });
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 }));
226
206
  }
227
207
  );
228
208
  Input.displayName = "Input";
@@ -283,9 +263,8 @@ var import_lucide_react5 = require("lucide-react");
283
263
  // src/components/ui/Checkbox.tsx
284
264
  var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
285
265
  var import_lucide_react3 = require("lucide-react");
286
- var import_react2 = require("react");
287
- var import_jsx_runtime6 = require("react/jsx-runtime");
288
- var CheckboxToggle = (0, import_react2.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
266
+ var import_react3 = require("react");
267
+ var CheckboxToggle = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
289
268
  CheckboxPrimitive.Root,
290
269
  {
291
270
  ref,
@@ -314,41 +293,32 @@ var CheckboxToggle = (0, import_react2.forwardRef)(({ className, ...props }, ref
314
293
  props.disabled && "bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",
315
294
  className
316
295
  ),
317
- ...props,
318
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
319
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react3.Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }),
320
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_lucide_react3.Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" })
321
- ] })
322
- }
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" }))
323
299
  ));
324
300
  CheckboxToggle.displayName = CheckboxPrimitive.Root.displayName;
325
- var Checkbox = (0, import_react2.forwardRef)(
301
+ var Checkbox = (0, import_react3.forwardRef)(
326
302
  ({ error, classNames, children, ...props }, ref) => {
327
303
  const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`;
328
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: cn("flex space-x-2", classNames?.wrapper), children: [
329
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(CheckboxToggle, { id, ref, ...props }),
330
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
331
- "label",
332
- {
333
- htmlFor: id,
334
- className: cn(
335
- "text-sm",
336
- props.disabled && "pointer-events-none text-grey-40",
337
- classNames?.label
338
- ),
339
- children: [
340
- children,
341
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(ErrorMessage_default, { message: error, className: "mt-1" })
342
- ]
343
- }
344
- )
345
- ] });
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
+ ));
346
317
  }
347
318
  );
348
319
  Checkbox.displayName = "Checkbox";
349
320
 
350
321
  // src/components/ui/ListItem.tsx
351
- var import_jsx_runtime7 = require("react/jsx-runtime");
352
322
  function ListItem({
353
323
  icon,
354
324
  hasCheckbox,
@@ -362,12 +332,12 @@ function ListItem({
362
332
  const getIconIfValid = (icon2) => {
363
333
  if (icon2 in import_lucide_react5.icons) {
364
334
  const IconComponent = import_lucide_react5.icons[icon2];
365
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(IconComponent, { size: 14 });
335
+ return /* @__PURE__ */ React.createElement(IconComponent, { size: 14 });
366
336
  }
367
337
  return null;
368
338
  };
369
339
  const optionIcon = icon ? getIconIfValid(icon) : void 0;
370
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
340
+ return /* @__PURE__ */ React.createElement(
371
341
  "li",
372
342
  {
373
343
  className: cn(
@@ -375,70 +345,392 @@ function ListItem({
375
345
  className
376
346
  ),
377
347
  ...props,
378
- "data-state": isSelected ? "checked" : "unchecked",
379
- children: [
380
- optionIcon && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "mr-2", children: optionIcon }),
381
- hasCheckbox && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Checkbox, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
382
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { children: [
383
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { children: title }),
384
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-xs text-grey-80", children: description })
385
- ] }),
386
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
387
- import_lucide_react4.CheckIcon,
388
- {
389
- className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
390
- size: 16
391
- }
392
- )
393
- ]
394
- }
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
+ )
395
360
  );
396
361
  }
397
362
  var ListItem_default = ListItem;
398
363
 
399
- // src/components/ui/MapComponent.tsx
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
400
471
  var import_react_google_maps = require("@vis.gl/react-google-maps");
401
- var import_jsx_runtime8 = require("react/jsx-runtime");
402
- function MapComponent({
403
- apiKey,
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({
404
574
  mapId,
575
+ mapCenter,
576
+ mapZoom,
405
577
  position,
578
+ coordinates,
579
+ clusters,
580
+ supercluster,
581
+ onPinHover,
582
+ onPinClick,
583
+ focusPoint,
584
+ radiusMiles,
406
585
  className,
407
- zoom = 15
586
+ setBounds,
587
+ setZoomLevel
408
588
  }) {
409
- const defaultPosition = { lat: 40.715021, lng: -74.00459 };
410
- const defaultZoom = 11;
411
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_google_maps.APIProvider, { apiKey, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: cn("h-screen max-w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
412
- import_react_google_maps.Map,
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,
413
620
  {
414
- defaultZoom: position ? zoom : defaultZoom,
415
- center: position || defaultPosition,
621
+ defaultZoom: mapZoom,
622
+ defaultCenter: mapCenter,
416
623
  mapId,
417
- keyboardShortcuts: false,
624
+ keyboardShortcuts: true,
418
625
  disableDefaultUI: true,
419
626
  zoomControl: true,
420
- children: position && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_google_maps.AdvancedMarker, { position, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_react_google_maps.Pin, { background: "#0B5441", borderColor: "#EBFDF1", glyphColor: "#D4F500" }) })
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
421
715
  }
422
- ) }) });
716
+ ));
423
717
  }
424
- var MapComponent_default = MapComponent;
425
718
 
426
719
  // src/components/ui/PlacesQueryInput.tsx
427
720
  var import_lucide_react8 = require("lucide-react");
428
- var import_react3 = require("react");
721
+ var import_react7 = require("react");
429
722
 
430
723
  // src/components/primitives/command.tsx
431
724
  var import_cmdk = require("cmdk");
432
725
  var import_lucide_react7 = require("lucide-react");
433
- var React3 = __toESM(require("react"), 1);
726
+ var React5 = __toESM(require("react"), 1);
434
727
 
435
728
  // src/components/primitives/dialog.tsx
436
729
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
437
730
  var import_lucide_react6 = require("lucide-react");
438
- var React2 = __toESM(require("react"), 1);
439
- var import_jsx_runtime9 = require("react/jsx-runtime");
731
+ var React4 = __toESM(require("react"), 1);
440
732
  var DialogPortal = DialogPrimitive.Portal;
441
- var DialogOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
733
+ var DialogOverlay = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
442
734
  DialogPrimitive.Overlay,
443
735
  {
444
736
  ref,
@@ -450,31 +742,23 @@ var DialogOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PU
450
742
  }
451
743
  ));
452
744
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
453
- var DialogContent = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(DialogPortal, { children: [
454
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DialogOverlay, {}),
455
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
456
- DialogPrimitive.Content,
457
- {
458
- ref,
459
- className: cn(
460
- "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",
461
- className
462
- ),
463
- ...props,
464
- children: [
465
- children,
466
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(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", children: [
467
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_lucide_react6.X, { className: "h-4 w-4" }),
468
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "sr-only", children: "Close" })
469
- ] })
470
- ]
471
- }
472
- )
473
- ] }));
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
+ )));
474
758
  DialogContent.displayName = DialogPrimitive.Content.displayName;
475
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
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 });
476
760
  DialogHeader.displayName = "DialogHeader";
477
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
761
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ React4.createElement(
478
762
  "div",
479
763
  {
480
764
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -482,7 +766,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_r
482
766
  }
483
767
  );
484
768
  DialogFooter.displayName = "DialogFooter";
485
- var DialogTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
769
+ var DialogTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
486
770
  DialogPrimitive.Title,
487
771
  {
488
772
  ref,
@@ -491,7 +775,7 @@ var DialogTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE
491
775
  }
492
776
  ));
493
777
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
494
- var DialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
778
+ var DialogDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
495
779
  DialogPrimitive.Description,
496
780
  {
497
781
  ref,
@@ -502,8 +786,7 @@ var DialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @
502
786
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
503
787
 
504
788
  // src/components/primitives/command.tsx
505
- var import_jsx_runtime10 = require("react/jsx-runtime");
506
- var Command = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
789
+ var Command = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
507
790
  import_cmdk.Command,
508
791
  {
509
792
  ref,
@@ -515,22 +798,19 @@ var Command = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
515
798
  }
516
799
  ));
517
800
  Command.displayName = import_cmdk.Command.displayName;
518
- var CommandInput = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "m-1 flex items-center rounded-xl border px-3", "cmdk-input-wrapper": "", children: [
519
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_lucide_react7.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
520
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
521
- import_cmdk.Command.Input,
522
- {
523
- ref,
524
- className: cn(
525
- "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",
526
- className
527
- ),
528
- ...props
529
- }
530
- )
531
- ] }));
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
+ )));
532
812
  CommandInput.displayName = import_cmdk.Command.Input.displayName;
533
- var CommandList = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
813
+ var CommandList = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
534
814
  import_cmdk.Command.List,
535
815
  {
536
816
  ref,
@@ -539,9 +819,9 @@ var CommandList = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
539
819
  }
540
820
  ));
541
821
  CommandList.displayName = import_cmdk.Command.List.displayName;
542
- var CommandEmpty = React3.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
822
+ var CommandEmpty = React5.forwardRef((props, ref) => /* @__PURE__ */ React5.createElement(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
543
823
  CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
544
- var CommandGroup = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
824
+ var CommandGroup = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
545
825
  import_cmdk.Command.Group,
546
826
  {
547
827
  ref,
@@ -553,7 +833,7 @@ var CommandGroup = React3.forwardRef(({ className, ...props }, ref) => /* @__PUR
553
833
  }
554
834
  ));
555
835
  CommandGroup.displayName = import_cmdk.Command.Group.displayName;
556
- var CommandSeparator = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
836
+ var CommandSeparator = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
557
837
  import_cmdk.Command.Separator,
558
838
  {
559
839
  ref,
@@ -562,7 +842,7 @@ var CommandSeparator = React3.forwardRef(({ className, ...props }, ref) => /* @_
562
842
  }
563
843
  ));
564
844
  CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
565
- var CommandItem = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
845
+ var CommandItem = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
566
846
  import_cmdk.Command.Item,
567
847
  {
568
848
  ref,
@@ -575,7 +855,7 @@ var CommandItem = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
575
855
  ));
576
856
  CommandItem.displayName = import_cmdk.Command.Item.displayName;
577
857
  var CommandShortcut = ({ className, ...props }) => {
578
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
858
+ return /* @__PURE__ */ React5.createElement(
579
859
  "span",
580
860
  {
581
861
  className: cn("ml-auto text-xs tracking-widest text-neutral-500", className),
@@ -636,20 +916,19 @@ var geocode = async (address, key) => {
636
916
  };
637
917
 
638
918
  // src/components/ui/PlacesQueryInput.tsx
639
- var import_jsx_runtime11 = require("react/jsx-runtime");
640
919
  function PlacesQueryInput({
641
920
  apiKey,
642
921
  selected,
643
922
  onSelect,
644
923
  className
645
924
  }) {
646
- const [predictions, setPredictions] = (0, import_react3.useState)(null);
647
- const [input, setInput] = (0, import_react3.useState)(selected?.description ?? "");
648
- const [isLoadingPredictions, setIsLoadingPredictions] = (0, import_react3.useState)(false);
649
- const [shouldOpenUpward, setShouldOpenUpward] = (0, import_react3.useState)(false);
650
- const timeoutRef = (0, import_react3.useRef)(null);
651
- const inputRef = (0, import_react3.useRef)(null);
652
- const debouncedAutocomplete = (0, import_react3.useCallback)((value) => {
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) => {
653
932
  if (timeoutRef.current) {
654
933
  clearTimeout(timeoutRef.current);
655
934
  }
@@ -685,7 +964,7 @@ function PlacesQueryInput({
685
964
  setInput("");
686
965
  };
687
966
  const handleBlur = () => setTimeout(() => setPredictions(null), 200);
688
- (0, import_react3.useEffect)(() => {
967
+ (0, import_react7.useEffect)(() => {
689
968
  const checkDropdownPosition = () => {
690
969
  if (inputRef.current) {
691
970
  const rect = inputRef.current.getBoundingClientRect();
@@ -697,63 +976,53 @@ function PlacesQueryInput({
697
976
  window.addEventListener("resize", checkDropdownPosition);
698
977
  return () => window.removeEventListener("resize", checkDropdownPosition);
699
978
  }, []);
700
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(Command, { children: [
701
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "relative w-full", children: [
702
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
703
- CommandInput,
704
- {
705
- placeholder: "Type an address to search...",
706
- value: input,
707
- onValueChange: handleInputChange,
708
- className: "truncate pr-8"
709
- }
710
- ),
711
- isLoadingPredictions && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(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" }),
712
- input && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
713
- "button",
714
- {
715
- type: "button",
716
- 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",
717
- onClick: handleClear,
718
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_lucide_react8.CircleX, { className: "h-4 w-4 text-green-100" })
719
- }
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"
720
1001
  )
721
- ] }),
722
- predictions && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
723
- CommandList,
1002
+ },
1003
+ /* @__PURE__ */ React.createElement(CommandEmpty, null, "No results"),
1004
+ /* @__PURE__ */ React.createElement(CommandGroup, null, predictions.map((prediction) => /* @__PURE__ */ React.createElement(
1005
+ CommandItem,
724
1006
  {
725
- className: cn(
726
- "absolute z-50 w-full rounded-md border bg-white shadow-lg",
727
- shouldOpenUpward ? "bottom-full" : "top-full"
728
- ),
729
- children: [
730
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(CommandEmpty, { children: "No results" }),
731
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(CommandGroup, { children: predictions.map((prediction) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
732
- CommandItem,
733
- {
734
- onSelect: () => handleSelect(prediction),
735
- className: "truncate",
736
- children: prediction.description
737
- },
738
- prediction.place_id
739
- )) })
740
- ]
741
- }
742
- )
743
- ] }) });
1007
+ key: prediction.place_id,
1008
+ onSelect: () => handleSelect(prediction),
1009
+ className: "truncate"
1010
+ },
1011
+ prediction.description
1012
+ )))
1013
+ )));
744
1014
  }
745
1015
  var PlacesQueryInput_default = PlacesQueryInput;
746
1016
 
747
1017
  // src/components/ui/Select.tsx
748
1018
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
749
1019
  var import_lucide_react9 = require("lucide-react");
750
- var import_react4 = require("react");
1020
+ var import_react8 = require("react");
751
1021
 
752
1022
  // src/components/primitives/separator.tsx
753
1023
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
754
- var React4 = __toESM(require("react"), 1);
755
- var import_jsx_runtime12 = require("react/jsx-runtime");
756
- var Separator = React4.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1024
+ var React6 = __toESM(require("react"), 1);
1025
+ var Separator = React6.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ React6.createElement(
757
1026
  SeparatorPrimitive.Root,
758
1027
  {
759
1028
  ref,
@@ -770,8 +1039,7 @@ var Separator = React4.forwardRef(({ className, orientation = "horizontal", deco
770
1039
  Separator.displayName = SeparatorPrimitive.Root.displayName;
771
1040
 
772
1041
  // src/components/ui/Select.tsx
773
- var import_jsx_runtime13 = require("react/jsx-runtime");
774
- var Select = (0, import_react4.forwardRef)(
1042
+ var Select = (0, import_react8.forwardRef)(
775
1043
  ({
776
1044
  label,
777
1045
  options,
@@ -786,10 +1054,10 @@ var Select = (0, import_react4.forwardRef)(
786
1054
  ...props
787
1055
  }, ref) => {
788
1056
  const { value, defaultValue, dir, className, onChange, ...rest } = props;
789
- const [selected, setSelected] = (0, import_react4.useState)([]);
790
- const [open, setOpen] = (0, import_react4.useState)(false);
791
- const containerRef = (0, import_react4.useRef)(null);
792
- (0, import_react4.useEffect)(() => {
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)(() => {
793
1061
  if (!value) return setSelected([]);
794
1062
  setSelected(Array.isArray(value) ? value : [value]);
795
1063
  }, [value]);
@@ -808,148 +1076,127 @@ var Select = (0, import_react4.forwardRef)(
808
1076
  });
809
1077
  onChange?.(multiselect ? newSelected : newValue);
810
1078
  }
811
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
1079
+ return /* @__PURE__ */ React.createElement(
812
1080
  "div",
813
1081
  {
814
1082
  className: cn("flex w-full flex-col gap-1", className),
815
1083
  ref: containerRef,
816
- "data-testid": `${(label ?? id)?.toLowerCase()}-select-element`,
817
- children: [
818
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
819
- Label_default,
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,
820
1126
  {
821
- text: label,
822
- htmlFor: props.name,
823
- required: props.required,
824
- description,
825
- className: classNames?.label
1127
+ className: "transform text-black group-data-[state=open]:rotate-180",
1128
+ size: "16"
826
1129
  }
827
- ),
828
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
829
- SelectPrimitive.Root,
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,
830
1149
  {
831
- open,
832
- value: selected.join(","),
833
- onOpenChange: handleOnOpenChange,
834
- onValueChange: multiselect ? void 0 : handleChange,
835
- defaultValue: typeof defaultValue === "string" ? defaultValue : void 0,
836
- dir: dir === "rtl" ? "rtl" : "ltr",
837
- ...rest,
838
- children: [
839
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
840
- SelectPrimitive.Trigger,
841
- {
842
- ref,
843
- className: cn(
844
- "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",
845
- classNames?.trigger
846
- ),
847
- children: [
848
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "truncate", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
849
- SelectPrimitive.Value,
850
- {
851
- placeholder: placeholder ?? "Select an option",
852
- "aria-label": getLabel(),
853
- children: getLabel()
854
- }
855
- ) }),
856
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
857
- import_lucide_react9.ChevronDownIcon,
858
- {
859
- className: "transform text-black group-data-[state=open]:rotate-180",
860
- size: "16"
861
- }
862
- )
863
- ]
864
- }
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
865
1183
  ),
866
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectPrimitive.Portal, { container: containerRef.current, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
867
- SelectPrimitive.Content,
868
- {
869
- hideWhenDetached: true,
870
- className: cn(
871
- "z-10 max-h-[var(--radix-select-content-available-height)] overflow-hidden rounded-md bg-white py-2 shadow-lg",
872
- "w-[var(--radix-select-trigger-width)] min-w-[var(--radix-select-trigger-width)]",
873
- classNames?.content
874
- ),
875
- position: "popper",
876
- align: dropdownAlign,
877
- sideOffset: 4,
878
- onPointerDownOutside: toggleOpen,
879
- onKeyDown: closeOnEscape,
880
- children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(SelectPrimitive.Viewport, { children: [
881
- multiselect && !!chipLabels?.length && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
882
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
883
- SelectPrimitive.Group,
884
- {
885
- className: "mb-2 flex flex-row flex-wrap gap-1 px-2",
886
- "data-testid": "selected-labels",
887
- children: chipLabels?.map(
888
- (chip) => chip && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(Chip_default, { size: "small", variant: "primary", children: [
889
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { children: chip.title }),
890
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
891
- import_lucide_react9.X,
892
- {
893
- size: 18,
894
- "data-testid": `chip-remove-${chip.value}`,
895
- className: "cursor-pointer",
896
- onClick: () => handleChange(chip.value)
897
- }
898
- )
899
- ] }, chip.title)
900
- )
901
- }
902
- ),
903
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Separator, {})
904
- ] }),
905
- options?.map(({ id: id2, title, value: value2, description: description2 }) => /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
906
- SelectPrimitive.Item,
907
- {
908
- value: value2,
909
- className: cn(
910
- "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",
911
- classNames?.item
912
- ),
913
- "data-state": selected.includes(value2) ? "checked" : "unchecked",
914
- onKeyDown: (e) => setValueOnEnter(e, value2),
915
- onClick: () => handleChange(value2),
916
- children: [
917
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
918
- import_lucide_react9.CheckIcon,
919
- {
920
- className: cn(
921
- "absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block",
922
- classNames?.checkmark
923
- ),
924
- size: 16
925
- }
926
- ),
927
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(SelectPrimitive.ItemText, { children: title }),
928
- description2 && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "block text-sm text-grey-70", children: description2 })
929
- ]
930
- },
931
- id2
932
- )),
933
- !!footer && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
934
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Separator, {}),
935
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
936
- SelectPrimitive.Group,
937
- {
938
- className: "mt-2 flex flex-row flex-wrap gap-1 px-2",
939
- "data-testid": "selected-labels",
940
- children: footer
941
- }
942
- )
943
- ] })
944
- ] })
945
- }
946
- ) })
947
- ]
948
- }
949
- ),
950
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(ErrorMessage_default, { message: error })
951
- ]
952
- }
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 })
953
1200
  );
954
1201
  }
955
1202
  );
@@ -962,9 +1209,8 @@ var import_link = __toESM(require("next/link"), 1);
962
1209
 
963
1210
  // src/components/primitives/avatar.tsx
964
1211
  var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"), 1);
965
- var React5 = __toESM(require("react"), 1);
966
- var import_jsx_runtime14 = require("react/jsx-runtime");
967
- var AvatarBase = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1212
+ var React7 = __toESM(require("react"), 1);
1213
+ var AvatarBase = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
968
1214
  AvatarPrimitive.Root,
969
1215
  {
970
1216
  ref,
@@ -973,7 +1219,7 @@ var AvatarBase = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE_
973
1219
  }
974
1220
  ));
975
1221
  AvatarBase.displayName = AvatarPrimitive.Root.displayName;
976
- var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1222
+ var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
977
1223
  AvatarPrimitive.Image,
978
1224
  {
979
1225
  ref,
@@ -983,7 +1229,7 @@ var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
983
1229
  }
984
1230
  ));
985
1231
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
986
- var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1232
+ var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
987
1233
  AvatarPrimitive.Fallback,
988
1234
  {
989
1235
  ref,
@@ -997,17 +1243,13 @@ var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__P
997
1243
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
998
1244
 
999
1245
  // src/components/ui/Avatar.tsx
1000
- var import_jsx_runtime15 = require("react/jsx-runtime");
1001
1246
  function Avatar({ size, src, href, name, ...linkProps }) {
1002
1247
  const fallbackShort = name?.slice(0, 2);
1003
1248
  const fallbackWords = name?.split(" ").map((n) => n[0]).join("").slice(0, 2);
1004
1249
  const fallback = fallbackWords && fallbackWords.length > 1 ? fallbackWords : fallbackShort;
1005
- const renderAvatar = () => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(AvatarBase, { className: avatarVariants({ size }), children: [
1006
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(AvatarImage, { src, alt: name }),
1007
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(AvatarFallback, { children: fallback?.toUpperCase() })
1008
- ] });
1250
+ const renderAvatar = () => /* @__PURE__ */ React.createElement(AvatarBase, { className: avatarVariants({ size }) }, /* @__PURE__ */ React.createElement(AvatarImage, { src, alt: name }), /* @__PURE__ */ React.createElement(AvatarFallback, null, fallback?.toUpperCase()));
1009
1251
  if (href) {
1010
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_link.default, { href, ...linkProps, children: renderAvatar() });
1252
+ return /* @__PURE__ */ React.createElement(import_link.default, { href, ...linkProps }, renderAvatar());
1011
1253
  }
1012
1254
  return renderAvatar();
1013
1255
  }
@@ -1026,7 +1268,7 @@ var avatarVariants = (0, import_cva3.cva)("ring ring-white ring-2", {
1026
1268
 
1027
1269
  // src/components/ui/Badge.tsx
1028
1270
  var import_cva4 = require("cva");
1029
- var import_jsx_runtime16 = require("react/jsx-runtime");
1271
+ var React8 = __toESM(require("react"), 1);
1030
1272
  var badgeVariants = (0, import_cva4.cva)("rounded-full px-2 py-0.5 text-xs font-semibold", {
1031
1273
  variants: {
1032
1274
  variant: {
@@ -1040,31 +1282,42 @@ var badgeVariants = (0, import_cva4.cva)("rounded-full px-2 py-0.5 text-xs font-
1040
1282
  }
1041
1283
  });
1042
1284
  function Badge({ className, variant, ...props }) {
1043
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: cn(badgeVariants({ variant }), className), ...props });
1285
+ return /* @__PURE__ */ React8.createElement("div", { className: cn(badgeVariants({ variant }), className), ...props });
1044
1286
  }
1045
1287
 
1046
1288
  // src/components/ui/Button.tsx
1047
1289
  var import_react_slot = require("@radix-ui/react-slot");
1048
1290
  var import_cva5 = require("cva");
1049
- var import_react5 = require("react");
1050
- var import_jsx_runtime17 = require("react/jsx-runtime");
1051
- var Button = (0, import_react5.forwardRef)(
1052
- ({ className, variant, size, asChild = false, type = "button", ...props }, ref) => {
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) => {
1053
1304
  const Component = asChild ? import_react_slot.Slot : "button";
1054
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1305
+ return /* @__PURE__ */ import_react9.default.createElement(
1055
1306
  Component,
1056
1307
  {
1057
- className: cn(buttonVariants({ variant, size, className })),
1308
+ className: cn(buttonVariants({ variant, size, className, isLoading, asChild })),
1058
1309
  type,
1059
1310
  ref,
1060
1311
  ...props
1061
- }
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" })))
1062
1314
  );
1063
1315
  }
1064
1316
  );
1065
1317
  Button.displayName = "Button";
1066
1318
  var buttonVariants = (0, import_cva5.cva)(
1067
1319
  [
1320
+ "relative",
1068
1321
  "flex",
1069
1322
  "items-center",
1070
1323
  "justify-center",
@@ -1074,7 +1327,8 @@ var buttonVariants = (0, import_cva5.cva)(
1074
1327
  "outline-2",
1075
1328
  "outline-offset-2",
1076
1329
  "outline-dashed",
1077
- "outline-transparent"
1330
+ "outline-transparent",
1331
+ "overflow-hidden"
1078
1332
  ],
1079
1333
  {
1080
1334
  variants: {
@@ -1121,19 +1375,92 @@ var buttonVariants = (0, import_cva5.cva)(
1121
1375
  "focus:text-black",
1122
1376
  "focus:outline-purple-100",
1123
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"
1124
1436
  ]
1125
1437
  },
1126
1438
  size: {
1439
+ "extra-small": ["h-8", "text-xs", "px-3", "py-1"],
1127
1440
  small: ["h-10", "text-sm", "px-4", "py-2"],
1128
1441
  medium: ["h-12", "text-base", "px-6", "py-3"],
1129
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"]
1130
1450
  }
1131
1451
  },
1132
1452
  defaultVariants: {
1133
1453
  variant: "neutral",
1134
- size: "medium"
1454
+ size: "medium",
1455
+ isLoading: false,
1456
+ asChild: false
1135
1457
  },
1136
1458
  compoundVariants: [
1459
+ {
1460
+ variant: "link",
1461
+ size: "extra-small",
1462
+ class: ["h-3", "text-xs", "p-0"]
1463
+ },
1137
1464
  {
1138
1465
  variant: "link",
1139
1466
  size: "small",
@@ -1148,6 +1475,66 @@ var buttonVariants = (0, import_cva5.cva)(
1148
1475
  variant: "link",
1149
1476
  size: "large",
1150
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-2"]
1483
+ },
1484
+ {
1485
+ variant: "icon-outline",
1486
+ size: "small",
1487
+ class: ["h-10", "w-10", "p-3"]
1488
+ },
1489
+ {
1490
+ variant: "icon-outline",
1491
+ size: "medium",
1492
+ class: ["h-12", "w-12", "p-4"]
1493
+ },
1494
+ {
1495
+ variant: "icon-outline",
1496
+ size: "large",
1497
+ class: ["h-14", "w-14", "p-4"]
1498
+ },
1499
+ {
1500
+ variant: "icon-primary",
1501
+ size: "extra-small",
1502
+ class: ["h-8", "w-8", "p-2"]
1503
+ },
1504
+ {
1505
+ variant: "icon-primary",
1506
+ size: "small",
1507
+ class: ["h-10", "w-10", "p-3"]
1508
+ },
1509
+ {
1510
+ variant: "icon-primary",
1511
+ size: "medium",
1512
+ class: ["h-12", "w-12", "p-4"]
1513
+ },
1514
+ {
1515
+ variant: "icon-primary",
1516
+ size: "large",
1517
+ class: ["h-14", "w-14", "p-4"]
1518
+ },
1519
+ {
1520
+ variant: "icon-secondary",
1521
+ size: "extra-small",
1522
+ class: ["h-8", "w-8", "p-2"]
1523
+ },
1524
+ {
1525
+ variant: "icon-secondary",
1526
+ size: "small",
1527
+ class: ["h-10", "w-10", "p-3"]
1528
+ },
1529
+ {
1530
+ variant: "icon-secondary",
1531
+ size: "medium",
1532
+ class: ["h-12", "w-12", "p-4"]
1533
+ },
1534
+ {
1535
+ variant: "icon-secondary",
1536
+ size: "large",
1537
+ class: ["h-14", "w-14", "p-4"]
1151
1538
  }
1152
1539
  ]
1153
1540
  }
@@ -1155,16 +1542,15 @@ var buttonVariants = (0, import_cva5.cva)(
1155
1542
 
1156
1543
  // src/components/ui/Combobox.tsx
1157
1544
  var import_cva6 = require("cva");
1158
- var import_lucide_react10 = require("lucide-react");
1159
- var import_react6 = require("react");
1545
+ var import_lucide_react11 = require("lucide-react");
1546
+ var import_react10 = require("react");
1160
1547
 
1161
1548
  // src/components/primitives/popover.tsx
1162
1549
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
1163
- var React7 = __toESM(require("react"), 1);
1164
- var import_jsx_runtime18 = require("react/jsx-runtime");
1550
+ var React10 = __toESM(require("react"), 1);
1165
1551
  var Popover = PopoverPrimitive.Root;
1166
1552
  var PopoverTrigger = PopoverPrimitive.Trigger;
1167
- var PopoverContent = React7.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1553
+ var PopoverContent = React10.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React10.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React10.createElement(
1168
1554
  PopoverPrimitive.Content,
1169
1555
  {
1170
1556
  ref,
@@ -1176,12 +1562,11 @@ var PopoverContent = React7.forwardRef(({ className, align = "center", sideOffse
1176
1562
  ),
1177
1563
  ...props
1178
1564
  }
1179
- ) }));
1565
+ )));
1180
1566
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1181
1567
 
1182
1568
  // src/components/ui/Combobox.tsx
1183
- var import_jsx_runtime19 = require("react/jsx-runtime");
1184
- var Combobox = (0, import_react6.forwardRef)((props, ref) => {
1569
+ var Combobox = (0, import_react10.forwardRef)((props, ref) => {
1185
1570
  const {
1186
1571
  id,
1187
1572
  name,
@@ -1201,17 +1586,17 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
1201
1586
  onChange: handleChange,
1202
1587
  children: footer
1203
1588
  } = props;
1204
- const [selected, setSelected] = (0, import_react6.useState)([]);
1205
- const [open, setOpen] = (0, import_react6.useState)(false);
1206
- const isUserUpdate = (0, import_react6.useRef)(false);
1207
- const IconComponent = icon && import_lucide_react10.icons[icon];
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];
1208
1593
  const hideSearchBox = options?.length <= 5;
1209
1594
  const isDefault = variant === "default";
1210
1595
  const isChip = variant === "chip";
1211
1596
  const isEmpty = selected.length === 0;
1212
1597
  const showChevron = isDefault ? isEmpty : true;
1213
1598
  const close = () => setOpen(false);
1214
- (0, import_react6.useEffect)(() => {
1599
+ (0, import_react10.useEffect)(() => {
1215
1600
  if (!isUserUpdate.current) {
1216
1601
  const valueArray = multiselect ? value ?? [] : value ? [value] : [];
1217
1602
  setSelected(
@@ -1219,7 +1604,7 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
1219
1604
  );
1220
1605
  }
1221
1606
  }, [value, options, multiselect]);
1222
- (0, import_react6.useEffect)(() => {
1607
+ (0, import_react10.useEffect)(() => {
1223
1608
  if (isUserUpdate.current) {
1224
1609
  if (multiselect) {
1225
1610
  handleChange?.(selected.map((o) => o.value));
@@ -1251,111 +1636,91 @@ var Combobox = (0, import_react6.forwardRef)((props, ref) => {
1251
1636
  const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(", ") : placeholder;
1252
1637
  return isDefault ? defaultLabel : label;
1253
1638
  };
1254
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: cn("flex flex-col gap-1", className), children: [
1255
- isDefault && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1256
- Label_default,
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",
1257
1657
  {
1258
- text: label,
1259
- htmlFor: name,
1260
- required,
1261
- description,
1262
- className: classNames?.label
1263
- }
1264
- ),
1265
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "relative flex", children: [
1266
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
1267
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1268
- PopoverTrigger,
1269
- {
1270
- asChild: true,
1271
- disabled: options.length === 0,
1272
- "data-testid": `${id ?? name}-combobox-trigger`,
1273
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1274
- "div",
1275
- {
1276
- ref,
1277
- className: cn(
1278
- triggerVariants({ variant, size }),
1279
- isDefault && !isEmpty && "pr-10",
1280
- classNames?.trigger
1281
- ),
1282
- "aria-expanded": open,
1283
- children: [
1284
- isDefault && IconComponent && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(IconComponent, { className: "h-4 w-4 shrink-0" }),
1285
- isChip && !isEmpty && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Badge, { variant: "purple", children: selected.length }),
1286
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1287
- "span",
1288
- {
1289
- className: cn(
1290
- "w-full truncate leading-normal",
1291
- isDefault && isEmpty && "text-grey-40"
1292
- ),
1293
- children: handleDisplayValue()
1294
- }
1295
- ),
1296
- showChevron && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1297
- import_lucide_react10.ChevronDownIcon,
1298
- {
1299
- className: "shrink-0 transform group-data-[state=open]:rotate-180",
1300
- size: "16"
1301
- }
1302
- )
1303
- ]
1304
- }
1305
- )
1306
- }
1658
+ ref,
1659
+ className: cn(
1660
+ triggerVariants({ variant, size }),
1661
+ isDefault && !isEmpty && "pr-10",
1662
+ classNames?.trigger
1307
1663
  ),
1308
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1309
- PopoverContent,
1310
- {
1311
- className: cn(
1312
- "flex w-full max-w-xs flex-col overflow-hidden p-0",
1313
- "max-h-[--radix-popover-content-available-height]",
1314
- classNames?.content
1315
- ),
1316
- collisionPadding: 8,
1317
- sideOffset: 4,
1318
- align: "start",
1319
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(Command, { children: [
1320
- !hideSearchBox && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CommandInput, { placeholder: "Search..." }),
1321
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(CommandList, { children: [
1322
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CommandEmpty, { children: "No results" }),
1323
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(CommandGroup, { children: options.map(({ id: id2, ...option }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1324
- CommandItem,
1325
- {
1326
- value: option.title,
1327
- onSelect: () => handleSelect(option.value),
1328
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1329
- ListItem_default,
1330
- {
1331
- className: cn(classNames?.items, "truncate py-1"),
1332
- isSelected: selected.some((s) => s.value === option.value),
1333
- hasCheckbox: multiselect,
1334
- ...option
1335
- }
1336
- )
1337
- },
1338
- id2
1339
- )) })
1340
- ] }),
1341
- !!footer && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Separator, {}),
1342
- footer && footer({ close })
1343
- ] })
1344
- }
1345
- )
1346
- ] }),
1347
- isDefault && !isEmpty && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1348
- "button",
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",
1349
1670
  {
1350
- type: "button",
1351
- 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",
1352
- onClick: handleClear,
1353
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_lucide_react10.CircleX, { className: "h-4 w-4 text-green-100" })
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
1354
1712
  }
1355
1713
  )
1356
- ] }),
1357
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(ErrorMessage_default, { message: error })
1358
- ] });
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 }));
1359
1724
  });
1360
1725
  Combobox.displayName = "Combobox";
1361
1726
  var triggerVariants = (0, import_cva6.cva)(
@@ -1386,62 +1751,50 @@ var triggerVariants = (0, import_cva6.cva)(
1386
1751
 
1387
1752
  // src/components/ui/Switch.tsx
1388
1753
  var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"), 1);
1389
- var import_react7 = require("react");
1390
- var import_jsx_runtime20 = require("react/jsx-runtime");
1391
- var Switch = (0, import_react7.forwardRef)(
1754
+ var import_react11 = require("react");
1755
+ var Switch = (0, import_react11.forwardRef)(
1392
1756
  ({ label, error, className, ...props }, ref) => {
1393
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: cn("flex items-center", props.disabled && "opacity-50"), children: [
1394
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1395
- SwitchPrimitive.Root,
1396
- {
1397
- className: cn(
1398
- "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",
1399
- className
1400
- ),
1401
- ref,
1402
- ...props,
1403
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(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]" })
1404
- }
1405
- ),
1406
- label && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("label", { className: "pl-4 text-sm leading-none text-inherit", htmlFor: props.name, children: [
1407
- label,
1408
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ErrorMessage_default, { message: error, className: "mt-1" })
1409
- ] })
1410
- ] });
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" })));
1411
1769
  }
1412
1770
  );
1413
1771
  Switch.displayName = "Switch";
1414
1772
 
1415
1773
  // src/components/ui/Radio.tsx
1416
- var import_react9 = require("react");
1774
+ var import_react13 = require("react");
1417
1775
 
1418
1776
  // src/components/primitives/radio-group.tsx
1419
1777
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
1420
- var import_react8 = require("react");
1421
- var import_jsx_runtime21 = require("react/jsx-runtime");
1422
- var RadioGroup = (0, import_react8.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(RadioGroupPrimitive.Root, { className, ...props, ref }));
1778
+ var import_react12 = require("react");
1779
+ var RadioGroup = (0, import_react12.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(RadioGroupPrimitive.Root, { className, ...props, ref }));
1423
1780
  RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
1424
- var RadioGroupItem = (0, import_react8.forwardRef)(({ className, children, ...props }, ref) => {
1425
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "group flex flex-row items-center gap-2", children: [
1426
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
1427
- RadioGroupPrimitive.Item,
1428
- {
1429
- ref,
1430
- className: cn(
1431
- "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",
1432
- className
1433
- ),
1434
- ...props
1435
- }
1436
- ),
1437
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("label", { htmlFor: props.id, className: "text-sm peer-data-[disabled]:text-grey-40", children })
1438
- ] });
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));
1439
1793
  });
1440
1794
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
1441
1795
 
1442
1796
  // src/components/ui/Radio.tsx
1443
- var import_jsx_runtime22 = require("react/jsx-runtime");
1444
- var Radio = (0, import_react9.forwardRef)(
1797
+ var Radio = (0, import_react13.forwardRef)(
1445
1798
  ({
1446
1799
  label,
1447
1800
  error,
@@ -1452,46 +1805,41 @@ var Radio = (0, import_react9.forwardRef)(
1452
1805
  orientation,
1453
1806
  ...props
1454
1807
  }, ref) => {
1455
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: cn("flex flex-col gap-1", classNames?.root), children: [
1456
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Label_default, { text: label, description, required: props.required }),
1457
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1458
- RadioGroup,
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,
1459
1822
  {
1460
- ref,
1461
- className: cn(
1462
- "flex text-sm",
1463
- orientation === "vertical" ? "flex-col gap-2" : "flex-row gap-4",
1464
- classNames?.group
1465
- ),
1466
- onValueChange: handleValueChange,
1467
- ...props,
1468
- children: options?.map(({ id, title, value }) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1469
- RadioGroupItem,
1470
- {
1471
- value,
1472
- id: `radio-group-item-${title}`,
1473
- className: classNames?.item,
1474
- children: title
1475
- },
1476
- id
1477
- ))
1478
- }
1479
- ),
1480
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ErrorMessage_default, { message: error })
1481
- ] });
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 }));
1482
1831
  }
1483
1832
  );
1484
1833
  Radio.displayName = "Radio";
1485
1834
 
1486
1835
  // src/components/ui/Counter.tsx
1487
1836
  var import_cva7 = require("cva");
1488
- var import_lucide_react11 = require("lucide-react");
1489
- var import_react10 = require("react");
1490
- var import_jsx_runtime23 = require("react/jsx-runtime");
1491
- var Counter = (0, import_react10.forwardRef)(
1837
+ var import_lucide_react12 = require("lucide-react");
1838
+ var import_react14 = require("react");
1839
+ var Counter = (0, import_react14.forwardRef)(
1492
1840
  ({ label, error, min, max, step = 1, description, theme, value, classNames, onChange, ...props }, ref) => {
1493
- const [count, setCount] = (0, import_react10.useState)(0);
1494
- (0, import_react10.useEffect)(() => {
1841
+ const [count, setCount] = (0, import_react14.useState)(0);
1842
+ (0, import_react14.useEffect)(() => {
1495
1843
  setCount(value ?? 0);
1496
1844
  }, [value]);
1497
1845
  const handleChange = (e) => {
@@ -1522,56 +1870,50 @@ var Counter = (0, import_react10.forwardRef)(
1522
1870
  onChange?.(newValue);
1523
1871
  setCount(newValue);
1524
1872
  };
1525
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1873
+ return /* @__PURE__ */ React.createElement(
1526
1874
  "div",
1527
1875
  {
1528
1876
  className: cn("flex w-auto flex-col gap-1", classNames?.root),
1529
- "data-testid": `counter-wrapper-${props.id}`,
1530
- children: [
1531
- label && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1532
- Label_default,
1533
- {
1534
- text: label,
1535
- htmlFor: props.name,
1536
- required: props.required,
1537
- description,
1538
- className: classNames?.label
1539
- }
1540
- ),
1541
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "relative flex w-[122px] flex-row items-center", children: [
1542
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1543
- "button",
1544
- {
1545
- type: "button",
1546
- 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",
1547
- onClick: decrement,
1548
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react11.Minus, { className: "h-4 w-4 text-green-100" })
1549
- }
1550
- ),
1551
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1552
- "input",
1553
- {
1554
- className: cn(counterVariants({ theme }), classNames?.input),
1555
- ref,
1556
- value: count,
1557
- onChange: handleChange,
1558
- "data-testid": `counter-element-${props.id}`,
1559
- ...props
1560
- }
1561
- ),
1562
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1563
- "button",
1564
- {
1565
- type: "button",
1566
- 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",
1567
- onClick: increment,
1568
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react11.Plus, { className: "h-4 w-4 text-green-100" })
1569
- }
1570
- )
1571
- ] }),
1572
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(ErrorMessage_default, { message: error })
1573
- ]
1574
- }
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 })
1575
1917
  );
1576
1918
  }
1577
1919
  );
@@ -1629,13 +1971,12 @@ var counterVariants = (0, import_cva7.cva)(
1629
1971
  // src/components/ui/Icon.tsx
1630
1972
  var import_react_slot2 = require("@radix-ui/react-slot");
1631
1973
  var import_cva8 = require("cva");
1632
- var import_react11 = require("react");
1974
+ var import_react15 = require("react");
1633
1975
  var import_tailwind_merge3 = require("tailwind-merge");
1634
- var import_jsx_runtime24 = require("react/jsx-runtime");
1635
- var Icon = (0, import_react11.forwardRef)(
1976
+ var Icon = (0, import_react15.forwardRef)(
1636
1977
  ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
1637
1978
  const Component = readonly ? import_react_slot2.Slot : "button";
1638
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
1979
+ return /* @__PURE__ */ React.createElement(
1639
1980
  Component,
1640
1981
  {
1641
1982
  className: cn(
@@ -1704,14 +2045,13 @@ var iconVariants = (0, import_cva8.cva)(
1704
2045
  );
1705
2046
 
1706
2047
  // src/components/ui/InputOtp.tsx
1707
- var import_react12 = require("react");
2048
+ var import_react16 = require("react");
1708
2049
 
1709
2050
  // src/components/primitives/input-otp.tsx
1710
2051
  var import_input_otp = require("input-otp");
1711
- var import_lucide_react12 = require("lucide-react");
1712
- var React8 = __toESM(require("react"), 1);
1713
- var import_jsx_runtime25 = require("react/jsx-runtime");
1714
- var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
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(
1715
2055
  import_input_otp.OTPInput,
1716
2056
  {
1717
2057
  ref,
@@ -1724,12 +2064,12 @@ var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, r
1724
2064
  }
1725
2065
  ));
1726
2066
  InputOTP.displayName = "InputOTP";
1727
- var InputOTPGroup = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { ref, className: cn("flex items-center", className), ...props }));
2067
+ var InputOTPGroup = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React11.createElement("div", { ref, className: cn("flex items-center", className), ...props }));
1728
2068
  InputOTPGroup.displayName = "InputOTPGroup";
1729
- var InputOTPSlot = React8.forwardRef(({ index, error, className, ...props }, ref) => {
1730
- const inputOTPContext = React8.useContext(import_input_otp.OTPInputContext);
2069
+ var InputOTPSlot = React11.forwardRef(({ index, error, className, ...props }, ref) => {
2070
+ const inputOTPContext = React11.useContext(import_input_otp.OTPInputContext);
1731
2071
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
1732
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
2072
+ return /* @__PURE__ */ React11.createElement(
1733
2073
  "div",
1734
2074
  {
1735
2075
  ref,
@@ -1739,57 +2079,52 @@ var InputOTPSlot = React8.forwardRef(({ index, error, className, ...props }, ref
1739
2079
  error && "border-red-500 dark:border-red-400",
1740
2080
  className
1741
2081
  ),
1742
- ...props,
1743
- children: [
1744
- char,
1745
- hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { className: "h-4 w-px animate-caret-blink bg-neutral-950 duration-1000 dark:bg-neutral-50" }) })
1746
- ]
1747
- }
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" }))
1748
2086
  );
1749
2087
  });
1750
2088
  InputOTPSlot.displayName = "InputOTPSlot";
1751
- var InputOTPSeparator = React8.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_lucide_react12.Dot, {}) }));
2089
+ var InputOTPSeparator = React11.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React11.createElement("div", { ref, role: "separator", ...props }, /* @__PURE__ */ React11.createElement(import_lucide_react13.Dot, null)));
1752
2090
  InputOTPSeparator.displayName = "InputOTPSeparator";
1753
2091
 
1754
2092
  // src/components/ui/InputOtp.tsx
1755
- var import_jsx_runtime26 = require("react/jsx-runtime");
1756
- var InputOtp = (0, import_react12.forwardRef)(
2093
+ var InputOtp = (0, import_react16.forwardRef)(
1757
2094
  ({ digits, label, description, error, ...props }, ref) => {
1758
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2095
+ return /* @__PURE__ */ React.createElement(
1759
2096
  "div",
1760
2097
  {
1761
2098
  className: "group flex w-full flex-col gap-1",
1762
- "data-testid": `input-otp-wrapper-${props.id}`,
1763
- children: [
1764
- label && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1765
- Label_default,
1766
- {
1767
- text: label,
1768
- htmlFor: props.name,
1769
- required: props.required,
1770
- description
1771
- }
1772
- ),
1773
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "relative flex flex-row items-center", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1774
- InputOTP,
1775
- {
1776
- ref,
1777
- maxLength: digits,
1778
- "data-testid": `input-otp-element-${props.id}`,
1779
- ...props,
1780
- children: [...Array(digits)].map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(InputOTPGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1781
- InputOTPSlot,
1782
- {
1783
- "data-testid": `input-otp-slot-${index}`,
1784
- index,
1785
- error: Boolean(error)
1786
- }
1787
- ) }, index))
1788
- }
1789
- ) }),
1790
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ErrorMessage_default, { message: error })
1791
- ]
1792
- }
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 })
1793
2128
  );
1794
2129
  }
1795
2130
  );
@@ -1797,7 +2132,7 @@ InputOtp.displayName = "Input";
1797
2132
 
1798
2133
  // src/components/ui/LinkButton.tsx
1799
2134
  var import_link2 = __toESM(require("next/link"), 1);
1800
- var import_jsx_runtime27 = require("react/jsx-runtime");
2135
+ var import_react17 = __toESM(require("react"), 1);
1801
2136
  var LinkButton = ({
1802
2137
  disabled = false,
1803
2138
  useAnchor = false,
@@ -1806,27 +2141,26 @@ var LinkButton = ({
1806
2141
  ...props
1807
2142
  }) => {
1808
2143
  const Component = useAnchor ? "a" : import_link2.default;
1809
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
2144
+ return /* @__PURE__ */ import_react17.default.createElement(
1810
2145
  Component,
1811
2146
  {
1812
2147
  href,
1813
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" : ""} `,
1814
2149
  ...disabled && { "aria-disabled": true, tabIndex: -1 },
1815
- ...props,
1816
- children
1817
- }
2150
+ ...props
2151
+ },
2152
+ children
1818
2153
  );
1819
2154
  };
1820
2155
 
1821
2156
  // src/components/ui/ReadMore.tsx
1822
- var import_react13 = require("react");
2157
+ var import_react18 = require("react");
1823
2158
  var import_react_markdown = __toESM(require("react-markdown"), 1);
1824
- var import_jsx_runtime28 = require("react/jsx-runtime");
1825
2159
  function ReadMore({ text, ...props }) {
1826
- const [isExpanded, setIsExpanded] = (0, import_react13.useState)(false);
1827
- const [maxWords, setMaxWords] = (0, import_react13.useState)(160);
2160
+ const [isExpanded, setIsExpanded] = (0, import_react18.useState)(false);
2161
+ const [maxWords, setMaxWords] = (0, import_react18.useState)(160);
1828
2162
  const isOverMaxWords = text.split(" ").length > maxWords;
1829
- (0, import_react13.useEffect)(() => {
2163
+ (0, import_react18.useEffect)(() => {
1830
2164
  const updateMaxWords = () => {
1831
2165
  const windowWidth = window.innerWidth;
1832
2166
  if (windowWidth <= 768) {
@@ -1848,39 +2182,33 @@ function ReadMore({ text, ...props }) {
1848
2182
  }
1849
2183
  const toggleText = () => setIsExpanded(!isExpanded);
1850
2184
  const snippet = createReadMoreText(text, maxWords, isExpanded);
1851
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { ...props, children: [
1852
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_markdown.default, { children: snippet }) }),
1853
- isOverMaxWords && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1854
- Button,
1855
- {
1856
- type: "button",
1857
- className: "mt-2 flex items-center justify-center",
1858
- variant: "link",
1859
- onClick: toggleText,
1860
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("p", { className: "text-sm font-bold underline underline-offset-2", children: [
1861
- "Read ",
1862
- isExpanded ? "less" : "more"
1863
- ] })
1864
- }
1865
- )
1866
- ] });
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
+ ));
1867
2195
  }
1868
2196
 
1869
2197
  // src/components/ui/DatePicker.tsx
1870
2198
  var import_cva9 = require("cva");
1871
2199
  var import_date_fns = require("date-fns");
1872
- var import_lucide_react14 = require("lucide-react");
1873
- var import_react14 = require("react");
2200
+ var import_lucide_react15 = require("lucide-react");
2201
+ var import_react19 = require("react");
1874
2202
 
1875
2203
  // src/components/ui/calendar.tsx
1876
- var import_lucide_react13 = require("lucide-react");
2204
+ var import_lucide_react14 = require("lucide-react");
2205
+ var React14 = __toESM(require("react"), 1);
1877
2206
  var import_react_day_picker = require("react-day-picker");
1878
2207
 
1879
2208
  // src/components/ui/buttonShadcn.tsx
1880
2209
  var import_react_slot3 = require("@radix-ui/react-slot");
1881
2210
  var import_class_variance_authority = require("class-variance-authority");
1882
- var React9 = __toESM(require("react"), 1);
1883
- var import_jsx_runtime29 = require("react/jsx-runtime");
2211
+ var React13 = __toESM(require("react"), 1);
1884
2212
  var buttonVariants2 = (0, import_class_variance_authority.cva)(
1885
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",
1886
2214
  {
@@ -1906,18 +2234,17 @@ var buttonVariants2 = (0, import_class_variance_authority.cva)(
1906
2234
  }
1907
2235
  }
1908
2236
  );
1909
- var Button2 = React9.forwardRef(
2237
+ var Button2 = React13.forwardRef(
1910
2238
  ({ className, variant, size, asChild = false, ...props }, ref) => {
1911
2239
  const Comp = asChild ? import_react_slot3.Slot : "button";
1912
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Comp, { className: cn(buttonVariants2({ variant, size, className })), ref, ...props });
2240
+ return /* @__PURE__ */ React13.createElement(Comp, { className: cn(buttonVariants2({ variant, size, className })), ref, ...props });
1913
2241
  }
1914
2242
  );
1915
2243
  Button2.displayName = "Button";
1916
2244
 
1917
2245
  // src/components/ui/calendar.tsx
1918
- var import_jsx_runtime30 = require("react/jsx-runtime");
1919
2246
  function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1920
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
2247
+ return /* @__PURE__ */ React14.createElement(
1921
2248
  import_react_day_picker.DayPicker,
1922
2249
  {
1923
2250
  showOutsideDays,
@@ -1957,8 +2284,8 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1957
2284
  ...classNames
1958
2285
  },
1959
2286
  components: {
1960
- IconLeft: ({ className: className2, ...props2 }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react13.ChevronLeft, { className: cn("h-4 w-4", className2), ...props2 }),
1961
- IconRight: ({ className: className2, ...props2 }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_lucide_react13.ChevronRight, { className: cn("h-4 w-4", className2), ...props2 })
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 })
1962
2289
  },
1963
2290
  ...props
1964
2291
  }
@@ -1967,11 +2294,10 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1967
2294
  Calendar.displayName = "Calendar";
1968
2295
 
1969
2296
  // src/components/ui/DatePicker.tsx
1970
- var import_jsx_runtime31 = require("react/jsx-runtime");
1971
- var DatePicker = (0, import_react14.forwardRef)(
2297
+ var DatePicker = (0, import_react19.forwardRef)(
1972
2298
  ({ label, description, required, classNames, value, onChange, error, id, testId }, ref) => {
1973
- const [date, setDate] = (0, import_react14.useState)(null);
1974
- (0, import_react14.useEffect)(() => {
2299
+ const [date, setDate] = (0, import_react19.useState)(null);
2300
+ (0, import_react19.useEffect)(() => {
1975
2301
  setDate(value ?? null);
1976
2302
  }, [value]);
1977
2303
  const handleDateSelect = (dateSelected) => {
@@ -1979,35 +2305,25 @@ var DatePicker = (0, import_react14.forwardRef)(
1979
2305
  onChange?.(dateSelected);
1980
2306
  setDate(dateSelected);
1981
2307
  };
1982
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { id, className: cn("flex w-auto flex-col gap-1"), children: [
1983
- label && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1984
- Label_default,
1985
- {
1986
- text: label,
1987
- required,
1988
- description,
1989
- className: classNames?.label
1990
- }
1991
- ),
1992
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Popover, { children: [
1993
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: cn(datePickerStyle(), classNames?.input), children: [
1994
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_lucide_react14.Calendar, { size: 16 }),
1995
- date ? (0, import_date_fns.format)(date, "MM/dd/yyyy") : "Select a date"
1996
- ] }) }),
1997
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(PopoverContent, { ref, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
1998
- Calendar,
1999
- {
2000
- mode: "single",
2001
- selected: date || void 0,
2002
- onSelect: handleDateSelect,
2003
- captionLayout: "dropdown",
2004
- showOutsideDays: true,
2005
- className: classNames?.calendar
2006
- }
2007
- ) })
2008
- ] }),
2009
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ErrorMessage_default, { message: error })
2010
- ] });
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 }));
2011
2327
  }
2012
2328
  );
2013
2329
  var datePickerStyle = (0, import_cva9.cva)([
@@ -2045,7 +2361,6 @@ var datePickerStyle = (0, import_cva9.cva)([
2045
2361
  // src/components/ui/StepTabs.tsx
2046
2362
  var Tabs = __toESM(require("@radix-ui/react-tabs"), 1);
2047
2363
  var import_cva10 = require("cva");
2048
- var import_jsx_runtime32 = require("react/jsx-runtime");
2049
2364
  var tabParentVariants = (0, import_cva10.cva)("flex flex-col", {
2050
2365
  variants: {
2051
2366
  variant: {
@@ -2096,45 +2411,42 @@ function StepTabs({
2096
2411
  variant,
2097
2412
  ...props
2098
2413
  }) {
2099
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2414
+ return /* @__PURE__ */ React.createElement(
2100
2415
  Tabs.Root,
2101
2416
  {
2102
2417
  value: currentStep,
2103
2418
  onValueChange: setCurrentStep,
2104
2419
  defaultValue: defaultValue ?? "0",
2105
2420
  className: cn(tabParentVariants({ variant }), className),
2106
- ...props,
2107
- children: [
2108
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Tabs.List, { className: cn(headerVariants({ variant })), children: list.length > 1 && list.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2109
- Tabs.Trigger,
2110
- {
2111
- className: cn(singleTabVariants({ variant }), classNameTab),
2112
- value: index.toString(),
2113
- children: item
2114
- },
2115
- `${item}-${index}`
2116
- )) }),
2117
- children && children.map((child, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2118
- Tabs.Content,
2119
- {
2120
- className: cn(
2121
- "grow rounded-b-md bg-white p-5 outline-none",
2122
- variant === "minimal" && "border-t"
2123
- ),
2124
- value: index.toString(),
2125
- children: child
2126
- },
2127
- index
2128
- ))
2129
- ]
2130
- }
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
+ ))
2131
2444
  );
2132
2445
  }
2133
2446
 
2134
2447
  // src/components/ui/DismissibleBanner.tsx
2135
- var import_lucide_react15 = require("lucide-react");
2136
- var import_react15 = require("react");
2137
- var import_jsx_runtime33 = require("react/jsx-runtime");
2448
+ var import_lucide_react16 = require("lucide-react");
2449
+ var import_react20 = require("react");
2138
2450
  function DismissibleBanner({
2139
2451
  children,
2140
2452
  cookieId,
@@ -2143,8 +2455,8 @@ function DismissibleBanner({
2143
2455
  buttonClassNames
2144
2456
  }) {
2145
2457
  const safeId = encodeURIComponent(cookieId);
2146
- const [isVisible, setIsVisible] = (0, import_react15.useState)(false);
2147
- (0, import_react15.useEffect)(() => {
2458
+ const [isVisible, setIsVisible] = (0, import_react20.useState)(false);
2459
+ (0, import_react20.useEffect)(() => {
2148
2460
  const cookies = document.cookie.split(";");
2149
2461
  const isDismissed = cookies.some((cookie) => cookie.trim().startsWith(`${safeId}=true`));
2150
2462
  if (!isDismissed) {
@@ -2156,26 +2468,24 @@ function DismissibleBanner({
2156
2468
  setIsVisible(false);
2157
2469
  };
2158
2470
  if (!isVisible) return null;
2159
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
2471
+ return /* @__PURE__ */ React.createElement(
2160
2472
  "nav",
2161
2473
  {
2162
2474
  className: cn(
2163
2475
  "align-center flex w-full items-center justify-between gap-2 bg-blue-100 px-4 py-3",
2164
2476
  className
2165
- ),
2166
- children: [
2167
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: cn("w-full text-center text-sm text-green-100", textClassNames), children }),
2168
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2169
- "button",
2170
- {
2171
- className: cn("text-green-100", buttonClassNames),
2172
- "aria-label": "Close banner",
2173
- onClick: handleDismiss,
2174
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_lucide_react15.X, { size: 28 })
2175
- }
2176
- )
2177
- ]
2178
- }
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
+ )
2179
2489
  );
2180
2490
  }
2181
2491
 
@@ -2609,17 +2919,12 @@ function salaryRange(salary, showUnitText = true) {
2609
2919
  }
2610
2920
 
2611
2921
  // src/components/company/CompanyBenefits.tsx
2612
- var import_jsx_runtime34 = require("react/jsx-runtime");
2613
2922
  function CompanyBenefits({ benefits }) {
2614
2923
  if (!benefits) return null;
2615
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
2616
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h2", { className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg", children: "Company benefits" }),
2617
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
2618
- ] });
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))));
2619
2925
  }
2620
2926
 
2621
2927
  // src/components/company/CompanyInformation.tsx
2622
- var import_jsx_runtime35 = require("react/jsx-runtime");
2623
2928
  function CompanyInformation({
2624
2929
  name,
2625
2930
  how,
@@ -2627,116 +2932,81 @@ function CompanyInformation({
2627
2932
  wow,
2628
2933
  website
2629
2934
  }) {
2630
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex flex-col gap-2", children: [
2631
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
2632
- "h2",
2633
- {
2634
- "data-testid": "company-name",
2635
- className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg",
2636
- children: [
2637
- "About ",
2638
- name
2639
- ]
2640
- }
2641
- ),
2642
- how && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
2643
- mission && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex gap-2", children: [
2644
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: "\u{1F680}" }),
2645
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { className: "text-base text-grey-80", children: [
2646
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "pr-1 font-bold", children: "Mission" }),
2647
- mission
2648
- ] })
2649
- ] }),
2650
- wow && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex gap-2", children: [
2651
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: "\u{1F31F}" }),
2652
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("p", { className: "text-base text-grey-80", children: [
2653
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
2654
- wow
2655
- ] })
2656
- ] }),
2657
- website && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "pt-2", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2658
- LinkButton,
2659
- {
2660
- "data-testid": "company-website-link",
2661
- href: website,
2662
- target: "_blank",
2663
- rel: "noopener noreferrer",
2664
- children: "Website"
2665
- }
2666
- ) })
2667
- ] });
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
+ )));
2668
2953
  }
2669
2954
 
2670
2955
  // src/components/company/CompanyTake.tsx
2671
- var import_jsx_runtime36 = require("react/jsx-runtime");
2672
2956
  function CompanyTake({ content, avatarSrc }) {
2673
2957
  if (!content) return null;
2674
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
2958
+ return /* @__PURE__ */ React.createElement(
2675
2959
  "div",
2676
2960
  {
2677
2961
  "data-testid": "company-take",
2678
- className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6",
2679
- children: [
2680
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-lg font-bold text-white sm:text-xl", children: "The Real Dill \u2618\uFE0F" }),
2681
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "mt-2 flex items-center justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-sm font-normal text-grey-10", children: content }) }),
2682
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "mt-8 flex w-full items-center gap-3", children: [
2683
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Avatar, { name: "Jon Lee", src: avatarSrc }),
2684
- /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col flex-wrap items-start", children: [
2685
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-sm font-bold text-white", children: "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA" }),
2686
- /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-xs font-normal text-grey-30", children: "Pickle co-founder" })
2687
- ] })
2688
- ] })
2689
- ]
2690
- }
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")))
2691
2967
  );
2692
2968
  }
2693
2969
 
2694
2970
  // src/components/jobPost/JobDescription.tsx
2695
- var import_jsx_runtime37 = require("react/jsx-runtime");
2696
2971
  function JobDescription({ description }) {
2697
2972
  if (!description) return null;
2698
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex w-full flex-col gap-2", children: [
2699
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h3", { className: "text-xl font-bold", children: "Job Description" }),
2700
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ReadMore, { text: description })
2701
- ] });
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 }));
2702
2974
  }
2703
2975
 
2704
2976
  // src/components/jobPost/JobHeader.tsx
2705
- var import_lucide_react18 = require("lucide-react");
2977
+ var import_lucide_react19 = require("lucide-react");
2706
2978
  var import_image = __toESM(require("next/image"), 1);
2707
2979
 
2708
2980
  // src/components/buttons/BackButton.tsx
2709
- var import_lucide_react16 = require("lucide-react");
2981
+ var import_lucide_react17 = require("lucide-react");
2710
2982
  var import_navigation2 = require("next/navigation");
2711
2983
 
2712
2984
  // src/hooks/useWindowHistory.ts
2713
- var import_react17 = require("react");
2985
+ var import_react22 = require("react");
2714
2986
 
2715
2987
  // src/contexts/WindowHistoryProvider.tsx
2716
2988
  var import_navigation = require("next/navigation");
2717
- var import_react16 = require("react");
2718
- var import_jsx_runtime38 = require("react/jsx-runtime");
2719
- var WindowHistoryContext = (0, import_react16.createContext)({});
2989
+ var import_react21 = require("react");
2990
+ var WindowHistoryContext = (0, import_react21.createContext)({});
2720
2991
  function WindowHistoryProvider({ children }) {
2721
- const [history, setHistory] = (0, import_react16.useState)([]);
2992
+ const [history, setHistory] = (0, import_react21.useState)([]);
2722
2993
  const searchParams = (0, import_navigation.useSearchParams)();
2723
- (0, import_react16.useEffect)(() => {
2994
+ (0, import_react21.useEffect)(() => {
2724
2995
  setHistory(
2725
2996
  (prev) => prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]
2726
2997
  );
2727
2998
  }, [searchParams]);
2728
- const contextValue = (0, import_react16.useMemo)(() => ({ history }), [history]);
2729
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(WindowHistoryContext.Provider, { value: contextValue, children });
2999
+ const contextValue = (0, import_react21.useMemo)(() => ({ history }), [history]);
3000
+ return /* @__PURE__ */ React.createElement(WindowHistoryContext.Provider, { value: contextValue }, children);
2730
3001
  }
2731
3002
 
2732
3003
  // src/hooks/useWindowHistory.ts
2733
3004
  function useWindowHistory() {
2734
- const windowHistoryContext = (0, import_react17.useContext)(WindowHistoryContext);
3005
+ const windowHistoryContext = (0, import_react22.useContext)(WindowHistoryContext);
2735
3006
  return windowHistoryContext;
2736
3007
  }
2737
3008
 
2738
3009
  // src/components/buttons/BackButton.tsx
2739
- var import_jsx_runtime39 = require("react/jsx-runtime");
2740
3010
  function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
2741
3011
  const { history } = useWindowHistory();
2742
3012
  const router = (0, import_navigation2.useRouter)();
@@ -2749,7 +3019,7 @@ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
2749
3019
  router.push(fallbackHref ?? "/");
2750
3020
  }
2751
3021
  };
2752
- return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
3022
+ return /* @__PURE__ */ React.createElement(
2753
3023
  Icon,
2754
3024
  {
2755
3025
  "aria-label": "back button",
@@ -2757,39 +3027,38 @@ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
2757
3027
  size: "small",
2758
3028
  onClick: goBack,
2759
3029
  className,
2760
- ...props,
2761
- children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_lucide_react16.X, {})
2762
- }
3030
+ ...props
3031
+ },
3032
+ /* @__PURE__ */ React.createElement(import_lucide_react17.X, null)
2763
3033
  );
2764
3034
  }
2765
3035
 
2766
3036
  // src/lib/icons.ts
2767
- var import_lucide_react17 = require("lucide-react");
3037
+ var import_lucide_react18 = require("lucide-react");
2768
3038
  var iconMap = {
2769
- house: import_lucide_react17.Home,
2770
- layers: import_lucide_react17.Layers,
2771
- users: import_lucide_react17.Users,
2772
- settings: import_lucide_react17.Settings,
2773
- building: import_lucide_react17.Building,
2774
- bell: import_lucide_react17.Bell,
2775
- wallet: import_lucide_react17.Wallet,
2776
- contact: import_lucide_react17.Contact,
2777
- banknote: import_lucide_react17.Banknote,
2778
- "message-square-dot": import_lucide_react17.MessageSquareDot,
2779
- "life-buoy": import_lucide_react17.LifeBuoy,
2780
- "building-2": import_lucide_react17.Building2,
2781
- "gallery-vertical-end": import_lucide_react17.GalleryVerticalEnd,
2782
- "square-kanban": import_lucide_react17.SquareKanban,
2783
- "briefcase-business": import_lucide_react17.BriefcaseBusiness,
2784
- "circle-user": import_lucide_react17.CircleUser,
2785
- "key-round": import_lucide_react17.KeyRound,
2786
- "clock-2": import_lucide_react17.Clock2,
2787
- "circle-user-round": import_lucide_react17.CircleUserRound,
2788
- "map-pin": import_lucide_react17.MapPin
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
2789
3059
  };
2790
3060
 
2791
3061
  // src/components/jobPost/JobHeader.tsx
2792
- var import_jsx_runtime40 = require("react/jsx-runtime");
2793
3062
  function JobHeader({
2794
3063
  title,
2795
3064
  subtitles,
@@ -2805,130 +3074,111 @@ function JobHeader({
2805
3074
  }) {
2806
3075
  const renderIcon = (icon) => {
2807
3076
  const Icon2 = iconMap[icon];
2808
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Icon2, { size: 18 });
3077
+ return /* @__PURE__ */ React.createElement(Icon2, { size: 18 });
2809
3078
  };
2810
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
3079
+ return /* @__PURE__ */ React.createElement(
2811
3080
  "div",
2812
3081
  {
2813
3082
  "data-testid": "job-header-root",
2814
3083
  className: cn(
2815
3084
  "-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0",
2816
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
2817
3154
  ),
2818
- children: [
2819
- !standalone && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("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", children: [
2820
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2821
- import_image.default,
2822
- {
2823
- className: "h-full w-full rounded-t-3xl object-cover",
2824
- src: bannerSrc,
2825
- alt: "job banner",
2826
- fill: true
2827
- }
2828
- ),
2829
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2830
- BackButton,
2831
- {
2832
- acceptedRoutes: backAcceptedRoutes,
2833
- fallbackHref: backFallbackHref,
2834
- className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
2835
- "data-testid": "job-header-back-button"
2836
- }
2837
- ),
2838
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2839
- "div",
2840
- {
2841
- className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
2842
- "data-testid": "job-header-avatar",
2843
- children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2844
- Avatar,
2845
- {
2846
- size: "large",
2847
- target: "_blank",
2848
- href: avatarHref,
2849
- name: avatarName,
2850
- src: avatarSrc,
2851
- rel: "noopener noreferrer"
2852
- }
2853
- )
2854
- }
2855
- )
2856
- ] }),
2857
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6", children: [
2858
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex flex-col md:flex-row", children: [
2859
- standalone && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar", children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2860
- Avatar,
2861
- {
2862
- size: "large",
2863
- target: "_blank",
2864
- href: avatarHref,
2865
- name: avatarName,
2866
- src: avatarSrc,
2867
- rel: "noopener noreferrer"
2868
- }
2869
- ) }),
2870
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg", children: subtitles?.map((subtitle, i) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2871
- "div",
2872
- {
2873
- "data-testid": `job-header-subtitle-${i}`,
2874
- className: "flex items-center",
2875
- children: [
2876
- subtitle,
2877
- i < subtitles.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_lucide_react18.Dot, { className: "mx-1 shrink-0", size: 10 })
2878
- ]
2879
- },
2880
- subtitle
2881
- )) })
2882
- ] }),
2883
- /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2884
- "div",
2885
- {
2886
- "data-testid": "job-header-content",
2887
- className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1",
2888
- children: [
2889
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2890
- "h2",
2891
- {
2892
- "data-testid": "job-header-title",
2893
- className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg",
2894
- children: title
2895
- }
2896
- ),
2897
- !!actions && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2898
- "div",
2899
- {
2900
- className: "flex w-full justify-end gap-2 md:w-auto",
2901
- "data-testid": "job-header-actions",
2902
- children: actions
2903
- }
2904
- )
2905
- ]
2906
- }
2907
- ),
2908
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
2909
- "div",
2910
- {
2911
- "data-testid": "job-header-tags",
2912
- className: "flex flex-row flex-wrap items-center justify-start gap-2",
2913
- children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
2914
- Chip_default,
2915
- {
2916
- size: "small",
2917
- variant: "neutral",
2918
- "aria-label": name,
2919
- "data-testid": `job-header-tag-${name}`,
2920
- children: [
2921
- renderIcon(icon),
2922
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: label })
2923
- ]
2924
- },
2925
- `${name}-${label}`
2926
- ))
2927
- }
2928
- )
2929
- ] })
2930
- ]
2931
- }
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
+ ))
2932
3182
  );
2933
3183
  }
2934
3184
 
@@ -2936,7 +3186,7 @@ function JobHeader({
2936
3186
  var DateFns = __toESM(require("date-fns"), 1);
2937
3187
 
2938
3188
  // src/hooks/useDisplayText.ts
2939
- var import_react18 = require("react");
3189
+ var import_react23 = require("react");
2940
3190
 
2941
3191
  // src/lib/mappings.ts
2942
3192
  var employmentTypeDisplayText = {
@@ -3380,9 +3630,9 @@ var DisplayTextService = class {
3380
3630
 
3381
3631
  // src/hooks/useDisplayText.ts
3382
3632
  var useDisplayText = (scope, value) => {
3383
- const [displayText, setDisplayText] = (0, import_react18.useState)("");
3384
- const displayService = (0, import_react18.useMemo)(() => new DisplayTextService(), []);
3385
- (0, import_react18.useEffect)(() => {
3633
+ const [displayText, setDisplayText] = (0, import_react23.useState)("");
3634
+ const displayService = (0, import_react23.useMemo)(() => new DisplayTextService(), []);
3635
+ (0, import_react23.useEffect)(() => {
3386
3636
  if (!displayService || !value) {
3387
3637
  setDisplayText("");
3388
3638
  return;
@@ -3443,7 +3693,6 @@ function getAddressList(jobPost) {
3443
3693
  }
3444
3694
 
3445
3695
  // src/components/jobPost/JobPost.tsx
3446
- var import_jsx_runtime41 = require("react/jsx-runtime");
3447
3696
  function JobPost({
3448
3697
  job,
3449
3698
  bannerSrc,
@@ -3489,97 +3738,80 @@ function JobPost({
3489
3738
  label
3490
3739
  }))
3491
3740
  ].filter((t) => !!t);
3492
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
3741
+ return /* @__PURE__ */ React.createElement(
3493
3742
  "div",
3494
3743
  {
3495
3744
  className: cn(
3496
3745
  "flex flex-col gap-10 pb-4",
3497
3746
  !standalone && "border-1 rounded-3xl border-grey-5"
3498
- ),
3499
- children: [
3500
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3501
- JobHeader,
3502
- {
3503
- title: job.title,
3504
- bannerSrc,
3505
- avatarName: job.hiringOrganization?.companyName,
3506
- avatarSrc: job.hiringOrganization?.logo?.asset?.url,
3507
- subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
3508
- actions,
3509
- standalone,
3510
- avatarHref,
3511
- backFallbackHref: fallbackHref,
3512
- backAcceptedRoutes,
3513
- tags
3514
- }
3515
- ),
3516
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-col gap-8 px-6", children: [
3517
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(JobDescription, { description: job.description }),
3518
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3519
- CompanyTake,
3520
- {
3521
- avatarSrc,
3522
- content: job.hiringOrganization?.companyNDG?.companyNDGTake
3523
- }
3524
- ),
3525
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3526
- CompanyInformation,
3527
- {
3528
- name: job.hiringOrganization?.companyName ?? "",
3529
- how: job.hiringOrganization?.companyPhilosophy?.companyHow,
3530
- mission: job.hiringOrganization?.companyPhilosophy?.companyMission,
3531
- wow: job.hiringOrganization?.companyNDG?.companyWow,
3532
- website: job.hiringOrganization?.companyWebsite
3533
- }
3534
- ),
3535
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
3536
- CompanyBenefits,
3537
- {
3538
- benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.title).filter((d) => d !== void 0)
3539
- }
3540
- )
3541
- ] })
3542
- ]
3543
- }
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
+ ))
3544
3786
  );
3545
3787
  }
3546
3788
 
3547
3789
  // src/components/jobCard/JobLocation.tsx
3548
- var import_lucide_react19 = require("lucide-react");
3549
- var import_jsx_runtime42 = require("react/jsx-runtime");
3790
+ var import_lucide_react20 = require("lucide-react");
3550
3791
  function JobLocation({ jobPost }) {
3551
3792
  const locations = getAddressList(jobPost);
3552
3793
  if (!locations || locations.length === 0) return null;
3553
3794
  const primaryOffice = locations[0];
3554
3795
  const extendedLocations = locations.slice(1).map((address) => address);
3555
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "flex items-center gap-2", "data-testid": "job-location-element", children: [
3556
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_lucide_react19.MapPin, { size: 16 }),
3557
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "text-sm font-thin", children: primaryOffice }),
3558
- extendedLocations.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(Tooltip, { children: [
3559
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(TooltipTrigger, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
3560
- Chip_default,
3561
- {
3562
- className: "font-bold",
3563
- size: "small",
3564
- variant: "jobLocation",
3565
- "data-testid": "job-location-tooltip",
3566
- children: [
3567
- "+ ",
3568
- extendedLocations.length,
3569
- " more"
3570
- ]
3571
- }
3572
- ) }),
3573
- /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
3574
- TooltipContent,
3575
- {
3576
- className: "border-1 rounded-md border border-grey-5 bg-white p-2",
3577
- "data-testid": "job-location-tooltip-content",
3578
- children: extendedLocations.map((location) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "text-nowrap text-sm", children: location }, location))
3579
- }
3580
- )
3581
- ] }) })
3582
- ] });
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
+ ))));
3583
3815
  }
3584
3816
 
3585
3817
  // src/types/data/company_service_latest.ts