@xploreu/components 0.4.45 → 0.4.47
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/chunk-7EXEQDMX.js +2 -0
- package/dist/chunk-7EXEQDMX.js.map +1 -0
- package/dist/{chunk-KUOFW7JO.js → chunk-B5LYJTBB.js} +2 -2
- package/dist/{chunk-KUOFW7JO.js.map → chunk-B5LYJTBB.js.map} +1 -1
- package/dist/chunk-DQGZIFNP.js +2 -0
- package/dist/chunk-DQGZIFNP.js.map +1 -0
- package/dist/{chunk-F77XVICY.js → chunk-FIDOWSDH.js} +2 -2
- package/dist/{chunk-F77XVICY.js.map → chunk-FIDOWSDH.js.map} +1 -1
- package/dist/chunk-I7XV55MM.js +2 -0
- package/dist/chunk-I7XV55MM.js.map +1 -0
- package/dist/{chunk-5VZ6QNBI.js → chunk-IFBRARGK.js} +2 -2
- package/dist/{chunk-5VZ6QNBI.js.map → chunk-IFBRARGK.js.map} +1 -1
- package/dist/{chunk-NFLQZ5NB.js → chunk-NBM4LIT4.js} +2 -2
- package/dist/{chunk-NFLQZ5NB.js.map → chunk-NBM4LIT4.js.map} +1 -1
- package/dist/{chunk-ZK7MHZFG.js → chunk-OBS7TDVV.js} +2 -2
- package/dist/{chunk-ZK7MHZFG.js.map → chunk-OBS7TDVV.js.map} +1 -1
- package/dist/{chunk-C675EWZW.js → chunk-QIP6KFG2.js} +2 -2
- package/dist/{chunk-C675EWZW.js.map → chunk-QIP6KFG2.js.map} +1 -1
- package/dist/{chunk-YPV6XEV4.js → chunk-S4L5WILL.js} +2 -2
- package/dist/{chunk-YPV6XEV4.js.map → chunk-S4L5WILL.js.map} +1 -1
- package/dist/{chunk-XIZN73T3.js → chunk-YHY3VXCO.js} +2 -2
- package/dist/{chunk-XIZN73T3.js.map → chunk-YHY3VXCO.js.map} +1 -1
- package/dist/composites/combobox-chip-outside.js +1 -1
- package/dist/composites/index.js +1 -1
- package/dist/composites/phone-input.js +1 -1
- package/dist/ui/alert-dialog.js +1 -1
- package/dist/ui/alerter.js +1 -1
- package/dist/ui/button.js +1 -1
- package/dist/ui/calendar.js +1 -1
- package/dist/ui/carousel.js +1 -1
- package/dist/ui/date-multiple-picker.js +1 -1
- package/dist/ui/date-picker.js +1 -1
- package/dist/ui/date-range-picker.js +1 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/tabs.js +1 -1
- package/dist/ui/toast.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-G4DP36RY.js +0 -2
- package/dist/chunk-G4DP36RY.js.map +0 -1
- package/dist/chunk-UINS73U7.js +0 -2
- package/dist/chunk-UINS73U7.js.map +0 -1
- package/dist/chunk-XZN4XT6V.js +0 -2
- package/dist/chunk-XZN4XT6V.js.map +0 -1
- package/dist/composites/combobox-chip-outside.d.ts +0 -44
- package/dist/composites/combobox-chip.d.ts +0 -47
- package/dist/composites/combobox-simple.d.ts +0 -37
- package/dist/composites/filter-combobox.d.ts +0 -36
- package/dist/composites/index.d.ts +0 -50
- package/dist/composites/phone-input.d.ts +0 -9
- package/dist/composites/profile-avatar.d.ts +0 -29
- package/dist/effects/auto-height.d.ts +0 -13
- package/dist/effects/highlight.d.ts +0 -93
- package/dist/effects/index.d.ts +0 -5
- package/dist/form/form-input.d.ts +0 -19
- package/dist/form/form-textarea.d.ts +0 -18
- package/dist/form/form.d.ts +0 -44
- package/dist/form/index.d.ts +0 -12
- package/dist/icons/about-me-icon.d.ts +0 -6
- package/dist/icons/academic-cap-dual-tone-icon.d.ts +0 -6
- package/dist/icons/academic-cap-icon.d.ts +0 -6
- package/dist/icons/activity-on-tab-profile-icon.d.ts +0 -6
- package/dist/icons/add-connect-icon.d.ts +0 -6
- package/dist/icons/alert-jobs-icon.d.ts +0 -6
- package/dist/icons/applicants-icon.d.ts +0 -6
- package/dist/icons/application-status-icon.d.ts +0 -6
- package/dist/icons/archive-message-icon.d.ts +0 -6
- package/dist/icons/arrow-go-to-location-icon.d.ts +0 -6
- package/dist/icons/bag-icon.d.ts +0 -6
- package/dist/icons/bag2-icon.d.ts +0 -6
- package/dist/icons/bag3-icon.d.ts +0 -6
- package/dist/icons/bell-icon.d.ts +0 -6
- package/dist/icons/birthday-date-icon.d.ts +0 -6
- package/dist/icons/book-dual-tone-icon.d.ts +0 -6
- package/dist/icons/book-open.d.ts +0 -6
- package/dist/icons/bookmark-filled-icon.d.ts +0 -6
- package/dist/icons/bookmark-icon.d.ts +0 -6
- package/dist/icons/brief-dual-tone-icon.d.ts +0 -6
- package/dist/icons/brief-minimalistic-dual-tone-icon.d.ts +0 -6
- package/dist/icons/brief-minimalistic-icon.d.ts +0 -6
- package/dist/icons/building-dual-tone-icon.d.ts +0 -6
- package/dist/icons/building-icon.d.ts +0 -6
- package/dist/icons/building-infrastructure-icon.d.ts +0 -6
- package/dist/icons/calendar-icon.d.ts +0 -6
- package/dist/icons/case-icon.d.ts +0 -6
- package/dist/icons/certificate-icon.d.ts +0 -6
- package/dist/icons/certificate-on-profile-icon.d.ts +0 -6
- package/dist/icons/chart-square-icon.d.ts +0 -6
- package/dist/icons/chat-round-dots-icon.d.ts +0 -6
- package/dist/icons/check-square-icon.d.ts +0 -6
- package/dist/icons/checkbox-base-icon.d.ts +0 -6
- package/dist/icons/checkbox-new-icon.d.ts +0 -6
- package/dist/icons/checkbox-select-icon.d.ts +0 -6
- package/dist/icons/checklist-icon.d.ts +0 -6
- package/dist/icons/checklist-minimalist-icon.d.ts +0 -6
- package/dist/icons/circle-quarter-icon.d.ts +0 -6
- package/dist/icons/city-icon.d.ts +0 -6
- package/dist/icons/clear-icon.d.ts +0 -6
- package/dist/icons/clipboard-icon.d.ts +0 -6
- package/dist/icons/clock-min.d.ts +0 -6
- package/dist/icons/clock-plus.d.ts +0 -6
- package/dist/icons/close-square-icon.d.ts +0 -6
- package/dist/icons/cloud-upload-icon.d.ts +0 -6
- package/dist/icons/comment-icon.d.ts +0 -6
- package/dist/icons/company-industry-icon.d.ts +0 -6
- package/dist/icons/company-on-job-description-icon.d.ts +0 -6
- package/dist/icons/company-on-job-preferences-icon.d.ts +0 -6
- package/dist/icons/company-post-icon.d.ts +0 -6
- package/dist/icons/connection-company-icon.d.ts +0 -6
- package/dist/icons/connections-icon.d.ts +0 -6
- package/dist/icons/contact-on-settings-icon.d.ts +0 -6
- package/dist/icons/copy-icon.d.ts +0 -6
- package/dist/icons/course-icon-search-icon.d.ts +0 -6
- package/dist/icons/create-free-jobs-with-ai-icon.d.ts +0 -6
- package/dist/icons/create-group-message-icon.d.ts +0 -6
- package/dist/icons/create-job-icon.d.ts +0 -6
- package/dist/icons/danger-triangle-icon.d.ts +0 -6
- package/dist/icons/delete-icon.d.ts +0 -6
- package/dist/icons/document-add-icon.d.ts +0 -6
- package/dist/icons/document-notes-icon.d.ts +0 -6
- package/dist/icons/dots-icon.d.ts +0 -6
- package/dist/icons/download-cv-icon.d.ts +0 -6
- package/dist/icons/download-minimalistic-icon.d.ts +0 -6
- package/dist/icons/drive-db.d.ts +0 -6
- package/dist/icons/duration-of-work-icon.d.ts +0 -6
- package/dist/icons/duration-open-to-offer-icon.d.ts +0 -6
- package/dist/icons/edit-icon.d.ts +0 -6
- package/dist/icons/edit-on-button-profile-icon.d.ts +0 -6
- package/dist/icons/edit-on-section-profile-icon.d.ts +0 -6
- package/dist/icons/education-icon.d.ts +0 -6
- package/dist/icons/education-on-card-icon.d.ts +0 -6
- package/dist/icons/employment-type-on-job-preferences-icon.d.ts +0 -6
- package/dist/icons/evaluation-icon.d.ts +0 -6
- package/dist/icons/expected-salary-on-job-preferences-icon.d.ts +0 -6
- package/dist/icons/experience-icon.d.ts +0 -6
- package/dist/icons/female-on-summary-profile-icon.d.ts +0 -6
- package/dist/icons/file-default-icon.d.ts +0 -6
- package/dist/icons/file-doc-icon.d.ts +0 -6
- package/dist/icons/file-docx-icon.d.ts +0 -6
- package/dist/icons/file-jpg-icon.d.ts +0 -6
- package/dist/icons/file-mkv-icon.d.ts +0 -6
- package/dist/icons/file-mov-icon.d.ts +0 -6
- package/dist/icons/file-mp4-icon.d.ts +0 -6
- package/dist/icons/file-pdf-icon.d.ts +0 -6
- package/dist/icons/file-png-icon.d.ts +0 -6
- package/dist/icons/file-ppt-icon.d.ts +0 -6
- package/dist/icons/file-text-icon.d.ts +0 -6
- package/dist/icons/file-video-icon.d.ts +0 -6
- package/dist/icons/fire-icon.d.ts +0 -6
- package/dist/icons/flag-icon.d.ts +0 -6
- package/dist/icons/folder-icon.d.ts +0 -6
- package/dist/icons/followers-on-connections-icon.d.ts +0 -6
- package/dist/icons/following-on-connections-icon.d.ts +0 -6
- package/dist/icons/forward-icon.d.ts +0 -6
- package/dist/icons/funnel-icon.d.ts +0 -6
- package/dist/icons/gallery-add-icon.d.ts +0 -6
- package/dist/icons/gallery-favorite-icon.d.ts +0 -6
- package/dist/icons/gallery-icon.d.ts +0 -6
- package/dist/icons/general-preference-on-settings-icon.d.ts +0 -6
- package/dist/icons/globe-dual-tone-icon.d.ts +0 -6
- package/dist/icons/hand-stars-icon.d.ts +0 -6
- package/dist/icons/hard-skill-on-profile-icon.d.ts +0 -6
- package/dist/icons/help-icon.d.ts +0 -6
- package/dist/icons/hidden-icon.d.ts +0 -6
- package/dist/icons/hide-passwords-icon.d.ts +0 -6
- package/dist/icons/hired-by-others-icon.d.ts +0 -6
- package/dist/icons/home-icon.d.ts +0 -6
- package/dist/icons/home-smile-icon.d.ts +0 -6
- package/dist/icons/home-table.d.ts +0 -6
- package/dist/icons/icon-component.d.ts +0 -6
- package/dist/icons/image-on-message-icon.d.ts +0 -6
- package/dist/icons/index.d.ts +0 -282
- package/dist/icons/info-icon.d.ts +0 -6
- package/dist/icons/info-square-icon.d.ts +0 -6
- package/dist/icons/interested-of-industry-icon.d.ts +0 -6
- package/dist/icons/invitations-on-connections-icon.d.ts +0 -6
- package/dist/icons/job-description-icon.d.ts +0 -6
- package/dist/icons/job-preference-icon.d.ts +0 -6
- package/dist/icons/jobs-category-icon.d.ts +0 -6
- package/dist/icons/jobseeker-status-on-job-preferences-icon.d.ts +0 -6
- package/dist/icons/key-icon.d.ts +0 -6
- package/dist/icons/language-on-profile-icon.d.ts +0 -6
- package/dist/icons/layers-icon.d.ts +0 -6
- package/dist/icons/layout-icon.d.ts +0 -6
- package/dist/icons/like-filled-icon.d.ts +0 -6
- package/dist/icons/like-icon.d.ts +0 -6
- package/dist/icons/link-copy.d.ts +0 -6
- package/dist/icons/list-icon.d.ts +0 -6
- package/dist/icons/list-option-feedback-icon.d.ts +0 -6
- package/dist/icons/living-on-summary-profile-icon.d.ts +0 -6
- package/dist/icons/location-company-on-card-icon.d.ts +0 -6
- package/dist/icons/location-on-search-icon.d.ts +0 -6
- package/dist/icons/lock-icon.d.ts +0 -6
- package/dist/icons/logo-icon.d.ts +0 -6
- package/dist/icons/logout-icon.d.ts +0 -6
- package/dist/icons/lonceng-z-icon.d.ts +0 -6
- package/dist/icons/mail-icon.d.ts +0 -6
- package/dist/icons/mailbox-icon.d.ts +0 -6
- package/dist/icons/male-on-summary-profile-icon.d.ts +0 -6
- package/dist/icons/map-cluster-marker-icon.d.ts +0 -6
- package/dist/icons/map-marker-icon.d.ts +0 -6
- package/dist/icons/map-pin-icon.d.ts +0 -6
- package/dist/icons/map-pin-icon2.d.ts +0 -6
- package/dist/icons/map-pin2-icon.d.ts +0 -6
- package/dist/icons/mark-as-read-icon.d.ts +0 -6
- package/dist/icons/media-icon.d.ts +0 -6
- package/dist/icons/message-on-card-icon.d.ts +0 -6
- package/dist/icons/messages-icon.d.ts +0 -6
- package/dist/icons/mic-record-icon.d.ts +0 -6
- package/dist/icons/mini-sidebar-icon.d.ts +0 -6
- package/dist/icons/money-bill-icon.d.ts +0 -6
- package/dist/icons/mute-message-icon.d.ts +0 -6
- package/dist/icons/my-connecions-icon.d.ts +0 -6
- package/dist/icons/my-connections-on-tab-profile-icon.d.ts +0 -6
- package/dist/icons/my-cover-letter-icon.d.ts +0 -6
- package/dist/icons/my-dashboard-icon.d.ts +0 -6
- package/dist/icons/my-dashboards-icon.d.ts +0 -6
- package/dist/icons/my-drive-icon.d.ts +0 -6
- package/dist/icons/my-portofolio-icon.d.ts +0 -6
- package/dist/icons/my-resume-icon.d.ts +0 -6
- package/dist/icons/new-message-icon.d.ts +0 -6
- package/dist/icons/new-post-icon.d.ts +0 -6
- package/dist/icons/news-icon.d.ts +0 -6
- package/dist/icons/notification-icon.d.ts +0 -6
- package/dist/icons/notification-on-settings-icon.d.ts +0 -6
- package/dist/icons/offered-by-others-icon.d.ts +0 -6
- package/dist/icons/office-open-to-offer-icon.d.ts +0 -6
- package/dist/icons/office-opent-to-offer-section-icon.d.ts +0 -6
- package/dist/icons/open-another-page-icon.d.ts +0 -6
- package/dist/icons/open-preview-my-profile-icon.d.ts +0 -6
- package/dist/icons/open-to-offer-section-icon.d.ts +0 -6
- package/dist/icons/open-to-opportunities-icon.d.ts +0 -6
- package/dist/icons/other-job-for-you-icon.d.ts +0 -6
- package/dist/icons/other-job-from-this-company-icon.d.ts +0 -6
- package/dist/icons/passwords-icon.d.ts +0 -6
- package/dist/icons/pdf-on-apply-job-icon.d.ts +0 -6
- package/dist/icons/pen-new-square-icon.d.ts +0 -6
- package/dist/icons/people-you-may-know-icon.d.ts +0 -6
- package/dist/icons/people-your-company-icon.d.ts +0 -6
- package/dist/icons/phone-dual-tone-icon.d.ts +0 -6
- package/dist/icons/phone-icon.d.ts +0 -6
- package/dist/icons/pin-location-new-icon.d.ts +0 -6
- package/dist/icons/pin-message-icon.d.ts +0 -6
- package/dist/icons/plain-icon.d.ts +0 -6
- package/dist/icons/plus-square-icon.d.ts +0 -6
- package/dist/icons/posts-icon-search-icon.d.ts +0 -6
- package/dist/icons/priority-by-icon.d.ts +0 -6
- package/dist/icons/private-post-icon.d.ts +0 -6
- package/dist/icons/profile-icon.d.ts +0 -6
- package/dist/icons/public-post-icon.d.ts +0 -6
- package/dist/icons/public-post-on-card-icon.d.ts +0 -6
- package/dist/icons/repeat-icon.d.ts +0 -6
- package/dist/icons/reply-icon.d.ts +0 -6
- package/dist/icons/report-icon.d.ts +0 -6
- package/dist/icons/repost-icon.d.ts +0 -6
- package/dist/icons/reposted-icon.d.ts +0 -6
- package/dist/icons/save-jobs-icon.d.ts +0 -6
- package/dist/icons/save-post-menu-icon.d.ts +0 -6
- package/dist/icons/search-bar-icon.d.ts +0 -6
- package/dist/icons/search-icon.d.ts +0 -6
- package/dist/icons/search-with-date-icon.d.ts +0 -6
- package/dist/icons/send-comment-icon.d.ts +0 -6
- package/dist/icons/settings-icon.d.ts +0 -6
- package/dist/icons/share-circle-icon.d.ts +0 -6
- package/dist/icons/share-icon.d.ts +0 -6
- package/dist/icons/share-link.d.ts +0 -6
- package/dist/icons/shield-dualtone.d.ts +0 -6
- package/dist/icons/show-passwords-icon.d.ts +0 -6
- package/dist/icons/size-company-icon.d.ts +0 -6
- package/dist/icons/skill-on-tab-profile-icon.d.ts +0 -6
- package/dist/icons/skills-icon.d.ts +0 -6
- package/dist/icons/smile-icon.d.ts +0 -6
- package/dist/icons/soft-skill-icon.d.ts +0 -6
- package/dist/icons/sort-ascending-icon.d.ts +0 -6
- package/dist/icons/sort-by-icon.d.ts +0 -6
- package/dist/icons/sort-default-icon.d.ts +0 -6
- package/dist/icons/sort-descending-icon.d.ts +0 -6
- package/dist/icons/sort-horizontal-icon.d.ts +0 -6
- package/dist/icons/sosial-media-section-icon.d.ts +0 -6
- package/dist/icons/sparkle-star-icon.d.ts +0 -6
- package/dist/icons/sparkles-icon.d.ts +0 -6
- package/dist/icons/speech-icon.d.ts +0 -6
- package/dist/icons/stacked-layout-dual-tone-icon.d.ts +0 -6
- package/dist/icons/star-icon.d.ts +0 -6
- package/dist/icons/stars-icon.d.ts +0 -6
- package/dist/icons/sugested-company-icon.d.ts +0 -6
- package/dist/icons/suitcase-icon.d.ts +0 -6
- package/dist/icons/technical-skill-icon.d.ts +0 -6
- package/dist/icons/theme-icon.d.ts +0 -6
- package/dist/icons/themes-icon.d.ts +0 -6
- package/dist/icons/translate-icon.d.ts +0 -6
- package/dist/icons/trash-icon.d.ts +0 -6
- package/dist/icons/unarchive-message-icon.d.ts +0 -6
- package/dist/icons/unfollow-icon.d.ts +0 -6
- package/dist/icons/unmute-message-icon.d.ts +0 -6
- package/dist/icons/unpin-message-icon.d.ts +0 -6
- package/dist/icons/unsave-job-icon.d.ts +0 -6
- package/dist/icons/upload-document-icon.d.ts +0 -6
- package/dist/icons/upload-document-new-icon.d.ts +0 -6
- package/dist/icons/upload-event-icon.d.ts +0 -6
- package/dist/icons/upload-file-placeholder-icon.d.ts +0 -6
- package/dist/icons/upload-generate-image-icon.d.ts +0 -6
- package/dist/icons/upload-generate-post-icon.d.ts +0 -6
- package/dist/icons/upload-media-icon.d.ts +0 -6
- package/dist/icons/upload-media-new-icon.d.ts +0 -6
- package/dist/icons/upload-pictures-on-profile-icon.d.ts +0 -6
- package/dist/icons/upload-pollingt-new-icon.d.ts +0 -6
- package/dist/icons/upload-pooling-icon.d.ts +0 -6
- package/dist/icons/upload-reels-icon.d.ts +0 -6
- package/dist/icons/user-check-icon.d.ts +0 -6
- package/dist/icons/user-connections.d.ts +0 -6
- package/dist/icons/user-dual-tone-icon.d.ts +0 -6
- package/dist/icons/user-hands-up.d.ts +0 -6
- package/dist/icons/user-heart-rounded.d.ts +0 -6
- package/dist/icons/user-icon.d.ts +0 -6
- package/dist/icons/user-unfollow.d.ts +0 -6
- package/dist/icons/users-dual-tone-icon.d.ts +0 -6
- package/dist/icons/users-group-icon.d.ts +0 -6
- package/dist/icons/users-group-rounded-icon.d.ts +0 -6
- package/dist/icons/users-group-two-rounded-icon.d.ts +0 -6
- package/dist/icons/verified-icon.d.ts +0 -6
- package/dist/icons/video-on-message-icon.d.ts +0 -6
- package/dist/icons/view-grid-row-icon.d.ts +0 -6
- package/dist/icons/view-grid1-icon.d.ts +0 -6
- package/dist/icons/view-grid2-icon.d.ts +0 -6
- package/dist/icons/view-grid3-icon.d.ts +0 -6
- package/dist/icons/view-grid4-icon.d.ts +0 -6
- package/dist/icons/volume-icon.d.ts +0 -6
- package/dist/icons/volume-off-icon.d.ts +0 -6
- package/dist/icons/widget-four-icon.d.ts +0 -6
- package/dist/icons/widget-icon.d.ts +0 -6
- package/dist/icons/working-at-summary-profile-icon.d.ts +0 -6
- package/dist/icons/workplace-on-job-preferences-icon.d.ts +0 -6
- package/dist/icons/workplace-open-to-offers-icon.d.ts +0 -6
- package/dist/icons/x-square-icon.d.ts +0 -6
- package/dist/icons/your-summary-profile-icon.d.ts +0 -6
- package/dist/primitives/accordion.d.ts +0 -33
- package/dist/primitives/alert-dialog.d.ts +0 -34
- package/dist/primitives/avatar.d.ts +0 -11
- package/dist/primitives/checkbox.d.ts +0 -16
- package/dist/primitives/collapsible.d.ts +0 -22
- package/dist/primitives/combobox.d.ts +0 -79
- package/dist/primitives/dialog.d.ts +0 -34
- package/dist/primitives/index.d.ts +0 -47
- package/dist/primitives/menu.d.ts +0 -61
- package/dist/primitives/popover.d.ts +0 -31
- package/dist/primitives/sheet.d.ts +0 -33
- package/dist/primitives/slider.d.ts +0 -18
- package/dist/primitives/slot.d.ts +0 -19
- package/dist/primitives/tabs.d.ts +0 -35
- package/dist/primitives/toast.d.ts +0 -27
- package/dist/primitives/tooltip.d.ts +0 -32
- package/dist/types-BLgXHroz.d.ts +0 -6
- package/dist/ui/accordion.d.ts +0 -20
- package/dist/ui/alert-dialog.d.ts +0 -39
- package/dist/ui/alert.d.ts +0 -19
- package/dist/ui/alerter.d.ts +0 -43
- package/dist/ui/avatar.d.ts +0 -17
- package/dist/ui/badge.d.ts +0 -30
- package/dist/ui/button.d.ts +0 -16
- package/dist/ui/calendar.d.ts +0 -40
- package/dist/ui/carousel.d.ts +0 -35
- package/dist/ui/checkbox.d.ts +0 -16
- package/dist/ui/collapsible.d.ts +0 -15
- package/dist/ui/combobox.d.ts +0 -105
- package/dist/ui/date-multiple-picker.d.ts +0 -26
- package/dist/ui/date-picker.d.ts +0 -23
- package/dist/ui/date-range-picker.d.ts +0 -23
- package/dist/ui/dialog.d.ts +0 -40
- package/dist/ui/index.d.ts +0 -112
- package/dist/ui/infinite-scroll.d.ts +0 -15
- package/dist/ui/input.d.ts +0 -17
- package/dist/ui/label.d.ts +0 -13
- package/dist/ui/menu.d.ts +0 -50
- package/dist/ui/pagination.d.ts +0 -15
- package/dist/ui/popover.d.ts +0 -26
- package/dist/ui/sheet.d.ts +0 -31
- package/dist/ui/slider.d.ts +0 -14
- package/dist/ui/table.d.ts +0 -27
- package/dist/ui/tabs.d.ts +0 -26
- package/dist/ui/textarea.d.ts +0 -10
- package/dist/ui/toast.d.ts +0 -39
- package/dist/ui/tooltip.d.ts +0 -17
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {d,e,b,c,f,g,h,i,j,a,l}from'./chunk-4IAMLCAM.js';import {b as b$1}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {d,e,b,c,f,g,h,i,j,a,l}from'./chunk-4IAMLCAM.js';import {b as b$1}from'./chunk-DQGZIFNP.js';import {a as a$1}from'./chunk-WI5V5Z76.js';import {b as b$3}from'./chunk-QWCYJC3T.js';import {b as b$4}from'./chunk-4WDDWMBW.js';import {b as b$2}from'./chunk-ZQWDYX2E.js';import'react';import {cn}from'@xploreu/lib/cn';import {XIcon,Loader2Icon}from'lucide-react';import {jsx,jsxs}from'react/jsx-runtime';function k({...t}){return jsx(d,{...t})}var D={"top-right":"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm","top-left":"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm","top-center":"fixed top-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm","bottom-right":"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm","bottom-left":"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm","bottom-center":"fixed bottom-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm"};function z({className:t,position:o="top-right",...e$1}){return jsx(e,{className:cn("group/viewport pointer-events-none z-[1000] mx-auto outline-none",D[o],t),...e$1})}function A(t){return jsx(b,{...t})}function V({className:t,children:o,style:e,...i}){return jsxs(c,{style:e,className:cn("group/toast pointer-events-auto absolute right-0 z-[calc(1000-var(--toast-index))] w-full shadow-lg will-change-transform outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-focus-ring","bottom-0 origin-bottom rounded-l-[10.4px] rounded-r-lg","data-[position^=top]:top-0 data-[position^=top]:bottom-auto data-[position^=top]:origin-top","[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap))*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]","data-[position^=top]:[--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap)))+var(--toast-swipe-movement-y))]","h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]","data-[position^=top]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))_scale(var(--scale))]","after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']","group-hover/viewport:data-expanded:h-(--toast-height) group-hover/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:h-(--toast-height) group-focus-within/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]","data-limited:opacity-0 data-limited:pointer-events-none data-limited:invisible data-starting-style:[transform:translateY(150%)]","data-[position^=top]:data-starting-style:[transform:translateY(-150%)]","[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]","data-[position^=top]:[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(-150%)]","data-ending-style:opacity-0","data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]","group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",t),...i,children:[jsx("div",{className:cn("absolute left-0 inset-y-0 w-[10.4px] rounded-l-[10.4px] bg-[linear-gradient(180deg,#377DFA_0%,#185BC2_80%)]","group-data-[type=warning]/toast:bg-[linear-gradient(180deg,#F79009_0%,#B54708_80%)]","group-data-[type=info]/toast:bg-[linear-gradient(180deg,#068BEE_0%,#175BCC_80%)]","group-data-[type=success]/toast:bg-[linear-gradient(180deg,#17B26A_0%,#067647_80%)]","group-data-[type=error]/toast:bg-[linear-gradient(180deg,#F04438_0%,#B42318_80%)]")}),jsx("div",{className:cn("relative border border-border-secondary rounded-lg ml-[2.4px] bg-bg-primary z-10 bg-radial-[100%_200%_at_0%_0%] to-bg-primary","from-modal-dialog-stop-0","group-data-[type=warning]/toast:from-utility-warning-50","group-data-[type=info]/toast:from-utility-blue-50","group-data-[type=success]/toast:from-utility-success-50","group-data-[type=error]/toast:from-utility-error-50"),children:o})]})}function X({className:t,...o}){return jsx(f,{className:cn("flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-behind/toast:opacity-0 group-hover/viewport:group-data-expanded/toast:opacity-100 group-focus-within/viewport:group-data-expanded/toast:opacity-100",t),...o})}function I({className:t,...o}){return jsx(g,{className:cn("text-label-semibold-2 text-text-primary","group-data-[type=warning]/toast:text-text-warning-primary","group-data-[type=info]/toast:text-text-info-primary","group-data-[type=success]/toast:text-text-success-primary","group-data-[type=error]/toast:text-text-error-primary",t),...o})}function B({className:t,...o}){return jsx(h,{className:cn("text-body-regular-2 text-text-secondary",t),...o})}function S({className:t,render:o=jsx(b$1,{size:"sm",variant:"secondary"}),...e}){return jsx(i,{render:o,className:cn("shrink-0",t),...e})}function R({className:t,children:o,...e}){return jsx(j,{"aria-label":"Close toast",className:cn("relative shrink-0 text-fg-quaternary after:absolute after:-inset-2 after:content-[''] hover:text-text-error-primary size-6 inline-flex items-center justify-center [&_svg:not([class*='size-'])]:size-3.5",t),...e,children:o??jsx(XIcon,{"aria-hidden":"true"})})}function q({type:t}){let o=null;return t==="success"&&(o=jsx(b$2,{className:"text-fg-success-primary"})),t==="info"&&(o=jsx(a$1,{className:"text-fg-info-primary"})),t==="warning"&&(o=jsx(b$3,{className:"text-fg-warning-primary"})),t==="error"&&(o=jsx(b$4,{className:"text-fg-error-primary"})),t==="loading"&&(o=jsx(Loader2Icon,{className:"animate-spin","aria-hidden":"true"})),o?jsx("span",{"data-slot":"toast-icon",className:"shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-6",children:o}):null}var F=["top-right","top-left","top-center","bottom-right","bottom-left","bottom-center"];function M({defaultPosition:t,position:o,limit:e=3}){let{toasts:i}=l();return i.filter(s=>(s.position??t)===o).map((s,p)=>jsx(V,{toast:s,"data-position":o,"data-behind":p>0?"":void 0,"data-limited":e!==void 0&&p>=e?"":void 0,style:{"--toast-index":p},children:jsxs(X,{children:[jsx(q,{type:s.type}),jsxs("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[jsx(I,{}),jsx(B,{})]}),jsx(S,{}),jsx(R,{})]})},s.id))}function K({children:t,position:o="top-right",limit:e=3,toastManager:i=a,...l}){return jsxs(A,{toastManager:i,limit:e,...l,children:[t,jsx(k,{children:F.map(s=>jsx(z,{position:s,children:jsx(M,{defaultPosition:o,position:s,limit:e})},s))})]})}export{k as a,z as b,A as c,V as d,X as e,I as f,B as g,S as h,R as i,K as j};//# sourceMappingURL=chunk-IFBRARGK.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-IFBRARGK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/toast.tsx"],"names":["ToastPortal","props","jsx","positionVariants","ToastViewport","className","position","cn","ToastProvider","Toast","children","style","jsxs","ToastContent","ToastTitle","ToastDescription","ToastAction","render","Button","ToastClose","XIcon","ToastIcon","type","icon","check_square_icon_default","info_square_icon_default","danger_triangle_icon_default","close_square_icon_default","Loader2Icon","POSITIONS","ToastList","defaultPosition","limit","toasts","useToastManager","item","toastItem","index","Toaster","toastManager","toast","pos"],"mappings":"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","file":"chunk-5VZ6QNBI.js","sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n ToastPortal as ToastPortalPrimitive,\r\n ToastViewport as ToastViewportPrimitive,\r\n ToastProvider as ToastProviderPrimitive,\r\n Toast as ToastPrimitive,\r\n ToastContent as ToastContentPrimitive,\r\n ToastTitle as ToastTitlePrimitive,\r\n ToastDescription as ToastDescriptionPrimitive,\r\n ToastAction as ToastActionPrimitive,\r\n ToastClose as ToastClosePrimitive,\r\n toast,\r\n createToastManager,\r\n useToastManager,\r\n type ToastPortalProps as ToastPortalPrimitiveProps,\r\n type ToastViewportProps as ToastViewportPrimitiveProps,\r\n type ToastProviderProps as ToastProviderPrimitiveProps,\r\n type ToastProps as ToastPrimitiveProps,\r\n type ToastContentProps as ToastContentPrimitiveProps,\r\n type ToastTitleProps as ToastTitlePrimitiveProps,\r\n type ToastDescriptionProps as ToastDescriptionPrimitiveProps,\r\n type ToastActionProps as ToastActionPrimitiveProps,\r\n type ToastCloseProps as ToastClosePrimitiveProps,\r\n} from \"../primitives/toast\";\r\nimport { cn } from \"@xploreu/lib/cn\";\r\nimport {\r\n InfoSquareIcon,\r\n CheckSquareIcon,\r\n CloseSquareIcon,\r\n DangerTriangleIcon,\r\n} from \"../icons\";\r\nimport { Button } from \"./button\";\r\nimport {\r\n XIcon,\r\n Loader2Icon\r\n} from \"lucide-react\"\r\n\r\ntype ToastPortalProps = ToastPortalPrimitiveProps;\r\n\r\nfunction ToastPortal({ ...props }: ToastPortalProps) {\r\n return <ToastPortalPrimitive {...props} />;\r\n}\r\n\r\nexport type ToastPosition =\r\n | \"top-right\"\r\n | \"top-left\"\r\n | \"top-center\"\r\n | \"bottom-right\"\r\n | \"bottom-left\"\r\n | \"bottom-center\";\r\n\r\ndeclare module \"@base-ui/react/toast\" {\r\n interface ToastObject<Data extends object> {\r\n position?: ToastPosition;\r\n }\r\n}\r\n\r\ntype ToastViewportProps = ToastViewportPrimitiveProps & {\r\n position?: ToastPosition;\r\n};\r\n\r\nconst positionVariants: Record<ToastPosition, string> = {\r\n \"top-right\":\r\n \"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm\",\r\n \"top-left\":\r\n \"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm\",\r\n \"top-center\":\r\n \"fixed top-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm\",\r\n \"bottom-right\":\r\n \"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm\",\r\n \"bottom-left\":\r\n \"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm\",\r\n \"bottom-center\":\r\n \"fixed bottom-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm\",\r\n};\r\n\r\nfunction ToastViewport({\r\n className,\r\n position = \"top-right\",\r\n ...props\r\n}: ToastViewportProps) {\r\n return (\r\n <ToastViewportPrimitive\r\n className={cn(\r\n \"group/viewport pointer-events-none z-[1000] mx-auto outline-none\",\r\n positionVariants[position],\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastProviderProps = ToastProviderPrimitiveProps;\r\n\r\nfunction ToastProvider(props: ToastProviderProps) {\r\n return <ToastProviderPrimitive {...props} />;\r\n}\r\n\r\ntype ToastProps = ToastPrimitiveProps\r\n\r\nfunction Toast({\r\n className,\r\n children,\r\n style,\r\n ...props\r\n}: ToastProps) {\r\n return (\r\n <ToastPrimitive\r\n style={style}\r\n className={cn(\r\n \"group/toast pointer-events-auto absolute right-0 z-[calc(1000-var(--toast-index))] w-full shadow-lg will-change-transform outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-focus-ring\",\r\n \"bottom-0 origin-bottom rounded-l-[10.4px] rounded-r-lg\",\r\n \"data-[position^=top]:top-0 data-[position^=top]:bottom-auto data-[position^=top]:origin-top\",\r\n \"[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap))*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]\",\r\n \"data-[position^=top]:[--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap)))+var(--toast-swipe-movement-y))]\",\r\n \"h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]\",\r\n \"data-[position^=top]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))_scale(var(--scale))]\",\r\n \"after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']\",\r\n \"group-hover/viewport:data-expanded:h-(--toast-height) group-hover/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]\",\r\n \"group-focus-within/viewport:data-expanded:h-(--toast-height) group-focus-within/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]\",\r\n \"data-limited:opacity-0 data-limited:pointer-events-none data-limited:invisible data-starting-style:[transform:translateY(150%)]\",\r\n \"data-[position^=top]:data-starting-style:[transform:translateY(-150%)]\",\r\n \"[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]\",\r\n \"data-[position^=top]:[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(-150%)]\",\r\n \"data-ending-style:opacity-0\",\r\n \"data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\r\n \"data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\r\n \"data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\r\n \"data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className={cn(\r\n \"absolute left-0 inset-y-0 w-[10.4px] rounded-l-[10.4px] bg-[linear-gradient(180deg,#377DFA_0%,#185BC2_80%)]\",\r\n \"group-data-[type=warning]/toast:bg-[linear-gradient(180deg,#F79009_0%,#B54708_80%)]\",\r\n \"group-data-[type=info]/toast:bg-[linear-gradient(180deg,#068BEE_0%,#175BCC_80%)]\",\r\n \"group-data-[type=success]/toast:bg-[linear-gradient(180deg,#17B26A_0%,#067647_80%)]\",\r\n \"group-data-[type=error]/toast:bg-[linear-gradient(180deg,#F04438_0%,#B42318_80%)]\",\r\n )} />\r\n <div className={cn(\r\n \"relative border border-border-secondary rounded-lg ml-[2.4px] bg-bg-primary z-10 bg-radial-[100%_200%_at_0%_0%] to-bg-primary\",\r\n \"from-modal-dialog-stop-0\",\r\n \"group-data-[type=warning]/toast:from-utility-warning-50\",\r\n \"group-data-[type=info]/toast:from-utility-blue-50\",\r\n \"group-data-[type=success]/toast:from-utility-success-50\",\r\n \"group-data-[type=error]/toast:from-utility-error-50\",\r\n )}>\r\n {children}\r\n </div>\r\n </ToastPrimitive>\r\n );\r\n}\r\n\r\ntype ToastContentProps = ToastContentPrimitiveProps;\r\n\r\nfunction ToastContent({ className, ...props }: ToastContentProps) {\r\n return (\r\n <ToastContentPrimitive\r\n className={cn(\r\n \"flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-behind/toast:opacity-0 group-hover/viewport:group-data-expanded/toast:opacity-100 group-focus-within/viewport:group-data-expanded/toast:opacity-100\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastTitleProps = ToastTitlePrimitiveProps;\r\n\r\nfunction ToastTitle({ className, ...props }: ToastTitleProps) {\r\n return (\r\n <ToastTitlePrimitive\r\n className={cn(\r\n \"text-label-semibold-2 text-text-primary\",\r\n \"group-data-[type=warning]/toast:text-text-warning-primary\",\r\n \"group-data-[type=info]/toast:text-text-info-primary\",\r\n \"group-data-[type=success]/toast:text-text-success-primary\",\r\n \"group-data-[type=error]/toast:text-text-error-primary\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastDescriptionProps = ToastDescriptionPrimitiveProps;\r\n\r\nfunction ToastDescription({ className, ...props }: ToastDescriptionProps) {\r\n return (\r\n <ToastDescriptionPrimitive\r\n className={cn(\"text-body-regular-2 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastActionProps = ToastActionPrimitiveProps;\r\n\r\nfunction ToastAction({\r\n className,\r\n render = <Button size=\"sm\" variant=\"secondary\" />,\r\n ...props\r\n}: ToastActionProps) {\r\n return (\r\n <ToastActionPrimitive\r\n render={render}\r\n className={cn(\"shrink-0\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ToastCloseProps = ToastClosePrimitiveProps;\r\n\r\nfunction ToastClose({ className, children, ...props }: ToastCloseProps) {\r\n return (\r\n <ToastClosePrimitive\r\n aria-label=\"Close toast\"\r\n className={cn(\r\n \"relative shrink-0 text-fg-quaternary after:absolute after:-inset-2 after:content-[''] hover:text-text-error-primary size-6 inline-flex items-center justify-center [&_svg:not([class*='size-'])]:size-3.5\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children ?? <XIcon aria-hidden=\"true\" />}\r\n </ToastClosePrimitive>\r\n );\r\n}\r\n\r\ntype ToastIconProps = { type: string | undefined }\r\n\r\nfunction ToastIcon({ type }: ToastIconProps) {\r\n let icon: React.ReactNode = null;\r\n\r\n if (type === \"success\") {\r\n icon = <CheckSquareIcon className=\"text-fg-success-primary\" />;\r\n }\r\n\r\n if (type === \"info\") {\r\n icon = <InfoSquareIcon className=\"text-fg-info-primary\" />;\r\n }\r\n\r\n if (type === \"warning\") {\r\n icon = <DangerTriangleIcon className=\"text-fg-warning-primary\" />;\r\n }\r\n\r\n if (type === \"error\") {\r\n icon = <CloseSquareIcon className=\"text-fg-error-primary\" />;\r\n }\r\n\r\n if (type === \"loading\") {\r\n icon = <Loader2Icon className=\"animate-spin\" aria-hidden=\"true\" />\r\n }\r\n\r\n if (!icon) return null;\r\n\r\n return (\r\n <span\r\n data-slot=\"toast-icon\"\r\n className=\"shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-6\"\r\n >\r\n {icon}\r\n </span>\r\n );\r\n}\r\n\r\nconst POSITIONS: ToastPosition[] = [\r\n \"top-right\",\r\n \"top-left\",\r\n \"top-center\",\r\n \"bottom-right\",\r\n \"bottom-left\",\r\n \"bottom-center\",\r\n];\r\n\r\nfunction ToastList({\r\n defaultPosition,\r\n position,\r\n limit = 3,\r\n}: {\r\n defaultPosition: ToastPosition;\r\n position: ToastPosition;\r\n limit?: number;\r\n}) {\r\n const { toasts } = useToastManager();\r\n const matchingToasts = toasts.filter(\r\n (item) => (item.position ?? defaultPosition) === position\r\n );\r\n\r\n return matchingToasts.map((toastItem, index) => (\r\n <Toast\r\n key={toastItem.id}\r\n toast={toastItem}\r\n data-position={position}\r\n data-behind={index > 0 ? \"\" : undefined}\r\n data-limited={limit !== undefined && index >= limit ? \"\" : undefined}\r\n style={\r\n {\r\n \"--toast-index\": index,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <ToastContent>\r\n <ToastIcon type={toastItem.type} />\r\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\r\n <ToastTitle />\r\n <ToastDescription />\r\n </div>\r\n <ToastAction />\r\n <ToastClose />\r\n </ToastContent>\r\n </Toast>\r\n ));\r\n}\r\n\r\ntype ToasterProps = ToastProviderPrimitiveProps & {\r\n position?: ToastPosition;\r\n limit?: number;\r\n};\r\n\r\nfunction Toaster({\r\n children,\r\n position = \"top-right\",\r\n limit = 3,\r\n toastManager = toast,\r\n ...props\r\n}: ToasterProps) {\r\n return (\r\n <ToastProvider toastManager={toastManager} limit={limit} {...props}>\r\n {children}\r\n <ToastPortal>\r\n {POSITIONS.map((pos) => (\r\n <ToastViewport key={pos} position={pos}>\r\n <ToastList defaultPosition={position} position={pos} limit={limit} />\r\n </ToastViewport>\r\n ))}\r\n </ToastPortal>\r\n </ToastProvider>\r\n );\r\n}\r\n\r\nexport {\r\n Toaster,\r\n Toast,\r\n ToastProvider,\r\n ToastAction,\r\n ToastClose,\r\n ToastContent,\r\n ToastDescription,\r\n ToastPortal,\r\n ToastTitle,\r\n ToastViewport,\r\n toast,\r\n createToastManager,\r\n useToastManager,\r\n type ToasterProps,\r\n type ToastProps,\r\n type ToastProviderProps,\r\n type ToastActionProps,\r\n type ToastCloseProps,\r\n type ToastContentProps,\r\n type ToastDescriptionProps,\r\n type ToastPortalProps,\r\n type ToastTitleProps,\r\n type ToastViewportProps,\r\n};\r\n\r\n\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/toast.tsx"],"names":["ToastPortal","props","jsx","positionVariants","ToastViewport","className","position","cn","ToastProvider","Toast","children","style","jsxs","ToastContent","ToastTitle","ToastDescription","ToastAction","render","Button","ToastClose","XIcon","ToastIcon","type","icon","check_square_icon_default","info_square_icon_default","danger_triangle_icon_default","close_square_icon_default","Loader2Icon","POSITIONS","ToastList","defaultPosition","limit","toasts","useToastManager","item","toastItem","index","Toaster","toastManager","toast","pos"],"mappings":"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","file":"chunk-IFBRARGK.js","sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport {\r\n ToastPortal as ToastPortalPrimitive,\r\n ToastViewport as ToastViewportPrimitive,\r\n ToastProvider as ToastProviderPrimitive,\r\n Toast as ToastPrimitive,\r\n ToastContent as ToastContentPrimitive,\r\n ToastTitle as ToastTitlePrimitive,\r\n ToastDescription as ToastDescriptionPrimitive,\r\n ToastAction as ToastActionPrimitive,\r\n ToastClose as ToastClosePrimitive,\r\n toast,\r\n createToastManager,\r\n useToastManager,\r\n type ToastPortalProps as ToastPortalPrimitiveProps,\r\n type ToastViewportProps as ToastViewportPrimitiveProps,\r\n type ToastProviderProps as ToastProviderPrimitiveProps,\r\n type ToastProps as ToastPrimitiveProps,\r\n type ToastContentProps as ToastContentPrimitiveProps,\r\n type ToastTitleProps as ToastTitlePrimitiveProps,\r\n type ToastDescriptionProps as ToastDescriptionPrimitiveProps,\r\n type ToastActionProps as ToastActionPrimitiveProps,\r\n type ToastCloseProps as ToastClosePrimitiveProps,\r\n} from \"../primitives/toast\";\r\nimport { cn } from \"@xploreu/lib/cn\";\r\nimport {\r\n InfoSquareIcon,\r\n CheckSquareIcon,\r\n CloseSquareIcon,\r\n DangerTriangleIcon,\r\n} from \"../icons\";\r\nimport { Button } from \"./button\";\r\nimport {\r\n XIcon,\r\n Loader2Icon\r\n} from \"lucide-react\"\r\n\r\ntype ToastPortalProps = ToastPortalPrimitiveProps;\r\n\r\nfunction ToastPortal({ ...props }: ToastPortalProps) {\r\n return <ToastPortalPrimitive {...props} />;\r\n}\r\n\r\nexport type ToastPosition =\r\n | \"top-right\"\r\n | \"top-left\"\r\n | \"top-center\"\r\n | \"bottom-right\"\r\n | \"bottom-left\"\r\n | \"bottom-center\";\r\n\r\ndeclare module \"@base-ui/react/toast\" {\r\n interface ToastObject<Data extends object> {\r\n position?: ToastPosition;\r\n }\r\n}\r\n\r\ntype ToastViewportProps = ToastViewportPrimitiveProps & {\r\n position?: ToastPosition;\r\n};\r\n\r\nconst positionVariants: Record<ToastPosition, string> = {\r\n \"top-right\":\r\n \"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm\",\r\n \"top-left\":\r\n \"fixed top-4 inset-x-4 sm:inset-x-auto sm:top-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm\",\r\n \"top-center\":\r\n \"fixed top-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm\",\r\n \"bottom-right\":\r\n \"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:right-4 sm:left-auto sm:w-full sm:max-w-sm\",\r\n \"bottom-left\":\r\n \"fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-4 sm:left-4 sm:right-auto sm:w-full sm:max-w-sm\",\r\n \"bottom-center\":\r\n \"fixed bottom-4 left-1/2 -translate-x-1/2 w-[calc(100%-2rem)] sm:w-full sm:max-w-sm\",\r\n};\r\n\r\nfunction ToastViewport({\r\n className,\r\n position = \"top-right\",\r\n ...props\r\n}: ToastViewportProps) {\r\n return (\r\n <ToastViewportPrimitive\r\n className={cn(\r\n \"group/viewport pointer-events-none z-[1000] mx-auto outline-none\",\r\n positionVariants[position],\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastProviderProps = ToastProviderPrimitiveProps;\r\n\r\nfunction ToastProvider(props: ToastProviderProps) {\r\n return <ToastProviderPrimitive {...props} />;\r\n}\r\n\r\ntype ToastProps = ToastPrimitiveProps\r\n\r\nfunction Toast({\r\n className,\r\n children,\r\n style,\r\n ...props\r\n}: ToastProps) {\r\n return (\r\n <ToastPrimitive\r\n style={style}\r\n className={cn(\r\n \"group/toast pointer-events-auto absolute right-0 z-[calc(1000-var(--toast-index))] w-full shadow-lg will-change-transform outline-none select-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-focus-ring\",\r\n \"bottom-0 origin-bottom rounded-l-[10.4px] rounded-r-lg\",\r\n \"data-[position^=top]:top-0 data-[position^=top]:bottom-auto data-[position^=top]:origin-top\",\r\n \"[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap))*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]\",\r\n \"data-[position^=top]:[--offset-y:calc((var(--toast-index)*(var(--height)+var(--gap)))+var(--toast-swipe-movement-y))]\",\r\n \"h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]\",\r\n \"data-[position^=top]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))_scale(var(--scale))]\",\r\n \"after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']\",\r\n \"group-hover/viewport:data-expanded:h-(--toast-height) group-hover/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]\",\r\n \"group-focus-within/viewport:data-expanded:h-(--toast-height) group-focus-within/viewport:data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]\",\r\n \"data-limited:opacity-0 data-limited:pointer-events-none data-limited:invisible data-starting-style:[transform:translateY(150%)]\",\r\n \"data-[position^=top]:data-starting-style:[transform:translateY(-150%)]\",\r\n \"[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]\",\r\n \"data-[position^=top]:[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(-150%)]\",\r\n \"data-ending-style:opacity-0\",\r\n \"data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\r\n \"data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\r\n \"data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\r\n \"data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\r\n \"group-hover/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\r\n \"group-focus-within/viewport:data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className={cn(\r\n \"absolute left-0 inset-y-0 w-[10.4px] rounded-l-[10.4px] bg-[linear-gradient(180deg,#377DFA_0%,#185BC2_80%)]\",\r\n \"group-data-[type=warning]/toast:bg-[linear-gradient(180deg,#F79009_0%,#B54708_80%)]\",\r\n \"group-data-[type=info]/toast:bg-[linear-gradient(180deg,#068BEE_0%,#175BCC_80%)]\",\r\n \"group-data-[type=success]/toast:bg-[linear-gradient(180deg,#17B26A_0%,#067647_80%)]\",\r\n \"group-data-[type=error]/toast:bg-[linear-gradient(180deg,#F04438_0%,#B42318_80%)]\",\r\n )} />\r\n <div className={cn(\r\n \"relative border border-border-secondary rounded-lg ml-[2.4px] bg-bg-primary z-10 bg-radial-[100%_200%_at_0%_0%] to-bg-primary\",\r\n \"from-modal-dialog-stop-0\",\r\n \"group-data-[type=warning]/toast:from-utility-warning-50\",\r\n \"group-data-[type=info]/toast:from-utility-blue-50\",\r\n \"group-data-[type=success]/toast:from-utility-success-50\",\r\n \"group-data-[type=error]/toast:from-utility-error-50\",\r\n )}>\r\n {children}\r\n </div>\r\n </ToastPrimitive>\r\n );\r\n}\r\n\r\ntype ToastContentProps = ToastContentPrimitiveProps;\r\n\r\nfunction ToastContent({ className, ...props }: ToastContentProps) {\r\n return (\r\n <ToastContentPrimitive\r\n className={cn(\r\n \"flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-behind/toast:opacity-0 group-hover/viewport:group-data-expanded/toast:opacity-100 group-focus-within/viewport:group-data-expanded/toast:opacity-100\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastTitleProps = ToastTitlePrimitiveProps;\r\n\r\nfunction ToastTitle({ className, ...props }: ToastTitleProps) {\r\n return (\r\n <ToastTitlePrimitive\r\n className={cn(\r\n \"text-label-semibold-2 text-text-primary\",\r\n \"group-data-[type=warning]/toast:text-text-warning-primary\",\r\n \"group-data-[type=info]/toast:text-text-info-primary\",\r\n \"group-data-[type=success]/toast:text-text-success-primary\",\r\n \"group-data-[type=error]/toast:text-text-error-primary\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastDescriptionProps = ToastDescriptionPrimitiveProps;\r\n\r\nfunction ToastDescription({ className, ...props }: ToastDescriptionProps) {\r\n return (\r\n <ToastDescriptionPrimitive\r\n className={cn(\"text-body-regular-2 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ToastActionProps = ToastActionPrimitiveProps;\r\n\r\nfunction ToastAction({\r\n className,\r\n render = <Button size=\"sm\" variant=\"secondary\" />,\r\n ...props\r\n}: ToastActionProps) {\r\n return (\r\n <ToastActionPrimitive\r\n render={render}\r\n className={cn(\"shrink-0\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ToastCloseProps = ToastClosePrimitiveProps;\r\n\r\nfunction ToastClose({ className, children, ...props }: ToastCloseProps) {\r\n return (\r\n <ToastClosePrimitive\r\n aria-label=\"Close toast\"\r\n className={cn(\r\n \"relative shrink-0 text-fg-quaternary after:absolute after:-inset-2 after:content-[''] hover:text-text-error-primary size-6 inline-flex items-center justify-center [&_svg:not([class*='size-'])]:size-3.5\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children ?? <XIcon aria-hidden=\"true\" />}\r\n </ToastClosePrimitive>\r\n );\r\n}\r\n\r\ntype ToastIconProps = { type: string | undefined }\r\n\r\nfunction ToastIcon({ type }: ToastIconProps) {\r\n let icon: React.ReactNode = null;\r\n\r\n if (type === \"success\") {\r\n icon = <CheckSquareIcon className=\"text-fg-success-primary\" />;\r\n }\r\n\r\n if (type === \"info\") {\r\n icon = <InfoSquareIcon className=\"text-fg-info-primary\" />;\r\n }\r\n\r\n if (type === \"warning\") {\r\n icon = <DangerTriangleIcon className=\"text-fg-warning-primary\" />;\r\n }\r\n\r\n if (type === \"error\") {\r\n icon = <CloseSquareIcon className=\"text-fg-error-primary\" />;\r\n }\r\n\r\n if (type === \"loading\") {\r\n icon = <Loader2Icon className=\"animate-spin\" aria-hidden=\"true\" />\r\n }\r\n\r\n if (!icon) return null;\r\n\r\n return (\r\n <span\r\n data-slot=\"toast-icon\"\r\n className=\"shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-6\"\r\n >\r\n {icon}\r\n </span>\r\n );\r\n}\r\n\r\nconst POSITIONS: ToastPosition[] = [\r\n \"top-right\",\r\n \"top-left\",\r\n \"top-center\",\r\n \"bottom-right\",\r\n \"bottom-left\",\r\n \"bottom-center\",\r\n];\r\n\r\nfunction ToastList({\r\n defaultPosition,\r\n position,\r\n limit = 3,\r\n}: {\r\n defaultPosition: ToastPosition;\r\n position: ToastPosition;\r\n limit?: number;\r\n}) {\r\n const { toasts } = useToastManager();\r\n const matchingToasts = toasts.filter(\r\n (item) => (item.position ?? defaultPosition) === position\r\n );\r\n\r\n return matchingToasts.map((toastItem, index) => (\r\n <Toast\r\n key={toastItem.id}\r\n toast={toastItem}\r\n data-position={position}\r\n data-behind={index > 0 ? \"\" : undefined}\r\n data-limited={limit !== undefined && index >= limit ? \"\" : undefined}\r\n style={\r\n {\r\n \"--toast-index\": index,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <ToastContent>\r\n <ToastIcon type={toastItem.type} />\r\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\r\n <ToastTitle />\r\n <ToastDescription />\r\n </div>\r\n <ToastAction />\r\n <ToastClose />\r\n </ToastContent>\r\n </Toast>\r\n ));\r\n}\r\n\r\ntype ToasterProps = ToastProviderPrimitiveProps & {\r\n position?: ToastPosition;\r\n limit?: number;\r\n};\r\n\r\nfunction Toaster({\r\n children,\r\n position = \"top-right\",\r\n limit = 3,\r\n toastManager = toast,\r\n ...props\r\n}: ToasterProps) {\r\n return (\r\n <ToastProvider toastManager={toastManager} limit={limit} {...props}>\r\n {children}\r\n <ToastPortal>\r\n {POSITIONS.map((pos) => (\r\n <ToastViewport key={pos} position={pos}>\r\n <ToastList defaultPosition={position} position={pos} limit={limit} />\r\n </ToastViewport>\r\n ))}\r\n </ToastPortal>\r\n </ToastProvider>\r\n );\r\n}\r\n\r\nexport {\r\n Toaster,\r\n Toast,\r\n ToastProvider,\r\n ToastAction,\r\n ToastClose,\r\n ToastContent,\r\n ToastDescription,\r\n ToastPortal,\r\n ToastTitle,\r\n ToastViewport,\r\n toast,\r\n createToastManager,\r\n useToastManager,\r\n type ToasterProps,\r\n type ToastProps,\r\n type ToastProviderProps,\r\n type ToastActionProps,\r\n type ToastCloseProps,\r\n type ToastContentProps,\r\n type ToastDescriptionProps,\r\n type ToastPortalProps,\r\n type ToastTitleProps,\r\n type ToastViewportProps,\r\n};\r\n\r\n\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$2}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$2}from'./chunk-FIDOWSDH.js';import {a,b,c}from'./chunk-NGSCUYDU.js';import {b as b$1}from'./chunk-DQGZIFNP.js';import {a as a$1}from'./chunk-T7HRX3EC.js';import*as t from'react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {format}from'date-fns';import {ChevronDown}from'lucide-react';import'react-day-picker';import {cn}from'@xploreu/lib/cn';import {jsxs,jsx}from'react/jsx-runtime';function E({className:h,value:x,onValueChange:o,defaultValue:y,required:n,disabled:i,placeholder:v="Pick a date",disabledDates:P,dateFormat:C="LLL dd, y",...D}){let k=t.useCallback(e=>{n?e&&o?.(e):o?.(e);},[o,n]),[r,w]=useControlledState({value:x,defaultValue:y,onChange:k}),[N,M]=t.useState(r||new Date),[S,l]=t.useState(false),d=!!r;return jsxs(a,{open:i?false:S,onOpenChange:l,children:[jsx(b,{className:"w-full",render:jsxs(b$1,{className:cn("group h-9 w-full justify-between rounded-xp-card-base border px-3 text-body-medium-3 transition-colors","border-border-primary bg-bg-primary text-text-secondary hover:bg-bg-primary-hover",d&&"border-border-brand bg-bg-brand-primary text-text-brand-secondary","data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary","disabled:pointer-events-none disabled:opacity-50",h),variant:null,size:null,disabled:i,children:[jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[jsx(a$1,{className:cn("size-4 shrink-0",d?"text-fg-brand-primary":"text-fg-quaternary")}),jsx("span",{className:"truncate",children:r?format(r,C):v})]}),jsx(ChevronDown,{className:cn("size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180",d?"text-fg-brand-primary":"text-fg-quaternary")})]})}),jsx(c,{className:"w-auto border-0 rounded-[20px] p-xp-none bg-transparent",style:{background:"linear-gradient(180deg, rgba(46, 51, 90, 0) 0%, rgba(28, 27, 51, 0.04) 100%), radial-gradient(146.13% 118.42% at 50% -15.5%, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 99.59%)",backdropFilter:"blur(20px)",boxShadow:"0px 30px 60px 0px #0000001A"},children:jsx(a$2,{autoFocus:true,disabled:P,mode:"single",month:N,selected:r,onMonthChange:M,onSelect:e=>{n&&!e||(w(e),l(false));},...D})})]})}export{E as a};//# sourceMappingURL=chunk-NBM4LIT4.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-NBM4LIT4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/date-picker.tsx"],"names":["DatePicker","className","valueProp","onValueChange","defaultValue","required","disabled","placeholder","disabledDates","dateFormat","props","handleValueChange","val","value","setValue","useControlledState","currentMonth","setCurrentMonth","isOpen","setIsOpen","hasValue","jsxs","Popover","jsx","PopoverTrigger","Button","cn","calendar_icon_default","format","ChevronDown","PopoverPopup","Calendar"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/ui/date-picker.tsx"],"names":["DatePicker","className","valueProp","onValueChange","defaultValue","required","disabled","placeholder","disabledDates","dateFormat","props","handleValueChange","val","value","setValue","useControlledState","currentMonth","setCurrentMonth","isOpen","setIsOpen","hasValue","jsxs","Popover","jsx","PopoverTrigger","Button","cn","calendar_icon_default","format","ChevronDown","PopoverPopup","Calendar"],"mappings":"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","file":"chunk-NBM4LIT4.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { format } from \"date-fns\"\r\nimport { ChevronDown } from \"lucide-react\"\r\nimport { type Matcher } from \"react-day-picker\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { CalendarIcon } from \"../icons\"\r\nimport { Button } from \"./button\"\r\nimport { Calendar, type CalendarProps } from \"./calendar\"\r\nimport { Popover, PopoverPopup, PopoverTrigger } from \"./popover\"\r\n\r\nexport type DatePickerProps = {\r\n className?: string\r\n value?: Date\r\n defaultValue?: Date\r\n required?: boolean\r\n disabled?: boolean\r\n placeholder?: string\r\n disabledDates?: Matcher | Matcher[] | undefined\r\n dateFormat?: string\r\n} & ({\r\n required: true\r\n onValueChange?: (value: Date) => void\r\n} | {\r\n required?: false\r\n onValueChange?: (value: Date | undefined) => void\r\n}) & Omit<CalendarProps, \"mode\" | \"selected\" | \"onSelect\" | \"month\" | \"onMonthChange\">\r\n\r\nfunction DatePicker({\r\n className,\r\n value: valueProp,\r\n onValueChange,\r\n defaultValue,\r\n required,\r\n disabled,\r\n placeholder = \"Pick a date\",\r\n disabledDates,\r\n dateFormat = \"LLL dd, y\",\r\n ...props\r\n}: DatePickerProps) {\r\n const handleValueChange = React.useCallback(\r\n (val: Date | undefined) => {\r\n if (required) {\r\n if (val) onValueChange?.(val)\r\n } else {\r\n onValueChange?.(val)\r\n }\r\n },\r\n [onValueChange, required],\r\n )\r\n\r\n const [value, setValue] = useControlledState<Date | undefined>({\r\n value: valueProp,\r\n defaultValue,\r\n onChange: handleValueChange,\r\n })\r\n\r\n const [currentMonth, setCurrentMonth] = React.useState<Date | undefined>(value || new Date())\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n\r\n const hasValue = !!value\r\n\r\n return (\r\n <Popover open={disabled ? false : isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger\r\n className=\"w-full\"\r\n render={\r\n <Button\r\n className={cn(\r\n \"group h-9 w-full justify-between rounded-xp-card-base border px-3 text-body-medium-3 transition-colors\",\r\n \"border-border-primary bg-bg-primary text-text-secondary hover:bg-bg-primary-hover\",\r\n hasValue &&\r\n \"border-border-brand bg-bg-brand-primary text-text-brand-secondary\",\r\n \"data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary\",\r\n \"disabled:pointer-events-none disabled:opacity-50\",\r\n className,\r\n )}\r\n variant={null}\r\n size={null}\r\n disabled={disabled}\r\n >\r\n <span className=\"flex min-w-0 items-center gap-2\">\r\n <CalendarIcon\r\n className={cn(\r\n \"size-4 shrink-0\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\",\r\n )}\r\n />\r\n <span className=\"truncate\">\r\n {value ? format(value, dateFormat) : placeholder}\r\n </span>\r\n </span>\r\n <ChevronDown\r\n className={cn(\r\n \"size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\",\r\n )}\r\n />\r\n </Button>\r\n }\r\n />\r\n <PopoverPopup\r\n className=\"w-auto border-0 rounded-[20px] p-xp-none bg-transparent\"\r\n style={{\r\n background:\r\n \"linear-gradient(180deg, rgba(46, 51, 90, 0) 0%, rgba(28, 27, 51, 0.04) 100%), radial-gradient(146.13% 118.42% at 50% -15.5%, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 99.59%)\",\r\n backdropFilter: \"blur(20px)\",\r\n boxShadow: \"0px 30px 60px 0px #0000001A\",\r\n }}\r\n >\r\n <Calendar\r\n autoFocus\r\n disabled={disabledDates}\r\n mode=\"single\"\r\n month={currentMonth}\r\n selected={value}\r\n onMonthChange={setCurrentMonth}\r\n onSelect={(val) => {\r\n if (required && !val) return\r\n setValue(val)\r\n setIsOpen(false)\r\n }}\r\n {...props}\r\n />\r\n </PopoverPopup>\r\n </Popover>\r\n )\r\n}\r\n\r\nexport { DatePicker }\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b as b$1,c,g,e,d,f,i,j,k as k$1}from'./chunk-WYVGUIHL.js';import {b as b$2}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {b as b$1,c,g,e,d,f,i,j,k as k$1}from'./chunk-WYVGUIHL.js';import {b as b$2}from'./chunk-DQGZIFNP.js';import'react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';function _(r){return jsx(b$1,{...r})}function b(r){return jsx(c,{...r})}function T(r){return jsx(g,{...r})}function m({className:r,...o}){return jsx(e,{className:cn("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",r),...o})}function C({className:r,children:o,...l}){return jsxs(d,{children:[jsx(m,{}),jsx(f,{className:cn("group/alert-dialog-popup fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-md translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden",r),...l,children:o})]})}function h({className:r,...o}){return jsx("div",{"data-slot":"alert-dialog-header",className:cn("px-4 py-4 grid grid-cols-[auto_1fr] items-start bg-bg-primary",r),...o})}function w({className:r,...o}){return jsx("div",{"data-slot":"alert-dialog-content",className:cn("px-4 pb-4 max-h-[60vh] overflow-y-auto",r),...o})}function k({className:r,...o}){return jsx(i,{className:cn("flex gap-2 items-center justify-end bg-bg-primary px-4 py-3 border-t border-border-tertiary shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)]",r),...o})}function B({className:r,...o}){return jsx(j,{className:cn("col-start-2 [&:not(:has(~_[data-slot=alert-dialog-description]))]:row-span-2 [&:not(:has(~_[data-slot=alert-dialog-description]))]:self-center text-label-bold-2 text-text-primary",r),...o})}function F({className:r,...o}){return jsx(k$1,{className:cn("col-start-2 mt-0.5 text-body-regular-3 text-text-secondary",r),...o})}function H({className:r,variant:o="brand",...l}){return jsx("div",{"data-slot":"alert-dialog-icon","data-variant":o,className:cn("row-span-2 flex items-center justify-center rounded-lg mt-px mr-3 p-2.5 [&_svg]:size-4 text-fg-white",o==="brand"&&"bg-bg-brand-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]",o==="error"&&"bg-bg-error-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-utility-error-100)]",r),...l})}function N({color:r="destructive",variant:o="primary",...l}){return jsx(b$2,{"data-slot":"alert-dialog-action",color:r,variant:o,...l})}function R({color:r="default",variant:o="secondary",size:l,...d}){return jsx(g,{"data-slot":"alert-dialog-cancel",render:jsx(b$2,{color:r,variant:o,size:l}),...d})}export{_ as a,b,T as c,m as d,C as e,h as f,w as g,k as h,B as i,F as j,H as k,N as l,R as m};//# sourceMappingURL=chunk-OBS7TDVV.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-OBS7TDVV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/alert-dialog.tsx"],"names":["AlertDialog","props","jsx","AlertDialogTrigger","AlertDialogClose","AlertDialogBackdrop","className","cn","AlertDialogPopup","children","jsxs","AlertDialogPortal","AlertDialogHeader","AlertDialogContent","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogIcon","variant","AlertDialogAction","color","Button","AlertDialogCancel","size"],"mappings":"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","file":"chunk-ZK7MHZFG.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport {\r\n AlertDialog as AlertDialogPrimitive,\r\n AlertDialogTrigger as AlertDialogTriggerPrimitive,\r\n AlertDialogPortal as AlertDialogPortalPrimitive,\r\n AlertDialogBackdrop as AlertDialogBackdropPrimitive,\r\n AlertDialogPopup as AlertDialogPopupPrimitive,\r\n AlertDialogClose as AlertDialogClosePrimitive,\r\n AlertDialogFooter as AlertDialogFooterPrimitive,\r\n AlertDialogTitle as AlertDialogTitlePrimitive,\r\n AlertDialogDescription as AlertDialogDescriptionPrimitive,\r\n type AlertDialogProps as AlertDialogPrimitiveProps,\r\n type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,\r\n type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,\r\n type AlertDialogBackdropProps as AlertDialogBackdropPrimitiveProps,\r\n type AlertDialogPopupProps as AlertDialogPopupPrimitiveProps,\r\n type AlertDialogCloseProps as AlertDialogClosePrimitiveProps,\r\n type AlertDialogFooterProps as AlertDialogFooterPrimitiveProps,\r\n type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,\r\n type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,\r\n} from '../primitives/alert-dialog';\r\nimport { Button } from './button';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype AlertDialogProps = AlertDialogPrimitiveProps;\r\n\r\nfunction AlertDialog(props: AlertDialogProps) {\r\n return <AlertDialogPrimitive {...props} />;\r\n}\r\n\r\ntype AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;\r\n\r\nfunction AlertDialogTrigger(props: AlertDialogTriggerProps) {\r\n return <AlertDialogTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype AlertDialogCloseProps = AlertDialogClosePrimitiveProps;\r\n\r\nfunction AlertDialogClose(props: AlertDialogCloseProps) {\r\n return <AlertDialogClosePrimitive {...props} />;\r\n}\r\n\r\ntype AlertDialogBackdropProps = AlertDialogBackdropPrimitiveProps;\r\n\r\nfunction AlertDialogBackdrop({ className, ...props }: AlertDialogBackdropProps) {\r\n return (\r\n <AlertDialogBackdropPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogPopupProps = AlertDialogPopupPrimitiveProps;\r\n\r\nfunction AlertDialogPopup({ className, children, ...props }: AlertDialogPopupProps) {\r\n return (\r\n <AlertDialogPortalPrimitive>\r\n <AlertDialogBackdrop />\r\n <AlertDialogPopupPrimitive\r\n className={cn(\r\n \"group/alert-dialog-popup fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-md translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </AlertDialogPopupPrimitive>\r\n </AlertDialogPortalPrimitive>\r\n );\r\n}\r\n\r\ntype AlertDialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps) {\r\n return (\r\n <div\r\n data-slot=\"alert-dialog-header\"\r\n className={cn(\r\n \"px-4 py-4 grid grid-cols-[auto_1fr] items-start bg-bg-primary\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction AlertDialogContent({ className, ...props }: AlertDialogContentProps) {\r\n return (\r\n <div\r\n data-slot=\"alert-dialog-content\"\r\n className={cn(\"px-4 pb-4 max-h-[60vh] overflow-y-auto\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogFooterProps = AlertDialogFooterPrimitiveProps;\r\n\r\nfunction AlertDialogFooter({ className, ...props }: AlertDialogFooterProps) {\r\n return (\r\n <AlertDialogFooterPrimitive\r\n className={cn(\r\n \"flex gap-2 items-center justify-end bg-bg-primary px-4 py-3 border-t border-border-tertiary shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)]\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogTitleProps = AlertDialogTitlePrimitiveProps;\r\n\r\nfunction AlertDialogTitle({ className, ...props }: AlertDialogTitleProps) {\r\n return (\r\n <AlertDialogTitlePrimitive\r\n className={cn(\r\n \"col-start-2 [&:not(:has(~_[data-slot=alert-dialog-description]))]:row-span-2 [&:not(:has(~_[data-slot=alert-dialog-description]))]:self-center text-label-bold-2 text-text-primary\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogDescriptionProps = AlertDialogDescriptionPrimitiveProps;\r\n\r\nfunction AlertDialogDescription({ className, ...props }: AlertDialogDescriptionProps) {\r\n return (\r\n <AlertDialogDescriptionPrimitive\r\n className={cn(\"col-start-2 mt-0.5 text-body-regular-3 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogIconProps = React.ComponentProps<\"div\"> & {\r\n variant?: \"brand\" | \"error\";\r\n};\r\n\r\nfunction AlertDialogIcon({\r\n className,\r\n variant = \"brand\",\r\n ...props\r\n}: AlertDialogIconProps) {\r\n return (\r\n <div\r\n data-slot=\"alert-dialog-icon\"\r\n data-variant={variant}\r\n className={cn(\r\n \"row-span-2 flex items-center justify-center rounded-lg mt-px mr-3 p-2.5 [&_svg]:size-4 text-fg-white\",\r\n variant === \"brand\" &&\r\n \"bg-bg-brand-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n variant === \"error\" &&\r\n \"bg-bg-error-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-utility-error-100)]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogActionProps = React.ComponentProps<typeof Button>;\r\n\r\nfunction AlertDialogAction({\r\n color = \"destructive\",\r\n variant = \"primary\",\r\n ...props\r\n}: AlertDialogActionProps) {\r\n return (\r\n <Button\r\n data-slot=\"alert-dialog-action\"\r\n color={color}\r\n variant={variant}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogCancelProps = AlertDialogClosePrimitiveProps &\r\n Pick<React.ComponentProps<typeof Button>, \"color\" | \"variant\" | \"size\">;\r\n\r\nfunction AlertDialogCancel({\r\n color = \"default\",\r\n variant = \"secondary\",\r\n size,\r\n ...props\r\n}: AlertDialogCancelProps) {\r\n return (\r\n <AlertDialogClosePrimitive\r\n data-slot=\"alert-dialog-cancel\"\r\n render={<Button color={color} variant={variant} size={size} />}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n AlertDialog,\r\n AlertDialogTrigger,\r\n AlertDialogClose,\r\n AlertDialogPopup,\r\n AlertDialogHeader,\r\n AlertDialogContent,\r\n AlertDialogFooter,\r\n AlertDialogTitle,\r\n AlertDialogDescription,\r\n AlertDialogIcon,\r\n AlertDialogBackdrop,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n type AlertDialogProps,\r\n type AlertDialogTriggerProps,\r\n type AlertDialogCloseProps,\r\n type AlertDialogPopupProps,\r\n type AlertDialogHeaderProps,\r\n type AlertDialogContentProps,\r\n type AlertDialogFooterProps,\r\n type AlertDialogTitleProps,\r\n type AlertDialogDescriptionProps,\r\n type AlertDialogIconProps,\r\n type AlertDialogBackdropProps,\r\n type AlertDialogActionProps,\r\n type AlertDialogCancelProps,\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/alert-dialog.tsx"],"names":["AlertDialog","props","jsx","AlertDialogTrigger","AlertDialogClose","AlertDialogBackdrop","className","cn","AlertDialogPopup","children","jsxs","AlertDialogPortal","AlertDialogHeader","AlertDialogContent","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogIcon","variant","AlertDialogAction","color","Button","AlertDialogCancel","size"],"mappings":"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","file":"chunk-OBS7TDVV.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport {\r\n AlertDialog as AlertDialogPrimitive,\r\n AlertDialogTrigger as AlertDialogTriggerPrimitive,\r\n AlertDialogPortal as AlertDialogPortalPrimitive,\r\n AlertDialogBackdrop as AlertDialogBackdropPrimitive,\r\n AlertDialogPopup as AlertDialogPopupPrimitive,\r\n AlertDialogClose as AlertDialogClosePrimitive,\r\n AlertDialogFooter as AlertDialogFooterPrimitive,\r\n AlertDialogTitle as AlertDialogTitlePrimitive,\r\n AlertDialogDescription as AlertDialogDescriptionPrimitive,\r\n type AlertDialogProps as AlertDialogPrimitiveProps,\r\n type AlertDialogTriggerProps as AlertDialogTriggerPrimitiveProps,\r\n type AlertDialogPortalProps as AlertDialogPortalPrimitiveProps,\r\n type AlertDialogBackdropProps as AlertDialogBackdropPrimitiveProps,\r\n type AlertDialogPopupProps as AlertDialogPopupPrimitiveProps,\r\n type AlertDialogCloseProps as AlertDialogClosePrimitiveProps,\r\n type AlertDialogFooterProps as AlertDialogFooterPrimitiveProps,\r\n type AlertDialogTitleProps as AlertDialogTitlePrimitiveProps,\r\n type AlertDialogDescriptionProps as AlertDialogDescriptionPrimitiveProps,\r\n} from '../primitives/alert-dialog';\r\nimport { Button } from './button';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype AlertDialogProps = AlertDialogPrimitiveProps;\r\n\r\nfunction AlertDialog(props: AlertDialogProps) {\r\n return <AlertDialogPrimitive {...props} />;\r\n}\r\n\r\ntype AlertDialogTriggerProps = AlertDialogTriggerPrimitiveProps;\r\n\r\nfunction AlertDialogTrigger(props: AlertDialogTriggerProps) {\r\n return <AlertDialogTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype AlertDialogCloseProps = AlertDialogClosePrimitiveProps;\r\n\r\nfunction AlertDialogClose(props: AlertDialogCloseProps) {\r\n return <AlertDialogClosePrimitive {...props} />;\r\n}\r\n\r\ntype AlertDialogBackdropProps = AlertDialogBackdropPrimitiveProps;\r\n\r\nfunction AlertDialogBackdrop({ className, ...props }: AlertDialogBackdropProps) {\r\n return (\r\n <AlertDialogBackdropPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogPopupProps = AlertDialogPopupPrimitiveProps;\r\n\r\nfunction AlertDialogPopup({ className, children, ...props }: AlertDialogPopupProps) {\r\n return (\r\n <AlertDialogPortalPrimitive>\r\n <AlertDialogBackdrop />\r\n <AlertDialogPopupPrimitive\r\n className={cn(\r\n \"group/alert-dialog-popup fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-md translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </AlertDialogPopupPrimitive>\r\n </AlertDialogPortalPrimitive>\r\n );\r\n}\r\n\r\ntype AlertDialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps) {\r\n return (\r\n <div\r\n data-slot=\"alert-dialog-header\"\r\n className={cn(\r\n \"px-4 py-4 grid grid-cols-[auto_1fr] items-start bg-bg-primary\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction AlertDialogContent({ className, ...props }: AlertDialogContentProps) {\r\n return (\r\n <div\r\n data-slot=\"alert-dialog-content\"\r\n className={cn(\"px-4 pb-4 max-h-[60vh] overflow-y-auto\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogFooterProps = AlertDialogFooterPrimitiveProps;\r\n\r\nfunction AlertDialogFooter({ className, ...props }: AlertDialogFooterProps) {\r\n return (\r\n <AlertDialogFooterPrimitive\r\n className={cn(\r\n \"flex gap-2 items-center justify-end bg-bg-primary px-4 py-3 border-t border-border-tertiary shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)]\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogTitleProps = AlertDialogTitlePrimitiveProps;\r\n\r\nfunction AlertDialogTitle({ className, ...props }: AlertDialogTitleProps) {\r\n return (\r\n <AlertDialogTitlePrimitive\r\n className={cn(\r\n \"col-start-2 [&:not(:has(~_[data-slot=alert-dialog-description]))]:row-span-2 [&:not(:has(~_[data-slot=alert-dialog-description]))]:self-center text-label-bold-2 text-text-primary\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogDescriptionProps = AlertDialogDescriptionPrimitiveProps;\r\n\r\nfunction AlertDialogDescription({ className, ...props }: AlertDialogDescriptionProps) {\r\n return (\r\n <AlertDialogDescriptionPrimitive\r\n className={cn(\"col-start-2 mt-0.5 text-body-regular-3 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogIconProps = React.ComponentProps<\"div\"> & {\r\n variant?: \"brand\" | \"error\";\r\n};\r\n\r\nfunction AlertDialogIcon({\r\n className,\r\n variant = \"brand\",\r\n ...props\r\n}: AlertDialogIconProps) {\r\n return (\r\n <div\r\n data-slot=\"alert-dialog-icon\"\r\n data-variant={variant}\r\n className={cn(\r\n \"row-span-2 flex items-center justify-center rounded-lg mt-px mr-3 p-2.5 [&_svg]:size-4 text-fg-white\",\r\n variant === \"brand\" &&\r\n \"bg-bg-brand-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n variant === \"error\" &&\r\n \"bg-bg-error-solid shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-utility-error-100)]\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogActionProps = React.ComponentProps<typeof Button>;\r\n\r\nfunction AlertDialogAction({\r\n color = \"destructive\",\r\n variant = \"primary\",\r\n ...props\r\n}: AlertDialogActionProps) {\r\n return (\r\n <Button\r\n data-slot=\"alert-dialog-action\"\r\n color={color}\r\n variant={variant}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype AlertDialogCancelProps = AlertDialogClosePrimitiveProps &\r\n Pick<React.ComponentProps<typeof Button>, \"color\" | \"variant\" | \"size\">;\r\n\r\nfunction AlertDialogCancel({\r\n color = \"default\",\r\n variant = \"secondary\",\r\n size,\r\n ...props\r\n}: AlertDialogCancelProps) {\r\n return (\r\n <AlertDialogClosePrimitive\r\n data-slot=\"alert-dialog-cancel\"\r\n render={<Button color={color} variant={variant} size={size} />}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n AlertDialog,\r\n AlertDialogTrigger,\r\n AlertDialogClose,\r\n AlertDialogPopup,\r\n AlertDialogHeader,\r\n AlertDialogContent,\r\n AlertDialogFooter,\r\n AlertDialogTitle,\r\n AlertDialogDescription,\r\n AlertDialogIcon,\r\n AlertDialogBackdrop,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n type AlertDialogProps,\r\n type AlertDialogTriggerProps,\r\n type AlertDialogCloseProps,\r\n type AlertDialogPopupProps,\r\n type AlertDialogHeaderProps,\r\n type AlertDialogContentProps,\r\n type AlertDialogFooterProps,\r\n type AlertDialogTitleProps,\r\n type AlertDialogDescriptionProps,\r\n type AlertDialogIconProps,\r\n type AlertDialogBackdropProps,\r\n type AlertDialogActionProps,\r\n type AlertDialogCancelProps,\r\n};\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$2}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$2}from'./chunk-FIDOWSDH.js';import {a,b,c}from'./chunk-NGSCUYDU.js';import {b as b$1}from'./chunk-DQGZIFNP.js';import {a as a$1}from'./chunk-T7HRX3EC.js';import u from'react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {format,endOfWeek,startOfWeek,endOfMonth,startOfMonth,subMonths,endOfYear,startOfYear,subYears}from'date-fns';import {ChevronDown}from'lucide-react';import'react-day-picker';import {cn}from'@xploreu/lib/cn';import {jsxs,jsx}from'react/jsx-runtime';var N=[{label:"Today",value:"today",getDateRange:()=>{let e=new Date;return {from:e,to:e}}},{value:"last-7-days",label:"Last 7 days",getDateRange:()=>({from:new Date(Date.now()-8640*60*1e3),to:new Date})},{label:"This Week",value:"this-week",getDateRange:()=>{let e=new Date;return {from:startOfWeek(e,{weekStartsOn:1}),to:endOfWeek(e,{weekStartsOn:1})}}},{label:"This Month",value:"this-month",getDateRange:()=>{let e=new Date;return {from:startOfMonth(e),to:endOfMonth(e)}}},{label:"Last 3 Months",value:"last-3-months",getDateRange:()=>{let e=new Date;return {from:subMonths(e,3),to:e}}},{label:"Last 6 Months",value:"last-6-months",getDateRange:()=>{let e=new Date;return {from:subMonths(e,6),to:e}}},{label:"This Year",value:"this-year",getDateRange:()=>{let e=new Date;return {from:startOfYear(e),to:endOfYear(e)}}},{label:"Last Year",value:"last-year",getDateRange:()=>{let e=subYears(new Date,1);return {from:startOfYear(e),to:endOfYear(e)}}},{label:"Custom Range",value:"custom-range",getDateRange:()=>{}}];function ne({className:e,value:P,onValueChange:p,defaultValue:V,required:d,disabled:b$2,placeholder:S="Pick a date",options:D=true,disabledDates:Y}){let T=u.useCallback(t=>{p?.(t);},[p,d]),[a$3,v]=useControlledState({value:P,defaultValue:V,onChange:T}),[q,h]=u.useState(a$3?.from||new Date),[z,B]=u.useState(false),[F,y]=u.useState("days"),f=!!a$3?.from,s=(t,n)=>!t||!n?false:t.getFullYear()===n.getFullYear()&&t.getMonth()===n.getMonth()&&t.getDate()===n.getDate(),W=t=>{if(!a$3?.from||!a$3?.to)return false;if(t.value==="custom-range")return N.every(o=>{if(o.value==="custom-range")return true;let l=o.getDateRange();return !l?.from||!l?.to?true:!(s(a$3.from,l.from)&&s(a$3.to,l.to))});let n=t.getDateRange();return !n?.from||!n?.to?false:s(a$3.from,n.from)&&s(a$3.to,n.to)};return jsxs(a,{open:b$2?false:z,onOpenChange:B,children:[jsx(b,{render:jsxs(b$1,{className:cn("group h-9 w-full justify-between rounded-xp-card-base border px-3 text-body-medium-3 transition-colors","border-border-primary bg-bg-primary text-text-secondary hover:bg-bg-primary-hover",f&&"border-border-brand bg-bg-brand-primary text-text-brand-secondary","data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary","disabled:pointer-events-none disabled:opacity-50",e),variant:null,size:null,disabled:b$2,children:[jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[jsx(a$1,{className:cn("size-4 shrink-0",f?"text-fg-brand-primary":"text-fg-quaternary")}),jsx("span",{className:"truncate",children:a$3?.from?a$3.to?`${format(a$3.from,"LLL dd, y")} - ${format(a$3.to,"LLL dd, y")}`:format(a$3.from,"LLL dd, y"):S})]}),jsx(ChevronDown,{className:cn("size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180",f?"text-fg-brand-primary":"text-fg-quaternary")})]})}),jsxs(c,{className:cn("w-auto border-0",D?"rounded-2xl p-xp-lg flex gap-6":"p-xp-none bg-transparent"),children:[D&&jsx("div",{className:"flex flex-col gap-xp-md w-[135px]",children:N.map(t=>{let n=W(t);return jsx(b$1,{className:"justify-start px-xp-xl",variant:n?"tertiary-accent":null,onClick:()=>{let o=t.getDateRange();o&&(v(o),y("days"),h(o.from));},children:t.label},t.value)})}),jsx(a$2,{autoFocus:true,disabled:Y,mode:"range",month:q,navView:F,numberOfMonths:2,selected:a$3,onMonthChange:h,onNavViewChange:y,onSelect:t=>{d&&!t||v(t);}})]})]})}export{ne as a};//# sourceMappingURL=chunk-QIP6KFG2.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-QIP6KFG2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/date-range-picker.tsx"],"names":["dateRangeOptions","t","now","startOfWeek","endOfWeek","startOfMonth","endOfMonth","subMonths","startOfYear","endOfYear","ly","subYears","DateRangePicker","className","valueProp","onValueChangeProp","defaultValue","required","disabled","placeholder","options","disabledDates","onValueChange","React","value","setValue","useControlledState","currentMonth","setCurrentMonth","isOpen","setIsOpen","navView","setNavView","hasValue","isSameDay","date1","date2","isOptionActive","option","opt","optRange","optionRange","jsxs","Popover","jsx","PopoverTrigger","Button","cn","calendar_icon_default","format","ChevronDown","PopoverPopup","active","dateRange","Calendar","val"],"mappings":"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","file":"chunk-C675EWZW.js","sourcesContent":["\"use client\"\r\n\r\nimport React from \"react\"\r\n\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport {\r\n endOfMonth,\r\n endOfWeek,\r\n endOfYear,\r\n format,\r\n startOfMonth,\r\n startOfWeek,\r\n startOfYear,\r\n subMonths,\r\n subYears,\r\n} from \"date-fns\"\r\nimport { ChevronDown } from \"lucide-react\"\r\nimport { type DateRange, type Matcher } from \"react-day-picker\"\r\n\r\nexport type { DateRange }\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { Button } from \"./button\"\r\nimport { Calendar, type NavView } from \"./calendar\"\r\nimport { CalendarIcon } from \"../icons\"\r\nimport { Popover, PopoverPopup, PopoverTrigger } from \"./popover\"\r\n\r\nexport type DateRangePickerProps = {\r\n className?: string\r\n value?: DateRange\r\n defaultValue?: DateRange\r\n required?: boolean\r\n disabled?: boolean\r\n placeholder?: string\r\n options?: boolean\r\n disabledDates?: Matcher | Matcher[] | undefined\r\n} & ({\r\n required: true\r\n onValueChange?: (value: DateRange) => void\r\n} | {\r\n required?: false\r\n onValueChange?: (value: DateRange | undefined) => void\r\n})\r\n\r\ntype DateRangeOption = {\r\n label: string\r\n value: string\r\n getDateRange: () => DateRange | undefined\r\n}\r\n\r\nconst dateRangeOptions: DateRangeOption[] = [\r\n {\r\n label: \"Today\",\r\n value: \"today\",\r\n getDateRange: () => { const t = new Date(); return { from: t, to: t } },\r\n },\r\n {\r\n value: \"last-7-days\",\r\n label: \"Last 7 days\",\r\n getDateRange: () => ({\r\n from: new Date(Date.now() - 6 * 24 * 60 * 60 * 1000), // 6 days in milliseconds\r\n to: new Date(),\r\n }),\r\n },\r\n {\r\n label: \"This Week\",\r\n value: \"this-week\",\r\n getDateRange: () => {\r\n const now = new Date()\r\n return { from: startOfWeek(now, { weekStartsOn: 1 }), to: endOfWeek(now, { weekStartsOn: 1 }) }\r\n },\r\n },\r\n {\r\n label: \"This Month\",\r\n value: \"this-month\",\r\n getDateRange: () => { const now = new Date(); return { from: startOfMonth(now), to: endOfMonth(now) } },\r\n },\r\n {\r\n label: \"Last 3 Months\",\r\n value: \"last-3-months\",\r\n getDateRange: () => { const now = new Date(); return { from: subMonths(now, 3), to: now } },\r\n },\r\n {\r\n label: \"Last 6 Months\",\r\n value: \"last-6-months\",\r\n getDateRange: () => { const now = new Date(); return { from: subMonths(now, 6), to: now } },\r\n },\r\n {\r\n label: \"This Year\",\r\n value: \"this-year\",\r\n getDateRange: () => { const now = new Date(); return { from: startOfYear(now), to: endOfYear(now) } },\r\n },\r\n {\r\n label: \"Last Year\",\r\n value: \"last-year\",\r\n getDateRange: () => { const ly = subYears(new Date(), 1); return { from: startOfYear(ly), to: endOfYear(ly) } },\r\n },\r\n {\r\n label: \"Custom Range\",\r\n value: \"custom-range\",\r\n getDateRange: () => undefined,\r\n },\r\n]\r\n\r\nfunction DateRangePicker({\r\n className,\r\n value: valueProp,\r\n onValueChange: onValueChangeProp,\r\n defaultValue,\r\n required,\r\n disabled,\r\n placeholder = \"Pick a date\",\r\n options = true,\r\n disabledDates,\r\n}: DateRangePickerProps) {\r\n const onValueChange = React.useCallback(\r\n (value: DateRange | undefined) => {\r\n if (required) onValueChangeProp?.(value as DateRange)\r\n else onValueChangeProp?.(value)\r\n },\r\n [onValueChangeProp, required],\r\n )\r\n\r\n const [value, setValue] = useControlledState<DateRange | undefined>({\r\n value: valueProp,\r\n defaultValue,\r\n onChange: onValueChange,\r\n })\r\n\r\n const [currentMonth, setCurrentMonth] = React.useState<Date | undefined>(value?.from || new Date())\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n const [navView, setNavView] = React.useState<NavView>(\"days\")\r\n\r\n const hasValue = !!value?.from\r\n\r\n const isSameDay = (date1?: Date, date2?: Date): boolean => {\r\n if (!date1 || !date2) return false\r\n return (\r\n date1.getFullYear() === date2.getFullYear() &&\r\n date1.getMonth() === date2.getMonth() &&\r\n date1.getDate() === date2.getDate()\r\n )\r\n }\r\n\r\n const isOptionActive = (option: DateRangeOption): boolean => {\r\n if (!value?.from || !value?.to) return false\r\n if (option.value === \"custom-range\") {\r\n return dateRangeOptions.every((opt) => {\r\n if (opt.value === \"custom-range\") return true\r\n const optRange = opt.getDateRange()\r\n if (!optRange?.from || !optRange?.to) return true\r\n return !(isSameDay(value.from, optRange.from) && isSameDay(value.to, optRange.to))\r\n })\r\n }\r\n const optionRange = option.getDateRange()\r\n if (!optionRange?.from || !optionRange?.to) return false\r\n return isSameDay(value.from, optionRange.from) && isSameDay(value.to, optionRange.to)\r\n }\r\n\r\n return (\r\n <Popover open={disabled ? false : isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger\r\n render={\r\n <Button\r\n className={cn(\r\n \"group h-9 w-full justify-between rounded-xp-card-base border px-3 text-body-medium-3 transition-colors\",\r\n \"border-border-primary bg-bg-primary text-text-secondary hover:bg-bg-primary-hover\",\r\n hasValue &&\r\n \"border-border-brand bg-bg-brand-primary text-text-brand-secondary\",\r\n \"data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary\",\r\n \"disabled:pointer-events-none disabled:opacity-50\",\r\n className,\r\n )}\r\n variant={null}\r\n size={null}\r\n disabled={disabled}\r\n >\r\n <span className=\"flex min-w-0 items-center gap-2\">\r\n <CalendarIcon\r\n className={cn(\r\n \"size-4 shrink-0\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\",\r\n )}\r\n />\r\n <span className=\"truncate\">\r\n {value?.from\r\n ? value.to\r\n ? `${format(value.from, \"LLL dd, y\")} - ${format(value.to, \"LLL dd, y\")}`\r\n : format(value.from, \"LLL dd, y\")\r\n : placeholder}\r\n </span>\r\n </span>\r\n <ChevronDown\r\n className={cn(\r\n \"size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\",\r\n )}\r\n />\r\n </Button>\r\n }\r\n />\r\n <PopoverPopup\r\n className={cn(\r\n \"w-auto border-0\",\r\n options ? \"rounded-2xl p-xp-lg flex gap-6\" : \"p-xp-none bg-transparent\",\r\n )}\r\n >\r\n {options && (\r\n <div className=\"flex flex-col gap-xp-md w-[135px]\">\r\n {dateRangeOptions.map((option) => {\r\n const active = isOptionActive(option)\r\n return (\r\n <Button\r\n key={option.value}\r\n className=\"justify-start px-xp-xl\"\r\n variant={active ? \"tertiary-accent\" : null}\r\n onClick={() => {\r\n const dateRange = option.getDateRange()\r\n if (dateRange) {\r\n setValue(dateRange)\r\n setNavView(\"days\")\r\n setCurrentMonth(dateRange.from)\r\n }\r\n }}\r\n >\r\n {option.label}\r\n </Button>\r\n )\r\n })}\r\n </div>\r\n )}\r\n <Calendar\r\n autoFocus\r\n disabled={disabledDates}\r\n mode=\"range\"\r\n month={currentMonth}\r\n navView={navView}\r\n numberOfMonths={2}\r\n selected={value}\r\n onMonthChange={setCurrentMonth}\r\n onNavViewChange={setNavView}\r\n onSelect={(val) => {\r\n if (required && !val) return\r\n setValue(val)\r\n }}\r\n />\r\n </PopoverPopup>\r\n </Popover>\r\n )\r\n}\r\n\r\nexport { DateRangePicker }\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/date-range-picker.tsx"],"names":["dateRangeOptions","t","now","startOfWeek","endOfWeek","startOfMonth","endOfMonth","subMonths","startOfYear","endOfYear","ly","subYears","DateRangePicker","className","valueProp","onValueChangeProp","defaultValue","required","disabled","placeholder","options","disabledDates","onValueChange","React","value","setValue","useControlledState","currentMonth","setCurrentMonth","isOpen","setIsOpen","navView","setNavView","hasValue","isSameDay","date1","date2","isOptionActive","option","opt","optRange","optionRange","jsxs","Popover","jsx","PopoverTrigger","Button","cn","calendar_icon_default","format","ChevronDown","PopoverPopup","active","dateRange","Calendar","val"],"mappings":"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","file":"chunk-QIP6KFG2.js","sourcesContent":["\"use client\"\r\n\r\nimport React from \"react\"\r\n\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport {\r\n endOfMonth,\r\n endOfWeek,\r\n endOfYear,\r\n format,\r\n startOfMonth,\r\n startOfWeek,\r\n startOfYear,\r\n subMonths,\r\n subYears,\r\n} from \"date-fns\"\r\nimport { ChevronDown } from \"lucide-react\"\r\nimport { type DateRange, type Matcher } from \"react-day-picker\"\r\n\r\nexport type { DateRange }\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { Button } from \"./button\"\r\nimport { Calendar, type NavView } from \"./calendar\"\r\nimport { CalendarIcon } from \"../icons\"\r\nimport { Popover, PopoverPopup, PopoverTrigger } from \"./popover\"\r\n\r\nexport type DateRangePickerProps = {\r\n className?: string\r\n value?: DateRange\r\n defaultValue?: DateRange\r\n required?: boolean\r\n disabled?: boolean\r\n placeholder?: string\r\n options?: boolean\r\n disabledDates?: Matcher | Matcher[] | undefined\r\n} & ({\r\n required: true\r\n onValueChange?: (value: DateRange) => void\r\n} | {\r\n required?: false\r\n onValueChange?: (value: DateRange | undefined) => void\r\n})\r\n\r\ntype DateRangeOption = {\r\n label: string\r\n value: string\r\n getDateRange: () => DateRange | undefined\r\n}\r\n\r\nconst dateRangeOptions: DateRangeOption[] = [\r\n {\r\n label: \"Today\",\r\n value: \"today\",\r\n getDateRange: () => { const t = new Date(); return { from: t, to: t } },\r\n },\r\n {\r\n value: \"last-7-days\",\r\n label: \"Last 7 days\",\r\n getDateRange: () => ({\r\n from: new Date(Date.now() - 6 * 24 * 60 * 60 * 1000), // 6 days in milliseconds\r\n to: new Date(),\r\n }),\r\n },\r\n {\r\n label: \"This Week\",\r\n value: \"this-week\",\r\n getDateRange: () => {\r\n const now = new Date()\r\n return { from: startOfWeek(now, { weekStartsOn: 1 }), to: endOfWeek(now, { weekStartsOn: 1 }) }\r\n },\r\n },\r\n {\r\n label: \"This Month\",\r\n value: \"this-month\",\r\n getDateRange: () => { const now = new Date(); return { from: startOfMonth(now), to: endOfMonth(now) } },\r\n },\r\n {\r\n label: \"Last 3 Months\",\r\n value: \"last-3-months\",\r\n getDateRange: () => { const now = new Date(); return { from: subMonths(now, 3), to: now } },\r\n },\r\n {\r\n label: \"Last 6 Months\",\r\n value: \"last-6-months\",\r\n getDateRange: () => { const now = new Date(); return { from: subMonths(now, 6), to: now } },\r\n },\r\n {\r\n label: \"This Year\",\r\n value: \"this-year\",\r\n getDateRange: () => { const now = new Date(); return { from: startOfYear(now), to: endOfYear(now) } },\r\n },\r\n {\r\n label: \"Last Year\",\r\n value: \"last-year\",\r\n getDateRange: () => { const ly = subYears(new Date(), 1); return { from: startOfYear(ly), to: endOfYear(ly) } },\r\n },\r\n {\r\n label: \"Custom Range\",\r\n value: \"custom-range\",\r\n getDateRange: () => undefined,\r\n },\r\n]\r\n\r\nfunction DateRangePicker({\r\n className,\r\n value: valueProp,\r\n onValueChange: onValueChangeProp,\r\n defaultValue,\r\n required,\r\n disabled,\r\n placeholder = \"Pick a date\",\r\n options = true,\r\n disabledDates,\r\n}: DateRangePickerProps) {\r\n const onValueChange = React.useCallback(\r\n (value: DateRange | undefined) => {\r\n if (required) onValueChangeProp?.(value as DateRange)\r\n else onValueChangeProp?.(value)\r\n },\r\n [onValueChangeProp, required],\r\n )\r\n\r\n const [value, setValue] = useControlledState<DateRange | undefined>({\r\n value: valueProp,\r\n defaultValue,\r\n onChange: onValueChange,\r\n })\r\n\r\n const [currentMonth, setCurrentMonth] = React.useState<Date | undefined>(value?.from || new Date())\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n const [navView, setNavView] = React.useState<NavView>(\"days\")\r\n\r\n const hasValue = !!value?.from\r\n\r\n const isSameDay = (date1?: Date, date2?: Date): boolean => {\r\n if (!date1 || !date2) return false\r\n return (\r\n date1.getFullYear() === date2.getFullYear() &&\r\n date1.getMonth() === date2.getMonth() &&\r\n date1.getDate() === date2.getDate()\r\n )\r\n }\r\n\r\n const isOptionActive = (option: DateRangeOption): boolean => {\r\n if (!value?.from || !value?.to) return false\r\n if (option.value === \"custom-range\") {\r\n return dateRangeOptions.every((opt) => {\r\n if (opt.value === \"custom-range\") return true\r\n const optRange = opt.getDateRange()\r\n if (!optRange?.from || !optRange?.to) return true\r\n return !(isSameDay(value.from, optRange.from) && isSameDay(value.to, optRange.to))\r\n })\r\n }\r\n const optionRange = option.getDateRange()\r\n if (!optionRange?.from || !optionRange?.to) return false\r\n return isSameDay(value.from, optionRange.from) && isSameDay(value.to, optionRange.to)\r\n }\r\n\r\n return (\r\n <Popover open={disabled ? false : isOpen} onOpenChange={setIsOpen}>\r\n <PopoverTrigger\r\n render={\r\n <Button\r\n className={cn(\r\n \"group h-9 w-full justify-between rounded-xp-card-base border px-3 text-body-medium-3 transition-colors\",\r\n \"border-border-primary bg-bg-primary text-text-secondary hover:bg-bg-primary-hover\",\r\n hasValue &&\r\n \"border-border-brand bg-bg-brand-primary text-text-brand-secondary\",\r\n \"data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary\",\r\n \"disabled:pointer-events-none disabled:opacity-50\",\r\n className,\r\n )}\r\n variant={null}\r\n size={null}\r\n disabled={disabled}\r\n >\r\n <span className=\"flex min-w-0 items-center gap-2\">\r\n <CalendarIcon\r\n className={cn(\r\n \"size-4 shrink-0\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\",\r\n )}\r\n />\r\n <span className=\"truncate\">\r\n {value?.from\r\n ? value.to\r\n ? `${format(value.from, \"LLL dd, y\")} - ${format(value.to, \"LLL dd, y\")}`\r\n : format(value.from, \"LLL dd, y\")\r\n : placeholder}\r\n </span>\r\n </span>\r\n <ChevronDown\r\n className={cn(\r\n \"size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\",\r\n )}\r\n />\r\n </Button>\r\n }\r\n />\r\n <PopoverPopup\r\n className={cn(\r\n \"w-auto border-0\",\r\n options ? \"rounded-2xl p-xp-lg flex gap-6\" : \"p-xp-none bg-transparent\",\r\n )}\r\n >\r\n {options && (\r\n <div className=\"flex flex-col gap-xp-md w-[135px]\">\r\n {dateRangeOptions.map((option) => {\r\n const active = isOptionActive(option)\r\n return (\r\n <Button\r\n key={option.value}\r\n className=\"justify-start px-xp-xl\"\r\n variant={active ? \"tertiary-accent\" : null}\r\n onClick={() => {\r\n const dateRange = option.getDateRange()\r\n if (dateRange) {\r\n setValue(dateRange)\r\n setNavView(\"days\")\r\n setCurrentMonth(dateRange.from)\r\n }\r\n }}\r\n >\r\n {option.label}\r\n </Button>\r\n )\r\n })}\r\n </div>\r\n )}\r\n <Calendar\r\n autoFocus\r\n disabled={disabledDates}\r\n mode=\"range\"\r\n month={currentMonth}\r\n navView={navView}\r\n numberOfMonths={2}\r\n selected={value}\r\n onMonthChange={setCurrentMonth}\r\n onNavViewChange={setNavView}\r\n onSelect={(val) => {\r\n if (required && !val) return\r\n setValue(val)\r\n }}\r\n />\r\n </PopoverPopup>\r\n </Popover>\r\n )\r\n}\r\n\r\nexport { DateRangePicker }\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$1,e,f,k,i,j,g,h as h$1,m,l}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$1,e,f,k,i,j,g,h as h$1,m,l}from'./chunk-OBS7TDVV.js';import*as r from'react';import {X}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';var b={isOpen:false,config:{title:"",confirmText:"OK",cancelText:"Cancel",denyText:"Deny",variant:"default",showCancel:false,showDeny:false,showCloseButton:false,position:"center",textAlign:"left",footerLayout:"row",className:""},resolver:null},a=null,R={add:t=>{if(!a){console.warn("AlertDialog: Alerter component not mounted");return}a({isOpen:true,config:{confirmText:"OK",cancelText:"Cancel",denyText:"Deny",variant:"default",showCancel:false,showDeny:false,showCloseButton:false,position:"center",textAlign:"left",footerLayout:"row",className:"",...t},resolver:null});},confirm:t=>new Promise(o=>{if(!a){console.warn("AlertDialog: Alerter component not mounted"),o("cancel");return}a({isOpen:true,config:{confirmText:"Confirm",cancelText:"Cancel",denyText:"Deny",variant:"default",showCancel:true,showDeny:false,showCloseButton:false,position:"center",textAlign:"left",footerLayout:"row",className:"",...t},resolver:o});})},h=(t="center")=>({"top-start":"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:left-4 sm:right-auto sm:translate-x-0 sm:translate-y-0","top-center":"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:left-1/2 sm:-translate-x-1/2 sm:translate-y-0","top-end":"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:right-4 sm:left-auto sm:translate-x-0 sm:translate-y-0","bottom-start":"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:left-4 sm:right-auto sm:translate-x-0 sm:translate-y-0","bottom-center":"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:left-1/2 sm:-translate-x-1/2 sm:translate-y-0","bottom-end":"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:right-4 sm:left-auto sm:translate-x-0 sm:translate-y-0",center:"sm:top-1/2 sm:left-1/2 sm:-translate-x-1/2 sm:-translate-y-1/2"})[t];function T(){let[t,o]=r.useState(b);r.useEffect(()=>(a=o,()=>{a=null;}),[]);let x=async()=>{t.config.onConfirm&&await t.config.onConfirm(),t.resolver&&t.resolver("confirm"),o(n=>({...n,isOpen:false,resolver:null}));},C=async()=>{t.config.onDeny&&await t.config.onDeny(),t.resolver&&t.resolver("deny"),o(n=>({...n,isOpen:false,resolver:null}));},i$1=()=>{t.config.onCancel&&t.config.onCancel(),t.resolver&&t.resolver("cancel"),o(n=>({...n,isOpen:false,resolver:null}));};return jsx(a$1,{open:t.isOpen,onOpenChange:n=>{n||i$1();},children:jsxs(e,{className:cn(h(t.config.position),t.config.className),children:[t.config.showCloseButton&&jsxs("button",{type:"button","aria-label":t.config.closeAriaLabel||"Close",className:"absolute right-3.5 top-3.5 rounded-xp-card-base-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground z-10",onClick:i$1,children:[jsx(X,{className:"h-4 w-4"}),jsx("span",{className:"sr-only",children:t.config.closeAriaLabel||"Close"})]}),jsxs(f,{className:cn(t.config.textAlign==="center"?"items-center text-center grid-cols-1":t.config.textAlign==="right"?"items-end text-right":"items-start text-left"),children:[t.config.icon&&jsx(k,{variant:t.config.variant==="destructive"?"error":"brand",children:t.config.icon}),jsx(i,{children:t.config.title}),t.config.description&&jsx(j,{children:t.config.description})]}),t.config.additionalContents&&jsx(g,{children:t.config.additionalContents}),jsxs(h$1,{className:cn(t.config.footerLayout==="col"?"sm:flex-col flex-col gap-2 items-stretch":"flex-row justify-end gap-2 items-center"),children:[t.config.showCancel&&jsx(m,{className:t.config.footerLayout==="col"?"w-full":void 0,onClick:i$1,...t.config.cancelButtonProps,children:t.config.cancelText}),t.config.showDeny&&jsx(l,{className:t.config.footerLayout==="col"?"w-full":void 0,onClick:C,color:t.config.denyButtonProps?.color||"destructive",variant:t.config.denyButtonProps?.variant||"secondary",...t.config.denyButtonProps,children:t.config.denyText}),jsx(l,{className:t.config.footerLayout==="col"?"w-full":void 0,onClick:x,color:t.config.confirmButtonProps?.color||(t.config.variant==="destructive"?"destructive":"default"),variant:t.config.confirmButtonProps?.variant||"primary",...t.config.confirmButtonProps,children:t.config.confirmText})]})]})})}export{R as a,T as b};//# sourceMappingURL=chunk-S4L5WILL.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-S4L5WILL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ui/alerter.tsx"],"names":["globalAlertState","globalSetState","alert","options","resolve","getPositionClasses","position","Alerter","state","setState","handleConfirm","prev","handleDeny","handleCancel","jsx","AlertDialog","open","jsxs","AlertDialogPopup","cn","X","AlertDialogHeader","AlertDialogIcon","AlertDialogTitle","AlertDialogDescription","AlertDialogContent","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"mappings":"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","file":"chunk-YPV6XEV4.js","sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { X } from \"lucide-react\";\r\nimport { cn } from \"@xploreu/lib/cn\";\r\nimport {\r\n AlertDialog,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n AlertDialogContent,\r\n AlertDialogPopup,\r\n AlertDialogDescription,\r\n AlertDialogFooter,\r\n AlertDialogHeader,\r\n AlertDialogIcon,\r\n AlertDialogTitle,\r\n type AlertDialogActionProps,\r\n type AlertDialogCancelProps,\r\n} from \"./alert-dialog\";\r\n\r\n// Types\r\nexport type AlertPosition =\r\n | \"top-start\"\r\n | \"top-center\"\r\n | \"top-end\"\r\n | \"bottom-start\"\r\n | \"bottom-center\"\r\n | \"bottom-end\"\r\n | \"center\";\r\n\r\nexport interface AlertOptions {\r\n title: React.ReactNode;\r\n description?: React.ReactNode;\r\n icon?: React.ReactNode;\r\n confirmText?: string;\r\n cancelText?: string;\r\n denyText?: string;\r\n variant?: \"default\" | \"destructive\";\r\n showCancel?: boolean;\r\n showDeny?: boolean;\r\n position?: AlertPosition;\r\n textAlign?: \"left\" | \"center\" | \"right\";\r\n footerLayout?: \"row\" | \"col\";\r\n showCloseButton?: boolean;\r\n closeAriaLabel?: string;\r\n confirmButtonProps?: AlertDialogActionProps;\r\n cancelButtonProps?: AlertDialogCancelProps;\r\n denyButtonProps?: AlertDialogActionProps;\r\n onConfirm?: () => void | Promise<void>;\r\n onCancel?: () => void;\r\n onDeny?: () => void | Promise<void>;\r\n className?: string;\r\n additionalContents?: React.ReactNode;\r\n}\r\n\r\nexport type AlertResult = \"confirm\" | \"deny\" | \"cancel\";\r\n\r\ninterface AlertState {\r\n isOpen: boolean;\r\n config: AlertOptions;\r\n resolver: ((value: AlertResult) => void) | null;\r\n}\r\n\r\n// Global state\r\nconst globalAlertState: AlertState = {\r\n isOpen: false,\r\n config: {\r\n title: \"\",\r\n confirmText: \"OK\",\r\n cancelText: \"Cancel\",\r\n denyText: \"Deny\",\r\n variant: \"default\",\r\n showCancel: false,\r\n showDeny: false,\r\n showCloseButton: false,\r\n position: \"center\",\r\n textAlign: \"left\",\r\n footerLayout: \"row\",\r\n className: \"\",\r\n },\r\n resolver: null,\r\n};\r\n\r\nlet globalSetState: React.Dispatch<React.SetStateAction<AlertState>> | null = null;\r\n\r\n// Imperative Alert API\r\nexport const alert = {\r\n add: (options: AlertOptions) => {\r\n if (!globalSetState) {\r\n console.warn(\"AlertDialog: Alerter component not mounted\");\r\n return;\r\n }\r\n\r\n globalSetState({\r\n isOpen: true,\r\n config: {\r\n confirmText: \"OK\",\r\n cancelText: \"Cancel\",\r\n denyText: \"Deny\",\r\n variant: \"default\",\r\n showCancel: false,\r\n showDeny: false,\r\n showCloseButton: false,\r\n position: \"center\",\r\n textAlign: \"left\",\r\n footerLayout: \"row\",\r\n className: \"\",\r\n ...options,\r\n },\r\n resolver: null,\r\n });\r\n },\r\n\r\n confirm: (options: AlertOptions): Promise<AlertResult> => {\r\n return new Promise((resolve) => {\r\n if (!globalSetState) {\r\n console.warn(\"AlertDialog: Alerter component not mounted\");\r\n resolve(\"cancel\");\r\n return;\r\n }\r\n\r\n globalSetState({\r\n isOpen: true,\r\n config: {\r\n confirmText: \"Confirm\",\r\n cancelText: \"Cancel\",\r\n denyText: \"Deny\",\r\n variant: \"default\",\r\n showCancel: true,\r\n showDeny: false,\r\n showCloseButton: false,\r\n position: \"center\",\r\n textAlign: \"left\",\r\n footerLayout: \"row\",\r\n className: \"\",\r\n ...options,\r\n },\r\n resolver: resolve,\r\n });\r\n });\r\n },\r\n};\r\n\r\nconst getPositionClasses = (position: AlertPosition = \"center\") => {\r\n const positions: Record<AlertPosition, string> = {\r\n \"top-start\":\r\n \"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:left-4 sm:right-auto sm:translate-x-0 sm:translate-y-0\",\r\n \"top-center\":\r\n \"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:left-1/2 sm:-translate-x-1/2 sm:translate-y-0\",\r\n \"top-end\":\r\n \"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:right-4 sm:left-auto sm:translate-x-0 sm:translate-y-0\",\r\n \"bottom-start\":\r\n \"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:left-4 sm:right-auto sm:translate-x-0 sm:translate-y-0\",\r\n \"bottom-center\":\r\n \"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:left-1/2 sm:-translate-x-1/2 sm:translate-y-0\",\r\n \"bottom-end\":\r\n \"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:right-4 sm:left-auto sm:translate-x-0 sm:translate-y-0\",\r\n center: \"sm:top-1/2 sm:left-1/2 sm:-translate-x-1/2 sm:-translate-y-1/2\",\r\n };\r\n return positions[position];\r\n};\r\n\r\n// Alerter Component (mount once at root layout)\r\nexport function Alerter() {\r\n const [state, setState] = React.useState<AlertState>(globalAlertState);\r\n\r\n React.useEffect(() => {\r\n globalSetState = setState;\r\n return () => {\r\n globalSetState = null;\r\n };\r\n }, []);\r\n\r\n const handleConfirm = async () => {\r\n if (state.config.onConfirm) {\r\n await state.config.onConfirm();\r\n }\r\n if (state.resolver) {\r\n state.resolver(\"confirm\");\r\n }\r\n setState((prev) => ({ ...prev, isOpen: false, resolver: null }));\r\n };\r\n\r\n const handleDeny = async () => {\r\n if (state.config.onDeny) {\r\n await state.config.onDeny();\r\n }\r\n if (state.resolver) {\r\n state.resolver(\"deny\");\r\n }\r\n setState((prev) => ({ ...prev, isOpen: false, resolver: null }));\r\n };\r\n\r\n const handleCancel = () => {\r\n if (state.config.onCancel) {\r\n state.config.onCancel();\r\n }\r\n if (state.resolver) {\r\n state.resolver(\"cancel\");\r\n }\r\n setState((prev) => ({ ...prev, isOpen: false, resolver: null }));\r\n };\r\n\r\n return (\r\n <AlertDialog\r\n open={state.isOpen}\r\n onOpenChange={(open) => {\r\n if (!open) handleCancel();\r\n }}\r\n >\r\n <AlertDialogPopup\r\n className={cn(\r\n getPositionClasses(state.config.position),\r\n state.config.className\r\n )}\r\n >\r\n {state.config.showCloseButton && (\r\n <button\r\n type=\"button\"\r\n aria-label={state.config.closeAriaLabel || \"Close\"}\r\n className=\"absolute right-3.5 top-3.5 rounded-xp-card-base-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground z-10\"\r\n onClick={handleCancel}\r\n >\r\n <X className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">{state.config.closeAriaLabel || \"Close\"}</span>\r\n </button>\r\n )}\r\n <AlertDialogHeader\r\n className={cn(\r\n state.config.textAlign === \"center\"\r\n ? \"items-center text-center grid-cols-1\"\r\n : state.config.textAlign === \"right\"\r\n ? \"items-end text-right\"\r\n : \"items-start text-left\"\r\n )}\r\n >\r\n {state.config.icon && (\r\n <AlertDialogIcon\r\n variant={state.config.variant === \"destructive\" ? \"error\" : \"brand\"}\r\n >\r\n {state.config.icon}\r\n </AlertDialogIcon>\r\n )}\r\n <AlertDialogTitle>{state.config.title}</AlertDialogTitle>\r\n {state.config.description && (\r\n <AlertDialogDescription>\r\n {state.config.description}\r\n </AlertDialogDescription>\r\n )}\r\n </AlertDialogHeader>\r\n {state.config.additionalContents && (\r\n <AlertDialogContent>\r\n {state.config.additionalContents}\r\n </AlertDialogContent>\r\n )}\r\n <AlertDialogFooter\r\n className={cn(\r\n state.config.footerLayout === \"col\"\r\n ? \"sm:flex-col flex-col gap-2 items-stretch\"\r\n : \"flex-row justify-end gap-2 items-center\"\r\n )}\r\n >\r\n {state.config.showCancel && (\r\n <AlertDialogCancel\r\n className={state.config.footerLayout === \"col\" ? \"w-full\" : undefined}\r\n onClick={handleCancel}\r\n {...state.config.cancelButtonProps}\r\n >\r\n {state.config.cancelText}\r\n </AlertDialogCancel>\r\n )}\r\n {state.config.showDeny && (\r\n <AlertDialogAction\r\n className={state.config.footerLayout === \"col\" ? \"w-full\" : undefined}\r\n onClick={handleDeny}\r\n color={state.config.denyButtonProps?.color || \"destructive\"}\r\n variant={state.config.denyButtonProps?.variant || \"secondary\"}\r\n {...state.config.denyButtonProps}\r\n >\r\n {state.config.denyText}\r\n </AlertDialogAction>\r\n )}\r\n <AlertDialogAction\r\n className={state.config.footerLayout === \"col\" ? \"w-full\" : undefined}\r\n onClick={handleConfirm}\r\n color={\r\n state.config.confirmButtonProps?.color ||\r\n (state.config.variant === \"destructive\" ? \"destructive\" : \"default\")\r\n }\r\n variant={state.config.confirmButtonProps?.variant || \"primary\"}\r\n {...state.config.confirmButtonProps}\r\n >\r\n {state.config.confirmText}\r\n </AlertDialogAction>\r\n </AlertDialogFooter>\r\n </AlertDialogPopup>\r\n </AlertDialog>\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/ui/alerter.tsx"],"names":["globalAlertState","globalSetState","alert","options","resolve","getPositionClasses","position","Alerter","state","setState","handleConfirm","prev","handleDeny","handleCancel","jsx","AlertDialog","open","jsxs","AlertDialogPopup","cn","X","AlertDialogHeader","AlertDialogIcon","AlertDialogTitle","AlertDialogDescription","AlertDialogContent","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"mappings":"mMAgEA,IAAMA,CAAAA,CAA+B,CACnC,MAAA,CAAQ,KAAA,CACR,MAAA,CAAQ,CACN,KAAA,CAAO,EAAA,CACP,WAAA,CAAa,IAAA,CACb,UAAA,CAAY,SACZ,QAAA,CAAU,MAAA,CACV,OAAA,CAAS,SAAA,CACT,UAAA,CAAY,KAAA,CACZ,QAAA,CAAU,KAAA,CACV,eAAA,CAAiB,KAAA,CACjB,QAAA,CAAU,QAAA,CACV,SAAA,CAAW,MAAA,CACX,YAAA,CAAc,KAAA,CACd,UAAW,EACb,CAAA,CACA,QAAA,CAAU,IACZ,CAAA,CAEIC,CAAAA,CAA0E,IAAA,CAGjEC,CAAAA,CAAQ,CACnB,GAAA,CAAMC,CAAAA,EAA0B,CAC9B,GAAI,CAACF,CAAAA,CAAgB,CACnB,QAAQ,IAAA,CAAK,4CAA4C,CAAA,CACzD,MACF,CAEAA,CAAAA,CAAe,CACb,MAAA,CAAQ,IAAA,CACR,MAAA,CAAQ,CACN,WAAA,CAAa,IAAA,CACb,UAAA,CAAY,QAAA,CACZ,QAAA,CAAU,OACV,OAAA,CAAS,SAAA,CACT,UAAA,CAAY,KAAA,CACZ,QAAA,CAAU,KAAA,CACV,eAAA,CAAiB,KAAA,CACjB,QAAA,CAAU,QAAA,CACV,SAAA,CAAW,MAAA,CACX,YAAA,CAAc,KAAA,CACd,SAAA,CAAW,EAAA,CACX,GAAGE,CACL,CAAA,CACA,QAAA,CAAU,IACZ,CAAC,EACH,CAAA,CAEA,OAAA,CAAUA,CAAAA,EACD,IAAI,OAAA,CAASC,CAAAA,EAAY,CAC9B,GAAI,CAACH,CAAAA,CAAgB,CACnB,OAAA,CAAQ,IAAA,CAAK,4CAA4C,CAAA,CACzDG,CAAAA,CAAQ,QAAQ,CAAA,CAChB,MACF,CAEAH,CAAAA,CAAe,CACb,MAAA,CAAQ,IAAA,CACR,MAAA,CAAQ,CACN,WAAA,CAAa,UACb,UAAA,CAAY,QAAA,CACZ,QAAA,CAAU,MAAA,CACV,OAAA,CAAS,SAAA,CACT,UAAA,CAAY,IAAA,CACZ,QAAA,CAAU,KAAA,CACV,eAAA,CAAiB,KAAA,CACjB,QAAA,CAAU,QAAA,CACV,SAAA,CAAW,MAAA,CACX,YAAA,CAAc,KAAA,CACd,SAAA,CAAW,EAAA,CACX,GAAGE,CACL,CAAA,CACA,QAAA,CAAUC,CACZ,CAAC,EACH,CAAC,CAEL,CAAA,CAEMC,CAAAA,CAAqB,CAACC,EAA0B,QAAA,GAAA,CACH,CAC/C,WAAA,CACE,0GAAA,CACF,YAAA,CACE,iGAAA,CACF,SAAA,CACE,0GAAA,CACF,cAAA,CACE,4HAAA,CACF,eAAA,CACE,mHAAA,CACF,YAAA,CACE,4HAAA,CACF,MAAA,CAAQ,gEACV,GACiBA,CAAQ,EAIpB,SAASC,CAAAA,EAAU,CACxB,GAAM,CAACC,CAAAA,CAAOC,CAAQ,CAAA,CAAU,CAAA,CAAA,QAAA,CAAqBT,CAAgB,CAAA,CAE/D,CAAA,CAAA,SAAA,CAAU,KACdC,CAAAA,CAAiBQ,EACV,IAAM,CACXR,CAAAA,CAAiB,KACnB,CAAA,CAAA,CACC,EAAE,CAAA,CAEL,IAAMS,CAAAA,CAAgB,SAAY,CAC5BF,CAAAA,CAAM,MAAA,CAAO,SAAA,EACf,MAAMA,EAAM,MAAA,CAAO,SAAA,EAAU,CAE3BA,CAAAA,CAAM,QAAA,EACRA,CAAAA,CAAM,QAAA,CAAS,SAAS,CAAA,CAE1BC,CAAAA,CAAUE,CAAAA,GAAU,CAAE,GAAGA,CAAAA,CAAM,MAAA,CAAQ,KAAA,CAAO,SAAU,IAAK,CAAA,CAAE,EACjE,CAAA,CAEMC,CAAAA,CAAa,SAAY,CACzBJ,CAAAA,CAAM,MAAA,CAAO,MAAA,EACf,MAAMA,CAAAA,CAAM,MAAA,CAAO,MAAA,EAAO,CAExBA,CAAAA,CAAM,UACRA,CAAAA,CAAM,QAAA,CAAS,MAAM,CAAA,CAEvBC,CAAAA,CAAUE,CAAAA,GAAU,CAAE,GAAGA,CAAAA,CAAM,MAAA,CAAQ,KAAA,CAAO,QAAA,CAAU,IAAK,CAAA,CAAE,EACjE,CAAA,CAEME,IAAe,IAAM,CACrBL,CAAAA,CAAM,MAAA,CAAO,QAAA,EACfA,CAAAA,CAAM,MAAA,CAAO,QAAA,EAAS,CAEpBA,CAAAA,CAAM,QAAA,EACRA,CAAAA,CAAM,QAAA,CAAS,QAAQ,CAAA,CAEzBC,CAAAA,CAAUE,CAAAA,GAAU,CAAE,GAAGA,CAAAA,CAAM,MAAA,CAAQ,KAAA,CAAO,QAAA,CAAU,IAAK,CAAA,CAAE,EACjE,CAAA,CAEA,OACEG,GAAAA,CAACC,GAAAA,CAAA,CACC,IAAA,CAAMP,EAAM,MAAA,CACZ,YAAA,CAAeQ,CAAAA,EAAS,CACjBA,CAAAA,EAAMH,GAAAA,GACb,CAAA,CAEA,QAAA,CAAAI,IAAAA,CAACC,CAAAA,CAAA,CACC,SAAA,CAAWC,EAAAA,CACTd,CAAAA,CAAmBG,CAAAA,CAAM,OAAO,QAAQ,CAAA,CACxCA,CAAAA,CAAM,MAAA,CAAO,SACf,CAAA,CAEC,QAAA,CAAA,CAAAA,CAAAA,CAAM,MAAA,CAAO,eAAA,EACZS,IAAAA,CAAC,QAAA,CAAA,CACC,IAAA,CAAK,QAAA,CACL,YAAA,CAAYT,CAAAA,CAAM,OAAO,cAAA,EAAkB,OAAA,CAC3C,SAAA,CAAU,qSAAA,CACV,OAAA,CAASK,GAAAA,CAET,QAAA,CAAA,CAAAC,GAAAA,CAACM,CAAAA,CAAA,CAAE,SAAA,CAAU,SAAA,CAAU,CAAA,CACvBN,GAAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAU,UAAW,QAAA,CAAAN,CAAAA,CAAM,MAAA,CAAO,cAAA,EAAkB,OAAA,CAAQ,CAAA,CAAA,CACpE,CAAA,CAEFS,IAAAA,CAACI,CAAAA,CAAA,CACC,SAAA,CAAWF,EAAAA,CACTX,CAAAA,CAAM,MAAA,CAAO,SAAA,GAAc,QAAA,CACvB,uCACAA,CAAAA,CAAM,MAAA,CAAO,SAAA,GAAc,OAAA,CACzB,sBAAA,CACA,uBACR,CAAA,CAEC,QAAA,CAAA,CAAAA,CAAAA,CAAM,MAAA,CAAO,IAAA,EACZM,GAAAA,CAACQ,CAAAA,CAAA,CACC,OAAA,CAASd,CAAAA,CAAM,OAAO,OAAA,GAAY,aAAA,CAAgB,OAAA,CAAU,OAAA,CAE3D,QAAA,CAAAA,CAAAA,CAAM,MAAA,CAAO,IAAA,CAChB,CAAA,CAEFM,GAAAA,CAACS,CAAAA,CAAA,CAAkB,QAAA,CAAAf,CAAAA,CAAM,MAAA,CAAO,KAAA,CAAM,EACrCA,CAAAA,CAAM,MAAA,CAAO,WAAA,EACZM,GAAAA,CAACU,CAAAA,CAAA,CACE,QAAA,CAAAhB,CAAAA,CAAM,MAAA,CAAO,WAAA,CAChB,CAAA,CAAA,CAEJ,CAAA,CACCA,CAAAA,CAAM,MAAA,CAAO,kBAAA,EACZM,GAAAA,CAACW,EAAA,CACE,QAAA,CAAAjB,CAAAA,CAAM,MAAA,CAAO,kBAAA,CAChB,CAAA,CAEFS,IAAAA,CAACS,GAAAA,CAAA,CACC,SAAA,CAAWP,EAAAA,CACTX,CAAAA,CAAM,MAAA,CAAO,YAAA,GAAiB,KAAA,CAC1B,0CAAA,CACA,yCACN,CAAA,CAEC,QAAA,CAAA,CAAAA,CAAAA,CAAM,MAAA,CAAO,UAAA,EACZM,GAAAA,CAACa,CAAAA,CAAA,CACC,SAAA,CAAWnB,CAAAA,CAAM,MAAA,CAAO,YAAA,GAAiB,KAAA,CAAQ,QAAA,CAAW,MAAA,CAC5D,OAAA,CAASK,IACR,GAAGL,CAAAA,CAAM,MAAA,CAAO,iBAAA,CAEhB,QAAA,CAAAA,CAAAA,CAAM,MAAA,CAAO,UAAA,CAChB,CAAA,CAEDA,CAAAA,CAAM,MAAA,CAAO,QAAA,EACZM,GAAAA,CAACc,CAAAA,CAAA,CACC,SAAA,CAAWpB,EAAM,MAAA,CAAO,YAAA,GAAiB,KAAA,CAAQ,QAAA,CAAW,MAAA,CAC5D,OAAA,CAASI,CAAAA,CACT,KAAA,CAAOJ,CAAAA,CAAM,MAAA,CAAO,eAAA,EAAiB,KAAA,EAAS,aAAA,CAC9C,OAAA,CAASA,CAAAA,CAAM,MAAA,CAAO,iBAAiB,OAAA,EAAW,WAAA,CACjD,GAAGA,CAAAA,CAAM,MAAA,CAAO,eAAA,CAEhB,QAAA,CAAAA,CAAAA,CAAM,MAAA,CAAO,QAAA,CAChB,CAAA,CAEFM,GAAAA,CAACc,CAAAA,CAAA,CACC,SAAA,CAAWpB,CAAAA,CAAM,OAAO,YAAA,GAAiB,KAAA,CAAQ,QAAA,CAAW,MAAA,CAC5D,OAAA,CAASE,CAAAA,CACT,KAAA,CACEF,CAAAA,CAAM,MAAA,CAAO,kBAAA,EAAoB,KAAA,GAChCA,CAAAA,CAAM,MAAA,CAAO,OAAA,GAAY,aAAA,CAAgB,aAAA,CAAgB,WAE5D,OAAA,CAASA,CAAAA,CAAM,MAAA,CAAO,kBAAA,EAAoB,OAAA,EAAW,SAAA,CACpD,GAAGA,CAAAA,CAAM,MAAA,CAAO,kBAAA,CAEhB,QAAA,CAAAA,CAAAA,CAAM,MAAA,CAAO,WAAA,CAChB,CAAA,CAAA,CACF,CAAA,CAAA,CACF,EACF,CAEJ","file":"chunk-S4L5WILL.js","sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { X } from \"lucide-react\";\r\nimport { cn } from \"@xploreu/lib/cn\";\r\nimport {\r\n AlertDialog,\r\n AlertDialogAction,\r\n AlertDialogCancel,\r\n AlertDialogContent,\r\n AlertDialogPopup,\r\n AlertDialogDescription,\r\n AlertDialogFooter,\r\n AlertDialogHeader,\r\n AlertDialogIcon,\r\n AlertDialogTitle,\r\n type AlertDialogActionProps,\r\n type AlertDialogCancelProps,\r\n} from \"./alert-dialog\";\r\n\r\n// Types\r\nexport type AlertPosition =\r\n | \"top-start\"\r\n | \"top-center\"\r\n | \"top-end\"\r\n | \"bottom-start\"\r\n | \"bottom-center\"\r\n | \"bottom-end\"\r\n | \"center\";\r\n\r\nexport interface AlertOptions {\r\n title: React.ReactNode;\r\n description?: React.ReactNode;\r\n icon?: React.ReactNode;\r\n confirmText?: string;\r\n cancelText?: string;\r\n denyText?: string;\r\n variant?: \"default\" | \"destructive\";\r\n showCancel?: boolean;\r\n showDeny?: boolean;\r\n position?: AlertPosition;\r\n textAlign?: \"left\" | \"center\" | \"right\";\r\n footerLayout?: \"row\" | \"col\";\r\n showCloseButton?: boolean;\r\n closeAriaLabel?: string;\r\n confirmButtonProps?: AlertDialogActionProps;\r\n cancelButtonProps?: AlertDialogCancelProps;\r\n denyButtonProps?: AlertDialogActionProps;\r\n onConfirm?: () => void | Promise<void>;\r\n onCancel?: () => void;\r\n onDeny?: () => void | Promise<void>;\r\n className?: string;\r\n additionalContents?: React.ReactNode;\r\n}\r\n\r\nexport type AlertResult = \"confirm\" | \"deny\" | \"cancel\";\r\n\r\ninterface AlertState {\r\n isOpen: boolean;\r\n config: AlertOptions;\r\n resolver: ((value: AlertResult) => void) | null;\r\n}\r\n\r\n// Global state\r\nconst globalAlertState: AlertState = {\r\n isOpen: false,\r\n config: {\r\n title: \"\",\r\n confirmText: \"OK\",\r\n cancelText: \"Cancel\",\r\n denyText: \"Deny\",\r\n variant: \"default\",\r\n showCancel: false,\r\n showDeny: false,\r\n showCloseButton: false,\r\n position: \"center\",\r\n textAlign: \"left\",\r\n footerLayout: \"row\",\r\n className: \"\",\r\n },\r\n resolver: null,\r\n};\r\n\r\nlet globalSetState: React.Dispatch<React.SetStateAction<AlertState>> | null = null;\r\n\r\n// Imperative Alert API\r\nexport const alert = {\r\n add: (options: AlertOptions) => {\r\n if (!globalSetState) {\r\n console.warn(\"AlertDialog: Alerter component not mounted\");\r\n return;\r\n }\r\n\r\n globalSetState({\r\n isOpen: true,\r\n config: {\r\n confirmText: \"OK\",\r\n cancelText: \"Cancel\",\r\n denyText: \"Deny\",\r\n variant: \"default\",\r\n showCancel: false,\r\n showDeny: false,\r\n showCloseButton: false,\r\n position: \"center\",\r\n textAlign: \"left\",\r\n footerLayout: \"row\",\r\n className: \"\",\r\n ...options,\r\n },\r\n resolver: null,\r\n });\r\n },\r\n\r\n confirm: (options: AlertOptions): Promise<AlertResult> => {\r\n return new Promise((resolve) => {\r\n if (!globalSetState) {\r\n console.warn(\"AlertDialog: Alerter component not mounted\");\r\n resolve(\"cancel\");\r\n return;\r\n }\r\n\r\n globalSetState({\r\n isOpen: true,\r\n config: {\r\n confirmText: \"Confirm\",\r\n cancelText: \"Cancel\",\r\n denyText: \"Deny\",\r\n variant: \"default\",\r\n showCancel: true,\r\n showDeny: false,\r\n showCloseButton: false,\r\n position: \"center\",\r\n textAlign: \"left\",\r\n footerLayout: \"row\",\r\n className: \"\",\r\n ...options,\r\n },\r\n resolver: resolve,\r\n });\r\n });\r\n },\r\n};\r\n\r\nconst getPositionClasses = (position: AlertPosition = \"center\") => {\r\n const positions: Record<AlertPosition, string> = {\r\n \"top-start\":\r\n \"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:left-4 sm:right-auto sm:translate-x-0 sm:translate-y-0\",\r\n \"top-center\":\r\n \"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:left-1/2 sm:-translate-x-1/2 sm:translate-y-0\",\r\n \"top-end\":\r\n \"data-[state=open]:slide-in-from-top-2 sm:top-4 sm:right-4 sm:left-auto sm:translate-x-0 sm:translate-y-0\",\r\n \"bottom-start\":\r\n \"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:left-4 sm:right-auto sm:translate-x-0 sm:translate-y-0\",\r\n \"bottom-center\":\r\n \"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:left-1/2 sm:-translate-x-1/2 sm:translate-y-0\",\r\n \"bottom-end\":\r\n \"data-[state=open]:slide-in-from-bottom-2 sm:bottom-4 sm:top-auto sm:right-4 sm:left-auto sm:translate-x-0 sm:translate-y-0\",\r\n center: \"sm:top-1/2 sm:left-1/2 sm:-translate-x-1/2 sm:-translate-y-1/2\",\r\n };\r\n return positions[position];\r\n};\r\n\r\n// Alerter Component (mount once at root layout)\r\nexport function Alerter() {\r\n const [state, setState] = React.useState<AlertState>(globalAlertState);\r\n\r\n React.useEffect(() => {\r\n globalSetState = setState;\r\n return () => {\r\n globalSetState = null;\r\n };\r\n }, []);\r\n\r\n const handleConfirm = async () => {\r\n if (state.config.onConfirm) {\r\n await state.config.onConfirm();\r\n }\r\n if (state.resolver) {\r\n state.resolver(\"confirm\");\r\n }\r\n setState((prev) => ({ ...prev, isOpen: false, resolver: null }));\r\n };\r\n\r\n const handleDeny = async () => {\r\n if (state.config.onDeny) {\r\n await state.config.onDeny();\r\n }\r\n if (state.resolver) {\r\n state.resolver(\"deny\");\r\n }\r\n setState((prev) => ({ ...prev, isOpen: false, resolver: null }));\r\n };\r\n\r\n const handleCancel = () => {\r\n if (state.config.onCancel) {\r\n state.config.onCancel();\r\n }\r\n if (state.resolver) {\r\n state.resolver(\"cancel\");\r\n }\r\n setState((prev) => ({ ...prev, isOpen: false, resolver: null }));\r\n };\r\n\r\n return (\r\n <AlertDialog\r\n open={state.isOpen}\r\n onOpenChange={(open) => {\r\n if (!open) handleCancel();\r\n }}\r\n >\r\n <AlertDialogPopup\r\n className={cn(\r\n getPositionClasses(state.config.position),\r\n state.config.className\r\n )}\r\n >\r\n {state.config.showCloseButton && (\r\n <button\r\n type=\"button\"\r\n aria-label={state.config.closeAriaLabel || \"Close\"}\r\n className=\"absolute right-3.5 top-3.5 rounded-xp-card-base-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground z-10\"\r\n onClick={handleCancel}\r\n >\r\n <X className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">{state.config.closeAriaLabel || \"Close\"}</span>\r\n </button>\r\n )}\r\n <AlertDialogHeader\r\n className={cn(\r\n state.config.textAlign === \"center\"\r\n ? \"items-center text-center grid-cols-1\"\r\n : state.config.textAlign === \"right\"\r\n ? \"items-end text-right\"\r\n : \"items-start text-left\"\r\n )}\r\n >\r\n {state.config.icon && (\r\n <AlertDialogIcon\r\n variant={state.config.variant === \"destructive\" ? \"error\" : \"brand\"}\r\n >\r\n {state.config.icon}\r\n </AlertDialogIcon>\r\n )}\r\n <AlertDialogTitle>{state.config.title}</AlertDialogTitle>\r\n {state.config.description && (\r\n <AlertDialogDescription>\r\n {state.config.description}\r\n </AlertDialogDescription>\r\n )}\r\n </AlertDialogHeader>\r\n {state.config.additionalContents && (\r\n <AlertDialogContent>\r\n {state.config.additionalContents}\r\n </AlertDialogContent>\r\n )}\r\n <AlertDialogFooter\r\n className={cn(\r\n state.config.footerLayout === \"col\"\r\n ? \"sm:flex-col flex-col gap-2 items-stretch\"\r\n : \"flex-row justify-end gap-2 items-center\"\r\n )}\r\n >\r\n {state.config.showCancel && (\r\n <AlertDialogCancel\r\n className={state.config.footerLayout === \"col\" ? \"w-full\" : undefined}\r\n onClick={handleCancel}\r\n {...state.config.cancelButtonProps}\r\n >\r\n {state.config.cancelText}\r\n </AlertDialogCancel>\r\n )}\r\n {state.config.showDeny && (\r\n <AlertDialogAction\r\n className={state.config.footerLayout === \"col\" ? \"w-full\" : undefined}\r\n onClick={handleDeny}\r\n color={state.config.denyButtonProps?.color || \"destructive\"}\r\n variant={state.config.denyButtonProps?.variant || \"secondary\"}\r\n {...state.config.denyButtonProps}\r\n >\r\n {state.config.denyText}\r\n </AlertDialogAction>\r\n )}\r\n <AlertDialogAction\r\n className={state.config.footerLayout === \"col\" ? \"w-full\" : undefined}\r\n onClick={handleConfirm}\r\n color={\r\n state.config.confirmButtonProps?.color ||\r\n (state.config.variant === \"destructive\" ? \"destructive\" : \"default\")\r\n }\r\n variant={state.config.confirmButtonProps?.variant || \"primary\"}\r\n {...state.config.confirmButtonProps}\r\n >\r\n {state.config.confirmText}\r\n </AlertDialogAction>\r\n </AlertDialogFooter>\r\n </AlertDialogPopup>\r\n </AlertDialog>\r\n );\r\n}\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a as a$3}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {a as a$3}from'./chunk-FIDOWSDH.js';import {a as a$1,b,c}from'./chunk-NGSCUYDU.js';import {b as b$1}from'./chunk-DQGZIFNP.js';import {a as a$2}from'./chunk-T7HRX3EC.js';import {b as b$2,e}from'./chunk-JLZNZFOO.js';import*as a from'react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {format}from'date-fns';import {ChevronDown}from'lucide-react';import'react-day-picker';import {cn}from'@xploreu/lib/cn';import {jsxs,jsx}from'react/jsx-runtime';function Z({className:P,value:M,onValueChange:i,defaultValue:N,required:d,disabled:p,placeholder:k="Pick dates",disabledDates:w,dateFormat:j="LLL dd, y",chipDateFormat:S="d MMM",maxVisible:l,...B}){let R=a.useCallback(e=>{d?e?.length&&i?.(e):i?.(e);},[i,d]),[t,u]=useControlledState({value:M,defaultValue:N,onChange:R}),[z,F]=a.useState(t?.[0]||new Date),[O,T]=a.useState(false),s=!!t?.length,m=a.useMemo(()=>t?[...t].sort((e,n)=>e.getTime()-n.getTime()):[],[t]),V=a.useCallback(e=>{let n=t?.filter(L=>L.getTime()!==e.getTime());d&&!n?.length||u(n);},[t,u,d]),I=l!==void 0?m.slice(0,l):m,b$3=l!==void 0?m.length-l:0;return jsxs("div",{className:"flex flex-col gap-2 w-full",children:[jsxs(a$1,{open:p?false:O,onOpenChange:T,children:[jsx(b,{className:"w-full",render:jsxs(b$1,{className:cn("group h-9 w-full justify-between rounded-xp-card-base border px-3 text-body-medium-3 transition-colors","border-border-primary bg-bg-primary text-text-secondary hover:bg-bg-primary-hover",s&&"border-border-brand bg-bg-brand-primary text-text-brand-secondary","data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary","disabled:pointer-events-none disabled:opacity-50",P),variant:null,size:null,disabled:p,children:[jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[jsx(a$2,{className:cn("size-4 shrink-0",s?"text-fg-brand-primary":"text-fg-quaternary")}),jsx("span",{className:"truncate",children:s?`${t.length} ${t.length===1?"date":"dates"} selected`:k})]}),jsx(ChevronDown,{className:cn("size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180",s?"text-fg-brand-primary":"text-fg-quaternary")})]})}),jsx(c,{className:"w-auto border-0 rounded-[20px] p-xp-none bg-transparent",style:{background:"linear-gradient(180deg, rgba(46, 51, 90, 0) 0%, rgba(28, 27, 51, 0.04) 100%), radial-gradient(146.13% 118.42% at 50% -15.5%, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0) 99.59%)",backdropFilter:"blur(20px)",boxShadow:"0px 30px 60px 0px #0000001A"},children:jsx(a$3,{autoFocus:true,disabled:w,mode:"multiple",month:z,selected:t,onMonthChange:F,onSelect:e=>{d&&!e?.length||u(e);},...B})})]}),s&&jsxs("div",{className:"flex flex-wrap gap-2",children:[I.map(e$1=>jsxs(b$2,{color:"brand",size:"lg",className:"ring-1 ring-border-brand text-body-medium-3",children:[format(e$1,S),!p&&jsx(e,{className:"text-fg-quaternary",onClick:n=>{n.stopPropagation(),V(e$1);}})]},e$1.toISOString())),b$3>0&&jsxs(b$2,{color:"brand",size:"lg",className:"ring-1 ring-border-brand text-body-medium-3",children:["+",b$3]})]})]})}export{Z as a};//# sourceMappingURL=chunk-YHY3VXCO.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-YHY3VXCO.js.map
|