@myrjfa/ui 2.1.9 → 2.2.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 (459) hide show
  1. package/dist/chat/ChatMain.d.ts +1 -1
  2. package/dist/chat/ChatMain.d.ts.map +1 -1
  3. package/dist/chat/ChatMain.js +3 -3
  4. package/dist/chat/ChatSidebar.d.ts +1 -1
  5. package/dist/chat/ChatSidebar.d.ts.map +1 -1
  6. package/dist/chat/ConversationList.d.ts +1 -1
  7. package/dist/chat/ConversationList.d.ts.map +1 -1
  8. package/dist/chat/ConversationList.js +1 -1
  9. package/dist/chat/ExpensePanel.js +1 -1
  10. package/dist/chat/MessageBubble.d.ts +1 -1
  11. package/dist/chat/MessageBubble.d.ts.map +1 -1
  12. package/dist/chat/MessageInput.js +1 -1
  13. package/dist/chat/MilestonePanel.js +1 -1
  14. package/dist/chat/components/SplitInputs.d.ts +1 -1
  15. package/dist/chat/components/SplitInputs.d.ts.map +1 -1
  16. package/dist/chat/components/SplitTypeSelector.d.ts +1 -1
  17. package/dist/chat/components/SplitTypeSelector.d.ts.map +1 -1
  18. package/dist/chat/dialogs/AddMemberDialog.d.ts +1 -1
  19. package/dist/chat/dialogs/AddMemberDialog.d.ts.map +1 -1
  20. package/dist/chat/dialogs/AddMemberDialog.js +1 -1
  21. package/dist/chat/dialogs/ExpenseAnalyticsDialog.js +1 -1
  22. package/dist/chat/dialogs/GroupInfoDialog.d.ts +1 -1
  23. package/dist/chat/dialogs/GroupInfoDialog.d.ts.map +1 -1
  24. package/dist/chat/dialogs/GroupInfoDialog.js +1 -1
  25. package/dist/chat/dialogs/GroupInfoViewDialog.d.ts +1 -1
  26. package/dist/chat/dialogs/GroupInfoViewDialog.d.ts.map +1 -1
  27. package/dist/chat/dialogs/NewChatDialog.js +2 -2
  28. package/dist/chat/dialogs/NewGroupDialog.js +2 -2
  29. package/dist/chat/dialogs/ParticipantsDialog.d.ts +1 -1
  30. package/dist/chat/dialogs/ParticipantsDialog.d.ts.map +1 -1
  31. package/dist/chat/dialogs/ParticipantsDialog.js +1 -1
  32. package/dist/components/CityAutocomplete.d.ts +5 -0
  33. package/dist/components/CityAutocomplete.d.ts.map +1 -0
  34. package/dist/components/CityAutocomplete.js +112 -0
  35. package/dist/components/CreateListingDropdown.d.ts +5 -0
  36. package/dist/components/CreateListingDropdown.d.ts.map +1 -0
  37. package/dist/components/CreateListingDropdown.js +21 -0
  38. package/dist/components/DestinationAutocomplete.d.ts +11 -0
  39. package/dist/components/DestinationAutocomplete.d.ts.map +1 -0
  40. package/dist/components/DestinationAutocomplete.js +24 -0
  41. package/dist/components/StateAutocomplete.d.ts +10 -0
  42. package/dist/components/StateAutocomplete.d.ts.map +1 -0
  43. package/dist/components/StateAutocomplete.js +34 -0
  44. package/dist/components/admin/AdminBookingRegistrationsList.d.ts +5 -0
  45. package/dist/components/admin/AdminBookingRegistrationsList.d.ts.map +1 -0
  46. package/dist/components/admin/AdminBookingRegistrationsList.js +69 -0
  47. package/dist/components/admin/AdminListingActionsWrapper.d.ts +9 -0
  48. package/dist/components/admin/AdminListingActionsWrapper.d.ts.map +1 -0
  49. package/dist/components/admin/AdminListingActionsWrapper.js +200 -0
  50. package/dist/components/ads/ActivateAdPlacementButton.d.ts +6 -0
  51. package/dist/components/ads/ActivateAdPlacementButton.d.ts.map +1 -0
  52. package/dist/components/ads/ActivateAdPlacementButton.js +27 -0
  53. package/dist/components/ads/AdOfferCard.d.ts +6 -0
  54. package/dist/components/ads/AdOfferCard.d.ts.map +1 -0
  55. package/dist/components/ads/AdOfferCard.js +15 -0
  56. package/dist/components/adventure/AdventureAvailabilityPlanner.d.ts +17 -0
  57. package/dist/components/adventure/AdventureAvailabilityPlanner.d.ts.map +1 -0
  58. package/dist/components/adventure/AdventureAvailabilityPlanner.js +106 -0
  59. package/dist/components/adventure/AdventureQueryCard.d.ts +5 -0
  60. package/dist/components/adventure/AdventureQueryCard.d.ts.map +1 -0
  61. package/dist/components/adventure/AdventureQueryCard.js +65 -0
  62. package/dist/components/adventure/AdventureSlotBuilder.d.ts +41 -0
  63. package/dist/components/adventure/AdventureSlotBuilder.d.ts.map +1 -0
  64. package/dist/components/adventure/AdventureSlotBuilder.js +146 -0
  65. package/dist/components/booking/booking-form.d.ts +39 -0
  66. package/dist/components/booking/booking-form.d.ts.map +1 -0
  67. package/dist/components/booking/booking-form.js +824 -0
  68. package/dist/components/brand/BrandPageView.d.ts +8 -0
  69. package/dist/components/brand/BrandPageView.d.ts.map +1 -0
  70. package/dist/components/brand/BrandPageView.js +97 -0
  71. package/dist/components/companion/AnonymousChat.d.ts +22 -0
  72. package/dist/components/companion/AnonymousChat.d.ts.map +1 -0
  73. package/dist/components/companion/AnonymousChat.js +24 -0
  74. package/dist/components/companion/SwipeCard.d.ts +25 -0
  75. package/dist/components/companion/SwipeCard.d.ts.map +1 -0
  76. package/dist/components/companion/SwipeCard.js +58 -0
  77. package/dist/components/create-flow/ConfirmDiscardDialog.d.ts +11 -0
  78. package/dist/components/create-flow/ConfirmDiscardDialog.d.ts.map +1 -0
  79. package/dist/components/create-flow/ConfirmDiscardDialog.js +14 -0
  80. package/dist/components/create-flow/EntityEditLoadingState.d.ts +2 -0
  81. package/dist/components/create-flow/EntityEditLoadingState.d.ts.map +1 -0
  82. package/dist/components/create-flow/EntityEditLoadingState.js +6 -0
  83. package/dist/components/create-flow/EntityFormCompletionState.d.ts +12 -0
  84. package/dist/components/create-flow/EntityFormCompletionState.d.ts.map +1 -0
  85. package/dist/components/create-flow/EntityFormCompletionState.js +10 -0
  86. package/dist/components/create-flow/EntityFormHeader.d.ts +9 -0
  87. package/dist/components/create-flow/EntityFormHeader.d.ts.map +1 -0
  88. package/dist/components/create-flow/EntityFormHeader.js +7 -0
  89. package/dist/components/create-flow/EntityFormPageFrame.d.ts +10 -0
  90. package/dist/components/create-flow/EntityFormPageFrame.d.ts.map +1 -0
  91. package/dist/components/create-flow/EntityFormPageFrame.js +10 -0
  92. package/dist/components/create-flow/ImageUploadStep.d.ts +15 -0
  93. package/dist/components/create-flow/ImageUploadStep.d.ts.map +1 -0
  94. package/dist/components/create-flow/ImageUploadStep.js +11 -0
  95. package/dist/components/create-flow/ImageUploader.d.ts +30 -0
  96. package/dist/components/create-flow/ImageUploader.d.ts.map +1 -0
  97. package/dist/components/create-flow/ImageUploader.js +193 -0
  98. package/dist/components/create-flow/MultiStepWizard.d.ts +25 -0
  99. package/dist/components/create-flow/MultiStepWizard.d.ts.map +1 -0
  100. package/dist/components/create-flow/MultiStepWizard.js +31 -0
  101. package/dist/components/create-flow/ReviewConfirmationCard.d.ts +8 -0
  102. package/dist/components/create-flow/ReviewConfirmationCard.d.ts.map +1 -0
  103. package/dist/components/create-flow/ReviewConfirmationCard.js +5 -0
  104. package/dist/components/create-flow/ReviewMetricGrid.d.ts +15 -0
  105. package/dist/components/create-flow/ReviewMetricGrid.d.ts.map +1 -0
  106. package/dist/components/create-flow/ReviewMetricGrid.js +8 -0
  107. package/dist/components/create-flow/TemplateSelectionDialog.d.ts +17 -0
  108. package/dist/components/create-flow/TemplateSelectionDialog.d.ts.map +1 -0
  109. package/dist/components/create-flow/TemplateSelectionDialog.js +7 -0
  110. package/dist/components/enquiry/EnquiryFormParts.d.ts +40 -0
  111. package/dist/components/enquiry/EnquiryFormParts.d.ts.map +1 -0
  112. package/dist/components/enquiry/EnquiryFormParts.js +29 -0
  113. package/dist/components/form-sections/FaqSection.d.ts +24 -0
  114. package/dist/components/form-sections/FaqSection.d.ts.map +1 -0
  115. package/dist/components/form-sections/FaqSection.js +17 -0
  116. package/dist/components/form-sections/ImageUploadSection.d.ts +12 -0
  117. package/dist/components/form-sections/ImageUploadSection.d.ts.map +1 -0
  118. package/dist/components/form-sections/ImageUploadSection.js +8 -0
  119. package/dist/components/form-sections/OpportunityBasicsSection.d.ts +8 -0
  120. package/dist/components/form-sections/OpportunityBasicsSection.d.ts.map +1 -0
  121. package/dist/components/form-sections/OpportunityBasicsSection.js +26 -0
  122. package/dist/components/form-sections/OpportunityDetailsSection.d.ts +18 -0
  123. package/dist/components/form-sections/OpportunityDetailsSection.d.ts.map +1 -0
  124. package/dist/components/form-sections/OpportunityDetailsSection.js +10 -0
  125. package/dist/components/form-sections/OpportunityTypeSection.d.ts +7 -0
  126. package/dist/components/form-sections/OpportunityTypeSection.d.ts.map +1 -0
  127. package/dist/components/form-sections/OpportunityTypeSection.js +15 -0
  128. package/dist/components/form-sections/PackageDetailsSection.d.ts +22 -0
  129. package/dist/components/form-sections/PackageDetailsSection.d.ts.map +1 -0
  130. package/dist/components/form-sections/PackageDetailsSection.js +20 -0
  131. package/dist/components/form-sections/PackageItinerarySection.d.ts +21 -0
  132. package/dist/components/form-sections/PackageItinerarySection.d.ts.map +1 -0
  133. package/dist/components/form-sections/PackageItinerarySection.js +112 -0
  134. package/dist/components/form-sections/PackagePricingSection.d.ts +8 -0
  135. package/dist/components/form-sections/PackagePricingSection.d.ts.map +1 -0
  136. package/dist/components/form-sections/PackagePricingSection.js +11 -0
  137. package/dist/components/form-sections/PackageReviewSection.d.ts +12 -0
  138. package/dist/components/form-sections/PackageReviewSection.d.ts.map +1 -0
  139. package/dist/components/form-sections/PackageReviewSection.js +26 -0
  140. package/dist/components/form-sections/RentalBasicsSection.d.ts +12 -0
  141. package/dist/components/form-sections/RentalBasicsSection.d.ts.map +1 -0
  142. package/dist/components/form-sections/RentalBasicsSection.js +91 -0
  143. package/dist/components/form-sections/RentalCapacitySection.d.ts +9 -0
  144. package/dist/components/form-sections/RentalCapacitySection.d.ts.map +1 -0
  145. package/dist/components/form-sections/RentalCapacitySection.js +23 -0
  146. package/dist/components/form-sections/RentalLocationSection.d.ts +10 -0
  147. package/dist/components/form-sections/RentalLocationSection.d.ts.map +1 -0
  148. package/dist/components/form-sections/RentalLocationSection.js +41 -0
  149. package/dist/components/form-sections/RentalPhotosSection.d.ts +8 -0
  150. package/dist/components/form-sections/RentalPhotosSection.d.ts.map +1 -0
  151. package/dist/components/form-sections/RentalPhotosSection.js +7 -0
  152. package/dist/components/form-sections/RentalReviewSection.d.ts +10 -0
  153. package/dist/components/form-sections/RentalReviewSection.d.ts.map +1 -0
  154. package/dist/components/form-sections/RentalReviewSection.js +27 -0
  155. package/dist/components/form-sections/RentalRulesSection.d.ts +7 -0
  156. package/dist/components/form-sections/RentalRulesSection.d.ts.map +1 -0
  157. package/dist/components/form-sections/RentalRulesSection.js +10 -0
  158. package/dist/components/form-sections/RentalSpecsSection.d.ts +7 -0
  159. package/dist/components/form-sections/RentalSpecsSection.d.ts.map +1 -0
  160. package/dist/components/form-sections/RentalSpecsSection.js +10 -0
  161. package/dist/components/host-dashboard/HostCalendar.d.ts +8 -0
  162. package/dist/components/host-dashboard/HostCalendar.d.ts.map +1 -0
  163. package/dist/components/host-dashboard/HostCalendar.js +43 -0
  164. package/dist/components/host-dashboard/HostCalendarGrid.d.ts +34 -0
  165. package/dist/components/host-dashboard/HostCalendarGrid.d.ts.map +1 -0
  166. package/dist/components/host-dashboard/HostCalendarGrid.js +30 -0
  167. package/dist/components/host-dashboard/HostListingMultiSelect.d.ts +12 -0
  168. package/dist/components/host-dashboard/HostListingMultiSelect.d.ts.map +1 -0
  169. package/dist/components/host-dashboard/HostListingMultiSelect.js +24 -0
  170. package/dist/components/host-dashboard/HostManageCalendarShell.d.ts +17 -0
  171. package/dist/components/host-dashboard/HostManageCalendarShell.d.ts.map +1 -0
  172. package/dist/components/host-dashboard/HostManageCalendarShell.js +5 -0
  173. package/dist/components/host-dashboard/HostSidebarNavigation.d.ts +2 -0
  174. package/dist/components/host-dashboard/HostSidebarNavigation.d.ts.map +1 -0
  175. package/dist/components/host-dashboard/HostSidebarNavigation.js +262 -0
  176. package/dist/components/host-dashboard/ManageFeatureSwitcher.d.ts +15 -0
  177. package/dist/components/host-dashboard/ManageFeatureSwitcher.d.ts.map +1 -0
  178. package/dist/components/host-dashboard/ManageFeatureSwitcher.js +43 -0
  179. package/dist/components/host-dashboard/PageHeader.d.ts +14 -0
  180. package/dist/components/host-dashboard/PageHeader.d.ts.map +1 -0
  181. package/dist/components/host-dashboard/PageHeader.js +8 -0
  182. package/dist/components/host-dashboard/PlaceholderPage.d.ts +4 -0
  183. package/dist/components/host-dashboard/PlaceholderPage.d.ts.map +1 -0
  184. package/dist/components/host-dashboard/PlaceholderPage.js +9 -0
  185. package/dist/components/host-dashboard/StatCard.d.ts +15 -0
  186. package/dist/components/host-dashboard/StatCard.d.ts.map +1 -0
  187. package/dist/components/host-dashboard/StatCard.js +38 -0
  188. package/dist/components/layout/AppProviders.d.ts +5 -0
  189. package/dist/components/layout/AppProviders.d.ts.map +1 -0
  190. package/dist/components/layout/AppProviders.js +11 -0
  191. package/dist/components/layout/PublicRouteLayout.d.ts +5 -0
  192. package/dist/components/layout/PublicRouteLayout.d.ts.map +1 -0
  193. package/dist/components/layout/PublicRouteLayout.js +5 -0
  194. package/dist/components/layout/PublicShell.d.ts +5 -0
  195. package/dist/components/layout/PublicShell.d.ts.map +1 -0
  196. package/dist/components/layout/PublicShell.js +5 -0
  197. package/dist/components/location/LocationPicker.d.ts +27 -0
  198. package/dist/components/location/LocationPicker.d.ts.map +1 -0
  199. package/dist/components/location/LocationPicker.js +415 -0
  200. package/dist/components/location/LocationPreview.d.ts +11 -0
  201. package/dist/components/location/LocationPreview.d.ts.map +1 -0
  202. package/dist/components/location/LocationPreview.js +12 -0
  203. package/dist/components/location/MapPicker.d.ts +9 -0
  204. package/dist/components/location/MapPicker.d.ts.map +1 -0
  205. package/dist/components/location/MapPicker.js +40 -0
  206. package/dist/components/location/MapPreview.d.ts +8 -0
  207. package/dist/components/location/MapPreview.d.ts.map +1 -0
  208. package/dist/components/location/MapPreview.js +17 -0
  209. package/dist/components/location/PlaceLinkInline.d.ts +14 -0
  210. package/dist/components/location/PlaceLinkInline.d.ts.map +1 -0
  211. package/dist/components/location/PlaceLinkInline.js +30 -0
  212. package/dist/components/location/leafletMap.d.ts +8 -0
  213. package/dist/components/location/leafletMap.d.ts.map +1 -0
  214. package/dist/components/location/leafletMap.js +74 -0
  215. package/dist/components/ui/GuestOrLoginDialog.d.ts +11 -0
  216. package/dist/components/ui/GuestOrLoginDialog.d.ts.map +1 -0
  217. package/dist/components/ui/GuestOrLoginDialog.js +19 -0
  218. package/dist/components/ui/ImageGalleryViewer.d.ts +10 -0
  219. package/dist/components/ui/ImageGalleryViewer.d.ts.map +1 -0
  220. package/dist/components/ui/ImageGalleryViewer.js +59 -0
  221. package/dist/components/ui/LocationInput.d.ts +12 -0
  222. package/dist/components/ui/LocationInput.d.ts.map +1 -0
  223. package/dist/components/ui/LocationInput.js +39 -0
  224. package/dist/components/ui/PropertyGalleryClient.d.ts +8 -0
  225. package/dist/components/ui/PropertyGalleryClient.d.ts.map +1 -0
  226. package/dist/components/ui/PropertyGalleryClient.js +22 -0
  227. package/dist/components/ui/calendar.d.ts +9 -0
  228. package/dist/components/ui/calendar.d.ts.map +1 -0
  229. package/dist/components/ui/calendar.js +75 -0
  230. package/dist/components/ui/dashboard/admin-adventures-table.d.ts +12 -0
  231. package/dist/components/ui/dashboard/admin-adventures-table.d.ts.map +1 -0
  232. package/dist/components/ui/dashboard/admin-adventures-table.js +94 -0
  233. package/dist/components/ui/dashboard/admin-blogs-table.d.ts +11 -0
  234. package/dist/components/ui/dashboard/admin-blogs-table.d.ts.map +1 -0
  235. package/dist/components/ui/dashboard/admin-blogs-table.js +58 -0
  236. package/dist/components/ui/dashboard/admin-opportunities-table.d.ts +20 -0
  237. package/dist/components/ui/dashboard/admin-opportunities-table.d.ts.map +1 -0
  238. package/dist/components/ui/dashboard/admin-opportunities-table.js +133 -0
  239. package/dist/components/ui/dashboard/admin-rentals-table.d.ts +12 -0
  240. package/dist/components/ui/dashboard/admin-rentals-table.d.ts.map +1 -0
  241. package/dist/components/ui/dashboard/admin-rentals-table.js +85 -0
  242. package/dist/components/ui/dashboard/admin-travel-package-table.d.ts +16 -0
  243. package/dist/components/ui/dashboard/admin-travel-package-table.d.ts.map +1 -0
  244. package/dist/components/ui/dashboard/admin-travel-package-table.js +100 -0
  245. package/dist/components/ui/dashboard/adventures-table.d.ts +16 -0
  246. package/dist/components/ui/dashboard/adventures-table.d.ts.map +1 -0
  247. package/dist/components/ui/dashboard/adventures-table.js +151 -0
  248. package/dist/components/ui/dashboard/approver-applications-table.d.ts +13 -0
  249. package/dist/components/ui/dashboard/approver-applications-table.d.ts.map +1 -0
  250. package/dist/components/ui/dashboard/approver-applications-table.js +85 -0
  251. package/dist/components/ui/dashboard/approver-package-enquiries-table.d.ts +11 -0
  252. package/dist/components/ui/dashboard/approver-package-enquiries-table.d.ts.map +1 -0
  253. package/dist/components/ui/dashboard/approver-package-enquiries-table.js +102 -0
  254. package/dist/components/ui/dashboard/archive-confirm-modal.d.ts +9 -0
  255. package/dist/components/ui/dashboard/archive-confirm-modal.d.ts.map +1 -0
  256. package/dist/components/ui/dashboard/archive-confirm-modal.js +6 -0
  257. package/dist/components/ui/dashboard/blogs-table.d.ts +10 -0
  258. package/dist/components/ui/dashboard/blogs-table.d.ts.map +1 -0
  259. package/dist/components/ui/dashboard/blogs-table.js +62 -0
  260. package/dist/components/ui/dashboard/bookings-table.d.ts +12 -0
  261. package/dist/components/ui/dashboard/bookings-table.d.ts.map +1 -0
  262. package/dist/components/ui/dashboard/bookings-table.js +160 -0
  263. package/dist/components/ui/dashboard/dashboard-page-shell.d.ts +7 -0
  264. package/dist/components/ui/dashboard/dashboard-page-shell.d.ts.map +1 -0
  265. package/dist/components/ui/dashboard/dashboard-page-shell.js +5 -0
  266. package/dist/components/ui/dashboard/data-table-shell.d.ts +18 -0
  267. package/dist/components/ui/dashboard/data-table-shell.d.ts.map +1 -0
  268. package/dist/components/ui/dashboard/data-table-shell.js +6 -0
  269. package/dist/components/ui/dashboard/delete-confirm-modal.d.ts +9 -0
  270. package/dist/components/ui/dashboard/delete-confirm-modal.d.ts.map +1 -0
  271. package/dist/components/ui/dashboard/delete-confirm-modal.js +6 -0
  272. package/dist/components/ui/dashboard/entity-list-page-state.d.ts +25 -0
  273. package/dist/components/ui/dashboard/entity-list-page-state.d.ts.map +1 -0
  274. package/dist/components/ui/dashboard/entity-list-page-state.js +17 -0
  275. package/dist/components/ui/dashboard/generic-entity-table.d.ts +36 -0
  276. package/dist/components/ui/dashboard/generic-entity-table.d.ts.map +1 -0
  277. package/dist/components/ui/dashboard/generic-entity-table.js +203 -0
  278. package/dist/components/ui/dashboard/opportunities-table.d.ts +17 -0
  279. package/dist/components/ui/dashboard/opportunities-table.d.ts.map +1 -0
  280. package/dist/components/ui/dashboard/opportunities-table.js +143 -0
  281. package/dist/components/ui/dashboard/rentals-table.d.ts +17 -0
  282. package/dist/components/ui/dashboard/rentals-table.d.ts.map +1 -0
  283. package/dist/components/ui/dashboard/rentals-table.js +155 -0
  284. package/dist/components/ui/dashboard/restore-confirm-modal.d.ts +9 -0
  285. package/dist/components/ui/dashboard/restore-confirm-modal.d.ts.map +1 -0
  286. package/dist/components/ui/dashboard/restore-confirm-modal.js +6 -0
  287. package/dist/components/ui/dashboard/stats-card.d.ts +6 -0
  288. package/dist/components/ui/dashboard/stats-card.d.ts.map +1 -0
  289. package/dist/components/ui/dashboard/stats-card.js +5 -0
  290. package/dist/components/ui/dashboard/travel-packages-table.d.ts +16 -0
  291. package/dist/components/ui/dashboard/travel-packages-table.d.ts.map +1 -0
  292. package/dist/components/ui/dashboard/travel-packages-table.js +134 -0
  293. package/dist/components/ui/dashboard/user-applications-table.d.ts +12 -0
  294. package/dist/components/ui/dashboard/user-applications-table.d.ts.map +1 -0
  295. package/dist/components/ui/dashboard/user-applications-table.js +79 -0
  296. package/dist/components/ui/loading-skeleton.d.ts +10 -0
  297. package/dist/components/ui/loading-skeleton.d.ts.map +1 -0
  298. package/dist/components/ui/loading-skeleton.js +49 -0
  299. package/dist/components/ui/misc/IosPwaNavBar.d.ts +8 -0
  300. package/dist/components/ui/misc/IosPwaNavBar.d.ts.map +1 -0
  301. package/dist/components/ui/misc/IosPwaNavBar.js +25 -0
  302. package/dist/components/ui/misc/document-upload-button.d.ts +10 -0
  303. package/dist/components/ui/misc/document-upload-button.d.ts.map +1 -0
  304. package/dist/components/ui/misc/document-upload-button.js +12 -0
  305. package/dist/components/ui/misc/empty-state.d.ts +9 -0
  306. package/dist/components/ui/misc/empty-state.d.ts.map +1 -0
  307. package/dist/components/ui/misc/empty-state.js +4 -0
  308. package/dist/components/ui/misc/image-cropper.d.ts +9 -0
  309. package/dist/components/ui/misc/image-cropper.d.ts.map +1 -0
  310. package/dist/components/ui/misc/image-cropper.js +28 -0
  311. package/dist/components/ui/misc/rental-tile.d.ts +6 -0
  312. package/dist/components/ui/misc/rental-tile.d.ts.map +1 -0
  313. package/dist/components/ui/misc/rental-tile.js +56 -0
  314. package/dist/components/ui/misc/skeleton-extras.d.ts +32 -0
  315. package/dist/components/ui/misc/skeleton-extras.d.ts.map +1 -0
  316. package/dist/components/ui/misc/skeleton-extras.js +58 -0
  317. package/dist/components/ui/misc/tile.d.ts +4 -0
  318. package/dist/components/ui/misc/tile.d.ts.map +1 -0
  319. package/dist/components/ui/misc/tile.js +45 -0
  320. package/dist/components/ui/misc/whatsapp-help.d.ts +7 -0
  321. package/dist/components/ui/misc/whatsapp-help.d.ts.map +1 -0
  322. package/dist/components/ui/misc/whatsapp-help.js +6 -0
  323. package/dist/components/ui/motion.d.ts +14 -0
  324. package/dist/components/ui/motion.d.ts.map +1 -0
  325. package/dist/components/ui/motion.js +17 -0
  326. package/dist/components/ui/trippeaze/breadcrumb-trail.d.ts +10 -0
  327. package/dist/components/ui/trippeaze/breadcrumb-trail.d.ts.map +1 -0
  328. package/dist/components/ui/trippeaze/breadcrumb-trail.js +15 -0
  329. package/dist/components/ui/trippeaze/chip-tabs.d.ts +13 -0
  330. package/dist/components/ui/trippeaze/chip-tabs.d.ts.map +1 -0
  331. package/dist/components/ui/trippeaze/chip-tabs.js +6 -0
  332. package/dist/components/ui/trippeaze/page-shell.d.ts +22 -0
  333. package/dist/components/ui/trippeaze/page-shell.d.ts.map +1 -0
  334. package/dist/components/ui/trippeaze/page-shell.js +15 -0
  335. package/dist/components/ui/trippeaze/search-input.d.ts +5 -0
  336. package/dist/components/ui/trippeaze/search-input.d.ts.map +1 -0
  337. package/dist/components/ui/trippeaze/search-input.js +7 -0
  338. package/dist/components/user-dashboard/UserDashboardShellSidebar.d.ts +2 -0
  339. package/dist/components/user-dashboard/UserDashboardShellSidebar.d.ts.map +1 -0
  340. package/dist/components/user-dashboard/UserDashboardShellSidebar.js +17 -0
  341. package/dist/components/user-dashboard/UserSidebarNav.d.ts +2 -0
  342. package/dist/components/user-dashboard/UserSidebarNav.d.ts.map +1 -0
  343. package/dist/components/user-dashboard/UserSidebarNav.js +67 -0
  344. package/dist/dashboard/action-buttons.d.ts +2 -1
  345. package/dist/dashboard/action-buttons.d.ts.map +1 -1
  346. package/dist/dashboard/action-buttons.js +18 -11
  347. package/dist/dashboard/app-sidebar.d.ts.map +1 -1
  348. package/dist/dashboard/app-sidebar.js +3 -36
  349. package/dist/dashboard/dashboard-components.js +1 -1
  350. package/dist/dashboard/data-table.d.ts +5 -1
  351. package/dist/dashboard/data-table.d.ts.map +1 -1
  352. package/dist/dashboard/data-table.js +39 -7
  353. package/dist/dashboard/table.js +1 -1
  354. package/dist/header/mobile-nav-item.js +2 -2
  355. package/dist/header/mobile-navbar.d.ts.map +1 -1
  356. package/dist/header/mobile-navbar.js +10 -1
  357. package/dist/header/nav-item.js +2 -2
  358. package/dist/index.d.ts +17 -0
  359. package/dist/index.d.ts.map +1 -1
  360. package/dist/index.js +17 -0
  361. package/dist/main/footer.d.ts +0 -1
  362. package/dist/main/footer.d.ts.map +1 -1
  363. package/dist/main/footer.js +0 -1
  364. package/dist/main/navbar.d.ts +2 -2
  365. package/dist/main/navbar.d.ts.map +1 -1
  366. package/dist/main/navbar.js +73 -44
  367. package/dist/main/portfolio/portfolioItem.d.ts +1 -1
  368. package/dist/main/portfolio/portfolioItem.d.ts.map +1 -1
  369. package/dist/main/portfolio/portfolioPopup.d.ts +1 -1
  370. package/dist/main/portfolio/portfolioPopup.d.ts.map +1 -1
  371. package/dist/main/review-page.d.ts +2 -1
  372. package/dist/main/review-page.d.ts.map +1 -1
  373. package/dist/main/review-page.js +34 -4
  374. package/dist/misc/accordion.js +1 -1
  375. package/dist/misc/alert-dialog.js +1 -1
  376. package/dist/misc/alert.js +1 -1
  377. package/dist/misc/alertdialogclaude.js +1 -1
  378. package/dist/misc/avatar.js +1 -1
  379. package/dist/misc/badge.js +1 -1
  380. package/dist/misc/button.d.ts +6 -3
  381. package/dist/misc/button.d.ts.map +1 -1
  382. package/dist/misc/button.js +33 -5
  383. package/dist/misc/card.js +1 -1
  384. package/dist/misc/carousel.d.ts +2 -2
  385. package/dist/misc/carousel.d.ts.map +1 -1
  386. package/dist/misc/carousel.js +13 -5
  387. package/dist/misc/checkbox.js +1 -1
  388. package/dist/misc/command.js +1 -1
  389. package/dist/misc/datepicker.d.ts +2 -1
  390. package/dist/misc/datepicker.d.ts.map +1 -1
  391. package/dist/misc/datepicker.js +23 -21
  392. package/dist/misc/dialog.js +1 -1
  393. package/dist/misc/discount-strategy-editor.d.ts +11 -0
  394. package/dist/misc/discount-strategy-editor.d.ts.map +1 -0
  395. package/dist/misc/discount-strategy-editor.js +82 -0
  396. package/dist/misc/dropdown-menu.js +1 -1
  397. package/dist/misc/faq.d.ts +1 -1
  398. package/dist/misc/faq.d.ts.map +1 -1
  399. package/dist/misc/filter.js +2 -2
  400. package/dist/misc/filterBar.d.ts +11 -3
  401. package/dist/misc/filterBar.d.ts.map +1 -1
  402. package/dist/misc/filterBar.js +109 -55
  403. package/dist/misc/form.js +1 -1
  404. package/dist/misc/input.d.ts +4 -1
  405. package/dist/misc/input.d.ts.map +1 -1
  406. package/dist/misc/input.js +8 -3
  407. package/dist/misc/label.js +1 -1
  408. package/dist/misc/listing-wishlist-button.d.ts +13 -0
  409. package/dist/misc/listing-wishlist-button.d.ts.map +1 -0
  410. package/dist/misc/listing-wishlist-button.js +42 -0
  411. package/dist/misc/location/locationPicker.js +1 -1
  412. package/dist/misc/location-autocomplete.d.ts +28 -0
  413. package/dist/misc/location-autocomplete.d.ts.map +1 -0
  414. package/dist/misc/location-autocomplete.js +121 -0
  415. package/dist/misc/notification.js +2 -2
  416. package/dist/misc/pagination.js +1 -1
  417. package/dist/misc/popover.js +1 -1
  418. package/dist/misc/pricing-strategy-editor.d.ts +17 -0
  419. package/dist/misc/pricing-strategy-editor.d.ts.map +1 -0
  420. package/dist/misc/pricing-strategy-editor.js +80 -0
  421. package/dist/misc/progress.js +1 -1
  422. package/dist/misc/pwa-install-button.d.ts.map +1 -1
  423. package/dist/misc/pwa-install-button.js +2 -0
  424. package/dist/misc/rental-tile.d.ts +1 -1
  425. package/dist/misc/rental-tile.d.ts.map +1 -1
  426. package/dist/misc/rental-tile.js +24 -14
  427. package/dist/misc/scroll-area.js +1 -1
  428. package/dist/misc/select.js +1 -1
  429. package/dist/misc/separator.js +1 -1
  430. package/dist/misc/sheet.js +1 -1
  431. package/dist/misc/sidebar.js +2 -2
  432. package/dist/misc/slider.js +1 -1
  433. package/dist/misc/stateCard.d.ts +1 -1
  434. package/dist/misc/stateCard.d.ts.map +1 -1
  435. package/dist/misc/stateCard.js +1 -1
  436. package/dist/misc/step-progress.d.ts +16 -0
  437. package/dist/misc/step-progress.d.ts.map +1 -0
  438. package/dist/misc/step-progress.js +40 -0
  439. package/dist/misc/switch.js +1 -1
  440. package/dist/misc/tabs.js +1 -1
  441. package/dist/misc/tag-filter-input.d.ts +16 -0
  442. package/dist/misc/tag-filter-input.d.ts.map +1 -0
  443. package/dist/misc/tag-filter-input.js +26 -0
  444. package/dist/misc/textarea.js +1 -1
  445. package/dist/misc/tile.d.ts +1 -1
  446. package/dist/misc/tile.d.ts.map +1 -1
  447. package/dist/misc/tile.js +12 -47
  448. package/dist/misc/time-select.d.ts +14 -0
  449. package/dist/misc/time-select.d.ts.map +1 -0
  450. package/dist/misc/time-select.js +13 -0
  451. package/dist/misc/tooltip.js +1 -1
  452. package/dist/misc/wizard-footer.d.ts +18 -0
  453. package/dist/misc/wizard-footer.d.ts.map +1 -0
  454. package/dist/misc/wizard-footer.js +11 -0
  455. package/package.json +9 -6
  456. package/dist/misc/dashboard/action-buttons.js +0 -31
  457. package/dist/misc/misc/alertdialogclaude.js +0 -221
  458. package/dist/misc/misc/button.js +0 -46
  459. package/dist/misc/misc/dropdown-menu.js +0 -136
@@ -0,0 +1,7 @@
1
+ import type { UseFormReturn } from "react-hook-form";
2
+ type OpportunityTypeSectionProps = {
3
+ form: UseFormReturn<any>;
4
+ };
5
+ export default function OpportunityTypeSection({ form, }: OpportunityTypeSectionProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=OpportunityTypeSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpportunityTypeSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/OpportunityTypeSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAsBrD,KAAK,2BAA2B,GAAG;IACjC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,IAAI,GACL,EAAE,2BAA2B,2CAuJ7B"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Card, CardContent, CardHeader, CardTitle } from "@myrjfa/ui/dist/misc/card";
3
+ import { Filter } from "@myrjfa/ui/dist/misc/filter";
4
+ import { FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@myrjfa/ui/dist/misc/form";
5
+ import { Input } from "@myrjfa/ui/dist/misc/input";
6
+ import { getCompensationTypeForOpportunity, opportunityTypeOptions, payFrequencyOptions, workModeOptions, } from "@myrjfa/state/dist/lib/models/opportunities/opportunity";
7
+ import { getCurrencies } from "@myrjfa/state/dist/lib/data/countryStates";
8
+ export default function OpportunityTypeSection({ form, }) {
9
+ const selectedType = form.watch("opportunityType");
10
+ return (_jsxs(Card, { children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Opportunity Type" }) }), _jsxs(CardContent, { className: "space-y-6", children: [_jsx(FormField, { control: form.control, name: "opportunityType", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "What type of opportunity are you offering?" }), _jsx(FormControl, { children: _jsx("div", { className: "grid grid-cols-2 gap-4 md:grid-cols-4", children: opportunityTypeOptions.map((opt) => (_jsxs("div", { className: `cursor-pointer rounded-lg border p-4 transition-all ${field.value === opt.value
11
+ ? "border-primary bg-primary/5 ring-2 ring-primary"
12
+ : "border-gray-200 hover:border-gray-300"}`, onClick: () => field.onChange(opt.value), children: [_jsx("div", { className: "font-medium", children: opt.label }), _jsx("div", { className: "mt-1 text-xs text-gray-500", children: opt.description })] }, opt.value))) }) }), _jsx(FormMessage, {})] })) }), selectedType !== "volunteer" && (_jsx("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: _jsx(FormField, { control: form.control, name: "workMode", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Work Mode" }), _jsx(FormControl, { children: _jsx("div", { className: "flex gap-3", children: workModeOptions.map((opt) => (_jsx("div", { className: `cursor-pointer rounded-lg border px-4 py-2 transition-all ${field.value === opt.value
13
+ ? "border-primary bg-primary/5"
14
+ : "border-gray-200 hover:border-gray-300"}`, onClick: () => field.onChange(opt.value), children: opt.label }, opt.value))) }) }), _jsx(FormMessage, {})] })) }) })), selectedType !== "volunteer" && (_jsxs("div", { className: "space-y-4 border-t pt-6", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("h3", { className: "text-lg font-semibold", children: "Compensation Details" }), _jsx("span", { className: "rounded bg-gray-100 px-2 py-1 text-sm capitalize text-gray-500", children: getCompensationTypeForOpportunity(selectedType) })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-3", children: [_jsx(FormField, { control: form.control, name: "compensationAmount", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Amount" }), _jsx(FormControl, { children: _jsx(Input, { type: "number", placeholder: "e.g. 15000", ...field, onChange: (e) => field.onChange(parseInt(e.target.value, 10) || undefined) }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "compensationCurrency", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Currency" }), _jsx(FormControl, { children: _jsx("div", { className: "w-full rounded-md border border-input text-sm shadow-sm focus-within:ring-2 focus-within:ring-muted", children: _jsx(Filter, { label: "Currency", formType: "autoComplete", selectedValue: (field.value || "INR").toUpperCase(), values: getCurrencies().map((currency) => currency.toUpperCase()), onChange: (value) => field.onChange((value === null || value === void 0 ? void 0 : value.toUpperCase()) || "INR") }) }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "compensationFrequency", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Frequency" }), _jsx(FormControl, { children: _jsx("select", { className: "w-full rounded-md border p-2", value: field.value || "monthly", onChange: (e) => field.onChange(e.target.value), children: payFrequencyOptions.map((opt) => (_jsx("option", { value: opt.value, children: opt.label }, opt.value))) }) }), _jsx(FormMessage, {})] })) })] })] }))] })] }));
15
+ }
@@ -0,0 +1,22 @@
1
+ import type { UseFormReturn } from "react-hook-form";
2
+ type ArrayHandlers = {
3
+ add: (value: string) => void;
4
+ remove: (value: string) => void;
5
+ };
6
+ type PackageDetailsSectionProps = {
7
+ form: UseFormReturn<any>;
8
+ whatsIncluded: string[];
9
+ whatsNotIncluded: string[];
10
+ thingsToDo: string[];
11
+ thingsNotToDo: string[];
12
+ thingsToCarry: string[];
13
+ whatsIncludedHandlers: ArrayHandlers;
14
+ whatsNotIncludedHandlers: ArrayHandlers;
15
+ thingsToDoHandlers: ArrayHandlers;
16
+ thingsNotToDoHandlers: ArrayHandlers;
17
+ thingsToCarryHandlers: ArrayHandlers;
18
+ onFieldChange: () => void;
19
+ };
20
+ export default function PackageDetailsSection({ form, whatsIncluded, whatsNotIncluded, thingsToDo, thingsNotToDo, thingsToCarry, whatsIncludedHandlers, whatsNotIncludedHandlers, thingsToDoHandlers, thingsNotToDoHandlers, thingsToCarryHandlers, onFieldChange, }: PackageDetailsSectionProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=PackageDetailsSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageDetailsSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/PackageDetailsSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA0BrD,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,EAAE,aAAa,CAAC;IACrC,wBAAwB,EAAE,aAAa,CAAC;IACxC,kBAAkB,EAAE,aAAa,CAAC;IAClC,qBAAqB,EAAE,aAAa,CAAC;IACrC,qBAAqB,EAAE,aAAa,CAAC;IACrC,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,IAAI,EACJ,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,GACd,EAAE,0BAA0B,2CA+H5B"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Card, CardContent, CardHeader, CardTitle } from "@myrjfa/ui/dist/misc/card";
3
+ import { Filter } from "@myrjfa/ui/dist/misc/filter";
4
+ import { FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, } from "@myrjfa/ui/dist/misc/form";
5
+ import { Textarea } from "@myrjfa/ui/dist/misc/textarea";
6
+ import TagFilterInput from "@myrjfa/ui/dist/misc/tag-filter-input";
7
+ import { excludedItems, includedItems, packageTypeOptionsArray, thingsNotToDoList, thingsToCarryItems, thingsToDoList, } from "@myrjfa/state/dist/lib/models/travelPackage";
8
+ const detailChipClassName = "flex min-w-0 max-w-full items-center gap-2 whitespace-normal break-words bg-primary/10 text-primary border-primary/20 [&>button]:shrink-0";
9
+ export default function PackageDetailsSection({ form, whatsIncluded, whatsNotIncluded, thingsToDo, thingsNotToDo, thingsToCarry, whatsIncludedHandlers, whatsNotIncludedHandlers, thingsToDoHandlers, thingsNotToDoHandlers, thingsToCarryHandlers, onFieldChange, }) {
10
+ return (_jsxs(Card, { className: "rounded-[2rem] border-slate-100 shadow-lg shadow-slate-200/40", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Package Details" }) }), _jsxs(CardContent, { className: "space-y-6", children: [_jsxs("div", { className: "grid gap-6 md:grid-cols-3", children: [_jsx("div", { children: _jsx(TagFilterInput, { id: "whatsIncluded", label: "What's Included *", items: whatsIncluded, onAdd: whatsIncludedHandlers.add, onRemove: whatsIncludedHandlers.remove, options: includedItems, placeholder: "Select included item", chipClassName: detailChipClassName }) }), _jsx("div", { children: _jsx(TagFilterInput, { id: "whatsNotIncluded", label: "What's Not Included *", items: whatsNotIncluded, onAdd: whatsNotIncludedHandlers.add, onRemove: whatsNotIncludedHandlers.remove, options: excludedItems, placeholder: "Add excluded item", chipClassName: detailChipClassName }) }), _jsx("div", { children: _jsx(FormField, { control: form.control, name: "categoryId", render: ({ field }) => {
11
+ var _a;
12
+ return (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Package Type *" }), _jsx(FormControl, { children: _jsx("div", { className: "mt-2 rounded-md border", children: _jsx(Filter, { label: "Package Type", formType: "autoComplete", selectedValue: (_a = field.value) !== null && _a !== void 0 ? _a : "", values: packageTypeOptionsArray, onChange: (value) => {
13
+ onFieldChange();
14
+ field.onChange(value);
15
+ } }) }) }), _jsx(FormMessage, {})] }));
16
+ } }) })] }), _jsxs("div", { className: "grid gap-6 md:grid-cols-3", children: [_jsx("div", { children: _jsx(TagFilterInput, { id: "thingsToDo", label: "Things to Do *", items: thingsToDo, onAdd: thingsToDoHandlers.add, onRemove: thingsToDoHandlers.remove, options: thingsToDoList, placeholder: "Add recommendation", chipClassName: detailChipClassName }) }), _jsx("div", { children: _jsx(TagFilterInput, { id: "thingsNotToDo", label: "Things Not to Do *", items: thingsNotToDo, onAdd: thingsNotToDoHandlers.add, onRemove: thingsNotToDoHandlers.remove, options: thingsNotToDoList, placeholder: "Add restriction", chipClassName: detailChipClassName }) }), _jsx("div", { children: _jsx(TagFilterInput, { id: "thingsToCarry", label: "Things to Carry *", items: thingsToCarry, onAdd: thingsToCarryHandlers.add, onRemove: thingsToCarryHandlers.remove, options: thingsToCarryItems, placeholder: "Add essential item", chipClassName: detailChipClassName }) })] }), _jsx(FormField, { control: form.control, name: "description", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Overview" }), _jsx(FormDescription, { children: "Write a concise package overview. Do not add cancellation policy here; add it in FAQs instead." }), _jsx(FormControl, { children: _jsx(Textarea, { id: "description", placeholder: "Provide an attractive short overview of the trip, package or place", className: "min-h-32", ...field, onChange: (e) => {
17
+ onFieldChange();
18
+ field.onChange(e);
19
+ } }) }), _jsx(FormMessage, {})] })) })] })] }));
20
+ }
@@ -0,0 +1,21 @@
1
+ import type { ActivityItem, ItineraryItem } from "@myrjfa/state/dist/lib/models/travelPackage";
2
+ type ArrayHandlers = {
3
+ add: (value: string) => void;
4
+ remove: (valueToRemove: string) => void;
5
+ };
6
+ type PackageItinerarySectionProps = {
7
+ highlights: string[];
8
+ highlightsHandlers: ArrayHandlers;
9
+ itinerary: ItineraryItem[];
10
+ itineraryRoutes: string[];
11
+ itineraryFacilities: string[];
12
+ onAddItineraryItem: () => void;
13
+ onRemoveItineraryItem: (index: number) => void;
14
+ onUpdateItineraryItem: (index: number, field: keyof ItineraryItem, value: string | number) => void;
15
+ activities: ActivityItem[];
16
+ onActivitiesChange: (activities: ActivityItem[]) => void;
17
+ currency: string;
18
+ };
19
+ export default function PackageItinerarySection({ highlights, highlightsHandlers, itinerary, itineraryRoutes, itineraryFacilities, onAddItineraryItem, onRemoveItineraryItem, onUpdateItineraryItem, activities, onActivitiesChange, currency, }: PackageItinerarySectionProps): import("react/jsx-runtime").JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=PackageItinerarySection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageItinerarySection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/PackageItinerarySection.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAE/F,KAAK,aAAa,GAAG;IACnB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kBAAkB,EAAE,aAAa,CAAC;IAClC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,qBAAqB,EAAE,CACrB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,aAAa,EAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,KACnB,IAAI,CAAC;IACV,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,kBAAkB,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA+KF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAC9C,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,QAAQ,GACT,EAAE,4BAA4B,2CA2R9B"}
@@ -0,0 +1,112 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Button } from "@myrjfa/ui/dist/misc/button";
3
+ import { Card, CardContent, CardHeader, CardTitle } from "@myrjfa/ui/dist/misc/card";
4
+ import { Filter } from "@myrjfa/ui/dist/misc/filter";
5
+ import { FormDescription, FormLabel } from "@myrjfa/ui/dist/misc/form";
6
+ import { Input } from "@myrjfa/ui/dist/misc/input";
7
+ import { SearchBox } from "@myrjfa/ui/dist/misc/searchBox";
8
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@myrjfa/ui/dist/misc/select";
9
+ import { Textarea } from "@myrjfa/ui/dist/misc/textarea";
10
+ import { Plus, Sparkles, Trash2, X } from "lucide-react";
11
+ import { useEffect, useState } from "react";
12
+ import { tripHighlights } from "@myrjfa/state/dist/lib/models/travelPackage";
13
+ const routeSuggestions = ["Pickup point", "Hotel", "Airport", "Station", "Viewpoint", "Market", "Camp", "Drop point"];
14
+ const facilitySuggestions = ["Accommodation", "Breakfast", "Lunch", "Dinner", "Local transport", "Guide", "Entry tickets", "Bonfire", "First aid"];
15
+ const activityNameSuggestions = [
16
+ "River Rafting",
17
+ "Trekking",
18
+ "Camping",
19
+ "Paragliding",
20
+ "Skiing",
21
+ "Jeep Safari",
22
+ "Bike Ride",
23
+ "Boating",
24
+ "Sightseeing Tour",
25
+ "Cultural Walk",
26
+ "Photography Walk",
27
+ "Bonfire",
28
+ ];
29
+ function toList(value) {
30
+ return value
31
+ .split(",")
32
+ .map((item) => item.trim())
33
+ .filter(Boolean);
34
+ }
35
+ function ChipInput({ label, value, placeholder, suggestions, helperText, onChange, }) {
36
+ const items = toList(value);
37
+ const updateItems = (nextItems) => onChange(nextItems.join(", "));
38
+ const addItem = (raw) => {
39
+ const entries = toList(raw);
40
+ if (!entries.length)
41
+ return;
42
+ const normalized = new Set(items.map((item) => item.toLowerCase()));
43
+ updateItems([
44
+ ...items,
45
+ ...entries.filter((entry) => !normalized.has(entry.toLowerCase())),
46
+ ]);
47
+ };
48
+ const removeItem = (itemToRemove) => updateItems(items.filter((item) => item !== itemToRemove));
49
+ return (_jsxs("div", { className: "space-y-2", children: [_jsx(FormLabel, { children: label }), _jsxs("div", { className: "rounded-[1.35rem] border border-slate-200 bg-slate-50/60 p-3 shadow-sm transition focus-within:border-primary/40 focus-within:bg-white focus-within:ring-2 focus-within:ring-primary/10", children: [items.length > 0 && (_jsx("div", { className: "mb-3 flex flex-wrap gap-2", children: items.map((item) => (_jsxs("span", { className: "inline-flex items-center gap-2 rounded-full bg-white px-3 py-1 text-xs font-bold text-slate-700 ring-1 ring-slate-200", children: [item, _jsx("button", { type: "button", onClick: () => removeItem(item), className: "rounded-full text-slate-400 hover:text-red-500", "aria-label": `Remove ${item}`, children: _jsx(X, { className: "h-3 w-3" }) })] }, item))) })), _jsx(Input, { placeholder: placeholder, className: "h-11 border-slate-200 bg-white", onKeyDown: (event) => {
50
+ if (event.key !== "Enter" && event.key !== ",")
51
+ return;
52
+ event.preventDefault();
53
+ const input = event.currentTarget;
54
+ addItem(input.value);
55
+ input.value = "";
56
+ }, onBlur: (event) => {
57
+ addItem(event.currentTarget.value);
58
+ event.currentTarget.value = "";
59
+ } })] }), helperText && _jsx(FormDescription, { children: helperText }), _jsx("div", { className: "flex flex-wrap gap-2", children: suggestions
60
+ .filter((suggestion) => !items.some((item) => item.toLowerCase() === suggestion.toLowerCase()))
61
+ .slice(0, 6)
62
+ .map((suggestion) => (_jsxs("button", { type: "button", onClick: () => addItem(suggestion), className: "rounded-full border border-slate-200 bg-white px-3 py-1 text-xs font-bold text-slate-500 transition hover:border-primary/40 hover:text-primary", children: ["+ ", suggestion] }, suggestion))) })] }));
63
+ }
64
+ function ActivityPriceInput({ value, onChange, }) {
65
+ const [draftValue, setDraftValue] = useState(String(value !== null && value !== void 0 ? value : 0));
66
+ const [isFocused, setIsFocused] = useState(false);
67
+ useEffect(() => {
68
+ if (!isFocused) {
69
+ setDraftValue(String(value !== null && value !== void 0 ? value : 0));
70
+ }
71
+ }, [isFocused, value]);
72
+ return (_jsx(Input, { type: "number", min: "0", placeholder: "0", value: draftValue, onFocus: () => {
73
+ setIsFocused(true);
74
+ if (draftValue === "0")
75
+ setDraftValue("");
76
+ }, onBlur: () => {
77
+ setIsFocused(false);
78
+ if (draftValue.trim() === "") {
79
+ setDraftValue("0");
80
+ onChange(0);
81
+ }
82
+ }, onChange: (event) => {
83
+ const nextValue = event.target.value;
84
+ setDraftValue(nextValue);
85
+ onChange(nextValue.trim() === "" ? 0 : Number(nextValue));
86
+ } }));
87
+ }
88
+ function ActivityNameInput({ value, onChange, }) {
89
+ return (_jsx(SearchBox, { titles: activityNameSuggestions, placeholder: "Search or enter activity", searchQuery: value, setSearchQuery: onChange, handleAdd: (inputValue) => onChange(inputValue || "") }));
90
+ }
91
+ export default function PackageItinerarySection({ highlights, highlightsHandlers, itinerary, itineraryRoutes, itineraryFacilities, onAddItineraryItem, onRemoveItineraryItem, onUpdateItineraryItem, activities, onActivitiesChange, currency, }) {
92
+ return (_jsxs(_Fragment, { children: [_jsxs(Card, { className: "rounded-[2rem] border-slate-100 shadow-lg shadow-slate-200/40", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Trip Highlights" }) }), _jsx(CardContent, { children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { children: [_jsx(FormLabel, { children: "Trip Highlights" }), _jsxs("div", { className: "mt-2 rounded-2xl border border-slate-200 bg-slate-50/60 p-3", children: [highlights.length > 0 && (_jsx("div", { className: "mb-3 flex flex-wrap gap-2", children: highlights.map((highlight) => (_jsxs("span", { className: "inline-flex items-center gap-2 rounded-full bg-primary/10 px-3 py-1 text-xs font-bold text-primary ring-1 ring-primary/20", children: [highlight, _jsx("button", { type: "button", onClick: () => highlightsHandlers.remove(highlight), className: "rounded-full text-primary/70 hover:text-red-500", "aria-label": `Remove ${highlight}`, children: _jsx(X, { className: "h-3 w-3" }) })] }, highlight))) })), _jsx(Input, { placeholder: "Type a highlight and press Enter", className: "h-11 border-slate-200 bg-white", onKeyDown: (event) => {
93
+ if (event.key !== "Enter")
94
+ return;
95
+ event.preventDefault();
96
+ highlightsHandlers.add(event.currentTarget.value);
97
+ event.currentTarget.value = "";
98
+ } })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("p", { className: "flex items-center gap-2 text-xs font-black uppercase tracking-[0.18em] text-slate-400", children: [_jsx(Sparkles, { className: "h-3.5 w-3.5" }), "Suggested highlights"] }), _jsx("div", { className: "flex flex-wrap gap-2", children: tripHighlights
99
+ .filter((highlight) => !highlights.includes(highlight))
100
+ .slice(0, 10)
101
+ .map((highlight) => (_jsxs("button", { type: "button", onClick: () => highlightsHandlers.add(highlight), className: "rounded-full border border-slate-200 bg-white px-3 py-1.5 text-xs font-bold text-slate-600 transition hover:border-primary/40 hover:text-primary", children: ["+ ", highlight] }, highlight))) })] })] }) })] }), _jsxs(Card, { className: "rounded-[2rem] border-slate-100 shadow-lg shadow-slate-200/40", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Itinerary" }) }), _jsxs(CardContent, { className: "space-y-4", children: [itinerary.map((item, index) => {
102
+ var _a;
103
+ return (_jsxs("div", { className: "space-y-5 rounded-[1.75rem] border border-slate-200 bg-white p-5 shadow-sm", children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsxs("div", { children: [_jsxs("h3", { className: "font-semibold", children: ["Day ", item.day] }), _jsx("p", { className: "text-sm text-slate-500", children: "Build this day with route stops, inclusions and the guest-facing plan." })] }), _jsxs(Button, { type: "button", onClick: () => onRemoveItineraryItem(index), variant: "ghost", size: "sm", className: "text-red-500 hover:text-red-700 hover:bg-red-50", children: [_jsx(Trash2, { className: "h-4 w-4 mr-1" }), "Remove"] })] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(FormLabel, { children: "Day title" }), _jsx(Input, { placeholder: "e.g., Arrival in Manali", value: item.title, className: "h-12 border-slate-200 bg-white", onChange: (e) => onUpdateItineraryItem(index, "title", e.target.value) })] }), _jsxs("div", { className: "space-y-2 [&_.filter-box]:h-12 [&_.filter-box]:rounded-md [&_.filter-box]:border [&_.filter-box]:border-slate-200 [&_.filter-box]:bg-white [&_.filter-box]:px-4 [&_.filter-box]:text-base [&_.filter-box]:font-normal [&_.filter-box]:shadow-sm [&_.filter-box:hover]:bg-white", children: [_jsx(FormLabel, { children: "Transport Mode" }), _jsx(Filter, { label: "Transport Mode", formType: "autoComplete", selectedValue: (_a = item.mode) !== null && _a !== void 0 ? _a : null, values: ["SUV", "Bus", "Train", "Flight", "Bike", "Walking", "Boat", "Traveller"], onChange: (value) => onUpdateItineraryItem(index, "mode", value || ""), others: true })] })] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsx(ChipInput, { label: "Facilities included this day", value: itineraryFacilities.at(index) || "", placeholder: "Add a facility and press Enter", suggestions: facilitySuggestions, helperText: "Add inclusions for this day without comma-separated typing.", onChange: (value) => onUpdateItineraryItem(index, "facilities", value) }), _jsx(ChipInput, { label: "Route stops", value: itineraryRoutes.at(index) || "", placeholder: "Add a stop and press Enter", suggestions: routeSuggestions, helperText: "Stops are saved in the order you add them.", onChange: (value) => onUpdateItineraryItem(index, "route", value) })] }), _jsx(Textarea, { placeholder: "Detailed description of the day's activities", value: item.message, onChange: (e) => onUpdateItineraryItem(index, "message", e.target.value), className: "min-h-20 border-border" })] }, index));
104
+ }), _jsxs(Button, { type: "button", onClick: onAddItineraryItem, className: "w-full bg-primary hover:bg-primary-dark text-background", children: [_jsx(Plus, { className: "w-4 h-4 mr-2" }), "Add Day"] })] })] }), _jsxs(Card, { className: "rounded-[2rem] border-slate-100 shadow-lg shadow-slate-200/40", children: [_jsx(CardHeader, { children: _jsx(CardTitle, { children: "Activities" }) }), _jsxs(CardContent, { className: "space-y-4", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "List activities included in or available with this package. Mark compulsory ones so travellers know what's mandatory." }), activities.map((act, index) => (_jsxs("div", { className: "p-3 border rounded-2xl grid grid-cols-1 md:grid-cols-4 gap-3 items-end", children: [_jsxs("div", { className: "space-y-1", children: [_jsx(FormLabel, { children: "Activity Name" }), _jsx(ActivityNameInput, { value: act.name, onChange: (value) => onActivitiesChange(activities.map((item, i) => i === index ? { ...item, name: value } : item)) })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(FormLabel, { children: "Type" }), _jsxs(Select, { value: act.type, onValueChange: (value) => onActivitiesChange(activities.map((item, i) => i === index ? { ...item, type: value } : item)), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, { placeholder: "Select type" }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "optional", children: "Optional" }), _jsx(SelectItem, { value: "compulsory", children: "Compulsory" })] })] })] }), _jsxs("div", { className: "space-y-1", children: [_jsx(FormLabel, { children: "Day (optional)" }), _jsxs(Select, { value: act.day ? String(act.day) : "all", onValueChange: (value) => onActivitiesChange(activities.map((item, i) => i === index
105
+ ? { ...item, day: value === "all" ? undefined : Number(value) }
106
+ : item)), children: [_jsx(SelectTrigger, { className: "w-full", children: _jsx(SelectValue, { placeholder: "Apply to all days" }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "all", children: "Apply to all days" }), itinerary.map((day) => (_jsxs(SelectItem, { value: String(day.day), children: ["Day ", day.day] }, day.day)))] })] })] }), _jsxs("div", { className: "flex gap-2 items-end", children: [act.type === "optional" && (_jsxs("div", { className: "space-y-1 flex-1", children: [_jsxs(FormLabel, { children: ["Extra Price (", currency, ")"] }), _jsx(ActivityPriceInput, { value: act.additionalPrice, onChange: (value) => onActivitiesChange(activities.map((item, i) => i === index
107
+ ? { ...item, additionalPrice: value }
108
+ : item)) })] })), _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "text-red-500 hover:text-red-700", onClick: () => onActivitiesChange(activities.filter((_, i) => i !== index)), children: _jsx(Trash2, { className: "h-4 w-4" }) })] })] }, index))), _jsxs(Button, { type: "button", className: "w-full", onClick: () => onActivitiesChange([
109
+ ...activities,
110
+ { name: "", type: "optional", additionalPrice: 0 },
111
+ ]), children: [_jsx(Plus, { className: "w-4 h-4 mr-2" }), "Add Activity"] })] })] })] }));
112
+ }
@@ -0,0 +1,8 @@
1
+ import type { Pricing } from "@myrjfa/state/dist/lib/models/pricing";
2
+ type PackagePricingSectionProps = {
3
+ pricing: Pricing;
4
+ onPricingChange: (pricing: Pricing) => void;
5
+ };
6
+ export default function PackagePricingSection({ pricing, onPricingChange, }: PackagePricingSectionProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=PackagePricingSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackagePricingSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/PackagePricingSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAErE,KAAK,0BAA0B,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,OAAO,EACP,eAAe,GAChB,EAAE,0BAA0B,2CAuB5B"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import PricingStrategyEditor from "@myrjfa/ui/dist/misc/pricing-strategy-editor";
3
+ export default function PackagePricingSection({ pricing, onPricingChange, }) {
4
+ return (_jsx(PricingStrategyEditor, { currency: pricing.currency, strategies: pricing.pricingStrategies, onCurrencyChange: (currency) => onPricingChange({
5
+ ...pricing,
6
+ currency,
7
+ }), onStrategiesChange: (pricingStrategies) => onPricingChange({
8
+ ...pricing,
9
+ pricingStrategies,
10
+ }), cardClassName: "rounded-[2rem] border-slate-100 shadow-lg shadow-slate-200/40", descriptionPlaceholder: "e.g. Double sharing, triple sharing, delhi to delhi, deluxe plan", descriptionHelperText: "Mention room sharing, pickup points, package tier, inclusions, or other differences between pricing options.", featureType: "package" }));
11
+ }
@@ -0,0 +1,12 @@
1
+ import { type Pricing } from "@myrjfa/state/dist/lib/models/pricing";
2
+ type ReviewItem = {
3
+ label: string;
4
+ value: string;
5
+ };
6
+ type PackageReviewSectionProps = {
7
+ reviewItems: ReviewItem[];
8
+ pricing: Pricing;
9
+ };
10
+ export default function PackageReviewSection({ reviewItems, pricing }: PackageReviewSectionProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=PackageReviewSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageReviewSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/PackageReviewSection.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,uCAAuC,CAAC;AAG/C,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAaF,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,yBAAyB,2CA0F/F"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Card, CardContent, CardHeader, CardTitle } from "@myrjfa/ui/dist/misc/card";
4
+ import ReviewConfirmationCard from "@myrjfa/ui/dist/components/create-flow/ReviewConfirmationCard";
5
+ import ReviewMetricGrid from "@myrjfa/ui/dist/components/create-flow/ReviewMetricGrid";
6
+ import { calculatePricingStrategyUnitTotal, } from "@myrjfa/state/dist/lib/models/pricing";
7
+ import { CreditCard, PackageCheck } from "lucide-react";
8
+ const formatMoney = (value, currency = "INR") => new Intl.NumberFormat("en-IN", {
9
+ style: "currency",
10
+ currency,
11
+ maximumFractionDigits: 0,
12
+ }).format(Number(value) || 0);
13
+ function getStrategyLabel(strategy, index) {
14
+ var _a;
15
+ return ((_a = strategy.description) === null || _a === void 0 ? void 0 : _a.trim()) || `Pricing ${index + 1}`;
16
+ }
17
+ export default function PackageReviewSection({ reviewItems, pricing }) {
18
+ var _a;
19
+ const currency = pricing.currency || "INR";
20
+ const strategies = ((_a = pricing.pricingStrategies) === null || _a === void 0 ? void 0 : _a.length) ? pricing.pricingStrategies : [];
21
+ return (_jsxs(_Fragment, { children: [_jsxs(Card, { className: "rounded-[2rem] border-slate-100 shadow-lg shadow-slate-200/40", children: [_jsx(CardHeader, { className: "px-4 sm:px-6", children: _jsx(CardTitle, { children: "Review Your Package" }) }), _jsx(CardContent, { className: "px-4 sm:px-6", children: _jsx(ReviewMetricGrid, { items: reviewItems, itemClassName: "rounded-2xl border border-slate-200 bg-slate-50 px-3 py-3 sm:px-4" }) })] }), _jsxs(Card, { className: "rounded-[2rem] border border-primary/10 bg-primary/5 sm:rounded-[2.5rem]", children: [_jsx(CardHeader, { className: "px-4 sm:px-6", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(CreditCard, { className: "h-8 w-8 text-primary" }), _jsx(CardTitle, { className: "text-xl font-bold text-primary sm:text-2xl", children: "Pricing Strategies" })] }) }), _jsxs(CardContent, { className: "px-4 sm:px-6", children: [_jsx("p", { className: "mb-6 text-sm font-bold text-primary/70", children: "Each pricing option below shows what the guest pays and the base package amount configured for that option." }), _jsx("div", { className: "space-y-4", children: strategies.map((strategy, index) => {
22
+ const guestPays = calculatePricingStrategyUnitTotal(strategy);
23
+ const basePackage = Number(strategy.finalBasePrice || 0);
24
+ return (_jsxs("div", { className: "rounded-2xl border border-primary/10 bg-white p-4 shadow-sm sm:p-5", children: [_jsxs("div", { className: "mb-4 flex min-w-0 items-center gap-3", children: [_jsx("div", { className: "flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-xl bg-primary/10 text-primary", children: _jsx(PackageCheck, { className: "h-5 w-5" }) }), _jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-xs font-black uppercase tracking-[0.18em] text-gray-400", children: getStrategyLabel(strategy, index) }), (strategy.basePrice || 0) > (strategy.finalBasePrice || 0) && (_jsxs("p", { className: "mt-1 text-xs font-bold text-emerald-700", children: [Math.round((((strategy.basePrice || 0) - (strategy.finalBasePrice || 0)) / (strategy.basePrice || 1)) * 100), "% off"] }))] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2", children: [_jsxs("div", { className: "rounded-2xl border border-gray-100 bg-gray-50 p-4", children: [_jsx("p", { className: "text-xs font-black uppercase tracking-[0.18em] text-gray-400", children: "Guest Pays" }), _jsx("p", { className: "mt-2 text-2xl font-black text-gray-900", children: formatMoney(guestPays, currency) })] }), _jsxs("div", { className: "rounded-2xl border border-primary bg-primary p-4 text-white shadow-lg shadow-primary/20", children: [_jsx("p", { className: "text-xs font-black uppercase tracking-[0.18em] text-white/70", children: "Package Base" }), _jsx("p", { className: "mt-2 text-2xl font-black", children: formatMoney(basePackage, currency) })] })] })] }, index));
25
+ }) })] })] }), _jsx(ReviewConfirmationCard, { title: "Publishing Confirmation", body: "By publishing this event, you agree that you are the rightful organizer and the information provided is accurate.", className: "rounded-[2rem] border border-slate-100 bg-white p-4 shadow-lg shadow-slate-200/40 sm:p-6" })] }));
26
+ }
@@ -0,0 +1,12 @@
1
+ import type { UseFormReturn } from "react-hook-form";
2
+ type RentalBasicsSectionProps = {
3
+ form: UseFormReturn<any>;
4
+ isAdmin: boolean;
5
+ hostUsername: string;
6
+ onHostUsernameChange: (value: string) => void;
7
+ availableBrands: string[];
8
+ availableModels: string[];
9
+ };
10
+ export default function RentalBasicsSection({ form, isAdmin, hostUsername, onHostUsernameChange, availableBrands, availableModels, }: RentalBasicsSectionProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=RentalBasicsSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RentalBasicsSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/RentalBasicsSection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA8BrD,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,EAAE,wBAAwB,2CAmS1B"}
@@ -0,0 +1,91 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { Input } from "@myrjfa/ui/dist/misc/input";
5
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@myrjfa/ui/dist/misc/select";
6
+ import { FormControl, FormField, FormItem, FormLabel, } from "@myrjfa/ui/dist/misc/form";
7
+ import { Car } from "lucide-react";
8
+ const RENTAL_CATEGORIES = [
9
+ { key: "bike", label: "Bike", emoji: "🏍️" },
10
+ { key: "scooty", label: "Scooter", emoji: "🛵" },
11
+ { key: "car", label: "Car", emoji: "🚗" },
12
+ { key: "suv", label: "SUV", emoji: "🚙" },
13
+ { key: "cycle", label: "Cycle", emoji: "🚲" },
14
+ { key: "electric-bike", label: "Electric Bike", emoji: "⚡" },
15
+ { key: "electric-car", label: "Electric Car", emoji: "🔋" },
16
+ { key: "tempo-traveller", label: "Tempo Traveller", emoji: "🚐" },
17
+ { key: "campervan", label: "Campervan", emoji: "🏕️" },
18
+ { key: "other", label: "Other", emoji: "✨" },
19
+ ];
20
+ const KNOWN_RENTAL_CATEGORY_KEYS = RENTAL_CATEGORIES
21
+ .filter((item) => item.key !== "other")
22
+ .map((item) => item.key);
23
+ const OTHER_OPTION = "Other";
24
+ const updateFieldOptions = { shouldDirty: true, shouldTouch: true };
25
+ export default function RentalBasicsSection({ form, isAdmin, hostUsername, onHostUsernameChange, availableBrands, availableModels, }) {
26
+ const [brandOtherSelected, setBrandOtherSelected] = useState(false);
27
+ const [modelOtherSelected, setModelOtherSelected] = useState(false);
28
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "mb-6 flex items-center gap-3 border-b border-gray-100 pb-5", children: [_jsx(Car, { className: "h-6 w-6 text-primary" }), _jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Basics" })] }), isAdmin ? (_jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Host Username" }), _jsx(Input, { value: hostUsername, onChange: (e) => onHostUsernameChange(e.target.value), placeholder: "e.g. johndoehost", className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary" })] })) : null, _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "vehicleType", render: ({ field }) => (_jsxs(FormItem, { className: "md:col-span-2", children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Category" }), _jsx("div", { className: "sm:hidden", children: _jsxs(Select, { onValueChange: (val) => {
29
+ form.setValue("vehicleType", val === "other" ? "" : val, updateFieldOptions);
30
+ form.setValue("brand", "", updateFieldOptions);
31
+ form.setValue("model", "", updateFieldOptions);
32
+ setBrandOtherSelected(false);
33
+ setModelOtherSelected(false);
34
+ }, value: KNOWN_RENTAL_CATEGORY_KEYS.includes(field.value) ? field.value : "other", children: [_jsx(FormControl, { children: _jsx(SelectTrigger, { className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary", children: _jsx(SelectValue, { placeholder: "Select type" }) }) }), _jsx(SelectContent, { children: RENTAL_CATEGORIES.map((category) => (_jsx(SelectItem, { value: category.key, children: _jsxs("span", { className: "flex items-center gap-3", children: [_jsx("span", { className: "text-lg leading-none", children: category.emoji }), _jsx("span", { children: category.label })] }) }, category.key))) })] }) }), _jsx("div", { className: "hidden gap-3 sm:grid sm:grid-cols-3 lg:grid-cols-4", children: RENTAL_CATEGORIES.map((category) => {
35
+ const selected = category.key === "other"
36
+ ? !KNOWN_RENTAL_CATEGORY_KEYS.includes(field.value)
37
+ : field.value === category.key;
38
+ return (_jsxs("button", { type: "button", onClick: () => {
39
+ form.setValue("vehicleType", category.key === "other" ? "" : category.key, updateFieldOptions);
40
+ form.setValue("brand", "", updateFieldOptions);
41
+ form.setValue("model", "", updateFieldOptions);
42
+ setBrandOtherSelected(false);
43
+ setModelOtherSelected(false);
44
+ }, className: `flex min-h-28 flex-col items-center justify-center rounded-3xl border-2 p-4 text-center transition-all duration-300 ${selected
45
+ ? "scale-[1.02] border-primary bg-primary/5 text-primary shadow-md"
46
+ : "border-gray-50 bg-gray-50/30 text-gray-500 hover:border-gray-200"}`, children: [_jsx("span", { className: "mb-2 text-3xl", children: category.emoji }), _jsx("span", { className: "text-xs font-black leading-tight", children: category.label })] }, category.key));
47
+ }) }), !KNOWN_RENTAL_CATEGORY_KEYS.includes(field.value) && (_jsx(FormControl, { children: _jsx(Input, { type: "text", value: field.value || "", onChange: (e) => {
48
+ form.setValue("vehicleType", e.target.value, updateFieldOptions);
49
+ form.setValue("brand", "", updateFieldOptions);
50
+ form.setValue("model", "", updateFieldOptions);
51
+ setBrandOtherSelected(false);
52
+ setModelOtherSelected(false);
53
+ }, placeholder: "Enter custom rental category...", className: "mt-4 h-14 w-full rounded-2xl border-2 border-primary bg-primary/5 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary" }) }))] })) }), _jsx(FormField, { control: form.control, name: "brand", render: ({ field }) => {
54
+ const brandOptions = availableBrands.includes(OTHER_OPTION)
55
+ ? availableBrands
56
+ : [...availableBrands, OTHER_OPTION];
57
+ const isCustomBrand = Boolean(field.value) &&
58
+ availableBrands.length > 0 &&
59
+ !availableBrands.includes(field.value);
60
+ const showCustomBrandInput = brandOtherSelected || isCustomBrand;
61
+ return (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Brand / Company" }), availableBrands.length > 0 ? (_jsxs(_Fragment, { children: [_jsxs(Select, { onValueChange: (val) => {
62
+ const isOther = val === OTHER_OPTION;
63
+ setBrandOtherSelected(isOther);
64
+ setModelOtherSelected(false);
65
+ form.setValue("brand", isOther ? "" : val, updateFieldOptions);
66
+ form.setValue("model", "", updateFieldOptions);
67
+ }, value: showCustomBrandInput ? OTHER_OPTION : field.value || undefined, children: [_jsx(FormControl, { children: _jsx(SelectTrigger, { className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary", children: _jsx(SelectValue, { placeholder: "Select brand" }) }) }), _jsx(SelectContent, { children: brandOptions.map((brand) => (_jsx(SelectItem, { value: brand, children: brand }, brand))) })] }), showCustomBrandInput && (_jsx(FormControl, { children: _jsx(Input, { value: field.value || "", onChange: (e) => {
68
+ form.setValue("brand", e.target.value, updateFieldOptions);
69
+ form.setValue("model", "", updateFieldOptions);
70
+ setModelOtherSelected(false);
71
+ }, placeholder: "Enter custom brand or company...", className: "mt-4 h-14 w-full rounded-2xl border-2 border-primary bg-primary/5 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary" }) }))] })) : (_jsx(FormControl, { children: _jsx(Input, { placeholder: "e.g., Royal Enfield", className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary", ...field }) }))] }));
72
+ } })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "model", render: ({ field }) => {
73
+ const modelOptions = availableModels.includes(OTHER_OPTION)
74
+ ? availableModels
75
+ : [...availableModels, OTHER_OPTION];
76
+ const isCustomModel = Boolean(field.value) &&
77
+ availableModels.length > 0 &&
78
+ !availableModels.includes(field.value);
79
+ const showCustomModelInput = modelOtherSelected || isCustomModel;
80
+ return (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Vehicle Model" }), availableModels.length > 0 ? (_jsxs(_Fragment, { children: [_jsxs(Select, { onValueChange: (val) => {
81
+ const isOther = val === OTHER_OPTION;
82
+ setModelOtherSelected(isOther);
83
+ form.setValue("model", isOther ? "" : val, updateFieldOptions);
84
+ }, value: showCustomModelInput ? OTHER_OPTION : field.value || undefined, children: [_jsx(FormControl, { children: _jsx(SelectTrigger, { className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary", children: _jsx(SelectValue, { placeholder: "Select model" }) }) }), _jsx(SelectContent, { children: modelOptions.map((model) => (_jsx(SelectItem, { value: model, children: model }, model))) })] }), showCustomModelInput && (_jsx(FormControl, { children: _jsx(Input, { value: field.value || "", onChange: (e) => form.setValue("model", e.target.value, updateFieldOptions), placeholder: "Enter custom vehicle model...", className: "mt-4 h-14 w-full rounded-2xl border-2 border-primary bg-primary/5 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary" }) }))] })) : (_jsx(FormControl, { children: _jsx(Input, { placeholder: "e.g., Himalayan 400", className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary", ...field }) }))] }));
85
+ } }), _jsx(FormField, { control: form.control, name: "year", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Model Year" }), _jsx(FormControl, { children: _jsx(Input, { type: "number", min: 2000, max: new Date().getFullYear(), placeholder: "e.g., 2022", autoComplete: "off", inputMode: "numeric", "data-form-type": "other", "data-lpignore": "true", "data-1p-ignore": "true", className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary", ...field, value: field.value || "", onChange: (e) => {
86
+ const rawValue = e.target.value;
87
+ if (rawValue.length <= 4) {
88
+ field.onChange(parseInt(rawValue, 10) || undefined);
89
+ }
90
+ } }) })] })) })] })] }));
91
+ }
@@ -0,0 +1,9 @@
1
+ import type { UseFormReturn } from "react-hook-form";
2
+ import type { RentalFormValues } from "@myrjfa/state/dist/lib/rentalFormPage";
3
+ type RentalCapacitySectionProps = {
4
+ form: UseFormReturn<any>;
5
+ onPricingChange: (pricing: NonNullable<RentalFormValues["pricing"]>) => void;
6
+ };
7
+ export default function RentalCapacitySection({ form, onPricingChange, }: RentalCapacitySectionProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=RentalCapacitySection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RentalCapacitySection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/RentalCapacitySection.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACzB,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC;CAC9E,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,IAAI,EACJ,eAAe,GAChB,EAAE,0BAA0B,2CAiH5B"}
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import PricingStrategyEditor from "@myrjfa/ui/dist/misc/pricing-strategy-editor";
4
+ import { TimeSelect } from "@myrjfa/ui/dist/misc/time-select";
5
+ import { Input } from "@myrjfa/ui/dist/misc/input";
6
+ import { FormControl, FormDescription, FormField, FormItem, FormLabel, } from "@myrjfa/ui/dist/misc/form";
7
+ import { Clock, CreditCard } from "lucide-react";
8
+ export default function RentalCapacitySection({ form, onPricingChange, }) {
9
+ var _a, _b, _c, _d;
10
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "mb-6 flex items-center gap-3 border-b border-gray-100 pb-5", children: [_jsx(CreditCard, { className: "h-6 w-6 text-primary" }), _jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Capacity" })] }), _jsx(FormField, { control: form.control, name: "inventoryCount", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Inventory Available" }), _jsx(FormControl, { children: _jsx(Input, { type: "text", autoComplete: "off", inputMode: "numeric", "data-form-type": "other", "data-lpignore": "true", "data-1p-ignore": "true", className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary", ...field, value: field.value || "", onChange: (e) => field.onChange(parseInt(e.target.value, 10) || undefined) }) }), _jsx(FormDescription, { children: "Identical vehicles available for this listing." })] })) }), _jsxs("section", { className: "rounded-[2rem] border border-primary/10 bg-primary/5 p-6", children: [_jsxs("div", { className: "mb-5 flex items-center gap-3", children: [_jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-2xl bg-white shadow-sm", children: _jsx(Clock, { className: "h-5 w-5 text-primary" }) }), _jsxs("div", { children: [_jsx("h3", { className: "text-lg font-black text-gray-900", children: "Operating Hours" }), _jsx("p", { className: "mt-1 text-xs font-semibold text-gray-400", children: "Set the standard pickup and return window for this rental." })] })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "operatingHoursStart", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Opening Time" }), _jsx(FormControl, { children: _jsx(TimeSelect, { value: field.value || "", onChange: field.onChange, placeholder: "Select opening time" }) })] })) }), _jsx(FormField, { control: form.control, name: "operatingHoursEnd", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Closing Time" }), _jsx(FormControl, { children: _jsx(TimeSelect, { value: field.value || "", onChange: field.onChange, placeholder: "Select closing time" }) })] })) })] })] }), _jsx("div", { className: "space-y-6 border-t border-gray-100 pt-4", children: _jsx(PricingStrategyEditor, { currency: (_b = (_a = form.watch("pricing")) === null || _a === void 0 ? void 0 : _a.currency) !== null && _b !== void 0 ? _b : "INR", strategies: (_d = (_c = form.watch("pricing")) === null || _c === void 0 ? void 0 : _c.pricingStrategies) !== null && _d !== void 0 ? _d : [], onCurrencyChange: (currency) => {
11
+ var _a, _b;
12
+ return onPricingChange({
13
+ pricingStrategies: (_b = (_a = form.watch("pricing")) === null || _a === void 0 ? void 0 : _a.pricingStrategies) !== null && _b !== void 0 ? _b : [],
14
+ currency,
15
+ });
16
+ }, onStrategiesChange: (pricingStrategies) => {
17
+ var _a, _b;
18
+ return onPricingChange({
19
+ currency: (_b = (_a = form.watch("pricing")) === null || _a === void 0 ? void 0 : _a.currency) !== null && _b !== void 0 ? _b : "INR",
20
+ pricingStrategies,
21
+ });
22
+ }, title: "Rental Pricing", descriptionPlaceholder: "e.g. Self-drive day rental, with driver, weekly rate, helmet included", descriptionHelperText: "Mention the rental mode, duration basis, included gear, or mileage terms.", cardClassName: "rounded-[2rem] border border-gray-100 shadow-none", featureType: "rental" }) })] }));
23
+ }
@@ -0,0 +1,10 @@
1
+ import type { UseFormReturn } from "react-hook-form";
2
+ import { type LocationData } from "@myrjfa/ui/dist/components/location/LocationPicker";
3
+ type RentalLocationSectionProps = {
4
+ form: UseFormReturn<any>;
5
+ locationData: LocationData | null;
6
+ onLocationChange: (loc: LocationData) => void;
7
+ };
8
+ export default function RentalLocationSection({ form, locationData, onLocationChange, }: RentalLocationSectionProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=RentalLocationSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RentalLocationSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/RentalLocationSection.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,OAAuB,EAAE,KAAK,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAIvG,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IACzB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,IAAI,EACJ,YAAY,EACZ,gBAAgB,GACjB,EAAE,0BAA0B,2CAqF5B"}
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Input } from "@myrjfa/ui/dist/misc/input";
4
+ import { Label } from "@myrjfa/ui/dist/misc/label";
5
+ import { MapPin } from "lucide-react";
6
+ import LocationPicker from "@myrjfa/ui/dist/components/location/LocationPicker";
7
+ import DestinationAutocomplete from "@myrjfa/ui/dist/components/DestinationAutocomplete";
8
+ import StateAutocomplete from "@myrjfa/ui/dist/components/StateAutocomplete";
9
+ const updateFieldOptions = { shouldDirty: true, shouldTouch: true };
10
+ export default function RentalLocationSection({ form, locationData, onLocationChange, }) {
11
+ const city = form.watch("city") || "";
12
+ const state = form.watch("state") || "";
13
+ const address = form.watch("address") || "";
14
+ const locationSearchAddress = form.watch("locationSearchAddress") || "";
15
+ const pincode = form.watch("pincode") || "";
16
+ return (_jsxs("div", { className: "flex flex-col gap-8", children: [_jsxs("div", { className: "mb-6 flex items-center gap-3 border-b border-gray-100 pb-5", children: [_jsx(MapPin, { className: "h-6 w-6 text-primary" }), _jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Location Settings" })] }), _jsx("div", { children: _jsx(LocationPicker, { label: "Pin Pickup Location", placeholder: "Search by address, landmark or trailhead...", value: address && (locationData === null || locationData === void 0 ? void 0 : locationData.latitude) && (locationData === null || locationData === void 0 ? void 0 : locationData.longitude)
17
+ ? {
18
+ ...locationData,
19
+ address: locationSearchAddress || address || locationData.address,
20
+ searchAddress: locationSearchAddress || address || locationData.address,
21
+ city: city || locationData.city,
22
+ state: state || locationData.state,
23
+ postalCode: pincode || locationData.postalCode,
24
+ }
25
+ : null, onChange: (loc) => {
26
+ onLocationChange(loc);
27
+ form.setValue("locationSearchAddress", loc.searchAddress || loc.address, updateFieldOptions);
28
+ form.setValue("address", loc.address, updateFieldOptions);
29
+ if (loc.city)
30
+ form.setValue("city", loc.city, updateFieldOptions);
31
+ if (loc.state)
32
+ form.setValue("state", loc.state, updateFieldOptions);
33
+ if (loc.postalCode)
34
+ form.setValue("pincode", loc.postalCode, updateFieldOptions);
35
+ } }) }), _jsxs("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2", children: [_jsxs("div", { children: [_jsx(Label, { className: "mb-2 px-1 text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "City" }), _jsx(DestinationAutocomplete, { value: city, onChange: (destination) => {
36
+ form.setValue("city", destination.name, updateFieldOptions);
37
+ if (destination.state) {
38
+ form.setValue("state", destination.state, updateFieldOptions);
39
+ }
40
+ }, placeholder: "e.g. Manali", inputClassName: "w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary" })] }), _jsxs("div", { children: [_jsx(Label, { className: "mb-2 px-1 text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "State" }), _jsx(StateAutocomplete, { value: state, onChange: (nextState) => form.setValue("state", nextState, updateFieldOptions), placeholder: "e.g. Himachal Pradesh", inputClassName: "w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary" })] })] }), _jsxs("div", { children: [_jsx(Label, { className: "mb-2 px-1 text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Exact Pickup Address" }), _jsx(Input, { value: address, onChange: (event) => form.setValue("address", event.target.value, updateFieldOptions), placeholder: "Auto-filled from the pinned location", className: "h-14 w-full rounded-2xl border-2 border-gray-100 bg-gray-50/30 px-6 py-5 font-bold text-gray-900 outline-none transition-all focus:border-primary" })] })] }));
41
+ }
@@ -0,0 +1,8 @@
1
+ type RentalPhotosSectionProps = {
2
+ previewImages: string[];
3
+ onUpload: (e: React.ChangeEvent<HTMLInputElement>) => Promise<void>;
4
+ onRemove: (index: number) => void;
5
+ };
6
+ export default function RentalPhotosSection({ previewImages, onUpload, onRemove, }: RentalPhotosSectionProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=RentalPhotosSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RentalPhotosSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/RentalPhotosSection.tsx"],"names":[],"mappings":"AAKA,KAAK,wBAAwB,GAAG;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,EAAE,wBAAwB,2CAe1B"}
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import MultiImageUploader from "@myrjfa/ui/dist/misc/multiImageUploader";
4
+ import { ImageIcon } from "lucide-react";
5
+ export default function RentalPhotosSection({ previewImages, onUpload, onRemove, }) {
6
+ return (_jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "mb-6 flex items-center gap-3 border-b border-gray-100 pb-5", children: [_jsx(ImageIcon, { className: "h-6 w-6 text-primary" }), _jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Photos" })] }), _jsx(MultiImageUploader, { previewImages: previewImages, handleImageUpload: onUpload, handleRemoveImage: onRemove, message: "Upload clear photos of the vehicle from multiple angles." })] }));
7
+ }
@@ -0,0 +1,10 @@
1
+ import { type Pricing } from "@myrjfa/state/dist/lib/models/pricing";
2
+ type RentalReviewSectionProps = {
3
+ title: string;
4
+ pricing: Pricing;
5
+ vehicleModel?: string;
6
+ locationLabel?: string;
7
+ };
8
+ export default function RentalReviewSection({ title, pricing, vehicleModel, locationLabel, }: RentalReviewSectionProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=RentalReviewSection.d.ts.map