@myrjfa/ui 2.1.8 → 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 +3 -3
  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 @@
1
+ {"version":3,"file":"pricing-strategy-editor.d.ts","sourceRoot":"","sources":["../../src/misc/pricing-strategy-editor.tsx"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,uCAAuC,CAAC;AAQ/C,KAAK,0BAA0B,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,kBAAkB,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAoBF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,KAAiB,EACjB,aAAa,EACb,sBAAwG,EACxG,qBAAwG,EACxG,SAAiB,EACjB,WAAuB,EACvB,WAAuB,GACxB,EAAE,0BAA0B,2CAsN5B"}
@@ -0,0 +1,80 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useMemo, useState } from "react";
4
+ import { Plus, Trash2 } from "lucide-react";
5
+ import { getCurrencies } from "@myrjfa/state/dist/lib/data/countryStates";
6
+ import { getPlatformPricingFees } from "@myrjfa/state/dist/lib/adminDashboardActions";
7
+ import { calculatePricingFees, calculatePricingStrategyUnitTotal, } from "@myrjfa/state/dist/lib/models/pricing";
8
+ import { Button } from "./button";
9
+ import { Card, CardContent, CardHeader, CardTitle } from "./card";
10
+ import { Filter } from "./filter";
11
+ import { Input } from "./input";
12
+ import { Label } from "./label";
13
+ import { Textarea } from "./textarea";
14
+ const emptyStrategy = () => ({
15
+ basePrice: 0,
16
+ finalBasePrice: 0,
17
+ description: "",
18
+ sortOrder: 0,
19
+ isActive: true,
20
+ gst: 0,
21
+ governmentTaxes: 0,
22
+ convenienceFee: 0,
23
+ platformFee: 0,
24
+ });
25
+ const normalizeCurrency = (value) => (value || "INR").toUpperCase();
26
+ const parseOptionalNumber = (value) => typeof value === "number" ? value : value.trim() === "" ? undefined : Number(value);
27
+ const numberInputValue = (value) => value == null || Number.isNaN(Number(value)) ? "" : String(value);
28
+ export default function PricingStrategyEditor({ currency, strategies, onCurrencyChange, onStrategiesChange, title = "Pricing", cardClassName, descriptionPlaceholder = "e.g. Standard admission, premium seat, double sharing, guided half-day option", descriptionHelperText = "Describe what this pricing option includes so guests can choose the right one.", priceOnly = false, featureType = "default", supportType = "default", }) {
29
+ const selectedCurrency = normalizeCurrency(currency);
30
+ const [feeConfigs, setFeeConfigs] = useState([]);
31
+ useEffect(() => {
32
+ let cancelled = false;
33
+ getPlatformPricingFees().then((res) => {
34
+ if (!cancelled && res.success)
35
+ setFeeConfigs(res.data || []);
36
+ });
37
+ return () => {
38
+ cancelled = true;
39
+ };
40
+ }, []);
41
+ const feeContext = useMemo(() => ({ featureType, supportType }), [featureType, supportType]);
42
+ const formatMoney = (value) => new Intl.NumberFormat("en-IN", {
43
+ style: "currency",
44
+ currency: selectedCurrency,
45
+ maximumFractionDigits: 0,
46
+ }).format(Number(value) || 0);
47
+ const updateStrategy = (index, field, value) => {
48
+ onStrategiesChange(strategies.map((strategy, strategyIndex) => strategyIndex === index
49
+ ? { ...strategy, [field]: parseOptionalNumber(value) }
50
+ : strategy));
51
+ };
52
+ const updateDescription = (index, description) => {
53
+ onStrategiesChange(strategies.map((strategy, strategyIndex) => strategyIndex === index ? { ...strategy, description } : strategy));
54
+ };
55
+ const addStrategy = () => {
56
+ onStrategiesChange([...strategies, emptyStrategy()]);
57
+ };
58
+ const removeStrategy = (index) => {
59
+ onStrategiesChange(strategies.filter((_, strategyIndex) => strategyIndex !== index));
60
+ };
61
+ const getPreviewStrategy = (strategy) => {
62
+ const finalBasePrice = Number(strategy.finalBasePrice || 0);
63
+ const fees = calculatePricingFees(finalBasePrice, selectedCurrency, feeConfigs, feeContext);
64
+ return {
65
+ ...strategy,
66
+ ...fees,
67
+ fees,
68
+ guestTotal: calculatePricingStrategyUnitTotal({ finalBasePrice, ...fees }),
69
+ };
70
+ };
71
+ return (_jsxs(Card, { className: cardClassName, children: [_jsx(CardHeader, { className: "px-4 sm:px-6", children: _jsx(CardTitle, { children: title }) }), _jsxs(CardContent, { id: "pricingStrategy", className: "space-y-5 px-4 sm:space-y-6 sm:px-6", children: [!priceOnly && (_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Currency" }), _jsx("div", { className: "w-full border border-input rounded-md text-sm shadow-sm focus-within:ring-2 focus-within:ring-muted", children: _jsx(Filter, { label: "Currency", formType: "autoComplete", selectedValue: selectedCurrency, values: getCurrencies().map((currency) => currency.toUpperCase()), onChange: (value) => {
72
+ const nextCurrency = normalizeCurrency(value);
73
+ onCurrencyChange(nextCurrency);
74
+ } }) })] })), priceOnly && (_jsx("div", { className: "rounded-2xl border border-blue-100 bg-blue-50 px-4 py-3 text-sm font-bold text-blue-800", children: "Date range pricing keeps the existing strategy options locked. Only Base Price and Final Base Price can be changed here." })), strategies.map((strategy, index) => (_jsxs("div", { className: "space-y-5 rounded-2xl border p-3 sm:p-4", children: [Number(strategy.finalBasePrice) > Number(strategy.basePrice) && (_jsx("div", { className: "rounded-2xl border border-red-100 bg-red-50 px-4 py-3 text-sm font-bold text-red-700", children: "Final base price cannot be greater than base price." })), _jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("h3", { className: "font-semibold", children: ["Pricing ", index + 1] }), !priceOnly && (_jsxs(Button, { type: "button", onClick: () => removeStrategy(index), variant: "ghost", size: "sm", className: "shrink-0 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 gap-4 md:grid-cols-2", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Base Price" }), _jsx(Input, { type: "number", min: 0, value: numberInputValue(strategy.basePrice), showZeroAsEmpty: true, onChange: (e) => updateStrategy(index, "basePrice", e.target.value) })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Final Base Price" }), _jsx(Input, { type: "number", min: 0, value: numberInputValue(strategy.finalBasePrice), showZeroAsEmpty: true, onChange: (e) => updateStrategy(index, "finalBasePrice", e.target.value) })] })] }), _jsxs("div", { className: "rounded-2xl border border-slate-100 bg-slate-50 p-3 sm:p-4", children: [_jsxs("div", { className: "mb-3 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { children: [_jsx("p", { className: "text-xs font-bold uppercase tracking-[0.18em] text-slate-400", children: "Guest Preview" }), _jsxs("div", { className: "mt-1 flex flex-wrap items-end gap-2", children: [(strategy.basePrice || 0) > (strategy.finalBasePrice || 0) && (_jsx("span", { className: "text-sm font-bold text-slate-400 line-through", children: formatMoney(strategy.basePrice || 0) })), _jsx("span", { className: "text-2xl font-black text-slate-900", children: formatMoney(strategy.finalBasePrice || 0) }), (strategy.basePrice || 0) > (strategy.finalBasePrice || 0) && (_jsxs("span", { className: "rounded-full bg-emerald-50 px-2 py-1 text-xs font-black text-emerald-700", children: [Math.round((((strategy.basePrice || 0) - (strategy.finalBasePrice || 0)) / (strategy.basePrice || 1)) * 100), "% off"] }))] })] }), _jsx("div", { className: "text-xs font-bold text-slate-400 sm:text-right", children: "Fees calculated from platform settings" })] }), _jsx("div", { className: "grid gap-2 text-sm md:grid-cols-2", children: [
75
+ ["GST", getPreviewStrategy(strategy).gst || 0],
76
+ ["Government taxes", getPreviewStrategy(strategy).governmentTaxes || 0],
77
+ ["Convenience fee", getPreviewStrategy(strategy).convenienceFee || 0],
78
+ ["Platform fee", getPreviewStrategy(strategy).platformFee || 0],
79
+ ].map(([label, amount]) => (_jsxs("div", { className: "flex items-center justify-between rounded-xl bg-white px-3 py-2", children: [_jsx("span", { className: "text-slate-500", children: label }), _jsx("span", { className: "font-bold text-slate-800", children: formatMoney(Number(amount || 0)) })] }, label))) }), _jsxs("div", { className: "mt-3 flex items-center justify-between border-t border-slate-200 pt-3", children: [_jsx("span", { className: "text-sm font-black text-slate-700", children: "Total shown at checkout" }), _jsx("span", { className: "text-lg font-black text-primary", children: formatMoney(Number(getPreviewStrategy(strategy).guestTotal || 0)) })] })] }), !priceOnly && (_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Details" }), _jsx(Textarea, { value: strategy.description || "", placeholder: descriptionPlaceholder, onChange: (e) => updateDescription(index, e.target.value) }), _jsx("p", { className: "px-1 text-xs font-semibold text-slate-400", children: descriptionHelperText })] }))] }, index))), !priceOnly && (_jsxs(Button, { type: "button", onClick: addStrategy, className: "flex justify-start", children: [_jsx(Plus, { className: "w-4 h-4 mr-2" }), "Add Pricing Strategy"] }))] })] }));
80
+ }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as ProgressPrimitive from "@radix-ui/react-progress";
4
- import { cn } from "@myrjfa/state";
4
+ import { cn } from "@myrjfa/state/dist/lib/utils";
5
5
  function Progress({ className, value, ...props }) {
6
6
  return (_jsx(ProgressPrimitive.Root, { "data-slot": "progress", className: cn("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full", className), ...props, children: _jsx(ProgressPrimitive.Indicator, { "data-slot": "progress-indicator", className: "bg-primary h-full w-full flex-1 transition-all", style: { transform: `translateX(-${100 - (value || 0)}%)` } }) }));
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pwa-install-button.d.ts","sourceRoot":"","sources":["../../src/misc/pwa-install-button.tsx"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,mDA0M/B"}
1
+ {"version":3,"file":"pwa-install-button.d.ts","sourceRoot":"","sources":["../../src/misc/pwa-install-button.tsx"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,mDA2M/B"}
@@ -27,6 +27,8 @@ export function PwaInstallButton() {
27
27
  promptRef.current = e;
28
28
  setShow(true);
29
29
  setHiding(false);
30
+ if (timerRef.current)
31
+ clearTimeout(timerRef.current);
30
32
  timerRef.current = setTimeout(dismiss, 10000);
31
33
  };
32
34
  window.addEventListener('beforeinstallprompt', handler);
@@ -1,4 +1,4 @@
1
- import { TileProps } from "@myrjfa/state";
1
+ import { TileProps } from "@myrjfa/state/dist/lib/models/tile";
2
2
  export declare function RentalTile(props: TileProps & {
3
3
  onClick: () => void;
4
4
  clicked: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"rental-tile.d.ts","sourceRoot":"","sources":["../../src/misc/rental-tile.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI1C,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,2CAsItF"}
1
+ {"version":3,"file":"rental-tile.d.ts","sourceRoot":"","sources":["../../src/misc/rental-tile.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAK/D,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,2CAuJtF"}
@@ -1,23 +1,33 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { CheckCircle2, Settings, Users, Fuel, Star, MapPin, Gauge, ChevronDown } from "lucide-react";
3
+ import { CheckCircle2, Settings, Users, Fuel, Star, MapPin, Gauge, Loader2 } from "lucide-react";
4
4
  import Image from "next/image";
5
- import { cn } from "@myrjfa/state";
5
+ import { useRouter } from "next/navigation";
6
+ import { cn } from "@myrjfa/state/dist/lib/utils";
6
7
  import { Card } from "./card";
7
8
  import { Button } from "./button";
9
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./select";
8
10
  export function RentalTile(props) {
9
11
  var _a;
10
12
  const [selectedPickupIndex, setSelectedPickupIndex] = useState(0);
11
- const formatPrice = (p) => new Intl.NumberFormat('en-IN', { style: 'currency', currency: props.currency || 'INR', maximumFractionDigits: 0 }).format(p);
12
- const titleStr = props.brand ? `${props.brand} ${props.model}` : props.title;
13
- const currentPickup = (_a = props.pickupPoints) === null || _a === void 0 ? void 0 : _a[selectedPickupIndex];
14
- const totalPrice = props.price || 0;
15
- return (_jsxs(Card, { className: cn("h-full relative overflow-hidden flex flex-col bg-white border-0 shadow-sm ring-1 ring-slate-200/60 rounded-[24px] transition-all duration-500 hover:shadow-2xl hover:shadow-primary/10 hover:ring-primary/30 hover:-translate-y-1.5 group cursor-pointer", props.clicked && "opacity-60 pointer-events-none"), onClick: props.onClick, children: [_jsxs("div", { className: "absolute top-4 left-4 right-4 flex justify-between items-start z-20 pointer-events-none", children: [_jsx("div", { className: "flex flex-col gap-2", children: props.payAtPickup && (_jsxs("span", { className: "bg-emerald-500/90 text-white text-[10px] font-black uppercase tracking-wider px-3 py-1.5 rounded-full flex items-center gap-1.5 shadow-lg shadow-emerald-500/20 backdrop-blur-md", children: [_jsx(CheckCircle2, { className: "w-3 h-3" }), "Pay at Pickup"] })) }), _jsxs("div", { className: "flex flex-col items-end gap-2 pointer-events-auto", children: [(props.rating && props.rating > 0) ? (_jsxs("span", { className: "bg-white/95 text-slate-900 text-[11px] font-bold px-3 py-1.5 rounded-full shadow-lg flex items-center gap-1.5 border border-slate-100", children: [_jsx(Star, { className: "w-3.5 h-3.5 fill-amber-400 text-amber-400" }), _jsxs("span", { children: [props.rating, " ", _jsxs("span", { className: "font-semibold text-slate-400", children: ["(", props.reviewCount || 0, ")"] })] })] })) : null, (props.completedTrips && props.completedTrips > 0) ? (_jsxs("span", { className: "bg-slate-900/90 text-white text-[10px] font-bold px-3 py-1.5 rounded-full shadow-lg backdrop-blur-md", children: [props.completedTrips, " Trips"] })) : null] })] }), _jsxs("div", { className: "relative w-full aspect-[4/3] overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-slate-900/10 z-10 group-hover:bg-transparent transition-colors duration-500" }), _jsx(Image, { src: props.image || "/placeholder.jpg", alt: props.title, fill: true, sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 25vw", className: "object-cover group-hover:scale-110 transition-transform duration-700 ease-out" }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 h-1/2 bg-gradient-to-t from-white via-white/50 to-transparent z-10" })] }), _jsxs("div", { className: "flex-1 flex flex-col px-6 pb-6 -mt-10 relative z-20", children: [_jsxs("div", { className: "mb-5", children: [_jsx("h3", { className: "text-xl font-extrabold text-slate-900 tracking-tight leading-tight line-clamp-1 mb-1", title: titleStr, children: titleStr }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-[10px] font-black uppercase tracking-widest text-primary bg-primary/10 px-2 py-0.5 rounded", children: props.vehicleType || "Vehicle" }), _jsxs("span", { className: "text-xs font-bold text-slate-400", children: ["Model ", props.date ? new Date(props.date).getFullYear() : '2024'] })] })] }), _jsx("div", { className: "grid grid-cols-3 gap-3 mb-6", children: [
16
- { icon: _jsx(Settings, { className: "w-4 h-4" }), label: props.transmission || 'Auto' },
17
- { icon: _jsx(Users, { className: "w-4 h-4" }), label: `${props.seatingCapacity || 2} Seats` },
18
- { icon: _jsx(Fuel, { className: "w-4 h-4" }), label: props.fuelType || 'Petrol' }
19
- ].map((spec, i) => (_jsxs("div", { className: "flex flex-col items-center justify-center bg-slate-50 rounded-2xl p-3 border border-slate-100/50 group-hover:bg-white group-hover:border-primary/20 transition-all duration-300", children: [_jsx("div", { className: "text-slate-400 group-hover:text-primary transition-colors mb-1.5", children: spec.icon }), _jsx("span", { className: "text-[10px] font-bold text-slate-600 uppercase tracking-tight text-center", children: spec.label })] }, i))) }), _jsxs("div", { className: "relative mb-6", children: [_jsx("div", { className: "absolute -top-2 left-3 bg-white px-1.5 text-[10px] font-black uppercase tracking-widest text-slate-400 z-10 transition-colors group-hover:text-primary", children: "Available At" }), _jsxs("div", { className: "relative bg-slate-50/50 rounded-2xl border border-slate-100 group-hover:border-primary/20 transition-all", children: [_jsx(MapPin, { className: "absolute left-4 top-1/2 -translate-y-1/2 w-4 h-4 text-primary" }), _jsx("select", { className: "w-full bg-transparent pl-11 pr-4 py-3.5 text-sm font-bold text-slate-700 appearance-none focus:outline-none cursor-pointer", value: selectedPickupIndex, onChange: (e) => {
20
- e.stopPropagation();
21
- setSelectedPickupIndex(Number(e.target.value));
22
- }, onClick: (e) => e.stopPropagation(), children: props.pickupPoints && props.pickupPoints.length > 0 ? (props.pickupPoints.map((point, idx) => (_jsx("option", { value: idx, children: point.name }, idx)))) : (_jsx("option", { children: props.location || "Location Not Set" })) }), _jsx("div", { className: "absolute right-4 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400", children: _jsx(ChevronDown, { className: "w-4 h-4" }) })] })] }), _jsxs("div", { className: "mt-auto flex items-center justify-between gap-4 pt-1 border-t border-slate-100 pt-5", children: [_jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-baseline gap-1.5", children: [_jsx("span", { className: "text-3xl font-black text-slate-900 tracking-tighter", children: formatPrice(totalPrice) }), _jsx("span", { className: "text-xs font-bold text-slate-400 uppercase", children: "/day" })] }), _jsxs("div", { className: "flex items-center gap-1.5 mt-1", children: [_jsx(Gauge, { className: "w-3.5 h-3.5 text-primary" }), _jsx("span", { className: "text-[11px] font-bold text-slate-500", children: props.distanceLimit || 'No distance limit' })] })] }), _jsx(Button, { className: "rounded-2xl px-8 h-14 font-black uppercase tracking-widest text-xs shadow-xl shadow-primary/20 hover:shadow-primary/30 transition-all", onClick: props.onClick, children: "Book Now" })] })] })] }));
13
+ const router = useRouter();
14
+ const variants = ((_a = props.rentalVariants) === null || _a === void 0 ? void 0 : _a.length) ? props.rentalVariants : [props];
15
+ const selectedRental = variants[selectedPickupIndex] || variants[0] || props;
16
+ const [navigating, setNavigating] = useState(false);
17
+ const formatPrice = (p) => new Intl.NumberFormat('en-IN', { style: 'currency', currency: selectedRental.currency || 'INR', maximumFractionDigits: 0 }).format(p);
18
+ const titleStr = selectedRental.brand ? `${selectedRental.brand} ${selectedRental.model}` : selectedRental.title;
19
+ const totalPrice = selectedRental.price || 0;
20
+ const clicked = props.clicked || navigating;
21
+ const navigateToSelectedRental = () => {
22
+ var _a;
23
+ if (clicked)
24
+ return;
25
+ setNavigating(true);
26
+ router.push((_a = selectedRental.href) !== null && _a !== void 0 ? _a : `/rentals/${selectedRental.slug}`);
27
+ };
28
+ return (_jsxs(Card, { className: cn("h-full relative overflow-hidden flex flex-col bg-white border-0 shadow-sm ring-1 ring-slate-200/60 rounded-[24px] transition-all duration-500 hover:shadow-2xl hover:shadow-primary/10 hover:ring-primary/30 hover:-translate-y-1.5 group cursor-pointer", clicked && "opacity-60 pointer-events-none"), onClick: navigateToSelectedRental, children: [clicked && (_jsx("div", { className: "absolute inset-0 z-40 flex items-center justify-center rounded-[24px] bg-white/70 backdrop-blur-[1px]", children: _jsx(Loader2, { className: "h-7 w-7 animate-spin text-slate-700" }) })), _jsxs("div", { className: "absolute top-4 left-4 right-4 flex justify-between items-start z-20 pointer-events-none", children: [_jsx("div", { className: "flex flex-col gap-2", children: selectedRental.payAtPickup && (_jsxs("span", { className: "bg-emerald-500/90 text-white text-[10px] font-black uppercase tracking-wider px-3 py-1.5 rounded-full flex items-center gap-1.5 shadow-lg shadow-emerald-500/20 backdrop-blur-md", children: [_jsx(CheckCircle2, { className: "w-3 h-3" }), "Pay at Pickup"] })) }), _jsxs("div", { className: "flex flex-col items-end gap-2 pointer-events-auto", children: [(selectedRental.rating && selectedRental.rating > 0) ? (_jsxs("span", { className: "bg-white/95 text-slate-900 text-[11px] font-bold px-3 py-1.5 rounded-full shadow-lg flex items-center gap-1.5 border border-slate-100", children: [_jsx(Star, { className: "w-3.5 h-3.5 fill-amber-400 text-amber-400" }), _jsxs("span", { children: [selectedRental.rating, " ", _jsxs("span", { className: "font-semibold text-slate-400", children: ["(", selectedRental.reviewCount || 0, ")"] })] })] })) : null, (selectedRental.completedTrips && selectedRental.completedTrips > 0) ? (_jsxs("span", { className: "bg-slate-900/90 text-white text-[10px] font-bold px-3 py-1.5 rounded-full shadow-lg backdrop-blur-md", children: [selectedRental.completedTrips, " Trips"] })) : null] })] }), _jsxs("div", { className: "relative w-full aspect-[4/3] overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-slate-900/10 z-10 group-hover:bg-transparent transition-colors duration-500" }), _jsx(Image, { src: selectedRental.image || "/placeholder.jpg", alt: selectedRental.title, fill: true, sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 25vw", className: "object-cover group-hover:scale-110 transition-transform duration-700 ease-out" }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 h-1/2 bg-gradient-to-t from-white via-white/50 to-transparent z-10" })] }), _jsxs("div", { className: "flex-1 flex flex-col px-6 pb-6 -mt-10 relative z-20", children: [_jsxs("div", { className: "mb-5", children: [_jsx("h3", { className: "text-xl font-extrabold text-slate-900 tracking-tight leading-tight line-clamp-1 mb-1", title: titleStr, children: titleStr }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-[10px] font-black uppercase tracking-widest text-primary bg-primary/10 px-2 py-0.5 rounded", children: selectedRental.vehicleType || "Vehicle" }), _jsxs("span", { className: "text-xs font-bold text-slate-400", children: ["Model ", selectedRental.date ? new Date(selectedRental.date).getFullYear() : '2024'] })] })] }), _jsx("div", { className: "grid grid-cols-3 gap-3 mb-6", children: [
29
+ { icon: _jsx(Settings, { className: "w-4 h-4" }), label: selectedRental.transmission || 'Auto' },
30
+ { icon: _jsx(Users, { className: "w-4 h-4" }), label: `${selectedRental.seatingCapacity || 2} Seats` },
31
+ { icon: _jsx(Fuel, { className: "w-4 h-4" }), label: selectedRental.fuelType || 'Petrol' }
32
+ ].map((spec, i) => (_jsxs("div", { className: "flex flex-col items-center justify-center bg-slate-50 rounded-2xl p-3 border border-slate-100/50 group-hover:bg-white group-hover:border-primary/20 transition-all duration-300", children: [_jsx("div", { className: "text-slate-400 group-hover:text-primary transition-colors mb-1.5", children: spec.icon }), _jsx("span", { className: "text-[10px] font-bold text-slate-600 uppercase tracking-tight text-center", children: spec.label })] }, i))) }), _jsxs("div", { className: "relative mb-6", children: [_jsx("div", { className: "absolute -top-2 left-3 bg-white px-1.5 text-[10px] font-black uppercase tracking-widest text-slate-400 z-10 transition-colors group-hover:text-primary", children: "Available At" }), _jsx("div", { onClick: (event) => event.stopPropagation(), children: _jsxs(Select, { value: String(selectedPickupIndex), onValueChange: (value) => setSelectedPickupIndex(Number(value)), children: [_jsx(SelectTrigger, { className: "h-12 w-full rounded-2xl border-slate-100 bg-slate-50/50 px-4 text-sm font-bold text-slate-700 shadow-none group-hover:border-primary/20 focus:ring-0 focus-visible:ring-2 focus-visible:ring-slate-200", children: _jsx(SelectValue, { placeholder: selectedRental.location || "Location Not Set" }) }), _jsx(SelectContent, { align: "start", className: "z-[340] rounded-2xl border-slate-200 p-1 shadow-xl", children: variants.length > 0 ? (variants.map((variant, idx) => (_jsx(SelectItem, { value: String(idx), className: "rounded-xl px-3 py-2.5 font-semibold", children: _jsxs("span", { className: "inline-flex items-center gap-2", children: [_jsx(MapPin, { className: "h-4 w-4 text-slate-400" }), variant.location || "Location Not Set"] }) }, idx)))) : (_jsx(SelectItem, { value: "0", className: "rounded-xl px-3 py-2.5 font-semibold", children: selectedRental.location || "Location Not Set" })) })] }) })] }), _jsxs("div", { className: "mt-auto flex items-center justify-between gap-4 pt-1 border-t border-slate-100 pt-5", children: [_jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-baseline gap-1.5", children: [_jsx("span", { className: "text-3xl font-black text-slate-900 tracking-tighter", children: formatPrice(totalPrice) }), _jsx("span", { className: "text-xs font-bold text-slate-400 uppercase", children: "/day" })] }), _jsxs("div", { className: "flex items-center gap-1.5 mt-1", children: [_jsx(Gauge, { className: "w-3.5 h-3.5 text-primary" }), _jsx("span", { className: "text-[11px] font-bold text-slate-500", children: selectedRental.distanceLimit || 'No distance limit' })] })] }), _jsx(Button, { className: "rounded-2xl px-8 h-14 font-black uppercase tracking-widest text-xs shadow-xl shadow-primary/20 hover:shadow-primary/30 transition-all", onClick: (event) => { event.stopPropagation(); navigateToSelectedRental(); }, children: "Book Now" })] })] })] }));
23
33
  }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
4
- import { cn } from "@myrjfa/state";
4
+ import { cn } from "@myrjfa/state/dist/lib/utils";
5
5
  function ScrollArea({ className, children, ...props }) {
6
6
  return (_jsxs(ScrollAreaPrimitive.Root, { "data-slot": "scroll-area", className: cn("relative", className), ...props, children: [_jsx(ScrollAreaPrimitive.Viewport, { "data-slot": "scroll-area-viewport", className: "ring-ring/10 dark:ring-ring/20 dark:outline-ring/40 outline-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1", children: children }), _jsx(ScrollBar, {}), _jsx(ScrollAreaPrimitive.Corner, {})] }));
7
7
  }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as SelectPrimitive from "@radix-ui/react-select";
4
- import { cn } from "@myrjfa/state";
4
+ import { cn } from "@myrjfa/state/dist/lib/utils";
5
5
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
6
6
  function Select({ ...props }) {
7
7
  return _jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
- import { cn } from "@myrjfa/state";
4
+ import { cn } from "@myrjfa/state/dist/lib/utils";
5
5
  function Separator({ className, orientation = "horizontal", decorative = true, ...props }) {
6
6
  return (_jsx(SeparatorPrimitive.Root, { "data-slot": "separator-root", decorative: decorative, orientation: orientation, className: cn("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className), ...props }));
7
7
  }
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as SheetPrimitive from "@radix-ui/react-dialog";
4
- import { cn } from "@myrjfa/state";
4
+ import { cn } from "@myrjfa/state/dist/lib/utils";
5
5
  import { XIcon } from "lucide-react";
6
6
  function Sheet({ ...props }) {
7
7
  return _jsx(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Slot } from "@radix-ui/react-slot";
4
- import { useIsMobile } from "@myrjfa/state";
5
- import { cn } from "@myrjfa/state";
4
+ import { useIsMobile } from "@myrjfa/state/dist/lib/hooks/use-mobile";
5
+ import { cn } from "@myrjfa/state/dist/lib/utils";
6
6
  import { cva } from "class-variance-authority";
7
7
  import { PanelLeftIcon } from "lucide-react";
8
8
  import * as React from "react";
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import * as SliderPrimitive from "@radix-ui/react-slider";
5
- import { cn } from "@myrjfa/state";
5
+ import { cn } from "@myrjfa/state/dist/lib/utils";
6
6
  const Slider = React.forwardRef(({ className, ...props }, ref) => {
7
7
  var _a;
8
8
  return (_jsxs(SliderPrimitive.Root, { ref: ref, className: cn("relative flex w-full touch-none select-none items-center", className), ...props, children: [_jsx(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }), (_a = (props.value || props.defaultValue || [0])) === null || _a === void 0 ? void 0 : _a.map((_, index) => (_jsx(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" }, index)))] }));
@@ -1,4 +1,4 @@
1
- import { CardType } from '@myrjfa/state';
1
+ import { CardType } from "@myrjfa/state/dist/lib/models/props";
2
2
  export declare function StateCard({ state, index, className }: {
3
3
  state: CardType;
4
4
  index: number;
@@ -1 +1 @@
1
- {"version":3,"file":"stateCard.d.ts","sourceRoot":"","sources":["../../src/misc/stateCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAQxC,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsC5G"}
1
+ {"version":3,"file":"stateCard.d.ts","sourceRoot":"","sources":["../../src/misc/stateCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAQ/D,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,2CAsC5G"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn } from '@myrjfa/state';
3
+ import { cn } from "@myrjfa/state/dist/lib/utils";
4
4
  import { Loader2 } from 'lucide-react';
5
5
  import Image from 'next/image';
6
6
  import { useRouter } from 'next/navigation';
@@ -0,0 +1,16 @@
1
+ import { type LucideIcon } from "lucide-react";
2
+ type StepItem = {
3
+ label: string;
4
+ icon: LucideIcon;
5
+ };
6
+ type StepProgressProps = {
7
+ steps: StepItem[];
8
+ currentStep: number;
9
+ onStepClick?: (stepIndex: number) => void;
10
+ allowAllSteps?: boolean;
11
+ size?: "md" | "lg";
12
+ className?: string;
13
+ };
14
+ export default function StepProgress({ steps, currentStep, onStepClick, allowAllSteps, size, className, }: StepProgressProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=step-progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-progress.d.ts","sourceRoot":"","sources":["../../src/misc/step-progress.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAGtD,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAiBF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,KAAK,EACL,WAAW,EACX,WAAW,EACX,aAAqB,EACrB,IAAW,EACX,SAAc,GACf,EAAE,iBAAiB,2CA4DnB"}
@@ -0,0 +1,40 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Check } from "lucide-react";
4
+ import { useEffect, useState } from "react";
5
+ const sizeStyles = {
6
+ md: {
7
+ iconBox: "w-12 h-12",
8
+ icon: "w-6 h-6",
9
+ label: "text-[9px] mt-1",
10
+ connector: "w-8 h-1 mx-2 mb-5",
11
+ },
12
+ lg: {
13
+ iconBox: "w-14 h-14",
14
+ icon: "w-6 h-6",
15
+ label: "text-[10px] mt-2",
16
+ connector: "w-10 h-1 mx-3 mb-6",
17
+ },
18
+ };
19
+ export default function StepProgress({ steps, currentStep, onStepClick, allowAllSteps = false, size = "md", className = "", }) {
20
+ const styles = sizeStyles[size];
21
+ const [furthestStep, setFurthestStep] = useState(currentStep);
22
+ useEffect(() => {
23
+ setFurthestStep((step) => Math.max(step, currentStep));
24
+ }, [currentStep]);
25
+ return (_jsx("div", { className: `flex items-center gap-4 overflow-x-auto no-scrollbar px-1 ${className}`, children: steps.map((step, index) => {
26
+ const active = currentStep === index;
27
+ const doneStep = !active && (allowAllSteps || furthestStep > index);
28
+ const clickable = Boolean(onStepClick) && (allowAllSteps || index <= furthestStep);
29
+ const Icon = step.icon;
30
+ return (_jsxs("div", { className: "flex items-center flex-shrink-0", children: [_jsxs("button", { type: "button", onClick: () => {
31
+ if (clickable) {
32
+ onStepClick === null || onStepClick === void 0 ? void 0 : onStepClick(index);
33
+ }
34
+ }, disabled: !clickable, "aria-current": active ? "step" : undefined, className: `flex flex-col items-center gap-1 transition-all duration-300 ${!active && !doneStep && "opacity-40"} ${clickable ? "cursor-pointer hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 rounded-2xl" : "cursor-default"}`, children: [_jsx("div", { className: `${styles.iconBox} rounded-2xl flex items-center justify-center transition-all duration-300 ${active
35
+ ? "bg-primary text-white shadow-xl shadow-primary/30"
36
+ : doneStep
37
+ ? "bg-green-500 text-white"
38
+ : "bg-white"}`, children: doneStep ? (_jsx(Check, { className: styles.icon })) : (_jsx(Icon, { className: styles.icon })) }), _jsx("span", { className: `${styles.label} font-black uppercase tracking-widest`, children: step.label })] }), index < steps.length - 1 && (_jsx("div", { className: `${styles.connector} rounded-full transition-colors duration-500 ${allowAllSteps || index < furthestStep ? "bg-green-500" : "bg-gray-200"}` }))] }, `${step.label}-${index}`));
39
+ }) }));
40
+ }
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import * as SwitchPrimitives from "@radix-ui/react-switch";
5
- import { cn } from "@myrjfa/state";
5
+ import { cn } from "@myrjfa/state/dist/lib/utils";
6
6
  const Switch = React.forwardRef(({ className, ...props }, ref) => (_jsx(SwitchPrimitives.Root, { className: cn("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className), ...props, ref: ref, children: _jsx(SwitchPrimitives.Thumb, { className: cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0") }) })));
7
7
  Switch.displayName = SwitchPrimitives.Root.displayName;
8
8
  export { Switch };
package/dist/misc/tabs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as TabsPrimitive from "@radix-ui/react-tabs";
4
- import { cn } from "@myrjfa/state";
4
+ import { cn } from "@myrjfa/state/dist/lib/utils";
5
5
  function Tabs({ className, ...props }) {
6
6
  return (_jsx(TabsPrimitive.Root, { "data-slot": "tabs", className: cn("flex flex-col gap-2", className), ...props }));
7
7
  }
@@ -0,0 +1,16 @@
1
+ type TagFilterInputProps = {
2
+ id: string;
3
+ label: string;
4
+ items: string[];
5
+ onAdd: (value: string) => void;
6
+ onRemove: (value: string) => void;
7
+ options?: string[];
8
+ placeholder?: string;
9
+ mode?: "filter" | "searchBox" | "manual";
10
+ chipClassName?: string;
11
+ errorMessage?: string;
12
+ helperText?: string;
13
+ };
14
+ export default function TagFilterInput({ id, label, items, onAdd, onRemove, options, placeholder, mode, chipClassName, errorMessage, helperText, }: TagFilterInputProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=tag-filter-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-filter-input.d.ts","sourceRoot":"","sources":["../../src/misc/tag-filter-input.tsx"],"names":[],"mappings":"AAUA,KAAK,mBAAmB,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,EAAE,EACF,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EACX,IAAe,EACf,aAAsF,EACtF,YAAY,EACZ,UAAU,GACX,EAAE,mBAAmB,2CA4ErB"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { X } from "lucide-react";
4
+ import { Badge } from "./badge";
5
+ import { Button } from "./button";
6
+ import { Filter } from "./filter";
7
+ import { FormDescription, FormLabel } from "./form";
8
+ import { Input } from "./input";
9
+ import { SearchBox } from "./searchBox";
10
+ export default function TagFilterInput({ id, label, items, onAdd, onRemove, options, placeholder, mode = "filter", chipClassName = "flex items-center gap-2 bg-primary/10 text-primary border-primary/20", errorMessage, helperText, }) {
11
+ return (_jsxs("div", { id: id, className: "space-y-2", children: [_jsx("div", { children: _jsx(FormLabel, { children: label }) }), _jsx("div", { className: "flex flex-wrap gap-2", children: items.map((item, index) => (_jsxs(Badge, { variant: "secondary", className: chipClassName, children: [item, _jsx("button", { type: "button", onClick: () => onRemove(item), className: "hover:bg-muted-foreground rounded-md", children: _jsx(X, { className: "h-3 w-3" }) })] }, `${item}-${index}`))) }), options ? (mode === "filter" ? (_jsx("div", { className: "border rounded-md", children: _jsx(Filter, { label: placeholder || label, formType: "autoComplete", selectedValue: null, values: options, onChange: (value) => onAdd(value || ""), others: true }) })) : (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(SearchBox, { id: `${id}-search`, titles: options, placeholder: placeholder || `Select ${label}`, handleAdd: (inputValue) => onAdd(inputValue || "") }), _jsx(FormDescription, { children: "Add 1 item at a time and press enter" })] }))) : (_jsxs("div", { className: "flex gap-2", children: [_jsx(Input, { placeholder: placeholder || `Add ${label.toLowerCase()}`, className: "border-border", onKeyDown: (e) => {
12
+ if (e.key === "Enter") {
13
+ e.preventDefault();
14
+ const input = e.target;
15
+ onAdd(input.value);
16
+ input.value = "";
17
+ }
18
+ } }), _jsx(Button, { type: "button", variant: "default", onClick: (e) => {
19
+ var _a;
20
+ const input = (_a = e.target.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector("input");
21
+ if (input) {
22
+ onAdd(input.value);
23
+ input.value = "";
24
+ }
25
+ }, children: "Add" })] })), helperText && _jsx(FormDescription, { children: helperText }), errorMessage && _jsx("p", { className: "mt-2 text-sm font-medium text-destructive", children: errorMessage })] }));
26
+ }
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "@myrjfa/state";
2
+ import { cn } from "@myrjfa/state/dist/lib/utils";
3
3
  function Textarea({ className, ...props }) {
4
4
  return (_jsx("textarea", { "data-slot": "textarea", className: cn("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className), ...props }));
5
5
  }
@@ -1,4 +1,4 @@
1
- import { TileProps } from "@myrjfa/state";
1
+ import { TileProps } from "@myrjfa/state/dist/lib/models/tile";
2
2
  export type { TileProps };
3
3
  export declare function Tile({ slug, image, title, description, location, rating, skills, tileType, className, date, host, duration, price, currency, includeHost, href, }: TileProps): import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=tile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tile.d.ts","sourceRoot":"","sources":["../../src/misc/tile.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,YAAY,EAAE,SAAS,EAAE,CAAC;AAgB1B,wBAAgB,IAAI,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAW,EACX,QAA0B,EAC1B,SAAS,EACT,IAAI,EACJ,IAAgB,EAChB,QAAY,EACZ,KAAW,EACX,QAAgB,EAChB,WAAkB,EAClB,IAAI,GACP,EAAE,SAAS,2CAkLX"}
1
+ {"version":3,"file":"tile.d.ts","sourceRoot":"","sources":["../../src/misc/tile.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAG/D,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,wBAAgB,IAAI,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAW,EACX,QAA0B,EAC1B,SAAS,EACT,IAAI,EACJ,IAAgB,EAChB,QAAY,EACZ,KAAW,EACX,QAAgB,EAChB,WAAkB,EAClB,IAAI,GACP,EAAE,SAAS,2CA6JX"}
package/dist/misc/tile.js CHANGED
@@ -1,59 +1,24 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { toggleUserWishlist } from "@myrjfa/state/dist/lib/actions/actions";
4
- import { userAtom, userLoadingAtom } from "@myrjfa/state/dist/lib/userAtom";
5
3
  import { cn, formatDate, truncateText } from "@myrjfa/state/dist/lib/utils";
6
- import { useAtom, useAtomValue } from "jotai";
7
- import { Clock, Heart, Loader2, MapPin, Star } from "lucide-react";
4
+ import { Clock, Loader2, MapPin, Star } from "lucide-react";
8
5
  import Image from "next/image";
9
6
  import { useRouter } from "next/navigation";
10
- import { useEffect, useState } from "react";
11
- import { showAlert } from "./alertdialogclaude";
7
+ import { useState } from "react";
12
8
  import { Badge } from "./badge";
13
- import { Button } from "./button";
14
9
  import { Card, CardContent } from "./card";
15
10
  import { RentalTile } from "./rental-tile";
16
- function WishlistButton({ wishlisted, handleWishlisted }) {
17
- return _jsx(Button, { variant: "ghost", className: "absolute top-3 right-3 z-10 bg-white/70 hover:bg-white rounded-full transition", onClick: handleWishlisted, children: _jsx(Heart, { className: wishlisted ? "text-red-500 fill-red-500 drop-shadow" : "text-gray-400 fill-gray-400", size: 20 }) });
18
- }
19
- ;
11
+ import { ListingWishlistButton } from "./listing-wishlist-button";
20
12
  export function Tile({ slug, image, title, description, location, rating, skills = [], tileType = "opportunities", className, date, host = undefined, duration = 1, price = 0.0, currency = "INR", includeHost = true, href, }) {
21
13
  var _a, _b, _c, _d;
22
- const [user, setUser] = useAtom(userAtom);
23
- const loading = useAtomValue(userLoadingAtom);
14
+ const effectiveTileType = (tileType !== null && tileType !== void 0 ? tileType : "opportunities");
24
15
  const router = useRouter();
25
- const [wishlisted, setWishlisted] = useState(false);
26
16
  const [clicked, setClicked] = useState(false);
27
- useEffect(() => {
28
- var _a, _b, _c, _d;
29
- if (loading || !user)
30
- return;
31
- if (tileType == "opportunities") {
32
- setWishlisted((_b = (_a = user.wishlist) === null || _a === void 0 ? void 0 : _a.includes(slug)) !== null && _b !== void 0 ? _b : false);
33
- }
34
- else if (tileType == "packages" || tileType == "rentals" || tileType == "adventures" || tileType == "guides") {
35
- setWishlisted((_d = (_c = user.favPackages) === null || _c === void 0 ? void 0 : _c.includes(slug)) !== null && _d !== void 0 ? _d : false);
36
- }
37
- }, [slug, loading, user]);
38
- const handleWishlisted = async (e) => {
39
- e.stopPropagation();
40
- const response = await toggleUserWishlist(slug, tileType);
41
- if (response === null || response === void 0 ? void 0 : response.error) {
42
- await showAlert(response.error);
43
- return;
44
- }
45
- if (tileType == "opportunities") {
46
- setUser((prev) => prev ? { ...prev, wishlist: response.wishlist } : prev);
47
- }
48
- else if (tileType == "packages" || tileType == "rentals" || tileType == "adventures" || tileType == "guides") {
49
- setUser((prev) => prev ? { ...prev, favPackages: response.wishlist } : prev);
50
- }
51
- };
52
17
  const handleTileClick = () => {
53
18
  if (clicked)
54
19
  return; // prevent duplicate navigation
55
20
  setClicked(true);
56
- router.push(href !== null && href !== void 0 ? href : `/${tileType}/${slug}`);
21
+ router.push(href !== null && href !== void 0 ? href : `/${effectiveTileType}/${slug}`);
57
22
  };
58
23
  const formatPrice = (price, currency) => {
59
24
  return new Intl.NumberFormat('en-IN', {
@@ -62,7 +27,7 @@ export function Tile({ slug, image, title, description, location, rating, skills
62
27
  maximumFractionDigits: 0
63
28
  }).format(price);
64
29
  };
65
- if (tileType === "rentals") {
30
+ if (effectiveTileType === "rentals") {
66
31
  return _jsx(RentalTile, { ...arguments[0], onClick: handleTileClick, clicked: clicked });
67
32
  }
68
33
  return (_jsxs(Card, { className: cn("h-full shadow-lg py-0 gap-0 group transition-shadow hover:shadow-2xl border border-gray-100 rounded-2xl overflow-hidden cursor-pointer relative bg-white", className, clicked && "opacity-60 pointer-events-none" // visual cue + blocking
@@ -70,11 +35,11 @@ export function Tile({ slug, image, title, description, location, rating, skills
70
35
  WebkitMaskImage: "linear-gradient(to bottom, rgba(0,0,0,1) 90%, rgba(255, 255, 255, 0) 100%)",
71
36
  WebkitMaskRepeat: "no-repeat",
72
37
  WebkitMaskSize: "100% 100%",
73
- }, onError: (e) => console.error(e.target) }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 h-5 pointer-events-none bg-gradient-to-b from-transparent to-white" }), user && user.role == "user" && tileType !== "blogs" && (_jsx(WishlistButton, { wishlisted: wishlisted, handleWishlisted: handleWishlisted })), (tileType == "packages" || tileType == "adventures" || tileType == "guides") && (_jsx("div", { className: "absolute top-4 left-4 bg-white/80 backdrop-blur px-3 py-1 rounded-full shadow text-gray-900 font-semibold text-base", children: formatPrice(price, currency) }))] }), _jsxs(CardContent, { className: "p-4 pt-0 flex flex-col gap-3 z-10", children: [tileType !== "blogs" && (_jsxs("div", { className: "flex justify-between text-sm text-muted-foreground", children: [location && (_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(MapPin, { size: 15 }), " ", truncateText(location, 30)] })), (rating && rating > 0) ? _jsxs("div", { className: "flex items-center gap-1 bg-green-50 px-2 py-1 rounded-full", children: [_jsx(Star, { className: "w-4 h-4 text-amber-400 fill-current" }), _jsx("span", { className: " font-semibold", children: rating })] })
74
- : null] })), _jsx("h4", { className: "text-lg font-semibold truncate-text", children: truncateText(title, 30) }), (tileType !== "packages" && tileType !== "adventures" && tileType !== "guides") &&
75
- _jsx("p", { className: "text-sm text-muted-foreground truncate-text-3", children: description }), tileType == "opportunities" && skills.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2 mt-2 truncate-text", children: skills.slice(0, 3).map((skill, index) => (_jsx(Badge, { variant: "secondary", children: truncateText(skill, 10) }, index))) })), tileType == "blogs" && (includeHost ?
76
- _jsxs("div", { className: "flex items-center gap-3 pt-3 border-t min-h-12 max-h-15", children: [_jsx(Image, { src: (_a = host === null || host === void 0 ? void 0 : host.image) !== null && _a !== void 0 ? _a : "/images/profile_placeholder.webp", alt: "Host Image", width: 40, height: 40, className: "rounded-full object-cover" }), _jsxs("div", { className: "flex-1", children: [_jsxs("p", { className: "font-medium", children: ["By ", truncateText((_b = host === null || host === void 0 ? void 0 : host.name) !== null && _b !== void 0 ? _b : "Host", 18)] }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["on ", formatDate(date)] })] })] }) :
77
- _jsxs("div", { className: "flex justify-between items-center text-xs text-gray-500", children: [_jsx("span", { children: formatDate(date) }), _jsxs("span", { children: [rating, " likes"] })] })), (tileType == "packages" || tileType == "adventures" || tileType == "guides") && (_jsxs("div", { className: "flex items-center justify-between pt-3 border-t border-gray-100", children: [(tileType !== "guides") && (_jsxs("div", { className: "flex items-center gap-1 text-gray-600 whitespace-nowrap", children: [_jsx(Clock, { className: "w-4 h-4 mr-1" }), _jsxs("span", { className: "text-sm", children: [duration, " ", tileType == "adventures" ? "hrs" : "Days"] })] })), includeHost ?
38
+ }, onError: (e) => console.error(e.target) }), _jsx("div", { className: "absolute bottom-0 left-0 right-0 h-5 pointer-events-none bg-gradient-to-b from-transparent to-white" }), tileType !== "blogs" && (_jsx(ListingWishlistButton, { slug: slug, tileType: effectiveTileType, className: "absolute top-3 right-3 z-10" })), (effectiveTileType == "packages" || effectiveTileType == "adventures" || effectiveTileType == "guides" || effectiveTileType == "stays" || effectiveTileType == "events") && (_jsx("div", { className: "absolute top-4 left-4 bg-white/80 backdrop-blur px-3 py-1 rounded-full shadow text-gray-900 font-semibold text-base", children: formatPrice(price, currency) }))] }), _jsxs(CardContent, { className: "p-4 pt-0 flex flex-col gap-3 z-10", children: [tileType !== "blogs" && (_jsxs("div", { className: "flex justify-between text-sm text-muted-foreground", children: [location && (_jsxs("span", { className: "flex items-center gap-1", children: [_jsx(MapPin, { size: 15 }), " ", truncateText(location, 30)] })), (rating && rating > 0) ? _jsxs("div", { className: "flex items-center gap-1 bg-green-50 px-2 py-1 rounded-full", children: [_jsx(Star, { className: "w-4 h-4 text-amber-400 fill-current" }), _jsx("span", { className: " font-semibold", children: rating })] })
39
+ : null] })), _jsx("h4", { className: "text-lg font-semibold truncate-text", children: truncateText(title, 30) }), (effectiveTileType !== "packages" && effectiveTileType !== "adventures" && effectiveTileType !== "guides" && effectiveTileType !== "stays" && effectiveTileType !== "events") &&
40
+ _jsx("p", { className: "text-sm text-muted-foreground truncate-text-3", children: description }), effectiveTileType == "opportunities" && skills.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2 mt-2 truncate-text", children: skills.slice(0, 3).map((skill, index) => (_jsx(Badge, { variant: "secondary", children: truncateText(skill, 10) }, index))) })), effectiveTileType == "blogs" && (includeHost ?
41
+ _jsxs("div", { className: "flex items-center gap-3 pt-3 border-t min-h-12 max-h-15", children: [_jsx(Image, { src: (_a = host === null || host === void 0 ? void 0 : host.image) !== null && _a !== void 0 ? _a : "/images/profile_placeholder.webp", alt: "Host Image", width: 40, height: 40, className: "rounded-full object-cover" }), _jsxs("div", { className: "flex-1", children: [_jsxs("p", { className: "font-medium", children: ["By ", truncateText((_b = host === null || host === void 0 ? void 0 : host.name) !== null && _b !== void 0 ? _b : "Host", 18)] }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["on ", formatDate(date !== null && date !== void 0 ? date : new Date())] })] })] }) :
42
+ _jsxs("div", { className: "flex justify-between items-center text-xs text-gray-500", children: [_jsx("span", { children: formatDate(date !== null && date !== void 0 ? date : new Date()) }), _jsxs("span", { children: [rating, " likes"] })] })), (effectiveTileType == "packages" || effectiveTileType == "adventures" || effectiveTileType == "guides" || effectiveTileType == "stays" || effectiveTileType == "events") && (_jsxs("div", { className: "flex items-center justify-between pt-3 border-t border-gray-100", children: [(effectiveTileType !== "guides" && effectiveTileType !== "stays" && effectiveTileType !== "events") && (_jsxs("div", { className: "flex items-center gap-1 text-gray-600 whitespace-nowrap", children: [_jsx(Clock, { className: "w-4 h-4 mr-1" }), _jsxs("span", { className: "text-sm", children: [duration, " ", effectiveTileType == "adventures" ? "hrs" : "Days"] })] })), includeHost ?
78
43
  _jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Image, { src: (_c = host === null || host === void 0 ? void 0 : host.image) !== null && _c !== void 0 ? _c : "/images/profile_placeholder.webp", alt: (_d = host === null || host === void 0 ? void 0 : host.name) !== null && _d !== void 0 ? _d : "DP", width: 25, height: 25, className: "rounded-full" }), _jsx("span", { className: "text-sm text-gray-500 max-w-40", children: host === null || host === void 0 ? void 0 : host.name })] }) :
79
- _jsx("div", { className: "flex justify-between items-center text-xs text-gray-500", children: _jsx("span", { children: formatDate(date) }) })] }))] })] }));
44
+ _jsx("div", { className: "flex justify-between items-center text-xs text-gray-500", children: _jsx("span", { children: formatDate(date !== null && date !== void 0 ? date : new Date()) }) })] }))] })] }));
80
45
  }
@@ -0,0 +1,14 @@
1
+ export declare const HALF_HOUR_TIME_OPTIONS: string[];
2
+ type TimeSelectProps = {
3
+ value: string;
4
+ onChange: (value: string) => void;
5
+ placeholder?: string;
6
+ disabled?: boolean;
7
+ className?: string;
8
+ triggerClassName?: string;
9
+ contentClassName?: string;
10
+ options?: string[];
11
+ };
12
+ export declare function TimeSelect({ value, onChange, placeholder, disabled, className, triggerClassName, contentClassName, options, }: TimeSelectProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=time-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-select.d.ts","sourceRoot":"","sources":["../../src/misc/time-select.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,sBAAsB,UAIjC,CAAC;AAEH,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,WAA2B,EAC3B,QAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,OAAgC,GACjC,EAAE,eAAe,2CA4BjB"}