@myrjfa/ui 2.1.9 → 2.2.1
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.
- package/dist/chat/ChatMain.d.ts +1 -1
- package/dist/chat/ChatMain.d.ts.map +1 -1
- package/dist/chat/ChatMain.js +3 -3
- package/dist/chat/ChatSidebar.d.ts +1 -1
- package/dist/chat/ChatSidebar.d.ts.map +1 -1
- package/dist/chat/ConversationList.d.ts +1 -1
- package/dist/chat/ConversationList.d.ts.map +1 -1
- package/dist/chat/ConversationList.js +1 -1
- package/dist/chat/ExpensePanel.js +1 -1
- package/dist/chat/MessageBubble.d.ts +1 -1
- package/dist/chat/MessageBubble.d.ts.map +1 -1
- package/dist/chat/MessageInput.js +1 -1
- package/dist/chat/MilestonePanel.js +1 -1
- package/dist/chat/components/SplitInputs.d.ts +1 -1
- package/dist/chat/components/SplitInputs.d.ts.map +1 -1
- package/dist/chat/components/SplitTypeSelector.d.ts +1 -1
- package/dist/chat/components/SplitTypeSelector.d.ts.map +1 -1
- package/dist/chat/dialogs/AddMemberDialog.d.ts +1 -1
- package/dist/chat/dialogs/AddMemberDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/AddMemberDialog.js +1 -1
- package/dist/chat/dialogs/ExpenseAnalyticsDialog.js +1 -1
- package/dist/chat/dialogs/GroupInfoDialog.d.ts +1 -1
- package/dist/chat/dialogs/GroupInfoDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/GroupInfoDialog.js +1 -1
- package/dist/chat/dialogs/GroupInfoViewDialog.d.ts +1 -1
- package/dist/chat/dialogs/GroupInfoViewDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/NewChatDialog.js +2 -2
- package/dist/chat/dialogs/NewGroupDialog.js +2 -2
- package/dist/chat/dialogs/ParticipantsDialog.d.ts +1 -1
- package/dist/chat/dialogs/ParticipantsDialog.d.ts.map +1 -1
- package/dist/chat/dialogs/ParticipantsDialog.js +1 -1
- package/dist/components/CityAutocomplete.d.ts +5 -0
- package/dist/components/CityAutocomplete.d.ts.map +1 -0
- package/dist/components/CityAutocomplete.js +112 -0
- package/dist/components/CreateListingDropdown.d.ts +5 -0
- package/dist/components/CreateListingDropdown.d.ts.map +1 -0
- package/dist/components/CreateListingDropdown.js +21 -0
- package/dist/components/DestinationAutocomplete.d.ts +11 -0
- package/dist/components/DestinationAutocomplete.d.ts.map +1 -0
- package/dist/components/DestinationAutocomplete.js +24 -0
- package/dist/components/StateAutocomplete.d.ts +10 -0
- package/dist/components/StateAutocomplete.d.ts.map +1 -0
- package/dist/components/StateAutocomplete.js +34 -0
- package/dist/components/admin/AdminBookingRegistrationsList.d.ts +5 -0
- package/dist/components/admin/AdminBookingRegistrationsList.d.ts.map +1 -0
- package/dist/components/admin/AdminBookingRegistrationsList.js +69 -0
- package/dist/components/admin/AdminListingActionsWrapper.d.ts +9 -0
- package/dist/components/admin/AdminListingActionsWrapper.d.ts.map +1 -0
- package/dist/components/admin/AdminListingActionsWrapper.js +200 -0
- package/dist/components/ads/ActivateAdPlacementButton.d.ts +6 -0
- package/dist/components/ads/ActivateAdPlacementButton.d.ts.map +1 -0
- package/dist/components/ads/ActivateAdPlacementButton.js +27 -0
- package/dist/components/ads/AdOfferCard.d.ts +6 -0
- package/dist/components/ads/AdOfferCard.d.ts.map +1 -0
- package/dist/components/ads/AdOfferCard.js +15 -0
- package/dist/components/adventure/AdventureAvailabilityPlanner.d.ts +17 -0
- package/dist/components/adventure/AdventureAvailabilityPlanner.d.ts.map +1 -0
- package/dist/components/adventure/AdventureAvailabilityPlanner.js +106 -0
- package/dist/components/adventure/AdventureQueryCard.d.ts +5 -0
- package/dist/components/adventure/AdventureQueryCard.d.ts.map +1 -0
- package/dist/components/adventure/AdventureQueryCard.js +65 -0
- package/dist/components/adventure/AdventureSlotBuilder.d.ts +41 -0
- package/dist/components/adventure/AdventureSlotBuilder.d.ts.map +1 -0
- package/dist/components/adventure/AdventureSlotBuilder.js +146 -0
- package/dist/components/booking/booking-form.d.ts +39 -0
- package/dist/components/booking/booking-form.d.ts.map +1 -0
- package/dist/components/booking/booking-form.js +824 -0
- package/dist/components/brand/BrandPageView.d.ts +8 -0
- package/dist/components/brand/BrandPageView.d.ts.map +1 -0
- package/dist/components/brand/BrandPageView.js +97 -0
- package/dist/components/companion/AnonymousChat.d.ts +22 -0
- package/dist/components/companion/AnonymousChat.d.ts.map +1 -0
- package/dist/components/companion/AnonymousChat.js +24 -0
- package/dist/components/companion/SwipeCard.d.ts +25 -0
- package/dist/components/companion/SwipeCard.d.ts.map +1 -0
- package/dist/components/companion/SwipeCard.js +58 -0
- package/dist/components/create-flow/ConfirmDiscardDialog.d.ts +11 -0
- package/dist/components/create-flow/ConfirmDiscardDialog.d.ts.map +1 -0
- package/dist/components/create-flow/ConfirmDiscardDialog.js +14 -0
- package/dist/components/create-flow/EntityEditLoadingState.d.ts +2 -0
- package/dist/components/create-flow/EntityEditLoadingState.d.ts.map +1 -0
- package/dist/components/create-flow/EntityEditLoadingState.js +6 -0
- package/dist/components/create-flow/EntityFormCompletionState.d.ts +12 -0
- package/dist/components/create-flow/EntityFormCompletionState.d.ts.map +1 -0
- package/dist/components/create-flow/EntityFormCompletionState.js +10 -0
- package/dist/components/create-flow/EntityFormHeader.d.ts +9 -0
- package/dist/components/create-flow/EntityFormHeader.d.ts.map +1 -0
- package/dist/components/create-flow/EntityFormHeader.js +7 -0
- package/dist/components/create-flow/EntityFormPageFrame.d.ts +10 -0
- package/dist/components/create-flow/EntityFormPageFrame.d.ts.map +1 -0
- package/dist/components/create-flow/EntityFormPageFrame.js +10 -0
- package/dist/components/create-flow/ImageUploadStep.d.ts +15 -0
- package/dist/components/create-flow/ImageUploadStep.d.ts.map +1 -0
- package/dist/components/create-flow/ImageUploadStep.js +11 -0
- package/dist/components/create-flow/ImageUploader.d.ts +30 -0
- package/dist/components/create-flow/ImageUploader.d.ts.map +1 -0
- package/dist/components/create-flow/ImageUploader.js +193 -0
- package/dist/components/create-flow/MultiStepWizard.d.ts +25 -0
- package/dist/components/create-flow/MultiStepWizard.d.ts.map +1 -0
- package/dist/components/create-flow/MultiStepWizard.js +31 -0
- package/dist/components/create-flow/ReviewConfirmationCard.d.ts +8 -0
- package/dist/components/create-flow/ReviewConfirmationCard.d.ts.map +1 -0
- package/dist/components/create-flow/ReviewConfirmationCard.js +5 -0
- package/dist/components/create-flow/ReviewMetricGrid.d.ts +15 -0
- package/dist/components/create-flow/ReviewMetricGrid.d.ts.map +1 -0
- package/dist/components/create-flow/ReviewMetricGrid.js +8 -0
- package/dist/components/create-flow/TemplateSelectionDialog.d.ts +17 -0
- package/dist/components/create-flow/TemplateSelectionDialog.d.ts.map +1 -0
- package/dist/components/create-flow/TemplateSelectionDialog.js +7 -0
- package/dist/components/enquiry/EnquiryFormParts.d.ts +40 -0
- package/dist/components/enquiry/EnquiryFormParts.d.ts.map +1 -0
- package/dist/components/enquiry/EnquiryFormParts.js +29 -0
- package/dist/components/form-sections/FaqSection.d.ts +24 -0
- package/dist/components/form-sections/FaqSection.d.ts.map +1 -0
- package/dist/components/form-sections/FaqSection.js +17 -0
- package/dist/components/form-sections/ImageUploadSection.d.ts +12 -0
- package/dist/components/form-sections/ImageUploadSection.d.ts.map +1 -0
- package/dist/components/form-sections/ImageUploadSection.js +8 -0
- package/dist/components/form-sections/OpportunityBasicsSection.d.ts +8 -0
- package/dist/components/form-sections/OpportunityBasicsSection.d.ts.map +1 -0
- package/dist/components/form-sections/OpportunityBasicsSection.js +26 -0
- package/dist/components/form-sections/OpportunityDetailsSection.d.ts +18 -0
- package/dist/components/form-sections/OpportunityDetailsSection.d.ts.map +1 -0
- package/dist/components/form-sections/OpportunityDetailsSection.js +10 -0
- package/dist/components/form-sections/OpportunityTypeSection.d.ts +7 -0
- package/dist/components/form-sections/OpportunityTypeSection.d.ts.map +1 -0
- package/dist/components/form-sections/OpportunityTypeSection.js +15 -0
- package/dist/components/form-sections/PackageDetailsSection.d.ts +22 -0
- package/dist/components/form-sections/PackageDetailsSection.d.ts.map +1 -0
- package/dist/components/form-sections/PackageDetailsSection.js +20 -0
- package/dist/components/form-sections/PackageItinerarySection.d.ts +21 -0
- package/dist/components/form-sections/PackageItinerarySection.d.ts.map +1 -0
- package/dist/components/form-sections/PackageItinerarySection.js +112 -0
- package/dist/components/form-sections/PackagePricingSection.d.ts +8 -0
- package/dist/components/form-sections/PackagePricingSection.d.ts.map +1 -0
- package/dist/components/form-sections/PackagePricingSection.js +11 -0
- package/dist/components/form-sections/PackageReviewSection.d.ts +12 -0
- package/dist/components/form-sections/PackageReviewSection.d.ts.map +1 -0
- package/dist/components/form-sections/PackageReviewSection.js +26 -0
- package/dist/components/form-sections/RentalBasicsSection.d.ts +12 -0
- package/dist/components/form-sections/RentalBasicsSection.d.ts.map +1 -0
- package/dist/components/form-sections/RentalBasicsSection.js +91 -0
- package/dist/components/form-sections/RentalCapacitySection.d.ts +9 -0
- package/dist/components/form-sections/RentalCapacitySection.d.ts.map +1 -0
- package/dist/components/form-sections/RentalCapacitySection.js +23 -0
- package/dist/components/form-sections/RentalLocationSection.d.ts +10 -0
- package/dist/components/form-sections/RentalLocationSection.d.ts.map +1 -0
- package/dist/components/form-sections/RentalLocationSection.js +41 -0
- package/dist/components/form-sections/RentalPhotosSection.d.ts +8 -0
- package/dist/components/form-sections/RentalPhotosSection.d.ts.map +1 -0
- package/dist/components/form-sections/RentalPhotosSection.js +7 -0
- package/dist/components/form-sections/RentalReviewSection.d.ts +10 -0
- package/dist/components/form-sections/RentalReviewSection.d.ts.map +1 -0
- package/dist/components/form-sections/RentalReviewSection.js +27 -0
- package/dist/components/form-sections/RentalRulesSection.d.ts +7 -0
- package/dist/components/form-sections/RentalRulesSection.d.ts.map +1 -0
- package/dist/components/form-sections/RentalRulesSection.js +10 -0
- package/dist/components/form-sections/RentalSpecsSection.d.ts +7 -0
- package/dist/components/form-sections/RentalSpecsSection.d.ts.map +1 -0
- package/dist/components/form-sections/RentalSpecsSection.js +10 -0
- package/dist/components/host-dashboard/HostCalendar.d.ts +8 -0
- package/dist/components/host-dashboard/HostCalendar.d.ts.map +1 -0
- package/dist/components/host-dashboard/HostCalendar.js +43 -0
- package/dist/components/host-dashboard/HostCalendarGrid.d.ts +34 -0
- package/dist/components/host-dashboard/HostCalendarGrid.d.ts.map +1 -0
- package/dist/components/host-dashboard/HostCalendarGrid.js +30 -0
- package/dist/components/host-dashboard/HostListingMultiSelect.d.ts +12 -0
- package/dist/components/host-dashboard/HostListingMultiSelect.d.ts.map +1 -0
- package/dist/components/host-dashboard/HostListingMultiSelect.js +24 -0
- package/dist/components/host-dashboard/HostManageCalendarShell.d.ts +17 -0
- package/dist/components/host-dashboard/HostManageCalendarShell.d.ts.map +1 -0
- package/dist/components/host-dashboard/HostManageCalendarShell.js +5 -0
- package/dist/components/host-dashboard/HostSidebarNavigation.d.ts +2 -0
- package/dist/components/host-dashboard/HostSidebarNavigation.d.ts.map +1 -0
- package/dist/components/host-dashboard/HostSidebarNavigation.js +262 -0
- package/dist/components/host-dashboard/ManageFeatureSwitcher.d.ts +15 -0
- package/dist/components/host-dashboard/ManageFeatureSwitcher.d.ts.map +1 -0
- package/dist/components/host-dashboard/ManageFeatureSwitcher.js +43 -0
- package/dist/components/host-dashboard/PageHeader.d.ts +14 -0
- package/dist/components/host-dashboard/PageHeader.d.ts.map +1 -0
- package/dist/components/host-dashboard/PageHeader.js +8 -0
- package/dist/components/host-dashboard/PlaceholderPage.d.ts +4 -0
- package/dist/components/host-dashboard/PlaceholderPage.d.ts.map +1 -0
- package/dist/components/host-dashboard/PlaceholderPage.js +9 -0
- package/dist/components/host-dashboard/StatCard.d.ts +15 -0
- package/dist/components/host-dashboard/StatCard.d.ts.map +1 -0
- package/dist/components/host-dashboard/StatCard.js +38 -0
- package/dist/components/layout/AppProviders.d.ts +5 -0
- package/dist/components/layout/AppProviders.d.ts.map +1 -0
- package/dist/components/layout/AppProviders.js +11 -0
- package/dist/components/layout/PublicRouteLayout.d.ts +5 -0
- package/dist/components/layout/PublicRouteLayout.d.ts.map +1 -0
- package/dist/components/layout/PublicRouteLayout.js +5 -0
- package/dist/components/layout/PublicShell.d.ts +5 -0
- package/dist/components/layout/PublicShell.d.ts.map +1 -0
- package/dist/components/layout/PublicShell.js +5 -0
- package/dist/components/location/LocationPicker.d.ts +27 -0
- package/dist/components/location/LocationPicker.d.ts.map +1 -0
- package/dist/components/location/LocationPicker.js +415 -0
- package/dist/components/location/LocationPreview.d.ts +11 -0
- package/dist/components/location/LocationPreview.d.ts.map +1 -0
- package/dist/components/location/LocationPreview.js +12 -0
- package/dist/components/location/MapPicker.d.ts +9 -0
- package/dist/components/location/MapPicker.d.ts.map +1 -0
- package/dist/components/location/MapPicker.js +40 -0
- package/dist/components/location/MapPreview.d.ts +8 -0
- package/dist/components/location/MapPreview.d.ts.map +1 -0
- package/dist/components/location/MapPreview.js +17 -0
- package/dist/components/location/PlaceLinkInline.d.ts +14 -0
- package/dist/components/location/PlaceLinkInline.d.ts.map +1 -0
- package/dist/components/location/PlaceLinkInline.js +30 -0
- package/dist/components/location/leafletMap.d.ts +8 -0
- package/dist/components/location/leafletMap.d.ts.map +1 -0
- package/dist/components/location/leafletMap.js +74 -0
- package/dist/components/ui/GuestOrLoginDialog.d.ts +11 -0
- package/dist/components/ui/GuestOrLoginDialog.d.ts.map +1 -0
- package/dist/components/ui/GuestOrLoginDialog.js +19 -0
- package/dist/components/ui/ImageGalleryViewer.d.ts +10 -0
- package/dist/components/ui/ImageGalleryViewer.d.ts.map +1 -0
- package/dist/components/ui/ImageGalleryViewer.js +59 -0
- package/dist/components/ui/LocationInput.d.ts +12 -0
- package/dist/components/ui/LocationInput.d.ts.map +1 -0
- package/dist/components/ui/LocationInput.js +39 -0
- package/dist/components/ui/PropertyGalleryClient.d.ts +8 -0
- package/dist/components/ui/PropertyGalleryClient.d.ts.map +1 -0
- package/dist/components/ui/PropertyGalleryClient.js +22 -0
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +75 -0
- package/dist/components/ui/dashboard/admin-adventures-table.d.ts +12 -0
- package/dist/components/ui/dashboard/admin-adventures-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/admin-adventures-table.js +94 -0
- package/dist/components/ui/dashboard/admin-blogs-table.d.ts +11 -0
- package/dist/components/ui/dashboard/admin-blogs-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/admin-blogs-table.js +58 -0
- package/dist/components/ui/dashboard/admin-opportunities-table.d.ts +20 -0
- package/dist/components/ui/dashboard/admin-opportunities-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/admin-opportunities-table.js +133 -0
- package/dist/components/ui/dashboard/admin-rentals-table.d.ts +12 -0
- package/dist/components/ui/dashboard/admin-rentals-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/admin-rentals-table.js +85 -0
- package/dist/components/ui/dashboard/admin-travel-package-table.d.ts +16 -0
- package/dist/components/ui/dashboard/admin-travel-package-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/admin-travel-package-table.js +100 -0
- package/dist/components/ui/dashboard/adventures-table.d.ts +16 -0
- package/dist/components/ui/dashboard/adventures-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/adventures-table.js +151 -0
- package/dist/components/ui/dashboard/approver-applications-table.d.ts +13 -0
- package/dist/components/ui/dashboard/approver-applications-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/approver-applications-table.js +85 -0
- package/dist/components/ui/dashboard/approver-package-enquiries-table.d.ts +11 -0
- package/dist/components/ui/dashboard/approver-package-enquiries-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/approver-package-enquiries-table.js +102 -0
- package/dist/components/ui/dashboard/archive-confirm-modal.d.ts +9 -0
- package/dist/components/ui/dashboard/archive-confirm-modal.d.ts.map +1 -0
- package/dist/components/ui/dashboard/archive-confirm-modal.js +6 -0
- package/dist/components/ui/dashboard/blogs-table.d.ts +10 -0
- package/dist/components/ui/dashboard/blogs-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/blogs-table.js +62 -0
- package/dist/components/ui/dashboard/bookings-table.d.ts +12 -0
- package/dist/components/ui/dashboard/bookings-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/bookings-table.js +160 -0
- package/dist/components/ui/dashboard/dashboard-page-shell.d.ts +7 -0
- package/dist/components/ui/dashboard/dashboard-page-shell.d.ts.map +1 -0
- package/dist/components/ui/dashboard/dashboard-page-shell.js +5 -0
- package/dist/components/ui/dashboard/data-table-shell.d.ts +18 -0
- package/dist/components/ui/dashboard/data-table-shell.d.ts.map +1 -0
- package/dist/components/ui/dashboard/data-table-shell.js +6 -0
- package/dist/components/ui/dashboard/delete-confirm-modal.d.ts +9 -0
- package/dist/components/ui/dashboard/delete-confirm-modal.d.ts.map +1 -0
- package/dist/components/ui/dashboard/delete-confirm-modal.js +6 -0
- package/dist/components/ui/dashboard/entity-list-page-state.d.ts +25 -0
- package/dist/components/ui/dashboard/entity-list-page-state.d.ts.map +1 -0
- package/dist/components/ui/dashboard/entity-list-page-state.js +17 -0
- package/dist/components/ui/dashboard/generic-entity-table.d.ts +36 -0
- package/dist/components/ui/dashboard/generic-entity-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/generic-entity-table.js +203 -0
- package/dist/components/ui/dashboard/opportunities-table.d.ts +17 -0
- package/dist/components/ui/dashboard/opportunities-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/opportunities-table.js +143 -0
- package/dist/components/ui/dashboard/rentals-table.d.ts +17 -0
- package/dist/components/ui/dashboard/rentals-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/rentals-table.js +155 -0
- package/dist/components/ui/dashboard/restore-confirm-modal.d.ts +9 -0
- package/dist/components/ui/dashboard/restore-confirm-modal.d.ts.map +1 -0
- package/dist/components/ui/dashboard/restore-confirm-modal.js +6 -0
- package/dist/components/ui/dashboard/stats-card.d.ts +6 -0
- package/dist/components/ui/dashboard/stats-card.d.ts.map +1 -0
- package/dist/components/ui/dashboard/stats-card.js +5 -0
- package/dist/components/ui/dashboard/travel-packages-table.d.ts +16 -0
- package/dist/components/ui/dashboard/travel-packages-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/travel-packages-table.js +134 -0
- package/dist/components/ui/dashboard/user-applications-table.d.ts +12 -0
- package/dist/components/ui/dashboard/user-applications-table.d.ts.map +1 -0
- package/dist/components/ui/dashboard/user-applications-table.js +79 -0
- package/dist/components/ui/loading-skeleton.d.ts +10 -0
- package/dist/components/ui/loading-skeleton.d.ts.map +1 -0
- package/dist/components/ui/loading-skeleton.js +49 -0
- package/dist/components/ui/misc/IosPwaNavBar.d.ts +8 -0
- package/dist/components/ui/misc/IosPwaNavBar.d.ts.map +1 -0
- package/dist/components/ui/misc/IosPwaNavBar.js +25 -0
- package/dist/components/ui/misc/document-upload-button.d.ts +10 -0
- package/dist/components/ui/misc/document-upload-button.d.ts.map +1 -0
- package/dist/components/ui/misc/document-upload-button.js +12 -0
- package/dist/components/ui/misc/empty-state.d.ts +9 -0
- package/dist/components/ui/misc/empty-state.d.ts.map +1 -0
- package/dist/components/ui/misc/empty-state.js +4 -0
- package/dist/components/ui/misc/image-cropper.d.ts +9 -0
- package/dist/components/ui/misc/image-cropper.d.ts.map +1 -0
- package/dist/components/ui/misc/image-cropper.js +28 -0
- package/dist/components/ui/misc/rental-tile.d.ts +6 -0
- package/dist/components/ui/misc/rental-tile.d.ts.map +1 -0
- package/dist/components/ui/misc/rental-tile.js +56 -0
- package/dist/components/ui/misc/skeleton-extras.d.ts +32 -0
- package/dist/components/ui/misc/skeleton-extras.d.ts.map +1 -0
- package/dist/components/ui/misc/skeleton-extras.js +58 -0
- package/dist/components/ui/misc/tile.d.ts +4 -0
- package/dist/components/ui/misc/tile.d.ts.map +1 -0
- package/dist/components/ui/misc/tile.js +45 -0
- package/dist/components/ui/misc/whatsapp-help.d.ts +7 -0
- package/dist/components/ui/misc/whatsapp-help.d.ts.map +1 -0
- package/dist/components/ui/misc/whatsapp-help.js +6 -0
- package/dist/components/ui/motion.d.ts +14 -0
- package/dist/components/ui/motion.d.ts.map +1 -0
- package/dist/components/ui/motion.js +17 -0
- package/dist/components/ui/trippeaze/breadcrumb-trail.d.ts +10 -0
- package/dist/components/ui/trippeaze/breadcrumb-trail.d.ts.map +1 -0
- package/dist/components/ui/trippeaze/breadcrumb-trail.js +15 -0
- package/dist/components/ui/trippeaze/chip-tabs.d.ts +13 -0
- package/dist/components/ui/trippeaze/chip-tabs.d.ts.map +1 -0
- package/dist/components/ui/trippeaze/chip-tabs.js +6 -0
- package/dist/components/ui/trippeaze/page-shell.d.ts +22 -0
- package/dist/components/ui/trippeaze/page-shell.d.ts.map +1 -0
- package/dist/components/ui/trippeaze/page-shell.js +15 -0
- package/dist/components/ui/trippeaze/search-input.d.ts +5 -0
- package/dist/components/ui/trippeaze/search-input.d.ts.map +1 -0
- package/dist/components/ui/trippeaze/search-input.js +7 -0
- package/dist/components/user-dashboard/UserDashboardShellSidebar.d.ts +2 -0
- package/dist/components/user-dashboard/UserDashboardShellSidebar.d.ts.map +1 -0
- package/dist/components/user-dashboard/UserDashboardShellSidebar.js +17 -0
- package/dist/components/user-dashboard/UserSidebarNav.d.ts +2 -0
- package/dist/components/user-dashboard/UserSidebarNav.d.ts.map +1 -0
- package/dist/components/user-dashboard/UserSidebarNav.js +67 -0
- package/dist/dashboard/action-buttons.d.ts +2 -1
- package/dist/dashboard/action-buttons.d.ts.map +1 -1
- package/dist/dashboard/action-buttons.js +18 -11
- package/dist/dashboard/app-sidebar.d.ts.map +1 -1
- package/dist/dashboard/app-sidebar.js +3 -36
- package/dist/dashboard/dashboard-components.js +1 -1
- package/dist/dashboard/data-table.d.ts +5 -1
- package/dist/dashboard/data-table.d.ts.map +1 -1
- package/dist/dashboard/data-table.js +39 -7
- package/dist/dashboard/table.js +1 -1
- package/dist/header/mobile-nav-item.js +2 -2
- package/dist/header/mobile-navbar.d.ts.map +1 -1
- package/dist/header/mobile-navbar.js +10 -1
- package/dist/header/nav-item.js +2 -2
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/main/footer.d.ts +0 -1
- package/dist/main/footer.d.ts.map +1 -1
- package/dist/main/footer.js +0 -1
- package/dist/main/navbar.d.ts +2 -2
- package/dist/main/navbar.d.ts.map +1 -1
- package/dist/main/navbar.js +73 -44
- package/dist/main/portfolio/portfolioItem.d.ts +1 -1
- package/dist/main/portfolio/portfolioItem.d.ts.map +1 -1
- package/dist/main/portfolio/portfolioPopup.d.ts +1 -1
- package/dist/main/portfolio/portfolioPopup.d.ts.map +1 -1
- package/dist/main/review-page.d.ts +2 -1
- package/dist/main/review-page.d.ts.map +1 -1
- package/dist/main/review-page.js +34 -4
- package/dist/misc/accordion.js +1 -1
- package/dist/misc/alert-dialog.js +1 -1
- package/dist/misc/alert.js +1 -1
- package/dist/misc/alertdialogclaude.js +1 -1
- package/dist/misc/avatar.js +1 -1
- package/dist/misc/badge.js +1 -1
- package/dist/misc/button.d.ts +6 -3
- package/dist/misc/button.d.ts.map +1 -1
- package/dist/misc/button.js +33 -5
- package/dist/misc/card.js +1 -1
- package/dist/misc/carousel.d.ts +2 -2
- package/dist/misc/carousel.d.ts.map +1 -1
- package/dist/misc/carousel.js +13 -5
- package/dist/misc/checkbox.js +1 -1
- package/dist/misc/command.js +1 -1
- package/dist/misc/datepicker.d.ts +2 -1
- package/dist/misc/datepicker.d.ts.map +1 -1
- package/dist/misc/datepicker.js +23 -21
- package/dist/misc/dialog.js +1 -1
- package/dist/misc/discount-strategy-editor.d.ts +11 -0
- package/dist/misc/discount-strategy-editor.d.ts.map +1 -0
- package/dist/misc/discount-strategy-editor.js +82 -0
- package/dist/misc/dropdown-menu.js +1 -1
- package/dist/misc/faq.d.ts +1 -1
- package/dist/misc/faq.d.ts.map +1 -1
- package/dist/misc/filter.js +2 -2
- package/dist/misc/filterBar.d.ts +11 -3
- package/dist/misc/filterBar.d.ts.map +1 -1
- package/dist/misc/filterBar.js +109 -55
- package/dist/misc/form.js +1 -1
- package/dist/misc/input.d.ts +4 -1
- package/dist/misc/input.d.ts.map +1 -1
- package/dist/misc/input.js +8 -3
- package/dist/misc/label.js +1 -1
- package/dist/misc/listing-wishlist-button.d.ts +13 -0
- package/dist/misc/listing-wishlist-button.d.ts.map +1 -0
- package/dist/misc/listing-wishlist-button.js +42 -0
- package/dist/misc/location/locationPicker.js +1 -1
- package/dist/misc/location-autocomplete.d.ts +28 -0
- package/dist/misc/location-autocomplete.d.ts.map +1 -0
- package/dist/misc/location-autocomplete.js +121 -0
- package/dist/misc/notification.js +2 -2
- package/dist/misc/pagination.js +1 -1
- package/dist/misc/popover.js +1 -1
- package/dist/misc/pricing-strategy-editor.d.ts +17 -0
- package/dist/misc/pricing-strategy-editor.d.ts.map +1 -0
- package/dist/misc/pricing-strategy-editor.js +80 -0
- package/dist/misc/progress.js +1 -1
- package/dist/misc/pwa-install-button.d.ts.map +1 -1
- package/dist/misc/pwa-install-button.js +2 -0
- package/dist/misc/rental-tile.d.ts +1 -1
- package/dist/misc/rental-tile.d.ts.map +1 -1
- package/dist/misc/rental-tile.js +24 -14
- package/dist/misc/scroll-area.js +1 -1
- package/dist/misc/select.js +1 -1
- package/dist/misc/separator.js +1 -1
- package/dist/misc/sheet.js +1 -1
- package/dist/misc/sidebar.js +2 -2
- package/dist/misc/slider.js +1 -1
- package/dist/misc/stateCard.d.ts +1 -1
- package/dist/misc/stateCard.d.ts.map +1 -1
- package/dist/misc/stateCard.js +1 -1
- package/dist/misc/step-progress.d.ts +16 -0
- package/dist/misc/step-progress.d.ts.map +1 -0
- package/dist/misc/step-progress.js +40 -0
- package/dist/misc/switch.js +1 -1
- package/dist/misc/tabs.js +1 -1
- package/dist/misc/tag-filter-input.d.ts +16 -0
- package/dist/misc/tag-filter-input.d.ts.map +1 -0
- package/dist/misc/tag-filter-input.js +26 -0
- package/dist/misc/textarea.js +1 -1
- package/dist/misc/tile.d.ts +1 -1
- package/dist/misc/tile.d.ts.map +1 -1
- package/dist/misc/tile.js +12 -47
- package/dist/misc/time-select.d.ts +14 -0
- package/dist/misc/time-select.d.ts.map +1 -0
- package/dist/misc/time-select.js +13 -0
- package/dist/misc/tooltip.js +1 -1
- package/dist/misc/wizard-footer.d.ts +18 -0
- package/dist/misc/wizard-footer.d.ts.map +1 -0
- package/dist/misc/wizard-footer.js +11 -0
- package/package.json +9 -6
- package/dist/misc/dashboard/action-buttons.js +0 -31
- package/dist/misc/misc/alertdialogclaude.js +0 -221
- package/dist/misc/misc/button.js +0 -46
- package/dist/misc/misc/dropdown-menu.js +0 -136
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RentalReviewSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/RentalReviewSection.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,OAAO,EAEb,MAAM,uCAAuC,CAAC;AAE/C,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAaF,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,KAAK,EACL,OAAO,EACP,YAAY,EACZ,aAAa,GACd,EAAE,wBAAwB,2CAwG1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Card, CardContent, CardHeader, CardTitle } from "@myrjfa/ui/dist/misc/card";
|
|
4
|
+
import { Car, CreditCard, MapPin } from "lucide-react";
|
|
5
|
+
import ReviewConfirmationCard from "@myrjfa/ui/dist/components/create-flow/ReviewConfirmationCard";
|
|
6
|
+
import { calculatePricingStrategyUnitTotal, } from "@myrjfa/state/dist/lib/models/pricing";
|
|
7
|
+
const formatMoney = (value, currency = "INR") => new Intl.NumberFormat("en-IN", {
|
|
8
|
+
style: "currency",
|
|
9
|
+
currency,
|
|
10
|
+
maximumFractionDigits: 0,
|
|
11
|
+
}).format(Number(value) || 0);
|
|
12
|
+
function getStrategyLabel(strategy, index) {
|
|
13
|
+
var _a;
|
|
14
|
+
return ((_a = strategy.description) === null || _a === void 0 ? void 0 : _a.trim()) || `Pricing ${index + 1}`;
|
|
15
|
+
}
|
|
16
|
+
export default function RentalReviewSection({ title, pricing, vehicleModel, locationLabel, }) {
|
|
17
|
+
var _a;
|
|
18
|
+
const currency = pricing.currency || "INR";
|
|
19
|
+
const strategies = ((_a = pricing.pricingStrategies) === null || _a === void 0 ? void 0 : _a.length)
|
|
20
|
+
? pricing.pricingStrategies
|
|
21
|
+
: [];
|
|
22
|
+
return (_jsxs("div", { className: "space-y-6", children: [_jsx(Card, { className: "rounded-[2rem] border border-gray-100 bg-gray-50/70 shadow-sm", children: _jsx(CardContent, { className: "p-4 sm:p-6", children: _jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { children: [_jsx("p", { className: "text-xs font-black uppercase tracking-[0.2em] text-gray-400", children: "Vehicle Preview" }), _jsx("h3", { className: "mt-2 text-xl font-black text-gray-900 sm:text-2xl", children: vehicleModel || title || "Vehicle Rental" })] }), locationLabel && (_jsxs("div", { className: "inline-flex items-center gap-2 rounded-2xl border border-primary/10 bg-white px-4 py-3 text-sm font-bold text-gray-600 shadow-sm", children: [_jsx(MapPin, { className: "h-4 w-4 text-primary" }), locationLabel] }))] }) }) }), _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: "Earnings Breakdown" })] }) }), _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 at checkout and what the host collects for the vehicle base price." }), _jsx("div", { className: "space-y-4", children: strategies.map((strategy, index) => {
|
|
23
|
+
const guestPays = calculatePricingStrategyUnitTotal(strategy);
|
|
24
|
+
const hostCollects = Number(strategy.finalBasePrice || 0);
|
|
25
|
+
return (_jsxs("div", { className: "rounded-2xl border border-primary/10 bg-white p-4 shadow-sm sm:p-5", children: [_jsx("div", { className: "mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between", children: _jsxs("div", { className: "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(Car, { 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: "Host Collects" }), _jsx("p", { className: "mt-2 text-2xl font-black", children: formatMoney(hostCollects, currency) })] })] })] }, index));
|
|
26
|
+
}) })] })] }), _jsx(ReviewConfirmationCard, { title: "Final Confirmation", body: `I certify all details for "${title}" are accurate. The vehicle will be reviewed by the Trippeaze team before going live.`, className: "rounded-2xl border border-gray-100 bg-gray-50 p-4 text-xs font-bold italic leading-relaxed text-gray-600 sm:p-6" })] }));
|
|
27
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UseFormReturn } from "react-hook-form";
|
|
2
|
+
type RentalRulesSectionProps = {
|
|
3
|
+
form: UseFormReturn<any>;
|
|
4
|
+
};
|
|
5
|
+
export default function RentalRulesSection({ form }: RentalRulesSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=RentalRulesSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RentalRulesSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/RentalRulesSection.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAcrD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CA4L3E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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 { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@myrjfa/ui/dist/misc/select";
|
|
5
|
+
import { TimeSelect } from "@myrjfa/ui/dist/misc/time-select";
|
|
6
|
+
import { FormControl, FormDescription, FormField, FormItem, FormLabel, } from "@myrjfa/ui/dist/misc/form";
|
|
7
|
+
import { ShieldCheck } from "lucide-react";
|
|
8
|
+
export default function RentalRulesSection({ form }) {
|
|
9
|
+
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(ShieldCheck, { className: "h-6 w-6 text-primary" }), _jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Policies & Rules" })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "depositAmount", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Deposit Amount (INR)" }), _jsx(FormControl, { children: _jsx(Input, { type: "number", placeholder: "e.g., 1000", 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) || 0) }) }), _jsx(FormDescription, { children: "Security deposit at pickup." })] })) }), _jsx(FormField, { control: form.control, name: "fuelPolicy", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Fuel Policy" }), _jsxs(Select, { onValueChange: field.onChange, value: 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 fuel policy" }) }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "full-to-full", children: "Full to Full" }), _jsx(SelectItem, { value: "same-to-same", children: "Same to Same" }), _jsx(SelectItem, { value: "included", children: "Fuel Included" })] })] })] })) })] }), _jsx("div", { className: "grid grid-cols-1 gap-6 border-t border-gray-100 pt-6", children: _jsx(FormField, { control: form.control, name: "distanceLimit", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Distance Limit / KM Rules" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "e.g., 200 km/day, INR 5/km extra...", 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 }) })] })) }) }), _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "normalPickupTime", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Normal Pickup Time" }), _jsx(FormControl, { children: _jsx(TimeSelect, { value: field.value || "", onChange: field.onChange, placeholder: "Select pickup time" }) }), _jsx(FormDescription, { children: "Pickup before this time is charged as one extra rental day." })] })) }), _jsx(FormField, { control: form.control, name: "normalDropTime", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Normal Drop Time" }), _jsx(FormControl, { children: _jsx(TimeSelect, { value: field.value || "", onChange: field.onChange, placeholder: "Select drop time" }) }), _jsx(FormDescription, { children: "Drop after this time is charged as one extra rental day." })] })) })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "damagePolicy", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Damage Policy" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "e.g., Scratches under 1cm ignored", 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 }) })] })) }), _jsx(FormField, { control: form.control, name: "cancellationPolicy", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Cancellation Policy" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "e.g., Free cancellation 24h before.", 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 }) })] })) })] }), _jsx(FormField, { control: form.control, name: "instantBook", render: ({ field }) => (_jsxs(FormItem, { className: "mt-4 flex flex-row items-center justify-between rounded-[1.25rem] border-2 border-gray-100 bg-gray-50/30 p-6", children: [_jsxs("div", { className: "space-y-1 font-bold", children: [_jsx(FormLabel, { className: "text-base text-gray-900", children: "Instant Booking" }), _jsx(FormDescription, { className: "text-gray-500", children: "Allow users to book immediately without host approval." })] }), _jsx(FormControl, { children: _jsxs("label", { className: "relative inline-flex cursor-pointer items-center", children: [_jsx("input", { type: "checkbox", className: "peer sr-only", checked: field.value, onChange: field.onChange }), _jsx("div", { className: "peer h-7 w-14 rounded-full bg-gray-200 peer-checked:bg-primary peer-checked:after:translate-x-full peer-checked:after:border-white peer-focus:outline-none after:absolute after:left-[2px] after:top-[2px] after:h-6 after:w-6 after:rounded-full after:border after:border-gray-300 after:bg-white after:transition-all after:content-['']" })] }) })] })) })] }));
|
|
10
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UseFormReturn } from "react-hook-form";
|
|
2
|
+
type RentalSpecsSectionProps = {
|
|
3
|
+
form: UseFormReturn<any>;
|
|
4
|
+
};
|
|
5
|
+
export default function RentalSpecsSection({ form }: RentalSpecsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=RentalSpecsSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RentalSpecsSection.d.ts","sourceRoot":"","sources":["../../../src/components/form-sections/RentalSpecsSection.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAcrD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CAiI3E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
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 { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@myrjfa/ui/dist/misc/select";
|
|
5
|
+
import { Textarea } from "@myrjfa/ui/dist/misc/textarea";
|
|
6
|
+
import { FormControl, FormField, FormItem, FormLabel, } from "@myrjfa/ui/dist/misc/form";
|
|
7
|
+
import { Settings } from "lucide-react";
|
|
8
|
+
export default function RentalSpecsSection({ form }) {
|
|
9
|
+
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(Settings, { className: "h-6 w-6 text-primary" }), _jsx("h2", { className: "text-2xl font-bold text-gray-900", children: "Specifications" })] }), _jsx(FormField, { control: form.control, name: "description", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Detailed Description" }), _jsx(FormControl, { children: _jsx(Textarea, { placeholder: "Describe the vehicle's condition, unique features, included accessories (helmets, chargers, etc)...", className: "min-h-[160px] w-full resize-none rounded-[1.25rem] 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 focus:bg-white", ...field }) })] })) }), _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "seatingCapacity", render: ({ field }) => (_jsxs(FormItem, { className: "h-full", children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Seating Capacity" }), _jsx(FormControl, { children: _jsx(Input, { type: "number", 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(FormField, { control: form.control, name: "driverOption", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Driver Option" }), _jsxs(Select, { onValueChange: field.onChange, value: 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 driver rules" }) }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "self-drive", children: "Self Drive Only" }), _jsx(SelectItem, { value: "with-driver", children: "With Driver Only" }), _jsx(SelectItem, { value: "both", children: "Both Available" })] })] })] })) })] }), _jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [_jsx(FormField, { control: form.control, name: "fuelType", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Fuel/Power Type" }), _jsxs(Select, { onValueChange: field.onChange, value: 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 type" }) }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "petrol", children: "Petrol" }), _jsx(SelectItem, { value: "diesel", children: "Diesel" }), _jsx(SelectItem, { value: "electric", children: "Electric" }), _jsx(SelectItem, { value: "none", children: "Not Applicable" })] })] })] })) }), _jsx(FormField, { control: form.control, name: "transmission", render: ({ field }) => (_jsxs(FormItem, { children: [_jsx(FormLabel, { className: "text-[11px] font-bold uppercase tracking-[0.2em] text-gray-400", children: "Transmission" }), _jsxs(Select, { onValueChange: field.onChange, value: 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" }) }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "manual", children: "Manual" }), _jsx(SelectItem, { value: "automatic", children: "Automatic" }), _jsx(SelectItem, { value: "none", children: "Not Applicable" })] })] })] })) })] })] }));
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface HostCalendarProps {
|
|
2
|
+
blockedDates: Date[];
|
|
3
|
+
onToggleDate: (date: Date) => void;
|
|
4
|
+
isLoading?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function HostCalendar({ blockedDates, onToggleDate, isLoading, }: HostCalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=HostCalendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HostCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/host-dashboard/HostCalendar.tsx"],"names":[],"mappings":"AAoBA,UAAU,iBAAiB;IACzB,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE,iBAAiB,2CA4JnB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { ChevronLeft, ChevronRight, Lock, Unlock } from "lucide-react";
|
|
5
|
+
import { cn } from "@myrjfa/state/dist/lib/utils";
|
|
6
|
+
import { Button } from "@myrjfa/ui/dist/misc/button";
|
|
7
|
+
import { format, addMonths, subMonths, startOfMonth, endOfMonth, startOfWeek, endOfWeek, isSameMonth, isSameDay, addDays, isBefore, startOfToday, } from "date-fns";
|
|
8
|
+
export function HostCalendar({ blockedDates, onToggleDate, isLoading, }) {
|
|
9
|
+
const [currentMonth, setCurrentMonth] = useState(new Date());
|
|
10
|
+
const renderHeader = () => {
|
|
11
|
+
return (_jsxs("div", { className: "flex items-center justify-between mb-8", children: [_jsxs("div", { className: "flex flex-col", children: [_jsx("h2", { className: "text-2xl font-bold text-slate-900 tracking-tight", children: format(currentMonth, "MMMM yyyy") }), _jsx("p", { className: "text-sm text-slate-500 font-medium", children: "Manage availability for this listing" })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "outline", size: "icon", className: "rounded-xl border-slate-200", onClick: () => setCurrentMonth(subMonths(currentMonth, 1)), children: _jsx(ChevronLeft, { className: "w-5 h-5" }) }), _jsx(Button, { variant: "outline", size: "icon", className: "rounded-xl border-slate-200", onClick: () => setCurrentMonth(addMonths(currentMonth, 1)), children: _jsx(ChevronRight, { className: "w-5 h-5" }) })] })] }));
|
|
12
|
+
};
|
|
13
|
+
const renderDays = () => {
|
|
14
|
+
const days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
15
|
+
return (_jsx("div", { className: "grid grid-cols-7 mb-4", children: days.map((day, i) => (_jsx("div", { className: "text-center text-[10px] uppercase font-bold text-slate-400 tracking-widest", children: day }, i))) }));
|
|
16
|
+
};
|
|
17
|
+
const renderCells = () => {
|
|
18
|
+
const monthStart = startOfMonth(currentMonth);
|
|
19
|
+
const monthEnd = endOfMonth(monthStart);
|
|
20
|
+
const startDate = startOfWeek(monthStart);
|
|
21
|
+
const endDate = endOfWeek(monthEnd);
|
|
22
|
+
const rows = [];
|
|
23
|
+
let days = [];
|
|
24
|
+
let day = startDate;
|
|
25
|
+
let formattedDate = "";
|
|
26
|
+
while (day <= endDate) {
|
|
27
|
+
for (let i = 0; i < 7; i++) {
|
|
28
|
+
formattedDate = format(day, "d");
|
|
29
|
+
const cloneDay = day;
|
|
30
|
+
const isBlocked = blockedDates.some((d) => isSameDay(new Date(d), cloneDay));
|
|
31
|
+
const isDisabled = !isSameMonth(day, monthStart) || isBefore(day, startOfToday());
|
|
32
|
+
days.push(_jsxs("button", { disabled: isDisabled || isLoading, className: cn("relative h-24 border border-slate-50 p-2 transition-all flex flex-col group", !isSameMonth(day, monthStart)
|
|
33
|
+
? "bg-slate-50/30 opacity-30"
|
|
34
|
+
: "bg-white", isBlocked ? "bg-rose-50" : "hover:bg-slate-50", isSameDay(day, new Date()) && "ring-2 ring-primary ring-inset"), onClick: () => onToggleDate(cloneDay), children: [_jsx("span", { className: cn("text-sm font-bold", isBlocked ? "text-rose-600" : "text-slate-900", isDisabled && "text-slate-300"), children: formattedDate }), _jsx("div", { className: "mt-auto flex justify-center", children: isBlocked ? (_jsxs("div", { className: "flex items-center gap-1.5 bg-rose-100 text-rose-700 px-2 py-1 rounded-lg text-[10px] font-bold uppercase tracking-tighter shadow-sm animate-in zoom-in duration-200", children: [_jsx(Lock, { className: "w-3 h-3" }), " Blocked"] })) : (!isDisabled && (_jsxs("div", { className: "opacity-0 group-hover:opacity-100 flex items-center gap-1.5 bg-slate-100 text-slate-600 px-2 py-1 rounded-lg text-[10px] font-bold uppercase tracking-tighter transition-all", children: [_jsx(Unlock, { className: "w-3 h-3" }), " Open"] }))) })] }, day.toString()));
|
|
35
|
+
day = addDays(day, 1);
|
|
36
|
+
}
|
|
37
|
+
rows.push(_jsx("div", { className: "grid grid-cols-7", children: days }, day.toString()));
|
|
38
|
+
days = [];
|
|
39
|
+
}
|
|
40
|
+
return (_jsx("div", { className: "rounded-[2rem] overflow-hidden border border-slate-100 shadow-sm", children: rows }));
|
|
41
|
+
};
|
|
42
|
+
return (_jsxs("div", { className: "p-4 md:p-8 bg-white/50 backdrop-blur-sm rounded-[2.5rem] border border-slate-100 shadow-lg", children: [renderHeader(), renderDays(), renderCells(), _jsxs("div", { className: "mt-8 flex items-center gap-6 p-4 bg-slate-100/50 rounded-2xl border border-slate-100", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "w-4 h-4 rounded bg-white border border-slate-200" }), _jsx("span", { className: "text-xs font-bold text-slate-500 uppercase", children: "Available" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "w-4 h-4 rounded bg-rose-100 border border-rose-200" }), _jsx("span", { className: "text-xs font-bold text-slate-500 uppercase", children: "Blocked" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("div", { className: "w-4 h-4 rounded bg-primary" }), _jsx("span", { className: "text-xs font-bold text-slate-500 uppercase", children: "Today" })] })] })] }));
|
|
43
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
type CellContext<T> = {
|
|
3
|
+
item: T;
|
|
4
|
+
day: Date;
|
|
5
|
+
key: string;
|
|
6
|
+
isPast: boolean;
|
|
7
|
+
isSelected: boolean;
|
|
8
|
+
};
|
|
9
|
+
type HostCalendarGridProps<T> = {
|
|
10
|
+
items: T[];
|
|
11
|
+
days: Date[];
|
|
12
|
+
startDate: Date;
|
|
13
|
+
setStartDate: (date: Date) => void;
|
|
14
|
+
todayKey: string;
|
|
15
|
+
emptyMessage: string;
|
|
16
|
+
selected: {
|
|
17
|
+
item: T;
|
|
18
|
+
date: Date;
|
|
19
|
+
} | null;
|
|
20
|
+
selectedItemIds: string[];
|
|
21
|
+
effectiveRangeEnd: Date;
|
|
22
|
+
getItemId: (item: T) => string;
|
|
23
|
+
getItemTitle: (item: T) => ReactNode;
|
|
24
|
+
getItemSubtitle: (item: T) => ReactNode;
|
|
25
|
+
getItemImage: (item: T) => string;
|
|
26
|
+
getItemHref?: (item: T) => string;
|
|
27
|
+
onItemClick?: (item: T) => void;
|
|
28
|
+
getCellHandlers: (item: T, day: Date) => Record<string, unknown>;
|
|
29
|
+
getCellClassName?: (ctx: CellContext<T>) => string;
|
|
30
|
+
renderCell: (ctx: CellContext<T>) => ReactNode;
|
|
31
|
+
};
|
|
32
|
+
export declare function HostCalendarGrid<T>({ items, days, startDate, setStartDate, todayKey, emptyMessage, selected, selectedItemIds, effectiveRangeEnd, getItemId, getItemTitle, getItemSubtitle, getItemImage, getItemHref, onItemClick, getCellHandlers, getCellClassName, renderCell, }: HostCalendarGridProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=HostCalendarGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HostCalendarGrid.d.ts","sourceRoot":"","sources":["../../../src/components/host-dashboard/HostCalendarGrid.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,qBAAqB,CAAC,CAAC,IAAI;IAC9B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACzC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,IAAI,CAAC;IACxB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACrC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC;IACxC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjE,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;IACnD,UAAU,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;CAChD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,EAClC,KAAK,EACL,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,UAAU,GACX,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CA6F1B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { addDays, format } from "date-fns";
|
|
4
|
+
import { ChevronLeft, ChevronRight } from "lucide-react";
|
|
5
|
+
import Link from "next/link";
|
|
6
|
+
import { dateKey, isDateInRange, isPastDate } from "@myrjfa/state/dist/lib/hooks/useHostCalendarSelection";
|
|
7
|
+
import { Button } from "../../misc/button";
|
|
8
|
+
export function HostCalendarGrid({ items, days, startDate, setStartDate, todayKey, emptyMessage, selected, selectedItemIds, effectiveRangeEnd, getItemId, getItemTitle, getItemSubtitle, getItemImage, getItemHref, onItemClick, getCellHandlers, getCellClassName, renderCell, }) {
|
|
9
|
+
const renderRowHeader = (item) => {
|
|
10
|
+
const content = (_jsxs(_Fragment, { children: [_jsx("img", { src: getItemImage(item), alt: "", className: "h-12 w-12 rounded-xl object-cover" }), _jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "truncate text-sm font-black text-slate-950", children: getItemTitle(item) }), _jsx("p", { className: "text-xs font-semibold text-slate-500", children: getItemSubtitle(item) })] })] }));
|
|
11
|
+
const className = "flex items-center gap-3 border-r border-slate-200 p-3 text-left hover:bg-slate-50";
|
|
12
|
+
const href = getItemHref === null || getItemHref === void 0 ? void 0 : getItemHref(item);
|
|
13
|
+
if (href) {
|
|
14
|
+
return _jsx(Link, { href: href, className: className, children: content });
|
|
15
|
+
}
|
|
16
|
+
return (_jsx("button", { type: "button", className: className, onClick: () => onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item), children: content }));
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { className: "overflow-auto", children: [_jsxs("div", { className: "sticky top-0 z-10 grid min-w-[980px] grid-cols-[280px_repeat(14,120px)] border-b border-slate-200 bg-white", children: [_jsxs("div", { className: "border-r border-slate-200 p-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { variant: "outline", size: "icon", className: "h-9 w-9 rounded-xl", onClick: () => setStartDate(addDays(startDate, -14)), children: _jsx(ChevronLeft, { className: "h-4 w-4" }) }), _jsx(Button, { variant: "outline", className: "h-9 rounded-xl", onClick: () => setStartDate(new Date()), children: "Today" }), _jsx(Button, { variant: "outline", size: "icon", className: "h-9 w-9 rounded-xl", onClick: () => setStartDate(addDays(startDate, 14)), children: _jsx(ChevronRight, { className: "h-4 w-4" }) })] }), _jsxs("p", { className: "mt-2 text-xs font-black uppercase tracking-[0.14em] text-slate-400", children: [format(days[0], "MMM yyyy"), format(days[0], "MMM yyyy") !== format(days[days.length - 1], "MMM yyyy")
|
|
19
|
+
? ` - ${format(days[days.length - 1], "MMM yyyy")}`
|
|
20
|
+
: ""] })] }), days.map((day) => (_jsxs("div", { className: "border-r border-slate-100 p-3 text-center", children: [_jsx("p", { className: "text-[10px] font-black uppercase tracking-wider text-slate-400", children: format(day, "EEE") }), _jsx("p", { className: `mx-auto mt-1 flex h-8 w-8 items-center justify-center rounded-xl text-sm font-black ${dateKey(day) === todayKey ? "bg-slate-950 text-white" : "text-slate-800"}`, children: format(day, "d") })] }, day.toISOString())))] }), _jsx("div", { className: "min-w-[980px]", children: items.length === 0 ? (_jsx("div", { className: "p-10 text-center text-sm font-semibold text-slate-500", children: emptyMessage })) : items.map((item) => (_jsxs("div", { className: "grid grid-cols-[280px_repeat(14,120px)] border-b border-slate-100", children: [renderRowHeader(item), days.map((day) => {
|
|
21
|
+
const key = dateKey(day);
|
|
22
|
+
const isPast = isPastDate(day);
|
|
23
|
+
const isSelected = Boolean(selected &&
|
|
24
|
+
!isPast &&
|
|
25
|
+
selectedItemIds.includes(getItemId(item)) &&
|
|
26
|
+
isDateInRange(day, selected.date, effectiveRangeEnd));
|
|
27
|
+
const ctx = { item, day, key, isPast, isSelected };
|
|
28
|
+
return (_jsx("button", { type: "button", disabled: isPast, title: isPast ? "Past dates are view-only." : undefined, ...getCellHandlers(item, day), className: `min-h-[86px] border-r border-slate-100 p-3 text-left transition ${isPast ? "cursor-not-allowed bg-slate-100/80 text-slate-400 opacity-70 hover:bg-slate-100/80" : "hover:bg-primary/5"} ${isSelected ? "ring-2 ring-inset ring-primary" : ""} ${(getCellClassName === null || getCellClassName === void 0 ? void 0 : getCellClassName(ctx)) || ""}`, children: renderCell(ctx) }, `${getItemId(item)}-${key}`));
|
|
29
|
+
})] }, getItemId(item)))) })] }));
|
|
30
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type HostListingMultiSelectProps<T> = {
|
|
2
|
+
label?: string;
|
|
3
|
+
items: T[];
|
|
4
|
+
selectedIds: string[];
|
|
5
|
+
getItemId: (item: T) => string;
|
|
6
|
+
getItemTitle: (item: T) => string;
|
|
7
|
+
getItemSubtitle?: (item: T) => string;
|
|
8
|
+
onChange: (ids: string[]) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare function HostListingMultiSelect<T>({ label, items, selectedIds, getItemId, getItemTitle, getItemSubtitle, onChange, }: HostListingMultiSelectProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=HostListingMultiSelect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HostListingMultiSelect.d.ts","sourceRoot":"","sources":["../../../src/components/host-dashboard/HostListingMultiSelect.tsx"],"names":[],"mappings":"AAaA,KAAK,2BAA2B,CAAC,CAAC,IAAI;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC/B,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,EACxC,KAA4B,EAC5B,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,eAAe,EACf,QAAQ,GACT,EAAE,2BAA2B,CAAC,CAAC,CAAC,2CAiEhC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ChevronDown } from "lucide-react";
|
|
4
|
+
import { Button } from "../../misc/button";
|
|
5
|
+
import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "../../misc/dropdown-menu";
|
|
6
|
+
export function HostListingMultiSelect({ label = "Listings to update", items, selectedIds, getItemId, getItemTitle, getItemSubtitle, onChange, }) {
|
|
7
|
+
const selectedSet = new Set(selectedIds);
|
|
8
|
+
const selectedCount = selectedIds.length;
|
|
9
|
+
const selectedSingleItem = items.find((item) => getItemId(item) === selectedIds[0]);
|
|
10
|
+
const toggleItem = (id, checked) => {
|
|
11
|
+
const next = checked
|
|
12
|
+
? Array.from(new Set([...selectedIds, id]))
|
|
13
|
+
: selectedIds.filter((selectedId) => selectedId !== id);
|
|
14
|
+
if (next.length === 0)
|
|
15
|
+
return;
|
|
16
|
+
onChange(next);
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { children: [_jsx("p", { className: "mb-2 text-[10px] font-black uppercase tracking-[0.16em] text-slate-400", children: label }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { type: "button", variant: "outline", className: "h-auto min-h-12 w-full justify-between rounded-xl border-slate-200 px-4 py-3 text-left font-bold text-slate-800", children: [_jsx("span", { className: "min-w-0 truncate", children: selectedCount === 1
|
|
19
|
+
? selectedSingleItem ? getItemTitle(selectedSingleItem) : "1 selected listing"
|
|
20
|
+
: `${selectedCount} selected listings` }), _jsx(ChevronDown, { className: "h-4 w-4 shrink-0 text-slate-400" })] }) }), _jsxs(DropdownMenuContent, { align: "start", className: "max-h-72 w-[var(--radix-dropdown-menu-trigger-width)] overflow-auto rounded-xl border-slate-200 p-2", children: [_jsx(DropdownMenuLabel, { className: "px-2 text-[10px] font-black uppercase tracking-[0.16em] text-slate-400", children: "Select listings" }), _jsx(DropdownMenuSeparator, {}), items.map((item) => {
|
|
21
|
+
const id = getItemId(item);
|
|
22
|
+
return (_jsx(DropdownMenuCheckboxItem, { checked: selectedSet.has(id), onSelect: (event) => event.preventDefault(), onCheckedChange: (checked) => toggleItem(id, checked === true), className: "rounded-lg py-2", children: _jsxs("span", { className: "min-w-0", children: [_jsx("span", { className: "block truncate text-sm font-bold text-slate-900", children: getItemTitle(item) }), getItemSubtitle ? (_jsx("span", { className: "block truncate text-xs font-semibold text-slate-500", children: getItemSubtitle(item) })) : null] }) }, id));
|
|
23
|
+
})] })] })] }));
|
|
24
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
type StatCard = {
|
|
3
|
+
label: string;
|
|
4
|
+
value: ReactNode;
|
|
5
|
+
helper: string;
|
|
6
|
+
};
|
|
7
|
+
type HostManageCalendarShellProps = {
|
|
8
|
+
title: string;
|
|
9
|
+
subtitle: string;
|
|
10
|
+
actions: ReactNode;
|
|
11
|
+
stats: StatCard[];
|
|
12
|
+
calendar: ReactNode;
|
|
13
|
+
sidebar: ReactNode;
|
|
14
|
+
};
|
|
15
|
+
export declare function HostManageCalendarShell({ title, subtitle, actions, stats, calendar, sidebar, }: HostManageCalendarShellProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=HostManageCalendarShell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HostManageCalendarShell.d.ts","sourceRoot":"","sources":["../../../src/components/host-dashboard/HostManageCalendarShell.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE,4BAA4B,2CA8B9B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
export function HostManageCalendarShell({ title, subtitle, actions, stats, calendar, sidebar, }) {
|
|
4
|
+
return (_jsxs("div", { className: "flex min-h-[calc(100vh-96px)] w-full flex-col space-y-5 pb-8", children: [_jsxs("div", { className: "flex flex-col gap-4 rounded-[2rem] border border-slate-100 bg-white p-5 shadow-sm md:flex-row md:items-center md:justify-between", children: [_jsxs("div", { children: [_jsx("p", { className: "text-[10px] font-black uppercase tracking-[0.2em] text-slate-400", children: "Host Calendar" }), _jsx("h1", { className: "text-3xl font-black tracking-tight text-slate-950", children: title }), _jsx("p", { className: "text-sm font-semibold text-slate-500", children: subtitle })] }), _jsx("div", { className: "grid w-full grid-cols-1 gap-2 sm:grid-cols-2 md:w-auto md:flex md:flex-wrap", children: actions })] }), _jsx("div", { className: "grid gap-4 md:grid-cols-3", children: stats.map((stat) => (_jsxs("div", { className: "rounded-[1.5rem] border border-slate-100 bg-white p-5", children: [_jsx("p", { className: "text-[10px] font-black uppercase tracking-[0.18em] text-slate-400", children: stat.label }), _jsx("p", { className: "mt-2 text-3xl font-black text-slate-950", children: stat.value }), _jsx("p", { className: "text-sm font-semibold text-slate-500", children: stat.helper })] }, stat.label))) }), _jsxs("div", { className: "grid min-h-[660px] flex-1 overflow-hidden rounded-[2rem] border border-slate-200 bg-white shadow-xl lg:grid-cols-[minmax(0,1fr)_360px]", children: [calendar, _jsx("aside", { className: "border-l border-slate-200 bg-slate-50/60 p-5", children: sidebar })] })] }));
|
|
5
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HostSidebarNavigation.d.ts","sourceRoot":"","sources":["../../../src/components/host-dashboard/HostSidebarNavigation.tsx"],"names":[],"mappings":"AAoGA,wBAAgB,qBAAqB,4CA+bpC"}
|