@xploreu/components 0.4.2 → 0.4.4
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-ISGXRZLJ.js → chunk-746IQSMF.js} +2 -2
- package/dist/{chunk-ISGXRZLJ.js.map → chunk-746IQSMF.js.map} +1 -1
- package/dist/chunk-DXI32G2S.js +2 -0
- package/dist/chunk-DXI32G2S.js.map +1 -0
- package/dist/chunk-JH6RZ3QH.js +2 -0
- package/dist/chunk-JH6RZ3QH.js.map +1 -0
- package/dist/{chunk-7FRAZHPK.js → chunk-NG3NFI2B.js} +2 -2
- package/dist/{chunk-7FRAZHPK.js.map → chunk-NG3NFI2B.js.map} +1 -1
- package/dist/chunk-NGSCUYDU.js +2 -0
- package/dist/chunk-NGSCUYDU.js.map +1 -0
- package/dist/chunk-NTQ2FXS7.js +2 -0
- package/dist/chunk-NTQ2FXS7.js.map +1 -0
- package/dist/{chunk-J6UNQSKZ.js → chunk-PJYKUR4F.js} +2 -2
- package/dist/{chunk-J6UNQSKZ.js.map → chunk-PJYKUR4F.js.map} +1 -1
- package/dist/{chunk-Y4HXGKZD.js → chunk-VE5ZAJ35.js} +2 -2
- package/dist/{chunk-Y4HXGKZD.js.map → chunk-VE5ZAJ35.js.map} +1 -1
- package/dist/chunk-Y6JASO6W.js +2 -0
- package/dist/chunk-Y6JASO6W.js.map +1 -0
- package/dist/composites/combobox-chip-outside.d.ts +4 -4
- package/dist/composites/combobox-chip-outside.js +1 -1
- package/dist/composites/index.d.ts +57 -12
- package/dist/composites/index.js +1 -1
- package/dist/composites/index.js.map +1 -1
- package/dist/composites/phone-input.d.ts +3 -3
- package/dist/composites/phone-input.js +1 -1
- package/dist/effects/auto-height.d.ts +4 -4
- package/dist/effects/highlight.d.ts +19 -19
- package/dist/form/form-input.d.ts +5 -5
- package/dist/form/form-input.js +1 -1
- package/dist/form/form-textarea.d.ts +4 -4
- package/dist/form/form.d.ts +8 -8
- package/dist/form/index.js +1 -1
- package/dist/icons/about-me-icon.d.ts +2 -2
- package/dist/icons/academic-cap-dual-tone-icon.d.ts +2 -2
- package/dist/icons/academic-cap-icon.d.ts +2 -2
- package/dist/icons/activity-on-tab-profile-icon.d.ts +2 -2
- package/dist/icons/add-connect-icon.d.ts +2 -2
- package/dist/icons/alert-jobs-icon.d.ts +2 -2
- package/dist/icons/applicants-icon.d.ts +2 -2
- package/dist/icons/application-status-icon.d.ts +2 -2
- package/dist/icons/archive-message-icon.d.ts +2 -2
- package/dist/icons/arrow-go-to-location-icon.d.ts +2 -2
- package/dist/icons/bag-icon.d.ts +2 -2
- package/dist/icons/bag2-icon.d.ts +2 -2
- package/dist/icons/bag3-icon.d.ts +2 -2
- package/dist/icons/bell-icon.d.ts +2 -2
- package/dist/icons/birthday-date-icon.d.ts +2 -2
- package/dist/icons/book-dual-tone-icon.d.ts +2 -2
- package/dist/icons/book-open.d.ts +2 -2
- package/dist/icons/bookmark-filled-icon.d.ts +2 -2
- package/dist/icons/bookmark-icon.d.ts +2 -2
- package/dist/icons/brief-dual-tone-icon.d.ts +2 -2
- package/dist/icons/brief-minimalistic-dual-tone-icon.d.ts +2 -2
- package/dist/icons/brief-minimalistic-icon.d.ts +2 -2
- package/dist/icons/building-dual-tone-icon.d.ts +2 -2
- package/dist/icons/building-icon.d.ts +2 -2
- package/dist/icons/building-infrastructure-icon.d.ts +2 -2
- package/dist/icons/calendar-icon.d.ts +2 -2
- package/dist/icons/case-icon.d.ts +2 -2
- package/dist/icons/certificate-icon.d.ts +2 -2
- package/dist/icons/certificate-on-profile-icon.d.ts +2 -2
- package/dist/icons/chart-square-icon.d.ts +2 -2
- package/dist/icons/chat-round-dots-icon.d.ts +2 -2
- package/dist/icons/checkbox-base-icon.d.ts +2 -2
- package/dist/icons/checkbox-new-icon.d.ts +2 -2
- package/dist/icons/checkbox-select-icon.d.ts +2 -2
- package/dist/icons/checklist-icon.d.ts +2 -2
- package/dist/icons/checklist-minimalist-icon.d.ts +2 -2
- package/dist/icons/circle-quarter-icon.d.ts +2 -2
- package/dist/icons/city-icon.d.ts +2 -2
- package/dist/icons/clear-icon.d.ts +2 -2
- package/dist/icons/clipboard-icon.d.ts +2 -2
- package/dist/icons/clock-min.d.ts +2 -2
- package/dist/icons/clock-plus.d.ts +2 -2
- package/dist/icons/cloud-upload-icon.d.ts +2 -2
- package/dist/icons/comment-icon.d.ts +2 -2
- package/dist/icons/company-industry-icon.d.ts +2 -2
- package/dist/icons/company-on-job-description-icon.d.ts +2 -2
- package/dist/icons/company-on-job-preferences-icon.d.ts +2 -2
- package/dist/icons/company-post-icon.d.ts +2 -2
- package/dist/icons/connection-company-icon.d.ts +2 -2
- package/dist/icons/connections-icon.d.ts +2 -2
- package/dist/icons/contact-on-settings-icon.d.ts +2 -2
- package/dist/icons/copy-icon.d.ts +2 -2
- package/dist/icons/course-icon-search-icon.d.ts +2 -2
- package/dist/icons/create-free-jobs-with-ai-icon.d.ts +2 -2
- package/dist/icons/create-group-message-icon.d.ts +2 -2
- package/dist/icons/create-job-icon.d.ts +2 -2
- package/dist/icons/delete-icon.d.ts +2 -2
- package/dist/icons/document-add-icon.d.ts +2 -2
- package/dist/icons/document-notes-icon.d.ts +2 -2
- package/dist/icons/dots-icon.d.ts +2 -2
- package/dist/icons/download-cv-icon.d.ts +2 -2
- package/dist/icons/download-minimalistic-icon.d.ts +2 -2
- package/dist/icons/drive-db.d.ts +2 -2
- package/dist/icons/duration-of-work-icon.d.ts +2 -2
- package/dist/icons/duration-open-to-offer-icon.d.ts +2 -2
- package/dist/icons/edit-icon.d.ts +2 -2
- package/dist/icons/edit-on-button-profile-icon.d.ts +2 -2
- package/dist/icons/edit-on-section-profile-icon.d.ts +2 -2
- package/dist/icons/education-icon.d.ts +2 -2
- package/dist/icons/education-on-card-icon.d.ts +2 -2
- package/dist/icons/employment-type-on-job-preferences-icon.d.ts +2 -2
- package/dist/icons/evaluation-icon.d.ts +2 -2
- package/dist/icons/expected-salary-on-job-preferences-icon.d.ts +2 -2
- package/dist/icons/experience-icon.d.ts +2 -2
- package/dist/icons/female-on-summary-profile-icon.d.ts +2 -2
- package/dist/icons/file-default-icon.d.ts +2 -2
- package/dist/icons/file-doc-icon.d.ts +2 -2
- package/dist/icons/file-docx-icon.d.ts +2 -2
- package/dist/icons/file-jpg-icon.d.ts +2 -2
- package/dist/icons/file-mkv-icon.d.ts +2 -2
- package/dist/icons/file-mov-icon.d.ts +2 -2
- package/dist/icons/file-mp4-icon.d.ts +2 -2
- package/dist/icons/file-pdf-icon.d.ts +2 -2
- package/dist/icons/file-png-icon.d.ts +2 -2
- package/dist/icons/file-ppt-icon.d.ts +2 -2
- package/dist/icons/file-text-icon.d.ts +2 -2
- package/dist/icons/file-video-icon.d.ts +2 -2
- package/dist/icons/fire-icon.d.ts +2 -2
- package/dist/icons/flag-icon.d.ts +2 -2
- package/dist/icons/folder-icon.d.ts +2 -2
- package/dist/icons/followers-on-connections-icon.d.ts +2 -2
- package/dist/icons/following-on-connections-icon.d.ts +2 -2
- package/dist/icons/forward-icon.d.ts +2 -2
- package/dist/icons/funnel-icon.d.ts +2 -2
- package/dist/icons/gallery-add-icon.d.ts +2 -2
- package/dist/icons/gallery-favorite-icon.d.ts +2 -2
- package/dist/icons/gallery-icon.d.ts +2 -2
- package/dist/icons/general-preference-on-settings-icon.d.ts +2 -2
- package/dist/icons/globe-dual-tone-icon.d.ts +2 -2
- package/dist/icons/hand-stars-icon.d.ts +2 -2
- package/dist/icons/hard-skill-on-profile-icon.d.ts +2 -2
- package/dist/icons/help-icon.d.ts +2 -2
- package/dist/icons/hidden-icon.d.ts +2 -2
- package/dist/icons/hide-passwords-icon.d.ts +2 -2
- package/dist/icons/hired-by-others-icon.d.ts +2 -2
- package/dist/icons/home-icon.d.ts +2 -2
- package/dist/icons/home-smile-icon.d.ts +2 -2
- package/dist/icons/home-table.d.ts +2 -2
- package/dist/icons/icon-component.d.ts +2 -2
- package/dist/icons/image-on-message-icon.d.ts +2 -2
- package/dist/icons/index.js +1 -1
- package/dist/icons/info-icon.d.ts +2 -2
- package/dist/icons/info-square-icon.d.ts +2 -2
- package/dist/icons/interested-of-industry-icon.d.ts +2 -2
- package/dist/icons/invitations-on-connections-icon.d.ts +2 -2
- package/dist/icons/job-description-icon.d.ts +2 -2
- package/dist/icons/job-preference-icon.d.ts +2 -2
- package/dist/icons/jobs-category-icon.d.ts +2 -2
- package/dist/icons/jobseeker-status-on-job-preferences-icon.d.ts +2 -2
- package/dist/icons/language-on-profile-icon.d.ts +2 -2
- package/dist/icons/layers-icon.d.ts +2 -2
- package/dist/icons/layout-icon.d.ts +2 -2
- package/dist/icons/like-filled-icon.d.ts +2 -2
- package/dist/icons/like-icon.d.ts +2 -2
- package/dist/icons/link-copy.d.ts +2 -2
- package/dist/icons/list-icon.d.ts +2 -2
- package/dist/icons/list-option-feedback-icon.d.ts +2 -2
- package/dist/icons/living-on-summary-profile-icon.d.ts +2 -2
- package/dist/icons/location-company-on-card-icon.d.ts +2 -2
- package/dist/icons/location-on-search-icon.d.ts +2 -2
- package/dist/icons/lock-icon.d.ts +2 -2
- package/dist/icons/logo-icon.d.ts +2 -2
- package/dist/icons/logout-icon.d.ts +2 -2
- package/dist/icons/lonceng-z-icon.d.ts +2 -2
- package/dist/icons/mail-icon.d.ts +2 -2
- package/dist/icons/mailbox-icon.d.ts +2 -2
- package/dist/icons/male-on-summary-profile-icon.d.ts +2 -2
- package/dist/icons/map-cluster-marker-icon.d.ts +2 -2
- package/dist/icons/map-marker-icon.d.ts +2 -2
- package/dist/icons/map-pin-icon.d.ts +2 -2
- package/dist/icons/map-pin-icon2.d.ts +2 -2
- package/dist/icons/map-pin2-icon.d.ts +2 -2
- package/dist/icons/mark-as-read-icon.d.ts +2 -2
- package/dist/icons/media-icon.d.ts +2 -2
- package/dist/icons/message-on-card-icon.d.ts +2 -2
- package/dist/icons/messages-icon.d.ts +2 -2
- package/dist/icons/mic-record-icon.d.ts +2 -2
- package/dist/icons/mini-sidebar-icon.d.ts +2 -2
- package/dist/icons/money-bill-icon.d.ts +2 -2
- package/dist/icons/mute-message-icon.d.ts +2 -2
- package/dist/icons/my-connecions-icon.d.ts +2 -2
- package/dist/icons/my-connections-on-tab-profile-icon.d.ts +2 -2
- package/dist/icons/my-cover-letter-icon.d.ts +2 -2
- package/dist/icons/my-dashboard-icon.d.ts +2 -2
- package/dist/icons/my-dashboards-icon.d.ts +2 -2
- package/dist/icons/my-drive-icon.d.ts +2 -2
- package/dist/icons/my-portofolio-icon.d.ts +2 -2
- package/dist/icons/my-resume-icon.d.ts +2 -2
- package/dist/icons/new-message-icon.d.ts +2 -2
- package/dist/icons/new-post-icon.d.ts +2 -2
- package/dist/icons/news-icon.d.ts +2 -2
- package/dist/icons/notification-icon.d.ts +2 -2
- package/dist/icons/notification-on-settings-icon.d.ts +2 -2
- package/dist/icons/offered-by-others-icon.d.ts +2 -2
- package/dist/icons/office-open-to-offer-icon.d.ts +2 -2
- package/dist/icons/office-opent-to-offer-section-icon.d.ts +2 -2
- package/dist/icons/open-another-page-icon.d.ts +2 -2
- package/dist/icons/open-preview-my-profile-icon.d.ts +2 -2
- package/dist/icons/open-to-offer-section-icon.d.ts +2 -2
- package/dist/icons/open-to-opportunities-icon.d.ts +2 -2
- package/dist/icons/other-job-for-you-icon.d.ts +2 -2
- package/dist/icons/other-job-from-this-company-icon.d.ts +2 -2
- package/dist/icons/passwords-icon.d.ts +2 -2
- package/dist/icons/pdf-on-apply-job-icon.d.ts +2 -2
- package/dist/icons/pen-new-square-icon.d.ts +2 -2
- package/dist/icons/people-you-may-know-icon.d.ts +2 -2
- package/dist/icons/people-your-company-icon.d.ts +2 -2
- package/dist/icons/phone-dual-tone-icon.d.ts +2 -2
- package/dist/icons/phone-icon.d.ts +2 -2
- package/dist/icons/pin-location-new-icon.d.ts +2 -2
- package/dist/icons/pin-message-icon.d.ts +2 -2
- package/dist/icons/plain-icon.d.ts +2 -2
- package/dist/icons/plus-square-icon.d.ts +2 -2
- package/dist/icons/posts-icon-search-icon.d.ts +2 -2
- package/dist/icons/priority-by-icon.d.ts +2 -2
- package/dist/icons/private-post-icon.d.ts +2 -2
- package/dist/icons/profile-icon.d.ts +2 -2
- package/dist/icons/public-post-icon.d.ts +2 -2
- package/dist/icons/public-post-on-card-icon.d.ts +2 -2
- package/dist/icons/repeat-icon.d.ts +2 -2
- package/dist/icons/reply-icon.d.ts +2 -2
- package/dist/icons/report-icon.d.ts +2 -2
- package/dist/icons/repost-icon.d.ts +2 -2
- package/dist/icons/reposted-icon.d.ts +2 -2
- package/dist/icons/save-jobs-icon.d.ts +2 -2
- package/dist/icons/save-post-menu-icon.d.ts +2 -2
- package/dist/icons/search-bar-icon.d.ts +2 -2
- package/dist/icons/search-icon.d.ts +2 -2
- package/dist/icons/search-with-date-icon.d.ts +2 -2
- package/dist/icons/send-comment-icon.d.ts +2 -2
- package/dist/icons/settings-icon.d.ts +2 -2
- package/dist/icons/share-circle-icon.d.ts +2 -2
- package/dist/icons/share-icon.d.ts +2 -2
- package/dist/icons/share-link.d.ts +2 -2
- package/dist/icons/shield-dualtone.d.ts +2 -2
- package/dist/icons/show-passwords-icon.d.ts +2 -2
- package/dist/icons/size-company-icon.d.ts +2 -2
- package/dist/icons/skill-on-tab-profile-icon.d.ts +2 -2
- package/dist/icons/skills-icon.d.ts +2 -2
- package/dist/icons/smile-icon.d.ts +2 -2
- package/dist/icons/soft-skill-icon.d.ts +2 -2
- package/dist/icons/sort-by-icon.d.ts +2 -2
- package/dist/icons/sort-horizontal-icon.d.ts +2 -2
- package/dist/icons/sosial-media-section-icon.d.ts +2 -2
- package/dist/icons/sparkles-icon.d.ts +2 -2
- package/dist/icons/speech-icon.d.ts +2 -2
- package/dist/icons/stacked-layout-dual-tone-icon.d.ts +2 -2
- package/dist/icons/star-icon.d.ts +2 -2
- package/dist/icons/stars-icon.d.ts +2 -2
- package/dist/icons/sugested-company-icon.d.ts +2 -2
- package/dist/icons/suitcase-icon.d.ts +2 -2
- package/dist/icons/technical-skill-icon.d.ts +2 -2
- package/dist/icons/theme-icon.d.ts +2 -2
- package/dist/icons/themes-icon.d.ts +2 -2
- package/dist/icons/trash-icon.d.ts +2 -2
- package/dist/icons/unarchive-message-icon.d.ts +2 -2
- package/dist/icons/unfollow-icon.d.ts +2 -2
- package/dist/icons/unmute-message-icon.d.ts +2 -2
- package/dist/icons/unpin-message-icon.d.ts +2 -2
- package/dist/icons/unsave-job-icon.d.ts +2 -2
- package/dist/icons/upload-document-icon.d.ts +2 -2
- package/dist/icons/upload-document-new-icon.d.ts +2 -2
- package/dist/icons/upload-event-icon.d.ts +2 -2
- package/dist/icons/upload-file-placeholder-icon.d.ts +2 -2
- package/dist/icons/upload-generate-image-icon.d.ts +2 -2
- package/dist/icons/upload-generate-post-icon.d.ts +2 -2
- package/dist/icons/upload-media-icon.d.ts +2 -2
- package/dist/icons/upload-media-new-icon.d.ts +2 -2
- package/dist/icons/upload-pictures-on-profile-icon.d.ts +2 -2
- package/dist/icons/upload-pollingt-new-icon.d.ts +2 -2
- package/dist/icons/upload-pooling-icon.d.ts +2 -2
- package/dist/icons/upload-reels-icon.d.ts +2 -2
- package/dist/icons/user-connections.d.ts +2 -2
- package/dist/icons/user-dual-tone-icon.d.ts +2 -2
- package/dist/icons/user-hands-up.d.ts +2 -2
- package/dist/icons/user-heart-rounded.d.ts +2 -2
- package/dist/icons/user-icon.d.ts +2 -2
- package/dist/icons/user-unfollow.d.ts +2 -2
- package/dist/icons/users-dual-tone-icon.d.ts +2 -2
- package/dist/icons/users-group-icon.d.ts +2 -2
- package/dist/icons/users-group-rounded-icon.d.ts +2 -2
- package/dist/icons/users-group-two-rounded-icon.d.ts +2 -2
- package/dist/icons/verified-icon.d.ts +2 -2
- package/dist/icons/video-on-message-icon.d.ts +2 -2
- package/dist/icons/view-grid-row-icon.d.ts +2 -2
- package/dist/icons/view-grid1-icon.d.ts +2 -2
- package/dist/icons/view-grid2-icon.d.ts +2 -2
- package/dist/icons/view-grid3-icon.d.ts +2 -2
- package/dist/icons/view-grid4-icon.d.ts +2 -2
- package/dist/icons/volume-icon.d.ts +2 -2
- package/dist/icons/volume-off-icon.d.ts +2 -2
- package/dist/icons/widget-four-icon.d.ts +2 -2
- package/dist/icons/widget-icon.d.ts +2 -2
- package/dist/icons/working-at-summary-profile-icon.d.ts +2 -2
- package/dist/icons/workplace-on-job-preferences-icon.d.ts +2 -2
- package/dist/icons/workplace-open-to-offers-icon.d.ts +2 -2
- package/dist/icons/x-square-icon.d.ts +2 -2
- package/dist/icons/your-summary-profile-icon.d.ts +2 -2
- package/dist/primitives/alert-dialog.d.ts +21 -21
- package/dist/primitives/dialog.d.ts +21 -21
- package/dist/primitives/index.d.ts +20 -2
- package/dist/primitives/index.js +1 -1
- package/dist/primitives/popover.d.ts +31 -0
- package/dist/primitives/popover.js +2 -0
- package/dist/primitives/popover.js.map +1 -0
- package/dist/primitives/sheet.d.ts +5 -5
- package/dist/primitives/slot.d.ts +4 -4
- package/dist/primitives/tabs.d.ts +14 -14
- package/dist/ui/alert-dialog.d.ts +15 -15
- package/dist/ui/badge.d.ts +5 -5
- package/dist/ui/button.d.ts +3 -3
- package/dist/ui/combobox.d.ts +34 -34
- package/dist/ui/combobox.js +1 -1
- package/dist/ui/dialog.d.ts +12 -12
- package/dist/ui/index.d.ts +117 -1
- package/dist/ui/index.js +1 -1
- package/dist/ui/infinite-scroll.d.ts +3 -3
- package/dist/ui/input.d.ts +6 -6
- package/dist/ui/input.js +1 -1
- package/dist/ui/label.d.ts +3 -3
- package/dist/ui/popover.d.ts +26 -0
- package/dist/ui/popover.js +2 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/sheet.d.ts +11 -11
- package/dist/ui/tabs.d.ts +6 -6
- package/dist/ui/textarea.d.ts +2 -2
- package/package.json +3 -1
- package/dist/chunk-HUWF445V.js +0 -2
- package/dist/chunk-HUWF445V.js.map +0 -1
- package/dist/chunk-JWKTYYJB.js +0 -2
- package/dist/chunk-JWKTYYJB.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {b
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {b as b$2,c as c$2}from'./chunk-KYD4ATTG.js';import {a}from'./chunk-TED2PUK6.js';import {b}from'./chunk-JH6RZ3QH.js';import {b as b$1,c as c$1}from'./chunk-DZKJRP4J.js';import*as S from'react';import {SearchIcon,XIcon,Loader2Icon,CheckCircle2Icon}from'lucide-react';import {Combobox}from'@base-ui/react/combobox';import {AnimatePresence,motion}from'motion/react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {useDataState}from'@xploreu/hooks/use-data-state';import {getStrictContext}from'@xploreu/lib/get-strict-context';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {cn}from'@xploreu/lib/cn';var[ao,c]=getStrictContext("ComboboxContext"),[no,H]=getStrictContext("ComboboxActiveValueContext");function R({behavior:o="default",...t}){let[b,m]=useControlledState({value:t?.open,defaultValue:t?.defaultOpen,onChange:t?.onOpenChange}),[s,C]=useControlledState({value:t?.inputValue?.toString(),defaultValue:t?.defaultInputValue?.toString(),onChange:t?.onInputValueChange}),[n,l]=S.useState(null),P=(x,a)=>{if(a.reason==="input-clear")return a.cancel();C(x,a);},y=(x,a)=>{let io=a.trigger?.dataset;if(o==="chip-outside"&&(a.reason==="trigger-press"&&io?.slot==="combobox-clear-input"&&!x||a.reason==="item-press"))return a.cancel();m(x,a);};return jsx(no,{value:{highlightedValue:n,setHighlightedValue:l},children:jsx(ao,{value:{open:b,setOpen:m,inputValue:s,setInputValue:C},children:jsx(Combobox.Root,{"data-slot":"combobox",...t,onInputValueChange:P,onOpenChange:y})})})}function T(o){return jsx(Combobox.Trigger,{"data-slot":"combobox-trigger",...o})}function k(o){return jsx(Combobox.Label,{"data-slot":"combobox-label",...o})}function A(o){return jsx(Combobox.InputGroup,{"data-slot":"combobox-input-group",...o})}function d(o){return jsx(Combobox.Input,{"data-slot":"combobox-input",...o})}function M(o){return jsx(Combobox.Icon,{"data-slot":"combobox-icon",...o})}function B(o){return jsx(Combobox.Clear,{"data-slot":"combobox-clear",...o})}function E(o){return jsx(Combobox.Value,{"data-slot":"combobox-value",...o})}function O(o){return jsx(Combobox.Chips,{"data-slot":"combobox-chips",...o})}function z(o){return jsx(Combobox.Chip,{"data-slot":"combobox-chip",...o})}function F(o){return jsx(Combobox.ChipRemove,{"data-slot":"combobox-chip-remove",...o})}function h(o){let{open:t}=c();return jsx(AnimatePresence,{children:t&&jsx(Combobox.Portal,{"data-slot":"combobox-portal",keepMounted:true,...o})})}function v(o){return jsx(Combobox.Positioner,{"data-slot":"combobox-positioner",...o})}function q({initialFocus:o,finalFocus:t,transition:b={type:"spring",stiffness:300,damping:25},...m}){return jsx(Combobox.Popup,{finalFocus:t,initialFocus:o,render:jsx(motion.div,{animate:{opacity:1,scale:1},"data-slot":"combobox-popup",exit:{opacity:0,scale:.5},initial:{opacity:0,scale:.5},transition:b,...m},"combobox-popup")})}function U(o){return jsx(Combobox.Backdrop,{"data-slot":"combobox-backdrop",...o})}function X(o){return jsx(Combobox.Status,{"data-slot":"combobox-status",...o})}function $(o){return jsx(Combobox.Empty,{"data-slot":"combobox-empty",...o})}function J(o){return jsx(Combobox.List,{"data-slot":"combobox-list",...o})}function K({transition:o={type:"spring",stiffness:350,damping:35},...t}){let{highlightedValue:b}=H();return jsx(b$2,{click:false,controlledItems:true,"data-slot":"combobox-highlight",transition:o,value:b,...t})}function Q(o){return jsx(c$2,{"data-slot":"combobox-highlight-item",...o})}function W(o){return jsx(Combobox.Row,{"data-slot":"combobox-row",...o})}function Y(o){let{setHighlightedValue:t}=H(),[,b]=useDataState("highlighted",void 0,(m,s)=>{if(m===true){let C=s.current,n=C?.dataset.value||C?.id||null;n&&t(n);}});return jsx(Combobox.Item,{ref:b,"data-slot":"combobox-item",...o})}function Z(o){return jsx(Combobox.ItemIndicator,{"data-slot":"combobox-item-indicator",...o})}function _(o){return jsx(Combobox.Separator,{"data-slot":"combobox-separator",...o})}function j(o){return jsx(Combobox.Group,{"data-slot":"combobox-group",...o})}function D(o){return jsx(Combobox.GroupLabel,{"data-slot":"combobox-group-label",...o})}function oo(o){return jsx(Combobox.Collection,{"data-slot":"combobox-collection",...o})}function to(o){return jsx(Combobox.Arrow,{"data-slot":"combobox-arrow",...o})}function Oo(o){return jsx(R,{...o})}function xo(o){let{className:t,...b}=o;return jsx(T,{className:cn("group/combobox-trigger flex items-center gap-2",t),...b})}function zo(o){let{className:t,...b}=o;return jsx(k,{className:cn("text-label-semibold-2 text-text-secondary",t),...b})}function Fo(o){let{className:t,...b}=o;return jsx(A,{className:cn("flex w-full items-center gap-2",t),...b})}function qo({className:o,wrapperClassName:t,...b$1}){return jsx("div",{className:cn("px-3 py-2.5 border-b border-border-primary",t),children:jsx(d,{className:o,render:jsx(b,{size:"sm",startContent:jsx(SearchIcon,{})}),...b$1})})}function Uo({className:o,displayValueKey:t={label:"label",value:"value"},placeholder:b$1="Search and Select Company",inputProps:m,...s}){let{inputValue:C,setInputValue:n}=c(),{className:l,startContent:P,...y}=m||{};return jsx("div",{className:cn("flex flex-col gap-2",o),children:jsxs(Po,{onMouseDown:x=>x.preventBaseUIHandler(),className:"flex-col",children:[jsx(d,{render:jsx(b,{className:cn("h-9 text-body-regular-3 pl-9 pr-7",l),endContent:jsx(xo,{nativeButton:false,render:jsx(XIcon,{className:"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer","data-hidden":!C,"data-slot":"combobox-clear-input",onClick:x=>{n("",{reason:"none",event:x.nativeEvent,cancel:()=>{},allowPropagation:()=>{},isCanceled:false,isPropagationAllowed:true,trigger:void 0});}})}),placeholder:b$1,startContent:P??jsx(SearchIcon,{className:"!size-4 !text-fg-tertiary-hover"}),...y}),...s}),jsx(lo,{children:x=>x?.map(a=>jsxs(uo,{children:[a?.[t.label]||"",jsx(co,{})]},a?.[t.value]||""))})]})})}function Xo(o){let{className:t,...b}=o;return jsx(M,{className:cn("text-text-secondary",t),...b})}function $o(o){return jsx(B,{render:jsx(XIcon,{}),...o})}function lo(o){return jsx(E,{...o})}function Po({className:o,...t}){return jsx(O,{className:cn("flex flex-wrap gap-2",o),...t})}function uo({className:o,...t}){return jsx(b$1,{className:cn("ring-1 ring-border-brand text-body-medium-3",o),color:"brand",render:jsx(z,{...t}),size:"lg"})}function co({className:o,...t}){return jsx(c$1,{className:cn("text-fg-quaternary",o),render:jsx(F,{...t})})}function Jo({className:o,align:t="start",sideOffset:b=4,container:m,initialFocus:s,finalFocus:C,style:n,children:l,...P}){return jsx(h,{container:m,children:jsx(v,{align:t,className:"isolate z-50",sideOffset:b,...P,children:jsx(q,{className:cn("group/combobox-popup bg-bg-primary text-text-primary max-h-(--available-height) w-72 max-w-(--available-width) origin-(--transform-origin) rounded-md border border-border-primary shadow-md outline-hidden",o),finalFocus:C,initialFocus:s,style:n,children:jsx(yo,{children:l})})})})}function Ko(o){return jsx(h,{...o})}function Qo(o){return jsx(v,{...o})}function Wo(o){let{className:t,...b}=o;return jsx(U,{className:cn("bg-black/30",t),...b})}function Yo({className:o,status:t,...b}){let{inputValue:m}=c(),s=m?.toString().trim(),n=t==="empty"&&s?`No matches for "${s}".`:t==="empty"&&!s?"No results.":t==="pending"?jsxs(Fragment,{children:[jsx(Loader2Icon,{className:"animate-spin size-4"}),jsx("span",{children:"Searching..."})]}):null;return jsx(X,{className:cn("px-2 py-2.5 text-body-regular-2 text-text-disabled flex items-center gap-2",!n&&"hidden",o),...b,children:n})}function Zo({className:o,...t}){return jsx($,{className:cn("px-3 py-2 text-body-regular-2 text-text-secondary",o),...t})}function _o({className:o,...t}){return jsx(J,{className:cn("max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] overflow-auto scrollbar-thin flex flex-col py-1 focus-visible:outline-none",o),...t})}function yo(o){let{className:t,...b}=o;return jsx(K,{className:cn("absolute inset-0 bg-bg-primary-hover",t),...b})}function go(o){return jsx(Q,{...o})}function jo(o){let{className:t,...b}=o;return jsx(W,{className:cn("group/combobox-row",t),...b})}function Do({className:o,children:t,withIndicator:b=true,...m}){let{disabled:s}=m;return jsx(go,{activeClassName:"bg-bg-primary-hover",disabled:s,children:jsxs(Y,{className:cn("flex w-full cursor-default items-center gap-xp-md px-3 py-2.5 text-body-medium-2 text-text-primary outline-none",o),...m,children:[t,b&&jsx(ho,{children:jsx(CheckCircle2Icon,{className:"size-5 text-fg-brand-primary shrink-0"})})]})})}function ho(o){return jsx(Z,{...o})}function ot(o){let{className:t,...b}=o;return jsx(_,{className:cn("my-1 h-px bg-border-primary",t),...b})}function tt(o){let{className:t,...b}=o;return jsx(j,{className:cn("py-1",t),...b})}function et(o){let{className:t,...b}=o;return jsx(D,{className:cn("px-3 py-1 text-body-semibold-sm text-text-secondary",t),...b})}function bt(o){return jsx(oo,{...o})}function rt(o){let{className:t,...b}=o;return jsx(to,{className:cn("fill-bg-primary",t),...b})}function it({hasMore:o,threshold:t=.5,...b}){return jsx(a,{hasMore:o,threshold:t,...b,children:o&&jsxs("div",{className:"px-2 py-2.5 text-body-regular-2 text-text-disabled flex items-center gap-2",children:[jsx(Loader2Icon,{className:"animate-spin size-4"}),jsx("span",{children:"Loading more..."})]})})}export{ho as A,ot as B,tt as C,et as D,bt as E,rt as F,it as G,A as a,d as b,Z as c,Oo as d,xo as e,zo as f,Fo as g,qo as h,Uo as i,Xo as j,$o as k,lo as l,Po as m,uo as n,co as o,Jo as p,Ko as q,Qo as r,Wo as s,Yo as t,Zo as u,_o as v,yo as w,go as x,jo as y,Do as z};//# sourceMappingURL=chunk-746IQSMF.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-746IQSMF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/primitives/combobox.tsx","../src/ui/combobox.tsx"],"names":["ComboboxProvider","useCombobox","getStrictContext","ComboboxActiveValueProvider","useComboboxActiveValue","Combobox","behavior","props","open","setOpen","useControlledState","inputValue","setInputValue","highlightedValue","setHighlightedValue","handleInputValueChange","eventDetails","handleOpenChange","dataSet","jsx","ComboboxPrimitive","ComboboxTrigger","ComboboxLabel","ComboboxInputGroup","ComboboxInput","ComboboxIcon","ComboboxClear","ComboboxValue","ComboboxChips","ComboboxChip","ComboboxChipRemove","ComboboxPortal","AnimatePresence","ComboboxPositioner","ComboboxPopup","initialFocus","finalFocus","transition","motion","ComboboxBackdrop","ComboboxStatus","ComboboxEmpty","ComboboxList","ComboboxHighlight","Highlight","ComboboxHighlightItem","HighlightItem","ComboboxRow","ComboboxItem","highlightedRef","useDataState","value","ref","el","v","ComboboxItemIndicator","ComboboxSeparator","ComboboxGroup","ComboboxGroupLabel","ComboboxCollection","ComboboxArrow","className","rest","cn","wrapperClassName","Input","SearchIcon","ComboboxInputFilter","displayValueKey","placeholder","inputProps","inputClassName","startContent","restInputProps","jsxs","e","XIcon","event","item","Badge","BadgeButton","align","sideOffset","container","style","children","status","trimmedInputValue","text","Fragment","Loader2Icon","withIndicator","disabled","CheckCircle2Icon","ComboboxInfiniteScroll","hasMore","threshold","InfiniteScroll"],"mappings":"koBAiCA,GAAM,CAACA,EAAAA,CAAkBC,CAAW,CAAA,CAClCC,iBAA+C,iBAAiB,CAAA,CAE5D,CAACC,EAAAA,CAA6BC,CAAsB,CAAA,CACxDF,iBAAiD,4BAA4B,CAAA,CAM/E,SAASG,CAAAA,CAA8D,CACrE,SAAAC,CAAAA,CAAW,SAAA,CACX,GAAGC,CACL,CAAA,CAAmC,CACjC,GAAM,CAACC,CAAAA,CAAMC,CAAO,CAAA,CAAIC,kBAAAA,CAAmB,CACzC,KAAA,CAAOH,CAAAA,EAAO,IAAA,CACd,YAAA,CAAcA,CAAAA,EAAO,WAAA,CACrB,SAAUA,CAAAA,EAAO,YACnB,CAAC,CAAA,CAEK,CAACI,EAAYC,CAAa,CAAA,CAAIF,kBAAAA,CAAmB,CACrD,KAAA,CAAOH,CAAAA,EAAO,YAAY,QAAA,EAAS,CACnC,YAAA,CAAcA,CAAAA,EAAO,iBAAA,EAAmB,QAAA,GACxC,QAAA,CAAUA,CAAAA,EAAO,kBACnB,CAAC,CAAA,CAEK,CAACM,EAAkBC,CAAmB,CAAA,CAAU,WAAwB,IAAI,CAAA,CAE5EC,EAA+E,CAACJ,CAAAA,CAAYK,CAAAA,GAAiB,CAEjH,GAAIA,CAAAA,CAAa,SAAW,aAAA,CAAe,OAAOA,EAAa,MAAA,EAAO,CAEtEJ,EAAcD,CAAAA,CAAYK,CAAY,EACxC,CAAA,CAEMC,CAAAA,CAAmE,CAACT,EAAMQ,CAAAA,GAAiB,CAC/F,IAAME,EAAAA,CAAWF,CAAAA,CAAa,SAAyB,OAAA,CAGvD,GAAIV,CAAAA,GAAa,cAAA,GAEbU,CAAAA,CAAa,MAAA,GAAW,iBACxBE,EAAAA,EAAS,IAAA,GAAS,sBAAA,EAClB,CAACV,CAAAA,EAKCQ,CAAAA,CAAa,SAAW,YAAA,CAAA,CAC1B,OAAOA,CAAAA,CAAa,MAAA,EAAO,CAI/BP,CAAAA,CAAQD,EAAMQ,CAAY,EAC5B,EAEA,OACEG,GAAAA,CAAChB,GAAA,CAA4B,KAAA,CAAO,CAAE,gBAAA,CAAAU,CAAAA,CAAkB,mBAAA,CAAAC,CAAoB,CAAA,CAC1E,QAAA,CAAAK,GAAAA,CAACnB,EAAAA,CAAA,CAAiB,KAAA,CAAO,CAAE,IAAA,CAAAQ,CAAAA,CAAM,OAAA,CAAAC,CAAAA,CAAS,UAAA,CAAAE,CAAAA,CAAY,cAAAC,CAAc,CAAA,CAClE,SAAAO,GAAAA,CAACC,QAAAA,CAAkB,KAAlB,CACC,WAAA,CAAU,UAAA,CACT,GAAGb,CAAAA,CACJ,kBAAA,CAAoBQ,EACpB,YAAA,CAAcE,CAAAA,CAChB,CAAA,CACF,CAAA,CACF,CAEJ,CAIA,SAASI,CAAAA,CAAgBd,CAAAA,CAA6B,CACpD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,QAAlB,CACN,WAAA,CAAU,mBACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASe,CAAAA,CAAcf,CAAAA,CAA2B,CAChD,OAAOY,IAACC,QAAAA,CAAkB,KAAA,CAAlB,CACN,WAAA,CAAU,gBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASgB,CAAAA,CAAmBhB,CAAAA,CAAgC,CAC1D,OAAOY,GAAAA,CAACC,SAAkB,UAAA,CAAlB,CACN,YAAU,sBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASiB,EAAcjB,CAAAA,CAA2B,CAChD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,KAAA,CAAlB,CACN,WAAA,CAAU,gBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASkB,CAAAA,CAAalB,CAAAA,CAA0B,CAC9C,OAAOY,GAAAA,CAACC,SAAkB,IAAA,CAAlB,CACN,WAAA,CAAU,eAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASmB,EAAcnB,CAAAA,CAA2B,CAChD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,KAAA,CAAlB,CACN,WAAA,CAAU,gBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASoB,CAAAA,CAAcpB,EAA2B,CAChD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,KAAA,CAAlB,CACN,YAAU,gBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASqB,EAAcrB,CAAAA,CAA2B,CAChD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,KAAA,CAAlB,CACN,WAAA,CAAU,gBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASsB,CAAAA,CAAatB,CAAAA,CAA0B,CAC9C,OAAOY,GAAAA,CAACC,SAAkB,IAAA,CAAlB,CACN,YAAU,eAAA,CACT,GAAGb,EACN,CACF,CAIA,SAASuB,CAAAA,CAAmBvB,CAAAA,CAAgC,CAC1D,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,WAAlB,CACN,WAAA,CAAU,uBACT,GAAGb,CAAAA,CACN,CACF,CAOA,SAASwB,CAAAA,CAAexB,EAA4B,CAClD,GAAM,CAAE,IAAA,CAAAC,CAAK,CAAA,CAAIP,GAAY,CAE7B,OACEkB,GAAAA,CAACa,eAAAA,CAAA,CACE,QAAA,CAAAxB,GACCW,GAAAA,CAACC,QAAAA,CAAkB,OAAlB,CACC,WAAA,CAAU,kBACV,WAAA,CAAW,IAAA,CACV,GAAGb,CAAAA,CACN,CAAA,CAEJ,CAEJ,CAIA,SAAS0B,CAAAA,CAAmB1B,CAAAA,CAAgC,CAC1D,OACEY,GAAAA,CAACC,SAAkB,UAAA,CAAlB,CACC,WAAA,CAAU,qBAAA,CACT,GAAGb,CAAAA,CACN,CAEJ,CAQA,SAAS2B,EAAc,CACrB,YAAA,CAAAC,EACA,UAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,CAAE,IAAA,CAAM,SAAU,SAAA,CAAW,GAAA,CAAK,OAAA,CAAS,EAAG,CAAA,CAC3D,GAAG9B,CACL,CAAA,CAAuB,CACrB,OACEY,GAAAA,CAACC,QAAAA,CAAkB,KAAA,CAAlB,CACC,UAAA,CAAYgB,CAAAA,CACZ,aAAcD,CAAAA,CACd,MAAA,CACEhB,IAACmB,MAAAA,CAAO,GAAA,CAAP,CAEC,OAAA,CAAS,CAAE,OAAA,CAAS,EAAG,KAAA,CAAO,CAAE,EAChC,WAAA,CAAU,gBAAA,CACV,KAAM,CAAE,OAAA,CAAS,CAAA,CAAG,KAAA,CAAO,EAAI,CAAA,CAC/B,QAAS,CAAE,OAAA,CAAS,EAAG,KAAA,CAAO,EAAI,EAClC,UAAA,CAAYD,CAAAA,CACX,GAAG9B,CAAAA,CAAAA,CANA,gBAON,CAAA,CAEJ,CAEJ,CAIA,SAASgC,CAAAA,CAAiBhC,CAAAA,CAA8B,CACtD,OAAOY,IAACC,QAAAA,CAAkB,QAAA,CAAlB,CACN,WAAA,CAAU,mBAAA,CACT,GAAGb,EACN,CACF,CAIA,SAASiC,CAAAA,CAAejC,CAAAA,CAA4B,CAClD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,MAAA,CAAlB,CACN,WAAA,CAAU,kBACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASkC,EAAclC,CAAAA,CAA2B,CAChD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,KAAA,CAAlB,CACN,WAAA,CAAU,gBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASmC,CAAAA,CAAanC,CAAAA,CAA0B,CAC9C,OAAOY,GAAAA,CAACC,SAAkB,IAAA,CAAlB,CACN,WAAA,CAAU,eAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAOA,SAASoC,CAAAA,CAAkB,CACzB,UAAA,CAAAN,CAAAA,CAAa,CAAE,IAAA,CAAM,QAAA,CAAU,UAAW,GAAA,CAAK,OAAA,CAAS,EAAG,CAAA,CAC3D,GAAG9B,CACL,CAAA,CAA2B,CACzB,GAAM,CAAE,gBAAA,CAAAM,CAAiB,EAAIT,CAAAA,EAAuB,CAEpD,OACEe,GAAAA,CAACyB,GAAAA,CAAA,CACC,KAAA,CAAO,KAAA,CACP,eAAA,CAAe,KACf,WAAA,CAAU,oBAAA,CACV,WAAYP,CAAAA,CACZ,KAAA,CAAOxB,EACN,GAAGN,CAAAA,CACN,CAEJ,CAIA,SAASsC,CAAAA,CAAsBtC,EAAmC,CAChE,OACEY,GAAAA,CAAC2B,GAAAA,CAAA,CACC,WAAA,CAAU,0BACT,GAAGvC,CAAAA,CACN,CAEJ,CAIA,SAASwC,CAAAA,CAAYxC,EAAyB,CAC5C,OAAOY,IAACC,QAAAA,CAAkB,GAAA,CAAlB,CACN,WAAA,CAAU,cAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASyC,CAAAA,CAAazC,CAAAA,CAA0B,CAC9C,GAAM,CAAE,mBAAA,CAAAO,CAAoB,CAAA,CAAIV,CAAAA,EAAuB,CACjD,EAAG6C,CAAc,EAAIC,YAAAA,CACzB,aAAA,CACA,OACA,CAACC,CAAAA,CAAOC,IAAQ,CACd,GAAID,CAAAA,GAAU,IAAA,CAAM,CAClB,IAAME,EAAKD,CAAAA,CAAI,OAAA,CACTE,CAAAA,CAAID,CAAAA,EAAI,OAAA,CAAQ,KAAA,EAASA,GAAI,EAAA,EAAM,IAAA,CACrCC,CAAAA,EAAGxC,CAAAA,CAAoBwC,CAAC,EAC9B,CACF,CACF,CAAA,CAEA,OAAOnC,GAAAA,CAACC,QAAAA,CAAkB,KAAlB,CACN,GAAA,CAAK6B,CAAAA,CACL,WAAA,CAAU,eAAA,CACT,GAAG1C,EACN,CACF,CAIA,SAASgD,CAAAA,CAAsBhD,CAAAA,CAAmC,CAChE,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,aAAA,CAAlB,CACN,WAAA,CAAU,0BACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASiD,EAAkBjD,CAAAA,CAA+B,CACxD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,SAAA,CAAlB,CACN,WAAA,CAAU,oBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASkD,CAAAA,CAAclD,CAAAA,CAA2B,CAChD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,MAAlB,CACN,WAAA,CAAU,iBACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASmD,CAAAA,CAAmBnD,CAAAA,CAAgC,CAC1D,OAAOY,IAACC,QAAAA,CAAkB,UAAA,CAAlB,CACN,WAAA,CAAU,sBAAA,CACT,GAAGb,EACN,CACF,CAIA,SAASoD,EAAAA,CAAmBpD,CAAAA,CAAgC,CAC1D,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,WAAlB,CACN,WAAA,CAAU,sBACT,GAAGb,CAAAA,CACN,CACF,CAIA,SAASqD,EAAAA,CAAcrD,EAA2B,CAChD,OAAOY,GAAAA,CAACC,QAAAA,CAAkB,KAAA,CAAlB,CACN,YAAU,gBAAA,CACT,GAAGb,CAAAA,CACN,CACF,CC9UA,SAASF,EAAAA,CAA8DE,EAAuC,CAC5G,OACEY,IAACd,CAAAA,CAAA,CAAmB,GAAGE,CAAAA,CAAO,CAElC,CAIA,SAASc,EAAAA,CAAgBd,CAAAA,CAA6B,CACpD,GAAM,CAAE,UAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,CAAAA,CAE/B,OAAOY,GAAAA,CAACE,CAAAA,CAAA,CACN,UAAW0C,EAAAA,CACT,gDAAA,CACAF,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CACF,CAIA,SAASxC,EAAAA,CAAcf,CAAAA,CAA2B,CAChD,GAAM,CAAE,SAAA,CAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,EAE/B,OAAOY,GAAAA,CAACG,CAAAA,CAAA,CACN,SAAA,CAAWyC,EAAAA,CACT,4CACAF,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CACF,CAIA,SAASvC,EAAAA,CAAmBhB,CAAAA,CAAgC,CAC1D,GAAM,CAAE,SAAA,CAAAsD,EAAW,GAAGC,CAAK,EAAIvD,CAAAA,CAE/B,OAAOY,IAACI,CAAAA,CAAA,CACN,SAAA,CAAWwC,EAAAA,CACT,gCAAA,CACAF,CACF,EACC,GAAGC,CAAAA,CACN,CACF,CAMA,SAAStC,EAAAA,CAAc,CACrB,SAAA,CAAAqC,CAAAA,CACA,gBAAA,CAAAG,CAAAA,CACA,GAAGzD,GACL,EAAuB,CAErB,OACEY,IAAC,KAAA,CAAA,CAAI,SAAA,CAAW4C,GAAG,4CAAA,CAA8CC,CAAgB,CAAA,CAC/E,QAAA,CAAA7C,GAAAA,CAACK,CAAAA,CAAA,CACC,SAAA,CAAWqC,CAAAA,CACX,OAAQ1C,GAAAA,CAAC8C,CAAAA,CAAA,CAAM,IAAA,CAAK,IAAA,CAAK,YAAA,CAAc9C,GAAAA,CAAC+C,UAAAA,CAAA,EAAW,EAAI,CAAA,CACtD,GAAG3D,IACN,CAAA,CACF,CAEJ,CAEA,SAAS4D,EAAAA,CAAoB,CAC3B,SAAA,CAAAN,CAAAA,CACA,eAAA,CAAAO,EAAkB,CAAE,KAAA,CAAO,OAAA,CAAS,KAAA,CAAO,OAAQ,CAAA,CACnD,YAAAC,GAAAA,CAAc,2BAAA,CACd,UAAA,CAAAC,CAAAA,CACA,GAAG/D,CACL,EAOG,CACD,GAAM,CAAE,UAAA,CAAAI,CAAAA,CAAY,cAAAC,CAAc,CAAA,CAAIX,CAAAA,EAAY,CAC5C,CAAE,SAAA,CAAWsE,EAAgB,YAAA,CAAAC,CAAAA,CAAc,GAAGC,CAAe,CAAA,CAAIH,GAAc,EAAC,CAEtF,OACEnD,GAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAW4C,GAAG,qBAAA,CAAuBF,CAAS,EACjD,QAAA,CAAAa,IAAAA,CAAC9C,GAAA,CACC,WAAA,CAAc+C,CAAAA,EAAMA,CAAAA,CAAE,oBAAA,EAAqB,CAC3C,UAAU,UAAA,CAEV,QAAA,CAAA,CAAAxD,GAAAA,CAACK,CAAAA,CAAA,CACC,MAAA,CACEL,IAAC8C,CAAAA,CAAA,CACC,SAAA,CAAWF,EAAAA,CAAG,mCAAA,CAAqCQ,CAAc,EACjE,UAAA,CACEpD,GAAAA,CAACE,GAAA,CACC,YAAA,CAAc,MACd,MAAA,CACEF,GAAAA,CAACyD,KAAAA,CAAA,CACC,SAAA,CAAU,4GAAA,CACV,cAAa,CAACjE,CAAAA,CACd,YAAU,sBAAA,CACV,OAAA,CAAUkE,GAAU,CAClBjE,CAAAA,CAAc,EAAA,CAAI,CAChB,MAAA,CAAQ,MAAA,CACR,MAAOiE,CAAAA,CAAM,WAAA,CACb,OAAQ,IAAM,CAAE,EAChB,gBAAA,CAAkB,IAAM,CAAE,CAAA,CAC1B,UAAA,CAAY,KAAA,CACZ,qBAAsB,IAAA,CACtB,OAAA,CAAS,MACX,CAAC,EACH,CAAA,CACF,EAEJ,CAAA,CAEF,WAAA,CAAaR,GAAAA,CACb,YAAA,CAAcG,CAAAA,EAAgBrD,GAAAA,CAAC+C,WAAA,CAAW,SAAA,CAAU,kCAAkC,CAAA,CACrF,GAAGO,EACN,CAAA,CAED,GAAGlE,CAAAA,CACN,CAAA,CACAY,GAAAA,CAACQ,EAAAA,CAAA,CAEE,QAAA,CAACwB,CAAAA,EAAUA,CAAAA,EAAO,GAAA,CAAK2B,CAAAA,EACtBJ,IAAAA,CAAC7C,GAAA,CACE,QAAA,CAAA,CAAAiD,CAAAA,GAAOV,CAAAA,CAAgB,KAAK,CAAA,EAAK,GAClCjD,GAAAA,CAACW,EAAAA,CAAA,EAAmB,CAAA,CAAA,CAAA,CAFHgD,CAAAA,GAAOV,EAAgB,KAAK,CAAA,EAAK,EAGpD,CACD,CAAA,CACH,CAAA,CAAA,CACF,EACF,CAEJ,CAIA,SAAS3C,EAAAA,CAAalB,CAAAA,CAA0B,CAC9C,GAAM,CAAE,SAAA,CAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,EAE/B,OAAOY,GAAAA,CAACM,EAAA,CACN,SAAA,CAAWsC,GAAG,qBAAA,CAAuBF,CAAS,CAAA,CAC7C,GAAGC,CAAAA,CACN,CACF,CAIA,SAASpC,EAAAA,CAAcnB,EAA2B,CAEhD,OACEY,IAACO,CAAAA,CAAA,CACC,MAAA,CAAQP,GAAAA,CAACyD,KAAAA,CAAA,EAAM,EACd,GAAGrE,CAAAA,CACN,CAEJ,CAIA,SAASoB,GAAcpB,CAAAA,CAA2B,CAChD,OAAOY,GAAAA,CAACQ,CAAAA,CAAA,CAAwB,GAAGpB,CAAAA,CAAO,CAC5C,CAIA,SAASqB,EAAAA,CAAc,CACrB,UAAAiC,CAAAA,CACA,GAAGtD,CACL,CAAA,CAAuB,CACrB,OAAOY,IAACS,CAAAA,CAAA,CACN,UAAWmC,EAAAA,CAAG,sBAAA,CAAwBF,CAAS,CAAA,CAC9C,GAAGtD,CAAAA,CACN,CACF,CAIA,SAASsB,GAAa,CACpB,SAAA,CAAAgC,CAAAA,CACA,GAAGtD,CACL,CAAA,CAAsB,CACpB,OACEY,GAAAA,CAAC4D,GAAAA,CAAA,CACC,SAAA,CAAWhB,EAAAA,CAAG,8CAA+CF,CAAS,CAAA,CACtE,MAAM,OAAA,CACN,MAAA,CACE1C,IAACU,CAAAA,CAAA,CACE,GAAGtB,CAAAA,CACN,CAAA,CAEF,IAAA,CAAK,KACP,CAEJ,CAIA,SAASuB,EAAAA,CAAmB,CAC1B,SAAA,CAAA+B,EACA,GAAGtD,CACL,CAAA,CAA4B,CAC1B,OACEY,GAAAA,CAAC6D,IAAA,CACC,SAAA,CAAWjB,GAAG,oBAAA,CAAsBF,CAAS,EAC7C,MAAA,CACE1C,GAAAA,CAACW,CAAAA,CAAA,CACE,GAAGvB,CAAAA,CACN,EAEJ,CAEJ,CAOA,SAAS2B,EAAAA,CAAc,CACrB,UAAA2B,CAAAA,CACA,KAAA,CAAAoB,CAAAA,CAAQ,OAAA,CACR,UAAA,CAAAC,CAAAA,CAAa,EACb,SAAA,CAAAC,CAAAA,CACA,aAAAhD,CAAAA,CACA,UAAA,CAAAC,EACA,KAAA,CAAAgD,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,GAAG9E,CACL,EAAuB,CACrB,OACEY,GAAAA,CAACY,CAAAA,CAAA,CAAwB,SAAA,CAAWoD,EAClC,QAAA,CAAAhE,GAAAA,CAACc,CAAAA,CAAA,CACC,KAAA,CAAOgD,CAAAA,CACP,UAAU,cAAA,CACV,UAAA,CAAYC,EACX,GAAG3E,CAAAA,CAEJ,SAAAY,GAAAA,CAACe,CAAAA,CAAA,CACC,SAAA,CAAW6B,EAAAA,CACT,6MAAA,CACAF,CACF,CAAA,CACA,UAAA,CAAYzB,CAAAA,CACZ,YAAA,CAAcD,CAAAA,CACd,KAAA,CAAOiD,EAEP,QAAA,CAAAjE,GAAAA,CAACwB,EAAAA,CAAA,CACE,QAAA,CAAA0C,CAAAA,CACH,EACF,CAAA,CACF,CAAA,CACF,CAEJ,CAIA,SAAStD,GAAexB,CAAAA,CAA4B,CAClD,OAAOY,GAAAA,CAACY,CAAAA,CAAA,CAAyB,GAAGxB,CAAAA,CAAO,CAC7C,CAIA,SAAS0B,EAAAA,CAAmB1B,CAAAA,CAAgC,CAC1D,OAAOY,GAAAA,CAACc,CAAAA,CAAA,CAA6B,GAAG1B,CAAAA,CAAO,CACjD,CAIA,SAASgC,GAAiBhC,CAAAA,CAA8B,CACtD,GAAM,CAAE,SAAA,CAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,EAE/B,OAAOY,GAAAA,CAACoB,EAAA,CACN,SAAA,CAAWwB,GAAG,aAAA,CAAeF,CAAS,CAAA,CACrC,GAAGC,CAAAA,CACN,CACF,CAIA,SAAStB,EAAAA,CAAe,CACtB,SAAA,CAAAqB,CAAAA,CACA,OAAAyB,CAAAA,CACA,GAAG/E,CACL,CAAA,CAEG,CACD,GAAM,CAAE,UAAA,CAAAI,CAAW,CAAA,CAAIV,CAAAA,EAAY,CAE7BsF,CAAAA,CAAoB5E,GAAY,QAAA,EAAS,CAAE,IAAA,EAAK,CAsBhD6E,CAAAA,CAnBAF,CAAAA,GAAW,SAAWC,CAAAA,CACjB,CAAA,gBAAA,EAAmBA,CAAiB,CAAA,EAAA,CAAA,CAEzCD,CAAAA,GAAW,SAAW,CAACC,CAAAA,CAClB,aAAA,CAELD,CAAAA,GAAW,SAAA,CAEXZ,IAAAA,CAAAe,SAAA,CACE,QAAA,CAAA,CAAAtE,IAACuE,WAAAA,CAAA,CAAY,UAAU,qBAAA,CAAsB,CAAA,CAC7CvE,GAAAA,CAAC,MAAA,CAAA,CAAK,QAAA,CAAA,cAAA,CAEN,CAAA,CAAA,CACF,EAGG,IAAA,CAKT,OACEA,IAACqB,CAAAA,CAAA,CACC,UAAWuB,EAAAA,CACT,4EAAA,CACA,CAACyB,CAAAA,EAAQ,QAAA,CACT3B,CACF,EACC,GAAGtD,CAAAA,CAEH,QAAA,CAAAiF,CAAAA,CACH,CAEJ,CAMA,SAAS/C,EAAAA,CAAc,CAAE,SAAA,CAAAoB,CAAAA,CAAW,GAAGtD,CAAM,EAAuB,CAClE,OAAOY,IAACsB,CAAAA,CAAA,CACN,UAAWsB,EAAAA,CAAG,mDAAA,CAAqDF,CAAS,CAAA,CAC3E,GAAGtD,CAAAA,CACN,CACF,CAIA,SAASmC,GAAa,CACpB,SAAA,CAAAmB,EACA,GAAGtD,CACL,CAAA,CAAsB,CACpB,OACEY,GAAAA,CAACuB,EAAA,CACC,SAAA,CAAWqB,GAAG,qKAAA,CAAuKF,CAAS,EAC7L,GAAGtD,CAAAA,CACN,CAEJ,CAIA,SAASoC,EAAAA,CAAkBpC,EAA+B,CACxD,GAAM,CAAE,SAAA,CAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,CAAAA,CAE/B,OACEY,GAAAA,CAACwB,CAAAA,CAAA,CACC,UAAWoB,EAAAA,CAAG,sCAAA,CAAwCF,CAAS,CAAA,CAC9D,GAAGC,EACN,CAEJ,CAIA,SAASjB,EAAAA,CAAsBtC,CAAAA,CAAmC,CAChE,OAAOY,GAAAA,CAAC0B,CAAAA,CAAA,CAAgC,GAAGtC,CAAAA,CAAO,CACpD,CAIA,SAASwC,EAAAA,CAAYxC,CAAAA,CAAyB,CAC5C,GAAM,CAAE,UAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,CAAAA,CAE/B,OAAOY,GAAAA,CAAC4B,CAAAA,CAAA,CACN,SAAA,CAAWgB,EAAAA,CAAG,oBAAA,CAAsBF,CAAS,CAAA,CAC5C,GAAGC,CAAAA,CACN,CACF,CAMA,SAASd,GAAa,CACpB,SAAA,CAAAa,CAAAA,CACA,QAAA,CAAAwB,CAAAA,CACA,aAAA,CAAAM,EAAgB,IAAA,CAChB,GAAGpF,CACL,CAAA,CAAsB,CACpB,GAAM,CAAE,QAAA,CAAAqF,CAAS,CAAA,CAAIrF,CAAAA,CAErB,OACEY,IAAC0B,EAAAA,CAAA,CACC,gBAAgB,qBAAA,CAChB,QAAA,CAAU+C,EAEV,QAAA,CAAAlB,IAAAA,CAAC1B,CAAAA,CAAA,CACC,SAAA,CAAWe,EAAAA,CACT,kHACAF,CACF,CAAA,CACC,GAAGtD,CAAAA,CAEH,QAAA,CAAA,CAAA8E,EACAM,CAAAA,EACCxE,GAAAA,CAACoC,EAAAA,CAAA,CACC,QAAA,CAAApC,GAAAA,CAAC0E,iBAAA,CAAiB,SAAA,CAAU,uCAAA,CAAwC,CAAA,CACtE,CAAA,CAAA,CAEJ,CAAA,CACF,CAEJ,CAIA,SAAStC,EAAAA,CAAsBhD,CAAAA,CAAmC,CAChE,OACEY,IAACoC,CAAAA,CAAA,CAAgC,GAAGhD,CAAAA,CAAO,CAE/C,CAIA,SAASiD,EAAAA,CAAkBjD,CAAAA,CAA+B,CACxD,GAAM,CAAE,UAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,CAAAA,CAE/B,OAAOY,IAACqC,CAAAA,CAAA,CACN,SAAA,CAAWO,EAAAA,CAAG,6BAAA,CAA+BF,CAAS,EACrD,GAAGC,CAAAA,CACN,CACF,CAIA,SAASL,GAAclD,CAAAA,CAA2B,CAChD,GAAM,CAAE,SAAA,CAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,CAAAA,CAE/B,OAAOY,GAAAA,CAACsC,CAAAA,CAAA,CACN,SAAA,CAAWM,EAAAA,CAAG,MAAA,CAAQF,CAAS,CAAA,CAC9B,GAAGC,EACN,CACF,CAIA,SAASJ,EAAAA,CAAmBnD,CAAAA,CAAgC,CAC1D,GAAM,CAAE,SAAA,CAAAsD,CAAAA,CAAW,GAAGC,CAAK,EAAIvD,CAAAA,CAE/B,OAAOY,IAACuC,CAAAA,CAAA,CACN,UAAWK,EAAAA,CAAG,qDAAA,CAAuDF,CAAS,CAAA,CAC7E,GAAGC,CAAAA,CACN,CACF,CAIA,SAASH,GAAmBpD,CAAAA,CAAgC,CAC1D,OAAOY,GAAAA,CAACwC,EAAAA,CAAA,CAA6B,GAAGpD,CAAAA,CAAO,CACjD,CAIA,SAASqD,EAAAA,CAAcrD,CAAAA,CAA2B,CAChD,GAAM,CAAE,UAAAsD,CAAAA,CAAW,GAAGC,CAAK,CAAA,CAAIvD,CAAAA,CAE/B,OAAOY,IAACyC,EAAAA,CAAA,CACN,UAAWG,EAAAA,CAAG,iBAAA,CAAmBF,CAAS,CAAA,CACzC,GAAGC,CAAAA,CACN,CACF,CAEA,SAASgC,GAAuB,CAC9B,OAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAY,EAAA,CACZ,GAAGzF,CACL,CAAA,CAAkE,CAChE,OACEY,GAAAA,CAAC8E,CAAAA,CAAA,CACC,OAAA,CAASF,CAAAA,CACT,UAAWC,CAAAA,CACV,GAAGzF,EAEH,QAAA,CAAAwF,CAAAA,EACCrB,IAAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,4EAAA,CACb,UAAAvD,GAAAA,CAACuE,WAAAA,CAAA,CAAY,SAAA,CAAU,qBAAA,CAAsB,CAAA,CAC7CvE,IAAC,MAAA,CAAA,CAAK,QAAA,CAAA,iBAAA,CAEN,CAAA,CAAA,CACF,CAAA,CAEJ,CAEJ","file":"chunk-ISGXRZLJ.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react/combobox\"\r\nimport {\r\n AnimatePresence,\r\n type HTMLMotionProps,\r\n motion\r\n} from \"motion/react\"\r\n\r\nimport {\r\n Highlight,\r\n HighlightItem,\r\n type HighlightItemProps,\r\n type HighlightProps,\r\n} from \"../effects/highlight\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { useDataState } from \"@xploreu/hooks/use-data-state\"\r\nimport { getStrictContext } from \"@xploreu/lib/get-strict-context\"\r\n\r\ntype ComboboxContextType<Value, Multiple extends boolean | undefined = false> = {\r\n open: ComboboxProps<Value, Multiple>[\"open\"];\r\n setOpen: NonNullable<ComboboxProps<Value, Multiple>[\"onOpenChange\"]>;\r\n inputValue: ComboboxProps<Value, Multiple>[\"inputValue\"];\r\n setInputValue: NonNullable<ComboboxProps<Value, Multiple>[\"onInputValueChange\"]>;\r\n}\r\n\r\ntype ComboboxActiveValueContextType = {\r\n highlightedValue: string | null;\r\n setHighlightedValue: (value: string | null) => void;\r\n}\r\n\r\nconst [ComboboxProvider, useCombobox] =\r\n getStrictContext<ComboboxContextType<unknown>>(\"ComboboxContext\")\r\n\r\nconst [ComboboxActiveValueProvider, useComboboxActiveValue] =\r\n getStrictContext<ComboboxActiveValueContextType>(\"ComboboxActiveValueContext\")\r\n\r\ntype ComboboxProps<Value, Multiple extends boolean | undefined = false> = ComboboxPrimitive.Root.Props<Value, Multiple> & {\r\n behavior?: \"default\" | \"chip-outside\";\r\n}\r\n\r\nfunction Combobox<Value, Multiple extends boolean | undefined = false>({\r\n behavior = \"default\",\r\n ...props\r\n}: ComboboxProps<Value, Multiple>) {\r\n const [open, setOpen] = useControlledState({\r\n value: props?.open,\r\n defaultValue: props?.defaultOpen,\r\n onChange: props?.onOpenChange,\r\n })\r\n\r\n const [inputValue, setInputValue] = useControlledState({\r\n value: props?.inputValue?.toString(),\r\n defaultValue: props?.defaultInputValue?.toString(),\r\n onChange: props?.onInputValueChange,\r\n })\r\n\r\n const [highlightedValue, setHighlightedValue] = React.useState<string | null>(null)\r\n\r\n const handleInputValueChange: ComboboxProps<Value, Multiple>[\"onInputValueChange\"] = (inputValue, eventDetails) => {\r\n // if the input is cleared, we want to cancel the event to prevent resetting the input value.\r\n if (eventDetails.reason === \"input-clear\") return eventDetails.cancel()\r\n\r\n setInputValue(inputValue, eventDetails)\r\n }\r\n\r\n const handleOpenChange: ComboboxProps<Value, Multiple>[\"onOpenChange\"] = (open, eventDetails) => {\r\n const dataSet = (eventDetails.trigger as HTMLElement)?.dataset\r\n\r\n\r\n if (behavior === \"chip-outside\") {\r\n if (\r\n eventDetails.reason === \"trigger-press\" &&\r\n dataSet?.slot === \"combobox-clear-input\" &&\r\n !open\r\n ) {\r\n return eventDetails.cancel()\r\n }\r\n\r\n if (eventDetails.reason === \"item-press\") {\r\n return eventDetails.cancel()\r\n }\r\n }\r\n\r\n setOpen(open, eventDetails)\r\n }\r\n\r\n return (\r\n <ComboboxActiveValueProvider value={{ highlightedValue, setHighlightedValue }}>\r\n <ComboboxProvider value={{ open, setOpen, inputValue, setInputValue }}>\r\n <ComboboxPrimitive.Root\r\n data-slot=\"combobox\"\r\n {...props}\r\n onInputValueChange={handleInputValueChange}\r\n onOpenChange={handleOpenChange}\r\n />\r\n </ComboboxProvider>\r\n </ComboboxActiveValueProvider>\r\n )\r\n}\r\n\r\ntype ComboboxTriggerProps = ComboboxPrimitive.Trigger.Props\r\n\r\nfunction ComboboxTrigger(props: ComboboxTriggerProps) {\r\n return <ComboboxPrimitive.Trigger\r\n data-slot=\"combobox-trigger\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxLabelProps = ComboboxPrimitive.Label.Props\r\n\r\nfunction ComboboxLabel(props: ComboboxLabelProps) {\r\n return <ComboboxPrimitive.Label\r\n data-slot=\"combobox-label\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxInputGroupProps = ComboboxPrimitive.InputGroup.Props\r\n\r\nfunction ComboboxInputGroup(props: ComboboxInputGroupProps) {\r\n return <ComboboxPrimitive.InputGroup\r\n data-slot=\"combobox-input-group\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxInputProps = ComboboxPrimitive.Input.Props\r\n\r\nfunction ComboboxInput(props: ComboboxInputProps) {\r\n return <ComboboxPrimitive.Input\r\n data-slot=\"combobox-input\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxIconProps = ComboboxPrimitive.Icon.Props\r\n\r\nfunction ComboboxIcon(props: ComboboxIconProps) {\r\n return <ComboboxPrimitive.Icon\r\n data-slot=\"combobox-icon\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxClearProps = ComboboxPrimitive.Clear.Props\r\n\r\nfunction ComboboxClear(props: ComboboxClearProps) {\r\n return <ComboboxPrimitive.Clear\r\n data-slot=\"combobox-clear\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxValueProps = ComboboxPrimitive.Value.Props\r\n\r\nfunction ComboboxValue(props: ComboboxValueProps) {\r\n return <ComboboxPrimitive.Value\r\n data-slot=\"combobox-value\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipsProps = ComboboxPrimitive.Chips.Props\r\n\r\nfunction ComboboxChips(props: ComboboxChipsProps) {\r\n return <ComboboxPrimitive.Chips\r\n data-slot=\"combobox-chips\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipProps = ComboboxPrimitive.Chip.Props\r\n\r\nfunction ComboboxChip(props: ComboboxChipProps) {\r\n return <ComboboxPrimitive.Chip\r\n data-slot=\"combobox-chip\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipRemoveProps = ComboboxPrimitive.ChipRemove.Props\r\n\r\nfunction ComboboxChipRemove(props: ComboboxChipRemoveProps) {\r\n return <ComboboxPrimitive.ChipRemove\r\n data-slot=\"combobox-chip-remove\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxPortalProps = Omit<\r\n ComboboxPrimitive.Portal.Props,\r\n \"keepMounted\"\r\n>\r\n\r\nfunction ComboboxPortal(props: ComboboxPortalProps) {\r\n const { open } = useCombobox()\r\n\r\n return (\r\n <AnimatePresence>\r\n {open && (\r\n <ComboboxPrimitive.Portal\r\n data-slot=\"combobox-portal\"\r\n keepMounted\r\n {...props}\r\n />\r\n )}\r\n </AnimatePresence>\r\n )\r\n}\r\n\r\ntype ComboboxPositionerProps = ComboboxPrimitive.Positioner.Props\r\n\r\nfunction ComboboxPositioner(props: ComboboxPositionerProps) {\r\n return (\r\n <ComboboxPrimitive.Positioner\r\n data-slot=\"combobox-positioner\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxPopupProps = Omit<\r\n ComboboxPrimitive.Popup.Props,\r\n \"render\"\r\n> &\r\n HTMLMotionProps<\"div\">\r\n\r\nfunction ComboboxPopup({\r\n initialFocus,\r\n finalFocus,\r\n transition = { type: \"spring\", stiffness: 300, damping: 25 },\r\n ...props\r\n}: ComboboxPopupProps) {\r\n return (\r\n <ComboboxPrimitive.Popup\r\n finalFocus={finalFocus}\r\n initialFocus={initialFocus}\r\n render={\r\n <motion.div\r\n key=\"combobox-popup\"\r\n animate={{ opacity: 1, scale: 1 }}\r\n data-slot=\"combobox-popup\"\r\n exit={{ opacity: 0, scale: 0.5 }}\r\n initial={{ opacity: 0, scale: 0.5 }}\r\n transition={transition}\r\n {...props}\r\n />\r\n }\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxBackdropProps = ComboboxPrimitive.Backdrop.Props\r\n\r\nfunction ComboboxBackdrop(props: ComboboxBackdropProps) {\r\n return <ComboboxPrimitive.Backdrop\r\n data-slot=\"combobox-backdrop\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxStatusProps = ComboboxPrimitive.Status.Props\r\n\r\nfunction ComboboxStatus(props: ComboboxStatusProps) {\r\n return <ComboboxPrimitive.Status\r\n data-slot=\"combobox-status\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxEmptyProps = ComboboxPrimitive.Empty.Props\r\n\r\nfunction ComboboxEmpty(props: ComboboxEmptyProps) {\r\n return <ComboboxPrimitive.Empty\r\n data-slot=\"combobox-empty\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxListProps = ComboboxPrimitive.List.Props\r\n\r\nfunction ComboboxList(props: ComboboxListProps) {\r\n return <ComboboxPrimitive.List\r\n data-slot=\"combobox-list\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxHighlightProps = Omit<\r\n HighlightProps,\r\n \"controlledItems\" | \"enabled\" | \"hover\"\r\n>\r\n\r\nfunction ComboboxHighlight({\r\n transition = { type: \"spring\", stiffness: 350, damping: 35 },\r\n ...props\r\n}: ComboboxHighlightProps) {\r\n const { highlightedValue } = useComboboxActiveValue()\r\n\r\n return (\r\n <Highlight\r\n click={false}\r\n controlledItems\r\n data-slot=\"combobox-highlight\"\r\n transition={transition}\r\n value={highlightedValue}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxHighlightItemProps = HighlightItemProps\r\n\r\nfunction ComboboxHighlightItem(props: ComboboxHighlightItemProps) {\r\n return (\r\n <HighlightItem\r\n data-slot=\"combobox-highlight-item\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxRowProps = ComboboxPrimitive.Row.Props\r\n\r\nfunction ComboboxRow(props: ComboboxRowProps) {\r\n return <ComboboxPrimitive.Row\r\n data-slot=\"combobox-row\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxItemProps = ComboboxPrimitive.Item.Props\r\n\r\nfunction ComboboxItem(props: ComboboxItemProps) {\r\n const { setHighlightedValue } = useComboboxActiveValue()\r\n const [, highlightedRef] = useDataState<HTMLDivElement>(\r\n \"highlighted\",\r\n undefined,\r\n (value, ref) => {\r\n if (value === true) {\r\n const el = ref.current\r\n const v = el?.dataset.value || el?.id || null\r\n if (v) setHighlightedValue(v)\r\n }\r\n },\r\n )\r\n\r\n return <ComboboxPrimitive.Item\r\n ref={highlightedRef}\r\n data-slot=\"combobox-item\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxItemIndicatorProps = ComboboxPrimitive.ItemIndicator.Props\r\n\r\nfunction ComboboxItemIndicator(props: ComboboxItemIndicatorProps) {\r\n return <ComboboxPrimitive.ItemIndicator\r\n data-slot=\"combobox-item-indicator\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxSeparatorProps = ComboboxPrimitive.Separator.Props\r\n\r\nfunction ComboboxSeparator(props: ComboboxSeparatorProps) {\r\n return <ComboboxPrimitive.Separator\r\n data-slot=\"combobox-separator\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxGroupProps = ComboboxPrimitive.Group.Props\r\n\r\nfunction ComboboxGroup(props: ComboboxGroupProps) {\r\n return <ComboboxPrimitive.Group\r\n data-slot=\"combobox-group\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxGroupLabelProps = ComboboxPrimitive.GroupLabel.Props\r\n\r\nfunction ComboboxGroupLabel(props: ComboboxGroupLabelProps) {\r\n return <ComboboxPrimitive.GroupLabel\r\n data-slot=\"combobox-group-label\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxCollectionProps = ComboboxPrimitive.Collection.Props\r\n\r\nfunction ComboboxCollection(props: ComboboxCollectionProps) {\r\n return <ComboboxPrimitive.Collection\r\n data-slot=\"combobox-collection\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxArrowProps = ComboboxPrimitive.Arrow.Props\r\n\r\nfunction ComboboxArrow(props: ComboboxArrowProps) {\r\n return <ComboboxPrimitive.Arrow\r\n data-slot=\"combobox-arrow\"\r\n {...props}\r\n />\r\n}\r\n\r\nexport {\r\n Combobox,\r\n type ComboboxActiveValueContextType,\r\n ComboboxArrow,\r\n type ComboboxArrowProps,\r\n ComboboxBackdrop,\r\n type ComboboxBackdropProps,\r\n ComboboxChip,\r\n type ComboboxChipProps,\r\n ComboboxChipRemove,\r\n type ComboboxChipRemoveProps,\r\n ComboboxChips,\r\n type ComboboxChipsProps,\r\n ComboboxClear,\r\n type ComboboxClearProps,\r\n ComboboxCollection,\r\n type ComboboxCollectionProps,\r\n type ComboboxContextType,\r\n ComboboxEmpty,\r\n type ComboboxEmptyProps,\r\n ComboboxGroup,\r\n ComboboxGroupLabel,\r\n type ComboboxGroupLabelProps,\r\n type ComboboxGroupProps,\r\n ComboboxHighlight,\r\n ComboboxHighlightItem,\r\n type ComboboxHighlightItemProps,\r\n type ComboboxHighlightProps,\r\n ComboboxIcon,\r\n type ComboboxIconProps,\r\n ComboboxInput,\r\n ComboboxInputGroup,\r\n type ComboboxInputGroupProps,\r\n type ComboboxInputProps,\r\n ComboboxItem,\r\n ComboboxItemIndicator,\r\n type ComboboxItemIndicatorProps,\r\n type ComboboxItemProps,\r\n ComboboxLabel,\r\n type ComboboxLabelProps,\r\n ComboboxList,\r\n type ComboboxListProps,\r\n ComboboxPopup,\r\n type ComboboxPopupProps,\r\n ComboboxPortal,\r\n type ComboboxPortalProps,\r\n ComboboxPositioner,\r\n type ComboboxPositionerProps,\r\n type ComboboxProps,\r\n ComboboxRow,\r\n type ComboboxRowProps,\r\n ComboboxSeparator,\r\n type ComboboxSeparatorProps,\r\n ComboboxStatus,\r\n type ComboboxStatusProps,\r\n ComboboxTrigger,\r\n type ComboboxTriggerProps,\r\n ComboboxValue,\r\n type ComboboxValueProps,\r\n useCombobox,\r\n useComboboxActiveValue,\r\n}","import * as React from \"react\"\r\n\r\nimport {\r\n CheckCircle2Icon,\r\n Loader2Icon,\r\n SearchIcon,\r\n XIcon\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n Combobox as ComboboxPrimitive,\r\n ComboboxArrow as ComboboxArrowPrimitive,\r\n type ComboboxArrowProps as ComboboxArrowPrimitiveProps,\r\n ComboboxBackdrop as ComboboxBackdropPrimitive,\r\n type ComboboxBackdropProps as ComboboxBackdropPrimitiveProps,\r\n ComboboxChip as ComboboxChipPrimitive,\r\n type ComboboxChipProps as ComboboxChipPrimitiveProps,\r\n ComboboxChipRemove as ComboboxChipRemovePrimitive,\r\n type ComboboxChipRemoveProps as ComboboxChipRemovePrimitiveProps,\r\n ComboboxChips as ComboboxChipsPrimitive,\r\n type ComboboxChipsProps as ComboboxChipsPrimitiveProps,\r\n ComboboxClear as ComboboxClearPrimitive,\r\n type ComboboxClearProps as ComboboxClearPrimitiveProps,\r\n ComboboxCollection as ComboboxCollectionPrimitive,\r\n type ComboboxCollectionProps as ComboboxCollectionPrimitiveProps,\r\n ComboboxEmpty as ComboboxEmptyPrimitive,\r\n type ComboboxEmptyProps as ComboboxEmptyPrimitiveProps,\r\n ComboboxGroup as ComboboxGroupPrimitive,\r\n ComboboxGroupLabel as ComboboxGroupLabelPrimitive,\r\n type ComboboxGroupLabelProps as ComboboxGroupLabelPrimitiveProps,\r\n type ComboboxGroupProps as ComboboxGroupPrimitiveProps,\r\n ComboboxHighlight as ComboboxHighlightPrimitive,\r\n ComboboxHighlightItem as ComboboxHighlightItemPrimitive,\r\n type ComboboxHighlightItemProps as ComboboxHighlightItemPrimitiveProps,\r\n type ComboboxHighlightProps as ComboboxHighlightPrimitiveProps,\r\n ComboboxIcon as ComboboxIconPrimitive,\r\n type ComboboxIconProps as ComboboxIconPrimitiveProps,\r\n ComboboxInput as ComboboxInputPrimitive,\r\n ComboboxInputGroup as ComboboxInputGroupPrimitive,\r\n type ComboboxInputGroupProps as ComboboxInputGroupPrimitiveProps,\r\n type ComboboxInputProps as ComboboxInputPrimitiveProps,\r\n ComboboxItem as ComboboxItemPrimitive,\r\n ComboboxItemIndicator as ComboboxItemIndicatorPrimitive,\r\n type ComboboxItemIndicatorProps as ComboboxItemIndicatorPrimitiveProps,\r\n type ComboboxItemProps as ComboboxItemPrimitiveProps,\r\n ComboboxLabel as ComboboxLabelPrimitive,\r\n type ComboboxLabelProps as ComboboxLabelPrimitiveProps,\r\n ComboboxList as ComboboxListPrimitive,\r\n type ComboboxListProps as ComboboxListPrimitiveProps,\r\n ComboboxPopup as ComboboxPopupPrimitive,\r\n type ComboboxPopupProps as ComboboxPopupPrimitiveProps,\r\n ComboboxPortal as ComboboxPortalPrimitive,\r\n type ComboboxPortalProps as ComboboxPortalPrimitiveProps,\r\n ComboboxPositioner as ComboboxPositionerPrimitive,\r\n type ComboboxPositionerProps as ComboboxPositionerPrimitiveProps,\r\n type ComboboxProps as ComboboxPrimitiveProps,\r\n ComboboxRow as ComboboxRowPrimitive,\r\n type ComboboxRowProps as ComboboxRowPrimitiveProps,\r\n ComboboxSeparator as ComboboxSeparatorPrimitive,\r\n type ComboboxSeparatorProps as ComboboxSeparatorPrimitiveProps,\r\n ComboboxStatus as ComboboxStatusPrimitive,\r\n type ComboboxStatusProps as ComboboxStatusPrimitiveProps,\r\n ComboboxTrigger as ComboboxTriggerPrimitive,\r\n type ComboboxTriggerProps as ComboboxTriggerPrimitiveProps,\r\n ComboboxValue as ComboboxValuePrimitive,\r\n type ComboboxValueProps as ComboboxValuePrimitiveProps,\r\n useCombobox,\r\n} from \"../primitives/combobox\"\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { Badge, BadgeButton } from \"./badge\"\r\nimport { InfiniteScroll } from \"./infinite-scroll\"\r\nimport { Input, inputVariants } from \"./input\"\r\n\r\ntype ComboboxProps<Value, Multiple extends boolean | undefined = false> = ComboboxPrimitiveProps<Value, Multiple>\r\n\r\nfunction Combobox<Value, Multiple extends boolean | undefined = false>(props: ComboboxProps<Value, Multiple>) {\r\n return (\r\n <ComboboxPrimitive {...props} />\r\n )\r\n}\r\n\r\ntype ComboboxTriggerProps = ComboboxTriggerPrimitiveProps\r\n\r\nfunction ComboboxTrigger(props: ComboboxTriggerProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxTriggerPrimitive\r\n className={cn(\r\n \"group/combobox-trigger flex items-center gap-2\",\r\n className,\r\n )}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxLabelProps = ComboboxLabelPrimitiveProps\r\n\r\nfunction ComboboxLabel(props: ComboboxLabelProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxLabelPrimitive\r\n className={cn(\r\n \"text-label-semibold-2 text-text-secondary\",\r\n className,\r\n )}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxInputGroupProps = ComboboxInputGroupPrimitiveProps\r\n\r\nfunction ComboboxInputGroup(props: ComboboxInputGroupProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxInputGroupPrimitive\r\n className={cn(\r\n \"flex w-full items-center gap-2\",\r\n className,\r\n )}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxInputProps = ComboboxInputPrimitiveProps & {\r\n wrapperClassName?: string\r\n}\r\n\r\nfunction ComboboxInput({\r\n className,\r\n wrapperClassName,\r\n ...props\r\n}: ComboboxInputProps) {\r\n\r\n return (\r\n <div className={cn(\"px-3 py-2.5 border-b border-border-primary\", wrapperClassName)}>\r\n <ComboboxInputPrimitive\r\n className={className}\r\n render={<Input size=\"sm\" startContent={<SearchIcon />} />}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nfunction ComboboxInputFilter({\r\n className,\r\n displayValueKey = { label: \"label\", value: \"value\" },\r\n placeholder = \"Search and Select Company\",\r\n inputProps,\r\n ...props\r\n}: ComboboxInputProps & {\r\n displayValueKey?: {\r\n label: string\r\n value: string\r\n }\r\n placeholder?: string\r\n inputProps?: React.ComponentProps<typeof Input>\r\n}) {\r\n const { inputValue, setInputValue } = useCombobox()\r\n const { className: inputClassName, startContent, ...restInputProps } = inputProps || {}\r\n\r\n return (\r\n <div className={cn(\"flex flex-col gap-2\", className)}>\r\n <ComboboxChips\r\n onMouseDown={(e) => e.preventBaseUIHandler()}\r\n className=\"flex-col\"\r\n >\r\n <ComboboxInputPrimitive\r\n render={\r\n <Input\r\n className={cn(\"h-9 text-body-regular-3 pl-9 pr-7\", inputClassName)}\r\n endContent={\r\n <ComboboxTrigger\r\n nativeButton={false}\r\n render={(\r\n <XIcon\r\n className=\"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer\"\r\n data-hidden={!inputValue}\r\n data-slot=\"combobox-clear-input\"\r\n onClick={(event) => {\r\n setInputValue(\"\", {\r\n reason: \"none\",\r\n event: event.nativeEvent,\r\n cancel: () => { },\r\n allowPropagation: () => { },\r\n isCanceled: false,\r\n isPropagationAllowed: true,\r\n trigger: undefined,\r\n })\r\n }}\r\n />\r\n )}\r\n />\r\n }\r\n placeholder={placeholder}\r\n startContent={startContent ?? <SearchIcon className=\"!size-4 !text-fg-tertiary-hover\" />}\r\n {...restInputProps}\r\n />\r\n }\r\n {...props}\r\n />\r\n <ComboboxValue>\r\n {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}\r\n {(value) => value?.map((item: any) => (\r\n <ComboboxChip key={item?.[displayValueKey.value] || \"\"}>\r\n {item?.[displayValueKey.label] || \"\"}\r\n <ComboboxChipRemove />\r\n </ComboboxChip>\r\n ))}\r\n </ComboboxValue>\r\n </ComboboxChips>\r\n </div>\r\n )\r\n}\r\n\r\ntype ComboboxIconProps = ComboboxIconPrimitiveProps\r\n\r\nfunction ComboboxIcon(props: ComboboxIconProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxIconPrimitive\r\n className={cn(\"text-text-secondary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxClearProps = ComboboxClearPrimitiveProps\r\n\r\nfunction ComboboxClear(props: ComboboxClearProps) {\r\n\r\n return (\r\n <ComboboxClearPrimitive\r\n render={<XIcon />}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxValueProps = ComboboxValuePrimitiveProps\r\n\r\nfunction ComboboxValue(props: ComboboxValueProps) {\r\n return <ComboboxValuePrimitive {...props} />\r\n}\r\n\r\ntype ComboboxChipsProps = ComboboxChipsPrimitiveProps\r\n\r\nfunction ComboboxChips({\r\n className,\r\n ...props\r\n}: ComboboxChipsProps) {\r\n return <ComboboxChipsPrimitive\r\n className={cn(\"flex flex-wrap gap-2\", className)}\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipProps = ComboboxChipPrimitiveProps\r\n\r\nfunction ComboboxChip({\r\n className,\r\n ...props\r\n}: ComboboxChipProps) {\r\n return (\r\n <Badge\r\n className={cn(\"ring-1 ring-border-brand text-body-medium-3\", className)}\r\n color=\"brand\"\r\n render={(\r\n <ComboboxChipPrimitive\r\n {...props}\r\n />\r\n )}\r\n size=\"lg\"\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxChipRemoveProps = ComboboxChipRemovePrimitiveProps\r\n\r\nfunction ComboboxChipRemove({\r\n className,\r\n ...props\r\n}: ComboboxChipRemoveProps) {\r\n return (\r\n <BadgeButton\r\n className={cn(\"text-fg-quaternary\", className)}\r\n render={(\r\n <ComboboxChipRemovePrimitive\r\n {...props}\r\n />\r\n )}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxPopupProps = ComboboxPositionerPrimitiveProps &\r\n ComboboxPopupPrimitiveProps & {\r\n container?: React.ComponentProps<typeof ComboboxPortal>[\"container\"]\r\n }\r\n\r\nfunction ComboboxPopup({\r\n className,\r\n align = \"start\",\r\n sideOffset = 4,\r\n container,\r\n initialFocus,\r\n finalFocus,\r\n style,\r\n children,\r\n ...props\r\n}: ComboboxPopupProps) {\r\n return (\r\n <ComboboxPortalPrimitive container={container}>\r\n <ComboboxPositionerPrimitive\r\n align={align}\r\n className=\"isolate z-50\"\r\n sideOffset={sideOffset}\r\n {...props}\r\n >\r\n <ComboboxPopupPrimitive\r\n className={cn(\r\n \"group/combobox-popup bg-bg-primary text-text-primary max-h-(--available-height) w-72 max-w-(--available-width) origin-(--transform-origin) rounded-md border border-border-primary shadow-md outline-hidden\",\r\n className,\r\n )}\r\n finalFocus={finalFocus}\r\n initialFocus={initialFocus}\r\n style={style}\r\n >\r\n <ComboboxHighlight>\r\n {children}\r\n </ComboboxHighlight>\r\n </ComboboxPopupPrimitive>\r\n </ComboboxPositionerPrimitive>\r\n </ComboboxPortalPrimitive>\r\n )\r\n}\r\n\r\ntype ComboboxPortalProps = ComboboxPortalPrimitiveProps\r\n\r\nfunction ComboboxPortal(props: ComboboxPortalProps) {\r\n return <ComboboxPortalPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxPositionerProps = ComboboxPositionerPrimitiveProps\r\n\r\nfunction ComboboxPositioner(props: ComboboxPositionerProps) {\r\n return <ComboboxPositionerPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxBackdropProps = ComboboxBackdropPrimitiveProps\r\n\r\nfunction ComboboxBackdrop(props: ComboboxBackdropProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxBackdropPrimitive\r\n className={cn(\"bg-black/30\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxStatusProps = ComboboxStatusPrimitiveProps\r\n\r\nfunction ComboboxStatus({\r\n className,\r\n status,\r\n ...props\r\n}: Omit<ComboboxStatusProps, \"children\"> & {\r\n status?: \"empty\" | \"pending\" | null\r\n}) {\r\n const { inputValue } = useCombobox()\r\n\r\n const trimmedInputValue = inputValue?.toString().trim()\r\n\r\n const getText = () => {\r\n if (status === \"empty\" && trimmedInputValue)\r\n return `No matches for \"${trimmedInputValue}\".`\r\n\r\n if (status === \"empty\" && !trimmedInputValue)\r\n return \"No results.\"\r\n\r\n if (status === \"pending\")\r\n return (\r\n <>\r\n <Loader2Icon className=\"animate-spin size-4\" />\r\n <span>\r\n Searching...\r\n </span>\r\n </>\r\n )\r\n\r\n return null\r\n }\r\n\r\n const text = getText()\r\n\r\n return (\r\n <ComboboxStatusPrimitive\r\n className={cn(\r\n \"px-2 py-2.5 text-body-regular-2 text-text-disabled flex items-center gap-2\",\r\n !text && \"hidden\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {text}\r\n </ComboboxStatusPrimitive>\r\n )\r\n}\r\n\r\ntype ComboboxLoadingProps = React.ComponentProps<\"div\">\r\n\r\ntype ComboboxEmptyProps = ComboboxEmptyPrimitiveProps\r\n\r\nfunction ComboboxEmpty({ className, ...props }: ComboboxEmptyProps) {\r\n return <ComboboxEmptyPrimitive\r\n className={cn(\"px-3 py-2 text-body-regular-2 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxListProps = ComboboxListPrimitiveProps\r\n\r\nfunction ComboboxList({\r\n className,\r\n ...props\r\n}: ComboboxListProps) {\r\n return (\r\n <ComboboxListPrimitive\r\n className={cn(\"max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] overflow-auto scrollbar-thin flex flex-col py-1 focus-visible:outline-none\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxHighlightProps = ComboboxHighlightPrimitiveProps\r\n\r\nfunction ComboboxHighlight(props: ComboboxHighlightProps) {\r\n const { className, ...rest } = props\r\n\r\n return (\r\n <ComboboxHighlightPrimitive\r\n className={cn(\"absolute inset-0 bg-bg-primary-hover\", className)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxHighlightItemProps = ComboboxHighlightItemPrimitiveProps\r\n\r\nfunction ComboboxHighlightItem(props: ComboboxHighlightItemProps) {\r\n return <ComboboxHighlightItemPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxRowProps = ComboboxRowPrimitiveProps\r\n\r\nfunction ComboboxRow(props: ComboboxRowProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxRowPrimitive\r\n className={cn(\"group/combobox-row\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxItemProps = ComboboxItemPrimitiveProps & {\r\n withIndicator?: boolean\r\n}\r\n\r\nfunction ComboboxItem({\r\n className,\r\n children,\r\n withIndicator = true,\r\n ...props\r\n}: ComboboxItemProps) {\r\n const { disabled } = props\r\n\r\n return (\r\n <ComboboxHighlightItem\r\n activeClassName=\"bg-bg-primary-hover\"\r\n disabled={disabled}\r\n >\r\n <ComboboxItemPrimitive\r\n className={cn(\r\n \"flex w-full cursor-default items-center gap-xp-md px-3 py-2.5 text-body-medium-2 text-text-primary outline-none\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {withIndicator && (\r\n <ComboboxItemIndicator>\r\n <CheckCircle2Icon className=\"size-5 text-fg-brand-primary shrink-0\" />\r\n </ComboboxItemIndicator>\r\n )}\r\n </ComboboxItemPrimitive>\r\n </ComboboxHighlightItem>\r\n )\r\n}\r\n\r\ntype ComboboxItemIndicatorProps = ComboboxItemIndicatorPrimitiveProps\r\n\r\nfunction ComboboxItemIndicator(props: ComboboxItemIndicatorProps) {\r\n return (\r\n <ComboboxItemIndicatorPrimitive {...props} />\r\n )\r\n}\r\n\r\ntype ComboboxSeparatorProps = ComboboxSeparatorPrimitiveProps\r\n\r\nfunction ComboboxSeparator(props: ComboboxSeparatorProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxSeparatorPrimitive\r\n className={cn(\"my-1 h-px bg-border-primary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxGroupProps = ComboboxGroupPrimitiveProps\r\n\r\nfunction ComboboxGroup(props: ComboboxGroupProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxGroupPrimitive\r\n className={cn(\"py-1\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxGroupLabelProps = ComboboxGroupLabelPrimitiveProps\r\n\r\nfunction ComboboxGroupLabel(props: ComboboxGroupLabelProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxGroupLabelPrimitive\r\n className={cn(\"px-3 py-1 text-body-semibold-sm text-text-secondary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxCollectionProps = ComboboxCollectionPrimitiveProps\r\n\r\nfunction ComboboxCollection(props: ComboboxCollectionProps) {\r\n return <ComboboxCollectionPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxArrowProps = ComboboxArrowPrimitiveProps\r\n\r\nfunction ComboboxArrow(props: ComboboxArrowProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxArrowPrimitive\r\n className={cn(\"fill-bg-primary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\nfunction ComboboxInfiniteScroll({\r\n hasMore,\r\n threshold = 0.5,\r\n ...props\r\n}: Omit<React.ComponentProps<typeof InfiniteScroll>, \"children\">) {\r\n return (\r\n <InfiniteScroll\r\n hasMore={hasMore}\r\n threshold={threshold}\r\n {...props}\r\n >\r\n {hasMore && (\r\n <div className=\"px-2 py-2.5 text-body-regular-2 text-text-disabled flex items-center gap-2\">\r\n <Loader2Icon className=\"animate-spin size-4\" />\r\n <span>\r\n Loading more...\r\n </span>\r\n </div>\r\n )}\r\n </InfiniteScroll>\r\n )\r\n}\r\n\r\nexport {\r\n Combobox,\r\n ComboboxArrow,\r\n type ComboboxArrowProps,\r\n ComboboxBackdrop,\r\n type ComboboxBackdropProps,\r\n ComboboxChip,\r\n type ComboboxChipProps,\r\n ComboboxChipRemove,\r\n type ComboboxChipRemoveProps,\r\n ComboboxChips,\r\n type ComboboxChipsProps,\r\n ComboboxClear,\r\n type ComboboxClearProps,\r\n ComboboxCollection,\r\n type ComboboxCollectionProps,\r\n ComboboxPopup,\r\n type ComboboxPopupProps,\r\n ComboboxEmpty,\r\n type ComboboxEmptyProps,\r\n ComboboxGroup,\r\n ComboboxGroupLabel,\r\n type ComboboxGroupLabelProps,\r\n type ComboboxGroupProps,\r\n ComboboxHighlight,\r\n ComboboxHighlightItem,\r\n type ComboboxHighlightItemProps,\r\n type ComboboxHighlightProps,\r\n ComboboxIcon,\r\n type ComboboxIconProps,\r\n ComboboxInfiniteScroll,\r\n ComboboxInput,\r\n ComboboxInputFilter,\r\n ComboboxInputGroup,\r\n type ComboboxInputGroupProps,\r\n type ComboboxInputProps,\r\n ComboboxItem,\r\n ComboboxItemIndicator,\r\n type ComboboxItemIndicatorProps,\r\n type ComboboxItemProps,\r\n ComboboxLabel,\r\n type ComboboxLabelProps,\r\n ComboboxList,\r\n type ComboboxListProps,\r\n type ComboboxLoadingProps,\r\n ComboboxPortal,\r\n type ComboboxPortalProps,\r\n ComboboxPositioner,\r\n type ComboboxPositionerProps,\r\n type ComboboxProps,\r\n ComboboxRow,\r\n type ComboboxRowProps,\r\n ComboboxSeparator,\r\n type ComboboxSeparatorProps,\r\n ComboboxStatus,\r\n type ComboboxStatusProps,\r\n ComboboxTrigger,\r\n type ComboboxTriggerProps,\r\n ComboboxValue,\r\n type ComboboxValueProps\r\n}"]}
|
|
1
|
+
{"version":3,"sources":["../src/primitives/combobox.tsx","../src/ui/combobox.tsx"],"names":["ComboboxProvider","useCombobox","getStrictContext","ComboboxActiveValueProvider","useComboboxActiveValue","Combobox","behavior","props","open","setOpen","useControlledState","inputValue","setInputValue","highlightedValue","setHighlightedValue","handleInputValueChange","eventDetails","handleOpenChange","dataSet","jsx","ComboboxPrimitive","ComboboxTrigger","ComboboxLabel","ComboboxInputGroup","ComboboxInput","ComboboxIcon","ComboboxClear","ComboboxValue","ComboboxChips","ComboboxChip","ComboboxChipRemove","ComboboxPortal","AnimatePresence","ComboboxPositioner","ComboboxPopup","initialFocus","finalFocus","transition","motion","ComboboxBackdrop","ComboboxStatus","ComboboxEmpty","ComboboxList","ComboboxHighlight","Highlight","ComboboxHighlightItem","HighlightItem","ComboboxRow","ComboboxItem","highlightedRef","useDataState","value","ref","el","v","ComboboxItemIndicator","ComboboxSeparator","ComboboxGroup","ComboboxGroupLabel","ComboboxCollection","ComboboxArrow","className","rest","cn","wrapperClassName","Input","SearchIcon","ComboboxInputFilter","displayValueKey","placeholder","inputProps","inputClassName","startContent","restInputProps","jsxs","e","XIcon","event","item","Badge","BadgeButton","align","sideOffset","container","style","children","status","trimmedInputValue","text","Fragment","Loader2Icon","withIndicator","disabled","CheckCircle2Icon","ComboboxInfiniteScroll","hasMore","threshold","InfiniteScroll"],"mappings":"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","file":"chunk-746IQSMF.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react/combobox\"\r\nimport {\r\n AnimatePresence,\r\n type HTMLMotionProps,\r\n motion\r\n} from \"motion/react\"\r\n\r\nimport {\r\n Highlight,\r\n HighlightItem,\r\n type HighlightItemProps,\r\n type HighlightProps,\r\n} from \"../effects/highlight\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { useDataState } from \"@xploreu/hooks/use-data-state\"\r\nimport { getStrictContext } from \"@xploreu/lib/get-strict-context\"\r\n\r\ntype ComboboxContextType<Value, Multiple extends boolean | undefined = false> = {\r\n open: ComboboxProps<Value, Multiple>[\"open\"];\r\n setOpen: NonNullable<ComboboxProps<Value, Multiple>[\"onOpenChange\"]>;\r\n inputValue: ComboboxProps<Value, Multiple>[\"inputValue\"];\r\n setInputValue: NonNullable<ComboboxProps<Value, Multiple>[\"onInputValueChange\"]>;\r\n}\r\n\r\ntype ComboboxActiveValueContextType = {\r\n highlightedValue: string | null;\r\n setHighlightedValue: (value: string | null) => void;\r\n}\r\n\r\nconst [ComboboxProvider, useCombobox] =\r\n getStrictContext<ComboboxContextType<unknown>>(\"ComboboxContext\")\r\n\r\nconst [ComboboxActiveValueProvider, useComboboxActiveValue] =\r\n getStrictContext<ComboboxActiveValueContextType>(\"ComboboxActiveValueContext\")\r\n\r\ntype ComboboxProps<Value, Multiple extends boolean | undefined = false> = ComboboxPrimitive.Root.Props<Value, Multiple> & {\r\n behavior?: \"default\" | \"chip-outside\";\r\n}\r\n\r\nfunction Combobox<Value, Multiple extends boolean | undefined = false>({\r\n behavior = \"default\",\r\n ...props\r\n}: ComboboxProps<Value, Multiple>) {\r\n const [open, setOpen] = useControlledState({\r\n value: props?.open,\r\n defaultValue: props?.defaultOpen,\r\n onChange: props?.onOpenChange,\r\n })\r\n\r\n const [inputValue, setInputValue] = useControlledState({\r\n value: props?.inputValue?.toString(),\r\n defaultValue: props?.defaultInputValue?.toString(),\r\n onChange: props?.onInputValueChange,\r\n })\r\n\r\n const [highlightedValue, setHighlightedValue] = React.useState<string | null>(null)\r\n\r\n const handleInputValueChange: ComboboxProps<Value, Multiple>[\"onInputValueChange\"] = (inputValue, eventDetails) => {\r\n // if the input is cleared, we want to cancel the event to prevent resetting the input value.\r\n if (eventDetails.reason === \"input-clear\") return eventDetails.cancel()\r\n\r\n setInputValue(inputValue, eventDetails)\r\n }\r\n\r\n const handleOpenChange: ComboboxProps<Value, Multiple>[\"onOpenChange\"] = (open, eventDetails) => {\r\n const dataSet = (eventDetails.trigger as HTMLElement)?.dataset\r\n\r\n\r\n if (behavior === \"chip-outside\") {\r\n if (\r\n eventDetails.reason === \"trigger-press\" &&\r\n dataSet?.slot === \"combobox-clear-input\" &&\r\n !open\r\n ) {\r\n return eventDetails.cancel()\r\n }\r\n\r\n if (eventDetails.reason === \"item-press\") {\r\n return eventDetails.cancel()\r\n }\r\n }\r\n\r\n setOpen(open, eventDetails)\r\n }\r\n\r\n return (\r\n <ComboboxActiveValueProvider value={{ highlightedValue, setHighlightedValue }}>\r\n <ComboboxProvider value={{ open, setOpen, inputValue, setInputValue }}>\r\n <ComboboxPrimitive.Root\r\n data-slot=\"combobox\"\r\n {...props}\r\n onInputValueChange={handleInputValueChange}\r\n onOpenChange={handleOpenChange}\r\n />\r\n </ComboboxProvider>\r\n </ComboboxActiveValueProvider>\r\n )\r\n}\r\n\r\ntype ComboboxTriggerProps = ComboboxPrimitive.Trigger.Props\r\n\r\nfunction ComboboxTrigger(props: ComboboxTriggerProps) {\r\n return <ComboboxPrimitive.Trigger\r\n data-slot=\"combobox-trigger\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxLabelProps = ComboboxPrimitive.Label.Props\r\n\r\nfunction ComboboxLabel(props: ComboboxLabelProps) {\r\n return <ComboboxPrimitive.Label\r\n data-slot=\"combobox-label\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxInputGroupProps = ComboboxPrimitive.InputGroup.Props\r\n\r\nfunction ComboboxInputGroup(props: ComboboxInputGroupProps) {\r\n return <ComboboxPrimitive.InputGroup\r\n data-slot=\"combobox-input-group\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxInputProps = ComboboxPrimitive.Input.Props\r\n\r\nfunction ComboboxInput(props: ComboboxInputProps) {\r\n return <ComboboxPrimitive.Input\r\n data-slot=\"combobox-input\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxIconProps = ComboboxPrimitive.Icon.Props\r\n\r\nfunction ComboboxIcon(props: ComboboxIconProps) {\r\n return <ComboboxPrimitive.Icon\r\n data-slot=\"combobox-icon\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxClearProps = ComboboxPrimitive.Clear.Props\r\n\r\nfunction ComboboxClear(props: ComboboxClearProps) {\r\n return <ComboboxPrimitive.Clear\r\n data-slot=\"combobox-clear\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxValueProps = ComboboxPrimitive.Value.Props\r\n\r\nfunction ComboboxValue(props: ComboboxValueProps) {\r\n return <ComboboxPrimitive.Value\r\n data-slot=\"combobox-value\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipsProps = ComboboxPrimitive.Chips.Props\r\n\r\nfunction ComboboxChips(props: ComboboxChipsProps) {\r\n return <ComboboxPrimitive.Chips\r\n data-slot=\"combobox-chips\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipProps = ComboboxPrimitive.Chip.Props\r\n\r\nfunction ComboboxChip(props: ComboboxChipProps) {\r\n return <ComboboxPrimitive.Chip\r\n data-slot=\"combobox-chip\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipRemoveProps = ComboboxPrimitive.ChipRemove.Props\r\n\r\nfunction ComboboxChipRemove(props: ComboboxChipRemoveProps) {\r\n return <ComboboxPrimitive.ChipRemove\r\n data-slot=\"combobox-chip-remove\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxPortalProps = Omit<\r\n ComboboxPrimitive.Portal.Props,\r\n \"keepMounted\"\r\n>\r\n\r\nfunction ComboboxPortal(props: ComboboxPortalProps) {\r\n const { open } = useCombobox()\r\n\r\n return (\r\n <AnimatePresence>\r\n {open && (\r\n <ComboboxPrimitive.Portal\r\n data-slot=\"combobox-portal\"\r\n keepMounted\r\n {...props}\r\n />\r\n )}\r\n </AnimatePresence>\r\n )\r\n}\r\n\r\ntype ComboboxPositionerProps = ComboboxPrimitive.Positioner.Props\r\n\r\nfunction ComboboxPositioner(props: ComboboxPositionerProps) {\r\n return (\r\n <ComboboxPrimitive.Positioner\r\n data-slot=\"combobox-positioner\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxPopupProps = Omit<\r\n ComboboxPrimitive.Popup.Props,\r\n \"render\"\r\n> &\r\n HTMLMotionProps<\"div\">\r\n\r\nfunction ComboboxPopup({\r\n initialFocus,\r\n finalFocus,\r\n transition = { type: \"spring\", stiffness: 300, damping: 25 },\r\n ...props\r\n}: ComboboxPopupProps) {\r\n return (\r\n <ComboboxPrimitive.Popup\r\n finalFocus={finalFocus}\r\n initialFocus={initialFocus}\r\n render={\r\n <motion.div\r\n key=\"combobox-popup\"\r\n animate={{ opacity: 1, scale: 1 }}\r\n data-slot=\"combobox-popup\"\r\n exit={{ opacity: 0, scale: 0.5 }}\r\n initial={{ opacity: 0, scale: 0.5 }}\r\n transition={transition}\r\n {...props}\r\n />\r\n }\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxBackdropProps = ComboboxPrimitive.Backdrop.Props\r\n\r\nfunction ComboboxBackdrop(props: ComboboxBackdropProps) {\r\n return <ComboboxPrimitive.Backdrop\r\n data-slot=\"combobox-backdrop\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxStatusProps = ComboboxPrimitive.Status.Props\r\n\r\nfunction ComboboxStatus(props: ComboboxStatusProps) {\r\n return <ComboboxPrimitive.Status\r\n data-slot=\"combobox-status\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxEmptyProps = ComboboxPrimitive.Empty.Props\r\n\r\nfunction ComboboxEmpty(props: ComboboxEmptyProps) {\r\n return <ComboboxPrimitive.Empty\r\n data-slot=\"combobox-empty\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxListProps = ComboboxPrimitive.List.Props\r\n\r\nfunction ComboboxList(props: ComboboxListProps) {\r\n return <ComboboxPrimitive.List\r\n data-slot=\"combobox-list\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxHighlightProps = Omit<\r\n HighlightProps,\r\n \"controlledItems\" | \"enabled\" | \"hover\"\r\n>\r\n\r\nfunction ComboboxHighlight({\r\n transition = { type: \"spring\", stiffness: 350, damping: 35 },\r\n ...props\r\n}: ComboboxHighlightProps) {\r\n const { highlightedValue } = useComboboxActiveValue()\r\n\r\n return (\r\n <Highlight\r\n click={false}\r\n controlledItems\r\n data-slot=\"combobox-highlight\"\r\n transition={transition}\r\n value={highlightedValue}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxHighlightItemProps = HighlightItemProps\r\n\r\nfunction ComboboxHighlightItem(props: ComboboxHighlightItemProps) {\r\n return (\r\n <HighlightItem\r\n data-slot=\"combobox-highlight-item\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxRowProps = ComboboxPrimitive.Row.Props\r\n\r\nfunction ComboboxRow(props: ComboboxRowProps) {\r\n return <ComboboxPrimitive.Row\r\n data-slot=\"combobox-row\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxItemProps = ComboboxPrimitive.Item.Props\r\n\r\nfunction ComboboxItem(props: ComboboxItemProps) {\r\n const { setHighlightedValue } = useComboboxActiveValue()\r\n const [, highlightedRef] = useDataState<HTMLDivElement>(\r\n \"highlighted\",\r\n undefined,\r\n (value, ref) => {\r\n if (value === true) {\r\n const el = ref.current\r\n const v = el?.dataset.value || el?.id || null\r\n if (v) setHighlightedValue(v)\r\n }\r\n },\r\n )\r\n\r\n return <ComboboxPrimitive.Item\r\n ref={highlightedRef}\r\n data-slot=\"combobox-item\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxItemIndicatorProps = ComboboxPrimitive.ItemIndicator.Props\r\n\r\nfunction ComboboxItemIndicator(props: ComboboxItemIndicatorProps) {\r\n return <ComboboxPrimitive.ItemIndicator\r\n data-slot=\"combobox-item-indicator\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxSeparatorProps = ComboboxPrimitive.Separator.Props\r\n\r\nfunction ComboboxSeparator(props: ComboboxSeparatorProps) {\r\n return <ComboboxPrimitive.Separator\r\n data-slot=\"combobox-separator\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxGroupProps = ComboboxPrimitive.Group.Props\r\n\r\nfunction ComboboxGroup(props: ComboboxGroupProps) {\r\n return <ComboboxPrimitive.Group\r\n data-slot=\"combobox-group\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxGroupLabelProps = ComboboxPrimitive.GroupLabel.Props\r\n\r\nfunction ComboboxGroupLabel(props: ComboboxGroupLabelProps) {\r\n return <ComboboxPrimitive.GroupLabel\r\n data-slot=\"combobox-group-label\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxCollectionProps = ComboboxPrimitive.Collection.Props\r\n\r\nfunction ComboboxCollection(props: ComboboxCollectionProps) {\r\n return <ComboboxPrimitive.Collection\r\n data-slot=\"combobox-collection\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxArrowProps = ComboboxPrimitive.Arrow.Props\r\n\r\nfunction ComboboxArrow(props: ComboboxArrowProps) {\r\n return <ComboboxPrimitive.Arrow\r\n data-slot=\"combobox-arrow\"\r\n {...props}\r\n />\r\n}\r\n\r\nexport {\r\n Combobox,\r\n type ComboboxActiveValueContextType,\r\n ComboboxArrow,\r\n type ComboboxArrowProps,\r\n ComboboxBackdrop,\r\n type ComboboxBackdropProps,\r\n ComboboxChip,\r\n type ComboboxChipProps,\r\n ComboboxChipRemove,\r\n type ComboboxChipRemoveProps,\r\n ComboboxChips,\r\n type ComboboxChipsProps,\r\n ComboboxClear,\r\n type ComboboxClearProps,\r\n ComboboxCollection,\r\n type ComboboxCollectionProps,\r\n type ComboboxContextType,\r\n ComboboxEmpty,\r\n type ComboboxEmptyProps,\r\n ComboboxGroup,\r\n ComboboxGroupLabel,\r\n type ComboboxGroupLabelProps,\r\n type ComboboxGroupProps,\r\n ComboboxHighlight,\r\n ComboboxHighlightItem,\r\n type ComboboxHighlightItemProps,\r\n type ComboboxHighlightProps,\r\n ComboboxIcon,\r\n type ComboboxIconProps,\r\n ComboboxInput,\r\n ComboboxInputGroup,\r\n type ComboboxInputGroupProps,\r\n type ComboboxInputProps,\r\n ComboboxItem,\r\n ComboboxItemIndicator,\r\n type ComboboxItemIndicatorProps,\r\n type ComboboxItemProps,\r\n ComboboxLabel,\r\n type ComboboxLabelProps,\r\n ComboboxList,\r\n type ComboboxListProps,\r\n ComboboxPopup,\r\n type ComboboxPopupProps,\r\n ComboboxPortal,\r\n type ComboboxPortalProps,\r\n ComboboxPositioner,\r\n type ComboboxPositionerProps,\r\n type ComboboxProps,\r\n ComboboxRow,\r\n type ComboboxRowProps,\r\n ComboboxSeparator,\r\n type ComboboxSeparatorProps,\r\n ComboboxStatus,\r\n type ComboboxStatusProps,\r\n ComboboxTrigger,\r\n type ComboboxTriggerProps,\r\n ComboboxValue,\r\n type ComboboxValueProps,\r\n useCombobox,\r\n useComboboxActiveValue,\r\n}","import * as React from \"react\"\r\n\r\nimport {\r\n CheckCircle2Icon,\r\n Loader2Icon,\r\n SearchIcon,\r\n XIcon\r\n} from \"lucide-react\"\r\n\r\nimport {\r\n Combobox as ComboboxPrimitive,\r\n ComboboxArrow as ComboboxArrowPrimitive,\r\n type ComboboxArrowProps as ComboboxArrowPrimitiveProps,\r\n ComboboxBackdrop as ComboboxBackdropPrimitive,\r\n type ComboboxBackdropProps as ComboboxBackdropPrimitiveProps,\r\n ComboboxChip as ComboboxChipPrimitive,\r\n type ComboboxChipProps as ComboboxChipPrimitiveProps,\r\n ComboboxChipRemove as ComboboxChipRemovePrimitive,\r\n type ComboboxChipRemoveProps as ComboboxChipRemovePrimitiveProps,\r\n ComboboxChips as ComboboxChipsPrimitive,\r\n type ComboboxChipsProps as ComboboxChipsPrimitiveProps,\r\n ComboboxClear as ComboboxClearPrimitive,\r\n type ComboboxClearProps as ComboboxClearPrimitiveProps,\r\n ComboboxCollection as ComboboxCollectionPrimitive,\r\n type ComboboxCollectionProps as ComboboxCollectionPrimitiveProps,\r\n ComboboxEmpty as ComboboxEmptyPrimitive,\r\n type ComboboxEmptyProps as ComboboxEmptyPrimitiveProps,\r\n ComboboxGroup as ComboboxGroupPrimitive,\r\n ComboboxGroupLabel as ComboboxGroupLabelPrimitive,\r\n type ComboboxGroupLabelProps as ComboboxGroupLabelPrimitiveProps,\r\n type ComboboxGroupProps as ComboboxGroupPrimitiveProps,\r\n ComboboxHighlight as ComboboxHighlightPrimitive,\r\n ComboboxHighlightItem as ComboboxHighlightItemPrimitive,\r\n type ComboboxHighlightItemProps as ComboboxHighlightItemPrimitiveProps,\r\n type ComboboxHighlightProps as ComboboxHighlightPrimitiveProps,\r\n ComboboxIcon as ComboboxIconPrimitive,\r\n type ComboboxIconProps as ComboboxIconPrimitiveProps,\r\n ComboboxInput as ComboboxInputPrimitive,\r\n ComboboxInputGroup as ComboboxInputGroupPrimitive,\r\n type ComboboxInputGroupProps as ComboboxInputGroupPrimitiveProps,\r\n type ComboboxInputProps as ComboboxInputPrimitiveProps,\r\n ComboboxItem as ComboboxItemPrimitive,\r\n ComboboxItemIndicator as ComboboxItemIndicatorPrimitive,\r\n type ComboboxItemIndicatorProps as ComboboxItemIndicatorPrimitiveProps,\r\n type ComboboxItemProps as ComboboxItemPrimitiveProps,\r\n ComboboxLabel as ComboboxLabelPrimitive,\r\n type ComboboxLabelProps as ComboboxLabelPrimitiveProps,\r\n ComboboxList as ComboboxListPrimitive,\r\n type ComboboxListProps as ComboboxListPrimitiveProps,\r\n ComboboxPopup as ComboboxPopupPrimitive,\r\n type ComboboxPopupProps as ComboboxPopupPrimitiveProps,\r\n ComboboxPortal as ComboboxPortalPrimitive,\r\n type ComboboxPortalProps as ComboboxPortalPrimitiveProps,\r\n ComboboxPositioner as ComboboxPositionerPrimitive,\r\n type ComboboxPositionerProps as ComboboxPositionerPrimitiveProps,\r\n type ComboboxProps as ComboboxPrimitiveProps,\r\n ComboboxRow as ComboboxRowPrimitive,\r\n type ComboboxRowProps as ComboboxRowPrimitiveProps,\r\n ComboboxSeparator as ComboboxSeparatorPrimitive,\r\n type ComboboxSeparatorProps as ComboboxSeparatorPrimitiveProps,\r\n ComboboxStatus as ComboboxStatusPrimitive,\r\n type ComboboxStatusProps as ComboboxStatusPrimitiveProps,\r\n ComboboxTrigger as ComboboxTriggerPrimitive,\r\n type ComboboxTriggerProps as ComboboxTriggerPrimitiveProps,\r\n ComboboxValue as ComboboxValuePrimitive,\r\n type ComboboxValueProps as ComboboxValuePrimitiveProps,\r\n useCombobox,\r\n} from \"../primitives/combobox\"\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { Badge, BadgeButton } from \"./badge\"\r\nimport { InfiniteScroll } from \"./infinite-scroll\"\r\nimport { Input, inputVariants } from \"./input\"\r\n\r\ntype ComboboxProps<Value, Multiple extends boolean | undefined = false> = ComboboxPrimitiveProps<Value, Multiple>\r\n\r\nfunction Combobox<Value, Multiple extends boolean | undefined = false>(props: ComboboxProps<Value, Multiple>) {\r\n return (\r\n <ComboboxPrimitive {...props} />\r\n )\r\n}\r\n\r\ntype ComboboxTriggerProps = ComboboxTriggerPrimitiveProps\r\n\r\nfunction ComboboxTrigger(props: ComboboxTriggerProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxTriggerPrimitive\r\n className={cn(\r\n \"group/combobox-trigger flex items-center gap-2\",\r\n className,\r\n )}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxLabelProps = ComboboxLabelPrimitiveProps\r\n\r\nfunction ComboboxLabel(props: ComboboxLabelProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxLabelPrimitive\r\n className={cn(\r\n \"text-label-semibold-2 text-text-secondary\",\r\n className,\r\n )}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxInputGroupProps = ComboboxInputGroupPrimitiveProps\r\n\r\nfunction ComboboxInputGroup(props: ComboboxInputGroupProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxInputGroupPrimitive\r\n className={cn(\r\n \"flex w-full items-center gap-2\",\r\n className,\r\n )}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxInputProps = ComboboxInputPrimitiveProps & {\r\n wrapperClassName?: string\r\n}\r\n\r\nfunction ComboboxInput({\r\n className,\r\n wrapperClassName,\r\n ...props\r\n}: ComboboxInputProps) {\r\n\r\n return (\r\n <div className={cn(\"px-3 py-2.5 border-b border-border-primary\", wrapperClassName)}>\r\n <ComboboxInputPrimitive\r\n className={className}\r\n render={<Input size=\"sm\" startContent={<SearchIcon />} />}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nfunction ComboboxInputFilter({\r\n className,\r\n displayValueKey = { label: \"label\", value: \"value\" },\r\n placeholder = \"Search and Select Company\",\r\n inputProps,\r\n ...props\r\n}: ComboboxInputProps & {\r\n displayValueKey?: {\r\n label: string\r\n value: string\r\n }\r\n placeholder?: string\r\n inputProps?: React.ComponentProps<typeof Input>\r\n}) {\r\n const { inputValue, setInputValue } = useCombobox()\r\n const { className: inputClassName, startContent, ...restInputProps } = inputProps || {}\r\n\r\n return (\r\n <div className={cn(\"flex flex-col gap-2\", className)}>\r\n <ComboboxChips\r\n onMouseDown={(e) => e.preventBaseUIHandler()}\r\n className=\"flex-col\"\r\n >\r\n <ComboboxInputPrimitive\r\n render={\r\n <Input\r\n className={cn(\"h-9 text-body-regular-3 pl-9 pr-7\", inputClassName)}\r\n endContent={\r\n <ComboboxTrigger\r\n nativeButton={false}\r\n render={(\r\n <XIcon\r\n className=\"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer\"\r\n data-hidden={!inputValue}\r\n data-slot=\"combobox-clear-input\"\r\n onClick={(event) => {\r\n setInputValue(\"\", {\r\n reason: \"none\",\r\n event: event.nativeEvent,\r\n cancel: () => { },\r\n allowPropagation: () => { },\r\n isCanceled: false,\r\n isPropagationAllowed: true,\r\n trigger: undefined,\r\n })\r\n }}\r\n />\r\n )}\r\n />\r\n }\r\n placeholder={placeholder}\r\n startContent={startContent ?? <SearchIcon className=\"!size-4 !text-fg-tertiary-hover\" />}\r\n {...restInputProps}\r\n />\r\n }\r\n {...props}\r\n />\r\n <ComboboxValue>\r\n {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}\r\n {(value) => value?.map((item: any) => (\r\n <ComboboxChip key={item?.[displayValueKey.value] || \"\"}>\r\n {item?.[displayValueKey.label] || \"\"}\r\n <ComboboxChipRemove />\r\n </ComboboxChip>\r\n ))}\r\n </ComboboxValue>\r\n </ComboboxChips>\r\n </div>\r\n )\r\n}\r\n\r\ntype ComboboxIconProps = ComboboxIconPrimitiveProps\r\n\r\nfunction ComboboxIcon(props: ComboboxIconProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxIconPrimitive\r\n className={cn(\"text-text-secondary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxClearProps = ComboboxClearPrimitiveProps\r\n\r\nfunction ComboboxClear(props: ComboboxClearProps) {\r\n\r\n return (\r\n <ComboboxClearPrimitive\r\n render={<XIcon />}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxValueProps = ComboboxValuePrimitiveProps\r\n\r\nfunction ComboboxValue(props: ComboboxValueProps) {\r\n return <ComboboxValuePrimitive {...props} />\r\n}\r\n\r\ntype ComboboxChipsProps = ComboboxChipsPrimitiveProps\r\n\r\nfunction ComboboxChips({\r\n className,\r\n ...props\r\n}: ComboboxChipsProps) {\r\n return <ComboboxChipsPrimitive\r\n className={cn(\"flex flex-wrap gap-2\", className)}\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipProps = ComboboxChipPrimitiveProps\r\n\r\nfunction ComboboxChip({\r\n className,\r\n ...props\r\n}: ComboboxChipProps) {\r\n return (\r\n <Badge\r\n className={cn(\"ring-1 ring-border-brand text-body-medium-3\", className)}\r\n color=\"brand\"\r\n render={(\r\n <ComboboxChipPrimitive\r\n {...props}\r\n />\r\n )}\r\n size=\"lg\"\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxChipRemoveProps = ComboboxChipRemovePrimitiveProps\r\n\r\nfunction ComboboxChipRemove({\r\n className,\r\n ...props\r\n}: ComboboxChipRemoveProps) {\r\n return (\r\n <BadgeButton\r\n className={cn(\"text-fg-quaternary\", className)}\r\n render={(\r\n <ComboboxChipRemovePrimitive\r\n {...props}\r\n />\r\n )}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxPopupProps = ComboboxPositionerPrimitiveProps &\r\n ComboboxPopupPrimitiveProps & {\r\n container?: React.ComponentProps<typeof ComboboxPortal>[\"container\"]\r\n }\r\n\r\nfunction ComboboxPopup({\r\n className,\r\n align = \"start\",\r\n sideOffset = 4,\r\n container,\r\n initialFocus,\r\n finalFocus,\r\n style,\r\n children,\r\n ...props\r\n}: ComboboxPopupProps) {\r\n return (\r\n <ComboboxPortalPrimitive container={container}>\r\n <ComboboxPositionerPrimitive\r\n align={align}\r\n className=\"isolate z-50\"\r\n sideOffset={sideOffset}\r\n {...props}\r\n >\r\n <ComboboxPopupPrimitive\r\n className={cn(\r\n \"group/combobox-popup bg-bg-primary text-text-primary max-h-(--available-height) w-72 max-w-(--available-width) origin-(--transform-origin) rounded-md border border-border-primary shadow-md outline-hidden\",\r\n className,\r\n )}\r\n finalFocus={finalFocus}\r\n initialFocus={initialFocus}\r\n style={style}\r\n >\r\n <ComboboxHighlight>\r\n {children}\r\n </ComboboxHighlight>\r\n </ComboboxPopupPrimitive>\r\n </ComboboxPositionerPrimitive>\r\n </ComboboxPortalPrimitive>\r\n )\r\n}\r\n\r\ntype ComboboxPortalProps = ComboboxPortalPrimitiveProps\r\n\r\nfunction ComboboxPortal(props: ComboboxPortalProps) {\r\n return <ComboboxPortalPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxPositionerProps = ComboboxPositionerPrimitiveProps\r\n\r\nfunction ComboboxPositioner(props: ComboboxPositionerProps) {\r\n return <ComboboxPositionerPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxBackdropProps = ComboboxBackdropPrimitiveProps\r\n\r\nfunction ComboboxBackdrop(props: ComboboxBackdropProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxBackdropPrimitive\r\n className={cn(\"bg-black/30\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxStatusProps = ComboboxStatusPrimitiveProps\r\n\r\nfunction ComboboxStatus({\r\n className,\r\n status,\r\n ...props\r\n}: Omit<ComboboxStatusProps, \"children\"> & {\r\n status?: \"empty\" | \"pending\" | null\r\n}) {\r\n const { inputValue } = useCombobox()\r\n\r\n const trimmedInputValue = inputValue?.toString().trim()\r\n\r\n const getText = () => {\r\n if (status === \"empty\" && trimmedInputValue)\r\n return `No matches for \"${trimmedInputValue}\".`\r\n\r\n if (status === \"empty\" && !trimmedInputValue)\r\n return \"No results.\"\r\n\r\n if (status === \"pending\")\r\n return (\r\n <>\r\n <Loader2Icon className=\"animate-spin size-4\" />\r\n <span>\r\n Searching...\r\n </span>\r\n </>\r\n )\r\n\r\n return null\r\n }\r\n\r\n const text = getText()\r\n\r\n return (\r\n <ComboboxStatusPrimitive\r\n className={cn(\r\n \"px-2 py-2.5 text-body-regular-2 text-text-disabled flex items-center gap-2\",\r\n !text && \"hidden\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {text}\r\n </ComboboxStatusPrimitive>\r\n )\r\n}\r\n\r\ntype ComboboxLoadingProps = React.ComponentProps<\"div\">\r\n\r\ntype ComboboxEmptyProps = ComboboxEmptyPrimitiveProps\r\n\r\nfunction ComboboxEmpty({ className, ...props }: ComboboxEmptyProps) {\r\n return <ComboboxEmptyPrimitive\r\n className={cn(\"px-3 py-2 text-body-regular-2 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxListProps = ComboboxListPrimitiveProps\r\n\r\nfunction ComboboxList({\r\n className,\r\n ...props\r\n}: ComboboxListProps) {\r\n return (\r\n <ComboboxListPrimitive\r\n className={cn(\"max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] overflow-auto scrollbar-thin flex flex-col py-1 focus-visible:outline-none\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxHighlightProps = ComboboxHighlightPrimitiveProps\r\n\r\nfunction ComboboxHighlight(props: ComboboxHighlightProps) {\r\n const { className, ...rest } = props\r\n\r\n return (\r\n <ComboboxHighlightPrimitive\r\n className={cn(\"absolute inset-0 bg-bg-primary-hover\", className)}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxHighlightItemProps = ComboboxHighlightItemPrimitiveProps\r\n\r\nfunction ComboboxHighlightItem(props: ComboboxHighlightItemProps) {\r\n return <ComboboxHighlightItemPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxRowProps = ComboboxRowPrimitiveProps\r\n\r\nfunction ComboboxRow(props: ComboboxRowProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxRowPrimitive\r\n className={cn(\"group/combobox-row\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxItemProps = ComboboxItemPrimitiveProps & {\r\n withIndicator?: boolean\r\n}\r\n\r\nfunction ComboboxItem({\r\n className,\r\n children,\r\n withIndicator = true,\r\n ...props\r\n}: ComboboxItemProps) {\r\n const { disabled } = props\r\n\r\n return (\r\n <ComboboxHighlightItem\r\n activeClassName=\"bg-bg-primary-hover\"\r\n disabled={disabled}\r\n >\r\n <ComboboxItemPrimitive\r\n className={cn(\r\n \"flex w-full cursor-default items-center gap-xp-md px-3 py-2.5 text-body-medium-2 text-text-primary outline-none\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {withIndicator && (\r\n <ComboboxItemIndicator>\r\n <CheckCircle2Icon className=\"size-5 text-fg-brand-primary shrink-0\" />\r\n </ComboboxItemIndicator>\r\n )}\r\n </ComboboxItemPrimitive>\r\n </ComboboxHighlightItem>\r\n )\r\n}\r\n\r\ntype ComboboxItemIndicatorProps = ComboboxItemIndicatorPrimitiveProps\r\n\r\nfunction ComboboxItemIndicator(props: ComboboxItemIndicatorProps) {\r\n return (\r\n <ComboboxItemIndicatorPrimitive {...props} />\r\n )\r\n}\r\n\r\ntype ComboboxSeparatorProps = ComboboxSeparatorPrimitiveProps\r\n\r\nfunction ComboboxSeparator(props: ComboboxSeparatorProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxSeparatorPrimitive\r\n className={cn(\"my-1 h-px bg-border-primary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxGroupProps = ComboboxGroupPrimitiveProps\r\n\r\nfunction ComboboxGroup(props: ComboboxGroupProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxGroupPrimitive\r\n className={cn(\"py-1\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxGroupLabelProps = ComboboxGroupLabelPrimitiveProps\r\n\r\nfunction ComboboxGroupLabel(props: ComboboxGroupLabelProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxGroupLabelPrimitive\r\n className={cn(\"px-3 py-1 text-body-semibold-sm text-text-secondary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\ntype ComboboxCollectionProps = ComboboxCollectionPrimitiveProps\r\n\r\nfunction ComboboxCollection(props: ComboboxCollectionProps) {\r\n return <ComboboxCollectionPrimitive {...props} />\r\n}\r\n\r\ntype ComboboxArrowProps = ComboboxArrowPrimitiveProps\r\n\r\nfunction ComboboxArrow(props: ComboboxArrowProps) {\r\n const { className, ...rest } = props\r\n\r\n return <ComboboxArrowPrimitive\r\n className={cn(\"fill-bg-primary\", className)}\r\n {...rest}\r\n />\r\n}\r\n\r\nfunction ComboboxInfiniteScroll({\r\n hasMore,\r\n threshold = 0.5,\r\n ...props\r\n}: Omit<React.ComponentProps<typeof InfiniteScroll>, \"children\">) {\r\n return (\r\n <InfiniteScroll\r\n hasMore={hasMore}\r\n threshold={threshold}\r\n {...props}\r\n >\r\n {hasMore && (\r\n <div className=\"px-2 py-2.5 text-body-regular-2 text-text-disabled flex items-center gap-2\">\r\n <Loader2Icon className=\"animate-spin size-4\" />\r\n <span>\r\n Loading more...\r\n </span>\r\n </div>\r\n )}\r\n </InfiniteScroll>\r\n )\r\n}\r\n\r\nexport {\r\n Combobox,\r\n ComboboxArrow,\r\n type ComboboxArrowProps,\r\n ComboboxBackdrop,\r\n type ComboboxBackdropProps,\r\n ComboboxChip,\r\n type ComboboxChipProps,\r\n ComboboxChipRemove,\r\n type ComboboxChipRemoveProps,\r\n ComboboxChips,\r\n type ComboboxChipsProps,\r\n ComboboxClear,\r\n type ComboboxClearProps,\r\n ComboboxCollection,\r\n type ComboboxCollectionProps,\r\n ComboboxPopup,\r\n type ComboboxPopupProps,\r\n ComboboxEmpty,\r\n type ComboboxEmptyProps,\r\n ComboboxGroup,\r\n ComboboxGroupLabel,\r\n type ComboboxGroupLabelProps,\r\n type ComboboxGroupProps,\r\n ComboboxHighlight,\r\n ComboboxHighlightItem,\r\n type ComboboxHighlightItemProps,\r\n type ComboboxHighlightProps,\r\n ComboboxIcon,\r\n type ComboboxIconProps,\r\n ComboboxInfiniteScroll,\r\n ComboboxInput,\r\n ComboboxInputFilter,\r\n ComboboxInputGroup,\r\n type ComboboxInputGroupProps,\r\n type ComboboxInputProps,\r\n ComboboxItem,\r\n ComboboxItemIndicator,\r\n type ComboboxItemIndicatorProps,\r\n type ComboboxItemProps,\r\n ComboboxLabel,\r\n type ComboboxLabelProps,\r\n ComboboxList,\r\n type ComboboxListProps,\r\n type ComboboxLoadingProps,\r\n ComboboxPortal,\r\n type ComboboxPortalProps,\r\n ComboboxPositioner,\r\n type ComboboxPositionerProps,\r\n type ComboboxProps,\r\n ComboboxRow,\r\n type ComboboxRowProps,\r\n ComboboxSeparator,\r\n type ComboboxSeparatorProps,\r\n ComboboxStatus,\r\n type ComboboxStatusProps,\r\n ComboboxTrigger,\r\n type ComboboxTriggerProps,\r\n ComboboxValue,\r\n type ComboboxValueProps\r\n}"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a,b,c,d,e,f}from'./chunk-NTQ2FXS7.js';import {a as a$1,b as b$1}from'./chunk-VNAMAKPG.js';import {a as a$3}from'./chunk-T7HRX3EC.js';import {b as b$3,c as c$2}from'./chunk-DZKJRP4J.js';import {a as a$2,b as b$2,c as c$1}from'./chunk-NGSCUYDU.js';import*as V from'react';import V__default from'react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {differenceInCalendarDays,format,endOfWeek,startOfWeek,endOfMonth,startOfMonth,subMonths,endOfYear,startOfYear,subYears}from'date-fns';import {ChevronLeftIcon,ChevronRightIcon,ChevronLeft,ChevronRight,ChevronDown}from'lucide-react';import {DayPicker,DayButton,useDayPicker,labelPrevious,labelNext}from'react-day-picker';function yt(e){return jsx(a,{...e})}function ht(e){return jsx(b,{...e})}function xt(e){return jsx(c,{...e})}function vt({sideOffset:e=8,...a}){return jsx(d,{sideOffset:e,...a})}function Nt({className:e$1,children:a,withArrow:t=true,...n}){return jsxs(e,{className:cn("z-50 w-fit text-balance rounded-xp-tooltip bg-bg-primary-solid px-xp-lg py-xp-md text-body-regular-3 text-text-white",e$1),...n,children:[a,t&&jsx(f,{className:"z-50 size-2.5 rotate-45 rounded-xp-card-base-xxs bg-bg-primary-solid fill-primary data-[side=bottom]:-top-[5px] data-[side=top]:-bottom-[5px] data-[side=right]:-left-[5px] data-[side=left]:-right-[5px]"})]})}function _({className:e,showOutsideDays:a=true,showViewSwitcher:t=true,yearRange:n=12,numberOfMonths:r,components:i,navView:b,defaultNavView:p,onNavViewChange:N,minNavView:h="days",weekStartsOn:s=0,...o}){let[c,m]=useControlledState({value:b,defaultValue:p??"days",onChange:N});V.useEffect(()=>{h==="months"&&m("months"),h==="years"&&m("years");},[h,m]);let[v,f]=V.useState({year:new Date().getFullYear()}),[x,l]=V.useState(V.useMemo(()=>{let R=new Date().getFullYear();return {from:R-Math.floor(n/2-1),to:R+Math.ceil(n/2)}},[n])),{onNextClick:P,onPrevClick:C,startMonth:T,endMonth:u}=o,D=c==="years"||c==="months"?1:r,k=cn("relative flex [&>div:not(:last-of-type)]:mr-3",o.monthsClassName),y=cn("relative flex items-center justify-center",o.monthCaptionClassName),S=cn("flex flex-row",o.weekdaysClassName),K=cn("size-9 first:text-text-error-primary text-label-semibold-3 text-text-primary flex items-center justify-center",o.weekdayClassName),fe=cn("flex flex-col gap-2",o.monthClassName),ge=cn("relative flex items-center justify-center pt-xp-xs",o.captionClassName),be=cn("truncate text-body-regular-3 font-medium",o.captionLabelClassName),ae=a$1({variant:"secondary-accent",className:"absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"}),ye=cn(ae,"right-0",o.buttonNextClassName),he=cn(ae,"left-0",o.buttonPreviousClassName),xe=cn("flex items-start",o.navClassName),ve=cn("flex flex-col p-3 bg-bg-primary text-text-primary rounded-lg",o.monthGridClassName),Ne=cn("flex w-max items-start",o.weekClassName),Pe=cn("flex size-9 flex-1 items-center justify-center p-0 text-label-semibold-3",o.dayClassName),De=cn(a$1({variant:null,size:"sm"}),"p-0",o.dayButtonClassName),Ce="[&>button]:bg-gradient-buttons-gradient-blue [&>button]:text-fg-white",we=cn("day-range-start [&:not(.day-range-end)>button]:rounded-e-none",o.rangeStartClassName),ke=cn("day-range-end [&:not(.day-range-start)>button]:rounded-s-none",o.rangeEndClassName),Te=cn("[&>button]:bg-none [&>button]:bg-bg-primary-hover [&>button]:text-text-primary [&>button]:rounded-none [&[aria-selected=true][data-today=true]>button]:after:bg-utility-brand-500 [&[aria-selected=true][data-today=true]>button]:after:ring-utility-brand-100",o.rangeMiddleClassName),Re=cn(" [&>button]:relative","[&>button]:after:content-[''] [&>button]:after:absolute [&>button]:after:bottom-1","[&>button]:after:left-1/2 [&>button]:after:-translate-x-1/2","[&>button]:after:size-1 [&>button]:after:rounded-full [&>button]:after:ring-2 [&>button]:after:ring-utility-brand-100 [&>button]:after:bg-utility-brand-500","[&[aria-selected=true]>button]:after:bg-fg-white [&[aria-selected=true]>button]:after:ring-alpha-alpha-white-30",o.todayClassName),Me=cn("opacity-50",o.outsideClassName),Ve=cn("opacity-50",o.disabledClassName),Se=cn("invisible flex-1",o.hiddenClassName);return jsx(DayPicker,{className:cn("p-xp-xl rounded-xl bg-bg-tertiary h-max",e),classNames:{months:k,month_caption:y,weekdays:S,weekday:K,month:fe,caption:ge,caption_label:be,button_next:ye,button_previous:he,nav:xe,month_grid:ve,week:Ne,day:Pe,day_button:De,selected:Ce,range_start:we,range_middle:Te,range_end:ke,today:Re,outside:Me,disabled:Ve,hidden:Se},components:{Chevron:({orientation:R})=>jsx(R==="left"?ChevronLeftIcon:ChevronRightIcon,{className:"h-4 w-4"}),Nav:({className:R})=>jsx($e,{className:R,displayMonths:v,displayYears:x,endMonth:u,navView:c,setDisplayMonths:f,setDisplayYears:l,startMonth:T,onNextClick:P,onPrevClick:C}),CaptionLabel:R=>jsx(je,{displayMonths:v,displayYears:x,navView:c,setNavView:m,showViewSwitcher:t,...R}),DayButton:R=>jsx(DayButton,{"data-icon":true,...R}),MonthGrid:({className:R,children:re,..._e})=>jsx(Je,{className:R,displayMonths:v,displayYears:x,endMonth:u,minNavView:h,navView:c,setDisplayMonths:f,setNavView:m,startMonth:T,..._e,children:re}),...i},numberOfMonths:D,showOutsideDays:a,weekStartsOn:s,...o})}_.displayName="Calendar";function $e({className:e,navView:a,startMonth:t,endMonth:n,displayYears:r,displayMonths:i,setDisplayYears:b,setDisplayMonths:p,onPrevClick:N,onNextClick:h}){let{nextMonth:s,previousMonth:o,goToMonth:c}=useDayPicker(),m=a==="years"?t&&differenceInCalendarDays(new Date(r.from-1,0,1),t)<0||n&&differenceInCalendarDays(new Date(r.from-1,0,1),n)>0:a==="months"?t&&differenceInCalendarDays(new Date(i.year-1,0,1),t)<0||n&&differenceInCalendarDays(new Date(i.year-1,0,1),n)>0:!o,v=a==="years"?t&&differenceInCalendarDays(new Date(r.to+1,0,1),t)<0||n&&differenceInCalendarDays(new Date(r.to+1,0,1),n)>0:a==="months"?t&&differenceInCalendarDays(new Date(i.year+1,0,1),t)<0||n&&differenceInCalendarDays(new Date(i.year+1,0,1),n)>0:!s,f=V.useCallback(()=>{if(o){if(a==="years"){b(l=>({from:l.from-(l.to-l.from+1),to:l.to-(l.to-l.from+1)})),N?.(new Date(r.from-(r.to-r.from),0,1));return}if(a==="months"){p(l=>({year:l.year-1})),N?.(new Date(i.year-1,0,1));return}c(o),N?.(o);}},[o,c,r.from,r.to,i.year,a,N,b,p]),x=V.useCallback(()=>{if(s){if(a==="years"){b(l=>({from:l.from+(l.to-l.from+1),to:l.to+(l.to-l.from+1)})),h?.(new Date(r.from+(r.to-r.from),0,1));return}if(a==="months"){p(l=>({year:l.year+1})),h?.(new Date(i.year+1,0,1));return}c(s),h?.(s);}},[c,s,r.from,r.to,i.year,a,h,b,p]);return jsxs("nav",{className:cn("flex items-center",e),children:[jsx(b$1,{"aria-label":a==="years"?`Go to the previous ${r.to-r.from+1} years`:a==="months"?"Go to the previous year":labelPrevious(o),className:"absolute left-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10",disabled:m,size:"sm",icon:true,tabIndex:m?void 0:-1,type:"button",variant:null,onClick:f,children:jsx(ChevronLeft,{})}),jsx(b$1,{"aria-label":a==="years"?`Go to the next ${r.to-r.from+1} years`:a==="months"?"Go to the next year":labelNext(s),className:"absolute right-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10",disabled:v,size:"sm",icon:true,tabIndex:v?void 0:-1,type:"button",variant:null,onClick:x,children:jsx(ChevronRight,{})})]})}function je({children:e,showViewSwitcher:a,navView:t,setNavView:n,displayYears:r,displayMonths:i,...b}){return a?jsx(b$1,{disabled:t==="years",size:"sm",type:"button",variant:null,onClick:()=>{t==="days"?n("months"):t==="months"&&n("years");},children:t==="days"?e:t==="months"?i.year:r.from+" - "+r.to}):jsx("span",{...b,children:e})}function Je({className:e,children:a,displayYears:t,displayMonths:n,setDisplayMonths:r,startMonth:i,endMonth:b,navView:p,setNavView:N,minNavView:h="days",...s}){return p==="years"?jsx(Ke,{className:e,displayYears:t,endMonth:b,minNavView:h,navView:p,setDisplayMonths:r,setNavView:N,startMonth:i,...s}):p==="months"?jsx(Qe,{className:e,displayMonths:n,endMonth:b,minNavView:h,navView:p,setNavView:N,startMonth:i,...s}):jsx("table",{className:cn("flex-1",e),...s,children:a})}function We(e,a){if(!e)return false;if(Array.isArray(e))return e.some(t=>t.getFullYear()===a);if(typeof e=="object"&&"from"in e){let t=e;return t.from&&t.to?a>=t.from.getFullYear()&&a<=t.to.getFullYear():t.from?t.from.getFullYear()===a:false}return e.getFullYear()===a}function He(e,a,t){if(!e)return false;if(Array.isArray(e))return e.some(n=>n.getMonth()===t&&n.getFullYear()===a);if(typeof e=="object"&&"from"in e){let n=e;if(n.from&&n.to){let r=n.from.getMonth(),i=n.from.getFullYear(),b=n.to.getMonth(),p=n.to.getFullYear();return a===i&&a===p?t>=r&&t<=b:a===i?t>=r:a===p?t<=b:a>i&&a<p}return n.from?n.from.getMonth()===t&&n.from.getFullYear()===a:false}return e.getMonth()===t&&e.getFullYear()===a}function Ke({className:e,displayYears:a,startMonth:t,endMonth:n,setNavView:r,navView:i,setDisplayMonths:b,minNavView:p="days",...N}){let {selected:h,select:s}=useDayPicker();new Date().getFullYear();let c=a.to-a.from+1,m=(v,f)=>{p==="years"?s?.(new Date(f,0,1),{},v):(r("months"),b({year:f}));};return jsx("table",{className:cn("w-[312px]",e),...N,children:jsx("tbody",{children:jsx("tr",{className:"grid grid-cols-3 gap-xp-md",children:Array.from({length:c},(v,f)=>{let x=a.from+f,l=new Date(x,0,1),P=new Date(x,11,31),C=t&&differenceInCalendarDays(P,t)<0,T=n&&differenceInCalendarDays(l,n)>0,u=C||T,k=We(h,x);return jsx("td",{children:jsx(b$1,{className:"w-full",disabled:i==="years"?u:void 0,type:"button",variant:k?"primary":"tertiary-accent",onClick:y=>m(y,x),children:x})},x)})})})})}function Qe({className:e,displayMonths:a,startMonth:t,endMonth:n,setNavView:r,navView:i,minNavView:b="days",...p}){let{goToMonth:N,selected:h,select:s}=useDayPicker(),o=["January","February","March","April","May","June","July","August","September","October","November","December"],c=a.year,m=(v,f)=>{b==="months"?s?.(new Date(c,f,1),{},v):(r("days"),N(new Date(c,f)));};return jsx("table",{className:cn("w-[312px]",e),...p,children:jsx("tbody",{children:jsx("tr",{className:"grid grid-cols-3 gap-xp-md",children:o.map((v,f)=>{let x=t&&differenceInCalendarDays(new Date(c,f,31),t)<0,l=n&&differenceInCalendarDays(new Date(c,f,1),n)>0,P=x||l;c===new Date().getFullYear()&&f===new Date().getMonth();let T=He(h,c,f);return jsx("td",{children:jsx(b$1,{className:"w-full",disabled:i==="months"?P:void 0,type:"button",variant:T?"primary":"tertiary-accent",onClick:u=>m(u,f),children:v.substring(0,3)})},f)})})})})}function tt({className:e,value:a,onValueChange:t,defaultValue:n,required:r,disabled:i,placeholder:b="Pick a date",disabledDates:p,dateFormat:N="LLL dd, y",...h}){let s=V.useCallback(P=>{r?P&&t?.(P):t?.(P);},[t,r]),[o,c]=useControlledState({value:a,defaultValue:n,onChange:s}),[m,v]=V.useState(o||new Date),[f,x]=V.useState(false),l=!!o;return jsxs(a$2,{open:i?false:f,onOpenChange:x,children:[jsx(b$2,{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",l&&"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:i,children:[jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[jsx(a$3,{className:cn("size-4 shrink-0",l?"text-fg-brand-primary":"text-fg-quaternary")}),jsx("span",{className:"truncate",children:o?format(o,N):b})]}),jsx(ChevronDown,{className:cn("size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180",l?"text-fg-brand-primary":"text-fg-quaternary")})]})}),jsx(c$1,{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(_,{autoFocus:true,disabled:p,mode:"single",month:m,selected:o,onMonthChange:v,onSelect:P=>{r&&!P||(c(P),x(false));},...h})})]})}function nt({className:e,value:a,onValueChange:t,defaultValue:n,required:r,disabled:i,placeholder:b="Pick dates",disabledDates:p,dateFormat:N="LLL dd, y",chipDateFormat:h="d MMM",maxVisible:s,...o}){let c=V.useCallback(y=>{r?y?.length&&t?.(y):t?.(y);},[t,r]),[m,v]=useControlledState({value:a,defaultValue:n,onChange:c}),[f,x]=V.useState(m?.[0]||new Date),[l,P]=V.useState(false),C=!!m?.length,T=V.useMemo(()=>m?[...m].sort((y,S)=>y.getTime()-S.getTime()):[],[m]),u=V.useCallback(y=>{let S=m?.filter(K=>K.getTime()!==y.getTime());r&&!S?.length||v(S);},[m,v,r]),D=s!==void 0?T.slice(0,s):T,k=s!==void 0?T.length-s:0;return jsxs("div",{className:"flex flex-col gap-2 w-full",children:[jsxs(a$2,{open:i?false:l,onOpenChange:P,children:[jsx(b$2,{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",C&&"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:i,children:[jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[jsx(a$3,{className:cn("size-4 shrink-0",C?"text-fg-brand-primary":"text-fg-quaternary")}),jsx("span",{className:"truncate",children:C?`${m.length} ${m.length===1?"date":"dates"} selected`:b})]}),jsx(ChevronDown,{className:cn("size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180",C?"text-fg-brand-primary":"text-fg-quaternary")})]})}),jsx(c$1,{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(_,{autoFocus:true,disabled:p,mode:"multiple",month:f,selected:m,onMonthChange:x,onSelect:y=>{r&&!y?.length||v(y);},...o})})]}),C&&jsxs("div",{className:"flex flex-wrap gap-2",children:[D.map(y=>jsxs(b$3,{color:"brand",size:"lg",className:"ring-1 ring-border-brand text-body-medium-3",children:[format(y,h),!i&&jsx(c$2,{className:"text-fg-quaternary",onClick:S=>{S.stopPropagation(),u(y);}})]},y.toISOString())),k>0&&jsxs(b$3,{color:"brand",size:"lg",className:"ring-1 ring-border-brand text-body-medium-3",children:["+",k]})]})]})}var ce=[{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 ct({className:e,value:a,onValueChange:t,defaultValue:n,required:r,disabled:i,placeholder:b="Pick a date",options:p=true,disabledDates:N}){let h=V__default.useCallback(u=>{t?.(u);},[t,r]),[s,o]=useControlledState({value:a,defaultValue:n,onChange:h}),[c,m]=V__default.useState(s?.from||new Date),[v,f]=V__default.useState(false),[x,l]=V__default.useState("days"),P=!!s?.from,C=(u,D)=>!u||!D?false:u.getFullYear()===D.getFullYear()&&u.getMonth()===D.getMonth()&&u.getDate()===D.getDate(),T=u=>{if(!s?.from||!s?.to)return false;if(u.value==="custom-range")return ce.every(k=>{if(k.value==="custom-range")return true;let y=k.getDateRange();return !y?.from||!y?.to?true:!(C(s.from,y.from)&&C(s.to,y.to))});let D=u.getDateRange();return !D?.from||!D?.to?false:C(s.from,D.from)&&C(s.to,D.to)};return jsxs(a$2,{open:i?false:v,onOpenChange:f,children:[jsx(b$2,{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",P&&"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:i,children:[jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[jsx(a$3,{className:cn("size-4 shrink-0",P?"text-fg-brand-primary":"text-fg-quaternary")}),jsx("span",{className:"truncate",children:s?.from?s.to?`${format(s.from,"LLL dd, y")} - ${format(s.to,"LLL dd, y")}`:format(s.from,"LLL dd, y"):b})]}),jsx(ChevronDown,{className:cn("size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180",P?"text-fg-brand-primary":"text-fg-quaternary")})]})}),jsxs(c$1,{className:cn("w-auto border-0",p?"rounded-2xl p-xp-lg flex gap-6":"p-xp-none bg-transparent"),children:[p&&jsx("div",{className:"flex flex-col gap-xp-md w-[135px]",children:ce.map(u=>{let D=T(u);return jsx(b$1,{className:"justify-start px-xp-xl",variant:D?"tertiary-accent":null,onClick:()=>{let k=u.getDateRange();k&&(o(k),l("days"),m(k.from));},children:u.label},u.value)})}),jsx(_,{autoFocus:true,disabled:N,mode:"range",month:c,navView:x,numberOfMonths:2,selected:s,onMonthChange:m,onNavViewChange:l,onSelect:u=>{r&&!u||o(u);}})]})]})}export{yt as a,ht as b,xt as c,vt as d,Nt as e,_ as f,tt as g,nt as h,ct as i};//# sourceMappingURL=chunk-DXI32G2S.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-DXI32G2S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/tooltip.tsx","../src/ui/calendar.tsx","../src/ui/date-picker.tsx","../src/ui/date-multiple-picker.tsx","../src/ui/date-range-picker.tsx"],"names":["Tooltip","props","jsx","TooltipTrigger","TooltipPortal","TooltipPositioner","sideOffset","TooltipPopup","className","children","withArrow","jsxs","cn","TooltipArrow","Calendar","showOutsideDays","showViewSwitcher","yearRange","numberOfMonths","components","navViewProp","defaultNavView","onNavViewChange","minNavView","weekStartsOn","navView","setNavView","useControlledState","displayMonths","setDisplayMonths","displayYears","setDisplayYears","currentYear","onNextClick","onPrevClick","startMonth","endMonth","columnsDisplayed","_monthsClassName","_monthCaptionClassName","_weekdaysClassName","_weekdayClassName","_monthClassName","_captionClassName","_captionLabelClassName","buttonNavClassName","buttonVariants","_buttonNextClassName","_buttonPreviousClassName","_navClassName","_monthGridClassName","_weekClassName","_dayClassName","_dayButtonClassName","_dayButtonSelectedClassName","_rangeStartClassName","_rangeEndClassName","_rangeMiddleClassName","_todayClassName","_outsideClassName","_disabledClassName","_hiddenClassName","DayPicker","orientation","ChevronLeftIcon","ChevronRightIcon","navClassName","Nav","clProps","CaptionLabel","dayProps","DayButton","mgClassName","mgProps","CalendarGrid","nextMonth","previousMonth","goToMonth","useDayPicker","isPreviousDisabled","differenceInCalendarDays","isNextDisabled","handlePreviousClick","prev","handleNextClick","Button","labelPrevious","ChevronLeft","labelNext","ChevronRight","YearGrid","MonthGrid","isYearSelected","selected","year","d","range","isMonthSelected","monthIdx","fromMonth","fromYear","toMonth","toYear","select","totalYears","handleClick","e","_","i","yearStart","yearEnd","isBeforeStart","isAfterEnd","isDisabled","isSelected","months","month","isBefore","isAfter","DatePicker","valueProp","onValueChange","defaultValue","required","disabled","placeholder","disabledDates","dateFormat","handleValueChange","E","val","value","setValue","currentMonth","setCurrentMonth","isOpen","setIsOpen","hasValue","Popover","PopoverTrigger","calendar_icon_default","format","ChevronDown","PopoverPopup","DateMultiplePicker","chipDateFormat","maxVisible","B","sortedValue","a","b","handleRemoveDate","dateToRemove","newValue","visibleChips","overflowCount","Badge","BadgeButton","dateRangeOptions","t","now","startOfWeek","endOfWeek","startOfMonth","endOfMonth","subMonths","startOfYear","endOfYear","ly","subYears","DateRangePicker","onValueChangeProp","options","React","isSameDay","date1","date2","isOptionActive","option","opt","optRange","optionRange","active","dateRange"],"mappings":"0wBAoBA,SAASA,EAAAA,CAAQC,EAAqB,CACpC,OAAOC,IAACF,CAAAA,CAAA,CAAkB,GAAGC,CAAAA,CAAO,CACtC,CAIA,SAASE,EAAAA,CAAeF,EAA4B,CAClD,OAAOC,IAACC,CAAAA,CAAA,CAAyB,GAAGF,CAAAA,CAAO,CAC7C,CAIA,SAASG,EAAAA,CAAcH,EAA2B,CAChD,OAAOC,IAACE,CAAAA,CAAA,CAAwB,GAAGH,CAAAA,CAAO,CAC5C,CAIA,SAASI,GAAkB,CAAE,UAAA,CAAAC,EAAa,CAAA,CAAG,GAAGL,CAAM,CAAA,CAA2B,CAC/E,OAAOC,GAAAA,CAACG,CAAAA,CAAA,CAA2B,UAAA,CAAYC,CAAAA,CAAa,GAAGL,CAAAA,CAAO,CACxE,CAMA,SAASM,EAAAA,CAAa,CACpB,SAAA,CAAAC,GAAAA,CACA,SAAAC,CAAAA,CACA,SAAA,CAAAC,EAAY,IAAA,CACZ,GAAGT,CACL,CAAA,CAAsB,CACpB,OACEU,IAAAA,CAACJ,CAAAA,CAAA,CACC,SAAA,CAAWK,EAAAA,CACT,uHACAJ,GACF,CAAA,CACC,GAAGP,CAAAA,CAEH,QAAA,CAAA,CAAAQ,CAAAA,CACAC,CAAAA,EACCR,IAACW,CAAAA,CAAA,CAAsB,UAAU,2MAAA,CAA4M,CAAA,CAAA,CAEjP,CAEJ,CCPA,SAASC,EAAS,CAChB,SAAA,CAAAN,EACA,eAAA,CAAAO,CAAAA,CAAkB,KAClB,gBAAA,CAAAC,CAAAA,CAAmB,KACnB,SAAA,CAAAC,CAAAA,CAAY,GACZ,cAAA,CAAAC,CAAAA,CACA,WAAAC,CAAAA,CACA,OAAA,CAASC,EACT,cAAA,CAAAC,CAAAA,CACA,gBAAAC,CAAAA,CACA,UAAA,CAAAC,EAAa,MAAA,CACb,YAAA,CAAAC,EAAe,CAAA,CACf,GAAGvB,CACL,CAAA,CAAkB,CAChB,GAAM,CAACwB,CAAAA,CAASC,CAAU,CAAA,CAAIC,kBAAAA,CAAmB,CAC/C,KAAA,CAAOP,CAAAA,CACP,YAAA,CAAcC,CAAAA,EAAkB,OAChC,QAAA,CAAUC,CACZ,CAAC,CAAA,CAEK,CAAA,CAAA,SAAA,CAAU,IAAM,CAChBC,CAAAA,GAAe,UAAUG,CAAAA,CAAW,QAAQ,EAC5CH,CAAAA,GAAe,OAAA,EAASG,EAAW,OAAO,EAChD,EAAG,CAACH,CAAAA,CAAYG,CAAU,CAAC,CAAA,CAE3B,GAAM,CAACE,CAAAA,CAAeC,CAAgB,CAAA,CAAU,CAAA,CAAA,QAAA,CAA2B,CACzE,IAAA,CAAM,IAAI,MAAK,CAAE,WAAA,EACnB,CAAC,CAAA,CAEK,CAACC,CAAAA,CAAcC,CAAe,EAAU,CAAA,CAAA,QAAA,CACtC,CAAA,CAAA,OAAA,CAAQ,IAAM,CAClB,IAAMC,EAAc,IAAI,IAAA,GAAO,WAAA,EAAY,CAC3C,OAAO,CACL,IAAA,CAAMA,EAAc,IAAA,CAAK,KAAA,CAAMf,EAAY,CAAA,CAAI,CAAC,EAChD,EAAA,CAAIe,CAAAA,CAAc,KAAK,IAAA,CAAKf,CAAAA,CAAY,CAAC,CAC3C,CACF,EAAG,CAACA,CAAS,CAAC,CAChB,CAAA,CAEM,CAAE,WAAA,CAAAgB,CAAAA,CAAa,YAAAC,CAAAA,CAAa,UAAA,CAAAC,EAAY,QAAA,CAAAC,CAAS,EAAInC,CAAAA,CAErDoC,CAAAA,CAAmBZ,IAAY,OAAA,EAAWA,CAAAA,GAAY,QAAA,CAAW,CAAA,CAAIP,EAErEoB,CAAAA,CAAmB1B,EAAAA,CAAG,gDAAiDX,CAAAA,CAAM,eAAe,EAC5FsC,CAAAA,CAAyB3B,EAAAA,CAAG,4CAA6CX,CAAAA,CAAM,qBAAqB,EACpGuC,CAAAA,CAAqB5B,EAAAA,CAAG,gBAAiBX,CAAAA,CAAM,iBAAiB,EAChEwC,CAAAA,CAAoB7B,EAAAA,CAAG,gHAAiHX,CAAAA,CAAM,gBAAgB,EAC9JyC,EAAAA,CAAkB9B,EAAAA,CAAG,sBAAuBX,CAAAA,CAAM,cAAc,EAChE0C,EAAAA,CAAoB/B,EAAAA,CAAG,qDAAsDX,CAAAA,CAAM,gBAAgB,EACnG2C,EAAAA,CAAyBhC,EAAAA,CAAG,2CAA4CX,CAAAA,CAAM,qBAAqB,EACnG4C,EAAAA,CAAqBC,GAAAA,CAAe,CACxC,OAAA,CAAS,kBAAA,CACT,UAAW,kEACb,CAAC,EACKC,EAAAA,CAAuBnC,EAAAA,CAAGiC,GAAoB,SAAA,CAAW5C,CAAAA,CAAM,mBAAmB,CAAA,CAClF+C,EAAAA,CAA2BpC,GAAGiC,EAAAA,CAAoB,QAAA,CAAU5C,EAAM,uBAAuB,CAAA,CACzFgD,GAAgBrC,EAAAA,CAAG,kBAAA,CAAoBX,EAAM,YAAY,CAAA,CACzDiD,GAAsBtC,EAAAA,CAAG,8DAAA,CAAgEX,EAAM,kBAAkB,CAAA,CACjHkD,GAAiBvC,EAAAA,CAAG,wBAAA,CAA0BX,EAAM,aAAa,CAAA,CACjEmD,GAAgBxC,EAAAA,CAAG,0EAAA,CAA4EX,EAAM,YAAY,CAAA,CACjHoD,GAAsBzC,EAAAA,CAC1BkC,GAAAA,CAAe,CAAE,OAAA,CAAS,KAAM,IAAA,CAAM,IAAK,CAAC,CAAA,CAC5C,KAAA,CACA7C,EAAM,kBACR,CAAA,CACMqD,GAA8B,uEAAA,CAC9BC,EAAAA,CAAuB3C,GAAG,+DAAA,CAAiEX,CAAAA,CAAM,mBAAmB,CAAA,CACpHuD,EAAAA,CAAqB5C,GAAG,+DAAA,CAAiEX,CAAAA,CAAM,iBAAiB,CAAA,CAChHwD,EAAAA,CAAwB7C,GAC5B,gQAAA,CACAX,CAAAA,CAAM,oBACR,CAAA,CACMyD,EAAAA,CAAkB9C,GACtB,sBAAA,CACA,mFAAA,CACA,8DACA,6JAAA,CACA,iHAAA,CACAX,EAAM,cACR,CAAA,CACM0D,GAAoB/C,EAAAA,CAAG,YAAA,CAAcX,EAAM,gBAAgB,CAAA,CAC3D2D,EAAAA,CAAqBhD,EAAAA,CAAG,aAAcX,CAAAA,CAAM,iBAAiB,EAC7D4D,EAAAA,CAAmBjD,EAAAA,CAAG,mBAAoBX,CAAAA,CAAM,eAAe,EAErE,OACEC,GAAAA,CAAC4D,UAAA,CACC,SAAA,CAAWlD,GAAG,yCAAA,CAA2CJ,CAAS,EAClE,UAAA,CAAY,CACV,OAAQ8B,CAAAA,CACR,aAAA,CAAeC,EACf,QAAA,CAAUC,CAAAA,CACV,QAASC,CAAAA,CACT,KAAA,CAAOC,GACP,OAAA,CAASC,EAAAA,CACT,cAAeC,EAAAA,CACf,WAAA,CAAaG,GACb,eAAA,CAAiBC,EAAAA,CACjB,IAAKC,EAAAA,CACL,UAAA,CAAYC,GACZ,IAAA,CAAMC,EAAAA,CACN,GAAA,CAAKC,EAAAA,CACL,WAAYC,EAAAA,CACZ,QAAA,CAAUC,GACV,WAAA,CAAaC,EAAAA,CACb,aAAcE,EAAAA,CACd,SAAA,CAAWD,GACX,KAAA,CAAOE,EAAAA,CACP,QAASC,EAAAA,CACT,QAAA,CAAUC,GACV,MAAA,CAAQC,EACV,EACA,UAAA,CAAY,CACV,QAAS,CAAC,CAAE,YAAAE,CAAY,CAAA,GAEf7D,IADM6D,CAAAA,GAAgB,MAAA,CAASC,gBAAkBC,gBAAAA,CAChD,CAAK,UAAU,SAAA,CAAU,CAAA,CAEnC,IAAK,CAAC,CAAE,UAAWC,CAAa,CAAA,GAC9BhE,IAACiE,EAAAA,CAAA,CACC,UAAWD,CAAAA,CACX,aAAA,CAAetC,EACf,YAAA,CAAcE,CAAAA,CACd,SAAUM,CAAAA,CACV,OAAA,CAASX,EACT,gBAAA,CAAkBI,CAAAA,CAClB,gBAAiBE,CAAAA,CACjB,UAAA,CAAYI,EACZ,WAAA,CAAaF,CAAAA,CACb,YAAaC,CAAAA,CACf,CAAA,CAEF,aAAekC,CAAAA,EACblE,GAAAA,CAACmE,GAAA,CACC,aAAA,CAAezC,EACf,YAAA,CAAcE,CAAAA,CACd,QAASL,CAAAA,CACT,UAAA,CAAYC,EACZ,gBAAA,CAAkBV,CAAAA,CACjB,GAAGoD,CAAAA,CACN,CAAA,CAEF,UAAYE,CAAAA,EACVpE,GAAAA,CAACqE,UAAA,CACC,WAAA,CAAS,KACR,GAAGD,CAAAA,CACN,CAAA,CAEF,SAAA,CAAW,CAAC,CAAE,SAAA,CAAWE,EAAa,QAAA,CAAA/D,EAAAA,CAAU,GAAGgE,EAAQ,CAAA,GACzDvE,IAACwE,EAAAA,CAAA,CACC,UAAWF,CAAAA,CACX,aAAA,CAAe5C,EACf,YAAA,CAAcE,CAAAA,CACd,SAAUM,CAAAA,CACV,UAAA,CAAYb,EACZ,OAAA,CAASE,CAAAA,CACT,iBAAkBI,CAAAA,CAClB,UAAA,CAAYH,EACZ,UAAA,CAAYS,CAAAA,CACX,GAAGsC,EAAAA,CAEH,QAAA,CAAAhE,GACH,CAAA,CAEF,GAAGU,CACL,CAAA,CACA,cAAA,CAAgBkB,EAChB,eAAA,CAAiBtB,CAAAA,CACjB,aAAcS,CAAAA,CACb,GAAGvB,EACN,CAEJ,CACAa,EAAS,WAAA,CAAc,UAAA,CAEvB,SAASqD,EAAAA,CAAI,CACX,UAAA3D,CAAAA,CACA,OAAA,CAAAiB,EACA,UAAA,CAAAU,CAAAA,CACA,SAAAC,CAAAA,CACA,YAAA,CAAAN,EACA,aAAA,CAAAF,CAAAA,CACA,gBAAAG,CAAAA,CACA,gBAAA,CAAAF,EACA,WAAA,CAAAK,CAAAA,CACA,YAAAD,CACF,CAAA,CAWG,CACD,GAAM,CAAE,UAAA0C,CAAAA,CAAW,aAAA,CAAAC,EAAe,SAAA,CAAAC,CAAU,EAAIC,YAAAA,EAAa,CAEvDC,EACAtD,CAAAA,GAAY,OAAA,CAEXU,GAAc6C,wBAAAA,CAAyB,IAAI,IAAA,CAAKlD,CAAAA,CAAa,KAAO,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAAGK,CAAU,EAAI,CAAA,EAC5FC,CAAAA,EAAY4C,yBAAyB,IAAI,IAAA,CAAKlD,EAAa,IAAA,CAAO,CAAA,CAAG,EAAG,CAAC,CAAA,CAAGM,CAAQ,CAAA,CAAI,CAAA,CAGzFX,IAAY,QAAA,CAEXU,CAAAA,EAAc6C,yBAAyB,IAAI,IAAA,CAAKpD,EAAc,IAAA,CAAO,CAAA,CAAG,EAAG,CAAC,CAAA,CAAGO,CAAU,CAAA,CAAI,CAAA,EAC7FC,GAAY4C,wBAAAA,CAAyB,IAAI,KAAKpD,CAAAA,CAAc,IAAA,CAAO,EAAG,CAAA,CAAG,CAAC,EAAGQ,CAAQ,CAAA,CAAI,EAGvF,CAACwC,CAAAA,CAGJK,EACAxD,CAAAA,GAAY,OAAA,CAEXU,GAAc6C,wBAAAA,CAAyB,IAAI,KAAKlD,CAAAA,CAAa,EAAA,CAAK,EAAG,CAAA,CAAG,CAAC,EAAGK,CAAU,CAAA,CAAI,GAC1FC,CAAAA,EAAY4C,wBAAAA,CAAyB,IAAI,IAAA,CAAKlD,CAAAA,CAAa,GAAK,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAAGM,CAAQ,EAAI,CAAA,CAGvFX,CAAAA,GAAY,SAEXU,CAAAA,EAAc6C,wBAAAA,CAAyB,IAAI,IAAA,CAAKpD,CAAAA,CAAc,KAAO,CAAA,CAAG,CAAA,CAAG,CAAC,CAAA,CAAGO,CAAU,CAAA,CAAI,CAAA,EAC7FC,GAAY4C,wBAAAA,CAAyB,IAAI,KAAKpD,CAAAA,CAAc,IAAA,CAAO,EAAG,CAAA,CAAG,CAAC,EAAGQ,CAAQ,CAAA,CAAI,EAGvF,CAACuC,CAAAA,CAGJO,EAA4B,CAAA,CAAA,WAAA,CAAY,IAAM,CAClD,GAAKN,CAAAA,CACL,IAAInD,CAAAA,GAAY,OAAA,CAAS,CACvBM,CAAAA,CAAiBoD,CAAAA,GAAU,CACzB,IAAA,CAAMA,CAAAA,CAAK,MAAQA,CAAAA,CAAK,EAAA,CAAKA,EAAK,IAAA,CAAO,CAAA,CAAA,CACzC,GAAIA,CAAAA,CAAK,EAAA,EAAMA,EAAK,EAAA,CAAKA,CAAAA,CAAK,KAAO,CAAA,CACvC,CAAA,CAAE,CAAA,CACFjD,CAAAA,GAAc,IAAI,IAAA,CAAKJ,CAAAA,CAAa,MAAQA,CAAAA,CAAa,EAAA,CAAKA,EAAa,IAAA,CAAA,CAAO,CAAA,CAAG,CAAC,CAAC,CAAA,CACvF,MACF,CACA,GAAIL,IAAY,QAAA,CAAU,CACxBI,EAAkBsD,CAAAA,GAAU,CAAE,KAAMA,CAAAA,CAAK,IAAA,CAAO,CAAE,CAAA,CAAE,CAAA,CACpDjD,IAAc,IAAI,IAAA,CAAKN,EAAc,IAAA,CAAO,CAAA,CAAG,EAAG,CAAC,CAAC,EACpD,MACF,CACAiD,EAAUD,CAAa,CAAA,CACvB1C,IAAc0C,CAAa,EAAA,CAC7B,CAAA,CAAG,CAACA,EAAeC,CAAAA,CAAW/C,CAAAA,CAAa,KAAMA,CAAAA,CAAa,EAAA,CAAIF,EAAc,IAAA,CAAMH,CAAAA,CAASS,EAAaH,CAAAA,CAAiBF,CAAgB,CAAC,CAAA,CAExIuD,CAAAA,CAAwB,cAAY,IAAM,CAC9C,GAAKT,CAAAA,CACL,CAAA,GAAIlD,IAAY,OAAA,CAAS,CACvBM,EAAiBoD,CAAAA,GAAU,CACzB,KAAMA,CAAAA,CAAK,IAAA,EAAQA,EAAK,EAAA,CAAKA,CAAAA,CAAK,KAAO,CAAA,CAAA,CACzC,EAAA,CAAIA,EAAK,EAAA,EAAMA,CAAAA,CAAK,GAAKA,CAAAA,CAAK,IAAA,CAAO,EACvC,CAAA,CAAE,CAAA,CACFlD,IAAc,IAAI,IAAA,CAAKH,EAAa,IAAA,EAAQA,CAAAA,CAAa,GAAKA,CAAAA,CAAa,IAAA,CAAA,CAAO,EAAG,CAAC,CAAC,EACvF,MACF,CACA,GAAIL,CAAAA,GAAY,QAAA,CAAU,CACxBI,CAAAA,CAAkBsD,CAAAA,GAAU,CAAE,IAAA,CAAMA,CAAAA,CAAK,KAAO,CAAE,CAAA,CAAE,EACpDlD,CAAAA,GAAc,IAAI,KAAKL,CAAAA,CAAc,IAAA,CAAO,EAAG,CAAA,CAAG,CAAC,CAAC,CAAA,CACpD,MACF,CACAiD,CAAAA,CAAUF,CAAS,EACnB1C,CAAAA,GAAc0C,CAAS,GACzB,CAAA,CAAG,CAACE,CAAAA,CAAWF,CAAAA,CAAW7C,EAAa,IAAA,CAAMA,CAAAA,CAAa,GAAIF,CAAAA,CAAc,IAAA,CAAMH,EAASQ,CAAAA,CAAaF,CAAAA,CAAiBF,CAAgB,CAAC,CAAA,CAE1I,OACElB,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAWC,EAAAA,CAAG,mBAAA,CAAqBJ,CAAS,CAAA,CAC/C,QAAA,CAAA,CAAAN,IAACmF,GAAAA,CAAA,CACC,aACE5D,CAAAA,GAAY,OAAA,CACR,sBAAsBK,CAAAA,CAAa,EAAA,CAAKA,EAAa,IAAA,CAAO,CAAC,SAC7DL,CAAAA,GAAY,QAAA,CACV,0BACA6D,aAAAA,CAAcV,CAAa,EAEnC,SAAA,CAAU,qEAAA,CACV,SAAUG,CAAAA,CACV,IAAA,CAAK,KACL,IAAA,CAAI,IAAA,CACJ,SAAUA,CAAAA,CAAqB,MAAA,CAAY,GAC3C,IAAA,CAAK,QAAA,CACL,QAAS,IAAA,CACT,OAAA,CAASG,EAET,QAAA,CAAAhF,GAAAA,CAACqF,YAAA,EAAY,CAAA,CACf,EAEArF,GAAAA,CAACmF,GAAAA,CAAA,CACC,YAAA,CACE5D,CAAAA,GAAY,QACR,CAAA,eAAA,EAAkBK,CAAAA,CAAa,GAAKA,CAAAA,CAAa,IAAA,CAAO,CAAC,CAAA,MAAA,CAAA,CACzDL,CAAAA,GAAY,SACV,qBAAA,CACA+D,SAAAA,CAAUb,CAAS,CAAA,CAE3B,SAAA,CAAU,uEACV,QAAA,CAAUM,CAAAA,CACV,KAAK,IAAA,CACL,IAAA,CAAI,KACJ,QAAA,CAAUA,CAAAA,CAAiB,MAAA,CAAY,EAAA,CACvC,KAAK,QAAA,CACL,OAAA,CAAS,KACT,OAAA,CAASG,CAAAA,CAET,SAAAlF,GAAAA,CAACuF,YAAAA,CAAA,EAAa,CAAA,CAChB,CAAA,CAAA,CACF,CAEJ,CAEA,SAASpB,GAAa,CACpB,QAAA,CAAA5D,EACA,gBAAA,CAAAO,CAAAA,CACA,QAAAS,CAAAA,CACA,UAAA,CAAAC,EACA,YAAA,CAAAI,CAAAA,CACA,cAAAF,CAAAA,CACA,GAAG3B,CACL,CAAA,CAMkC,CAChC,OAAKe,CAAAA,CAEHd,GAAAA,CAACmF,IAAA,CACC,QAAA,CAAU5D,IAAY,OAAA,CACtB,IAAA,CAAK,KACL,IAAA,CAAK,QAAA,CACL,QAAS,IAAA,CACT,OAAA,CAAS,IAAM,CACTA,CAAAA,GAAY,OAAQC,CAAAA,CAAW,QAAQ,EAClCD,CAAAA,GAAY,QAAA,EAAUC,EAAW,OAAO,EACnD,EAEC,QAAA,CAAAD,CAAAA,GAAY,OACThB,CAAAA,CACAgB,CAAAA,GAAY,SACVG,CAAAA,CAAc,IAAA,CACdE,EAAa,IAAA,CAAO,KAAA,CAAQA,EAAa,EAAA,CACjD,CAAA,CAjB4B5B,IAAC,MAAA,CAAA,CAAM,GAAGD,EAAQ,QAAA,CAAAQ,CAAAA,CAAS,CAmB3D,CAEA,SAASiE,GAAa,CACpB,SAAA,CAAAlE,EACA,QAAA,CAAAC,CAAAA,CACA,aAAAqB,CAAAA,CACA,aAAA,CAAAF,CAAAA,CACA,gBAAA,CAAAC,EACA,UAAA,CAAAM,CAAAA,CACA,SAAAC,CAAAA,CACA,OAAA,CAAAX,EACA,UAAA,CAAAC,CAAAA,CACA,WAAAH,CAAAA,CAAa,MAAA,CACb,GAAGtB,CACL,CAAA,CAWmC,CACjC,OAAIwB,CAAAA,GAAY,QAEZvB,GAAAA,CAACwF,EAAAA,CAAA,CACC,SAAA,CAAWlF,CAAAA,CACX,aAAcsB,CAAAA,CACd,QAAA,CAAUM,EACV,UAAA,CAAYb,CAAAA,CACZ,QAASE,CAAAA,CACT,gBAAA,CAAkBI,EAClB,UAAA,CAAYH,CAAAA,CACZ,WAAYS,CAAAA,CACX,GAAGlC,EACN,CAAA,CAGAwB,CAAAA,GAAY,SAEZvB,GAAAA,CAACyF,EAAAA,CAAA,CACC,SAAA,CAAWnF,CAAAA,CACX,cAAeoB,CAAAA,CACf,QAAA,CAAUQ,EACV,UAAA,CAAYb,CAAAA,CACZ,QAASE,CAAAA,CACT,UAAA,CAAYC,EACZ,UAAA,CAAYS,CAAAA,CACX,GAAGlC,CAAAA,CACN,CAAA,CAIFC,IAAC,OAAA,CAAA,CAAM,SAAA,CAAWU,GAAG,QAAA,CAAUJ,CAAS,EAAI,GAAGP,CAAAA,CAC5C,SAAAQ,CAAAA,CACH,CAEJ,CAEA,SAASmF,EAAAA,CAAeC,EAAmBC,CAAAA,CAAuB,CAChE,GAAI,CAACD,CAAAA,CAAU,OAAO,MAAA,CACtB,GAAI,MAAM,OAAA,CAAQA,CAAQ,EAAG,OAAQA,CAAAA,CAAoB,IAAA,CAAME,CAAAA,EAAMA,EAAE,WAAA,EAAY,GAAMD,CAAI,CAAA,CAC7F,GAAI,OAAOD,CAAAA,EAAa,QAAA,EAAY,SAAUA,CAAAA,CAAU,CACtD,IAAMG,CAAAA,CAAQH,CAAAA,CACd,OAAIG,CAAAA,CAAM,IAAA,EAAQA,EAAM,EAAA,CAAWF,CAAAA,EAAQE,EAAM,IAAA,CAAK,WAAA,IAAiBF,CAAAA,EAAQE,CAAAA,CAAM,GAAG,WAAA,EAAY,CAChGA,EAAM,IAAA,CAAaA,CAAAA,CAAM,KAAK,WAAA,EAAY,GAAMF,EAC7C,KACT,CACA,OAAQD,CAAAA,CAAkB,WAAA,KAAkBC,CAC9C,CAEA,SAASG,EAAAA,CAAgBJ,CAAAA,CAAmBC,EAAcI,CAAAA,CAA2B,CACnF,GAAI,CAACL,CAAAA,CAAU,OAAO,MAAA,CACtB,GAAI,MAAM,OAAA,CAAQA,CAAQ,EACxB,OAAQA,CAAAA,CAAoB,KAAME,CAAAA,EAAMA,CAAAA,CAAE,UAAS,GAAMG,CAAAA,EAAYH,EAAE,WAAA,EAAY,GAAMD,CAAI,CAAA,CAE/F,GAAI,OAAOD,CAAAA,EAAa,QAAA,EAAY,SAAUA,CAAAA,CAAU,CACtD,IAAMG,CAAAA,CAAQH,CAAAA,CACd,GAAIG,CAAAA,CAAM,IAAA,EAAQA,EAAM,EAAA,CAAI,CAC1B,IAAMG,CAAAA,CAAYH,CAAAA,CAAM,IAAA,CAAK,QAAA,GAAYI,CAAAA,CAAWJ,CAAAA,CAAM,KAAK,WAAA,EAAY,CACrEK,EAAUL,CAAAA,CAAM,EAAA,CAAG,UAAS,CAAGM,CAAAA,CAASN,EAAM,EAAA,CAAG,WAAA,GACvD,OAAIF,CAAAA,GAASM,GAAYN,CAAAA,GAASQ,CAAAA,CAAeJ,GAAYC,CAAAA,EAAaD,CAAAA,EAAYG,EAClFP,CAAAA,GAASM,CAAAA,CAAiBF,GAAYC,CAAAA,CACtCL,CAAAA,GAASQ,EAAeJ,CAAAA,EAAYG,CAAAA,CACjCP,EAAOM,CAAAA,EAAYN,CAAAA,CAAOQ,CACnC,CACA,OAAIN,EAAM,IAAA,CAAaA,CAAAA,CAAM,KAAK,QAAA,EAAS,GAAME,GAAYF,CAAAA,CAAM,IAAA,CAAK,aAAY,GAAMF,CAAAA,CACnF,KACT,CACA,OAAQD,EAAkB,QAAA,EAAS,GAAMK,GAAaL,CAAAA,CAAkB,WAAA,KAAkBC,CAC5F,CAEA,SAASJ,EAAAA,CAAmC,CAC1C,UAAAlF,CAAAA,CACA,YAAA,CAAAsB,EACA,UAAA,CAAAK,CAAAA,CACA,SAAAC,CAAAA,CACA,UAAA,CAAAV,EACA,OAAA,CAAAD,CAAAA,CACA,iBAAAI,CAAAA,CACA,UAAA,CAAAN,EAAa,MAAA,CACb,GAAGtB,CACL,CAAA,CASmC,KAC3B,CAAE,QAAA,CAAA4F,EAAU,MAAA,CAAAU,CAAO,CAAA,CAAIzB,YAAAA,GACT,IAAI,MAAK,CAAE,WAAA,OACzB0B,CAAAA,CAAa1E,CAAAA,CAAa,GAAKA,CAAAA,CAAa,IAAA,CAAO,EAEnD2E,CAAAA,CAAc,CAACC,EAAqBZ,CAAAA,GAAiB,CACrDvE,IAAe,OAAA,CACjBgF,CAAAA,GAAS,IAAI,IAAA,CAAKT,CAAAA,CAAM,EAAG,CAAC,CAAA,CAAG,EAAC,CAAGY,CAAC,GAEpChF,CAAAA,CAAW,QAAQ,EACnBG,CAAAA,CAAiB,CAAE,KAAAiE,CAAK,CAAC,GAE7B,EAEA,OACE5F,IAAC,OAAA,CAAA,CAAM,SAAA,CAAWU,GAAG,WAAA,CAAaJ,CAAS,EAAI,GAAGP,CAAAA,CAChD,SAAAC,GAAAA,CAAC,OAAA,CAAA,CACC,SAAAA,GAAAA,CAAC,IAAA,CAAA,CAAG,UAAU,4BAAA,CACX,QAAA,CAAA,KAAA,CAAM,KAAK,CAAE,MAAA,CAAQsG,CAAW,CAAA,CAAG,CAACG,EAAGC,CAAAA,GAAM,KACtCd,CAAAA,CAAOhE,CAAAA,CAAa,KAAO8E,CAAAA,CAC3BC,CAAAA,CAAY,IAAI,IAAA,CAAKf,CAAAA,CAAM,EAAG,CAAC,CAAA,CAC/BgB,EAAU,IAAI,IAAA,CAAKhB,EAAM,EAAA,CAAI,EAAE,EAC/BiB,CAAAA,CAAgB5E,CAAAA,EAAc6C,yBAAyB8B,CAAAA,CAAS3E,CAAU,CAAA,CAAI,CAAA,CAC9E6E,EAAa5E,CAAAA,EAAY4C,wBAAAA,CAAyB6B,EAAWzE,CAAQ,CAAA,CAAI,EACzE6E,CAAAA,CAAaF,CAAAA,EAAiBC,EAE9BE,CAAAA,CAAatB,EAAAA,CAAeC,EAAUC,CAAI,EAChD,OACE5F,GAAAA,CAAC,IAAA,CAAA,CACC,SAAAA,GAAAA,CAACmF,GAAAA,CAAA,CACC,SAAA,CAAU,QAAA,CACV,SAAU5D,CAAAA,GAAY,OAAA,CAAUwF,EAAa,MAAA,CAC7C,IAAA,CAAK,SACL,OAAA,CAASC,CAAAA,CAAa,UAAY,iBAAA,CAClC,OAAA,CAAUR,GAAMD,CAAAA,CAAYC,CAAAA,CAAGZ,CAAI,CAAA,CAElC,QAAA,CAAAA,CAAAA,CACH,CAAA,CAAA,CATOA,CAUT,CAEJ,CAAC,EACH,CAAA,CACF,CAAA,CACF,CAEJ,CAEA,SAASH,GAAoC,CAC3C,SAAA,CAAAnF,EACA,aAAA,CAAAoB,CAAAA,CACA,WAAAO,CAAAA,CACA,QAAA,CAAAC,EACA,UAAA,CAAAV,CAAAA,CACA,QAAAD,CAAAA,CACA,UAAA,CAAAF,EAAa,MAAA,CACb,GAAGtB,CACL,CAAA,CAQmC,CACjC,GAAM,CAAE,SAAA,CAAA4E,EAAW,QAAA,CAAAgB,CAAAA,CAAU,OAAAU,CAAO,CAAA,CAAIzB,cAAgB,CAClDqC,CAAAA,CAAS,CAAC,SAAA,CAAW,UAAA,CAAY,OAAA,CAAS,OAAA,CAAS,MAAO,MAAA,CAAQ,MAAA,CAAQ,SAAU,WAAA,CAAa,SAAA,CAAW,WAAY,UAAU,CAAA,CAClIrB,EAAOlE,CAAAA,CAAc,IAAA,CAErB6E,EAAc,CAACC,CAAAA,CAAqBE,IAAc,CAClDrF,CAAAA,GAAe,SACjBgF,CAAAA,GAAS,IAAI,KAAKT,CAAAA,CAAMc,CAAAA,CAAG,CAAC,CAAA,CAAG,GAAIF,CAAC,CAAA,EAEpChF,EAAW,MAAM,CAAA,CACjBmD,EAAU,IAAI,IAAA,CAAKiB,EAAMc,CAAC,CAAC,GAE/B,CAAA,CAEA,OACE1G,IAAC,OAAA,CAAA,CAAM,SAAA,CAAWU,GAAG,WAAA,CAAaJ,CAAS,EAAI,GAAGP,CAAAA,CAChD,SAAAC,GAAAA,CAAC,OAAA,CAAA,CACC,SAAAA,GAAAA,CAAC,IAAA,CAAA,CAAG,UAAU,4BAAA,CACX,QAAA,CAAAiH,EAAO,GAAA,CAAI,CAACC,EAAOR,CAAAA,GAAM,KAClBS,CAAAA,CAAWlF,CAAAA,EAAc6C,yBAAyB,IAAI,IAAA,CAAKc,EAAMc,CAAAA,CAAG,EAAE,EAAGzE,CAAU,CAAA,CAAI,EACvFmF,CAAAA,CAAUlF,CAAAA,EAAY4C,yBAAyB,IAAI,IAAA,CAAKc,EAAMc,CAAAA,CAAG,CAAC,EAAGxE,CAAQ,CAAA,CAAI,EACjF6E,CAAAA,CAAaI,CAAAA,EAAYC,CAAAA,CACRxB,IAAS,IAAI,IAAA,GAAO,WAAA,EAAY,EAAKc,IAAM,IAAI,IAAA,GAAO,QAAA,EAAS,KAChFM,EAAajB,EAAAA,CAAgBJ,CAAAA,CAAUC,EAAMc,CAAC,EACpD,OACE1G,GAAAA,CAAC,IAAA,CAAA,CACC,SAAAA,GAAAA,CAACmF,GAAAA,CAAA,CACC,SAAA,CAAU,QAAA,CACV,SAAU5D,CAAAA,GAAY,QAAA,CAAWwF,EAAa,MAAA,CAC9C,IAAA,CAAK,SACL,OAAA,CAASC,CAAAA,CAAa,UAAY,iBAAA,CAClC,OAAA,CAAUR,GAAMD,CAAAA,CAAYC,CAAAA,CAAGE,CAAC,CAAA,CAE/B,QAAA,CAAAQ,EAAM,SAAA,CAAU,CAAA,CAAG,CAAC,CAAA,CACvB,CAAA,CAAA,CATOR,CAUT,CAEJ,CAAC,EACH,CAAA,CACF,CAAA,CACF,CAEJ,CCjlBA,SAASW,GAAW,CAClB,SAAA,CAAA/G,EACA,KAAA,CAAOgH,CAAAA,CACP,aAAA,CAAAC,CAAAA,CACA,aAAAC,CAAAA,CACA,QAAA,CAAAC,EACA,QAAA,CAAAC,CAAAA,CACA,YAAAC,CAAAA,CAAc,aAAA,CACd,cAAAC,CAAAA,CACA,UAAA,CAAAC,EAAa,WAAA,CACb,GAAG9H,CACL,CAAA,CAAoB,CAClB,IAAM+H,CAAAA,CAA0BC,CAAA,CAAA,WAAA,CAC7BC,GAA0B,CACrBP,CAAAA,CACEO,GAAKT,CAAAA,GAAgBS,CAAG,EAE5BT,CAAAA,GAAgBS,CAAG,EAEvB,CAAA,CACA,CAACT,EAAeE,CAAQ,CAC1B,EAEM,CAACQ,CAAAA,CAAOC,CAAQ,CAAA,CAAIzG,kBAAAA,CAAqC,CAC7D,KAAA,CAAO6F,CAAAA,CACP,aAAAE,CAAAA,CACA,QAAA,CAAUM,CACZ,CAAC,CAAA,CAEK,CAACK,CAAAA,CAAcC,CAAe,EAAUL,CAAA,CAAA,QAAA,CAA2BE,CAAAA,EAAS,IAAI,IAAM,CAAA,CACtF,CAACI,CAAAA,CAAQC,CAAS,EAAUP,CAAA,CAAA,QAAA,CAAS,KAAK,EAE1CQ,CAAAA,CAAW,CAAC,CAACN,CAAAA,CAEnB,OACExH,KAAC+H,GAAAA,CAAA,CAAQ,KAAMd,CAAAA,CAAW,KAAA,CAAQW,EAAQ,YAAA,CAAcC,CAAAA,CACtD,UAAAtI,GAAAA,CAACyI,GAAAA,CAAA,CACC,SAAA,CAAU,QAAA,CACV,OACEhI,IAAAA,CAAC0E,GAAAA,CAAA,CACC,SAAA,CAAWzE,EAAAA,CACT,wGAAA,CACA,mFAAA,CACA6H,GACE,mEAAA,CACF,yHAAA,CACA,mDACAjI,CACF,CAAA,CACA,QAAS,IAAA,CACT,IAAA,CAAM,KACN,QAAA,CAAUoH,CAAAA,CAEV,UAAAjH,IAAAA,CAAC,MAAA,CAAA,CAAK,UAAU,iCAAA,CACd,QAAA,CAAA,CAAAT,IAAC0I,GAAAA,CAAA,CACC,UAAWhI,EAAAA,CACT,iBAAA,CACA6H,EAAW,uBAAA,CAA0B,oBACvC,EACF,CAAA,CACAvI,GAAAA,CAAC,QAAK,SAAA,CAAU,UAAA,CACb,SAAAiI,CAAAA,CAAQU,MAAAA,CAAOV,EAAOJ,CAAU,CAAA,CAAIF,EACvC,CAAA,CAAA,CACF,CAAA,CACA3H,IAAC4I,WAAAA,CAAA,CACC,UAAWlI,EAAAA,CACT,yEAAA,CACA6H,EAAW,uBAAA,CAA0B,oBACvC,EACF,CAAA,CAAA,CACF,CAAA,CAEJ,EACAvI,GAAAA,CAAC6I,GAAAA,CAAA,CACC,SAAA,CAAU,yDAAA,CACV,MAAO,CACL,UAAA,CACE,4LACF,cAAA,CAAgB,YAAA,CAChB,UAAW,6BACb,CAAA,CAEA,SAAA7I,GAAAA,CAACY,CAAAA,CAAA,CACC,SAAA,CAAS,IAAA,CACT,SAAUgH,CAAAA,CACV,IAAA,CAAK,SACL,KAAA,CAAOO,CAAAA,CACP,SAAUF,CAAAA,CACV,aAAA,CAAeG,EACf,QAAA,CAAWJ,CAAAA,EAAQ,CACbP,CAAAA,EAAY,CAACO,IACjBE,CAAAA,CAASF,CAAG,CAAA,CACZM,CAAAA,CAAU,KAAK,CAAA,EACjB,CAAA,CACC,GAAGvI,CAAAA,CACN,CAAA,CACF,GACF,CAEJ,CC/FA,SAAS+I,EAAAA,CAAmB,CAC1B,UAAAxI,CAAAA,CACA,KAAA,CAAOgH,EACP,aAAA,CAAAC,CAAAA,CACA,aAAAC,CAAAA,CACA,QAAA,CAAAC,EACA,QAAA,CAAAC,CAAAA,CACA,YAAAC,CAAAA,CAAc,YAAA,CACd,cAAAC,CAAAA,CACA,UAAA,CAAAC,EAAa,WAAA,CACb,cAAA,CAAAkB,EAAiB,OAAA,CACjB,UAAA,CAAAC,EACA,GAAGjJ,CACL,EAA4B,CAC1B,IAAM+H,EAA0BmB,CAAA,CAAA,WAAA,CAC7BjB,CAAAA,EAA4B,CACvBP,CAAAA,CACEO,CAAAA,EAAK,QAAQT,CAAAA,GAAgBS,CAAG,EAEpCT,CAAAA,GAAgBS,CAAG,EAEvB,CAAA,CACA,CAACT,EAAeE,CAAQ,CAC1B,EAEM,CAACQ,CAAAA,CAAOC,CAAQ,CAAA,CAAIzG,kBAAAA,CAAuC,CAC/D,KAAA,CAAO6F,EACP,YAAA,CAAAE,CAAAA,CACA,SAAUM,CACZ,CAAC,EAEK,CAACK,CAAAA,CAAcC,CAAe,CAAA,CAAUa,CAAA,CAAA,QAAA,CAA2BhB,IAAQ,CAAC,CAAA,EAAK,IAAI,IAAM,CAAA,CAC3F,CAACI,CAAAA,CAAQC,CAAS,EAAUW,CAAA,CAAA,QAAA,CAAS,KAAK,EAE1CV,CAAAA,CAAW,CAAC,CAACN,CAAAA,EAAO,MAAA,CAEpBiB,EAAoBD,CAAA,CAAA,OAAA,CAAQ,IAC3BhB,EACE,CAAC,GAAGA,CAAK,CAAA,CAAE,IAAA,CAAK,CAACkB,CAAAA,CAAGC,CAAAA,GAAMD,EAAE,OAAA,EAAQ,CAAIC,EAAE,OAAA,EAAS,EADvC,EAAC,CAEnB,CAACnB,CAAK,CAAC,EAEJoB,CAAAA,CAAyBJ,CAAA,CAAA,WAAA,CAC5BK,GAAuB,CACtB,IAAMC,EAAWtB,CAAAA,EAAO,MAAA,CAAQpC,GAAMA,CAAAA,CAAE,OAAA,KAAcyD,CAAAA,CAAa,OAAA,EAAS,CAAA,CACxE7B,CAAAA,EAAY,CAAC8B,CAAAA,EAAU,MAAA,EAC3BrB,EAASqB,CAAQ,EACnB,EACA,CAACtB,CAAAA,CAAOC,EAAUT,CAAQ,CAC5B,EAEM+B,CAAAA,CAAeR,CAAAA,GAAe,OAAYE,CAAAA,CAAY,KAAA,CAAM,EAAGF,CAAU,CAAA,CAAIE,CAAAA,CAC7EO,CAAAA,CAAgBT,IAAe,MAAA,CAAYE,CAAAA,CAAY,OAASF,CAAAA,CAAa,CAAA,CAEnF,OACEvI,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,4BAAA,CACb,QAAA,CAAA,CAAAA,KAAC+H,GAAAA,CAAA,CAAQ,KAAMd,CAAAA,CAAW,KAAA,CAAQW,EAAQ,YAAA,CAAcC,CAAAA,CACtD,UAAAtI,GAAAA,CAACyI,GAAAA,CAAA,CACC,SAAA,CAAU,QAAA,CACV,OACEhI,IAAAA,CAAC0E,GAAAA,CAAA,CACC,SAAA,CAAWzE,EAAAA,CACT,yGACA,mFAAA,CACA6H,CAAAA,EACE,oEACF,yHAAA,CACA,kDAAA,CACAjI,CACF,CAAA,CACA,OAAA,CAAS,KACT,IAAA,CAAM,IAAA,CACN,SAAUoH,CAAAA,CAEV,QAAA,CAAA,CAAAjH,KAAC,MAAA,CAAA,CAAK,SAAA,CAAU,kCACd,QAAA,CAAA,CAAAT,GAAAA,CAAC0I,IAAA,CACC,SAAA,CAAWhI,GACT,iBAAA,CACA6H,CAAAA,CAAW,wBAA0B,oBACvC,CAAA,CACF,EACAvI,GAAAA,CAAC,MAAA,CAAA,CAAK,UAAU,UAAA,CACb,QAAA,CAAAuI,EACG,CAAA,EAAGN,CAAAA,CAAM,MAAM,CAAA,CAAA,EAAIA,CAAAA,CAAM,SAAW,CAAA,CAAI,MAAA,CAAS,OAAO,CAAA,SAAA,CAAA,CACxDN,CAAAA,CACN,GACF,CAAA,CACA3H,GAAAA,CAAC4I,YAAA,CACC,SAAA,CAAWlI,GACT,yEAAA,CACA6H,CAAAA,CAAW,wBAA0B,oBACvC,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAEJ,EACAvI,GAAAA,CAAC6I,GAAAA,CAAA,CACC,SAAA,CAAU,yDAAA,CACV,MAAO,CACL,UAAA,CACE,4LACF,cAAA,CAAgB,YAAA,CAChB,UAAW,6BACb,CAAA,CAEA,SAAA7I,GAAAA,CAACY,CAAAA,CAAA,CACC,SAAA,CAAS,IAAA,CACT,SAAUgH,CAAAA,CACV,IAAA,CAAK,WACL,KAAA,CAAOO,CAAAA,CACP,SAAUF,CAAAA,CACV,aAAA,CAAeG,EACf,QAAA,CAAWJ,CAAAA,EAAQ,CACbP,CAAAA,EAAY,CAACO,GAAK,MAAA,EACtBE,CAAAA,CAASF,CAAG,EACd,CAAA,CACC,GAAGjI,CAAAA,CACN,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAECwI,GACC9H,IAAAA,CAAC,KAAA,CAAA,CAAI,UAAU,sBAAA,CACZ,QAAA,CAAA,CAAA+I,EAAa,GAAA,CAAK3D,CAAAA,EACjBpF,KAACiJ,GAAAA,CAAA,CAEC,MAAM,OAAA,CACN,IAAA,CAAK,KACL,SAAA,CAAU,6CAAA,CAET,UAAAf,MAAAA,CAAO9C,CAAAA,CAAGkD,CAAc,CAAA,CACxB,CAACrB,GACA1H,GAAAA,CAAC2J,GAAAA,CAAA,CACC,SAAA,CAAU,oBAAA,CACV,QAAUnD,CAAAA,EAAM,CACdA,EAAE,eAAA,EAAgB,CAClB6C,EAAiBxD,CAAC,EACpB,EACF,CAAA,CAAA,CAAA,CAbGA,CAAAA,CAAE,aAeT,CACD,CAAA,CACA4D,CAAAA,CAAgB,GACfhJ,IAAAA,CAACiJ,GAAAA,CAAA,CACC,KAAA,CAAM,OAAA,CACN,KAAK,IAAA,CACL,SAAA,CAAU,8CACX,QAAA,CAAA,CAAA,GAAA,CACGD,CAAAA,CAAAA,CACJ,GAEJ,CAAA,CAAA,CAEJ,CAEJ,CC5IA,IAAMG,GAAsC,CAC1C,CACE,MAAO,OAAA,CACP,KAAA,CAAO,QACP,YAAA,CAAc,IAAM,CAAE,IAAMC,CAAAA,CAAI,IAAI,IAAA,CAAQ,OAAO,CAAE,IAAA,CAAMA,CAAAA,CAAG,GAAIA,CAAE,CAAE,CACxE,CAAA,CACA,CACE,MAAO,aAAA,CACP,KAAA,CAAO,cACP,YAAA,CAAc,KAAO,CACnB,IAAA,CAAM,IAAI,IAAA,CAAK,IAAA,CAAK,KAAI,CAAI,IAAA,CAAc,GAAK,GAAI,CAAA,CACnD,GAAI,IAAI,IACV,EACF,CAAA,CACA,CACE,MAAO,WAAA,CACP,KAAA,CAAO,YACP,YAAA,CAAc,IAAM,CAClB,IAAMC,CAAAA,CAAM,IAAI,IAAA,CAChB,OAAO,CAAE,IAAA,CAAMC,WAAAA,CAAYD,EAAK,CAAE,YAAA,CAAc,CAAE,CAAC,CAAA,CAAG,GAAIE,SAAAA,CAAUF,CAAAA,CAAK,CAAE,YAAA,CAAc,CAAE,CAAC,CAAE,CAChG,CACF,CAAA,CACA,CACE,MAAO,YAAA,CACP,KAAA,CAAO,aACP,YAAA,CAAc,IAAM,CAAE,IAAMA,CAAAA,CAAM,IAAI,IAAA,CAAQ,OAAO,CAAE,IAAA,CAAMG,YAAAA,CAAaH,CAAG,CAAA,CAAG,EAAA,CAAII,WAAWJ,CAAG,CAAE,CAAE,CACxG,CAAA,CACA,CACE,KAAA,CAAO,eAAA,CACP,MAAO,eAAA,CACP,YAAA,CAAc,IAAM,CAAE,IAAMA,EAAM,IAAI,IAAA,CAAQ,OAAO,CAAE,IAAA,CAAMK,UAAUL,CAAAA,CAAK,CAAC,EAAG,EAAA,CAAIA,CAAI,CAAE,CAC5F,CAAA,CACA,CACE,KAAA,CAAO,gBACP,KAAA,CAAO,eAAA,CACP,aAAc,IAAM,CAAE,IAAMA,CAAAA,CAAM,IAAI,KAAQ,OAAO,CAAE,KAAMK,SAAAA,CAAUL,CAAAA,CAAK,CAAC,CAAA,CAAG,EAAA,CAAIA,CAAI,CAAE,CAC5F,EACA,CACE,KAAA,CAAO,YACP,KAAA,CAAO,WAAA,CACP,aAAc,IAAM,CAAE,IAAMA,CAAAA,CAAM,IAAI,KAAQ,OAAO,CAAE,KAAMM,WAAAA,CAAYN,CAAG,EAAG,EAAA,CAAIO,SAAAA,CAAUP,CAAG,CAAE,CAAE,CACtG,CAAA,CACA,CACE,MAAO,WAAA,CACP,KAAA,CAAO,YACP,YAAA,CAAc,IAAM,CAAE,IAAMQ,CAAAA,CAAKC,SAAS,IAAI,IAAA,CAAQ,CAAC,CAAA,CAAG,OAAO,CAAE,IAAA,CAAMH,WAAAA,CAAYE,CAAE,CAAA,CAAG,EAAA,CAAID,UAAUC,CAAE,CAAE,CAAE,CAChH,CAAA,CACA,CACE,KAAA,CAAO,cAAA,CACP,MAAO,cAAA,CACP,YAAA,CAAc,IAAG,CAAA,CACnB,CACF,EAEA,SAASE,EAAAA,CAAgB,CACvB,SAAA,CAAAlK,CAAAA,CACA,MAAOgH,CAAAA,CACP,aAAA,CAAemD,CAAAA,CACf,YAAA,CAAAjD,EACA,QAAA,CAAAC,CAAAA,CACA,SAAAC,CAAAA,CACA,WAAA,CAAAC,EAAc,aAAA,CACd,OAAA,CAAA+C,EAAU,IAAA,CACV,aAAA,CAAA9C,CACF,CAAA,CAAyB,CACvB,IAAML,CAAAA,CAAgBoD,UAAAA,CAAM,YACzB1C,CAAAA,EAAiC,CAClBwC,IAAoBxC,CAAkB,EAEtD,EACA,CAACwC,CAAAA,CAAmBhD,CAAQ,CAC9B,CAAA,CAEM,CAACQ,CAAAA,CAAOC,CAAQ,EAAIzG,kBAAAA,CAA0C,CAClE,MAAO6F,CAAAA,CACP,YAAA,CAAAE,EACA,QAAA,CAAUD,CACZ,CAAC,CAAA,CAEK,CAACY,EAAcC,CAAe,CAAA,CAAIuC,WAAM,QAAA,CAA2B1C,CAAAA,EAAO,MAAQ,IAAI,IAAM,EAC5F,CAACI,CAAAA,CAAQC,CAAS,CAAA,CAAIqC,UAAAA,CAAM,SAAS,KAAK,CAAA,CAC1C,CAACpJ,CAAAA,CAASC,CAAU,EAAImJ,UAAAA,CAAM,QAAA,CAAkB,MAAM,CAAA,CAEtDpC,CAAAA,CAAW,CAAC,CAACN,CAAAA,EAAO,KAEpB2C,CAAAA,CAAY,CAACC,EAAcC,CAAAA,GAC3B,CAACD,GAAS,CAACC,CAAAA,CAAc,MAE3BD,CAAAA,CAAM,WAAA,KAAkBC,CAAAA,CAAM,WAAA,IAC9BD,CAAAA,CAAM,QAAA,EAAS,GAAMC,CAAAA,CAAM,UAAS,EACpCD,CAAAA,CAAM,SAAQ,GAAMC,CAAAA,CAAM,SAAQ,CAIhCC,CAAAA,CAAkBC,GAAqC,CAC3D,GAAI,CAAC/C,CAAAA,EAAO,IAAA,EAAQ,CAACA,CAAAA,EAAO,EAAA,CAAI,OAAO,MAAA,CACvC,GAAI+C,EAAO,KAAA,GAAU,cAAA,CACnB,OAAOpB,EAAAA,CAAiB,KAAA,CAAOqB,GAAQ,CACrC,GAAIA,EAAI,KAAA,GAAU,cAAA,CAAgB,OAAO,KAAA,CACzC,IAAMC,EAAWD,CAAAA,CAAI,YAAA,GACrB,OAAI,CAACC,GAAU,IAAA,EAAQ,CAACA,GAAU,EAAA,CAAW,IAAA,CACtC,EAAEN,CAAAA,CAAU3C,CAAAA,CAAM,KAAMiD,CAAAA,CAAS,IAAI,GAAKN,CAAAA,CAAU3C,CAAAA,CAAM,GAAIiD,CAAAA,CAAS,EAAE,EAClF,CAAC,CAAA,CAEH,IAAMC,CAAAA,CAAcH,CAAAA,CAAO,cAAa,CACxC,OAAI,CAACG,CAAAA,EAAa,IAAA,EAAQ,CAACA,CAAAA,EAAa,EAAA,CAAW,MAC5CP,CAAAA,CAAU3C,CAAAA,CAAM,KAAMkD,CAAAA,CAAY,IAAI,GAAKP,CAAAA,CAAU3C,CAAAA,CAAM,GAAIkD,CAAAA,CAAY,EAAE,CACtF,CAAA,CAEA,OACE1K,KAAC+H,GAAAA,CAAA,CAAQ,IAAA,CAAMd,CAAAA,CAAW,MAAQW,CAAAA,CAAQ,YAAA,CAAcC,EACtD,QAAA,CAAA,CAAAtI,GAAAA,CAACyI,IAAA,CACC,MAAA,CACEhI,KAAC0E,GAAAA,CAAA,CACC,UAAWzE,EAAAA,CACT,wGAAA,CACA,oFACA6H,CAAAA,EACA,mEAAA,CACA,0HACA,kDAAA,CACAjI,CACF,EACA,OAAA,CAAS,IAAA,CACT,KAAM,IAAA,CACN,QAAA,CAAUoH,EAEV,QAAA,CAAA,CAAAjH,IAAAA,CAAC,QAAK,SAAA,CAAU,iCAAA,CACd,UAAAT,GAAAA,CAAC0I,GAAAA,CAAA,CACC,SAAA,CAAWhI,EAAAA,CACT,kBACA6H,CAAAA,CAAW,uBAAA,CAA0B,oBACvC,CAAA,CACF,CAAA,CACAvI,IAAC,MAAA,CAAA,CAAK,SAAA,CAAU,WACb,QAAA,CAAAiI,CAAAA,EAAO,KACJA,CAAAA,CAAM,EAAA,CACJ,GAAGU,MAAAA,CAAOV,CAAAA,CAAM,KAAM,WAAW,CAAC,MAAMU,MAAAA,CAAOV,CAAAA,CAAM,GAAI,WAAW,CAAC,GACrEU,MAAAA,CAAOV,CAAAA,CAAM,KAAM,WAAW,CAAA,CAChCN,EACN,CAAA,CAAA,CACF,CAAA,CACA3H,IAAC4I,WAAAA,CAAA,CACC,UAAWlI,EAAAA,CACT,yEAAA,CACA6H,EAAW,uBAAA,CAA0B,oBACvC,EACF,CAAA,CAAA,CACF,CAAA,CAEJ,EACA9H,IAAAA,CAACoI,GAAAA,CAAA,CACC,SAAA,CAAWnI,EAAAA,CACT,iBAAA,CACAgK,CAAAA,CAAU,iCAAmC,0BAC/C,CAAA,CAEC,UAAAA,CAAAA,EACC1K,GAAAA,CAAC,OAAI,SAAA,CAAU,mCAAA,CACZ,SAAA4J,EAAAA,CAAiB,GAAA,CAAKoB,GAAW,CAChC,IAAMI,EAASL,CAAAA,CAAeC,CAAM,EACpC,OACEhL,GAAAA,CAACmF,IAAA,CAEC,SAAA,CAAU,yBACV,OAAA,CAASiG,CAAAA,CAAS,kBAAoB,IAAA,CACtC,OAAA,CAAS,IAAM,CACb,IAAMC,EAAYL,CAAAA,CAAO,YAAA,GACrBK,CAAAA,GACFnD,CAAAA,CAASmD,CAAS,CAAA,CAClB7J,CAAAA,CAAW,MAAM,CAAA,CACjB4G,CAAAA,CAAgBiD,EAAU,IAAI,CAAA,EAElC,EAEC,QAAA,CAAAL,CAAAA,CAAO,OAZHA,CAAAA,CAAO,KAad,CAEJ,CAAC,CAAA,CACH,EAEFhL,GAAAA,CAACY,CAAAA,CAAA,CACC,SAAA,CAAS,IAAA,CACT,SAAUgH,CAAAA,CACV,IAAA,CAAK,QACL,KAAA,CAAOO,CAAAA,CACP,QAAS5G,CAAAA,CACT,cAAA,CAAgB,EAChB,QAAA,CAAU0G,CAAAA,CACV,cAAeG,CAAAA,CACf,eAAA,CAAiB5G,EACjB,QAAA,CAAWwG,CAAAA,EAAQ,CACbP,CAAAA,EAAY,CAACO,GACjBE,CAAAA,CAASF,CAAG,EACd,CAAA,CACF,CAAA,CAAA,CACF,GACF,CAEJ","file":"chunk-DXI32G2S.js","sourcesContent":["import * as React from 'react';\r\n\r\nimport {\r\n Tooltip as TooltipPrimitive,\r\n TooltipTrigger as TooltipTriggerPrimitive,\r\n TooltipPortal as TooltipPortalPrimitive,\r\n TooltipPositioner as TooltipPositionerPrimitive,\r\n TooltipPopup as TooltipPopupPrimitive,\r\n TooltipArrow as TooltipArrowPrimitive,\r\n type TooltipProps as TooltipPrimitiveProps,\r\n type TooltipTriggerProps as TooltipTriggerPrimitiveProps,\r\n type TooltipPortalProps as TooltipPortalPrimitiveProps,\r\n type TooltipPositionerProps as TooltipPositionerPrimitiveProps,\r\n type TooltipPopupProps as TooltipPopupPrimitiveProps,\r\n type TooltipArrowProps as TooltipArrowPrimitiveProps,\r\n} from '../primitives/tooltip';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype TooltipProps = TooltipPrimitiveProps;\r\n\r\nfunction Tooltip(props: TooltipProps) {\r\n return <TooltipPrimitive {...props} />;\r\n}\r\n\r\ntype TooltipTriggerProps = TooltipTriggerPrimitiveProps;\r\n\r\nfunction TooltipTrigger(props: TooltipTriggerProps) {\r\n return <TooltipTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype TooltipPortalProps = TooltipPortalPrimitiveProps;\r\n\r\nfunction TooltipPortal(props: TooltipPortalProps) {\r\n return <TooltipPortalPrimitive {...props} />;\r\n}\r\n\r\ntype TooltipPositionerProps = TooltipPositionerPrimitiveProps;\r\n\r\nfunction TooltipPositioner({ sideOffset = 8, ...props }: TooltipPositionerProps) {\r\n return <TooltipPositionerPrimitive sideOffset={sideOffset} {...props} />;\r\n}\r\n\r\ntype TooltipPopupProps = TooltipPopupPrimitiveProps & {\r\n withArrow?: boolean;\r\n};\r\n\r\nfunction TooltipPopup({\r\n className,\r\n children,\r\n withArrow = true,\r\n ...props\r\n}: TooltipPopupProps) {\r\n return (\r\n <TooltipPopupPrimitive\r\n className={cn(\r\n 'z-50 w-fit text-balance rounded-xp-tooltip bg-bg-primary-solid px-xp-lg py-xp-md text-body-regular-3 text-text-white',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {withArrow && (\r\n <TooltipArrowPrimitive className=\"z-50 size-2.5 rotate-45 rounded-xp-card-base-xxs bg-bg-primary-solid fill-primary data-[side=bottom]:-top-[5px] data-[side=top]:-bottom-[5px] data-[side=right]:-left-[5px] data-[side=left]:-right-[5px]\" />\r\n )}\r\n </TooltipPopupPrimitive>\r\n );\r\n}\r\n\r\nexport {\r\n Tooltip,\r\n TooltipTrigger,\r\n TooltipPortal,\r\n TooltipPositioner,\r\n TooltipPopup,\r\n type TooltipProps,\r\n type TooltipTriggerProps,\r\n type TooltipPortalProps,\r\n type TooltipPositionerProps,\r\n type TooltipPopupProps,\r\n};\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { differenceInCalendarDays } from \"date-fns\"\r\nimport {\r\n ChevronLeft,\r\n ChevronLeftIcon,\r\n ChevronRight,\r\n ChevronRightIcon,\r\n} from \"lucide-react\"\r\nimport {\r\n type DateRange,\r\n DayButton,\r\n DayPicker,\r\n type DayPickerProps,\r\n labelNext,\r\n labelPrevious,\r\n useDayPicker,\r\n} from \"react-day-picker\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\n\r\nimport { Button, buttonVariants } from \"./button\"\r\n\r\nexport type CalendarProps = DayPickerProps & {\r\n yearRange?: number\r\n showViewSwitcher?: boolean\r\n navView?: NavView\r\n defaultNavView?: NavView\r\n onNavViewChange?: (navView: NavView) => void\r\n minNavView?: NavView\r\n monthsClassName?: string\r\n monthCaptionClassName?: string\r\n weekdaysClassName?: string\r\n weekdayClassName?: string\r\n monthClassName?: string\r\n captionClassName?: string\r\n captionLabelClassName?: string\r\n buttonNextClassName?: string\r\n buttonPreviousClassName?: string\r\n navClassName?: string\r\n monthGridClassName?: string\r\n weekClassName?: string\r\n dayClassName?: string\r\n dayButtonClassName?: string\r\n rangeStartClassName?: string\r\n rangeEndClassName?: string\r\n selectedClassName?: string\r\n todayClassName?: string\r\n outsideClassName?: string\r\n disabledClassName?: string\r\n rangeMiddleClassName?: string\r\n hiddenClassName?: string\r\n}\r\n\r\nexport type NavView = \"days\" | \"months\" | \"years\"\r\n\r\nfunction Calendar({\r\n className,\r\n showOutsideDays = true,\r\n showViewSwitcher = true,\r\n yearRange = 12,\r\n numberOfMonths,\r\n components,\r\n navView: navViewProp,\r\n defaultNavView,\r\n onNavViewChange,\r\n minNavView = \"days\",\r\n weekStartsOn = 0,\r\n ...props\r\n}: CalendarProps) {\r\n const [navView, setNavView] = useControlledState({\r\n value: navViewProp,\r\n defaultValue: defaultNavView ?? \"days\",\r\n onChange: onNavViewChange,\r\n })\r\n\r\n React.useEffect(() => {\r\n if (minNavView === \"months\") setNavView(\"months\")\r\n if (minNavView === \"years\") setNavView(\"years\")\r\n }, [minNavView, setNavView])\r\n\r\n const [displayMonths, setDisplayMonths] = React.useState<{ year: number }>({\r\n year: new Date().getFullYear(),\r\n })\r\n\r\n const [displayYears, setDisplayYears] = React.useState<{ from: number; to: number }>(\r\n React.useMemo(() => {\r\n const currentYear = new Date().getFullYear()\r\n return {\r\n from: currentYear - Math.floor(yearRange / 2 - 1),\r\n to: currentYear + Math.ceil(yearRange / 2),\r\n }\r\n }, [yearRange]),\r\n )\r\n\r\n const { onNextClick, onPrevClick, startMonth, endMonth } = props\r\n\r\n const columnsDisplayed = navView === \"years\" || navView === \"months\" ? 1 : numberOfMonths\r\n\r\n const _monthsClassName = cn(\"relative flex [&>div:not(:last-of-type)]:mr-3\", props.monthsClassName)\r\n const _monthCaptionClassName = cn(\"relative flex items-center justify-center\", props.monthCaptionClassName)\r\n const _weekdaysClassName = cn(\"flex flex-row\", props.weekdaysClassName)\r\n const _weekdayClassName = cn(\"size-9 first:text-text-error-primary text-label-semibold-3 text-text-primary flex items-center justify-center\", props.weekdayClassName)\r\n const _monthClassName = cn(\"flex flex-col gap-2\", props.monthClassName)\r\n const _captionClassName = cn(\"relative flex items-center justify-center pt-xp-xs\", props.captionClassName)\r\n const _captionLabelClassName = cn(\"truncate text-body-regular-3 font-medium\", props.captionLabelClassName)\r\n const buttonNavClassName = buttonVariants({\r\n variant: \"secondary-accent\",\r\n className: \"absolute h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\r\n })\r\n const _buttonNextClassName = cn(buttonNavClassName, \"right-0\", props.buttonNextClassName)\r\n const _buttonPreviousClassName = cn(buttonNavClassName, \"left-0\", props.buttonPreviousClassName)\r\n const _navClassName = cn(\"flex items-start\", props.navClassName)\r\n const _monthGridClassName = cn(\"flex flex-col p-3 bg-bg-primary text-text-primary rounded-lg\", props.monthGridClassName)\r\n const _weekClassName = cn(\"flex w-max items-start\", props.weekClassName)\r\n const _dayClassName = cn(\"flex size-9 flex-1 items-center justify-center p-0 text-label-semibold-3\", props.dayClassName)\r\n const _dayButtonClassName = cn(\r\n buttonVariants({ variant: null, size: \"sm\" }),\r\n \"p-0\",\r\n props.dayButtonClassName,\r\n )\r\n const _dayButtonSelectedClassName = \"[&>button]:bg-gradient-buttons-gradient-blue [&>button]:text-fg-white\"\r\n const _rangeStartClassName = cn(\"day-range-start [&:not(.day-range-end)>button]:rounded-e-none\", props.rangeStartClassName)\r\n const _rangeEndClassName = cn(\"day-range-end [&:not(.day-range-start)>button]:rounded-s-none\", props.rangeEndClassName)\r\n const _rangeMiddleClassName = cn(\r\n \"[&>button]:bg-none [&>button]:bg-bg-primary-hover [&>button]:text-text-primary [&>button]:rounded-none [&[aria-selected=true][data-today=true]>button]:after:bg-utility-brand-500 [&[aria-selected=true][data-today=true]>button]:after:ring-utility-brand-100\",\r\n props.rangeMiddleClassName,\r\n )\r\n const _todayClassName = cn(\r\n \" [&>button]:relative\",\r\n \"[&>button]:after:content-[''] [&>button]:after:absolute [&>button]:after:bottom-1\",\r\n \"[&>button]:after:left-1/2 [&>button]:after:-translate-x-1/2\",\r\n \"[&>button]:after:size-1 [&>button]:after:rounded-full [&>button]:after:ring-2 [&>button]:after:ring-utility-brand-100 [&>button]:after:bg-utility-brand-500\",\r\n \"[&[aria-selected=true]>button]:after:bg-fg-white [&[aria-selected=true]>button]:after:ring-alpha-alpha-white-30\",\r\n props.todayClassName,\r\n )\r\n const _outsideClassName = cn(\"opacity-50\", props.outsideClassName)\r\n const _disabledClassName = cn(\"opacity-50\", props.disabledClassName)\r\n const _hiddenClassName = cn(\"invisible flex-1\", props.hiddenClassName)\r\n\r\n return (\r\n <DayPicker\r\n className={cn(\"p-xp-xl rounded-xl bg-bg-tertiary h-max\", className)}\r\n classNames={{\r\n months: _monthsClassName,\r\n month_caption: _monthCaptionClassName,\r\n weekdays: _weekdaysClassName,\r\n weekday: _weekdayClassName,\r\n month: _monthClassName,\r\n caption: _captionClassName,\r\n caption_label: _captionLabelClassName,\r\n button_next: _buttonNextClassName,\r\n button_previous: _buttonPreviousClassName,\r\n nav: _navClassName,\r\n month_grid: _monthGridClassName,\r\n week: _weekClassName,\r\n day: _dayClassName,\r\n day_button: _dayButtonClassName,\r\n selected: _dayButtonSelectedClassName,\r\n range_start: _rangeStartClassName,\r\n range_middle: _rangeMiddleClassName,\r\n range_end: _rangeEndClassName,\r\n today: _todayClassName,\r\n outside: _outsideClassName,\r\n disabled: _disabledClassName,\r\n hidden: _hiddenClassName,\r\n }}\r\n components={{\r\n Chevron: ({ orientation }) => {\r\n const Icon = orientation === \"left\" ? ChevronLeftIcon : ChevronRightIcon\r\n return <Icon className=\"h-4 w-4\" />\r\n },\r\n Nav: ({ className: navClassName }) => (\r\n <Nav\r\n className={navClassName}\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setDisplayYears={setDisplayYears}\r\n startMonth={startMonth}\r\n onNextClick={onNextClick}\r\n onPrevClick={onPrevClick}\r\n />\r\n ),\r\n CaptionLabel: (clProps) => (\r\n <CaptionLabel\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n navView={navView}\r\n setNavView={setNavView}\r\n showViewSwitcher={showViewSwitcher}\r\n {...clProps}\r\n />\r\n ),\r\n DayButton: (dayProps) => (\r\n <DayButton\r\n data-icon\r\n {...dayProps}\r\n />\r\n ),\r\n MonthGrid: ({ className: mgClassName, children, ...mgProps }) => (\r\n <CalendarGrid\r\n className={mgClassName}\r\n displayMonths={displayMonths}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...mgProps}\r\n >\r\n {children}\r\n </CalendarGrid>\r\n ),\r\n ...components,\r\n }}\r\n numberOfMonths={columnsDisplayed}\r\n showOutsideDays={showOutsideDays}\r\n weekStartsOn={weekStartsOn}\r\n {...props}\r\n />\r\n )\r\n}\r\nCalendar.displayName = \"Calendar\"\r\n\r\nfunction Nav({\r\n className,\r\n navView,\r\n startMonth,\r\n endMonth,\r\n displayYears,\r\n displayMonths,\r\n setDisplayYears,\r\n setDisplayMonths,\r\n onPrevClick,\r\n onNextClick,\r\n}: {\r\n className?: string\r\n navView: NavView\r\n startMonth?: Date\r\n endMonth?: Date\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n setDisplayYears: React.Dispatch<React.SetStateAction<{ from: number; to: number }>>\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n onPrevClick?: (date: Date) => void\r\n onNextClick?: (date: Date) => void\r\n}) {\r\n const { nextMonth, previousMonth, goToMonth } = useDayPicker()\r\n\r\n const isPreviousDisabled = (() => {\r\n if (navView === \"years\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayYears.from - 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayMonths.year - 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayMonths.year - 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n return !previousMonth\r\n })()\r\n\r\n const isNextDisabled = (() => {\r\n if (navView === \"years\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayYears.to + 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n (startMonth && differenceInCalendarDays(new Date(displayMonths.year + 1, 0, 1), startMonth) < 0) ||\r\n (endMonth && differenceInCalendarDays(new Date(displayMonths.year + 1, 0, 1), endMonth) > 0)\r\n )\r\n }\r\n return !nextMonth\r\n })()\r\n\r\n const handlePreviousClick = React.useCallback(() => {\r\n if (!previousMonth) return\r\n if (navView === \"years\") {\r\n setDisplayYears((prev) => ({\r\n from: prev.from - (prev.to - prev.from + 1),\r\n to: prev.to - (prev.to - prev.from + 1),\r\n }))\r\n onPrevClick?.(new Date(displayYears.from - (displayYears.to - displayYears.from), 0, 1))\r\n return\r\n }\r\n if (navView === \"months\") {\r\n setDisplayMonths((prev) => ({ year: prev.year - 1 }))\r\n onPrevClick?.(new Date(displayMonths.year - 1, 0, 1))\r\n return\r\n }\r\n goToMonth(previousMonth)\r\n onPrevClick?.(previousMonth)\r\n }, [previousMonth, goToMonth, displayYears.from, displayYears.to, displayMonths.year, navView, onPrevClick, setDisplayYears, setDisplayMonths])\r\n\r\n const handleNextClick = React.useCallback(() => {\r\n if (!nextMonth) return\r\n if (navView === \"years\") {\r\n setDisplayYears((prev) => ({\r\n from: prev.from + (prev.to - prev.from + 1),\r\n to: prev.to + (prev.to - prev.from + 1),\r\n }))\r\n onNextClick?.(new Date(displayYears.from + (displayYears.to - displayYears.from), 0, 1))\r\n return\r\n }\r\n if (navView === \"months\") {\r\n setDisplayMonths((prev) => ({ year: prev.year + 1 }))\r\n onNextClick?.(new Date(displayMonths.year + 1, 0, 1))\r\n return\r\n }\r\n goToMonth(nextMonth)\r\n onNextClick?.(nextMonth)\r\n }, [goToMonth, nextMonth, displayYears.from, displayYears.to, displayMonths.year, navView, onNextClick, setDisplayYears, setDisplayMonths])\r\n\r\n return (\r\n <nav className={cn(\"flex items-center\", className)}>\r\n <Button\r\n aria-label={\r\n navView === \"years\"\r\n ? `Go to the previous ${displayYears.to - displayYears.from + 1} years`\r\n : navView === \"months\"\r\n ? \"Go to the previous year\"\r\n : labelPrevious(previousMonth)\r\n }\r\n className=\"absolute left-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10\"\r\n disabled={isPreviousDisabled}\r\n size=\"sm\"\r\n icon\r\n tabIndex={isPreviousDisabled ? undefined : -1}\r\n type=\"button\"\r\n variant={null}\r\n onClick={handlePreviousClick}\r\n >\r\n <ChevronLeft />\r\n </Button>\r\n\r\n <Button\r\n aria-label={\r\n navView === \"years\"\r\n ? `Go to the next ${displayYears.to - displayYears.from + 1} years`\r\n : navView === \"months\"\r\n ? \"Go to the next year\"\r\n : labelNext(nextMonth)\r\n }\r\n className=\"absolute right-3 top-2.5 data-[icon]:size-4 [&_svg]:size-4 px-0 z-10\"\r\n disabled={isNextDisabled}\r\n size=\"sm\"\r\n icon\r\n tabIndex={isNextDisabled ? undefined : -1}\r\n type=\"button\"\r\n variant={null}\r\n onClick={handleNextClick}\r\n >\r\n <ChevronRight />\r\n </Button>\r\n </nav>\r\n )\r\n}\r\n\r\nfunction CaptionLabel({\r\n children,\r\n showViewSwitcher,\r\n navView,\r\n setNavView,\r\n displayYears,\r\n displayMonths,\r\n ...props\r\n}: {\r\n showViewSwitcher?: boolean\r\n navView: NavView\r\n setNavView: (navView: NavView) => void\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n} & React.ComponentProps<\"span\">) {\r\n if (!showViewSwitcher) return <span {...props}>{children}</span>\r\n return (\r\n <Button\r\n disabled={navView === \"years\"}\r\n size=\"sm\"\r\n type=\"button\"\r\n variant={null}\r\n onClick={() => {\r\n if (navView === \"days\") setNavView(\"months\")\r\n else if (navView === \"months\") setNavView(\"years\")\r\n }}\r\n >\r\n {navView === \"days\"\r\n ? children\r\n : navView === \"months\"\r\n ? displayMonths.year\r\n : displayYears.from + \" - \" + displayYears.to}\r\n </Button>\r\n )\r\n}\r\n\r\nfunction CalendarGrid({\r\n className,\r\n children,\r\n displayYears,\r\n displayMonths,\r\n setDisplayMonths,\r\n startMonth,\r\n endMonth,\r\n navView,\r\n setNavView,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n children: React.ReactNode\r\n displayYears: { from: number; to: number }\r\n displayMonths: { year: number }\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n startMonth?: Date\r\n endMonth?: Date\r\n navView: NavView\r\n setNavView: (navView: NavView) => void\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n if (navView === \"years\") {\r\n return (\r\n <YearGrid\r\n className={className}\r\n displayYears={displayYears}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setDisplayMonths={setDisplayMonths}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...props}\r\n />\r\n )\r\n }\r\n if (navView === \"months\") {\r\n return (\r\n <MonthGrid\r\n className={className}\r\n displayMonths={displayMonths}\r\n endMonth={endMonth}\r\n minNavView={minNavView}\r\n navView={navView}\r\n setNavView={setNavView}\r\n startMonth={startMonth}\r\n {...props}\r\n />\r\n )\r\n }\r\n return (\r\n <table className={cn(\"flex-1\", className)} {...props}>\r\n {children}\r\n </table>\r\n )\r\n}\r\n\r\nfunction isYearSelected(selected: unknown, year: number): boolean {\r\n if (!selected) return false\r\n if (Array.isArray(selected)) return (selected as Date[]).some((d) => d.getFullYear() === year)\r\n if (typeof selected === \"object\" && \"from\" in selected) {\r\n const range = selected as DateRange\r\n if (range.from && range.to) return year >= range.from.getFullYear() && year <= range.to.getFullYear()\r\n if (range.from) return range.from.getFullYear() === year\r\n return false\r\n }\r\n return (selected as Date).getFullYear() === year\r\n}\r\n\r\nfunction isMonthSelected(selected: unknown, year: number, monthIdx: number): boolean {\r\n if (!selected) return false\r\n if (Array.isArray(selected)) {\r\n return (selected as Date[]).some((d) => d.getMonth() === monthIdx && d.getFullYear() === year)\r\n }\r\n if (typeof selected === \"object\" && \"from\" in selected) {\r\n const range = selected as DateRange\r\n if (range.from && range.to) {\r\n const fromMonth = range.from.getMonth(), fromYear = range.from.getFullYear()\r\n const toMonth = range.to.getMonth(), toYear = range.to.getFullYear()\r\n if (year === fromYear && year === toYear) return monthIdx >= fromMonth && monthIdx <= toMonth\r\n if (year === fromYear) return monthIdx >= fromMonth\r\n if (year === toYear) return monthIdx <= toMonth\r\n return year > fromYear && year < toYear\r\n }\r\n if (range.from) return range.from.getMonth() === monthIdx && range.from.getFullYear() === year\r\n return false\r\n }\r\n return (selected as Date).getMonth() === monthIdx && (selected as Date).getFullYear() === year\r\n}\r\n\r\nfunction YearGrid<T extends DayPickerProps>({\r\n className,\r\n displayYears,\r\n startMonth,\r\n endMonth,\r\n setNavView,\r\n navView,\r\n setDisplayMonths,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n displayYears: { from: number; to: number }\r\n startMonth?: Date\r\n endMonth?: Date\r\n setNavView: (navView: NavView) => void\r\n navView: NavView\r\n setDisplayMonths: React.Dispatch<React.SetStateAction<{ year: number }>>\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n const { selected, select } = useDayPicker<T>()\r\n const currentYear = new Date().getFullYear()\r\n const totalYears = displayYears.to - displayYears.from + 1\r\n\r\n const handleClick = (e: React.MouseEvent, year: number) => {\r\n if (minNavView === \"years\") {\r\n select?.(new Date(year, 0, 1), {}, e)\r\n } else {\r\n setNavView(\"months\")\r\n setDisplayMonths({ year })\r\n }\r\n }\r\n\r\n return (\r\n <table className={cn(\"w-[312px]\", className)} {...props}>\r\n <tbody>\r\n <tr className=\"grid grid-cols-3 gap-xp-md\">\r\n {Array.from({ length: totalYears }, (_, i) => {\r\n const year = displayYears.from + i\r\n const yearStart = new Date(year, 0, 1)\r\n const yearEnd = new Date(year, 11, 31)\r\n const isBeforeStart = startMonth && differenceInCalendarDays(yearEnd, startMonth) < 0\r\n const isAfterEnd = endMonth && differenceInCalendarDays(yearStart, endMonth) > 0\r\n const isDisabled = isBeforeStart || isAfterEnd\r\n const isCurrentYear = year === currentYear\r\n const isSelected = isYearSelected(selected, year)\r\n return (\r\n <td key={year}>\r\n <Button\r\n className=\"w-full\"\r\n disabled={navView === \"years\" ? isDisabled : undefined}\r\n type=\"button\"\r\n variant={isSelected ? \"primary\" : \"tertiary-accent\"}\r\n onClick={(e) => handleClick(e, year)}\r\n >\r\n {year}\r\n </Button>\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nfunction MonthGrid<T extends DayPickerProps>({\r\n className,\r\n displayMonths,\r\n startMonth,\r\n endMonth,\r\n setNavView,\r\n navView,\r\n minNavView = \"days\",\r\n ...props\r\n}: {\r\n className?: string\r\n displayMonths: { year: number }\r\n startMonth?: Date\r\n endMonth?: Date\r\n setNavView: (navView: NavView) => void\r\n navView: NavView\r\n minNavView?: NavView\r\n} & React.ComponentProps<\"table\">) {\r\n const { goToMonth, selected, select } = useDayPicker<T>()\r\n const months = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\r\n const year = displayMonths.year\r\n\r\n const handleClick = (e: React.MouseEvent, i: number) => {\r\n if (minNavView === \"months\") {\r\n select?.(new Date(year, i, 1), {}, e)\r\n } else {\r\n setNavView(\"days\")\r\n goToMonth(new Date(year, i))\r\n }\r\n }\r\n\r\n return (\r\n <table className={cn(\"w-[312px]\", className)} {...props}>\r\n <tbody>\r\n <tr className=\"grid grid-cols-3 gap-xp-md\">\r\n {months.map((month, i) => {\r\n const isBefore = startMonth && differenceInCalendarDays(new Date(year, i, 31), startMonth) < 0\r\n const isAfter = endMonth && differenceInCalendarDays(new Date(year, i, 1), endMonth) > 0\r\n const isDisabled = isBefore || isAfter\r\n const isCurrentMonth = year === new Date().getFullYear() && i === new Date().getMonth()\r\n const isSelected = isMonthSelected(selected, year, i)\r\n return (\r\n <td key={i}>\r\n <Button\r\n className=\"w-full\"\r\n disabled={navView === \"months\" ? isDisabled : undefined}\r\n type=\"button\"\r\n variant={isSelected ? \"primary\" : \"tertiary-accent\"}\r\n onClick={(e) => handleClick(e, i)}\r\n >\r\n {month.substring(0, 3)}\r\n </Button>\r\n </td>\r\n )\r\n })}\r\n </tr>\r\n </tbody>\r\n </table>\r\n )\r\n}\r\n\r\nexport { Calendar }\r\n","\"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","\"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\nimport { Badge, BadgeButton } from \"./badge\"\r\n\r\nexport type DateMultiplePickerProps = {\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 chipDateFormat?: string\r\n /** Maximum number of chips to show outside before collapsing the rest into a \"+N\" chip. */\r\n maxVisible?: number\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 DateMultiplePicker({\r\n className,\r\n value: valueProp,\r\n onValueChange,\r\n defaultValue,\r\n required,\r\n disabled,\r\n placeholder = \"Pick dates\",\r\n disabledDates,\r\n dateFormat = \"LLL dd, y\",\r\n chipDateFormat = \"d MMM\",\r\n maxVisible,\r\n ...props\r\n}: DateMultiplePickerProps) {\r\n const handleValueChange = React.useCallback(\r\n (val: Date[] | undefined) => {\r\n if (required) {\r\n if (val?.length) 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?.[0] || new Date())\r\n const [isOpen, setIsOpen] = React.useState(false)\r\n\r\n const hasValue = !!value?.length\r\n\r\n const sortedValue = React.useMemo(() => {\r\n if (!value) return []\r\n return [...value].sort((a, b) => a.getTime() - b.getTime())\r\n }, [value])\r\n\r\n const handleRemoveDate = React.useCallback(\r\n (dateToRemove: Date) => {\r\n const newValue = value?.filter((d) => d.getTime() !== dateToRemove.getTime())\r\n if (required && !newValue?.length) return\r\n setValue(newValue)\r\n },\r\n [value, setValue, required],\r\n )\r\n\r\n const visibleChips = maxVisible !== undefined ? sortedValue.slice(0, maxVisible) : sortedValue\r\n const overflowCount = maxVisible !== undefined ? sortedValue.length - maxVisible : 0\r\n\r\n return (\r\n <div className=\"flex flex-col gap-2 w-full\">\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 {hasValue\r\n ? `${value.length} ${value.length === 1 ? \"date\" : \"dates\"} selected`\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=\"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=\"multiple\"\r\n month={currentMonth}\r\n selected={value}\r\n onMonthChange={setCurrentMonth}\r\n onSelect={(val) => {\r\n if (required && !val?.length) return\r\n setValue(val)\r\n }}\r\n {...props}\r\n />\r\n </PopoverPopup>\r\n </Popover>\r\n\r\n {hasValue && (\r\n <div className=\"flex flex-wrap gap-2\">\r\n {visibleChips.map((d) => (\r\n <Badge\r\n key={d.toISOString()}\r\n color=\"brand\"\r\n size=\"lg\"\r\n className=\"ring-1 ring-border-brand text-body-medium-3\"\r\n >\r\n {format(d, chipDateFormat)}\r\n {!disabled && (\r\n <BadgeButton\r\n className=\"text-fg-quaternary\"\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n handleRemoveDate(d)\r\n }}\r\n />\r\n )}\r\n </Badge>\r\n ))}\r\n {overflowCount > 0 && (\r\n <Badge\r\n color=\"brand\"\r\n size=\"lg\"\r\n className=\"ring-1 ring-border-brand text-body-medium-3\"\r\n >\r\n +{overflowCount}\r\n </Badge>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport { DateMultiplePicker }","\"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"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a}from'./chunk-V5WX4TSN.js';import {a as a$1}from'./chunk-EY3W3WZX.js';import*as i from'react';import {Slot}from'@radix-ui/react-slot';import {cva}from'class-variance-authority';import {cn}from'@xploreu/lib/cn';import {jsxs,jsx}from'react/jsx-runtime';var N=cva(cn("peer/input text-text-primary placeholder:text-text-placeholder data-[placeholder]:text-text-placeholder border-border-primary flex w-full min-w-0 rounded-xp-card-base border bg-bg-primary px-3 text-body-regular-2 transition-[color,box-shadow,border] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-bg-disabled disabled:text-text-disabled","focus-visible:border-border-brand focus-visible:ring-2 focus-visible:ring-border-brand/20","aria-invalid:border-content-on-error-subtle-action aria-invalid:ring-2 aria-invalid:ring-content-on-error-subtle-action/20"),{variants:{size:{xs:"h-9",sm:"h-10",md:"h-11"},variant:{password:void 0},withStartContent:{true:"pl-9.5"},withEndContent:{true:"pr-9.5"}},defaultVariants:{size:"md"}}),o=cva("absolute top-1/2 -translate-y-1/2 size-4.5 text-fg-quaternary",{variants:{side:{start:"left-3",end:"right-3"}}});function V({className:m,wrapperClassName:u,type:w,startContent:r,endContent:s,variant:a$2,size:f,...h}){let[d,x]=i.useState(false),l=!!r||!!s||a$2==="password";return jsxs(l?"div":i.Fragment,{...l?{className:cn("relative",u)}:{},children:[jsx("input",{className:cn(N({withStartContent:!!r,withEndContent:!!s||a$2==="password",size:f}),m),"data-slot":"input",type:a$2==="password"?d?"text":"password":w,...h}),r&&jsx(Slot,{className:cn(o({side:"start"})),children:r}),s&&a$2!=="password"&&jsx(Slot,{className:cn(o({side:"end"})),children:s}),a$2==="password"&&jsx(Slot,{"aria-label":d?"Hide password":"Show password",className:"cursor-pointer select-none","data-slot":"toggle-password",onClick:()=>x(g=>!g),children:d?jsx(a,{className:cn(o({side:"end"}))}):jsx(a$1,{className:cn(o({side:"end"}))})})]})}export{N as a,V as b};//# sourceMappingURL=chunk-JH6RZ3QH.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-JH6RZ3QH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/input.tsx"],"names":["inputVariants","cva","cn","inputIconVariants","Input","className","wrapperClassName","type","startContent","endContent","variant","size","props","showPassword","setShowPassword","isWrapped","jsxs","jsx","Slot","prev","show_passwords_icon_default","hide_passwords_icon_default"],"mappings":"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","file":"chunk-JH6RZ3QH.js","sourcesContent":["\"use client\"\r\nimport * as React from \"react\"\r\n\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport { HidePasswordsIcon, ShowPasswordsIcon } from \"../icons\"\r\n\r\nconst inputVariants = cva(\r\n cn(\r\n \"peer/input text-text-primary placeholder:text-text-placeholder data-[placeholder]:text-text-placeholder border-border-primary flex w-full min-w-0 rounded-xp-card-base border bg-bg-primary px-3 text-body-regular-2 transition-[color,box-shadow,border] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-bg-disabled disabled:text-text-disabled\",\r\n \"focus-visible:border-border-brand focus-visible:ring-2 focus-visible:ring-border-brand/20\",\r\n \"aria-invalid:border-content-on-error-subtle-action aria-invalid:ring-2 aria-invalid:ring-content-on-error-subtle-action/20\"\r\n ),\r\n {\r\n variants: {\r\n size: {\r\n xs: \"h-9\",\r\n sm: \"h-10\",\r\n md: \"h-11\",\r\n },\r\n variant: {\r\n password: undefined,\r\n },\r\n withStartContent: {\r\n true: \"pl-9.5\",\r\n },\r\n withEndContent: {\r\n true: \"pr-9.5\",\r\n },\r\n },\r\n defaultVariants: {\r\n size: \"md\",\r\n }\r\n }\r\n)\r\n\r\nconst inputIconVariants = cva(\r\n \"absolute top-1/2 -translate-y-1/2 size-4.5 text-fg-quaternary\",\r\n {\r\n variants: {\r\n side: {\r\n start: \"left-3\",\r\n end: \"right-3\",\r\n },\r\n },\r\n }\r\n)\r\n\r\nfunction Input({\r\n className,\r\n wrapperClassName,\r\n type,\r\n startContent,\r\n endContent,\r\n variant,\r\n size,\r\n ...props\r\n}: Omit<React.ComponentProps<\"input\">, \"size\"> &\r\n VariantProps<typeof inputVariants> & {\r\n startContent?: React.ReactNode\r\n endContent?: React.ReactNode\r\n wrapperClassName?: string\r\n }\r\n) {\r\n const [showPassword, setShowPassword] = React.useState(false)\r\n\r\n const isWrapped = !!startContent || !!endContent || variant === \"password\"\r\n\r\n const Comp = isWrapped ? \"div\" : React.Fragment\r\n\r\n return (\r\n <Comp {...(isWrapped ? { className: cn(\"relative\", wrapperClassName) } : {})}>\r\n <input\r\n className={cn(inputVariants({ withStartContent: !!startContent, withEndContent: (!!endContent || variant === \"password\"), size }), className)}\r\n data-slot=\"input\"\r\n type={variant === \"password\" ? (showPassword ? \"text\" : \"password\") : type}\r\n {...props}\r\n />\r\n {startContent && (\r\n <Slot className={cn(inputIconVariants({ side: \"start\" }))}>\r\n {startContent}\r\n </Slot>\r\n )}\r\n {(endContent && variant !== \"password\") && (\r\n <Slot className={cn(inputIconVariants({ side: \"end\" }))}>\r\n {endContent}\r\n </Slot>\r\n )}\r\n {variant === \"password\" && (\r\n <Slot\r\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n className=\"cursor-pointer select-none\"\r\n data-slot=\"toggle-password\"\r\n onClick={() => setShowPassword((prev) => !prev)}\r\n >\r\n {showPassword ? (\r\n <ShowPasswordsIcon className={cn(inputIconVariants({ side: \"end\" }))} />\r\n ) : (\r\n <HidePasswordsIcon className={cn(inputIconVariants({ side: \"end\" }))} />\r\n )}\r\n </Slot>\r\n )}\r\n </Comp>\r\n )\r\n}\r\n\r\nexport { Input, inputVariants }\r\n\r\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {d,b,e,m,l,n,o,p,t,v,z,G}from'./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import {d,b,e,m,l,n,o,p,t,v,z,G}from'./chunk-746IQSMF.js';import {b as b$1}from'./chunk-JH6RZ3QH.js';import*as r from'react';import {cn}from'@xploreu/lib/cn';import {SearchIcon,XIcon}from'lucide-react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function j({multiple:z$1=true,inputPlaceholder:B="Search...",container:q,items:u,infiniteScroll:A,isPending:H,taggable:c=false,maxVisible:i,...m$1}){let[h,g]=useControlledState({value:m$1?.inputValue?.toString(),defaultValue:m$1?.defaultInputValue?.toString(),onChange:m$1?.onInputValueChange}),[b$2,x]=useControlledState({value:m$1?.value??[],defaultValue:m$1?.defaultValue??[],onChange:m$1?.onValueChange}),[v$1,I]=r.useState([]),d$1=r.useRef(new Set);r.useEffect(()=>{let e=new Set(b$2.map(t=>t.value));I(t=>{let l=t.filter(a=>e.has(a.value));return l.length===t.length?t:(d$1.current=new Set(l.map(a=>a.value)),l)});},[b$2]);let n$1=h?.toString().trim()??"",U=r.useMemo(()=>n$1?b$2.some(e=>e.value.toLowerCase()===n$1.toLowerCase()):false,[n$1,b$2]),p$1=r.useMemo(()=>!c||!n$1?false:!u?.some(e=>e.label.toLowerCase()===n$1.toLowerCase()),[c,n$1,u]),X=r.useMemo(()=>{let e=[...u??[],...v$1];if(p$1){let t={label:n$1,value:n$1,tag:true};return [...e,t]}return e},[u,v$1,p$1,n$1]);return jsxs(d,{...m$1,behavior:"chip-outside",multiple:true,items:c?X:u,isItemEqualToValue:(e,t)=>e.value===t.value,onValueChange:(e,t)=>{if(c){let l=e.filter(a=>a?.tag===true&&!d$1.current.has(a.value));if(l.length>0){for(let a of l)d$1.current.add(a.value);I(a=>[...a,...l]);}}x(z$1?e:[e[e.length-1]],t);},onInputValueChange:g,children:[jsxs("div",{className:"flex flex-col gap-2",children:[jsx(b,{render:jsx(b$1,{className:"h-9 text-body-regular-3 pl-9 pr-7",endContent:jsx(e,{nativeButton:false,render:jsx(XIcon,{className:"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer","data-hidden":!h,"data-slot":"combobox-clear-input",onClick:e=>{g("",{reason:"none",event:e.nativeEvent,cancel:()=>{},allowPropagation:()=>{},isCanceled:false,isPropagationAllowed:true,trigger:void 0});}})}),placeholder:B,startContent:jsx(SearchIcon,{className:"!size-4 !text-fg-tertiary-hover"}),wrapperClassName:"w-full"})}),jsx(m,{className:cn(i!==void 0&&"flex-nowrap overflow-hidden"),onMouseDown:e=>e.preventBaseUIHandler(),children:jsx(l,{children:e=>{let t=i!==void 0?e.slice(0,i):e,l=i!==void 0?e.length-i:0;return jsxs(Fragment,{children:[t?.map(a=>jsxs(n,{className:cn(i!==void 0&&"min-w-0 shrink"),children:[i!==void 0?jsx("span",{className:"truncate",children:a?.label||""}):a?.label||"",jsx(o,{})]},a?.value||"")),l>0&&jsxs(n,{className:"shrink-0",children:["+",l]})]})}})})]}),jsxs(p,{container:q,children:[jsx(t,{status:H||u===void 0?"pending":u?.length===0&&!p$1?"empty":null}),jsxs(v,{children:[u?.map(e=>jsx(z,{value:{label:e.label,value:e.value},children:jsx("div",{className:"flex items-center gap-2 w-full min-w-0",children:jsx("span",{className:"truncate",children:e.label})})},e.value)),p$1&&jsx(z,{value:{label:n$1,value:n$1,tag:true},children:jsxs("div",{className:"flex items-center gap-1.5 w-full min-w-0",children:[!U&&jsx("span",{className:"text-text-secondary",children:"Create:"}),jsx("span",{className:"font-medium text-text-primary truncate",children:n$1})]})}),jsx(G,{...A})]})]})]})}export{j as a};//# sourceMappingURL=chunk-NG3NFI2B.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-NG3NFI2B.js.map
|