@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.js CHANGED
@@ -6,9 +6,9 @@ var __export = (target, all) => {
6
6
 
7
7
  // src/components/ui/Chip.tsx
8
8
  import { cva } from "cva";
9
+ import React2 from "react";
9
10
  import { twMerge } from "tailwind-merge";
10
- import { jsx } from "react/jsx-runtime";
11
- var Chip = ({ className, variant, size, ...props }) => /* @__PURE__ */ jsx("div", { className: twMerge(chipVariants({ variant, size, className })), ...props });
11
+ var Chip = ({ className, variant, size, ...props }) => /* @__PURE__ */ React2.createElement("div", { className: twMerge(chipVariants({ variant, size, className })), ...props });
12
12
  var chipVariants = cva(["flex", "items-center", "rounded-3xl", "border", "w-fit"], {
13
13
  variants: {
14
14
  variant: {
@@ -44,10 +44,9 @@ function cn(...inputs) {
44
44
  }
45
45
 
46
46
  // src/components/ui/ErrorMessage.tsx
47
- import { jsx as jsx2 } from "react/jsx-runtime";
48
47
  function ErrorMessage({ message, className, ...props }) {
49
48
  if (!message) return null;
50
- return /* @__PURE__ */ jsx2("p", { className: cn("px-1 text-xs text-red-600", className), ...props, children: message });
49
+ return /* @__PURE__ */ React.createElement("p", { className: cn("px-1 text-xs text-red-600", className), ...props }, message);
51
50
  }
52
51
  var ErrorMessage_default = ErrorMessage;
53
52
 
@@ -56,12 +55,11 @@ import { InfoIcon } from "lucide-react";
56
55
 
57
56
  // src/components/primitives/tooltip.tsx
58
57
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
59
- import * as React from "react";
60
- import { jsx as jsx3 } from "react/jsx-runtime";
58
+ import * as React3 from "react";
61
59
  var TooltipProvider = TooltipPrimitive.Provider;
62
60
  var Tooltip = TooltipPrimitive.Root;
63
61
  var TooltipTrigger = TooltipPrimitive.Trigger;
64
- var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx3(
62
+ var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React3.createElement(
65
63
  TooltipPrimitive.Content,
66
64
  {
67
65
  ref,
@@ -76,34 +74,24 @@ var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props },
76
74
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
77
75
 
78
76
  // src/components/ui/Label.tsx
79
- import { jsx as jsx4, jsxs } from "react/jsx-runtime";
80
77
  function Label({ text, required, description, className, ...props }) {
81
78
  if (!text) return null;
82
- return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-row gap-1", children: [
83
- /* @__PURE__ */ jsxs(
84
- "label",
85
- {
86
- className: cn(
87
- "text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
88
- className
89
- ),
90
- ...props,
91
- children: [
92
- text,
93
- required && /* @__PURE__ */ jsx4("span", { className: "text-red-600", children: "\xA0*" })
94
- ]
95
- }
96
- ),
97
- !!description && /* @__PURE__ */ jsx4(TooltipProvider, { children: /* @__PURE__ */ jsxs(Tooltip, { children: [
98
- /* @__PURE__ */ jsx4(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx4(InfoIcon, { className: "h-4 w-4" }) }),
99
- /* @__PURE__ */ jsx4(TooltipContent, { className: "max-w-48", children: description })
100
- ] }) })
101
- ] });
79
+ return /* @__PURE__ */ React.createElement("div", { className: "flex w-full flex-row gap-1" }, /* @__PURE__ */ React.createElement(
80
+ "label",
81
+ {
82
+ className: cn(
83
+ "text-xs text-grey-80 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",
84
+ className
85
+ ),
86
+ ...props
87
+ },
88
+ text,
89
+ required && /* @__PURE__ */ React.createElement("span", { className: "text-red-600" }, "\xA0*")
90
+ ), !!description && /* @__PURE__ */ React.createElement(TooltipProvider, null, /* @__PURE__ */ React.createElement(Tooltip, null, /* @__PURE__ */ React.createElement(TooltipTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(InfoIcon, { className: "h-4 w-4" })), /* @__PURE__ */ React.createElement(TooltipContent, { className: "max-w-48" }, description))));
102
91
  }
103
92
  var Label_default = Label;
104
93
 
105
94
  // src/components/ui/Input.tsx
106
- import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
107
95
  var Input = forwardRef2(
108
96
  ({ label, error, description, theme, icon, onClear, value, onChange, classNames, ...props }, ref) => {
109
97
  const handleClear = () => {
@@ -114,47 +102,39 @@ var Input = forwardRef2(
114
102
  const placeholder = props.placeholder ?? (icon === "Search" ? "Search..." : "");
115
103
  const hasIcon = !!icon;
116
104
  const iconColor = theme === "dark" ? "text-white" : "text-grey-80";
117
- return /* @__PURE__ */ jsxs2("div", { className: "group flex w-full flex-col gap-1", "data-testid": `input-wrapper-${props.id}`, children: [
118
- label && /* @__PURE__ */ jsx5(
119
- Label_default,
120
- {
121
- text: label,
122
- htmlFor: props.name,
123
- required: props.required,
124
- description,
125
- className: classNames?.label
126
- }
127
- ),
128
- /* @__PURE__ */ jsxs2("div", { className: "relative flex flex-row items-center", children: [
129
- IconComponent && /* @__PURE__ */ jsx5(
130
- IconComponent,
131
- {
132
- className: `absolute left-3 h-4 w-4 ${iconColor} opacity-50 group-hover:opacity-100`
133
- }
134
- ),
135
- /* @__PURE__ */ jsx5(
136
- "input",
137
- {
138
- className: cn(inputVariants({ theme, hasIcon })),
139
- ref,
140
- placeholder,
141
- value,
142
- onChange,
143
- "data-testid": `input-element-${props.id}`,
144
- ...props
145
- }
146
- ),
147
- hasIcon && value && /* @__PURE__ */ jsx5(
148
- X,
149
- {
150
- className: `absolute right-3 h-4 w-4 cursor-pointer ${iconColor}`,
151
- onClick: handleClear,
152
- "data-testid": "clear-button"
153
- }
154
- )
155
- ] }),
156
- /* @__PURE__ */ jsx5(ErrorMessage_default, { message: error })
157
- ] });
105
+ return /* @__PURE__ */ React.createElement("div", { className: "group flex w-full flex-col gap-1", "data-testid": `input-wrapper-${props.id}` }, label && /* @__PURE__ */ React.createElement(
106
+ Label_default,
107
+ {
108
+ text: label,
109
+ htmlFor: props.name,
110
+ required: props.required,
111
+ description,
112
+ className: classNames?.label
113
+ }
114
+ ), /* @__PURE__ */ React.createElement("div", { className: "relative flex flex-row items-center" }, IconComponent && /* @__PURE__ */ React.createElement(
115
+ IconComponent,
116
+ {
117
+ className: `absolute left-3 h-4 w-4 ${iconColor} opacity-50 group-hover:opacity-100`
118
+ }
119
+ ), /* @__PURE__ */ React.createElement(
120
+ "input",
121
+ {
122
+ className: cn(inputVariants({ theme, hasIcon })),
123
+ ref,
124
+ placeholder,
125
+ value,
126
+ onChange,
127
+ "data-testid": `input-element-${props.id}`,
128
+ ...props
129
+ }
130
+ ), hasIcon && value && /* @__PURE__ */ React.createElement(
131
+ X,
132
+ {
133
+ className: `absolute right-3 h-4 w-4 cursor-pointer ${iconColor}`,
134
+ onClick: handleClear,
135
+ "data-testid": "clear-button"
136
+ }
137
+ )), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
158
138
  }
159
139
  );
160
140
  Input.displayName = "Input";
@@ -218,8 +198,7 @@ import { Check, Minus } from "lucide-react";
218
198
  import {
219
199
  forwardRef as forwardRef3
220
200
  } from "react";
221
- import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
222
- var CheckboxToggle = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
201
+ var CheckboxToggle = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(
223
202
  CheckboxPrimitive.Root,
224
203
  {
225
204
  ref,
@@ -248,41 +227,32 @@ var CheckboxToggle = forwardRef3(({ className, ...props }, ref) => /* @__PURE__
248
227
  props.disabled && "bg-grey-20 data-[state=checked]:bg-grey-20 data-[state=checked]:text-foreground",
249
228
  className
250
229
  ),
251
- ...props,
252
- children: /* @__PURE__ */ jsxs3(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
253
- /* @__PURE__ */ jsx6(Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }),
254
- /* @__PURE__ */ jsx6(Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" })
255
- ] })
256
- }
230
+ ...props
231
+ },
232
+ /* @__PURE__ */ React.createElement(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current" }, /* @__PURE__ */ React.createElement(Check, { className: "hidden h-4 w-4 group-data-[state=checked]:block" }), /* @__PURE__ */ React.createElement(Minus, { className: "hidden h-4 w-4 group-data-[state=indeterminate]:block" }))
257
233
  ));
258
234
  CheckboxToggle.displayName = CheckboxPrimitive.Root.displayName;
259
235
  var Checkbox = forwardRef3(
260
236
  ({ error, classNames, children, ...props }, ref) => {
261
237
  const id = props.id ?? `${props.name ?? props.value?.toString()}-checkbox`;
262
- return /* @__PURE__ */ jsxs3("div", { className: cn("flex space-x-2", classNames?.wrapper), children: [
263
- /* @__PURE__ */ jsx6(CheckboxToggle, { id, ref, ...props }),
264
- /* @__PURE__ */ jsxs3(
265
- "label",
266
- {
267
- htmlFor: id,
268
- className: cn(
269
- "text-sm",
270
- props.disabled && "pointer-events-none text-grey-40",
271
- classNames?.label
272
- ),
273
- children: [
274
- children,
275
- /* @__PURE__ */ jsx6(ErrorMessage_default, { message: error, className: "mt-1" })
276
- ]
277
- }
278
- )
279
- ] });
238
+ return /* @__PURE__ */ React.createElement("div", { className: cn("flex space-x-2", classNames?.wrapper) }, /* @__PURE__ */ React.createElement(CheckboxToggle, { id, ref, ...props }), /* @__PURE__ */ React.createElement(
239
+ "label",
240
+ {
241
+ htmlFor: id,
242
+ className: cn(
243
+ "text-sm",
244
+ props.disabled && "pointer-events-none text-grey-40",
245
+ classNames?.label
246
+ )
247
+ },
248
+ children,
249
+ /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error, className: "mt-1" })
250
+ ));
280
251
  }
281
252
  );
282
253
  Checkbox.displayName = "Checkbox";
283
254
 
284
255
  // src/components/ui/ListItem.tsx
285
- import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
286
256
  function ListItem({
287
257
  icon,
288
258
  hasCheckbox,
@@ -296,12 +266,12 @@ function ListItem({
296
266
  const getIconIfValid = (icon2) => {
297
267
  if (icon2 in icons2) {
298
268
  const IconComponent = icons2[icon2];
299
- return /* @__PURE__ */ jsx7(IconComponent, { size: 14 });
269
+ return /* @__PURE__ */ React.createElement(IconComponent, { size: 14 });
300
270
  }
301
271
  return null;
302
272
  };
303
273
  const optionIcon = icon ? getIconIfValid(icon) : void 0;
304
- return /* @__PURE__ */ jsxs4(
274
+ return /* @__PURE__ */ React.createElement(
305
275
  "li",
306
276
  {
307
277
  className: cn(
@@ -309,70 +279,392 @@ function ListItem({
309
279
  className
310
280
  ),
311
281
  ...props,
312
- "data-state": isSelected ? "checked" : "unchecked",
313
- children: [
314
- optionIcon && /* @__PURE__ */ jsx7("span", { className: "mr-2", children: optionIcon }),
315
- hasCheckbox && /* @__PURE__ */ jsx7(Checkbox, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
316
- /* @__PURE__ */ jsxs4("div", { children: [
317
- /* @__PURE__ */ jsx7("p", { children: title }),
318
- /* @__PURE__ */ jsx7("p", { className: "text-xs text-grey-80", children: description })
319
- ] }),
320
- /* @__PURE__ */ jsx7(
321
- CheckIcon,
322
- {
323
- className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
324
- size: 16
325
- }
326
- )
327
- ]
328
- }
282
+ "data-state": isSelected ? "checked" : "unchecked"
283
+ },
284
+ optionIcon && /* @__PURE__ */ React.createElement("span", { className: "mr-2" }, optionIcon),
285
+ hasCheckbox && /* @__PURE__ */ React.createElement(Checkbox, { id: value, checked: isSelected, onClick: (e) => e.preventDefault() }),
286
+ /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("p", null, title), /* @__PURE__ */ React.createElement("p", { className: "text-xs text-grey-80" }, description)),
287
+ /* @__PURE__ */ React.createElement(
288
+ CheckIcon,
289
+ {
290
+ className: "absolute inset-y-0 right-0 my-auto hidden w-6 text-green-100 group-data-[state=checked]:block",
291
+ size: 16
292
+ }
293
+ )
329
294
  );
330
295
  }
331
296
  var ListItem_default = ListItem;
332
297
 
333
- // src/components/ui/MapComponent.tsx
334
- import { AdvancedMarker, APIProvider, Map, Pin } from "@vis.gl/react-google-maps";
335
- import { jsx as jsx8 } from "react/jsx-runtime";
336
- function MapComponent({
337
- apiKey,
298
+ // src/components/ui/Map/MapComponent.tsx
299
+ import { APIProvider } from "@vis.gl/react-google-maps";
300
+
301
+ // src/components/ui/Map/constants.ts
302
+ var DEFAULT_POSITION = { lat: 40.715021, lng: -74.00459 };
303
+ var DEFAULT_ZOOM = 10;
304
+ var CLUSTER_DISTANCE_THRESHOLD = 1e-3;
305
+ var PIN_COLORS = {
306
+ background: "#0B5441",
307
+ borderColor: "#EBFDF1",
308
+ glyphColor: "#D4F500"
309
+ };
310
+ var FOCUS_CIRCLE_STYLES = {
311
+ strokeColor: "#0B5441",
312
+ strokeOpacity: 0.8,
313
+ strokeWeight: 2,
314
+ fillColor: "#0B5441",
315
+ fillOpacity: 0.1,
316
+ clickable: false,
317
+ zIndex: 1
318
+ };
319
+ var CLUSTERING_CONFIG = {
320
+ radius: 60,
321
+ maxZoom: 16,
322
+ minPoints: 2
323
+ };
324
+
325
+ // src/components/ui/Map/hooks.ts
326
+ import { useMemo, useState } from "react";
327
+ import useSupercluster from "use-supercluster";
328
+
329
+ // src/components/ui/Map/utils.ts
330
+ function getCenterForCoordinates(coords) {
331
+ if (coords.length === 0) return DEFAULT_POSITION;
332
+ const avgLat = coords.reduce((sum, coord) => sum + coord.lat, 0) / coords.length;
333
+ const avgLng = coords.reduce((sum, coord) => sum + coord.lng, 0) / coords.length;
334
+ return { lat: avgLat, lng: avgLng };
335
+ }
336
+ function getZoomForCoordinates(coords, defaultZoom) {
337
+ if (coords.length <= 1) return defaultZoom;
338
+ const lats = coords.map((coord) => coord.lat);
339
+ const lngs = coords.map((coord) => coord.lng);
340
+ const latDiff = Math.max(...lats) - Math.min(...lats);
341
+ const lngDiff = Math.max(...lngs) - Math.min(...lngs);
342
+ const maxDiff = Math.max(latDiff, lngDiff);
343
+ if (maxDiff > 0.1) return 8;
344
+ if (maxDiff > 0.05) return 10;
345
+ if (maxDiff > 0.01) return 12;
346
+ return 14;
347
+ }
348
+ function filterClusterCoordinates(coordinates, clusterLat, clusterLng) {
349
+ return coordinates.filter((coord) => {
350
+ const latDiff = Math.abs(coord.lat - clusterLat);
351
+ const lngDiff = Math.abs(coord.lng - clusterLng);
352
+ const distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);
353
+ return distance < CLUSTER_DISTANCE_THRESHOLD;
354
+ });
355
+ }
356
+
357
+ // src/components/ui/Map/clustering.ts
358
+ function convertCoordinatesToGeoJSON(coordinates) {
359
+ return coordinates.map((coord, index) => ({
360
+ type: "Feature",
361
+ properties: {
362
+ cluster: false,
363
+ pointId: index,
364
+ data: coord.data
365
+ },
366
+ geometry: {
367
+ type: "Point",
368
+ coordinates: [coord.lng, coord.lat]
369
+ }
370
+ }));
371
+ }
372
+
373
+ // src/components/ui/Map/hooks.ts
374
+ function useMapBounds(_coordinates) {
375
+ const [bounds, setBounds] = useState([
376
+ [-180, -85],
377
+ [180, 85]
378
+ ]);
379
+ return { bounds, setBounds };
380
+ }
381
+ function useZoomLevel(initialZoom) {
382
+ const [zoomLevel, setZoomLevel] = useState(initialZoom);
383
+ return { zoomLevel, setZoomLevel };
384
+ }
385
+ function useClusters(coordinates, bounds, zoomLevel) {
386
+ const points = useMemo(() => {
387
+ if (!coordinates) return [];
388
+ return convertCoordinatesToGeoJSON(coordinates);
389
+ }, [coordinates]);
390
+ const { clusters, supercluster } = useSupercluster({
391
+ points,
392
+ bounds: [-180, -85, 180, 85],
393
+ // Use global bounds for consistency
394
+ zoom: zoomLevel || 10,
395
+ options: CLUSTERING_CONFIG
396
+ });
397
+ return { clusters, supercluster };
398
+ }
399
+
400
+ // src/components/ui/Map/MapContent.tsx
401
+ import { AdvancedMarker as AdvancedMarker3, Map, Pin as Pin2, useMap, useMapsLibrary } from "@vis.gl/react-google-maps";
402
+ import { useCallback } from "react";
403
+
404
+ // src/components/ui/Map/ClusterMarker.tsx
405
+ import { AdvancedMarker } from "@vis.gl/react-google-maps";
406
+ function ClusterMarker({
407
+ cluster,
408
+ coordinates,
409
+ onPinClick,
410
+ onPinHover,
411
+ zoomToLevel,
412
+ supercluster
413
+ }) {
414
+ const [lng, lat] = cluster.geometry.coordinates;
415
+ const { point_count: pointCount } = cluster.properties;
416
+ const handleClick = () => {
417
+ const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng);
418
+ onPinClick?.(clusterCoordinates);
419
+ const expansionZoom = supercluster.getClusterExpansionZoom(cluster.id);
420
+ zoomToLevel(expansionZoom);
421
+ };
422
+ const handleMouseEnter = () => {
423
+ const clusterCoordinates = filterClusterCoordinates(coordinates, lat, lng);
424
+ onPinHover?.(clusterCoordinates);
425
+ };
426
+ const handleMouseLeave = () => onPinHover?.(null);
427
+ return /* @__PURE__ */ React.createElement(
428
+ AdvancedMarker,
429
+ {
430
+ key: `cluster-${cluster.id}`,
431
+ position: { lat, lng },
432
+ onClick: handleClick,
433
+ onMouseEnter: handleMouseEnter,
434
+ onMouseLeave: handleMouseLeave
435
+ },
436
+ /* @__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 || "?"))
437
+ );
438
+ }
439
+
440
+ // src/components/ui/Map/FocusCircle.tsx
441
+ import { useEffect, useMemo as useMemo2, useRef } from "react";
442
+ function FocusCircle({
443
+ focusPoint,
444
+ radiusMiles,
445
+ map,
446
+ mapsLibrary
447
+ }) {
448
+ const circleRef = useRef(null);
449
+ const circleProps = useMemo2(() => {
450
+ if (!focusPoint || !radiusMiles) return null;
451
+ return {
452
+ center: focusPoint,
453
+ radius: radiusMiles * 1609.34
454
+ };
455
+ }, [focusPoint, radiusMiles]);
456
+ useEffect(() => {
457
+ if (!map || !mapsLibrary || !circleProps) {
458
+ return;
459
+ }
460
+ if (!circleRef.current) {
461
+ const circle = new google.maps.Circle({
462
+ center: circleProps.center,
463
+ radius: circleProps.radius,
464
+ ...FOCUS_CIRCLE_STYLES,
465
+ map
466
+ });
467
+ circleRef.current = circle;
468
+ } else {
469
+ circleRef.current.setCenter(circleProps.center);
470
+ circleRef.current.setRadius(circleProps.radius);
471
+ }
472
+ }, [map, mapsLibrary, circleProps]);
473
+ useEffect(() => {
474
+ return () => {
475
+ if (circleRef.current) {
476
+ circleRef.current.setMap(null);
477
+ circleRef.current = null;
478
+ }
479
+ };
480
+ }, []);
481
+ return null;
482
+ }
483
+
484
+ // src/components/ui/Map/IndividualMarker.tsx
485
+ import { AdvancedMarker as AdvancedMarker2, Pin } from "@vis.gl/react-google-maps";
486
+ function IndividualMarker({
487
+ coordinate,
488
+ onPinClick,
489
+ onPinHover
490
+ }) {
491
+ const handleMouseEnter = () => onPinHover?.(coordinate);
492
+ const handleMouseLeave = () => onPinHover?.(null);
493
+ const handleClick = () => onPinClick?.(coordinate);
494
+ return /* @__PURE__ */ React.createElement(
495
+ AdvancedMarker2,
496
+ {
497
+ position: { lat: coordinate.lat, lng: coordinate.lng },
498
+ onMouseEnter: handleMouseEnter,
499
+ onMouseLeave: handleMouseLeave,
500
+ onClick: handleClick
501
+ },
502
+ /* @__PURE__ */ React.createElement(Pin, { ...PIN_COLORS })
503
+ );
504
+ }
505
+
506
+ // src/components/ui/Map/MapContent.tsx
507
+ function MapContent({
338
508
  mapId,
509
+ mapCenter,
510
+ mapZoom,
339
511
  position,
512
+ coordinates,
513
+ clusters,
514
+ supercluster,
515
+ onPinHover,
516
+ onPinClick,
517
+ focusPoint,
518
+ radiusMiles,
340
519
  className,
341
- zoom = 15
520
+ setBounds,
521
+ setZoomLevel
342
522
  }) {
343
- const defaultPosition = { lat: 40.715021, lng: -74.00459 };
344
- const defaultZoom = 11;
345
- return /* @__PURE__ */ jsx8(APIProvider, { apiKey, children: /* @__PURE__ */ jsx8("div", { className: cn("h-screen max-w-full", className), children: /* @__PURE__ */ jsx8(
523
+ const map = useMap();
524
+ const mapsLibrary = useMapsLibrary("maps");
525
+ const zoomToLevel = useCallback(
526
+ (newZoom) => {
527
+ if (map) {
528
+ map.setZoom(newZoom);
529
+ }
530
+ },
531
+ [map]
532
+ );
533
+ const handleBoundsChanged = (e) => {
534
+ if (e.detail.bounds) {
535
+ const bounds = e.detail.bounds;
536
+ setBounds([
537
+ [bounds.south, bounds.west],
538
+ [bounds.north, bounds.east]
539
+ ]);
540
+ }
541
+ };
542
+ const handleZoomChanged = (e) => {
543
+ if (e.detail.zoom) {
544
+ setZoomLevel(e.detail.zoom);
545
+ }
546
+ };
547
+ const handleCameraChanged = (e) => {
548
+ if (e.detail.zoom) {
549
+ setZoomLevel(e.detail.zoom);
550
+ }
551
+ };
552
+ return /* @__PURE__ */ React.createElement("div", { className: cn("relative h-screen max-w-full", className) }, /* @__PURE__ */ React.createElement(
346
553
  Map,
347
554
  {
348
- defaultZoom: position ? zoom : defaultZoom,
349
- center: position || defaultPosition,
555
+ defaultZoom: mapZoom,
556
+ defaultCenter: mapCenter,
350
557
  mapId,
351
- keyboardShortcuts: false,
558
+ keyboardShortcuts: true,
352
559
  disableDefaultUI: true,
353
560
  zoomControl: true,
354
- children: position && /* @__PURE__ */ jsx8(AdvancedMarker, { position, children: /* @__PURE__ */ jsx8(Pin, { background: "#0B5441", borderColor: "#EBFDF1", glyphColor: "#D4F500" }) })
561
+ onBoundsChanged: handleBoundsChanged,
562
+ onZoomChanged: handleZoomChanged,
563
+ onCameraChanged: handleCameraChanged
564
+ },
565
+ position && !coordinates && /* @__PURE__ */ React.createElement(AdvancedMarker3, { position }, /* @__PURE__ */ React.createElement(Pin2, { ...PIN_COLORS })),
566
+ coordinates && clusters.map((cluster) => {
567
+ const { cluster: isCluster } = cluster.properties;
568
+ if (isCluster) {
569
+ return /* @__PURE__ */ React.createElement(
570
+ ClusterMarker,
571
+ {
572
+ key: `cluster-${cluster.id}`,
573
+ cluster,
574
+ coordinates,
575
+ onPinClick,
576
+ onPinHover,
577
+ zoomToLevel,
578
+ supercluster
579
+ }
580
+ );
581
+ }
582
+ const originalPoint = coordinates[cluster.properties.pointId];
583
+ return /* @__PURE__ */ React.createElement(
584
+ IndividualMarker,
585
+ {
586
+ key: `marker-${cluster.properties.pointId}`,
587
+ coordinate: originalPoint,
588
+ onPinClick,
589
+ onPinHover
590
+ }
591
+ );
592
+ }),
593
+ coordinates && clusters.length === 0 && coordinates.map((coord, index) => /* @__PURE__ */ React.createElement(
594
+ IndividualMarker,
595
+ {
596
+ key: `fallback-${index}`,
597
+ coordinate: coord,
598
+ onPinClick,
599
+ onPinHover
600
+ }
601
+ )),
602
+ focusPoint && radiusMiles && /* @__PURE__ */ React.createElement(
603
+ FocusCircle,
604
+ {
605
+ focusPoint,
606
+ radiusMiles,
607
+ map,
608
+ mapsLibrary
609
+ }
610
+ )
611
+ ));
612
+ }
613
+
614
+ // src/components/ui/Map/MapComponent.tsx
615
+ function MapComponent({
616
+ apiKey,
617
+ mapId,
618
+ position,
619
+ coordinates,
620
+ onPinHover,
621
+ onPinClick,
622
+ focusPoint,
623
+ radiusMiles,
624
+ className,
625
+ zoom = 10
626
+ }) {
627
+ const { bounds, setBounds } = useMapBounds(coordinates);
628
+ const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM);
629
+ const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel);
630
+ const mapCenter = coordinates && coordinates.length > 0 ? getCenterForCoordinates(coordinates) : position || DEFAULT_POSITION;
631
+ const mapZoom = coordinates && coordinates.length > 1 ? getZoomForCoordinates(coordinates, zoom) : position ? zoom : DEFAULT_ZOOM;
632
+ return /* @__PURE__ */ React.createElement(APIProvider, { apiKey }, /* @__PURE__ */ React.createElement(
633
+ MapContent,
634
+ {
635
+ mapId,
636
+ mapCenter,
637
+ mapZoom,
638
+ position,
639
+ coordinates,
640
+ clusters,
641
+ supercluster,
642
+ onPinHover,
643
+ onPinClick,
644
+ focusPoint,
645
+ radiusMiles,
646
+ className,
647
+ setBounds,
648
+ setZoomLevel
355
649
  }
356
- ) }) });
650
+ ));
357
651
  }
358
- var MapComponent_default = MapComponent;
359
652
 
360
653
  // src/components/ui/PlacesQueryInput.tsx
361
654
  import { CircleX, LoaderCircle } from "lucide-react";
362
- import { useCallback, useEffect, useRef, useState } from "react";
655
+ import { useCallback as useCallback2, useEffect as useEffect2, useRef as useRef2, useState as useState2 } from "react";
363
656
 
364
657
  // src/components/primitives/command.tsx
365
658
  import { Command as CommandPrimitive } from "cmdk";
366
659
  import { Search } from "lucide-react";
367
- import * as React3 from "react";
660
+ import * as React5 from "react";
368
661
 
369
662
  // src/components/primitives/dialog.tsx
370
663
  import * as DialogPrimitive from "@radix-ui/react-dialog";
371
664
  import { X as X2 } from "lucide-react";
372
- import * as React2 from "react";
373
- import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
665
+ import * as React4 from "react";
374
666
  var DialogPortal = DialogPrimitive.Portal;
375
- var DialogOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
667
+ var DialogOverlay = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
376
668
  DialogPrimitive.Overlay,
377
669
  {
378
670
  ref,
@@ -384,31 +676,23 @@ var DialogOverlay = React2.forwardRef(({ className, ...props }, ref) => /* @__PU
384
676
  }
385
677
  ));
386
678
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
387
- var DialogContent = React2.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(DialogPortal, { children: [
388
- /* @__PURE__ */ jsx9(DialogOverlay, {}),
389
- /* @__PURE__ */ jsxs5(
390
- DialogPrimitive.Content,
391
- {
392
- ref,
393
- className: cn(
394
- "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",
395
- className
396
- ),
397
- ...props,
398
- children: [
399
- children,
400
- /* @__PURE__ */ jsxs5(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: [
401
- /* @__PURE__ */ jsx9(X2, { className: "h-4 w-4" }),
402
- /* @__PURE__ */ jsx9("span", { className: "sr-only", children: "Close" })
403
- ] })
404
- ]
405
- }
406
- )
407
- ] }));
679
+ var DialogContent = React4.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React4.createElement(DialogPortal, null, /* @__PURE__ */ React4.createElement(DialogOverlay, null), /* @__PURE__ */ React4.createElement(
680
+ DialogPrimitive.Content,
681
+ {
682
+ ref,
683
+ className: cn(
684
+ "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",
685
+ className
686
+ ),
687
+ ...props
688
+ },
689
+ children,
690
+ /* @__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(X2, { className: "h-4 w-4" }), /* @__PURE__ */ React4.createElement("span", { className: "sr-only" }, "Close"))
691
+ )));
408
692
  DialogContent.displayName = DialogPrimitive.Content.displayName;
409
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx9("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
693
+ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ React4.createElement("div", { className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
410
694
  DialogHeader.displayName = "DialogHeader";
411
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx9(
695
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ React4.createElement(
412
696
  "div",
413
697
  {
414
698
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -416,7 +700,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx9(
416
700
  }
417
701
  );
418
702
  DialogFooter.displayName = "DialogFooter";
419
- var DialogTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
703
+ var DialogTitle = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
420
704
  DialogPrimitive.Title,
421
705
  {
422
706
  ref,
@@ -425,7 +709,7 @@ var DialogTitle = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE
425
709
  }
426
710
  ));
427
711
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
428
- var DialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
712
+ var DialogDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React4.createElement(
429
713
  DialogPrimitive.Description,
430
714
  {
431
715
  ref,
@@ -436,8 +720,7 @@ var DialogDescription = React2.forwardRef(({ className, ...props }, ref) => /* @
436
720
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
437
721
 
438
722
  // src/components/primitives/command.tsx
439
- import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
440
- var Command = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
723
+ var Command = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
441
724
  CommandPrimitive,
442
725
  {
443
726
  ref,
@@ -449,22 +732,19 @@ var Command = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
449
732
  }
450
733
  ));
451
734
  Command.displayName = CommandPrimitive.displayName;
452
- var CommandInput = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs6("div", { className: "m-1 flex items-center rounded-xl border px-3", "cmdk-input-wrapper": "", children: [
453
- /* @__PURE__ */ jsx10(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
454
- /* @__PURE__ */ jsx10(
455
- CommandPrimitive.Input,
456
- {
457
- ref,
458
- className: cn(
459
- "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",
460
- className
461
- ),
462
- ...props
463
- }
464
- )
465
- ] }));
735
+ 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(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), /* @__PURE__ */ React5.createElement(
736
+ CommandPrimitive.Input,
737
+ {
738
+ ref,
739
+ className: cn(
740
+ "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",
741
+ className
742
+ ),
743
+ ...props
744
+ }
745
+ )));
466
746
  CommandInput.displayName = CommandPrimitive.Input.displayName;
467
- var CommandList = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
747
+ var CommandList = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
468
748
  CommandPrimitive.List,
469
749
  {
470
750
  ref,
@@ -473,9 +753,9 @@ var CommandList = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
473
753
  }
474
754
  ));
475
755
  CommandList.displayName = CommandPrimitive.List.displayName;
476
- var CommandEmpty = React3.forwardRef((props, ref) => /* @__PURE__ */ jsx10(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
756
+ var CommandEmpty = React5.forwardRef((props, ref) => /* @__PURE__ */ React5.createElement(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
477
757
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
478
- var CommandGroup = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
758
+ var CommandGroup = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
479
759
  CommandPrimitive.Group,
480
760
  {
481
761
  ref,
@@ -487,7 +767,7 @@ var CommandGroup = React3.forwardRef(({ className, ...props }, ref) => /* @__PUR
487
767
  }
488
768
  ));
489
769
  CommandGroup.displayName = CommandPrimitive.Group.displayName;
490
- var CommandSeparator = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
770
+ var CommandSeparator = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
491
771
  CommandPrimitive.Separator,
492
772
  {
493
773
  ref,
@@ -496,7 +776,7 @@ var CommandSeparator = React3.forwardRef(({ className, ...props }, ref) => /* @_
496
776
  }
497
777
  ));
498
778
  CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
499
- var CommandItem = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
779
+ var CommandItem = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React5.createElement(
500
780
  CommandPrimitive.Item,
501
781
  {
502
782
  ref,
@@ -509,7 +789,7 @@ var CommandItem = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE
509
789
  ));
510
790
  CommandItem.displayName = CommandPrimitive.Item.displayName;
511
791
  var CommandShortcut = ({ className, ...props }) => {
512
- return /* @__PURE__ */ jsx10(
792
+ return /* @__PURE__ */ React5.createElement(
513
793
  "span",
514
794
  {
515
795
  className: cn("ml-auto text-xs tracking-widest text-neutral-500", className),
@@ -570,20 +850,19 @@ var geocode = async (address, key) => {
570
850
  };
571
851
 
572
852
  // src/components/ui/PlacesQueryInput.tsx
573
- import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
574
853
  function PlacesQueryInput({
575
854
  apiKey,
576
855
  selected,
577
856
  onSelect,
578
857
  className
579
858
  }) {
580
- const [predictions, setPredictions] = useState(null);
581
- const [input, setInput] = useState(selected?.description ?? "");
582
- const [isLoadingPredictions, setIsLoadingPredictions] = useState(false);
583
- const [shouldOpenUpward, setShouldOpenUpward] = useState(false);
584
- const timeoutRef = useRef(null);
585
- const inputRef = useRef(null);
586
- const debouncedAutocomplete = useCallback((value) => {
859
+ const [predictions, setPredictions] = useState2(null);
860
+ const [input, setInput] = useState2(selected?.description ?? "");
861
+ const [isLoadingPredictions, setIsLoadingPredictions] = useState2(false);
862
+ const [shouldOpenUpward, setShouldOpenUpward] = useState2(false);
863
+ const timeoutRef = useRef2(null);
864
+ const inputRef = useRef2(null);
865
+ const debouncedAutocomplete = useCallback2((value) => {
587
866
  if (timeoutRef.current) {
588
867
  clearTimeout(timeoutRef.current);
589
868
  }
@@ -619,7 +898,7 @@ function PlacesQueryInput({
619
898
  setInput("");
620
899
  };
621
900
  const handleBlur = () => setTimeout(() => setPredictions(null), 200);
622
- useEffect(() => {
901
+ useEffect2(() => {
623
902
  const checkDropdownPosition = () => {
624
903
  if (inputRef.current) {
625
904
  const rect = inputRef.current.getBoundingClientRect();
@@ -631,50 +910,41 @@ function PlacesQueryInput({
631
910
  window.addEventListener("resize", checkDropdownPosition);
632
911
  return () => window.removeEventListener("resize", checkDropdownPosition);
633
912
  }, []);
634
- return /* @__PURE__ */ jsx11("div", { className: cn("relative w-full", className), ref: inputRef, onBlur: handleBlur, children: /* @__PURE__ */ jsxs7(Command, { children: [
635
- /* @__PURE__ */ jsxs7("div", { className: "relative w-full", children: [
636
- /* @__PURE__ */ jsx11(
637
- CommandInput,
638
- {
639
- placeholder: "Type an address to search...",
640
- value: input,
641
- onValueChange: handleInputChange,
642
- className: "truncate pr-8"
643
- }
644
- ),
645
- isLoadingPredictions && /* @__PURE__ */ jsx11(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" }),
646
- input && /* @__PURE__ */ jsx11(
647
- "button",
648
- {
649
- type: "button",
650
- 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",
651
- onClick: handleClear,
652
- children: /* @__PURE__ */ jsx11(CircleX, { className: "h-4 w-4 text-green-100" })
653
- }
913
+ 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(
914
+ CommandInput,
915
+ {
916
+ placeholder: "Type an address to search...",
917
+ value: input,
918
+ onValueChange: handleInputChange,
919
+ className: "truncate pr-8"
920
+ }
921
+ ), isLoadingPredictions && /* @__PURE__ */ React.createElement(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(
922
+ "button",
923
+ {
924
+ type: "button",
925
+ 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",
926
+ onClick: handleClear
927
+ },
928
+ /* @__PURE__ */ React.createElement(CircleX, { className: "h-4 w-4 text-green-100" })
929
+ )), predictions && /* @__PURE__ */ React.createElement(
930
+ CommandList,
931
+ {
932
+ className: cn(
933
+ "absolute z-50 w-full rounded-md border bg-white shadow-lg",
934
+ shouldOpenUpward ? "bottom-full" : "top-full"
654
935
  )
655
- ] }),
656
- predictions && /* @__PURE__ */ jsxs7(
657
- CommandList,
936
+ },
937
+ /* @__PURE__ */ React.createElement(CommandEmpty, null, "No results"),
938
+ /* @__PURE__ */ React.createElement(CommandGroup, null, predictions.map((prediction) => /* @__PURE__ */ React.createElement(
939
+ CommandItem,
658
940
  {
659
- className: cn(
660
- "absolute z-50 w-full rounded-md border bg-white shadow-lg",
661
- shouldOpenUpward ? "bottom-full" : "top-full"
662
- ),
663
- children: [
664
- /* @__PURE__ */ jsx11(CommandEmpty, { children: "No results" }),
665
- /* @__PURE__ */ jsx11(CommandGroup, { children: predictions.map((prediction) => /* @__PURE__ */ jsx11(
666
- CommandItem,
667
- {
668
- onSelect: () => handleSelect(prediction),
669
- className: "truncate",
670
- children: prediction.description
671
- },
672
- prediction.place_id
673
- )) })
674
- ]
675
- }
676
- )
677
- ] }) });
941
+ key: prediction.place_id,
942
+ onSelect: () => handleSelect(prediction),
943
+ className: "truncate"
944
+ },
945
+ prediction.description
946
+ )))
947
+ )));
678
948
  }
679
949
  var PlacesQueryInput_default = PlacesQueryInput;
680
950
 
@@ -683,16 +953,15 @@ import * as SelectPrimitive from "@radix-ui/react-select";
683
953
  import { CheckIcon as CheckIcon2, ChevronDownIcon, X as X3 } from "lucide-react";
684
954
  import {
685
955
  forwardRef as forwardRef7,
686
- useEffect as useEffect2,
687
- useRef as useRef2,
688
- useState as useState2
956
+ useEffect as useEffect3,
957
+ useRef as useRef3,
958
+ useState as useState3
689
959
  } from "react";
690
960
 
691
961
  // src/components/primitives/separator.tsx
692
962
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
693
- import * as React4 from "react";
694
- import { jsx as jsx12 } from "react/jsx-runtime";
695
- var Separator = React4.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx12(
963
+ import * as React6 from "react";
964
+ var Separator = React6.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ React6.createElement(
696
965
  SeparatorPrimitive.Root,
697
966
  {
698
967
  ref,
@@ -709,7 +978,6 @@ var Separator = React4.forwardRef(({ className, orientation = "horizontal", deco
709
978
  Separator.displayName = SeparatorPrimitive.Root.displayName;
710
979
 
711
980
  // src/components/ui/Select.tsx
712
- import { Fragment, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
713
981
  var Select = forwardRef7(
714
982
  ({
715
983
  label,
@@ -725,10 +993,10 @@ var Select = forwardRef7(
725
993
  ...props
726
994
  }, ref) => {
727
995
  const { value, defaultValue, dir, className, onChange, ...rest } = props;
728
- const [selected, setSelected] = useState2([]);
729
- const [open, setOpen] = useState2(false);
730
- const containerRef = useRef2(null);
731
- useEffect2(() => {
996
+ const [selected, setSelected] = useState3([]);
997
+ const [open, setOpen] = useState3(false);
998
+ const containerRef = useRef3(null);
999
+ useEffect3(() => {
732
1000
  if (!value) return setSelected([]);
733
1001
  setSelected(Array.isArray(value) ? value : [value]);
734
1002
  }, [value]);
@@ -747,148 +1015,127 @@ var Select = forwardRef7(
747
1015
  });
748
1016
  onChange?.(multiselect ? newSelected : newValue);
749
1017
  }
750
- return /* @__PURE__ */ jsxs8(
1018
+ return /* @__PURE__ */ React.createElement(
751
1019
  "div",
752
1020
  {
753
1021
  className: cn("flex w-full flex-col gap-1", className),
754
1022
  ref: containerRef,
755
- "data-testid": `${(label ?? id)?.toLowerCase()}-select-element`,
756
- children: [
757
- /* @__PURE__ */ jsx13(
758
- Label_default,
1023
+ "data-testid": `${(label ?? id)?.toLowerCase()}-select-element`
1024
+ },
1025
+ /* @__PURE__ */ React.createElement(
1026
+ Label_default,
1027
+ {
1028
+ text: label,
1029
+ htmlFor: props.name,
1030
+ required: props.required,
1031
+ description,
1032
+ className: classNames?.label
1033
+ }
1034
+ ),
1035
+ /* @__PURE__ */ React.createElement(
1036
+ SelectPrimitive.Root,
1037
+ {
1038
+ open,
1039
+ value: selected.join(","),
1040
+ onOpenChange: handleOnOpenChange,
1041
+ onValueChange: multiselect ? void 0 : handleChange,
1042
+ defaultValue: typeof defaultValue === "string" ? defaultValue : void 0,
1043
+ dir: dir === "rtl" ? "rtl" : "ltr",
1044
+ ...rest
1045
+ },
1046
+ /* @__PURE__ */ React.createElement(
1047
+ SelectPrimitive.Trigger,
1048
+ {
1049
+ ref,
1050
+ className: cn(
1051
+ "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",
1052
+ classNames?.trigger
1053
+ )
1054
+ },
1055
+ /* @__PURE__ */ React.createElement("span", { className: "truncate" }, /* @__PURE__ */ React.createElement(
1056
+ SelectPrimitive.Value,
1057
+ {
1058
+ placeholder: placeholder ?? "Select an option",
1059
+ "aria-label": getLabel()
1060
+ },
1061
+ getLabel()
1062
+ )),
1063
+ /* @__PURE__ */ React.createElement(
1064
+ ChevronDownIcon,
759
1065
  {
760
- text: label,
761
- htmlFor: props.name,
762
- required: props.required,
763
- description,
764
- className: classNames?.label
1066
+ className: "transform text-black group-data-[state=open]:rotate-180",
1067
+ size: "16"
765
1068
  }
766
- ),
767
- /* @__PURE__ */ jsxs8(
768
- SelectPrimitive.Root,
1069
+ )
1070
+ ),
1071
+ /* @__PURE__ */ React.createElement(SelectPrimitive.Portal, { container: containerRef.current }, /* @__PURE__ */ React.createElement(
1072
+ SelectPrimitive.Content,
1073
+ {
1074
+ hideWhenDetached: true,
1075
+ className: cn(
1076
+ "z-10 max-h-[var(--radix-select-content-available-height)] overflow-hidden rounded-md bg-white py-2 shadow-lg",
1077
+ "w-[var(--radix-select-trigger-width)] min-w-[var(--radix-select-trigger-width)]",
1078
+ classNames?.content
1079
+ ),
1080
+ position: "popper",
1081
+ align: dropdownAlign,
1082
+ sideOffset: 4,
1083
+ onPointerDownOutside: toggleOpen,
1084
+ onKeyDown: closeOnEscape
1085
+ },
1086
+ /* @__PURE__ */ React.createElement(SelectPrimitive.Viewport, null, multiselect && !!chipLabels?.length && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
1087
+ SelectPrimitive.Group,
1088
+ {
1089
+ className: "mb-2 flex flex-row flex-wrap gap-1 px-2",
1090
+ "data-testid": "selected-labels"
1091
+ },
1092
+ chipLabels?.map(
1093
+ (chip) => chip && /* @__PURE__ */ React.createElement(Chip_default, { key: chip.title, size: "small", variant: "primary" }, /* @__PURE__ */ React.createElement("span", null, chip.title), /* @__PURE__ */ React.createElement(
1094
+ X3,
1095
+ {
1096
+ size: 18,
1097
+ "data-testid": `chip-remove-${chip.value}`,
1098
+ className: "cursor-pointer",
1099
+ onClick: () => handleChange(chip.value)
1100
+ }
1101
+ ))
1102
+ )
1103
+ ), /* @__PURE__ */ React.createElement(Separator, null)), options?.map(({ id: id2, title, value: value2, description: description2 }) => /* @__PURE__ */ React.createElement(
1104
+ SelectPrimitive.Item,
769
1105
  {
770
- open,
771
- value: selected.join(","),
772
- onOpenChange: handleOnOpenChange,
773
- onValueChange: multiselect ? void 0 : handleChange,
774
- defaultValue: typeof defaultValue === "string" ? defaultValue : void 0,
775
- dir: dir === "rtl" ? "rtl" : "ltr",
776
- ...rest,
777
- children: [
778
- /* @__PURE__ */ jsxs8(
779
- SelectPrimitive.Trigger,
780
- {
781
- ref,
782
- className: cn(
783
- "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",
784
- classNames?.trigger
785
- ),
786
- children: [
787
- /* @__PURE__ */ jsx13("span", { className: "truncate", children: /* @__PURE__ */ jsx13(
788
- SelectPrimitive.Value,
789
- {
790
- placeholder: placeholder ?? "Select an option",
791
- "aria-label": getLabel(),
792
- children: getLabel()
793
- }
794
- ) }),
795
- /* @__PURE__ */ jsx13(
796
- ChevronDownIcon,
797
- {
798
- className: "transform text-black group-data-[state=open]:rotate-180",
799
- size: "16"
800
- }
801
- )
802
- ]
803
- }
1106
+ key: id2,
1107
+ value: value2,
1108
+ className: cn(
1109
+ "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",
1110
+ classNames?.item
1111
+ ),
1112
+ "data-state": selected.includes(value2) ? "checked" : "unchecked",
1113
+ onKeyDown: (e) => setValueOnEnter(e, value2),
1114
+ onClick: () => handleChange(value2)
1115
+ },
1116
+ /* @__PURE__ */ React.createElement(
1117
+ CheckIcon2,
1118
+ {
1119
+ className: cn(
1120
+ "absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block",
1121
+ classNames?.checkmark
804
1122
  ),
805
- /* @__PURE__ */ jsx13(SelectPrimitive.Portal, { container: containerRef.current, children: /* @__PURE__ */ jsx13(
806
- SelectPrimitive.Content,
807
- {
808
- hideWhenDetached: true,
809
- className: cn(
810
- "z-10 max-h-[var(--radix-select-content-available-height)] overflow-hidden rounded-md bg-white py-2 shadow-lg",
811
- "w-[var(--radix-select-trigger-width)] min-w-[var(--radix-select-trigger-width)]",
812
- classNames?.content
813
- ),
814
- position: "popper",
815
- align: dropdownAlign,
816
- sideOffset: 4,
817
- onPointerDownOutside: toggleOpen,
818
- onKeyDown: closeOnEscape,
819
- children: /* @__PURE__ */ jsxs8(SelectPrimitive.Viewport, { children: [
820
- multiselect && !!chipLabels?.length && /* @__PURE__ */ jsxs8(Fragment, { children: [
821
- /* @__PURE__ */ jsx13(
822
- SelectPrimitive.Group,
823
- {
824
- className: "mb-2 flex flex-row flex-wrap gap-1 px-2",
825
- "data-testid": "selected-labels",
826
- children: chipLabels?.map(
827
- (chip) => chip && /* @__PURE__ */ jsxs8(Chip_default, { size: "small", variant: "primary", children: [
828
- /* @__PURE__ */ jsx13("span", { children: chip.title }),
829
- /* @__PURE__ */ jsx13(
830
- X3,
831
- {
832
- size: 18,
833
- "data-testid": `chip-remove-${chip.value}`,
834
- className: "cursor-pointer",
835
- onClick: () => handleChange(chip.value)
836
- }
837
- )
838
- ] }, chip.title)
839
- )
840
- }
841
- ),
842
- /* @__PURE__ */ jsx13(Separator, {})
843
- ] }),
844
- options?.map(({ id: id2, title, value: value2, description: description2 }) => /* @__PURE__ */ jsxs8(
845
- SelectPrimitive.Item,
846
- {
847
- value: value2,
848
- className: cn(
849
- "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",
850
- classNames?.item
851
- ),
852
- "data-state": selected.includes(value2) ? "checked" : "unchecked",
853
- onKeyDown: (e) => setValueOnEnter(e, value2),
854
- onClick: () => handleChange(value2),
855
- children: [
856
- /* @__PURE__ */ jsx13(
857
- CheckIcon2,
858
- {
859
- className: cn(
860
- "absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block",
861
- classNames?.checkmark
862
- ),
863
- size: 16
864
- }
865
- ),
866
- /* @__PURE__ */ jsx13(SelectPrimitive.ItemText, { children: title }),
867
- description2 && /* @__PURE__ */ jsx13("span", { className: "block text-sm text-grey-70", children: description2 })
868
- ]
869
- },
870
- id2
871
- )),
872
- !!footer && /* @__PURE__ */ jsxs8(Fragment, { children: [
873
- /* @__PURE__ */ jsx13(Separator, {}),
874
- /* @__PURE__ */ jsx13(
875
- SelectPrimitive.Group,
876
- {
877
- className: "mt-2 flex flex-row flex-wrap gap-1 px-2",
878
- "data-testid": "selected-labels",
879
- children: footer
880
- }
881
- )
882
- ] })
883
- ] })
884
- }
885
- ) })
886
- ]
887
- }
888
- ),
889
- /* @__PURE__ */ jsx13(ErrorMessage_default, { message: error })
890
- ]
891
- }
1123
+ size: 16
1124
+ }
1125
+ ),
1126
+ /* @__PURE__ */ React.createElement(SelectPrimitive.ItemText, null, title),
1127
+ description2 && /* @__PURE__ */ React.createElement("span", { className: "block text-sm text-grey-70" }, description2)
1128
+ )), !!footer && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Separator, null), /* @__PURE__ */ React.createElement(
1129
+ SelectPrimitive.Group,
1130
+ {
1131
+ className: "mt-2 flex flex-row flex-wrap gap-1 px-2",
1132
+ "data-testid": "selected-labels"
1133
+ },
1134
+ footer
1135
+ )))
1136
+ ))
1137
+ ),
1138
+ /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error })
892
1139
  );
893
1140
  }
894
1141
  );
@@ -901,9 +1148,8 @@ import Link from "next/link";
901
1148
 
902
1149
  // src/components/primitives/avatar.tsx
903
1150
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
904
- import * as React5 from "react";
905
- import { jsx as jsx14 } from "react/jsx-runtime";
906
- var AvatarBase = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1151
+ import * as React7 from "react";
1152
+ var AvatarBase = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
907
1153
  AvatarPrimitive.Root,
908
1154
  {
909
1155
  ref,
@@ -912,7 +1158,7 @@ var AvatarBase = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE_
912
1158
  }
913
1159
  ));
914
1160
  AvatarBase.displayName = AvatarPrimitive.Root.displayName;
915
- var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1161
+ var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
916
1162
  AvatarPrimitive.Image,
917
1163
  {
918
1164
  ref,
@@ -922,7 +1168,7 @@ var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
922
1168
  }
923
1169
  ));
924
1170
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
925
- var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1171
+ var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React7.createElement(
926
1172
  AvatarPrimitive.Fallback,
927
1173
  {
928
1174
  ref,
@@ -936,17 +1182,13 @@ var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__P
936
1182
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
937
1183
 
938
1184
  // src/components/ui/Avatar.tsx
939
- import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime";
940
1185
  function Avatar({ size, src, href, name, ...linkProps }) {
941
1186
  const fallbackShort = name?.slice(0, 2);
942
1187
  const fallbackWords = name?.split(" ").map((n) => n[0]).join("").slice(0, 2);
943
1188
  const fallback = fallbackWords && fallbackWords.length > 1 ? fallbackWords : fallbackShort;
944
- const renderAvatar = () => /* @__PURE__ */ jsxs9(AvatarBase, { className: avatarVariants({ size }), children: [
945
- /* @__PURE__ */ jsx15(AvatarImage, { src, alt: name }),
946
- /* @__PURE__ */ jsx15(AvatarFallback, { children: fallback?.toUpperCase() })
947
- ] });
1189
+ const renderAvatar = () => /* @__PURE__ */ React.createElement(AvatarBase, { className: avatarVariants({ size }) }, /* @__PURE__ */ React.createElement(AvatarImage, { src, alt: name }), /* @__PURE__ */ React.createElement(AvatarFallback, null, fallback?.toUpperCase()));
948
1190
  if (href) {
949
- return /* @__PURE__ */ jsx15(Link, { href, ...linkProps, children: renderAvatar() });
1191
+ return /* @__PURE__ */ React.createElement(Link, { href, ...linkProps }, renderAvatar());
950
1192
  }
951
1193
  return renderAvatar();
952
1194
  }
@@ -965,7 +1207,7 @@ var avatarVariants = cva3("ring ring-white ring-2", {
965
1207
 
966
1208
  // src/components/ui/Badge.tsx
967
1209
  import { cva as cva4 } from "cva";
968
- import { jsx as jsx16 } from "react/jsx-runtime";
1210
+ import * as React8 from "react";
969
1211
  var badgeVariants = cva4("rounded-full px-2 py-0.5 text-xs font-semibold", {
970
1212
  variants: {
971
1213
  variant: {
@@ -979,31 +1221,42 @@ var badgeVariants = cva4("rounded-full px-2 py-0.5 text-xs font-semibold", {
979
1221
  }
980
1222
  });
981
1223
  function Badge({ className, variant, ...props }) {
982
- return /* @__PURE__ */ jsx16("div", { className: cn(badgeVariants({ variant }), className), ...props });
1224
+ return /* @__PURE__ */ React8.createElement("div", { className: cn(badgeVariants({ variant }), className), ...props });
983
1225
  }
984
1226
 
985
1227
  // src/components/ui/Button.tsx
986
1228
  import { Slot } from "@radix-ui/react-slot";
987
1229
  import { cva as cva5 } from "cva";
988
- import { forwardRef as forwardRef9 } from "react";
989
- import { jsx as jsx17 } from "react/jsx-runtime";
1230
+ import { Loader2 } from "lucide-react";
1231
+ import React9, { forwardRef as forwardRef9 } from "react";
990
1232
  var Button = forwardRef9(
991
- ({ className, variant, size, asChild = false, type = "button", ...props }, ref) => {
1233
+ ({
1234
+ className,
1235
+ variant,
1236
+ size,
1237
+ asChild = false,
1238
+ type = "button",
1239
+ children,
1240
+ isLoading = false,
1241
+ ...props
1242
+ }, ref) => {
992
1243
  const Component = asChild ? Slot : "button";
993
- return /* @__PURE__ */ jsx17(
1244
+ return /* @__PURE__ */ React9.createElement(
994
1245
  Component,
995
1246
  {
996
- className: cn(buttonVariants({ variant, size, className })),
1247
+ className: cn(buttonVariants({ variant, size, className, isLoading, asChild })),
997
1248
  type,
998
1249
  ref,
999
1250
  ...props
1000
- }
1251
+ },
1252
+ asChild ? children : /* @__PURE__ */ React9.createElement(React9.Fragment, null, children, isLoading && /* @__PURE__ */ React9.createElement("div", { className: "absolute inset-0 flex items-center justify-center bg-white/30 backdrop-blur-[0.5px]" }, /* @__PURE__ */ React9.createElement(Loader2, { className: "h-5 w-5 animate-spin text-gray-800" })))
1001
1253
  );
1002
1254
  }
1003
1255
  );
1004
1256
  Button.displayName = "Button";
1005
1257
  var buttonVariants = cva5(
1006
1258
  [
1259
+ "relative",
1007
1260
  "flex",
1008
1261
  "items-center",
1009
1262
  "justify-center",
@@ -1013,7 +1266,8 @@ var buttonVariants = cva5(
1013
1266
  "outline-2",
1014
1267
  "outline-offset-2",
1015
1268
  "outline-dashed",
1016
- "outline-transparent"
1269
+ "outline-transparent",
1270
+ "overflow-hidden"
1017
1271
  ],
1018
1272
  {
1019
1273
  variants: {
@@ -1060,19 +1314,92 @@ var buttonVariants = cva5(
1060
1314
  "focus:text-black",
1061
1315
  "focus:outline-purple-100",
1062
1316
  "active:text-purple-80"
1317
+ ],
1318
+ "outline-primary": [
1319
+ "bg-transparent",
1320
+ "border-2",
1321
+ "border-pickle-100",
1322
+ "text-pickle-100",
1323
+ "hover:bg-pickle-100",
1324
+ "hover:text-black",
1325
+ "active:bg-pickle-80",
1326
+ "active:text-black",
1327
+ "focus:outline-purple-100",
1328
+ "disabled:text-grey-40",
1329
+ "disabled:border-grey-40",
1330
+ "disabled:hover:bg-transparent",
1331
+ "disabled:hover:text-grey-40"
1332
+ ],
1333
+ "outline-secondary": [
1334
+ "bg-transparent",
1335
+ "border-2",
1336
+ "border-green-80",
1337
+ "text-green-80",
1338
+ "hover:bg-green-80",
1339
+ "hover:text-white",
1340
+ "active:bg-green-90",
1341
+ "active:text-white",
1342
+ "focus:outline-pickle-100",
1343
+ "disabled:text-grey-40",
1344
+ "disabled:border-grey-40",
1345
+ "disabled:hover:bg-transparent",
1346
+ "disabled:hover:text-grey-40"
1347
+ ],
1348
+ "icon-outline": [
1349
+ "bg-transparent",
1350
+ "text-black",
1351
+ "hover:bg-grey-5",
1352
+ "active:bg-grey-10",
1353
+ "focus:outline-purple-100",
1354
+ "disabled:text-grey-40",
1355
+ "disabled:hover:bg-transparent",
1356
+ "disabled:hover:text-grey-40"
1357
+ ],
1358
+ "icon-primary": [
1359
+ "bg-pickle-100",
1360
+ "text-black",
1361
+ "hover:bg-pickle-80",
1362
+ "active:bg-pickle-60",
1363
+ "focus:outline-purple-100",
1364
+ "disabled:text-grey-40",
1365
+ "disabled:bg-grey-10"
1366
+ ],
1367
+ "icon-secondary": [
1368
+ "bg-green-80",
1369
+ "text-white",
1370
+ "hover:bg-green-90",
1371
+ "active:bg-green-100",
1372
+ "focus:outline-pickle-100",
1373
+ "disabled:text-grey-40",
1374
+ "disabled:bg-grey-10"
1063
1375
  ]
1064
1376
  },
1065
1377
  size: {
1378
+ "extra-small": ["h-8", "text-xs", "px-3", "py-1"],
1066
1379
  small: ["h-10", "text-sm", "px-4", "py-2"],
1067
1380
  medium: ["h-12", "text-base", "px-6", "py-3"],
1068
1381
  large: ["h-14", "text-lg", "px-8", "py-4"]
1382
+ },
1383
+ isLoading: {
1384
+ true: ["cursor-not-allowed", "pointer-events-none"]
1385
+ },
1386
+ asChild: {
1387
+ true: [],
1388
+ false: ["cursor-pointer", "pointer-events-auto"]
1069
1389
  }
1070
1390
  },
1071
1391
  defaultVariants: {
1072
1392
  variant: "neutral",
1073
- size: "medium"
1393
+ size: "medium",
1394
+ isLoading: false,
1395
+ asChild: false
1074
1396
  },
1075
1397
  compoundVariants: [
1398
+ {
1399
+ variant: "link",
1400
+ size: "extra-small",
1401
+ class: ["h-3", "text-xs", "p-0"]
1402
+ },
1076
1403
  {
1077
1404
  variant: "link",
1078
1405
  size: "small",
@@ -1087,6 +1414,66 @@ var buttonVariants = cva5(
1087
1414
  variant: "link",
1088
1415
  size: "large",
1089
1416
  class: ["h-6", "text-base", "p-0"]
1417
+ },
1418
+ {
1419
+ variant: "icon-outline",
1420
+ size: "extra-small",
1421
+ class: ["h-8", "w-8", "p-2"]
1422
+ },
1423
+ {
1424
+ variant: "icon-outline",
1425
+ size: "small",
1426
+ class: ["h-10", "w-10", "p-3"]
1427
+ },
1428
+ {
1429
+ variant: "icon-outline",
1430
+ size: "medium",
1431
+ class: ["h-12", "w-12", "p-4"]
1432
+ },
1433
+ {
1434
+ variant: "icon-outline",
1435
+ size: "large",
1436
+ class: ["h-14", "w-14", "p-4"]
1437
+ },
1438
+ {
1439
+ variant: "icon-primary",
1440
+ size: "extra-small",
1441
+ class: ["h-8", "w-8", "p-2"]
1442
+ },
1443
+ {
1444
+ variant: "icon-primary",
1445
+ size: "small",
1446
+ class: ["h-10", "w-10", "p-3"]
1447
+ },
1448
+ {
1449
+ variant: "icon-primary",
1450
+ size: "medium",
1451
+ class: ["h-12", "w-12", "p-4"]
1452
+ },
1453
+ {
1454
+ variant: "icon-primary",
1455
+ size: "large",
1456
+ class: ["h-14", "w-14", "p-4"]
1457
+ },
1458
+ {
1459
+ variant: "icon-secondary",
1460
+ size: "extra-small",
1461
+ class: ["h-8", "w-8", "p-2"]
1462
+ },
1463
+ {
1464
+ variant: "icon-secondary",
1465
+ size: "small",
1466
+ class: ["h-10", "w-10", "p-3"]
1467
+ },
1468
+ {
1469
+ variant: "icon-secondary",
1470
+ size: "medium",
1471
+ class: ["h-12", "w-12", "p-4"]
1472
+ },
1473
+ {
1474
+ variant: "icon-secondary",
1475
+ size: "large",
1476
+ class: ["h-14", "w-14", "p-4"]
1090
1477
  }
1091
1478
  ]
1092
1479
  }
@@ -1095,15 +1482,14 @@ var buttonVariants = cva5(
1095
1482
  // src/components/ui/Combobox.tsx
1096
1483
  import { cva as cva6 } from "cva";
1097
1484
  import { ChevronDownIcon as ChevronDownIcon2, CircleX as CircleX2, icons as icons3 } from "lucide-react";
1098
- import { forwardRef as forwardRef11, useEffect as useEffect3, useRef as useRef3, useState as useState3 } from "react";
1485
+ import { forwardRef as forwardRef11, useEffect as useEffect4, useRef as useRef4, useState as useState4 } from "react";
1099
1486
 
1100
1487
  // src/components/primitives/popover.tsx
1101
1488
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1102
- import * as React7 from "react";
1103
- import { jsx as jsx18 } from "react/jsx-runtime";
1489
+ import * as React10 from "react";
1104
1490
  var Popover = PopoverPrimitive.Root;
1105
1491
  var PopoverTrigger = PopoverPrimitive.Trigger;
1106
- var PopoverContent = React7.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx18(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx18(
1492
+ var PopoverContent = React10.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React10.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React10.createElement(
1107
1493
  PopoverPrimitive.Content,
1108
1494
  {
1109
1495
  ref,
@@ -1115,11 +1501,10 @@ var PopoverContent = React7.forwardRef(({ className, align = "center", sideOffse
1115
1501
  ),
1116
1502
  ...props
1117
1503
  }
1118
- ) }));
1504
+ )));
1119
1505
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1120
1506
 
1121
1507
  // src/components/ui/Combobox.tsx
1122
- import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1123
1508
  var Combobox = forwardRef11((props, ref) => {
1124
1509
  const {
1125
1510
  id,
@@ -1140,9 +1525,9 @@ var Combobox = forwardRef11((props, ref) => {
1140
1525
  onChange: handleChange,
1141
1526
  children: footer
1142
1527
  } = props;
1143
- const [selected, setSelected] = useState3([]);
1144
- const [open, setOpen] = useState3(false);
1145
- const isUserUpdate = useRef3(false);
1528
+ const [selected, setSelected] = useState4([]);
1529
+ const [open, setOpen] = useState4(false);
1530
+ const isUserUpdate = useRef4(false);
1146
1531
  const IconComponent = icon && icons3[icon];
1147
1532
  const hideSearchBox = options?.length <= 5;
1148
1533
  const isDefault = variant === "default";
@@ -1150,7 +1535,7 @@ var Combobox = forwardRef11((props, ref) => {
1150
1535
  const isEmpty = selected.length === 0;
1151
1536
  const showChevron = isDefault ? isEmpty : true;
1152
1537
  const close = () => setOpen(false);
1153
- useEffect3(() => {
1538
+ useEffect4(() => {
1154
1539
  if (!isUserUpdate.current) {
1155
1540
  const valueArray = multiselect ? value ?? [] : value ? [value] : [];
1156
1541
  setSelected(
@@ -1158,7 +1543,7 @@ var Combobox = forwardRef11((props, ref) => {
1158
1543
  );
1159
1544
  }
1160
1545
  }, [value, options, multiselect]);
1161
- useEffect3(() => {
1546
+ useEffect4(() => {
1162
1547
  if (isUserUpdate.current) {
1163
1548
  if (multiselect) {
1164
1549
  handleChange?.(selected.map((o) => o.value));
@@ -1190,111 +1575,91 @@ var Combobox = forwardRef11((props, ref) => {
1190
1575
  const defaultLabel = !isEmpty ? selected.map((s) => s.title).join(", ") : placeholder;
1191
1576
  return isDefault ? defaultLabel : label;
1192
1577
  };
1193
- return /* @__PURE__ */ jsxs10("div", { className: cn("flex flex-col gap-1", className), children: [
1194
- isDefault && /* @__PURE__ */ jsx19(
1195
- Label_default,
1578
+ return /* @__PURE__ */ React.createElement("div", { className: cn("flex flex-col gap-1", className) }, isDefault && /* @__PURE__ */ React.createElement(
1579
+ Label_default,
1580
+ {
1581
+ text: label,
1582
+ htmlFor: name,
1583
+ required,
1584
+ description,
1585
+ className: classNames?.label
1586
+ }
1587
+ ), /* @__PURE__ */ React.createElement("div", { className: "relative flex" }, /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(
1588
+ PopoverTrigger,
1589
+ {
1590
+ asChild: true,
1591
+ disabled: options.length === 0,
1592
+ "data-testid": `${id ?? name}-combobox-trigger`
1593
+ },
1594
+ /* @__PURE__ */ React.createElement(
1595
+ "div",
1196
1596
  {
1197
- text: label,
1198
- htmlFor: name,
1199
- required,
1200
- description,
1201
- className: classNames?.label
1202
- }
1203
- ),
1204
- /* @__PURE__ */ jsxs10("div", { className: "relative flex", children: [
1205
- /* @__PURE__ */ jsxs10(Popover, { open, onOpenChange: setOpen, children: [
1206
- /* @__PURE__ */ jsx19(
1207
- PopoverTrigger,
1208
- {
1209
- asChild: true,
1210
- disabled: options.length === 0,
1211
- "data-testid": `${id ?? name}-combobox-trigger`,
1212
- children: /* @__PURE__ */ jsxs10(
1213
- "div",
1214
- {
1215
- ref,
1216
- className: cn(
1217
- triggerVariants({ variant, size }),
1218
- isDefault && !isEmpty && "pr-10",
1219
- classNames?.trigger
1220
- ),
1221
- "aria-expanded": open,
1222
- children: [
1223
- isDefault && IconComponent && /* @__PURE__ */ jsx19(IconComponent, { className: "h-4 w-4 shrink-0" }),
1224
- isChip && !isEmpty && /* @__PURE__ */ jsx19(Badge, { variant: "purple", children: selected.length }),
1225
- /* @__PURE__ */ jsx19(
1226
- "span",
1227
- {
1228
- className: cn(
1229
- "w-full truncate leading-normal",
1230
- isDefault && isEmpty && "text-grey-40"
1231
- ),
1232
- children: handleDisplayValue()
1233
- }
1234
- ),
1235
- showChevron && /* @__PURE__ */ jsx19(
1236
- ChevronDownIcon2,
1237
- {
1238
- className: "shrink-0 transform group-data-[state=open]:rotate-180",
1239
- size: "16"
1240
- }
1241
- )
1242
- ]
1243
- }
1244
- )
1245
- }
1597
+ ref,
1598
+ className: cn(
1599
+ triggerVariants({ variant, size }),
1600
+ isDefault && !isEmpty && "pr-10",
1601
+ classNames?.trigger
1246
1602
  ),
1247
- /* @__PURE__ */ jsx19(
1248
- PopoverContent,
1249
- {
1250
- className: cn(
1251
- "flex w-full max-w-xs flex-col overflow-hidden p-0",
1252
- "max-h-[--radix-popover-content-available-height]",
1253
- classNames?.content
1254
- ),
1255
- collisionPadding: 8,
1256
- sideOffset: 4,
1257
- align: "start",
1258
- children: /* @__PURE__ */ jsxs10(Command, { children: [
1259
- !hideSearchBox && /* @__PURE__ */ jsx19(CommandInput, { placeholder: "Search..." }),
1260
- /* @__PURE__ */ jsxs10(CommandList, { children: [
1261
- /* @__PURE__ */ jsx19(CommandEmpty, { children: "No results" }),
1262
- /* @__PURE__ */ jsx19(CommandGroup, { children: options.map(({ id: id2, ...option }) => /* @__PURE__ */ jsx19(
1263
- CommandItem,
1264
- {
1265
- value: option.title,
1266
- onSelect: () => handleSelect(option.value),
1267
- children: /* @__PURE__ */ jsx19(
1268
- ListItem_default,
1269
- {
1270
- className: cn(classNames?.items, "truncate py-1"),
1271
- isSelected: selected.some((s) => s.value === option.value),
1272
- hasCheckbox: multiselect,
1273
- ...option
1274
- }
1275
- )
1276
- },
1277
- id2
1278
- )) })
1279
- ] }),
1280
- !!footer && /* @__PURE__ */ jsx19(Separator, {}),
1281
- footer && footer({ close })
1282
- ] })
1283
- }
1284
- )
1285
- ] }),
1286
- isDefault && !isEmpty && /* @__PURE__ */ jsx19(
1287
- "button",
1603
+ "aria-expanded": open
1604
+ },
1605
+ isDefault && IconComponent && /* @__PURE__ */ React.createElement(IconComponent, { className: "h-4 w-4 shrink-0" }),
1606
+ isChip && !isEmpty && /* @__PURE__ */ React.createElement(Badge, { variant: "purple" }, selected.length),
1607
+ /* @__PURE__ */ React.createElement(
1608
+ "span",
1288
1609
  {
1289
- type: "button",
1290
- 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",
1291
- onClick: handleClear,
1292
- children: /* @__PURE__ */ jsx19(CircleX2, { className: "h-4 w-4 text-green-100" })
1610
+ className: cn(
1611
+ "w-full truncate leading-normal",
1612
+ isDefault && isEmpty && "text-grey-40"
1613
+ )
1614
+ },
1615
+ handleDisplayValue()
1616
+ ),
1617
+ showChevron && /* @__PURE__ */ React.createElement(
1618
+ ChevronDownIcon2,
1619
+ {
1620
+ className: "shrink-0 transform group-data-[state=open]:rotate-180",
1621
+ size: "16"
1622
+ }
1623
+ )
1624
+ )
1625
+ ), /* @__PURE__ */ React.createElement(
1626
+ PopoverContent,
1627
+ {
1628
+ className: cn(
1629
+ "flex w-full max-w-xs flex-col overflow-hidden p-0",
1630
+ "max-h-[--radix-popover-content-available-height]",
1631
+ classNames?.content
1632
+ ),
1633
+ collisionPadding: 8,
1634
+ sideOffset: 4,
1635
+ align: "start"
1636
+ },
1637
+ /* @__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(
1638
+ CommandItem,
1639
+ {
1640
+ key: id2,
1641
+ value: option.title,
1642
+ onSelect: () => handleSelect(option.value)
1643
+ },
1644
+ /* @__PURE__ */ React.createElement(
1645
+ ListItem_default,
1646
+ {
1647
+ className: cn(classNames?.items, "truncate py-1"),
1648
+ isSelected: selected.some((s) => s.value === option.value),
1649
+ hasCheckbox: multiselect,
1650
+ ...option
1293
1651
  }
1294
1652
  )
1295
- ] }),
1296
- /* @__PURE__ */ jsx19(ErrorMessage_default, { message: error })
1297
- ] });
1653
+ )))), !!footer && /* @__PURE__ */ React.createElement(Separator, null), footer && footer({ close }))
1654
+ )), isDefault && !isEmpty && /* @__PURE__ */ React.createElement(
1655
+ "button",
1656
+ {
1657
+ type: "button",
1658
+ 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",
1659
+ onClick: handleClear
1660
+ },
1661
+ /* @__PURE__ */ React.createElement(CircleX2, { className: "h-4 w-4 text-green-100" })
1662
+ )), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
1298
1663
  });
1299
1664
  Combobox.displayName = "Combobox";
1300
1665
  var triggerVariants = cva6(
@@ -1326,27 +1691,20 @@ var triggerVariants = cva6(
1326
1691
  // src/components/ui/Switch.tsx
1327
1692
  import * as SwitchPrimitive from "@radix-ui/react-switch";
1328
1693
  import { forwardRef as forwardRef12 } from "react";
1329
- import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1330
1694
  var Switch = forwardRef12(
1331
- ({ label, error, className, ...props }, ref) => {
1332
- return /* @__PURE__ */ jsxs11("div", { className: cn("flex items-center", props.disabled && "opacity-50"), children: [
1333
- /* @__PURE__ */ jsx20(
1334
- SwitchPrimitive.Root,
1335
- {
1336
- className: cn(
1337
- "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",
1338
- className
1339
- ),
1340
- ref,
1341
- ...props,
1342
- children: /* @__PURE__ */ jsx20(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]" })
1343
- }
1344
- ),
1345
- label && /* @__PURE__ */ jsxs11("label", { className: "pl-4 text-sm leading-none text-inherit", htmlFor: props.name, children: [
1346
- label,
1347
- /* @__PURE__ */ jsx20(ErrorMessage_default, { message: error, className: "mt-1" })
1348
- ] })
1349
- ] });
1695
+ ({ label, error, className, ...props }, ref) => {
1696
+ return /* @__PURE__ */ React.createElement("div", { className: cn("flex items-center", props.disabled && "opacity-50") }, /* @__PURE__ */ React.createElement(
1697
+ SwitchPrimitive.Root,
1698
+ {
1699
+ className: cn(
1700
+ "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",
1701
+ className
1702
+ ),
1703
+ ref,
1704
+ ...props
1705
+ },
1706
+ /* @__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]" })
1707
+ ), 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" })));
1350
1708
  }
1351
1709
  );
1352
1710
  Switch.displayName = "Switch";
@@ -1359,29 +1717,24 @@ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
1359
1717
  import {
1360
1718
  forwardRef as forwardRef13
1361
1719
  } from "react";
1362
- import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
1363
- var RadioGroup = forwardRef13(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(RadioGroupPrimitive.Root, { className, ...props, ref }));
1720
+ var RadioGroup = forwardRef13(({ className, ...props }, ref) => /* @__PURE__ */ React.createElement(RadioGroupPrimitive.Root, { className, ...props, ref }));
1364
1721
  RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
1365
1722
  var RadioGroupItem = forwardRef13(({ className, children, ...props }, ref) => {
1366
- return /* @__PURE__ */ jsxs12("div", { className: "group flex flex-row items-center gap-2", children: [
1367
- /* @__PURE__ */ jsx21(
1368
- RadioGroupPrimitive.Item,
1369
- {
1370
- ref,
1371
- className: cn(
1372
- "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",
1373
- className
1374
- ),
1375
- ...props
1376
- }
1377
- ),
1378
- /* @__PURE__ */ jsx21("label", { htmlFor: props.id, className: "text-sm peer-data-[disabled]:text-grey-40", children })
1379
- ] });
1723
+ return /* @__PURE__ */ React.createElement("div", { className: "group flex flex-row items-center gap-2" }, /* @__PURE__ */ React.createElement(
1724
+ RadioGroupPrimitive.Item,
1725
+ {
1726
+ ref,
1727
+ className: cn(
1728
+ "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",
1729
+ className
1730
+ ),
1731
+ ...props
1732
+ }
1733
+ ), /* @__PURE__ */ React.createElement("label", { htmlFor: props.id, className: "text-sm peer-data-[disabled]:text-grey-40" }, children));
1380
1734
  });
1381
1735
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
1382
1736
 
1383
1737
  // src/components/ui/Radio.tsx
1384
- import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
1385
1738
  var Radio = forwardRef14(
1386
1739
  ({
1387
1740
  label,
@@ -1393,33 +1746,29 @@ var Radio = forwardRef14(
1393
1746
  orientation,
1394
1747
  ...props
1395
1748
  }, ref) => {
1396
- return /* @__PURE__ */ jsxs13("div", { className: cn("flex flex-col gap-1", classNames?.root), children: [
1397
- /* @__PURE__ */ jsx22(Label_default, { text: label, description, required: props.required }),
1398
- /* @__PURE__ */ jsx22(
1399
- RadioGroup,
1749
+ 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(
1750
+ RadioGroup,
1751
+ {
1752
+ ref,
1753
+ className: cn(
1754
+ "flex text-sm",
1755
+ orientation === "vertical" ? "flex-col gap-2" : "flex-row gap-4",
1756
+ classNames?.group
1757
+ ),
1758
+ onValueChange: handleValueChange,
1759
+ ...props
1760
+ },
1761
+ options?.map(({ id, title, value }) => /* @__PURE__ */ React.createElement(
1762
+ RadioGroupItem,
1400
1763
  {
1401
- ref,
1402
- className: cn(
1403
- "flex text-sm",
1404
- orientation === "vertical" ? "flex-col gap-2" : "flex-row gap-4",
1405
- classNames?.group
1406
- ),
1407
- onValueChange: handleValueChange,
1408
- ...props,
1409
- children: options?.map(({ id, title, value }) => /* @__PURE__ */ jsx22(
1410
- RadioGroupItem,
1411
- {
1412
- value,
1413
- id: `radio-group-item-${title}`,
1414
- className: classNames?.item,
1415
- children: title
1416
- },
1417
- id
1418
- ))
1419
- }
1420
- ),
1421
- /* @__PURE__ */ jsx22(ErrorMessage_default, { message: error })
1422
- ] });
1764
+ key: id,
1765
+ value,
1766
+ id: `radio-group-item-${title}`,
1767
+ className: classNames?.item
1768
+ },
1769
+ title
1770
+ ))
1771
+ ), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
1423
1772
  }
1424
1773
  );
1425
1774
  Radio.displayName = "Radio";
@@ -1427,12 +1776,11 @@ Radio.displayName = "Radio";
1427
1776
  // src/components/ui/Counter.tsx
1428
1777
  import { cva as cva7 } from "cva";
1429
1778
  import { Minus as Minus2, Plus } from "lucide-react";
1430
- import { forwardRef as forwardRef15, useEffect as useEffect4, useState as useState4 } from "react";
1431
- import { jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
1779
+ import { forwardRef as forwardRef15, useEffect as useEffect5, useState as useState5 } from "react";
1432
1780
  var Counter = forwardRef15(
1433
1781
  ({ label, error, min, max, step = 1, description, theme, value, classNames, onChange, ...props }, ref) => {
1434
- const [count, setCount] = useState4(0);
1435
- useEffect4(() => {
1782
+ const [count, setCount] = useState5(0);
1783
+ useEffect5(() => {
1436
1784
  setCount(value ?? 0);
1437
1785
  }, [value]);
1438
1786
  const handleChange = (e) => {
@@ -1463,56 +1811,50 @@ var Counter = forwardRef15(
1463
1811
  onChange?.(newValue);
1464
1812
  setCount(newValue);
1465
1813
  };
1466
- return /* @__PURE__ */ jsxs14(
1814
+ return /* @__PURE__ */ React.createElement(
1467
1815
  "div",
1468
1816
  {
1469
1817
  className: cn("flex w-auto flex-col gap-1", classNames?.root),
1470
- "data-testid": `counter-wrapper-${props.id}`,
1471
- children: [
1472
- label && /* @__PURE__ */ jsx23(
1473
- Label_default,
1474
- {
1475
- text: label,
1476
- htmlFor: props.name,
1477
- required: props.required,
1478
- description,
1479
- className: classNames?.label
1480
- }
1481
- ),
1482
- /* @__PURE__ */ jsxs14("div", { className: "relative flex w-[122px] flex-row items-center", children: [
1483
- /* @__PURE__ */ jsx23(
1484
- "button",
1485
- {
1486
- type: "button",
1487
- 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",
1488
- onClick: decrement,
1489
- children: /* @__PURE__ */ jsx23(Minus2, { className: "h-4 w-4 text-green-100" })
1490
- }
1491
- ),
1492
- /* @__PURE__ */ jsx23(
1493
- "input",
1494
- {
1495
- className: cn(counterVariants({ theme }), classNames?.input),
1496
- ref,
1497
- value: count,
1498
- onChange: handleChange,
1499
- "data-testid": `counter-element-${props.id}`,
1500
- ...props
1501
- }
1502
- ),
1503
- /* @__PURE__ */ jsx23(
1504
- "button",
1505
- {
1506
- type: "button",
1507
- 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",
1508
- onClick: increment,
1509
- children: /* @__PURE__ */ jsx23(Plus, { className: "h-4 w-4 text-green-100" })
1510
- }
1511
- )
1512
- ] }),
1513
- /* @__PURE__ */ jsx23(ErrorMessage_default, { message: error })
1514
- ]
1515
- }
1818
+ "data-testid": `counter-wrapper-${props.id}`
1819
+ },
1820
+ label && /* @__PURE__ */ React.createElement(
1821
+ Label_default,
1822
+ {
1823
+ text: label,
1824
+ htmlFor: props.name,
1825
+ required: props.required,
1826
+ description,
1827
+ className: classNames?.label
1828
+ }
1829
+ ),
1830
+ /* @__PURE__ */ React.createElement("div", { className: "relative flex w-[122px] flex-row items-center" }, /* @__PURE__ */ React.createElement(
1831
+ "button",
1832
+ {
1833
+ type: "button",
1834
+ 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",
1835
+ onClick: decrement
1836
+ },
1837
+ /* @__PURE__ */ React.createElement(Minus2, { className: "h-4 w-4 text-green-100" })
1838
+ ), /* @__PURE__ */ React.createElement(
1839
+ "input",
1840
+ {
1841
+ className: cn(counterVariants({ theme }), classNames?.input),
1842
+ ref,
1843
+ value: count,
1844
+ onChange: handleChange,
1845
+ "data-testid": `counter-element-${props.id}`,
1846
+ ...props
1847
+ }
1848
+ ), /* @__PURE__ */ React.createElement(
1849
+ "button",
1850
+ {
1851
+ type: "button",
1852
+ 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",
1853
+ onClick: increment
1854
+ },
1855
+ /* @__PURE__ */ React.createElement(Plus, { className: "h-4 w-4 text-green-100" })
1856
+ )),
1857
+ /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error })
1516
1858
  );
1517
1859
  }
1518
1860
  );
@@ -1572,11 +1914,10 @@ import { Slot as Slot2 } from "@radix-ui/react-slot";
1572
1914
  import { cva as cva8 } from "cva";
1573
1915
  import { forwardRef as forwardRef16 } from "react";
1574
1916
  import { twMerge as twMerge3 } from "tailwind-merge";
1575
- import { jsx as jsx24 } from "react/jsx-runtime";
1576
1917
  var Icon = forwardRef16(
1577
1918
  ({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
1578
1919
  const Component = readonly ? Slot2 : "button";
1579
- return /* @__PURE__ */ jsx24(
1920
+ return /* @__PURE__ */ React.createElement(
1580
1921
  Component,
1581
1922
  {
1582
1923
  className: cn(
@@ -1650,9 +1991,8 @@ import { forwardRef as forwardRef18 } from "react";
1650
1991
  // src/components/primitives/input-otp.tsx
1651
1992
  import { OTPInput, OTPInputContext } from "input-otp";
1652
1993
  import { Dot } from "lucide-react";
1653
- import * as React8 from "react";
1654
- import { jsx as jsx25, jsxs as jsxs15 } from "react/jsx-runtime";
1655
- var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx25(
1994
+ import * as React11 from "react";
1995
+ var InputOTP = React11.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ React11.createElement(
1656
1996
  OTPInput,
1657
1997
  {
1658
1998
  ref,
@@ -1665,12 +2005,12 @@ var InputOTP = React8.forwardRef(({ className, containerClassName, ...props }, r
1665
2005
  }
1666
2006
  ));
1667
2007
  InputOTP.displayName = "InputOTP";
1668
- var InputOTPGroup = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25("div", { ref, className: cn("flex items-center", className), ...props }));
2008
+ var InputOTPGroup = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React11.createElement("div", { ref, className: cn("flex items-center", className), ...props }));
1669
2009
  InputOTPGroup.displayName = "InputOTPGroup";
1670
- var InputOTPSlot = React8.forwardRef(({ index, error, className, ...props }, ref) => {
1671
- const inputOTPContext = React8.useContext(OTPInputContext);
2010
+ var InputOTPSlot = React11.forwardRef(({ index, error, className, ...props }, ref) => {
2011
+ const inputOTPContext = React11.useContext(OTPInputContext);
1672
2012
  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
1673
- return /* @__PURE__ */ jsxs15(
2013
+ return /* @__PURE__ */ React11.createElement(
1674
2014
  "div",
1675
2015
  {
1676
2016
  ref,
@@ -1680,57 +2020,52 @@ var InputOTPSlot = React8.forwardRef(({ index, error, className, ...props }, ref
1680
2020
  error && "border-red-500 dark:border-red-400",
1681
2021
  className
1682
2022
  ),
1683
- ...props,
1684
- children: [
1685
- char,
1686
- hasFakeCaret && /* @__PURE__ */ jsx25("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx25("div", { className: "h-4 w-px animate-caret-blink bg-neutral-950 duration-1000 dark:bg-neutral-50" }) })
1687
- ]
1688
- }
2023
+ ...props
2024
+ },
2025
+ char,
2026
+ 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" }))
1689
2027
  );
1690
2028
  });
1691
2029
  InputOTPSlot.displayName = "InputOTPSlot";
1692
- var InputOTPSeparator = React8.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx25("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx25(Dot, {}) }));
2030
+ var InputOTPSeparator = React11.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React11.createElement("div", { ref, role: "separator", ...props }, /* @__PURE__ */ React11.createElement(Dot, null)));
1693
2031
  InputOTPSeparator.displayName = "InputOTPSeparator";
1694
2032
 
1695
2033
  // src/components/ui/InputOtp.tsx
1696
- import { jsx as jsx26, jsxs as jsxs16 } from "react/jsx-runtime";
1697
2034
  var InputOtp = forwardRef18(
1698
2035
  ({ digits, label, description, error, ...props }, ref) => {
1699
- return /* @__PURE__ */ jsxs16(
2036
+ return /* @__PURE__ */ React.createElement(
1700
2037
  "div",
1701
2038
  {
1702
2039
  className: "group flex w-full flex-col gap-1",
1703
- "data-testid": `input-otp-wrapper-${props.id}`,
1704
- children: [
1705
- label && /* @__PURE__ */ jsx26(
1706
- Label_default,
1707
- {
1708
- text: label,
1709
- htmlFor: props.name,
1710
- required: props.required,
1711
- description
1712
- }
1713
- ),
1714
- /* @__PURE__ */ jsx26("div", { className: "relative flex flex-row items-center", children: /* @__PURE__ */ jsx26(
1715
- InputOTP,
1716
- {
1717
- ref,
1718
- maxLength: digits,
1719
- "data-testid": `input-otp-element-${props.id}`,
1720
- ...props,
1721
- children: [...Array(digits)].map((_, index) => /* @__PURE__ */ jsx26(InputOTPGroup, { children: /* @__PURE__ */ jsx26(
1722
- InputOTPSlot,
1723
- {
1724
- "data-testid": `input-otp-slot-${index}`,
1725
- index,
1726
- error: Boolean(error)
1727
- }
1728
- ) }, index))
1729
- }
1730
- ) }),
1731
- /* @__PURE__ */ jsx26(ErrorMessage_default, { message: error })
1732
- ]
1733
- }
2040
+ "data-testid": `input-otp-wrapper-${props.id}`
2041
+ },
2042
+ label && /* @__PURE__ */ React.createElement(
2043
+ Label_default,
2044
+ {
2045
+ text: label,
2046
+ htmlFor: props.name,
2047
+ required: props.required,
2048
+ description
2049
+ }
2050
+ ),
2051
+ /* @__PURE__ */ React.createElement("div", { className: "relative flex flex-row items-center" }, /* @__PURE__ */ React.createElement(
2052
+ InputOTP,
2053
+ {
2054
+ ref,
2055
+ maxLength: digits,
2056
+ "data-testid": `input-otp-element-${props.id}`,
2057
+ ...props
2058
+ },
2059
+ [...Array(digits)].map((_, index) => /* @__PURE__ */ React.createElement(InputOTPGroup, { key: index }, /* @__PURE__ */ React.createElement(
2060
+ InputOTPSlot,
2061
+ {
2062
+ "data-testid": `input-otp-slot-${index}`,
2063
+ index,
2064
+ error: Boolean(error)
2065
+ }
2066
+ )))
2067
+ )),
2068
+ /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error })
1734
2069
  );
1735
2070
  }
1736
2071
  );
@@ -1738,7 +2073,7 @@ InputOtp.displayName = "Input";
1738
2073
 
1739
2074
  // src/components/ui/LinkButton.tsx
1740
2075
  import Link2 from "next/link";
1741
- import { jsx as jsx27 } from "react/jsx-runtime";
2076
+ import React12 from "react";
1742
2077
  var LinkButton = ({
1743
2078
  disabled = false,
1744
2079
  useAnchor = false,
@@ -1747,27 +2082,26 @@ var LinkButton = ({
1747
2082
  ...props
1748
2083
  }) => {
1749
2084
  const Component = useAnchor ? "a" : Link2;
1750
- return /* @__PURE__ */ jsx27(
2085
+ return /* @__PURE__ */ React12.createElement(
1751
2086
  Component,
1752
2087
  {
1753
2088
  href,
1754
2089
  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" : ""} `,
1755
2090
  ...disabled && { "aria-disabled": true, tabIndex: -1 },
1756
- ...props,
1757
- children
1758
- }
2091
+ ...props
2092
+ },
2093
+ children
1759
2094
  );
1760
2095
  };
1761
2096
 
1762
2097
  // src/components/ui/ReadMore.tsx
1763
- import { useEffect as useEffect5, useState as useState5 } from "react";
2098
+ import { useEffect as useEffect6, useState as useState6 } from "react";
1764
2099
  import Markdown from "react-markdown";
1765
- import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
1766
2100
  function ReadMore({ text, ...props }) {
1767
- const [isExpanded, setIsExpanded] = useState5(false);
1768
- const [maxWords, setMaxWords] = useState5(160);
2101
+ const [isExpanded, setIsExpanded] = useState6(false);
2102
+ const [maxWords, setMaxWords] = useState6(160);
1769
2103
  const isOverMaxWords = text.split(" ").length > maxWords;
1770
- useEffect5(() => {
2104
+ useEffect6(() => {
1771
2105
  const updateMaxWords = () => {
1772
2106
  const windowWidth = window.innerWidth;
1773
2107
  if (windowWidth <= 768) {
@@ -1789,39 +2123,33 @@ function ReadMore({ text, ...props }) {
1789
2123
  }
1790
2124
  const toggleText = () => setIsExpanded(!isExpanded);
1791
2125
  const snippet = createReadMoreText(text, maxWords, isExpanded);
1792
- return /* @__PURE__ */ jsxs17("div", { ...props, children: [
1793
- /* @__PURE__ */ jsx28("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ jsx28(Markdown, { children: snippet }) }),
1794
- isOverMaxWords && /* @__PURE__ */ jsx28(
1795
- Button,
1796
- {
1797
- type: "button",
1798
- className: "mt-2 flex items-center justify-center",
1799
- variant: "link",
1800
- onClick: toggleText,
1801
- children: /* @__PURE__ */ jsxs17("p", { className: "text-sm font-bold underline underline-offset-2", children: [
1802
- "Read ",
1803
- isExpanded ? "less" : "more"
1804
- ] })
1805
- }
1806
- )
1807
- ] });
2126
+ return /* @__PURE__ */ React.createElement("div", { ...props }, /* @__PURE__ */ React.createElement("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg" }, /* @__PURE__ */ React.createElement(Markdown, null, snippet)), isOverMaxWords && /* @__PURE__ */ React.createElement(
2127
+ Button,
2128
+ {
2129
+ type: "button",
2130
+ className: "mt-2 flex items-center justify-center",
2131
+ variant: "link",
2132
+ onClick: toggleText
2133
+ },
2134
+ /* @__PURE__ */ React.createElement("p", { className: "text-sm font-bold underline underline-offset-2" }, "Read ", isExpanded ? "less" : "more")
2135
+ ));
1808
2136
  }
1809
2137
 
1810
2138
  // src/components/ui/DatePicker.tsx
1811
2139
  import { cva as cva10 } from "cva";
1812
2140
  import { format } from "date-fns";
1813
2141
  import { Calendar as CalendarIcon } from "lucide-react";
1814
- import { forwardRef as forwardRef20, useEffect as useEffect6, useState as useState6 } from "react";
2142
+ import { forwardRef as forwardRef20, useEffect as useEffect7, useState as useState7 } from "react";
1815
2143
 
1816
2144
  // src/components/ui/calendar.tsx
1817
2145
  import { ChevronLeft, ChevronRight } from "lucide-react";
2146
+ import * as React14 from "react";
1818
2147
  import { DayPicker } from "react-day-picker";
1819
2148
 
1820
2149
  // src/components/ui/buttonShadcn.tsx
1821
2150
  import { Slot as Slot3 } from "@radix-ui/react-slot";
1822
2151
  import { cva as cva9 } from "class-variance-authority";
1823
- import * as React9 from "react";
1824
- import { jsx as jsx29 } from "react/jsx-runtime";
2152
+ import * as React13 from "react";
1825
2153
  var buttonVariants2 = cva9(
1826
2154
  "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",
1827
2155
  {
@@ -1847,18 +2175,17 @@ var buttonVariants2 = cva9(
1847
2175
  }
1848
2176
  }
1849
2177
  );
1850
- var Button2 = React9.forwardRef(
2178
+ var Button2 = React13.forwardRef(
1851
2179
  ({ className, variant, size, asChild = false, ...props }, ref) => {
1852
2180
  const Comp = asChild ? Slot3 : "button";
1853
- return /* @__PURE__ */ jsx29(Comp, { className: cn(buttonVariants2({ variant, size, className })), ref, ...props });
2181
+ return /* @__PURE__ */ React13.createElement(Comp, { className: cn(buttonVariants2({ variant, size, className })), ref, ...props });
1854
2182
  }
1855
2183
  );
1856
2184
  Button2.displayName = "Button";
1857
2185
 
1858
2186
  // src/components/ui/calendar.tsx
1859
- import { jsx as jsx30 } from "react/jsx-runtime";
1860
2187
  function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1861
- return /* @__PURE__ */ jsx30(
2188
+ return /* @__PURE__ */ React14.createElement(
1862
2189
  DayPicker,
1863
2190
  {
1864
2191
  showOutsideDays,
@@ -1898,8 +2225,8 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1898
2225
  ...classNames
1899
2226
  },
1900
2227
  components: {
1901
- IconLeft: ({ className: className2, ...props2 }) => /* @__PURE__ */ jsx30(ChevronLeft, { className: cn("h-4 w-4", className2), ...props2 }),
1902
- IconRight: ({ className: className2, ...props2 }) => /* @__PURE__ */ jsx30(ChevronRight, { className: cn("h-4 w-4", className2), ...props2 })
2228
+ IconLeft: ({ className: className2, ...props2 }) => /* @__PURE__ */ React14.createElement(ChevronLeft, { className: cn("h-4 w-4", className2), ...props2 }),
2229
+ IconRight: ({ className: className2, ...props2 }) => /* @__PURE__ */ React14.createElement(ChevronRight, { className: cn("h-4 w-4", className2), ...props2 })
1903
2230
  },
1904
2231
  ...props
1905
2232
  }
@@ -1908,11 +2235,10 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1908
2235
  Calendar.displayName = "Calendar";
1909
2236
 
1910
2237
  // src/components/ui/DatePicker.tsx
1911
- import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
1912
2238
  var DatePicker = forwardRef20(
1913
2239
  ({ label, description, required, classNames, value, onChange, error, id, testId }, ref) => {
1914
- const [date, setDate] = useState6(null);
1915
- useEffect6(() => {
2240
+ const [date, setDate] = useState7(null);
2241
+ useEffect7(() => {
1916
2242
  setDate(value ?? null);
1917
2243
  }, [value]);
1918
2244
  const handleDateSelect = (dateSelected) => {
@@ -1920,35 +2246,25 @@ var DatePicker = forwardRef20(
1920
2246
  onChange?.(dateSelected);
1921
2247
  setDate(dateSelected);
1922
2248
  };
1923
- return /* @__PURE__ */ jsxs18("div", { id, className: cn("flex w-auto flex-col gap-1"), children: [
1924
- label && /* @__PURE__ */ jsx31(
1925
- Label_default,
1926
- {
1927
- text: label,
1928
- required,
1929
- description,
1930
- className: classNames?.label
1931
- }
1932
- ),
1933
- /* @__PURE__ */ jsxs18(Popover, { children: [
1934
- /* @__PURE__ */ jsx31(PopoverTrigger, { "data-testid": testId, children: /* @__PURE__ */ jsxs18("div", { className: cn(datePickerStyle(), classNames?.input), children: [
1935
- /* @__PURE__ */ jsx31(CalendarIcon, { size: 16 }),
1936
- date ? format(date, "MM/dd/yyyy") : "Select a date"
1937
- ] }) }),
1938
- /* @__PURE__ */ jsx31(PopoverContent, { ref, children: /* @__PURE__ */ jsx31(
1939
- Calendar,
1940
- {
1941
- mode: "single",
1942
- selected: date || void 0,
1943
- onSelect: handleDateSelect,
1944
- captionLayout: "dropdown",
1945
- showOutsideDays: true,
1946
- className: classNames?.calendar
1947
- }
1948
- ) })
1949
- ] }),
1950
- /* @__PURE__ */ jsx31(ErrorMessage_default, { message: error })
1951
- ] });
2249
+ return /* @__PURE__ */ React.createElement("div", { id, className: cn("flex w-auto flex-col gap-1") }, label && /* @__PURE__ */ React.createElement(
2250
+ Label_default,
2251
+ {
2252
+ text: label,
2253
+ required,
2254
+ description,
2255
+ className: classNames?.label
2256
+ }
2257
+ ), /* @__PURE__ */ React.createElement(Popover, null, /* @__PURE__ */ React.createElement(PopoverTrigger, { "data-testid": testId }, /* @__PURE__ */ React.createElement("div", { className: cn(datePickerStyle(), classNames?.input) }, /* @__PURE__ */ React.createElement(CalendarIcon, { size: 16 }), date ? format(date, "MM/dd/yyyy") : "Select a date")), /* @__PURE__ */ React.createElement(PopoverContent, { ref }, /* @__PURE__ */ React.createElement(
2258
+ Calendar,
2259
+ {
2260
+ mode: "single",
2261
+ selected: date || void 0,
2262
+ onSelect: handleDateSelect,
2263
+ captionLayout: "dropdown",
2264
+ showOutsideDays: true,
2265
+ className: classNames?.calendar
2266
+ }
2267
+ ))), /* @__PURE__ */ React.createElement(ErrorMessage_default, { message: error }));
1952
2268
  }
1953
2269
  );
1954
2270
  var datePickerStyle = cva10([
@@ -1986,7 +2302,6 @@ var datePickerStyle = cva10([
1986
2302
  // src/components/ui/StepTabs.tsx
1987
2303
  import * as Tabs from "@radix-ui/react-tabs";
1988
2304
  import { cva as cva11 } from "cva";
1989
- import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
1990
2305
  var tabParentVariants = cva11("flex flex-col", {
1991
2306
  variants: {
1992
2307
  variant: {
@@ -2037,45 +2352,42 @@ function StepTabs({
2037
2352
  variant,
2038
2353
  ...props
2039
2354
  }) {
2040
- return /* @__PURE__ */ jsxs19(
2355
+ return /* @__PURE__ */ React.createElement(
2041
2356
  Tabs.Root,
2042
2357
  {
2043
2358
  value: currentStep,
2044
2359
  onValueChange: setCurrentStep,
2045
2360
  defaultValue: defaultValue ?? "0",
2046
2361
  className: cn(tabParentVariants({ variant }), className),
2047
- ...props,
2048
- children: [
2049
- /* @__PURE__ */ jsx32(Tabs.List, { className: cn(headerVariants({ variant })), children: list.length > 1 && list.map((item, index) => /* @__PURE__ */ jsx32(
2050
- Tabs.Trigger,
2051
- {
2052
- className: cn(singleTabVariants({ variant }), classNameTab),
2053
- value: index.toString(),
2054
- children: item
2055
- },
2056
- `${item}-${index}`
2057
- )) }),
2058
- children && children.map((child, index) => /* @__PURE__ */ jsx32(
2059
- Tabs.Content,
2060
- {
2061
- className: cn(
2062
- "grow rounded-b-md bg-white p-5 outline-none",
2063
- variant === "minimal" && "border-t"
2064
- ),
2065
- value: index.toString(),
2066
- children: child
2067
- },
2068
- index
2069
- ))
2070
- ]
2071
- }
2362
+ ...props
2363
+ },
2364
+ /* @__PURE__ */ React.createElement(Tabs.List, { className: cn(headerVariants({ variant })) }, list.length > 1 && list.map((item, index) => /* @__PURE__ */ React.createElement(
2365
+ Tabs.Trigger,
2366
+ {
2367
+ key: `${item}-${index}`,
2368
+ className: cn(singleTabVariants({ variant }), classNameTab),
2369
+ value: index.toString()
2370
+ },
2371
+ item
2372
+ ))),
2373
+ children && children.map((child, index) => /* @__PURE__ */ React.createElement(
2374
+ Tabs.Content,
2375
+ {
2376
+ key: index,
2377
+ className: cn(
2378
+ "grow rounded-b-md bg-white p-5 outline-none",
2379
+ variant === "minimal" && "border-t"
2380
+ ),
2381
+ value: index.toString()
2382
+ },
2383
+ child
2384
+ ))
2072
2385
  );
2073
2386
  }
2074
2387
 
2075
2388
  // src/components/ui/DismissibleBanner.tsx
2076
2389
  import { X as X4 } from "lucide-react";
2077
- import { useEffect as useEffect7, useState as useState7 } from "react";
2078
- import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
2390
+ import { useEffect as useEffect8, useState as useState8 } from "react";
2079
2391
  function DismissibleBanner({
2080
2392
  children,
2081
2393
  cookieId,
@@ -2084,8 +2396,8 @@ function DismissibleBanner({
2084
2396
  buttonClassNames
2085
2397
  }) {
2086
2398
  const safeId = encodeURIComponent(cookieId);
2087
- const [isVisible, setIsVisible] = useState7(false);
2088
- useEffect7(() => {
2399
+ const [isVisible, setIsVisible] = useState8(false);
2400
+ useEffect8(() => {
2089
2401
  const cookies = document.cookie.split(";");
2090
2402
  const isDismissed = cookies.some((cookie) => cookie.trim().startsWith(`${safeId}=true`));
2091
2403
  if (!isDismissed) {
@@ -2097,26 +2409,24 @@ function DismissibleBanner({
2097
2409
  setIsVisible(false);
2098
2410
  };
2099
2411
  if (!isVisible) return null;
2100
- return /* @__PURE__ */ jsxs20(
2412
+ return /* @__PURE__ */ React.createElement(
2101
2413
  "nav",
2102
2414
  {
2103
2415
  className: cn(
2104
2416
  "align-center flex w-full items-center justify-between gap-2 bg-blue-100 px-4 py-3",
2105
2417
  className
2106
- ),
2107
- children: [
2108
- /* @__PURE__ */ jsx33("div", { className: cn("w-full text-center text-sm text-green-100", textClassNames), children }),
2109
- /* @__PURE__ */ jsx33(
2110
- "button",
2111
- {
2112
- className: cn("text-green-100", buttonClassNames),
2113
- "aria-label": "Close banner",
2114
- onClick: handleDismiss,
2115
- children: /* @__PURE__ */ jsx33(X4, { size: 28 })
2116
- }
2117
- )
2118
- ]
2119
- }
2418
+ )
2419
+ },
2420
+ /* @__PURE__ */ React.createElement("div", { className: cn("w-full text-center text-sm text-green-100", textClassNames) }, children),
2421
+ /* @__PURE__ */ React.createElement(
2422
+ "button",
2423
+ {
2424
+ className: cn("text-green-100", buttonClassNames),
2425
+ "aria-label": "Close banner",
2426
+ onClick: handleDismiss
2427
+ },
2428
+ /* @__PURE__ */ React.createElement(X4, { size: 28 })
2429
+ )
2120
2430
  );
2121
2431
  }
2122
2432
 
@@ -2550,17 +2860,12 @@ function salaryRange(salary, showUnitText = true) {
2550
2860
  }
2551
2861
 
2552
2862
  // src/components/company/CompanyBenefits.tsx
2553
- import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
2554
2863
  function CompanyBenefits({ benefits }) {
2555
2864
  if (!benefits) return null;
2556
- return /* @__PURE__ */ jsxs21("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
2557
- /* @__PURE__ */ jsx34("h2", { className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg", children: "Company benefits" }),
2558
- /* @__PURE__ */ jsx34("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ jsx34("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
2559
- ] });
2865
+ 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))));
2560
2866
  }
2561
2867
 
2562
2868
  // src/components/company/CompanyInformation.tsx
2563
- import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
2564
2869
  function CompanyInformation({
2565
2870
  name,
2566
2871
  how,
@@ -2568,78 +2873,45 @@ function CompanyInformation({
2568
2873
  wow,
2569
2874
  website
2570
2875
  }) {
2571
- return /* @__PURE__ */ jsxs22("div", { className: "flex flex-col gap-2", children: [
2572
- /* @__PURE__ */ jsxs22(
2573
- "h2",
2574
- {
2575
- "data-testid": "company-name",
2576
- className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg",
2577
- children: [
2578
- "About ",
2579
- name
2580
- ]
2581
- }
2582
- ),
2583
- how && /* @__PURE__ */ jsx35("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
2584
- mission && /* @__PURE__ */ jsxs22("div", { className: "flex gap-2", children: [
2585
- /* @__PURE__ */ jsx35("span", { children: "\u{1F680}" }),
2586
- /* @__PURE__ */ jsxs22("p", { className: "text-base text-grey-80", children: [
2587
- /* @__PURE__ */ jsx35("span", { className: "pr-1 font-bold", children: "Mission" }),
2588
- mission
2589
- ] })
2590
- ] }),
2591
- wow && /* @__PURE__ */ jsxs22("div", { className: "flex gap-2", children: [
2592
- /* @__PURE__ */ jsx35("span", { children: "\u{1F31F}" }),
2593
- /* @__PURE__ */ jsxs22("p", { className: "text-base text-grey-80", children: [
2594
- /* @__PURE__ */ jsx35("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
2595
- wow
2596
- ] })
2597
- ] }),
2598
- website && /* @__PURE__ */ jsx35("div", { className: "pt-2", children: /* @__PURE__ */ jsx35(
2599
- LinkButton,
2600
- {
2601
- "data-testid": "company-website-link",
2602
- href: website,
2603
- target: "_blank",
2604
- rel: "noopener noreferrer",
2605
- children: "Website"
2606
- }
2607
- ) })
2608
- ] });
2876
+ return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React.createElement(
2877
+ "h2",
2878
+ {
2879
+ "data-testid": "company-name",
2880
+ className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg"
2881
+ },
2882
+ "About ",
2883
+ name
2884
+ ), 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(
2885
+ LinkButton,
2886
+ {
2887
+ "data-testid": "company-website-link",
2888
+ href: website,
2889
+ target: "_blank",
2890
+ rel: "noopener noreferrer"
2891
+ },
2892
+ "Website"
2893
+ )));
2609
2894
  }
2610
2895
 
2611
2896
  // src/components/company/CompanyTake.tsx
2612
- import { jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
2613
2897
  function CompanyTake({ content, avatarSrc }) {
2614
2898
  if (!content) return null;
2615
- return /* @__PURE__ */ jsxs23(
2899
+ return /* @__PURE__ */ React.createElement(
2616
2900
  "div",
2617
2901
  {
2618
2902
  "data-testid": "company-take",
2619
- className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6",
2620
- children: [
2621
- /* @__PURE__ */ jsx36("p", { className: "text-lg font-bold text-white sm:text-xl", children: "The Real Dill \u2618\uFE0F" }),
2622
- /* @__PURE__ */ jsx36("div", { className: "mt-2 flex items-center justify-start", children: /* @__PURE__ */ jsx36("p", { className: "text-sm font-normal text-grey-10", children: content }) }),
2623
- /* @__PURE__ */ jsxs23("div", { className: "mt-8 flex w-full items-center gap-3", children: [
2624
- /* @__PURE__ */ jsx36(Avatar, { name: "Jon Lee", src: avatarSrc }),
2625
- /* @__PURE__ */ jsxs23("div", { className: "flex flex-col flex-wrap items-start", children: [
2626
- /* @__PURE__ */ jsx36("p", { className: "text-sm font-bold text-white", children: "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA" }),
2627
- /* @__PURE__ */ jsx36("p", { className: "text-xs font-normal text-grey-30", children: "Pickle co-founder" })
2628
- ] })
2629
- ] })
2630
- ]
2631
- }
2903
+ className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6"
2904
+ },
2905
+ /* @__PURE__ */ React.createElement("p", { className: "text-lg font-bold text-white sm:text-xl" }, "The Real Dill \u2618\uFE0F"),
2906
+ /* @__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)),
2907
+ /* @__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")))
2632
2908
  );
2633
2909
  }
2634
2910
 
2635
2911
  // src/components/jobPost/JobDescription.tsx
2636
- import { jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
2637
2912
  function JobDescription({ description }) {
2638
2913
  if (!description) return null;
2639
- return /* @__PURE__ */ jsxs24("div", { className: "flex w-full flex-col gap-2", children: [
2640
- /* @__PURE__ */ jsx37("h3", { className: "text-xl font-bold", children: "Job Description" }),
2641
- /* @__PURE__ */ jsx37(ReadMore, { text: description })
2642
- ] });
2914
+ 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 }));
2643
2915
  }
2644
2916
 
2645
2917
  // src/components/jobPost/JobHeader.tsx
@@ -2655,19 +2927,18 @@ import { useContext as useContext2 } from "react";
2655
2927
 
2656
2928
  // src/contexts/WindowHistoryProvider.tsx
2657
2929
  import { useSearchParams } from "next/navigation";
2658
- import { createContext, useEffect as useEffect8, useMemo, useState as useState8 } from "react";
2659
- import { jsx as jsx38 } from "react/jsx-runtime";
2930
+ import { createContext, useEffect as useEffect9, useMemo as useMemo3, useState as useState9 } from "react";
2660
2931
  var WindowHistoryContext = createContext({});
2661
2932
  function WindowHistoryProvider({ children }) {
2662
- const [history, setHistory] = useState8([]);
2933
+ const [history, setHistory] = useState9([]);
2663
2934
  const searchParams = useSearchParams();
2664
- useEffect8(() => {
2935
+ useEffect9(() => {
2665
2936
  setHistory(
2666
2937
  (prev) => prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]
2667
2938
  );
2668
2939
  }, [searchParams]);
2669
- const contextValue = useMemo(() => ({ history }), [history]);
2670
- return /* @__PURE__ */ jsx38(WindowHistoryContext.Provider, { value: contextValue, children });
2940
+ const contextValue = useMemo3(() => ({ history }), [history]);
2941
+ return /* @__PURE__ */ React.createElement(WindowHistoryContext.Provider, { value: contextValue }, children);
2671
2942
  }
2672
2943
 
2673
2944
  // src/hooks/useWindowHistory.ts
@@ -2677,7 +2948,6 @@ function useWindowHistory() {
2677
2948
  }
2678
2949
 
2679
2950
  // src/components/buttons/BackButton.tsx
2680
- import { jsx as jsx39 } from "react/jsx-runtime";
2681
2951
  function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
2682
2952
  const { history } = useWindowHistory();
2683
2953
  const router = useRouter();
@@ -2690,7 +2960,7 @@ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
2690
2960
  router.push(fallbackHref ?? "/");
2691
2961
  }
2692
2962
  };
2693
- return /* @__PURE__ */ jsx39(
2963
+ return /* @__PURE__ */ React.createElement(
2694
2964
  Icon,
2695
2965
  {
2696
2966
  "aria-label": "back button",
@@ -2698,9 +2968,9 @@ function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
2698
2968
  size: "small",
2699
2969
  onClick: goBack,
2700
2970
  className,
2701
- ...props,
2702
- children: /* @__PURE__ */ jsx39(X5, {})
2703
- }
2971
+ ...props
2972
+ },
2973
+ /* @__PURE__ */ React.createElement(X5, null)
2704
2974
  );
2705
2975
  }
2706
2976
 
@@ -2751,7 +3021,6 @@ var iconMap = {
2751
3021
  };
2752
3022
 
2753
3023
  // src/components/jobPost/JobHeader.tsx
2754
- import { jsx as jsx40, jsxs as jsxs25 } from "react/jsx-runtime";
2755
3024
  function JobHeader({
2756
3025
  title,
2757
3026
  subtitles,
@@ -2767,130 +3036,111 @@ function JobHeader({
2767
3036
  }) {
2768
3037
  const renderIcon = (icon) => {
2769
3038
  const Icon2 = iconMap[icon];
2770
- return /* @__PURE__ */ jsx40(Icon2, { size: 18 });
3039
+ return /* @__PURE__ */ React.createElement(Icon2, { size: 18 });
2771
3040
  };
2772
- return /* @__PURE__ */ jsxs25(
3041
+ return /* @__PURE__ */ React.createElement(
2773
3042
  "div",
2774
3043
  {
2775
3044
  "data-testid": "job-header-root",
2776
3045
  className: cn(
2777
3046
  "-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0",
2778
3047
  !standalone && "rounded-3xl"
3048
+ )
3049
+ },
3050
+ !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(
3051
+ Image2,
3052
+ {
3053
+ className: "h-full w-full rounded-t-3xl object-cover",
3054
+ src: bannerSrc,
3055
+ alt: "job banner",
3056
+ fill: true
3057
+ }
3058
+ ), /* @__PURE__ */ React.createElement(
3059
+ BackButton,
3060
+ {
3061
+ acceptedRoutes: backAcceptedRoutes,
3062
+ fallbackHref: backFallbackHref,
3063
+ className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
3064
+ "data-testid": "job-header-back-button"
3065
+ }
3066
+ ), /* @__PURE__ */ React.createElement(
3067
+ "div",
3068
+ {
3069
+ className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
3070
+ "data-testid": "job-header-avatar"
3071
+ },
3072
+ /* @__PURE__ */ React.createElement(
3073
+ Avatar,
3074
+ {
3075
+ size: "large",
3076
+ target: "_blank",
3077
+ href: avatarHref,
3078
+ name: avatarName,
3079
+ src: avatarSrc,
3080
+ rel: "noopener noreferrer"
3081
+ }
3082
+ )
3083
+ )),
3084
+ /* @__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(
3085
+ Avatar,
3086
+ {
3087
+ size: "large",
3088
+ target: "_blank",
3089
+ href: avatarHref,
3090
+ name: avatarName,
3091
+ src: avatarSrc,
3092
+ rel: "noopener noreferrer"
3093
+ }
3094
+ )), /* @__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(
3095
+ "div",
3096
+ {
3097
+ key: subtitle,
3098
+ "data-testid": `job-header-subtitle-${i}`,
3099
+ className: "flex items-center"
3100
+ },
3101
+ subtitle,
3102
+ i < subtitles.length - 1 && /* @__PURE__ */ React.createElement(Dot2, { className: "mx-1 shrink-0", size: 10 })
3103
+ )))), /* @__PURE__ */ React.createElement(
3104
+ "div",
3105
+ {
3106
+ "data-testid": "job-header-content",
3107
+ className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1"
3108
+ },
3109
+ /* @__PURE__ */ React.createElement(
3110
+ "h2",
3111
+ {
3112
+ "data-testid": "job-header-title",
3113
+ className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg"
3114
+ },
3115
+ title
2779
3116
  ),
2780
- children: [
2781
- !standalone && /* @__PURE__ */ jsxs25("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: [
2782
- /* @__PURE__ */ jsx40(
2783
- Image2,
2784
- {
2785
- className: "h-full w-full rounded-t-3xl object-cover",
2786
- src: bannerSrc,
2787
- alt: "job banner",
2788
- fill: true
2789
- }
2790
- ),
2791
- /* @__PURE__ */ jsx40(
2792
- BackButton,
2793
- {
2794
- acceptedRoutes: backAcceptedRoutes,
2795
- fallbackHref: backFallbackHref,
2796
- className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
2797
- "data-testid": "job-header-back-button"
2798
- }
2799
- ),
2800
- /* @__PURE__ */ jsx40(
2801
- "div",
2802
- {
2803
- className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
2804
- "data-testid": "job-header-avatar",
2805
- children: /* @__PURE__ */ jsx40(
2806
- Avatar,
2807
- {
2808
- size: "large",
2809
- target: "_blank",
2810
- href: avatarHref,
2811
- name: avatarName,
2812
- src: avatarSrc,
2813
- rel: "noopener noreferrer"
2814
- }
2815
- )
2816
- }
2817
- )
2818
- ] }),
2819
- /* @__PURE__ */ jsxs25("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6", children: [
2820
- /* @__PURE__ */ jsxs25("div", { className: "flex flex-col md:flex-row", children: [
2821
- standalone && /* @__PURE__ */ jsx40("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar", children: /* @__PURE__ */ jsx40(
2822
- Avatar,
2823
- {
2824
- size: "large",
2825
- target: "_blank",
2826
- href: avatarHref,
2827
- name: avatarName,
2828
- src: avatarSrc,
2829
- rel: "noopener noreferrer"
2830
- }
2831
- ) }),
2832
- /* @__PURE__ */ jsx40("div", { className: "prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg", children: subtitles?.map((subtitle, i) => /* @__PURE__ */ jsxs25(
2833
- "div",
2834
- {
2835
- "data-testid": `job-header-subtitle-${i}`,
2836
- className: "flex items-center",
2837
- children: [
2838
- subtitle,
2839
- i < subtitles.length - 1 && /* @__PURE__ */ jsx40(Dot2, { className: "mx-1 shrink-0", size: 10 })
2840
- ]
2841
- },
2842
- subtitle
2843
- )) })
2844
- ] }),
2845
- /* @__PURE__ */ jsxs25(
2846
- "div",
2847
- {
2848
- "data-testid": "job-header-content",
2849
- className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1",
2850
- children: [
2851
- /* @__PURE__ */ jsx40(
2852
- "h2",
2853
- {
2854
- "data-testid": "job-header-title",
2855
- className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg",
2856
- children: title
2857
- }
2858
- ),
2859
- !!actions && /* @__PURE__ */ jsx40(
2860
- "div",
2861
- {
2862
- className: "flex w-full justify-end gap-2 md:w-auto",
2863
- "data-testid": "job-header-actions",
2864
- children: actions
2865
- }
2866
- )
2867
- ]
2868
- }
2869
- ),
2870
- /* @__PURE__ */ jsx40(
2871
- "div",
2872
- {
2873
- "data-testid": "job-header-tags",
2874
- className: "flex flex-row flex-wrap items-center justify-start gap-2",
2875
- children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ jsxs25(
2876
- Chip_default,
2877
- {
2878
- size: "small",
2879
- variant: "neutral",
2880
- "aria-label": name,
2881
- "data-testid": `job-header-tag-${name}`,
2882
- children: [
2883
- renderIcon(icon),
2884
- /* @__PURE__ */ jsx40("span", { children: label })
2885
- ]
2886
- },
2887
- `${name}-${label}`
2888
- ))
2889
- }
2890
- )
2891
- ] })
2892
- ]
2893
- }
3117
+ !!actions && /* @__PURE__ */ React.createElement(
3118
+ "div",
3119
+ {
3120
+ className: "flex w-full justify-end gap-2 md:w-auto",
3121
+ "data-testid": "job-header-actions"
3122
+ },
3123
+ actions
3124
+ )
3125
+ ), /* @__PURE__ */ React.createElement(
3126
+ "div",
3127
+ {
3128
+ "data-testid": "job-header-tags",
3129
+ className: "flex flex-row flex-wrap items-center justify-start gap-2"
3130
+ },
3131
+ tags?.map(({ name, label, icon }) => /* @__PURE__ */ React.createElement(
3132
+ Chip_default,
3133
+ {
3134
+ key: `${name}-${label}`,
3135
+ size: "small",
3136
+ variant: "neutral",
3137
+ "aria-label": name,
3138
+ "data-testid": `job-header-tag-${name}`
3139
+ },
3140
+ renderIcon(icon),
3141
+ /* @__PURE__ */ React.createElement("span", null, label)
3142
+ ))
3143
+ ))
2894
3144
  );
2895
3145
  }
2896
3146
 
@@ -2898,7 +3148,7 @@ function JobHeader({
2898
3148
  import * as DateFns from "date-fns";
2899
3149
 
2900
3150
  // src/hooks/useDisplayText.ts
2901
- import { useEffect as useEffect9, useMemo as useMemo2, useState as useState9 } from "react";
3151
+ import { useEffect as useEffect10, useMemo as useMemo4, useState as useState10 } from "react";
2902
3152
 
2903
3153
  // src/lib/mappings.ts
2904
3154
  var employmentTypeDisplayText = {
@@ -3342,9 +3592,9 @@ var DisplayTextService = class {
3342
3592
 
3343
3593
  // src/hooks/useDisplayText.ts
3344
3594
  var useDisplayText = (scope, value) => {
3345
- const [displayText, setDisplayText] = useState9("");
3346
- const displayService = useMemo2(() => new DisplayTextService(), []);
3347
- useEffect9(() => {
3595
+ const [displayText, setDisplayText] = useState10("");
3596
+ const displayService = useMemo4(() => new DisplayTextService(), []);
3597
+ useEffect10(() => {
3348
3598
  if (!displayService || !value) {
3349
3599
  setDisplayText("");
3350
3600
  return;
@@ -3405,7 +3655,6 @@ function getAddressList(jobPost) {
3405
3655
  }
3406
3656
 
3407
3657
  // src/components/jobPost/JobPost.tsx
3408
- import { jsx as jsx41, jsxs as jsxs26 } from "react/jsx-runtime";
3409
3658
  function JobPost({
3410
3659
  job,
3411
3660
  bannerSrc,
@@ -3451,97 +3700,80 @@ function JobPost({
3451
3700
  label
3452
3701
  }))
3453
3702
  ].filter((t) => !!t);
3454
- return /* @__PURE__ */ jsxs26(
3703
+ return /* @__PURE__ */ React.createElement(
3455
3704
  "div",
3456
3705
  {
3457
3706
  className: cn(
3458
3707
  "flex flex-col gap-10 pb-4",
3459
3708
  !standalone && "border-1 rounded-3xl border-grey-5"
3460
- ),
3461
- children: [
3462
- /* @__PURE__ */ jsx41(
3463
- JobHeader,
3464
- {
3465
- title: job.title,
3466
- bannerSrc,
3467
- avatarName: job.hiringOrganization?.companyName,
3468
- avatarSrc: job.hiringOrganization?.logo?.asset?.url,
3469
- subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
3470
- actions,
3471
- standalone,
3472
- avatarHref,
3473
- backFallbackHref: fallbackHref,
3474
- backAcceptedRoutes,
3475
- tags
3476
- }
3477
- ),
3478
- /* @__PURE__ */ jsxs26("div", { className: "flex flex-col gap-8 px-6", children: [
3479
- /* @__PURE__ */ jsx41(JobDescription, { description: job.description }),
3480
- /* @__PURE__ */ jsx41(
3481
- CompanyTake,
3482
- {
3483
- avatarSrc,
3484
- content: job.hiringOrganization?.companyNDG?.companyNDGTake
3485
- }
3486
- ),
3487
- /* @__PURE__ */ jsx41(
3488
- CompanyInformation,
3489
- {
3490
- name: job.hiringOrganization?.companyName ?? "",
3491
- how: job.hiringOrganization?.companyPhilosophy?.companyHow,
3492
- mission: job.hiringOrganization?.companyPhilosophy?.companyMission,
3493
- wow: job.hiringOrganization?.companyNDG?.companyWow,
3494
- website: job.hiringOrganization?.companyWebsite
3495
- }
3496
- ),
3497
- /* @__PURE__ */ jsx41(
3498
- CompanyBenefits,
3499
- {
3500
- benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.title).filter((d) => d !== void 0)
3501
- }
3502
- )
3503
- ] })
3504
- ]
3505
- }
3709
+ )
3710
+ },
3711
+ /* @__PURE__ */ React.createElement(
3712
+ JobHeader,
3713
+ {
3714
+ title: job.title,
3715
+ bannerSrc,
3716
+ avatarName: job.hiringOrganization?.companyName,
3717
+ avatarSrc: job.hiringOrganization?.logo?.asset?.url,
3718
+ subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
3719
+ actions,
3720
+ standalone,
3721
+ avatarHref,
3722
+ backFallbackHref: fallbackHref,
3723
+ backAcceptedRoutes,
3724
+ tags
3725
+ }
3726
+ ),
3727
+ /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-8 px-6" }, /* @__PURE__ */ React.createElement(JobDescription, { description: job.description }), /* @__PURE__ */ React.createElement(
3728
+ CompanyTake,
3729
+ {
3730
+ avatarSrc,
3731
+ content: job.hiringOrganization?.companyNDG?.companyNDGTake
3732
+ }
3733
+ ), /* @__PURE__ */ React.createElement(
3734
+ CompanyInformation,
3735
+ {
3736
+ name: job.hiringOrganization?.companyName ?? "",
3737
+ how: job.hiringOrganization?.companyPhilosophy?.companyHow,
3738
+ mission: job.hiringOrganization?.companyPhilosophy?.companyMission,
3739
+ wow: job.hiringOrganization?.companyNDG?.companyWow,
3740
+ website: job.hiringOrganization?.companyWebsite
3741
+ }
3742
+ ), /* @__PURE__ */ React.createElement(
3743
+ CompanyBenefits,
3744
+ {
3745
+ benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.title).filter((d) => d !== void 0)
3746
+ }
3747
+ ))
3506
3748
  );
3507
3749
  }
3508
3750
 
3509
3751
  // src/components/jobCard/JobLocation.tsx
3510
3752
  import { MapPin as MapPin2 } from "lucide-react";
3511
- import { jsx as jsx42, jsxs as jsxs27 } from "react/jsx-runtime";
3512
3753
  function JobLocation({ jobPost }) {
3513
3754
  const locations = getAddressList(jobPost);
3514
3755
  if (!locations || locations.length === 0) return null;
3515
3756
  const primaryOffice = locations[0];
3516
3757
  const extendedLocations = locations.slice(1).map((address) => address);
3517
- return /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-2", "data-testid": "job-location-element", children: [
3518
- /* @__PURE__ */ jsx42(MapPin2, { size: 16 }),
3519
- /* @__PURE__ */ jsx42("span", { className: "text-sm font-thin", children: primaryOffice }),
3520
- extendedLocations.length > 0 && /* @__PURE__ */ jsx42(TooltipProvider, { children: /* @__PURE__ */ jsxs27(Tooltip, { children: [
3521
- /* @__PURE__ */ jsx42(TooltipTrigger, { children: /* @__PURE__ */ jsxs27(
3522
- Chip_default,
3523
- {
3524
- className: "font-bold",
3525
- size: "small",
3526
- variant: "jobLocation",
3527
- "data-testid": "job-location-tooltip",
3528
- children: [
3529
- "+ ",
3530
- extendedLocations.length,
3531
- " more"
3532
- ]
3533
- }
3534
- ) }),
3535
- /* @__PURE__ */ jsx42(
3536
- TooltipContent,
3537
- {
3538
- className: "border-1 rounded-md border border-grey-5 bg-white p-2",
3539
- "data-testid": "job-location-tooltip-content",
3540
- children: extendedLocations.map((location) => /* @__PURE__ */ jsx42("div", { className: "text-nowrap text-sm", children: location }, location))
3541
- }
3542
- )
3543
- ] }) })
3544
- ] });
3758
+ return /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2", "data-testid": "job-location-element" }, /* @__PURE__ */ React.createElement(MapPin2, { 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(
3759
+ Chip_default,
3760
+ {
3761
+ className: "font-bold",
3762
+ size: "small",
3763
+ variant: "jobLocation",
3764
+ "data-testid": "job-location-tooltip"
3765
+ },
3766
+ "+ ",
3767
+ extendedLocations.length,
3768
+ " more"
3769
+ )), /* @__PURE__ */ React.createElement(
3770
+ TooltipContent,
3771
+ {
3772
+ className: "border-1 rounded-md border border-grey-5 bg-white p-2",
3773
+ "data-testid": "job-location-tooltip-content"
3774
+ },
3775
+ extendedLocations.map((location) => /* @__PURE__ */ React.createElement("div", { key: location, className: "text-nowrap text-sm" }, location))
3776
+ ))));
3545
3777
  }
3546
3778
 
3547
3779
  // src/types/data/company_service_latest.ts
@@ -3858,7 +4090,7 @@ export {
3858
4090
  Label_default as Label,
3859
4091
  LinkButton,
3860
4092
  ListItem_default as ListItem,
3861
- MapComponent_default as MapComponent,
4093
+ MapComponent,
3862
4094
  PlacesQueryInput_default as PlacesQueryInput,
3863
4095
  Radio,
3864
4096
  ReadMore,