@wow-two-beta/ui 0.0.56 → 0.0.58
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/actions/backToTopButton/BackToTopButton.d.ts +0 -1
- package/dist/actions/backToTopButton/index.d.ts +0 -1
- package/dist/actions/button/Button.d.ts +0 -10
- package/dist/actions/button/Button.variants.d.ts +0 -1
- package/dist/actions/button/index.d.ts +0 -1
- package/dist/actions/buttonGroup/ButtonGroup.d.ts +2 -3
- package/dist/actions/buttonGroup/index.d.ts +0 -1
- package/dist/actions/copyButton/CopyButton.d.ts +0 -1
- package/dist/actions/copyButton/index.d.ts +0 -1
- package/dist/actions/disclosureButton/DisclosureButton.d.ts +1 -2
- package/dist/actions/disclosureButton/index.d.ts +0 -1
- package/dist/actions/fab/FAB.d.ts +0 -1
- package/dist/actions/fab/FAB.variants.d.ts +0 -1
- package/dist/actions/fab/index.d.ts +0 -1
- package/dist/actions/index.d.ts +0 -1
- package/dist/actions/index.js +8 -8
- package/dist/actions/link/Link.d.ts +0 -1
- package/dist/actions/link/Link.variants.d.ts +0 -1
- package/dist/actions/link/index.d.ts +0 -1
- package/dist/actions/segmentedControl/SegmentedControl.d.ts +0 -1
- package/dist/actions/segmentedControl/index.d.ts +0 -1
- package/dist/actions/speedDial/SpeedDial.d.ts +2 -3
- package/dist/actions/speedDial/index.d.ts +0 -1
- package/dist/actions/toggleButton/ToggleButton.d.ts +1 -2
- package/dist/actions/toggleButton/ToggleButton.variants.d.ts +0 -1
- package/dist/actions/toggleButton/index.d.ts +0 -1
- package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +1 -2
- package/dist/actions/toggleButtonGroup/index.d.ts +0 -1
- package/dist/actions/toolbar/Toolbar.d.ts +0 -1
- package/dist/actions/toolbar/index.d.ts +0 -1
- package/dist/{chunk-BWWF3DDM.js → chunk-4XWLEKH2.js} +11 -5
- package/dist/chunk-4XWLEKH2.js.map +1 -0
- package/dist/{chunk-CRKW4VXA.js → chunk-577JZ2A2.js} +3 -3
- package/dist/{chunk-CRKW4VXA.js.map → chunk-577JZ2A2.js.map} +1 -1
- package/dist/{chunk-PZ5AY32C.js → chunk-DCHYNTHI.js} +2 -2
- package/dist/{chunk-PZ5AY32C.js.map → chunk-DCHYNTHI.js.map} +1 -1
- package/dist/chunk-DJJOQWOG.js +27 -0
- package/dist/chunk-DJJOQWOG.js.map +1 -0
- package/dist/{chunk-BKR7A7WH.js → chunk-EEHJHPAP.js} +126 -68
- package/dist/chunk-EEHJHPAP.js.map +1 -0
- package/dist/{chunk-O2DK3E3E.js → chunk-EJCO7AWR.js} +47 -46
- package/dist/chunk-EJCO7AWR.js.map +1 -0
- package/dist/{chunk-LLNJ3GD2.js → chunk-EX4AOJCN.js} +80 -70
- package/dist/chunk-EX4AOJCN.js.map +1 -0
- package/dist/{chunk-526AMQXZ.js → chunk-FNSC4LAL.js} +4 -4
- package/dist/{chunk-526AMQXZ.js.map → chunk-FNSC4LAL.js.map} +1 -1
- package/dist/{chunk-2HWZH6GF.js → chunk-FYG23O4O.js} +311 -35
- package/dist/chunk-FYG23O4O.js.map +1 -0
- package/dist/{chunk-5QP5D3H3.js → chunk-GSAOM2ZR.js} +134 -66
- package/dist/chunk-GSAOM2ZR.js.map +1 -0
- package/dist/{chunk-BKWLS6V2.js → chunk-HG7NX6GP.js} +853 -574
- package/dist/chunk-HG7NX6GP.js.map +1 -0
- package/dist/{chunk-RDDIOVK4.js → chunk-JYGC5SRP.js} +42 -8
- package/dist/chunk-JYGC5SRP.js.map +1 -0
- package/dist/{chunk-KDXJQNB6.js → chunk-LGTGZ3RW.js} +2 -3
- package/dist/chunk-LGTGZ3RW.js.map +1 -0
- package/dist/{chunk-IEAFEEZB.js → chunk-MTD4RTGO.js} +63 -33
- package/dist/chunk-MTD4RTGO.js.map +1 -0
- package/dist/{chunk-F227LKWK.js → chunk-MVMDDGW7.js} +4 -4
- package/dist/{chunk-F227LKWK.js.map → chunk-MVMDDGW7.js.map} +1 -1
- package/dist/{chunk-T6ZDMPHL.js → chunk-NR5DYKSJ.js} +4 -4
- package/dist/{chunk-T6ZDMPHL.js.map → chunk-NR5DYKSJ.js.map} +1 -1
- package/dist/{chunk-46BOUO7J.js → chunk-OBW7JUNL.js} +13 -13
- package/dist/chunk-OBW7JUNL.js.map +1 -0
- package/dist/{chunk-BMABNEZX.js → chunk-TTSJZEL7.js} +189 -59
- package/dist/chunk-TTSJZEL7.js.map +1 -0
- package/dist/{chunk-NUMFGKPY.js → chunk-V267IMBH.js} +136 -27
- package/dist/chunk-V267IMBH.js.map +1 -0
- package/dist/chunk-X2MYOHOB.js +40 -0
- package/dist/chunk-X2MYOHOB.js.map +1 -0
- package/dist/{chunk-VIWAIXVK.js → chunk-XDATW7NF.js} +10 -6
- package/dist/chunk-XDATW7NF.js.map +1 -0
- package/dist/{chunk-PGU27Z2H.js → chunk-Y5GS4CLT.js} +372 -243
- package/dist/chunk-Y5GS4CLT.js.map +1 -0
- package/dist/display/accordion/Accordion.d.ts +15 -12
- package/dist/display/accordion/index.d.ts +0 -1
- package/dist/display/activityFeed/ActivityFeed.d.ts +2 -3
- package/dist/display/activityFeed/index.d.ts +0 -1
- package/dist/display/animatedNumber/AnimatedNumber.d.ts +0 -1
- package/dist/display/animatedNumber/index.d.ts +0 -1
- package/dist/display/annotationMarker/AnnotationMarker.d.ts +6 -8
- package/dist/display/annotationMarker/index.d.ts +0 -1
- package/dist/display/audioPlayer/AudioPlayer.d.ts +1 -2
- package/dist/display/audioPlayer/index.d.ts +0 -1
- package/dist/display/audioWaveform/AudioWaveform.d.ts +1 -2
- package/dist/display/audioWaveform/index.d.ts +0 -1
- package/dist/display/avatar/Avatar.d.ts +1 -2
- package/dist/display/avatar/Avatar.variants.d.ts +0 -1
- package/dist/display/avatar/index.d.ts +0 -1
- package/dist/display/avatarGroup/AvatarGroup.d.ts +0 -1
- package/dist/display/avatarGroup/index.d.ts +0 -1
- package/dist/display/badge/Badge.d.ts +0 -1
- package/dist/display/badge/Badge.variants.d.ts +0 -1
- package/dist/display/badge/index.d.ts +0 -1
- package/dist/display/badgeOverlay/BadgeOverlay.d.ts +1 -2
- package/dist/display/badgeOverlay/index.d.ts +0 -1
- package/dist/display/card/Card.d.ts +0 -1
- package/dist/display/card/index.d.ts +0 -1
- package/dist/display/carousel/Carousel.d.ts +1 -2
- package/dist/display/carousel/index.d.ts +0 -1
- package/dist/display/chatBubble/ChatBubble.d.ts +2 -3
- package/dist/display/chatBubble/index.d.ts +0 -1
- package/dist/display/code/Code.d.ts +0 -1
- package/dist/display/code/Code.variants.d.ts +0 -1
- package/dist/display/code/index.d.ts +0 -1
- package/dist/display/collapsible/Collapsible.d.ts +2 -3
- package/dist/display/collapsible/index.d.ts +0 -1
- package/dist/display/commentThread/CommentThread.d.ts +1 -2
- package/dist/display/commentThread/index.d.ts +0 -1
- package/dist/display/confetti/Confetti.d.ts +2 -3
- package/dist/display/confetti/index.d.ts +0 -1
- package/dist/display/countBadge/CountBadge.d.ts +3 -5
- package/dist/display/countBadge/index.d.ts +0 -1
- package/dist/display/countUp/CountUp.d.ts +2 -3
- package/dist/display/countUp/index.d.ts +0 -1
- package/dist/display/dataGrid/DataGrid.d.ts +2 -3
- package/dist/display/dataGrid/index.d.ts +0 -1
- package/dist/display/dataTable/DataTable.d.ts +5 -6
- package/dist/display/dataTable/index.d.ts +0 -1
- package/dist/display/descriptionList/DescriptionList.d.ts +0 -1
- package/dist/display/descriptionList/index.d.ts +0 -1
- package/dist/display/diffViewer/DiffViewer.d.ts +1 -2
- package/dist/display/diffViewer/index.d.ts +0 -1
- package/dist/display/emptyState/EmptyState.d.ts +0 -1
- package/dist/display/emptyState/index.d.ts +0 -1
- package/dist/display/eventCalendar/EventCalendar.d.ts +1 -2
- package/dist/display/eventCalendar/index.d.ts +0 -1
- package/dist/display/eyebrow/Eyebrow.d.ts +0 -1
- package/dist/display/eyebrow/index.d.ts +0 -1
- package/dist/display/gantt/Gantt.d.ts +1 -2
- package/dist/display/gantt/index.d.ts +0 -1
- package/dist/display/gradientText/GradientText.d.ts +2 -3
- package/dist/display/gradientText/index.d.ts +0 -1
- package/dist/display/heading/Heading.d.ts +0 -1
- package/dist/display/heading/Heading.variants.d.ts +0 -1
- package/dist/display/heading/index.d.ts +0 -1
- package/dist/display/heatmapCalendar/HeatmapCalendar.d.ts +2 -2
- package/dist/display/heatmapCalendar/index.d.ts +0 -1
- package/dist/display/highlight/Highlight.d.ts +2 -3
- package/dist/display/highlight/index.d.ts +0 -1
- package/dist/display/image/Image.d.ts +0 -1
- package/dist/display/image/index.d.ts +0 -1
- package/dist/display/index.d.ts +0 -1
- package/dist/display/index.js +10 -10
- package/dist/display/infoRow/InfoRow.d.ts +0 -1
- package/dist/display/infoRow/index.d.ts +0 -1
- package/dist/display/kbd/Kbd.d.ts +0 -1
- package/dist/display/kbd/index.d.ts +0 -1
- package/dist/display/keyboardShortcut/KeyboardShortcut.d.ts +0 -1
- package/dist/display/keyboardShortcut/index.d.ts +0 -1
- package/dist/display/list/List.d.ts +2 -3
- package/dist/display/list/List.variants.d.ts +0 -1
- package/dist/display/list/index.d.ts +0 -1
- package/dist/display/mark/Mark.d.ts +0 -1
- package/dist/display/mark/index.d.ts +0 -1
- package/dist/display/marquee/Marquee.d.ts +1 -2
- package/dist/display/marquee/index.d.ts +0 -1
- package/dist/display/messageList/MessageList.d.ts +3 -4
- package/dist/display/messageList/index.d.ts +0 -1
- package/dist/display/metaInline/MetaInline.d.ts +0 -1
- package/dist/display/metaInline/index.d.ts +0 -1
- package/dist/display/metricChip/MetricChip.d.ts +0 -1
- package/dist/display/metricChip/index.d.ts +0 -1
- package/dist/display/nodeEditor/NodeEditor.d.ts +0 -1
- package/dist/display/nodeEditor/index.d.ts +0 -1
- package/dist/display/notificationDot/NotificationDot.d.ts +1 -2
- package/dist/display/notificationDot/index.d.ts +0 -1
- package/dist/display/pdfViewer/PDFViewer.d.ts +1 -2
- package/dist/display/pdfViewer/index.d.ts +0 -1
- package/dist/display/quote/Quote.d.ts +0 -1
- package/dist/display/quote/index.d.ts +0 -1
- package/dist/display/reactionBar/ReactionBar.d.ts +6 -7
- package/dist/display/reactionBar/index.d.ts +0 -1
- package/dist/display/scheduleView/ScheduleView.d.ts +0 -1
- package/dist/display/scheduleView/index.d.ts +0 -1
- package/dist/display/scrollReveal/ScrollReveal.d.ts +1 -2
- package/dist/display/scrollReveal/index.d.ts +0 -1
- package/dist/display/sectionHeader/SectionHeader.d.ts +1 -2
- package/dist/display/sectionHeader/index.d.ts +0 -1
- package/dist/display/separator/Separator.d.ts +2 -4
- package/dist/display/separator/index.d.ts +0 -1
- package/dist/display/snippet/Snippet.d.ts +0 -1
- package/dist/display/snippet/index.d.ts +0 -1
- package/dist/display/sparkline/Sparkline.d.ts +1 -2
- package/dist/display/sparkline/index.d.ts +0 -1
- package/dist/display/stat/Stat.d.ts +0 -1
- package/dist/display/stat/index.d.ts +0 -1
- package/dist/display/status/Status.d.ts +1 -2
- package/dist/display/status/index.d.ts +0 -1
- package/dist/display/swipeActions/SwipeActions.d.ts +1 -2
- package/dist/display/swipeActions/index.d.ts +0 -1
- package/dist/display/table/Table.d.ts +17 -6
- package/dist/display/table/index.d.ts +1 -2
- package/dist/display/tabs/Tabs.d.ts +1 -2
- package/dist/display/tabs/index.d.ts +0 -1
- package/dist/display/tag/Tag.d.ts +0 -1
- package/dist/display/tag/Tag.variants.d.ts +0 -1
- package/dist/display/tag/index.d.ts +0 -1
- package/dist/display/text/Text.d.ts +0 -1
- package/dist/display/text/Text.variants.d.ts +14 -15
- package/dist/display/text/index.d.ts +0 -1
- package/dist/display/threadView/ThreadView.d.ts +2 -3
- package/dist/display/threadView/index.d.ts +0 -1
- package/dist/display/tilt/Tilt.d.ts +2 -4
- package/dist/display/tilt/index.d.ts +0 -1
- package/dist/display/timeline/Timeline.d.ts +0 -1
- package/dist/display/timeline/index.d.ts +0 -1
- package/dist/display/tooltip/Tooltip.d.ts +9 -4
- package/dist/display/tooltip/index.d.ts +0 -1
- package/dist/display/tree/Tree.d.ts +2 -3
- package/dist/display/tree/index.d.ts +0 -1
- package/dist/display/typewriter/Typewriter.d.ts +2 -3
- package/dist/display/typewriter/index.d.ts +0 -1
- package/dist/display/videoPlayer/VideoPlayer.d.ts +0 -1
- package/dist/display/videoPlayer/index.d.ts +0 -1
- package/dist/feedback/alert/Alert.d.ts +0 -1
- package/dist/feedback/alert/index.d.ts +0 -1
- package/dist/feedback/alertSimple/AlertSimple.d.ts +0 -1
- package/dist/feedback/alertSimple/AlertSimple.variants.d.ts +0 -1
- package/dist/feedback/alertSimple/index.d.ts +0 -1
- package/dist/feedback/banner/Banner.d.ts +0 -1
- package/dist/feedback/banner/index.d.ts +0 -1
- package/dist/feedback/bannerSimple/BannerSimple.d.ts +0 -1
- package/dist/feedback/bannerSimple/BannerSimple.variants.d.ts +0 -1
- package/dist/feedback/bannerSimple/index.d.ts +0 -1
- package/dist/feedback/callout/Callout.d.ts +0 -1
- package/dist/feedback/callout/index.d.ts +0 -1
- package/dist/feedback/index.d.ts +0 -1
- package/dist/feedback/index.js +10 -10
- package/dist/feedback/inlineSpinner/InlineSpinner.d.ts +0 -1
- package/dist/feedback/inlineSpinner/index.d.ts +0 -1
- package/dist/feedback/liveCursor/LiveCursor.d.ts +4 -7
- package/dist/feedback/liveCursor/index.d.ts +0 -1
- package/dist/feedback/loadingOverlay/LoadingOverlay.d.ts +5 -7
- package/dist/feedback/loadingOverlay/index.d.ts +0 -1
- package/dist/feedback/loadingState/LoadingState.d.ts +0 -1
- package/dist/feedback/loadingState/index.d.ts +0 -1
- package/dist/feedback/meterBar/MeterBar.d.ts +0 -1
- package/dist/feedback/meterBar/index.d.ts +0 -1
- package/dist/feedback/notificationCenter/NotificationCenter.d.ts +1 -2
- package/dist/feedback/notificationCenter/index.d.ts +0 -1
- package/dist/feedback/onboardingChecklist/OnboardingChecklist.d.ts +3 -4
- package/dist/feedback/onboardingChecklist/index.d.ts +0 -1
- package/dist/feedback/presenceIndicator/PresenceIndicator.d.ts +1 -2
- package/dist/feedback/presenceIndicator/index.d.ts +0 -1
- package/dist/feedback/progressBar/ProgressBar.d.ts +0 -1
- package/dist/feedback/progressBar/ProgressBar.variants.d.ts +0 -1
- package/dist/feedback/progressBar/index.d.ts +0 -1
- package/dist/feedback/progressCircle/ProgressCircle.d.ts +0 -1
- package/dist/feedback/progressCircle/index.d.ts +0 -1
- package/dist/feedback/progressSteps/ProgressSteps.d.ts +0 -1
- package/dist/feedback/progressSteps/index.d.ts +0 -1
- package/dist/feedback/skeleton/Skeleton.d.ts +0 -1
- package/dist/feedback/skeleton/Skeleton.variants.d.ts +0 -1
- package/dist/feedback/skeleton/index.d.ts +0 -1
- package/dist/feedback/spinner/Spinner.d.ts +0 -1
- package/dist/feedback/spinner/Spinner.variants.d.ts +0 -1
- package/dist/feedback/spinner/index.d.ts +0 -1
- package/dist/feedback/statusIndicator/StatusIndicator.d.ts +1 -2
- package/dist/feedback/statusIndicator/index.d.ts +0 -1
- package/dist/feedback/toast/Toast.d.ts +0 -1
- package/dist/feedback/toast/index.d.ts +0 -1
- package/dist/feedback/toastSimple/ToastSimple.d.ts +0 -1
- package/dist/feedback/toastSimple/ToastSimple.variants.d.ts +0 -1
- package/dist/feedback/toastSimple/index.d.ts +0 -1
- package/dist/feedback/toaster/Toaster.d.ts +2 -3
- package/dist/feedback/toaster/index.d.ts +0 -1
- package/dist/feedback/tour/Tour.d.ts +2 -3
- package/dist/feedback/tour/index.d.ts +0 -1
- package/dist/feedback/trendIndicator/TrendIndicator.d.ts +2 -3
- package/dist/feedback/trendIndicator/index.d.ts +0 -1
- package/dist/feedback/typingIndicator/TypingIndicator.d.ts +1 -2
- package/dist/feedback/typingIndicator/index.d.ts +0 -1
- package/dist/feedback/undoBar/UndoBar.d.ts +4 -5
- package/dist/feedback/undoBar/index.d.ts +0 -1
- package/dist/forms/ColorExtensions.d.ts +0 -1
- package/dist/forms/DateExtensions.d.ts +0 -1
- package/dist/forms/InputStyles.d.ts +0 -1
- package/dist/forms/MonthGrid.d.ts +0 -1
- package/dist/forms/addressForm/AddressForm.d.ts +3 -4
- package/dist/forms/addressForm/index.d.ts +0 -1
- package/dist/forms/calendar/Calendar.d.ts +1 -2
- package/dist/forms/calendar/index.d.ts +0 -1
- package/dist/forms/characterCount/CharacterCount.d.ts +1 -2
- package/dist/forms/characterCount/index.d.ts +0 -1
- package/dist/forms/chatComposer/ChatComposer.d.ts +2 -3
- package/dist/forms/chatComposer/index.d.ts +0 -1
- package/dist/forms/checkbox/Checkbox.d.ts +1 -2
- package/dist/forms/checkbox/Checkbox.variants.d.ts +0 -1
- package/dist/forms/checkbox/index.d.ts +0 -1
- package/dist/forms/checkboxField/CheckboxField.d.ts +0 -1
- package/dist/forms/checkboxField/index.d.ts +0 -1
- package/dist/forms/checkboxGroup/CheckboxGroup.d.ts +0 -1
- package/dist/forms/checkboxGroup/index.d.ts +0 -1
- package/dist/forms/choiceCard/ChoiceCard.d.ts +0 -1
- package/dist/forms/choiceCard/index.d.ts +0 -1
- package/dist/forms/codeEditor/CodeEditor.d.ts +2 -3
- package/dist/forms/codeEditor/index.d.ts +0 -1
- package/dist/forms/colorArea/ColorArea.d.ts +2 -3
- package/dist/forms/colorArea/index.d.ts +0 -1
- package/dist/forms/colorField/ColorField.d.ts +2 -3
- package/dist/forms/colorField/index.d.ts +0 -1
- package/dist/forms/colorPicker/ColorPicker.d.ts +3 -4
- package/dist/forms/colorPicker/index.d.ts +0 -1
- package/dist/forms/colorSlider/ColorSlider.d.ts +2 -3
- package/dist/forms/colorSlider/index.d.ts +0 -1
- package/dist/forms/colorSwatch/ColorSwatch.d.ts +0 -1
- package/dist/forms/colorSwatch/ColorSwatch.variants.d.ts +14 -15
- package/dist/forms/colorSwatch/index.d.ts +0 -1
- package/dist/forms/colorSwatchPicker/ColorSwatchPicker.d.ts +3 -4
- package/dist/forms/colorSwatchPicker/index.d.ts +0 -1
- package/dist/forms/colorWheel/ColorWheel.d.ts +2 -3
- package/dist/forms/colorWheel/index.d.ts +0 -1
- package/dist/forms/combobox/Combobox.d.ts +4 -5
- package/dist/forms/combobox/index.d.ts +0 -1
- package/dist/forms/cronInput/CronInput.d.ts +2 -3
- package/dist/forms/cronInput/index.d.ts +0 -1
- package/dist/forms/currencyInput/CurrencyInput.d.ts +0 -1
- package/dist/forms/currencyInput/index.d.ts +0 -1
- package/dist/forms/dateField/DateField.d.ts +1 -2
- package/dist/forms/dateField/index.d.ts +0 -1
- package/dist/forms/datePicker/DatePicker.d.ts +2 -3
- package/dist/forms/datePicker/index.d.ts +0 -1
- package/dist/forms/dateRangePicker/DateRangePicker.d.ts +2 -3
- package/dist/forms/dateRangePicker/index.d.ts +0 -1
- package/dist/forms/editable/Editable.d.ts +7 -8
- package/dist/forms/editable/index.d.ts +0 -1
- package/dist/forms/emailInput/EmailInput.d.ts +0 -1
- package/dist/forms/emailInput/index.d.ts +0 -1
- package/dist/forms/emojiPicker/EmojiPicker.d.ts +1 -2
- package/dist/forms/emojiPicker/index.d.ts +0 -1
- package/dist/forms/fieldset/Fieldset.d.ts +0 -1
- package/dist/forms/fieldset/index.d.ts +0 -1
- package/dist/forms/filePicker/FilePicker.d.ts +0 -1
- package/dist/forms/filePicker/index.d.ts +0 -1
- package/dist/forms/fileUpload/FileUpload.d.ts +1 -2
- package/dist/forms/fileUpload/index.d.ts +0 -1
- package/dist/forms/fontPicker/FontPicker.d.ts +1 -2
- package/dist/forms/fontPicker/index.d.ts +0 -1
- package/dist/forms/formErrorMessage/FormErrorMessage.d.ts +0 -1
- package/dist/forms/formErrorMessage/index.d.ts +0 -1
- package/dist/forms/formField/FormField.d.ts +0 -1
- package/dist/forms/formField/index.d.ts +0 -1
- package/dist/forms/formHelperText/FormHelperText.d.ts +0 -1
- package/dist/forms/formHelperText/index.d.ts +0 -1
- package/dist/forms/gradientPicker/GradientPicker.d.ts +1 -2
- package/dist/forms/gradientPicker/index.d.ts +0 -1
- package/dist/forms/iconPicker/IconPicker.d.ts +1 -2
- package/dist/forms/iconPicker/index.d.ts +0 -1
- package/dist/forms/index.d.ts +0 -1
- package/dist/forms/index.js +15 -15
- package/dist/forms/inputAddon/InputAddon.d.ts +0 -1
- package/dist/forms/inputAddon/index.d.ts +0 -1
- package/dist/forms/inputGroup/InputGroup.d.ts +0 -1
- package/dist/forms/inputGroup/index.d.ts +0 -1
- package/dist/forms/jsonEditor/JSONEditor.d.ts +3 -4
- package/dist/forms/jsonEditor/index.d.ts +0 -1
- package/dist/forms/keyboardShortcutPicker/KeyboardShortcutPicker.d.ts +0 -1
- package/dist/forms/keyboardShortcutPicker/index.d.ts +0 -1
- package/dist/forms/knob/Knob.d.ts +2 -3
- package/dist/forms/knob/index.d.ts +0 -1
- package/dist/forms/label/Label.d.ts +1 -2
- package/dist/forms/label/index.d.ts +0 -1
- package/dist/forms/labeledInput/LabeledInput.d.ts +0 -1
- package/dist/forms/labeledInput/index.d.ts +0 -1
- package/dist/forms/legend/Legend.d.ts +0 -1
- package/dist/forms/legend/index.d.ts +0 -1
- package/dist/forms/listbox/Listbox.d.ts +8 -5
- package/dist/forms/listbox/Listbox.variants.d.ts +0 -1
- package/dist/forms/listbox/index.d.ts +0 -1
- package/dist/forms/markdownEditor/MarkdownEditor.d.ts +5 -4
- package/dist/forms/markdownEditor/index.d.ts +0 -1
- package/dist/forms/maskedInput/MaskedInput.d.ts +0 -1
- package/dist/forms/maskedInput/index.d.ts +0 -1
- package/dist/forms/multiSelect/MultiSelect.d.ts +4 -5
- package/dist/forms/multiSelect/index.d.ts +0 -1
- package/dist/forms/numberInput/NumberInput.d.ts +0 -1
- package/dist/forms/numberInput/index.d.ts +0 -1
- package/dist/forms/passwordInput/PasswordInput.d.ts +1 -2
- package/dist/forms/passwordInput/index.d.ts +0 -1
- package/dist/forms/passwordStrength/PasswordStrength.d.ts +1 -2
- package/dist/forms/passwordStrength/index.d.ts +0 -1
- package/dist/forms/percentInput/PercentInput.d.ts +0 -1
- package/dist/forms/percentInput/index.d.ts +0 -1
- package/dist/forms/phoneInput/PhoneInput.d.ts +3 -4
- package/dist/forms/phoneInput/index.d.ts +0 -1
- package/dist/forms/pinInput/PinInput.d.ts +1 -2
- package/dist/forms/pinInput/index.d.ts +0 -1
- package/dist/forms/radio/Radio.d.ts +0 -1
- package/dist/forms/radio/index.d.ts +0 -1
- package/dist/forms/radioField/RadioField.d.ts +0 -1
- package/dist/forms/radioField/index.d.ts +0 -1
- package/dist/forms/radioGroup/RadioGroup.d.ts +0 -1
- package/dist/forms/radioGroup/index.d.ts +0 -1
- package/dist/forms/rangeCalendar/RangeCalendar.d.ts +1 -2
- package/dist/forms/rangeCalendar/index.d.ts +0 -1
- package/dist/forms/reactionPicker/ReactionPicker.d.ts +1 -2
- package/dist/forms/reactionPicker/index.d.ts +0 -1
- package/dist/forms/recurrenceEditor/RecurrenceEditor.d.ts +2 -3
- package/dist/forms/recurrenceEditor/index.d.ts +0 -1
- package/dist/forms/searchInput/SearchInput.d.ts +1 -2
- package/dist/forms/searchInput/index.d.ts +0 -1
- package/dist/forms/select/Select.d.ts +18 -12
- package/dist/forms/select/Select.variants.d.ts +46 -4
- package/dist/forms/select/index.d.ts +0 -1
- package/dist/forms/slider/Slider.d.ts +0 -1
- package/dist/forms/slider/index.d.ts +0 -1
- package/dist/forms/stepper/Stepper.d.ts +1 -2
- package/dist/forms/stepper/index.d.ts +0 -1
- package/dist/forms/switch/Switch.d.ts +0 -1
- package/dist/forms/switch/index.d.ts +0 -1
- package/dist/forms/switchField/SwitchField.d.ts +0 -1
- package/dist/forms/switchField/index.d.ts +0 -1
- package/dist/forms/tagsInput/TagsInput.d.ts +2 -3
- package/dist/forms/tagsInput/index.d.ts +0 -1
- package/dist/forms/telInput/TelInput.d.ts +0 -1
- package/dist/forms/telInput/index.d.ts +0 -1
- package/dist/forms/textInput/TextInput.d.ts +0 -1
- package/dist/forms/textInput/index.d.ts +0 -1
- package/dist/forms/textarea/Textarea.d.ts +0 -1
- package/dist/forms/textarea/index.d.ts +0 -1
- package/dist/forms/timeField/TimeField.d.ts +1 -2
- package/dist/forms/timeField/index.d.ts +0 -1
- package/dist/forms/timePicker/TimePicker.d.ts +2 -3
- package/dist/forms/timePicker/index.d.ts +0 -1
- package/dist/forms/urlInput/UrlInput.d.ts +0 -1
- package/dist/forms/urlInput/index.d.ts +0 -1
- package/dist/forms/wizard/Wizard.d.ts +5 -6
- package/dist/forms/wizard/index.d.ts +0 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/useClipboard.d.ts +0 -1
- package/dist/hooks/useControlled.d.ts +0 -1
- package/dist/hooks/useDebounceHandler.d.ts +0 -1
- package/dist/hooks/useDisclosure.d.ts +0 -1
- package/dist/hooks/useEscape.d.ts +0 -1
- package/dist/hooks/useEventListener.d.ts +0 -1
- package/dist/hooks/useFocusTrap.d.ts +0 -1
- package/dist/hooks/useId.d.ts +0 -1
- package/dist/hooks/useMediaQuery.d.ts +1 -1
- package/dist/hooks/useOutsideClick.d.ts +0 -1
- package/dist/hooks/useReducedMotion.d.ts +0 -1
- package/dist/hooks/useResizeObserver.d.ts +0 -1
- package/dist/hooks/useScrollLock.d.ts +0 -1
- package/dist/hooks/useTypeahead.d.ts +37 -0
- package/dist/icons/Icon.d.ts +0 -1
- package/dist/icons/Spinner.d.ts +0 -1
- package/dist/icons/index.d.ts +0 -1
- package/dist/icons/index.js +4 -4
- package/dist/index.d.ts +0 -1
- package/dist/index.js +22 -22
- package/dist/layout/appShell/AppShell.d.ts +3 -3
- package/dist/layout/appShell/index.d.ts +0 -1
- package/dist/layout/aspectRatio/AspectRatio.d.ts +0 -1
- package/dist/layout/aspectRatio/index.d.ts +0 -1
- package/dist/layout/box/Box.d.ts +0 -1
- package/dist/layout/box/index.d.ts +0 -1
- package/dist/layout/center/Center.d.ts +0 -1
- package/dist/layout/center/index.d.ts +0 -1
- package/dist/layout/cluster/Cluster.d.ts +0 -1
- package/dist/layout/cluster/index.d.ts +0 -1
- package/dist/layout/container/Container.d.ts +0 -1
- package/dist/layout/container/Container.variants.d.ts +0 -1
- package/dist/layout/container/index.d.ts +0 -1
- package/dist/layout/flex/Flex.d.ts +0 -1
- package/dist/layout/flex/index.d.ts +0 -1
- package/dist/layout/frame/Frame.d.ts +1 -2
- package/dist/layout/frame/index.d.ts +0 -1
- package/dist/layout/grid/Grid.d.ts +17 -6
- package/dist/layout/grid/Grid.variants.d.ts +15 -1
- package/dist/layout/grid/index.d.ts +1 -2
- package/dist/layout/hStack/HStack.d.ts +0 -1
- package/dist/layout/hStack/index.d.ts +0 -1
- package/dist/layout/index.d.ts +2 -1
- package/dist/layout/index.js +12 -12
- package/dist/layout/inline/Inline.d.ts +5 -1
- package/dist/layout/inline/index.d.ts +0 -1
- package/dist/layout/navbar/Navbar.d.ts +37 -0
- package/dist/layout/navbar/Navbar.variants.d.ts +76 -0
- package/dist/layout/navbar/index.d.ts +2 -0
- package/dist/layout/overlay/Overlay.d.ts +0 -1
- package/dist/layout/overlay/Overlay.variants.d.ts +0 -1
- package/dist/layout/overlay/index.d.ts +0 -1
- package/dist/layout/pullToRefresh/PullToRefresh.d.ts +1 -2
- package/dist/layout/pullToRefresh/index.d.ts +0 -1
- package/dist/layout/resizablePanels/ResizablePanels.d.ts +1 -2
- package/dist/layout/resizablePanels/index.d.ts +0 -1
- package/dist/layout/scrollArea/ScrollArea.d.ts +0 -1
- package/dist/layout/scrollArea/index.d.ts +0 -1
- package/dist/layout/section/Section.d.ts +26 -0
- package/dist/layout/section/Section.variants.d.ts +62 -0
- package/dist/layout/section/index.d.ts +2 -0
- package/dist/layout/spacer/Spacer.d.ts +0 -1
- package/dist/layout/spacer/index.d.ts +0 -1
- package/dist/layout/stack/Stack.d.ts +0 -1
- package/dist/layout/stack/Stack.variants.d.ts +0 -1
- package/dist/layout/stack/index.d.ts +0 -1
- package/dist/layout/surface/Surface.d.ts +0 -1
- package/dist/layout/surface/index.d.ts +0 -1
- package/dist/layout/twoColumn/TwoColumn.d.ts +0 -1
- package/dist/layout/twoColumn/index.d.ts +0 -1
- package/dist/layout/vStack/VStack.d.ts +0 -1
- package/dist/layout/vStack/index.d.ts +0 -1
- package/dist/nav/breadcrumb/Breadcrumb.d.ts +0 -1
- package/dist/nav/breadcrumb/index.d.ts +0 -1
- package/dist/nav/commandPalette/CommandPalette.d.ts +1 -2
- package/dist/nav/commandPalette/index.d.ts +0 -1
- package/dist/nav/contextMenu/ContextMenu.d.ts +1 -2
- package/dist/nav/contextMenu/index.d.ts +0 -1
- package/dist/nav/dropdownMenu/DropdownMenu.d.ts +0 -1
- package/dist/nav/dropdownMenu/index.d.ts +0 -1
- package/dist/nav/index.d.ts +0 -1
- package/dist/nav/index.js +12 -12
- package/dist/nav/menu/Menu.d.ts +5 -4
- package/dist/nav/menu/Menu.variants.d.ts +0 -1
- package/dist/nav/menu/index.d.ts +0 -1
- package/dist/nav/menubar/Menubar.d.ts +0 -1
- package/dist/nav/menubar/Menubar.variants.d.ts +0 -1
- package/dist/nav/menubar/index.d.ts +0 -1
- package/dist/nav/navItem/NavItem.d.ts +2 -4
- package/dist/nav/navItem/index.d.ts +0 -1
- package/dist/nav/navigationMenu/NavigationMenu.d.ts +0 -1
- package/dist/nav/navigationMenu/index.d.ts +0 -1
- package/dist/nav/pagination/Pagination.d.ts +0 -1
- package/dist/nav/pagination/index.d.ts +0 -1
- package/dist/nav/scrollSpy/ScrollSpy.d.ts +0 -1
- package/dist/nav/scrollSpy/index.d.ts +0 -1
- package/dist/nav/tableOfContents/TableOfContents.d.ts +1 -2
- package/dist/nav/tableOfContents/index.d.ts +0 -1
- package/dist/overlays/OverlayChrome.d.ts +0 -1
- package/dist/overlays/actionSheet/ActionSheet.d.ts +1 -2
- package/dist/overlays/actionSheet/index.d.ts +0 -1
- package/dist/overlays/alertDialog/AlertDialog.d.ts +0 -1
- package/dist/overlays/alertDialog/index.d.ts +0 -1
- package/dist/overlays/backdrop/Backdrop.d.ts +3 -7
- package/dist/overlays/backdrop/index.d.ts +0 -1
- package/dist/overlays/bottomSheet/BottomSheet.d.ts +9 -2
- package/dist/overlays/bottomSheet/index.d.ts +1 -2
- package/dist/overlays/dialog/Dialog.d.ts +1 -2
- package/dist/overlays/dialog/index.d.ts +0 -1
- package/dist/overlays/drawer/Drawer.d.ts +1 -2
- package/dist/overlays/drawer/index.d.ts +0 -1
- package/dist/overlays/hoverCard/HoverCard.d.ts +0 -1
- package/dist/overlays/hoverCard/index.d.ts +0 -1
- package/dist/overlays/index.d.ts +0 -1
- package/dist/overlays/index.js +11 -11
- package/dist/overlays/popover/Popover.d.ts +1 -2
- package/dist/overlays/popover/index.d.ts +0 -1
- package/dist/primitives/accessibleIcon/AccessibleIcon.d.ts +0 -1
- package/dist/primitives/accessibleIcon/index.d.ts +0 -1
- package/dist/primitives/anchoredPositioner/AnchoredPositioner.d.ts +1 -2
- package/dist/primitives/anchoredPositioner/index.d.ts +0 -1
- package/dist/primitives/announce/Announce.d.ts +0 -1
- package/dist/primitives/announce/index.d.ts +0 -1
- package/dist/primitives/collection/Collection.d.ts +0 -1
- package/dist/primitives/collection/index.d.ts +0 -1
- package/dist/primitives/directionProvider/DirectionProvider.d.ts +0 -1
- package/dist/primitives/directionProvider/index.d.ts +0 -1
- package/dist/primitives/dismissableLayer/DismissableLayer.d.ts +2 -3
- package/dist/primitives/dismissableLayer/index.d.ts +0 -1
- package/dist/primitives/focusScope/FocusScope.d.ts +0 -1
- package/dist/primitives/focusScope/index.d.ts +0 -1
- package/dist/primitives/formControlContext/FormControlContext.d.ts +0 -1
- package/dist/primitives/formControlContext/index.d.ts +0 -1
- package/dist/primitives/index.d.ts +0 -1
- package/dist/primitives/index.js +4 -4
- package/dist/primitives/overlayArrow/OverlayArrow.d.ts +0 -1
- package/dist/primitives/overlayArrow/index.d.ts +0 -1
- package/dist/primitives/portal/Portal.d.ts +1 -2
- package/dist/primitives/portal/index.d.ts +0 -1
- package/dist/primitives/presence/Presence.d.ts +8 -5
- package/dist/primitives/presence/index.d.ts +0 -1
- package/dist/primitives/rovingFocusGroup/RovingFocusGroup.d.ts +6 -3
- package/dist/primitives/rovingFocusGroup/index.d.ts +1 -2
- package/dist/primitives/scrollLockProvider/ScrollLockProvider.d.ts +2 -3
- package/dist/primitives/scrollLockProvider/index.d.ts +0 -1
- package/dist/primitives/slot/Slot.d.ts +0 -1
- package/dist/primitives/slot/index.d.ts +0 -1
- package/dist/primitives/visuallyHidden/VisuallyHidden.d.ts +0 -1
- package/dist/primitives/visuallyHidden/index.d.ts +0 -1
- package/dist/utils/ColorExtensions.d.ts +0 -1
- package/dist/utils/CssExtensions.d.ts +0 -1
- package/dist/utils/Environment.d.ts +8 -0
- package/dist/utils/Equality.d.ts +0 -1
- package/dist/utils/HtmlExtensions.d.ts +0 -1
- package/dist/utils/KeyboardExtensions.d.ts +0 -1
- package/dist/utils/Layers.d.ts +0 -1
- package/dist/utils/OptionalExtensions.d.ts +0 -1
- package/dist/utils/PressExtensions.d.ts +0 -1
- package/dist/utils/StyleTokens.d.ts +0 -1
- package/dist/utils/SurfaceStyles.d.ts +7 -1
- package/dist/utils/Tones.d.ts +1 -2
- package/dist/utils/TransitionExtensions.d.ts +0 -1
- package/dist/utils/cn.d.ts +0 -1
- package/dist/utils/composeEventHandlers.d.ts +0 -1
- package/dist/utils/composeRefs.d.ts +11 -3
- package/dist/utils/dataAttr.d.ts +0 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +3 -3
- package/dist/utils/polymorphic.d.ts +0 -1
- package/dist/utils/tv.d.ts +0 -1
- package/package.json +27 -14
- package/dist/actions/backToTopButton/BackToTopButton.d.ts.map +0 -1
- package/dist/actions/backToTopButton/index.d.ts.map +0 -1
- package/dist/actions/button/Button.d.ts.map +0 -1
- package/dist/actions/button/Button.variants.d.ts.map +0 -1
- package/dist/actions/button/index.d.ts.map +0 -1
- package/dist/actions/buttonGroup/ButtonGroup.d.ts.map +0 -1
- package/dist/actions/buttonGroup/index.d.ts.map +0 -1
- package/dist/actions/copyButton/CopyButton.d.ts.map +0 -1
- package/dist/actions/copyButton/index.d.ts.map +0 -1
- package/dist/actions/disclosureButton/DisclosureButton.d.ts.map +0 -1
- package/dist/actions/disclosureButton/index.d.ts.map +0 -1
- package/dist/actions/fab/FAB.d.ts.map +0 -1
- package/dist/actions/fab/FAB.variants.d.ts.map +0 -1
- package/dist/actions/fab/index.d.ts.map +0 -1
- package/dist/actions/index.d.ts.map +0 -1
- package/dist/actions/link/Link.d.ts.map +0 -1
- package/dist/actions/link/Link.variants.d.ts.map +0 -1
- package/dist/actions/link/index.d.ts.map +0 -1
- package/dist/actions/segmentedControl/SegmentedControl.d.ts.map +0 -1
- package/dist/actions/segmentedControl/index.d.ts.map +0 -1
- package/dist/actions/speedDial/SpeedDial.d.ts.map +0 -1
- package/dist/actions/speedDial/index.d.ts.map +0 -1
- package/dist/actions/toggleButton/ToggleButton.d.ts.map +0 -1
- package/dist/actions/toggleButton/ToggleButton.variants.d.ts.map +0 -1
- package/dist/actions/toggleButton/index.d.ts.map +0 -1
- package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts.map +0 -1
- package/dist/actions/toggleButtonGroup/index.d.ts.map +0 -1
- package/dist/actions/toolbar/Toolbar.d.ts.map +0 -1
- package/dist/actions/toolbar/index.d.ts.map +0 -1
- package/dist/chunk-2HWZH6GF.js.map +0 -1
- package/dist/chunk-46BOUO7J.js.map +0 -1
- package/dist/chunk-5QP5D3H3.js.map +0 -1
- package/dist/chunk-BKR7A7WH.js.map +0 -1
- package/dist/chunk-BKWLS6V2.js.map +0 -1
- package/dist/chunk-BLXE2RCC.js +0 -27
- package/dist/chunk-BLXE2RCC.js.map +0 -1
- package/dist/chunk-BMABNEZX.js.map +0 -1
- package/dist/chunk-BWWF3DDM.js.map +0 -1
- package/dist/chunk-IEAFEEZB.js.map +0 -1
- package/dist/chunk-KDXJQNB6.js.map +0 -1
- package/dist/chunk-LDRFQG44.js +0 -25
- package/dist/chunk-LDRFQG44.js.map +0 -1
- package/dist/chunk-LLNJ3GD2.js.map +0 -1
- package/dist/chunk-NUMFGKPY.js.map +0 -1
- package/dist/chunk-O2DK3E3E.js.map +0 -1
- package/dist/chunk-PGU27Z2H.js.map +0 -1
- package/dist/chunk-RDDIOVK4.js.map +0 -1
- package/dist/chunk-VIWAIXVK.js.map +0 -1
- package/dist/display/accordion/Accordion.d.ts.map +0 -1
- package/dist/display/accordion/index.d.ts.map +0 -1
- package/dist/display/activityFeed/ActivityFeed.d.ts.map +0 -1
- package/dist/display/activityFeed/index.d.ts.map +0 -1
- package/dist/display/animatedNumber/AnimatedNumber.d.ts.map +0 -1
- package/dist/display/animatedNumber/index.d.ts.map +0 -1
- package/dist/display/annotationMarker/AnnotationMarker.d.ts.map +0 -1
- package/dist/display/annotationMarker/index.d.ts.map +0 -1
- package/dist/display/audioPlayer/AudioPlayer.d.ts.map +0 -1
- package/dist/display/audioPlayer/index.d.ts.map +0 -1
- package/dist/display/audioWaveform/AudioWaveform.d.ts.map +0 -1
- package/dist/display/audioWaveform/index.d.ts.map +0 -1
- package/dist/display/avatar/Avatar.d.ts.map +0 -1
- package/dist/display/avatar/Avatar.variants.d.ts.map +0 -1
- package/dist/display/avatar/index.d.ts.map +0 -1
- package/dist/display/avatarGroup/AvatarGroup.d.ts.map +0 -1
- package/dist/display/avatarGroup/index.d.ts.map +0 -1
- package/dist/display/badge/Badge.d.ts.map +0 -1
- package/dist/display/badge/Badge.variants.d.ts.map +0 -1
- package/dist/display/badge/index.d.ts.map +0 -1
- package/dist/display/badgeOverlay/BadgeOverlay.d.ts.map +0 -1
- package/dist/display/badgeOverlay/index.d.ts.map +0 -1
- package/dist/display/card/Card.d.ts.map +0 -1
- package/dist/display/card/index.d.ts.map +0 -1
- package/dist/display/carousel/Carousel.d.ts.map +0 -1
- package/dist/display/carousel/index.d.ts.map +0 -1
- package/dist/display/chatBubble/ChatBubble.d.ts.map +0 -1
- package/dist/display/chatBubble/index.d.ts.map +0 -1
- package/dist/display/code/Code.d.ts.map +0 -1
- package/dist/display/code/Code.variants.d.ts.map +0 -1
- package/dist/display/code/index.d.ts.map +0 -1
- package/dist/display/collapsible/Collapsible.d.ts.map +0 -1
- package/dist/display/collapsible/index.d.ts.map +0 -1
- package/dist/display/commentThread/CommentThread.d.ts.map +0 -1
- package/dist/display/commentThread/index.d.ts.map +0 -1
- package/dist/display/confetti/Confetti.d.ts.map +0 -1
- package/dist/display/confetti/index.d.ts.map +0 -1
- package/dist/display/countBadge/CountBadge.d.ts.map +0 -1
- package/dist/display/countBadge/index.d.ts.map +0 -1
- package/dist/display/countUp/CountUp.d.ts.map +0 -1
- package/dist/display/countUp/index.d.ts.map +0 -1
- package/dist/display/dataGrid/DataGrid.d.ts.map +0 -1
- package/dist/display/dataGrid/index.d.ts.map +0 -1
- package/dist/display/dataTable/DataTable.d.ts.map +0 -1
- package/dist/display/dataTable/index.d.ts.map +0 -1
- package/dist/display/descriptionList/DescriptionList.d.ts.map +0 -1
- package/dist/display/descriptionList/index.d.ts.map +0 -1
- package/dist/display/diffViewer/DiffViewer.d.ts.map +0 -1
- package/dist/display/diffViewer/index.d.ts.map +0 -1
- package/dist/display/emptyState/EmptyState.d.ts.map +0 -1
- package/dist/display/emptyState/index.d.ts.map +0 -1
- package/dist/display/eventCalendar/EventCalendar.d.ts.map +0 -1
- package/dist/display/eventCalendar/index.d.ts.map +0 -1
- package/dist/display/eyebrow/Eyebrow.d.ts.map +0 -1
- package/dist/display/eyebrow/index.d.ts.map +0 -1
- package/dist/display/gantt/Gantt.d.ts.map +0 -1
- package/dist/display/gantt/index.d.ts.map +0 -1
- package/dist/display/gradientText/GradientText.d.ts.map +0 -1
- package/dist/display/gradientText/index.d.ts.map +0 -1
- package/dist/display/heading/Heading.d.ts.map +0 -1
- package/dist/display/heading/Heading.variants.d.ts.map +0 -1
- package/dist/display/heading/index.d.ts.map +0 -1
- package/dist/display/heatmapCalendar/HeatmapCalendar.d.ts.map +0 -1
- package/dist/display/heatmapCalendar/index.d.ts.map +0 -1
- package/dist/display/highlight/Highlight.d.ts.map +0 -1
- package/dist/display/highlight/index.d.ts.map +0 -1
- package/dist/display/image/Image.d.ts.map +0 -1
- package/dist/display/image/index.d.ts.map +0 -1
- package/dist/display/index.d.ts.map +0 -1
- package/dist/display/infoRow/InfoRow.d.ts.map +0 -1
- package/dist/display/infoRow/index.d.ts.map +0 -1
- package/dist/display/kbd/Kbd.d.ts.map +0 -1
- package/dist/display/kbd/index.d.ts.map +0 -1
- package/dist/display/keyboardShortcut/KeyboardShortcut.d.ts.map +0 -1
- package/dist/display/keyboardShortcut/index.d.ts.map +0 -1
- package/dist/display/list/List.d.ts.map +0 -1
- package/dist/display/list/List.variants.d.ts.map +0 -1
- package/dist/display/list/index.d.ts.map +0 -1
- package/dist/display/mark/Mark.d.ts.map +0 -1
- package/dist/display/mark/index.d.ts.map +0 -1
- package/dist/display/marquee/Marquee.d.ts.map +0 -1
- package/dist/display/marquee/index.d.ts.map +0 -1
- package/dist/display/messageList/MessageList.d.ts.map +0 -1
- package/dist/display/messageList/index.d.ts.map +0 -1
- package/dist/display/metaInline/MetaInline.d.ts.map +0 -1
- package/dist/display/metaInline/index.d.ts.map +0 -1
- package/dist/display/metricChip/MetricChip.d.ts.map +0 -1
- package/dist/display/metricChip/index.d.ts.map +0 -1
- package/dist/display/nodeEditor/NodeEditor.d.ts.map +0 -1
- package/dist/display/nodeEditor/index.d.ts.map +0 -1
- package/dist/display/notificationDot/NotificationDot.d.ts.map +0 -1
- package/dist/display/notificationDot/index.d.ts.map +0 -1
- package/dist/display/pdfViewer/PDFViewer.d.ts.map +0 -1
- package/dist/display/pdfViewer/index.d.ts.map +0 -1
- package/dist/display/quote/Quote.d.ts.map +0 -1
- package/dist/display/quote/index.d.ts.map +0 -1
- package/dist/display/reactionBar/ReactionBar.d.ts.map +0 -1
- package/dist/display/reactionBar/index.d.ts.map +0 -1
- package/dist/display/scheduleView/ScheduleView.d.ts.map +0 -1
- package/dist/display/scheduleView/index.d.ts.map +0 -1
- package/dist/display/scrollReveal/ScrollReveal.d.ts.map +0 -1
- package/dist/display/scrollReveal/index.d.ts.map +0 -1
- package/dist/display/sectionHeader/SectionHeader.d.ts.map +0 -1
- package/dist/display/sectionHeader/index.d.ts.map +0 -1
- package/dist/display/separator/Separator.d.ts.map +0 -1
- package/dist/display/separator/index.d.ts.map +0 -1
- package/dist/display/snippet/Snippet.d.ts.map +0 -1
- package/dist/display/snippet/index.d.ts.map +0 -1
- package/dist/display/sparkline/Sparkline.d.ts.map +0 -1
- package/dist/display/sparkline/index.d.ts.map +0 -1
- package/dist/display/stat/Stat.d.ts.map +0 -1
- package/dist/display/stat/index.d.ts.map +0 -1
- package/dist/display/status/Status.d.ts.map +0 -1
- package/dist/display/status/index.d.ts.map +0 -1
- package/dist/display/swipeActions/SwipeActions.d.ts.map +0 -1
- package/dist/display/swipeActions/index.d.ts.map +0 -1
- package/dist/display/table/Table.d.ts.map +0 -1
- package/dist/display/table/index.d.ts.map +0 -1
- package/dist/display/tabs/Tabs.d.ts.map +0 -1
- package/dist/display/tabs/index.d.ts.map +0 -1
- package/dist/display/tag/Tag.d.ts.map +0 -1
- package/dist/display/tag/Tag.variants.d.ts.map +0 -1
- package/dist/display/tag/index.d.ts.map +0 -1
- package/dist/display/text/Text.d.ts.map +0 -1
- package/dist/display/text/Text.variants.d.ts.map +0 -1
- package/dist/display/text/index.d.ts.map +0 -1
- package/dist/display/threadView/ThreadView.d.ts.map +0 -1
- package/dist/display/threadView/index.d.ts.map +0 -1
- package/dist/display/tilt/Tilt.d.ts.map +0 -1
- package/dist/display/tilt/index.d.ts.map +0 -1
- package/dist/display/timeline/Timeline.d.ts.map +0 -1
- package/dist/display/timeline/index.d.ts.map +0 -1
- package/dist/display/tooltip/Tooltip.d.ts.map +0 -1
- package/dist/display/tooltip/index.d.ts.map +0 -1
- package/dist/display/tree/Tree.d.ts.map +0 -1
- package/dist/display/tree/index.d.ts.map +0 -1
- package/dist/display/typewriter/Typewriter.d.ts.map +0 -1
- package/dist/display/typewriter/index.d.ts.map +0 -1
- package/dist/display/videoPlayer/VideoPlayer.d.ts.map +0 -1
- package/dist/display/videoPlayer/index.d.ts.map +0 -1
- package/dist/feedback/alert/Alert.d.ts.map +0 -1
- package/dist/feedback/alert/index.d.ts.map +0 -1
- package/dist/feedback/alertSimple/AlertSimple.d.ts.map +0 -1
- package/dist/feedback/alertSimple/AlertSimple.variants.d.ts.map +0 -1
- package/dist/feedback/alertSimple/index.d.ts.map +0 -1
- package/dist/feedback/banner/Banner.d.ts.map +0 -1
- package/dist/feedback/banner/index.d.ts.map +0 -1
- package/dist/feedback/bannerSimple/BannerSimple.d.ts.map +0 -1
- package/dist/feedback/bannerSimple/BannerSimple.variants.d.ts.map +0 -1
- package/dist/feedback/bannerSimple/index.d.ts.map +0 -1
- package/dist/feedback/callout/Callout.d.ts.map +0 -1
- package/dist/feedback/callout/index.d.ts.map +0 -1
- package/dist/feedback/index.d.ts.map +0 -1
- package/dist/feedback/inlineSpinner/InlineSpinner.d.ts.map +0 -1
- package/dist/feedback/inlineSpinner/index.d.ts.map +0 -1
- package/dist/feedback/liveCursor/LiveCursor.d.ts.map +0 -1
- package/dist/feedback/liveCursor/index.d.ts.map +0 -1
- package/dist/feedback/loadingOverlay/LoadingOverlay.d.ts.map +0 -1
- package/dist/feedback/loadingOverlay/index.d.ts.map +0 -1
- package/dist/feedback/loadingState/LoadingState.d.ts.map +0 -1
- package/dist/feedback/loadingState/index.d.ts.map +0 -1
- package/dist/feedback/meterBar/MeterBar.d.ts.map +0 -1
- package/dist/feedback/meterBar/index.d.ts.map +0 -1
- package/dist/feedback/notificationCenter/NotificationCenter.d.ts.map +0 -1
- package/dist/feedback/notificationCenter/index.d.ts.map +0 -1
- package/dist/feedback/onboardingChecklist/OnboardingChecklist.d.ts.map +0 -1
- package/dist/feedback/onboardingChecklist/index.d.ts.map +0 -1
- package/dist/feedback/presenceIndicator/PresenceIndicator.d.ts.map +0 -1
- package/dist/feedback/presenceIndicator/index.d.ts.map +0 -1
- package/dist/feedback/progressBar/ProgressBar.d.ts.map +0 -1
- package/dist/feedback/progressBar/ProgressBar.variants.d.ts.map +0 -1
- package/dist/feedback/progressBar/index.d.ts.map +0 -1
- package/dist/feedback/progressCircle/ProgressCircle.d.ts.map +0 -1
- package/dist/feedback/progressCircle/index.d.ts.map +0 -1
- package/dist/feedback/progressSteps/ProgressSteps.d.ts.map +0 -1
- package/dist/feedback/progressSteps/index.d.ts.map +0 -1
- package/dist/feedback/skeleton/Skeleton.d.ts.map +0 -1
- package/dist/feedback/skeleton/Skeleton.variants.d.ts.map +0 -1
- package/dist/feedback/skeleton/index.d.ts.map +0 -1
- package/dist/feedback/spinner/Spinner.d.ts.map +0 -1
- package/dist/feedback/spinner/Spinner.variants.d.ts.map +0 -1
- package/dist/feedback/spinner/index.d.ts.map +0 -1
- package/dist/feedback/statusIndicator/StatusIndicator.d.ts.map +0 -1
- package/dist/feedback/statusIndicator/index.d.ts.map +0 -1
- package/dist/feedback/toast/Toast.d.ts.map +0 -1
- package/dist/feedback/toast/index.d.ts.map +0 -1
- package/dist/feedback/toastSimple/ToastSimple.d.ts.map +0 -1
- package/dist/feedback/toastSimple/ToastSimple.variants.d.ts.map +0 -1
- package/dist/feedback/toastSimple/index.d.ts.map +0 -1
- package/dist/feedback/toaster/Toaster.d.ts.map +0 -1
- package/dist/feedback/toaster/index.d.ts.map +0 -1
- package/dist/feedback/tour/Tour.d.ts.map +0 -1
- package/dist/feedback/tour/index.d.ts.map +0 -1
- package/dist/feedback/trendIndicator/TrendIndicator.d.ts.map +0 -1
- package/dist/feedback/trendIndicator/index.d.ts.map +0 -1
- package/dist/feedback/typingIndicator/TypingIndicator.d.ts.map +0 -1
- package/dist/feedback/typingIndicator/index.d.ts.map +0 -1
- package/dist/feedback/undoBar/UndoBar.d.ts.map +0 -1
- package/dist/feedback/undoBar/index.d.ts.map +0 -1
- package/dist/forms/ColorExtensions.d.ts.map +0 -1
- package/dist/forms/DateExtensions.d.ts.map +0 -1
- package/dist/forms/InputStyles.d.ts.map +0 -1
- package/dist/forms/MonthGrid.d.ts.map +0 -1
- package/dist/forms/addressForm/AddressForm.d.ts.map +0 -1
- package/dist/forms/addressForm/index.d.ts.map +0 -1
- package/dist/forms/calendar/Calendar.d.ts.map +0 -1
- package/dist/forms/calendar/index.d.ts.map +0 -1
- package/dist/forms/characterCount/CharacterCount.d.ts.map +0 -1
- package/dist/forms/characterCount/index.d.ts.map +0 -1
- package/dist/forms/chatComposer/ChatComposer.d.ts.map +0 -1
- package/dist/forms/chatComposer/index.d.ts.map +0 -1
- package/dist/forms/checkbox/Checkbox.d.ts.map +0 -1
- package/dist/forms/checkbox/Checkbox.variants.d.ts.map +0 -1
- package/dist/forms/checkbox/index.d.ts.map +0 -1
- package/dist/forms/checkboxField/CheckboxField.d.ts.map +0 -1
- package/dist/forms/checkboxField/index.d.ts.map +0 -1
- package/dist/forms/checkboxGroup/CheckboxGroup.d.ts.map +0 -1
- package/dist/forms/checkboxGroup/index.d.ts.map +0 -1
- package/dist/forms/choiceCard/ChoiceCard.d.ts.map +0 -1
- package/dist/forms/choiceCard/index.d.ts.map +0 -1
- package/dist/forms/codeEditor/CodeEditor.d.ts.map +0 -1
- package/dist/forms/codeEditor/index.d.ts.map +0 -1
- package/dist/forms/colorArea/ColorArea.d.ts.map +0 -1
- package/dist/forms/colorArea/index.d.ts.map +0 -1
- package/dist/forms/colorField/ColorField.d.ts.map +0 -1
- package/dist/forms/colorField/index.d.ts.map +0 -1
- package/dist/forms/colorPicker/ColorPicker.d.ts.map +0 -1
- package/dist/forms/colorPicker/index.d.ts.map +0 -1
- package/dist/forms/colorSlider/ColorSlider.d.ts.map +0 -1
- package/dist/forms/colorSlider/index.d.ts.map +0 -1
- package/dist/forms/colorSwatch/ColorSwatch.d.ts.map +0 -1
- package/dist/forms/colorSwatch/ColorSwatch.variants.d.ts.map +0 -1
- package/dist/forms/colorSwatch/index.d.ts.map +0 -1
- package/dist/forms/colorSwatchPicker/ColorSwatchPicker.d.ts.map +0 -1
- package/dist/forms/colorSwatchPicker/index.d.ts.map +0 -1
- package/dist/forms/colorWheel/ColorWheel.d.ts.map +0 -1
- package/dist/forms/colorWheel/index.d.ts.map +0 -1
- package/dist/forms/combobox/Combobox.d.ts.map +0 -1
- package/dist/forms/combobox/index.d.ts.map +0 -1
- package/dist/forms/cronInput/CronInput.d.ts.map +0 -1
- package/dist/forms/cronInput/index.d.ts.map +0 -1
- package/dist/forms/currencyInput/CurrencyInput.d.ts.map +0 -1
- package/dist/forms/currencyInput/index.d.ts.map +0 -1
- package/dist/forms/dateField/DateField.d.ts.map +0 -1
- package/dist/forms/dateField/index.d.ts.map +0 -1
- package/dist/forms/datePicker/DatePicker.d.ts.map +0 -1
- package/dist/forms/datePicker/index.d.ts.map +0 -1
- package/dist/forms/dateRangePicker/DateRangePicker.d.ts.map +0 -1
- package/dist/forms/dateRangePicker/index.d.ts.map +0 -1
- package/dist/forms/editable/Editable.d.ts.map +0 -1
- package/dist/forms/editable/index.d.ts.map +0 -1
- package/dist/forms/emailInput/EmailInput.d.ts.map +0 -1
- package/dist/forms/emailInput/index.d.ts.map +0 -1
- package/dist/forms/emojiPicker/EmojiPicker.d.ts.map +0 -1
- package/dist/forms/emojiPicker/index.d.ts.map +0 -1
- package/dist/forms/fieldset/Fieldset.d.ts.map +0 -1
- package/dist/forms/fieldset/index.d.ts.map +0 -1
- package/dist/forms/filePicker/FilePicker.d.ts.map +0 -1
- package/dist/forms/filePicker/index.d.ts.map +0 -1
- package/dist/forms/fileUpload/FileUpload.d.ts.map +0 -1
- package/dist/forms/fileUpload/index.d.ts.map +0 -1
- package/dist/forms/fontPicker/FontPicker.d.ts.map +0 -1
- package/dist/forms/fontPicker/index.d.ts.map +0 -1
- package/dist/forms/formErrorMessage/FormErrorMessage.d.ts.map +0 -1
- package/dist/forms/formErrorMessage/index.d.ts.map +0 -1
- package/dist/forms/formField/FormField.d.ts.map +0 -1
- package/dist/forms/formField/index.d.ts.map +0 -1
- package/dist/forms/formHelperText/FormHelperText.d.ts.map +0 -1
- package/dist/forms/formHelperText/index.d.ts.map +0 -1
- package/dist/forms/gradientPicker/GradientPicker.d.ts.map +0 -1
- package/dist/forms/gradientPicker/index.d.ts.map +0 -1
- package/dist/forms/iconPicker/IconPicker.d.ts.map +0 -1
- package/dist/forms/iconPicker/index.d.ts.map +0 -1
- package/dist/forms/index.d.ts.map +0 -1
- package/dist/forms/inputAddon/InputAddon.d.ts.map +0 -1
- package/dist/forms/inputAddon/index.d.ts.map +0 -1
- package/dist/forms/inputGroup/InputGroup.d.ts.map +0 -1
- package/dist/forms/inputGroup/index.d.ts.map +0 -1
- package/dist/forms/jsonEditor/JSONEditor.d.ts.map +0 -1
- package/dist/forms/jsonEditor/index.d.ts.map +0 -1
- package/dist/forms/keyboardShortcutPicker/KeyboardShortcutPicker.d.ts.map +0 -1
- package/dist/forms/keyboardShortcutPicker/index.d.ts.map +0 -1
- package/dist/forms/knob/Knob.d.ts.map +0 -1
- package/dist/forms/knob/index.d.ts.map +0 -1
- package/dist/forms/label/Label.d.ts.map +0 -1
- package/dist/forms/label/index.d.ts.map +0 -1
- package/dist/forms/labeledInput/LabeledInput.d.ts.map +0 -1
- package/dist/forms/labeledInput/index.d.ts.map +0 -1
- package/dist/forms/legend/Legend.d.ts.map +0 -1
- package/dist/forms/legend/index.d.ts.map +0 -1
- package/dist/forms/listbox/Listbox.d.ts.map +0 -1
- package/dist/forms/listbox/Listbox.variants.d.ts.map +0 -1
- package/dist/forms/listbox/index.d.ts.map +0 -1
- package/dist/forms/markdownEditor/MarkdownEditor.d.ts.map +0 -1
- package/dist/forms/markdownEditor/index.d.ts.map +0 -1
- package/dist/forms/maskedInput/MaskedInput.d.ts.map +0 -1
- package/dist/forms/maskedInput/index.d.ts.map +0 -1
- package/dist/forms/multiSelect/MultiSelect.d.ts.map +0 -1
- package/dist/forms/multiSelect/index.d.ts.map +0 -1
- package/dist/forms/numberInput/NumberInput.d.ts.map +0 -1
- package/dist/forms/numberInput/index.d.ts.map +0 -1
- package/dist/forms/passwordInput/PasswordInput.d.ts.map +0 -1
- package/dist/forms/passwordInput/index.d.ts.map +0 -1
- package/dist/forms/passwordStrength/PasswordStrength.d.ts.map +0 -1
- package/dist/forms/passwordStrength/index.d.ts.map +0 -1
- package/dist/forms/percentInput/PercentInput.d.ts.map +0 -1
- package/dist/forms/percentInput/index.d.ts.map +0 -1
- package/dist/forms/phoneInput/PhoneInput.d.ts.map +0 -1
- package/dist/forms/phoneInput/index.d.ts.map +0 -1
- package/dist/forms/pinInput/PinInput.d.ts.map +0 -1
- package/dist/forms/pinInput/index.d.ts.map +0 -1
- package/dist/forms/radio/Radio.d.ts.map +0 -1
- package/dist/forms/radio/index.d.ts.map +0 -1
- package/dist/forms/radioField/RadioField.d.ts.map +0 -1
- package/dist/forms/radioField/index.d.ts.map +0 -1
- package/dist/forms/radioGroup/RadioGroup.d.ts.map +0 -1
- package/dist/forms/radioGroup/index.d.ts.map +0 -1
- package/dist/forms/rangeCalendar/RangeCalendar.d.ts.map +0 -1
- package/dist/forms/rangeCalendar/index.d.ts.map +0 -1
- package/dist/forms/reactionPicker/ReactionPicker.d.ts.map +0 -1
- package/dist/forms/reactionPicker/index.d.ts.map +0 -1
- package/dist/forms/recurrenceEditor/RecurrenceEditor.d.ts.map +0 -1
- package/dist/forms/recurrenceEditor/index.d.ts.map +0 -1
- package/dist/forms/searchInput/SearchInput.d.ts.map +0 -1
- package/dist/forms/searchInput/index.d.ts.map +0 -1
- package/dist/forms/select/Select.d.ts.map +0 -1
- package/dist/forms/select/Select.variants.d.ts.map +0 -1
- package/dist/forms/select/index.d.ts.map +0 -1
- package/dist/forms/slider/Slider.d.ts.map +0 -1
- package/dist/forms/slider/index.d.ts.map +0 -1
- package/dist/forms/stepper/Stepper.d.ts.map +0 -1
- package/dist/forms/stepper/index.d.ts.map +0 -1
- package/dist/forms/switch/Switch.d.ts.map +0 -1
- package/dist/forms/switch/index.d.ts.map +0 -1
- package/dist/forms/switchField/SwitchField.d.ts.map +0 -1
- package/dist/forms/switchField/index.d.ts.map +0 -1
- package/dist/forms/tagsInput/TagsInput.d.ts.map +0 -1
- package/dist/forms/tagsInput/index.d.ts.map +0 -1
- package/dist/forms/telInput/TelInput.d.ts.map +0 -1
- package/dist/forms/telInput/index.d.ts.map +0 -1
- package/dist/forms/textInput/TextInput.d.ts.map +0 -1
- package/dist/forms/textInput/index.d.ts.map +0 -1
- package/dist/forms/textarea/Textarea.d.ts.map +0 -1
- package/dist/forms/textarea/index.d.ts.map +0 -1
- package/dist/forms/timeField/TimeField.d.ts.map +0 -1
- package/dist/forms/timeField/index.d.ts.map +0 -1
- package/dist/forms/timePicker/TimePicker.d.ts.map +0 -1
- package/dist/forms/timePicker/index.d.ts.map +0 -1
- package/dist/forms/urlInput/UrlInput.d.ts.map +0 -1
- package/dist/forms/urlInput/index.d.ts.map +0 -1
- package/dist/forms/wizard/Wizard.d.ts.map +0 -1
- package/dist/forms/wizard/index.d.ts.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/useClipboard.d.ts.map +0 -1
- package/dist/hooks/useControlled.d.ts.map +0 -1
- package/dist/hooks/useDebounceHandler.d.ts.map +0 -1
- package/dist/hooks/useDisclosure.d.ts.map +0 -1
- package/dist/hooks/useEscape.d.ts.map +0 -1
- package/dist/hooks/useEventListener.d.ts.map +0 -1
- package/dist/hooks/useFocusTrap.d.ts.map +0 -1
- package/dist/hooks/useId.d.ts.map +0 -1
- package/dist/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/hooks/useOutsideClick.d.ts.map +0 -1
- package/dist/hooks/useReducedMotion.d.ts.map +0 -1
- package/dist/hooks/useResizeObserver.d.ts.map +0 -1
- package/dist/hooks/useScrollLock.d.ts.map +0 -1
- package/dist/icons/Icon.d.ts.map +0 -1
- package/dist/icons/Spinner.d.ts.map +0 -1
- package/dist/icons/index.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/layout/appShell/AppShell.d.ts.map +0 -1
- package/dist/layout/appShell/index.d.ts.map +0 -1
- package/dist/layout/aspectRatio/AspectRatio.d.ts.map +0 -1
- package/dist/layout/aspectRatio/index.d.ts.map +0 -1
- package/dist/layout/box/Box.d.ts.map +0 -1
- package/dist/layout/box/index.d.ts.map +0 -1
- package/dist/layout/center/Center.d.ts.map +0 -1
- package/dist/layout/center/index.d.ts.map +0 -1
- package/dist/layout/cluster/Cluster.d.ts.map +0 -1
- package/dist/layout/cluster/index.d.ts.map +0 -1
- package/dist/layout/container/Container.d.ts.map +0 -1
- package/dist/layout/container/Container.variants.d.ts.map +0 -1
- package/dist/layout/container/index.d.ts.map +0 -1
- package/dist/layout/flex/Flex.d.ts.map +0 -1
- package/dist/layout/flex/index.d.ts.map +0 -1
- package/dist/layout/frame/Frame.d.ts.map +0 -1
- package/dist/layout/frame/index.d.ts.map +0 -1
- package/dist/layout/grid/Grid.d.ts.map +0 -1
- package/dist/layout/grid/Grid.variants.d.ts.map +0 -1
- package/dist/layout/grid/index.d.ts.map +0 -1
- package/dist/layout/hStack/HStack.d.ts.map +0 -1
- package/dist/layout/hStack/index.d.ts.map +0 -1
- package/dist/layout/index.d.ts.map +0 -1
- package/dist/layout/inline/Inline.d.ts.map +0 -1
- package/dist/layout/inline/index.d.ts.map +0 -1
- package/dist/layout/overlay/Overlay.d.ts.map +0 -1
- package/dist/layout/overlay/Overlay.variants.d.ts.map +0 -1
- package/dist/layout/overlay/index.d.ts.map +0 -1
- package/dist/layout/pullToRefresh/PullToRefresh.d.ts.map +0 -1
- package/dist/layout/pullToRefresh/index.d.ts.map +0 -1
- package/dist/layout/resizablePanels/ResizablePanels.d.ts.map +0 -1
- package/dist/layout/resizablePanels/index.d.ts.map +0 -1
- package/dist/layout/scrollArea/ScrollArea.d.ts.map +0 -1
- package/dist/layout/scrollArea/index.d.ts.map +0 -1
- package/dist/layout/spacer/Spacer.d.ts.map +0 -1
- package/dist/layout/spacer/index.d.ts.map +0 -1
- package/dist/layout/stack/Stack.d.ts.map +0 -1
- package/dist/layout/stack/Stack.variants.d.ts.map +0 -1
- package/dist/layout/stack/index.d.ts.map +0 -1
- package/dist/layout/surface/Surface.d.ts.map +0 -1
- package/dist/layout/surface/index.d.ts.map +0 -1
- package/dist/layout/twoColumn/TwoColumn.d.ts.map +0 -1
- package/dist/layout/twoColumn/index.d.ts.map +0 -1
- package/dist/layout/vStack/VStack.d.ts.map +0 -1
- package/dist/layout/vStack/index.d.ts.map +0 -1
- package/dist/nav/breadcrumb/Breadcrumb.d.ts.map +0 -1
- package/dist/nav/breadcrumb/index.d.ts.map +0 -1
- package/dist/nav/commandPalette/CommandPalette.d.ts.map +0 -1
- package/dist/nav/commandPalette/index.d.ts.map +0 -1
- package/dist/nav/contextMenu/ContextMenu.d.ts.map +0 -1
- package/dist/nav/contextMenu/index.d.ts.map +0 -1
- package/dist/nav/dropdownMenu/DropdownMenu.d.ts.map +0 -1
- package/dist/nav/dropdownMenu/index.d.ts.map +0 -1
- package/dist/nav/index.d.ts.map +0 -1
- package/dist/nav/menu/Menu.d.ts.map +0 -1
- package/dist/nav/menu/Menu.variants.d.ts.map +0 -1
- package/dist/nav/menu/index.d.ts.map +0 -1
- package/dist/nav/menubar/Menubar.d.ts.map +0 -1
- package/dist/nav/menubar/Menubar.variants.d.ts.map +0 -1
- package/dist/nav/menubar/index.d.ts.map +0 -1
- package/dist/nav/navItem/NavItem.d.ts.map +0 -1
- package/dist/nav/navItem/index.d.ts.map +0 -1
- package/dist/nav/navigationMenu/NavigationMenu.d.ts.map +0 -1
- package/dist/nav/navigationMenu/index.d.ts.map +0 -1
- package/dist/nav/pagination/Pagination.d.ts.map +0 -1
- package/dist/nav/pagination/index.d.ts.map +0 -1
- package/dist/nav/scrollSpy/ScrollSpy.d.ts.map +0 -1
- package/dist/nav/scrollSpy/index.d.ts.map +0 -1
- package/dist/nav/tableOfContents/TableOfContents.d.ts.map +0 -1
- package/dist/nav/tableOfContents/index.d.ts.map +0 -1
- package/dist/overlays/OverlayChrome.d.ts.map +0 -1
- package/dist/overlays/actionSheet/ActionSheet.d.ts.map +0 -1
- package/dist/overlays/actionSheet/index.d.ts.map +0 -1
- package/dist/overlays/alertDialog/AlertDialog.d.ts.map +0 -1
- package/dist/overlays/alertDialog/index.d.ts.map +0 -1
- package/dist/overlays/backdrop/Backdrop.d.ts.map +0 -1
- package/dist/overlays/backdrop/index.d.ts.map +0 -1
- package/dist/overlays/bottomSheet/BottomSheet.d.ts.map +0 -1
- package/dist/overlays/bottomSheet/index.d.ts.map +0 -1
- package/dist/overlays/dialog/Dialog.d.ts.map +0 -1
- package/dist/overlays/dialog/index.d.ts.map +0 -1
- package/dist/overlays/drawer/Drawer.d.ts.map +0 -1
- package/dist/overlays/drawer/index.d.ts.map +0 -1
- package/dist/overlays/hoverCard/HoverCard.d.ts.map +0 -1
- package/dist/overlays/hoverCard/index.d.ts.map +0 -1
- package/dist/overlays/index.d.ts.map +0 -1
- package/dist/overlays/popover/Popover.d.ts.map +0 -1
- package/dist/overlays/popover/index.d.ts.map +0 -1
- package/dist/primitives/accessibleIcon/AccessibleIcon.d.ts.map +0 -1
- package/dist/primitives/accessibleIcon/index.d.ts.map +0 -1
- package/dist/primitives/anchoredPositioner/AnchoredPositioner.d.ts.map +0 -1
- package/dist/primitives/anchoredPositioner/index.d.ts.map +0 -1
- package/dist/primitives/announce/Announce.d.ts.map +0 -1
- package/dist/primitives/announce/index.d.ts.map +0 -1
- package/dist/primitives/collection/Collection.d.ts.map +0 -1
- package/dist/primitives/collection/index.d.ts.map +0 -1
- package/dist/primitives/directionProvider/DirectionProvider.d.ts.map +0 -1
- package/dist/primitives/directionProvider/index.d.ts.map +0 -1
- package/dist/primitives/dismissableLayer/DismissableLayer.d.ts.map +0 -1
- package/dist/primitives/dismissableLayer/index.d.ts.map +0 -1
- package/dist/primitives/focusScope/FocusScope.d.ts.map +0 -1
- package/dist/primitives/focusScope/index.d.ts.map +0 -1
- package/dist/primitives/formControlContext/FormControlContext.d.ts.map +0 -1
- package/dist/primitives/formControlContext/index.d.ts.map +0 -1
- package/dist/primitives/index.d.ts.map +0 -1
- package/dist/primitives/overlayArrow/OverlayArrow.d.ts.map +0 -1
- package/dist/primitives/overlayArrow/index.d.ts.map +0 -1
- package/dist/primitives/portal/Portal.d.ts.map +0 -1
- package/dist/primitives/portal/index.d.ts.map +0 -1
- package/dist/primitives/presence/Presence.d.ts.map +0 -1
- package/dist/primitives/presence/index.d.ts.map +0 -1
- package/dist/primitives/rovingFocusGroup/RovingFocusGroup.d.ts.map +0 -1
- package/dist/primitives/rovingFocusGroup/index.d.ts.map +0 -1
- package/dist/primitives/scrollLockProvider/ScrollLockProvider.d.ts.map +0 -1
- package/dist/primitives/scrollLockProvider/index.d.ts.map +0 -1
- package/dist/primitives/slot/Slot.d.ts.map +0 -1
- package/dist/primitives/slot/index.d.ts.map +0 -1
- package/dist/primitives/visuallyHidden/VisuallyHidden.d.ts.map +0 -1
- package/dist/primitives/visuallyHidden/index.d.ts.map +0 -1
- package/dist/utils/ColorExtensions.d.ts.map +0 -1
- package/dist/utils/CssExtensions.d.ts.map +0 -1
- package/dist/utils/Equality.d.ts.map +0 -1
- package/dist/utils/HtmlExtensions.d.ts.map +0 -1
- package/dist/utils/KeyboardExtensions.d.ts.map +0 -1
- package/dist/utils/Layers.d.ts.map +0 -1
- package/dist/utils/OptionalExtensions.d.ts.map +0 -1
- package/dist/utils/PressExtensions.d.ts.map +0 -1
- package/dist/utils/StyleTokens.d.ts.map +0 -1
- package/dist/utils/SurfaceStyles.d.ts.map +0 -1
- package/dist/utils/Tones.d.ts.map +0 -1
- package/dist/utils/TransitionExtensions.d.ts.map +0 -1
- package/dist/utils/cn.d.ts.map +0 -1
- package/dist/utils/composeEventHandlers.d.ts.map +0 -1
- package/dist/utils/composeRefs.d.ts.map +0 -1
- package/dist/utils/dataAttr.d.ts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/polymorphic.d.ts.map +0 -1
- package/dist/utils/tv.d.ts.map +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { listboxItemVariants, listboxVariants, listboxGroupLabelVariants, listboxSeparatorVariants, listboxEmptyVariants } from './chunk-
|
|
2
|
-
import { PopoverTrigger, Popover, PopoverContent } from './chunk-
|
|
3
|
-
import { startOfMonth, isSameDay, isToday, isDateDisabled, parseISODate, formatISODate, parseISOTime, Tag, addMonths, Kbd, addDays, buildMonthGrid, MONTHS_LONG, WEEKDAYS_SHORT, formatISOTime, startOfDay, isInRange } from './chunk-
|
|
4
|
-
import { useControlled } from './chunk-
|
|
5
|
-
import { Icon } from './chunk-
|
|
6
|
-
import { tv, CssExtensions, ColorExtensions, dataAttr, surfaceVariants, Equality } from './chunk-
|
|
7
|
-
import { useFormControl, FormControlProvider, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner, DismissableLayer } from './chunk-
|
|
8
|
-
import { useId } from './chunk-
|
|
9
|
-
import { cn, composeRefs } from './chunk-
|
|
1
|
+
import { listboxItemVariants, listboxVariants, listboxGroupLabelVariants, listboxSeparatorVariants, listboxEmptyVariants } from './chunk-577JZ2A2.js';
|
|
2
|
+
import { PopoverTrigger, Popover, PopoverContent } from './chunk-MTD4RTGO.js';
|
|
3
|
+
import { startOfMonth, isSameDay, isToday, isDateDisabled, parseISODate, formatISODate, parseISOTime, Tag, addMonths, Kbd, addDays, buildMonthGrid, MONTHS_LONG, WEEKDAYS_SHORT, formatISOTime, startOfDay, isInRange } from './chunk-XDATW7NF.js';
|
|
4
|
+
import { useControlled, useTypeahead } from './chunk-V267IMBH.js';
|
|
5
|
+
import { Icon } from './chunk-MVMDDGW7.js';
|
|
6
|
+
import { tv, CssExtensions, ColorExtensions, dataAttr, surfaceVariants, Equality } from './chunk-JYGC5SRP.js';
|
|
7
|
+
import { useFormControl, FormControlProvider, Announce, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner, DismissableLayer } from './chunk-TTSJZEL7.js';
|
|
8
|
+
import { useId } from './chunk-LGTGZ3RW.js';
|
|
9
|
+
import { cn, composeRefs } from './chunk-X2MYOHOB.js';
|
|
10
10
|
import * as React from 'react';
|
|
11
|
-
import { forwardRef, useRef, useImperativeHandle, useState, Children, isValidElement, cloneElement, useId as useId$1, createContext,
|
|
11
|
+
import { forwardRef, useRef, useImperativeHandle, useState, useEffect, Children, isValidElement, cloneElement, useId as useId$1, createContext, useMemo, useCallback, Fragment as Fragment$1, useContext } from 'react';
|
|
12
12
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
13
13
|
import { Minus, Plus, EyeOff, Eye, Search, X, Check, Upload, Loader2, ChevronDown, Calendar as Calendar$1, Clock, UploadCloud, ChevronRight, Copy, Zap, Wallet, Video, User, Trash, Tag as Tag$1, Sun, Star, ShoppingCart, Share2, Settings, Send, Play, Pin, Phone, Pencil, Paperclip, Music, Moon, Mic, MessageCircle, Map as Map$1, Mail, Lock, Link2, Lightbulb, Layers, Info, Inbox, Image, Home, Heart, Globe, Folder, File, ExternalLink, Edit, Download, Compass, Coffee, Code, Cloud, Camera, Bookmark, Bell, ChevronLeft, Heading1, Heading2, Bold, Italic, List, Quote } from 'lucide-react';
|
|
14
|
-
import {
|
|
14
|
+
import { Marked } from 'marked';
|
|
15
15
|
|
|
16
16
|
var SIZE = {
|
|
17
17
|
xs: "text-xs",
|
|
@@ -19,9 +19,9 @@ var SIZE = {
|
|
|
19
19
|
md: "text-sm"
|
|
20
20
|
};
|
|
21
21
|
var Label = forwardRef(
|
|
22
|
-
({ className,
|
|
22
|
+
({ className, isRequired: isRequiredProp, size = "md", htmlFor, id, children, ...props }, ref) => {
|
|
23
23
|
const ctx = useFormControl();
|
|
24
|
-
const isRequired =
|
|
24
|
+
const isRequired = isRequiredProp ?? ctx?.isRequired ?? false;
|
|
25
25
|
return /* @__PURE__ */ jsxs(
|
|
26
26
|
"label",
|
|
27
27
|
{
|
|
@@ -224,8 +224,8 @@ var NumberInput = forwardRef(
|
|
|
224
224
|
const adjust = (direction) => {
|
|
225
225
|
const el = inputRef.current;
|
|
226
226
|
if (!el || typeof el.stepUp !== "function") return;
|
|
227
|
-
if (direction === 1) el.stepUp(
|
|
228
|
-
else el.stepDown(
|
|
227
|
+
if (direction === 1) el.stepUp();
|
|
228
|
+
else el.stepDown();
|
|
229
229
|
el.dispatchEvent(new Event("input", { bubbles: true }));
|
|
230
230
|
el.dispatchEvent(new Event("change", { bubbles: true }));
|
|
231
231
|
};
|
|
@@ -285,7 +285,7 @@ var PasswordInput = forwardRef(
|
|
|
285
285
|
disabled,
|
|
286
286
|
required,
|
|
287
287
|
readOnly,
|
|
288
|
-
|
|
288
|
+
hasToggle = true,
|
|
289
289
|
autoComplete = "current-password",
|
|
290
290
|
...props
|
|
291
291
|
}, ref) => {
|
|
@@ -307,11 +307,11 @@ var PasswordInput = forwardRef(
|
|
|
307
307
|
readOnly: readOnly ?? ctx?.isReadOnly,
|
|
308
308
|
"aria-invalid": ctx?.isInvalid || void 0,
|
|
309
309
|
"aria-describedby": ctx ? `${ctx.helperId} ${ctx.errorId}` : void 0,
|
|
310
|
-
className: cn(inputBaseVariants({ size, state: finalState }),
|
|
310
|
+
className: cn(inputBaseVariants({ size, state: finalState }), hasToggle && "pr-10"),
|
|
311
311
|
...props
|
|
312
312
|
}
|
|
313
313
|
),
|
|
314
|
-
|
|
314
|
+
hasToggle && /* @__PURE__ */ jsx(
|
|
315
315
|
"button",
|
|
316
316
|
{
|
|
317
317
|
type: "button",
|
|
@@ -336,7 +336,7 @@ var SearchInput = forwardRef(
|
|
|
336
336
|
disabled,
|
|
337
337
|
required,
|
|
338
338
|
readOnly,
|
|
339
|
-
|
|
339
|
+
isClearable = true,
|
|
340
340
|
onClear,
|
|
341
341
|
onChange,
|
|
342
342
|
defaultValue,
|
|
@@ -351,7 +351,7 @@ var SearchInput = forwardRef(
|
|
|
351
351
|
const isControlled = value !== void 0;
|
|
352
352
|
const [uncontrolled, setUncontrolled] = useState(defaultValue ?? "");
|
|
353
353
|
const currentValue = isControlled ? value : uncontrolled;
|
|
354
|
-
const showClear =
|
|
354
|
+
const showClear = isClearable && String(currentValue ?? "").length > 0;
|
|
355
355
|
const handleClear = () => {
|
|
356
356
|
const el = inputRef.current;
|
|
357
357
|
if (el) {
|
|
@@ -580,7 +580,7 @@ var Checkbox = forwardRef(
|
|
|
580
580
|
({
|
|
581
581
|
className,
|
|
582
582
|
size = "md",
|
|
583
|
-
|
|
583
|
+
isIndeterminate,
|
|
584
584
|
variant = "solid",
|
|
585
585
|
tone = "primary",
|
|
586
586
|
color,
|
|
@@ -592,6 +592,10 @@ var Checkbox = forwardRef(
|
|
|
592
592
|
}, ref) => {
|
|
593
593
|
const ctx = useFormControl();
|
|
594
594
|
const isDisabled = disabled ?? ctx?.isDisabled;
|
|
595
|
+
const inputRef = useRef(null);
|
|
596
|
+
useEffect(() => {
|
|
597
|
+
if (inputRef.current) inputRef.current.indeterminate = Boolean(isIndeterminate);
|
|
598
|
+
}, [isIndeterminate]);
|
|
595
599
|
const { preset: sizePreset, box: sizeBox } = CssExtensions.parseSizeUnion(
|
|
596
600
|
size,
|
|
597
601
|
CHECKBOX_SIZE_PRESETS
|
|
@@ -610,12 +614,13 @@ var Checkbox = forwardRef(
|
|
|
610
614
|
/* @__PURE__ */ jsx(
|
|
611
615
|
"input",
|
|
612
616
|
{
|
|
613
|
-
ref,
|
|
617
|
+
ref: composeRefs(inputRef, ref),
|
|
614
618
|
type: "checkbox",
|
|
615
619
|
id: id ?? ctx?.id,
|
|
616
620
|
disabled: isDisabled,
|
|
617
621
|
required: required ?? ctx?.isRequired,
|
|
618
622
|
checked,
|
|
623
|
+
"aria-checked": isIndeterminate ? "mixed" : void 0,
|
|
619
624
|
"aria-invalid": ctx?.isInvalid || void 0,
|
|
620
625
|
"aria-describedby": ctx ? `${ctx.helperId} ${ctx.errorId}` : void 0,
|
|
621
626
|
className: "peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed",
|
|
@@ -628,9 +633,9 @@ var Checkbox = forwardRef(
|
|
|
628
633
|
"aria-hidden": "true",
|
|
629
634
|
className: cn(
|
|
630
635
|
checkboxVariants({ variant, tone }),
|
|
631
|
-
|
|
636
|
+
isIndeterminate ? INDETERMINATE_CHECKED_CLASS[variant][tone] : "[&>svg]:opacity-0 peer-checked:[&>svg]:opacity-100"
|
|
632
637
|
),
|
|
633
|
-
children:
|
|
638
|
+
children: isIndeterminate ? /* @__PURE__ */ jsx(Minus, { className: iconClass }) : /* @__PURE__ */ jsx(Check, { className: iconClass })
|
|
634
639
|
}
|
|
635
640
|
)
|
|
636
641
|
]
|
|
@@ -668,10 +673,12 @@ var Radio = forwardRef(
|
|
|
668
673
|
className: cn(
|
|
669
674
|
"pointer-events-none grid h-full w-full place-items-center rounded-full border border-input bg-background transition-colors",
|
|
670
675
|
"peer-checked:border-primary",
|
|
676
|
+
/* Dot opacity gate lives on this span (a peer sibling of the input) — child-selector targets the dot. peer-checked: cannot reach descendants directly. */
|
|
677
|
+
"[&>span]:opacity-0 peer-checked:[&>span]:opacity-100",
|
|
671
678
|
"peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-1",
|
|
672
679
|
"peer-disabled:opacity-50"
|
|
673
680
|
),
|
|
674
|
-
children: /* @__PURE__ */ jsx("span", { className: "h-2 w-2 rounded-full bg-primary
|
|
681
|
+
children: /* @__PURE__ */ jsx("span", { className: "h-2 w-2 rounded-full bg-primary" })
|
|
675
682
|
}
|
|
676
683
|
)
|
|
677
684
|
] });
|
|
@@ -684,9 +691,14 @@ var TRACK_CLASS = {
|
|
|
684
691
|
lg: "h-6 w-11"
|
|
685
692
|
};
|
|
686
693
|
var THUMB_CLASS = {
|
|
687
|
-
sm: "h-3 w-3
|
|
688
|
-
md: "h-4 w-4
|
|
689
|
-
lg: "h-5 w-5
|
|
694
|
+
sm: "h-3 w-3",
|
|
695
|
+
md: "h-4 w-4",
|
|
696
|
+
lg: "h-5 w-5"
|
|
697
|
+
};
|
|
698
|
+
var TRACK_CHECKED_CLASS = {
|
|
699
|
+
sm: "peer-checked:[&>span]:translate-x-3",
|
|
700
|
+
md: "peer-checked:[&>span]:translate-x-4",
|
|
701
|
+
lg: "peer-checked:[&>span]:translate-x-5"
|
|
690
702
|
};
|
|
691
703
|
var Switch = forwardRef(
|
|
692
704
|
({ className, size = "md", id, disabled, required, ...props }, ref) => {
|
|
@@ -713,6 +725,7 @@ var Switch = forwardRef(
|
|
|
713
725
|
className: cn(
|
|
714
726
|
"pointer-events-none flex h-full w-full items-center rounded-full bg-input px-0.5 transition-colors",
|
|
715
727
|
"peer-checked:bg-primary",
|
|
728
|
+
TRACK_CHECKED_CLASS[size],
|
|
716
729
|
"peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-1",
|
|
717
730
|
"peer-disabled:opacity-50"
|
|
718
731
|
),
|
|
@@ -732,9 +745,9 @@ var Switch = forwardRef(
|
|
|
732
745
|
);
|
|
733
746
|
Switch.displayName = "Switch";
|
|
734
747
|
var TRACK_CLASS2 = {
|
|
735
|
-
sm: "h-1",
|
|
736
|
-
md: "h-1.5",
|
|
737
|
-
lg: "h-2"
|
|
748
|
+
sm: "[&::-webkit-slider-runnable-track]:h-1 [&::-moz-range-track]:h-1",
|
|
749
|
+
md: "[&::-webkit-slider-runnable-track]:h-1.5 [&::-moz-range-track]:h-1.5",
|
|
750
|
+
lg: "[&::-webkit-slider-runnable-track]:h-2 [&::-moz-range-track]:h-2"
|
|
738
751
|
};
|
|
739
752
|
var Slider = forwardRef(
|
|
740
753
|
({ className, size = "md", id, disabled, required, min = 0, max = 100, ...props }, ref) => {
|
|
@@ -752,12 +765,11 @@ var Slider = forwardRef(
|
|
|
752
765
|
"aria-invalid": ctx?.isInvalid || void 0,
|
|
753
766
|
className: cn(
|
|
754
767
|
"w-full appearance-none bg-transparent disabled:cursor-not-allowed disabled:opacity-50",
|
|
768
|
+
TRACK_CLASS2[size],
|
|
755
769
|
// WebKit
|
|
756
770
|
"[&::-webkit-slider-runnable-track]:rounded-full [&::-webkit-slider-runnable-track]:bg-muted",
|
|
757
|
-
`[&::-webkit-slider-runnable-track]:${TRACK_CLASS2[size]}`,
|
|
758
771
|
"[&::-webkit-slider-thumb]:mt-[-6px] [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:border-2 [&::-webkit-slider-thumb]:border-primary [&::-webkit-slider-thumb]:bg-background",
|
|
759
772
|
// Firefox
|
|
760
|
-
`[&::-moz-range-track]:${TRACK_CLASS2[size]}`,
|
|
761
773
|
"[&::-moz-range-track]:rounded-full [&::-moz-range-track]:bg-muted",
|
|
762
774
|
"[&::-moz-range-thumb]:h-4 [&::-moz-range-thumb]:w-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-2 [&::-moz-range-thumb]:border-primary [&::-moz-range-thumb]:bg-background",
|
|
763
775
|
"focus-visible:outline-none focus-visible:[&::-webkit-slider-thumb]:ring-2 focus-visible:[&::-webkit-slider-thumb]:ring-ring",
|
|
@@ -941,33 +953,31 @@ var PinInput = forwardRef(
|
|
|
941
953
|
onComplete,
|
|
942
954
|
type = "numeric",
|
|
943
955
|
size = "md",
|
|
944
|
-
|
|
956
|
+
isMasked,
|
|
945
957
|
isDisabled,
|
|
946
958
|
className,
|
|
947
959
|
...props
|
|
948
960
|
}, ref) => {
|
|
949
|
-
const
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
961
|
+
const toCells = (s) => Array.from({ length }, (_, i) => s[i] ?? "");
|
|
962
|
+
const [cells, setCells] = useControlled({
|
|
963
|
+
controlled: value === void 0 ? void 0 : toCells(value),
|
|
964
|
+
default: toCells(defaultValue ?? ""),
|
|
965
|
+
onChange: (next) => onValueChange?.(next.join(""))
|
|
953
966
|
});
|
|
954
|
-
const cells = Array.from({ length }, (_, i) => val[i] ?? "");
|
|
955
967
|
const inputs = useRef([]);
|
|
956
968
|
const wrapperRef = useRef(null);
|
|
957
969
|
useImperativeHandle(ref, () => wrapperRef.current);
|
|
958
970
|
const isAllowed = (ch) => type === "numeric" ? /^[0-9]$/.test(ch) : /^[A-Za-z0-9]$/.test(ch);
|
|
959
971
|
const update = (next) => {
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
if (trimmed.length === length) onComplete?.(trimmed);
|
|
972
|
+
setCells(next);
|
|
973
|
+
if (next.every(Boolean)) onComplete?.(next.join(""));
|
|
963
974
|
};
|
|
964
975
|
const handleChange = (i, raw) => {
|
|
965
976
|
const ch = raw.slice(-1);
|
|
966
977
|
if (ch && !isAllowed(ch)) return;
|
|
967
978
|
const arr = cells.slice();
|
|
968
979
|
arr[i] = ch;
|
|
969
|
-
|
|
970
|
-
update(next);
|
|
980
|
+
update(arr);
|
|
971
981
|
if (ch && i < length - 1) inputs.current[i + 1]?.focus();
|
|
972
982
|
};
|
|
973
983
|
const handleKeyDown = (i, e) => {
|
|
@@ -986,7 +996,7 @@ var PinInput = forwardRef(
|
|
|
986
996
|
const filtered = pasted.split("").filter(isAllowed).join("");
|
|
987
997
|
if (filtered) {
|
|
988
998
|
e.preventDefault();
|
|
989
|
-
update(filtered);
|
|
999
|
+
update(toCells(filtered));
|
|
990
1000
|
const focusIdx = Math.min(filtered.length, length - 1);
|
|
991
1001
|
inputs.current[focusIdx]?.focus();
|
|
992
1002
|
}
|
|
@@ -997,7 +1007,7 @@ var PinInput = forwardRef(
|
|
|
997
1007
|
ref: (el) => {
|
|
998
1008
|
inputs.current[i] = el;
|
|
999
1009
|
},
|
|
1000
|
-
type:
|
|
1010
|
+
type: isMasked ? "password" : "text",
|
|
1001
1011
|
inputMode: type === "numeric" ? "numeric" : "text",
|
|
1002
1012
|
autoComplete: "one-time-code",
|
|
1003
1013
|
maxLength: 1,
|
|
@@ -1099,7 +1109,7 @@ var PercentInput = forwardRef(
|
|
|
1099
1109
|
);
|
|
1100
1110
|
PercentInput.displayName = "PercentInput";
|
|
1101
1111
|
var CharacterCount = forwardRef(
|
|
1102
|
-
({ value, max,
|
|
1112
|
+
({ value, max, isMaxShown = true, className, ...props }, ref) => {
|
|
1103
1113
|
const over = value > max;
|
|
1104
1114
|
return /* @__PURE__ */ jsxs(
|
|
1105
1115
|
"div",
|
|
@@ -1114,7 +1124,7 @@ var CharacterCount = forwardRef(
|
|
|
1114
1124
|
...props,
|
|
1115
1125
|
children: [
|
|
1116
1126
|
value,
|
|
1117
|
-
|
|
1127
|
+
isMaxShown && ` / ${max}`
|
|
1118
1128
|
]
|
|
1119
1129
|
}
|
|
1120
1130
|
);
|
|
@@ -1219,7 +1229,7 @@ function scorePassword(pw) {
|
|
|
1219
1229
|
return Math.min(4, score);
|
|
1220
1230
|
}
|
|
1221
1231
|
var PasswordStrength = forwardRef(
|
|
1222
|
-
({ value, score,
|
|
1232
|
+
({ value, score, isLabelHidden, className, ...props }, ref) => {
|
|
1223
1233
|
const s = score ?? (value.length === 0 ? 0 : scorePassword(value));
|
|
1224
1234
|
const label = LABELS[s] ?? "";
|
|
1225
1235
|
const tone = TONE[s] ?? "bg-destructive";
|
|
@@ -1234,7 +1244,7 @@ var PasswordStrength = forwardRef(
|
|
|
1234
1244
|
},
|
|
1235
1245
|
i
|
|
1236
1246
|
)) }),
|
|
1237
|
-
!
|
|
1247
|
+
!isLabelHidden && value && /* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground", children: label })
|
|
1238
1248
|
] });
|
|
1239
1249
|
}
|
|
1240
1250
|
);
|
|
@@ -1272,7 +1282,10 @@ var FilePicker = forwardRef(
|
|
|
1272
1282
|
type: "file",
|
|
1273
1283
|
disabled,
|
|
1274
1284
|
className: "sr-only",
|
|
1275
|
-
onChange: (e) =>
|
|
1285
|
+
onChange: (e) => {
|
|
1286
|
+
onFilesChange?.(e.target.files);
|
|
1287
|
+
e.target.value = "";
|
|
1288
|
+
},
|
|
1276
1289
|
...props
|
|
1277
1290
|
}
|
|
1278
1291
|
),
|
|
@@ -1290,26 +1303,27 @@ function useListboxContext() {
|
|
|
1290
1303
|
}
|
|
1291
1304
|
function ListboxImpl(props, ref) {
|
|
1292
1305
|
const {
|
|
1293
|
-
|
|
1306
|
+
isMultiple = false,
|
|
1294
1307
|
value,
|
|
1295
1308
|
defaultValue,
|
|
1296
1309
|
onValueChange,
|
|
1297
1310
|
isEqual,
|
|
1298
1311
|
indicator,
|
|
1312
|
+
onActiveChange,
|
|
1299
1313
|
variant,
|
|
1300
1314
|
tone,
|
|
1301
1315
|
radius,
|
|
1302
1316
|
padding,
|
|
1303
1317
|
elevation,
|
|
1304
|
-
|
|
1318
|
+
isDisabled,
|
|
1305
1319
|
className,
|
|
1306
1320
|
children,
|
|
1307
1321
|
onKeyDown,
|
|
1308
1322
|
...rest
|
|
1309
1323
|
} = props;
|
|
1310
1324
|
const equals = isEqual ?? defaultEquals;
|
|
1311
|
-
const resolvedIndicator = indicator ?? (
|
|
1312
|
-
const initial = defaultValue ?? (
|
|
1325
|
+
const resolvedIndicator = indicator ?? (isMultiple ? "checkbox" : "check");
|
|
1326
|
+
const initial = defaultValue ?? (isMultiple ? [] : void 0);
|
|
1313
1327
|
const [current, setCurrent] = useControlled({
|
|
1314
1328
|
controlled: value,
|
|
1315
1329
|
default: initial,
|
|
@@ -1331,7 +1345,7 @@ function ListboxImpl(props, ref) {
|
|
|
1331
1345
|
}, []);
|
|
1332
1346
|
const onItemSelect = useCallback(
|
|
1333
1347
|
(next) => {
|
|
1334
|
-
if (
|
|
1348
|
+
if (isMultiple) {
|
|
1335
1349
|
const cur = Array.isArray(current) ? current : [];
|
|
1336
1350
|
const has = cur.some((v) => equals(v, next));
|
|
1337
1351
|
const out = has ? cur.filter((v) => !equals(v, next)) : [...cur, next];
|
|
@@ -1340,19 +1354,28 @@ function ListboxImpl(props, ref) {
|
|
|
1340
1354
|
setCurrent(next);
|
|
1341
1355
|
}
|
|
1342
1356
|
},
|
|
1343
|
-
[
|
|
1357
|
+
[isMultiple, current, setCurrent, equals]
|
|
1344
1358
|
);
|
|
1345
1359
|
useEffect(() => {
|
|
1346
1360
|
if (activeId) return;
|
|
1347
1361
|
const firstSelected = items.current.find(
|
|
1348
|
-
(i) => !i.
|
|
1362
|
+
(i) => !i.isDisabled && values.some((v) => equals(v, i.value))
|
|
1349
1363
|
);
|
|
1350
|
-
const firstEnabled = items.current.find((i) => !i.
|
|
1364
|
+
const firstEnabled = items.current.find((i) => !i.isDisabled);
|
|
1351
1365
|
setActiveId((firstSelected ?? firstEnabled)?.id ?? null);
|
|
1352
1366
|
}, []);
|
|
1367
|
+
const onActiveChangeRef = useRef(onActiveChange);
|
|
1368
|
+
onActiveChangeRef.current = onActiveChange;
|
|
1369
|
+
useEffect(() => {
|
|
1370
|
+
onActiveChangeRef.current?.(activeId);
|
|
1371
|
+
}, [activeId]);
|
|
1372
|
+
const activateById = useCallback((id) => {
|
|
1373
|
+
setActiveId(id);
|
|
1374
|
+
document.getElementById(id)?.scrollIntoView({ block: "nearest" });
|
|
1375
|
+
}, []);
|
|
1353
1376
|
const moveActive = useCallback(
|
|
1354
1377
|
(direction, jump = 1) => {
|
|
1355
|
-
const list = items.current.filter((i) => !i.
|
|
1378
|
+
const list = items.current.filter((i) => !i.isDisabled);
|
|
1356
1379
|
if (list.length === 0) return;
|
|
1357
1380
|
const currentIdx = list.findIndex((i) => i.id === activeId);
|
|
1358
1381
|
let nextIdx = currentIdx + direction * jump;
|
|
@@ -1360,14 +1383,25 @@ function ListboxImpl(props, ref) {
|
|
|
1360
1383
|
if (nextIdx < 0) nextIdx = 0;
|
|
1361
1384
|
if (nextIdx >= list.length) nextIdx = list.length - 1;
|
|
1362
1385
|
const nextEntry = list[nextIdx];
|
|
1363
|
-
if (nextEntry)
|
|
1386
|
+
if (nextEntry) activateById(nextEntry.id);
|
|
1364
1387
|
},
|
|
1365
|
-
[activeId]
|
|
1388
|
+
[activeId, activateById]
|
|
1366
1389
|
);
|
|
1390
|
+
const typeahead = useTypeahead({
|
|
1391
|
+
items: () => items.current,
|
|
1392
|
+
getLabel: (entry) => document.getElementById(entry.id)?.textContent ?? "",
|
|
1393
|
+
isDisabled: (entry) => entry.isDisabled,
|
|
1394
|
+
getActiveIndex: () => items.current.findIndex((i) => i.id === activeId),
|
|
1395
|
+
onMatch: (entry) => activateById(entry.id)
|
|
1396
|
+
});
|
|
1367
1397
|
const handleKeyDown = useCallback(
|
|
1368
1398
|
(event) => {
|
|
1369
1399
|
onKeyDown?.(event);
|
|
1370
|
-
if (event.defaultPrevented ||
|
|
1400
|
+
if (event.defaultPrevented || isDisabled) return;
|
|
1401
|
+
if (typeahead.onKeyDown(event)) {
|
|
1402
|
+
event.preventDefault();
|
|
1403
|
+
return;
|
|
1404
|
+
}
|
|
1371
1405
|
switch (event.key) {
|
|
1372
1406
|
case "ArrowDown":
|
|
1373
1407
|
event.preventDefault();
|
|
@@ -1397,18 +1431,18 @@ function ListboxImpl(props, ref) {
|
|
|
1397
1431
|
case " ": {
|
|
1398
1432
|
if (!activeId) return;
|
|
1399
1433
|
const entry = items.current.find((i) => i.id === activeId);
|
|
1400
|
-
if (!entry || entry.
|
|
1434
|
+
if (!entry || entry.isDisabled) return;
|
|
1401
1435
|
event.preventDefault();
|
|
1402
1436
|
onItemSelect(entry.value);
|
|
1403
1437
|
break;
|
|
1404
1438
|
}
|
|
1405
1439
|
}
|
|
1406
1440
|
},
|
|
1407
|
-
[activeId,
|
|
1441
|
+
[activeId, isDisabled, moveActive, onItemSelect, onKeyDown, typeahead]
|
|
1408
1442
|
);
|
|
1409
1443
|
const ctx = useMemo(
|
|
1410
1444
|
() => ({
|
|
1411
|
-
|
|
1445
|
+
isMultiple,
|
|
1412
1446
|
values,
|
|
1413
1447
|
isEqual: equals,
|
|
1414
1448
|
activeId,
|
|
@@ -1416,17 +1450,19 @@ function ListboxImpl(props, ref) {
|
|
|
1416
1450
|
registerItem,
|
|
1417
1451
|
unregisterItem,
|
|
1418
1452
|
setActiveId,
|
|
1419
|
-
indicator: resolvedIndicator
|
|
1453
|
+
indicator: resolvedIndicator,
|
|
1454
|
+
isDisabled: isDisabled ?? false
|
|
1420
1455
|
}),
|
|
1421
1456
|
[
|
|
1422
|
-
|
|
1457
|
+
isMultiple,
|
|
1423
1458
|
values,
|
|
1424
1459
|
equals,
|
|
1425
1460
|
activeId,
|
|
1426
1461
|
onItemSelect,
|
|
1427
1462
|
registerItem,
|
|
1428
1463
|
unregisterItem,
|
|
1429
|
-
resolvedIndicator
|
|
1464
|
+
resolvedIndicator,
|
|
1465
|
+
isDisabled
|
|
1430
1466
|
]
|
|
1431
1467
|
);
|
|
1432
1468
|
const resolvedPadding = padding ?? "xs";
|
|
@@ -1435,10 +1471,10 @@ function ListboxImpl(props, ref) {
|
|
|
1435
1471
|
{
|
|
1436
1472
|
ref,
|
|
1437
1473
|
role: "listbox",
|
|
1438
|
-
tabIndex:
|
|
1439
|
-
"aria-multiselectable":
|
|
1474
|
+
tabIndex: isDisabled ? -1 : 0,
|
|
1475
|
+
"aria-multiselectable": isMultiple || void 0,
|
|
1440
1476
|
"aria-activedescendant": activeId ?? void 0,
|
|
1441
|
-
"aria-disabled":
|
|
1477
|
+
"aria-disabled": isDisabled || void 0,
|
|
1442
1478
|
onKeyDown: handleKeyDown,
|
|
1443
1479
|
className: cn(
|
|
1444
1480
|
surfaceVariants({ variant, tone, radius, padding: resolvedPadding, elevation }),
|
|
@@ -1498,25 +1534,25 @@ function LeadingIndicator({
|
|
|
1498
1534
|
function TrailingIndicator({
|
|
1499
1535
|
indicator,
|
|
1500
1536
|
isSelected,
|
|
1501
|
-
|
|
1537
|
+
isMultiple
|
|
1502
1538
|
}) {
|
|
1503
1539
|
if (indicator === "check" && isSelected) {
|
|
1504
|
-
return /* @__PURE__ */ jsx(Check, { className: cn("h-4 w-4 shrink-0", !
|
|
1540
|
+
return /* @__PURE__ */ jsx(Check, { className: cn("h-4 w-4 shrink-0", !isMultiple && "opacity-80") });
|
|
1505
1541
|
}
|
|
1506
1542
|
return null;
|
|
1507
1543
|
}
|
|
1508
|
-
var ListboxItem = forwardRef(function ListboxItem2({ value,
|
|
1544
|
+
var ListboxItem = forwardRef(function ListboxItem2({ value, isDisabled = false, indicator: itemIndicator, className, children, onClick, onPointerEnter, ...rest }, forwardedRef) {
|
|
1509
1545
|
const ctx = useListboxContext();
|
|
1510
1546
|
const id = useId$1();
|
|
1511
1547
|
const ref = useRef(null);
|
|
1512
1548
|
const indicator = itemIndicator ?? ctx.indicator;
|
|
1513
1549
|
useEffect(() => {
|
|
1514
|
-
ctx.registerItem({ id, value,
|
|
1550
|
+
ctx.registerItem({ id, value, isDisabled });
|
|
1515
1551
|
return () => ctx.unregisterItem(id);
|
|
1516
|
-
}, [ctx, id, value,
|
|
1552
|
+
}, [ctx, id, value, isDisabled]);
|
|
1517
1553
|
const isSelected = ctx.values.some((v) => ctx.isEqual(v, value));
|
|
1518
1554
|
const isActive = ctx.activeId === id;
|
|
1519
|
-
const state =
|
|
1555
|
+
const state = isDisabled ? "disabled" : isSelected ? "selected" : isActive ? "active" : "default";
|
|
1520
1556
|
const setRefs = (node) => {
|
|
1521
1557
|
ref.current = node;
|
|
1522
1558
|
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
@@ -1529,25 +1565,25 @@ var ListboxItem = forwardRef(function ListboxItem2({ value, disabled = false, in
|
|
|
1529
1565
|
id,
|
|
1530
1566
|
role: "option",
|
|
1531
1567
|
"aria-selected": isSelected,
|
|
1532
|
-
"aria-disabled":
|
|
1568
|
+
"aria-disabled": isDisabled || void 0,
|
|
1533
1569
|
"data-active": isActive ? "" : void 0,
|
|
1534
1570
|
"data-selected": isSelected ? "" : void 0,
|
|
1535
|
-
"data-disabled":
|
|
1571
|
+
"data-disabled": isDisabled ? "" : void 0,
|
|
1536
1572
|
onClick: (e) => {
|
|
1537
1573
|
onClick?.(e);
|
|
1538
|
-
if (e.defaultPrevented ||
|
|
1574
|
+
if (e.defaultPrevented || isDisabled || ctx.isDisabled) return;
|
|
1539
1575
|
ctx.onItemSelect(value);
|
|
1540
1576
|
},
|
|
1541
1577
|
onPointerEnter: (e) => {
|
|
1542
1578
|
onPointerEnter?.(e);
|
|
1543
|
-
if (!
|
|
1579
|
+
if (!isDisabled) ctx.setActiveId(id);
|
|
1544
1580
|
},
|
|
1545
1581
|
className: cn(listboxItemVariants({ state }), className),
|
|
1546
1582
|
...rest,
|
|
1547
1583
|
children: [
|
|
1548
1584
|
/* @__PURE__ */ jsx(LeadingIndicator, { indicator, isSelected }),
|
|
1549
|
-
/* @__PURE__ */ jsx("span", { className: "flex min-w-0 flex-1 items-center gap-2", children }),
|
|
1550
|
-
/* @__PURE__ */ jsx(TrailingIndicator, { indicator, isSelected,
|
|
1585
|
+
/* @__PURE__ */ jsx("span", { "data-listbox-item-content": true, className: "flex min-w-0 flex-1 items-center gap-2", children }),
|
|
1586
|
+
/* @__PURE__ */ jsx(TrailingIndicator, { indicator, isSelected, isMultiple: ctx.isMultiple })
|
|
1551
1587
|
]
|
|
1552
1588
|
}
|
|
1553
1589
|
);
|
|
@@ -1573,22 +1609,15 @@ Listbox.Empty = ListboxEmpty;
|
|
|
1573
1609
|
|
|
1574
1610
|
// src/forms/select/Select.variants.ts
|
|
1575
1611
|
var selectTriggerVariants = tv({
|
|
1576
|
-
|
|
1612
|
+
extend: inputBaseVariants,
|
|
1613
|
+
base: "items-center justify-between gap-2 data-[state=open]:border-border-strong",
|
|
1577
1614
|
variants: {
|
|
1578
1615
|
size: {
|
|
1579
|
-
xs: "
|
|
1580
|
-
sm: "
|
|
1581
|
-
md: "
|
|
1582
|
-
lg: "
|
|
1583
|
-
},
|
|
1584
|
-
state: {
|
|
1585
|
-
default: "border-input hover:border-border-strong",
|
|
1586
|
-
invalid: "border-destructive focus-visible:ring-destructive"
|
|
1616
|
+
xs: "gap-1.5",
|
|
1617
|
+
sm: "",
|
|
1618
|
+
md: "",
|
|
1619
|
+
lg: ""
|
|
1587
1620
|
}
|
|
1588
|
-
},
|
|
1589
|
-
defaultVariants: {
|
|
1590
|
-
size: "md",
|
|
1591
|
-
state: "default"
|
|
1592
1621
|
}
|
|
1593
1622
|
});
|
|
1594
1623
|
var SelectContext = createContext(null);
|
|
@@ -1598,41 +1627,54 @@ function useSelectContext() {
|
|
|
1598
1627
|
return ctx;
|
|
1599
1628
|
}
|
|
1600
1629
|
function SelectImpl({
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1630
|
+
value,
|
|
1631
|
+
defaultValue,
|
|
1632
|
+
onValueChange,
|
|
1604
1633
|
keyEquals,
|
|
1605
|
-
|
|
1634
|
+
isDisabled,
|
|
1606
1635
|
isLoading = false,
|
|
1607
|
-
|
|
1636
|
+
loadingLabel = "Loading options\u2026",
|
|
1637
|
+
isClearable = false,
|
|
1638
|
+
clearLabel = "Clear selection",
|
|
1608
1639
|
name,
|
|
1609
1640
|
serializeKey,
|
|
1610
|
-
|
|
1641
|
+
getOptionLabel,
|
|
1642
|
+
isInvalid,
|
|
1611
1643
|
defaultOpen = false,
|
|
1612
1644
|
open: openProp,
|
|
1613
1645
|
onOpenChange,
|
|
1614
1646
|
placement = "bottom",
|
|
1615
1647
|
children
|
|
1616
1648
|
}) {
|
|
1649
|
+
const field = useFormControl();
|
|
1650
|
+
const finalDisabled = isDisabled ?? field?.isDisabled ?? false;
|
|
1651
|
+
const finalInvalid = isInvalid ?? field?.isInvalid ?? false;
|
|
1617
1652
|
const [openState, setOpenState] = useControlled({
|
|
1618
1653
|
controlled: openProp,
|
|
1619
1654
|
default: defaultOpen,
|
|
1620
1655
|
onChange: onOpenChange
|
|
1621
1656
|
});
|
|
1622
1657
|
const [keyState, setKeyState] = useControlled({
|
|
1623
|
-
controlled:
|
|
1624
|
-
default:
|
|
1658
|
+
controlled: value,
|
|
1659
|
+
default: defaultValue ?? null,
|
|
1625
1660
|
/* Emits via `emitChange` below — needs both key + value, not just key. */
|
|
1626
1661
|
onChange: void 0
|
|
1627
1662
|
});
|
|
1628
1663
|
const [items, setItems] = useState([]);
|
|
1664
|
+
const labelCacheRef = useRef(/* @__PURE__ */ new Map());
|
|
1629
1665
|
const [query, setQuery] = useState("");
|
|
1666
|
+
const [activeDescendant, setActiveDescendant] = useState(null);
|
|
1667
|
+
const generatedListboxId = useId("select-listbox");
|
|
1668
|
+
const listboxRef = useRef(null);
|
|
1669
|
+
const [selectedEntry, setSelectedEntry] = useState(null);
|
|
1630
1670
|
const keyEqualsRef = useRef(keyEquals);
|
|
1631
1671
|
keyEqualsRef.current = keyEquals;
|
|
1632
1672
|
const serializeKeyRef = useRef(serializeKey);
|
|
1633
1673
|
serializeKeyRef.current = serializeKey;
|
|
1634
|
-
const
|
|
1635
|
-
|
|
1674
|
+
const getOptionLabelRef = useRef(getOptionLabel);
|
|
1675
|
+
getOptionLabelRef.current = getOptionLabel;
|
|
1676
|
+
const onValueChangeRef = useRef(onValueChange);
|
|
1677
|
+
onValueChangeRef.current = onValueChange;
|
|
1636
1678
|
const keyEqualsFn = useCallback((a, b) => {
|
|
1637
1679
|
const fn = keyEqualsRef.current;
|
|
1638
1680
|
return (fn ?? Equality.strictEquals)(a, b);
|
|
@@ -1641,13 +1683,18 @@ function SelectImpl({
|
|
|
1641
1683
|
const fn = serializeKeyRef.current;
|
|
1642
1684
|
return (fn ?? ((x) => String(x)))(k);
|
|
1643
1685
|
}, []);
|
|
1686
|
+
const getOptionLabelFn = useCallback((k) => {
|
|
1687
|
+
const fn = getOptionLabelRef.current;
|
|
1688
|
+
return fn ? fn(k) : null;
|
|
1689
|
+
}, []);
|
|
1644
1690
|
const registerItem = useCallback(
|
|
1645
1691
|
(entry) => {
|
|
1692
|
+
labelCacheRef.current.set(serializeKeyFn(entry.itemKey), entry.label);
|
|
1646
1693
|
setItems((prev) => {
|
|
1647
1694
|
const idx = prev.findIndex((p) => Object.is(p.itemKey, entry.itemKey));
|
|
1648
1695
|
if (idx >= 0) {
|
|
1649
1696
|
const existing = prev[idx];
|
|
1650
|
-
if (existing && existing.label === entry.label && existing.text === entry.text && Object.is(existing.value, entry.value)) {
|
|
1697
|
+
if (existing && existing.label === entry.label && existing.text === entry.text && existing.isDisabled === entry.isDisabled && Object.is(existing.value, entry.value)) {
|
|
1651
1698
|
return prev;
|
|
1652
1699
|
}
|
|
1653
1700
|
const next = prev.slice();
|
|
@@ -1657,7 +1704,7 @@ function SelectImpl({
|
|
|
1657
1704
|
return [...prev, entry];
|
|
1658
1705
|
});
|
|
1659
1706
|
},
|
|
1660
|
-
[]
|
|
1707
|
+
[serializeKeyFn]
|
|
1661
1708
|
);
|
|
1662
1709
|
const unregisterItem = useCallback((k) => {
|
|
1663
1710
|
setItems((prev) => {
|
|
@@ -1668,15 +1715,20 @@ function SelectImpl({
|
|
|
1668
1715
|
return next;
|
|
1669
1716
|
});
|
|
1670
1717
|
}, []);
|
|
1718
|
+
const getCachedLabel = useCallback(
|
|
1719
|
+
(k) => labelCacheRef.current.get(serializeKeyFn(k)),
|
|
1720
|
+
[serializeKeyFn]
|
|
1721
|
+
);
|
|
1671
1722
|
const emitChange = useCallback(
|
|
1672
1723
|
(next) => {
|
|
1673
|
-
|
|
1724
|
+
onValueChangeRef.current?.(next);
|
|
1674
1725
|
},
|
|
1675
1726
|
[]
|
|
1676
1727
|
);
|
|
1677
1728
|
const onSelect = useCallback(
|
|
1678
1729
|
(entry) => {
|
|
1679
1730
|
setKeyState(entry.itemKey);
|
|
1731
|
+
setSelectedEntry({ itemKey: entry.itemKey, label: entry.label });
|
|
1680
1732
|
setOpenState(false);
|
|
1681
1733
|
setQuery("");
|
|
1682
1734
|
emitChange({
|
|
@@ -1689,61 +1741,89 @@ function SelectImpl({
|
|
|
1689
1741
|
);
|
|
1690
1742
|
const onClear = useCallback(() => {
|
|
1691
1743
|
setKeyState(null);
|
|
1744
|
+
setSelectedEntry(null);
|
|
1692
1745
|
emitChange(null);
|
|
1693
1746
|
}, [setKeyState, emitChange]);
|
|
1694
1747
|
const hasSelection = keyState !== null && keyState !== void 0;
|
|
1748
|
+
const selectedLabel = selectedEntry && hasSelection && keyEqualsFn(selectedEntry.itemKey, keyState) ? selectedEntry.label : null;
|
|
1695
1749
|
const ctx = useMemo(
|
|
1696
1750
|
() => ({
|
|
1697
1751
|
open: openState,
|
|
1698
1752
|
setOpen: setOpenState,
|
|
1699
1753
|
selectedKey: keyState,
|
|
1700
1754
|
hasSelection,
|
|
1755
|
+
selectedLabel,
|
|
1701
1756
|
onSelect,
|
|
1702
1757
|
onClear,
|
|
1703
1758
|
keyEquals: keyEqualsFn,
|
|
1704
1759
|
items,
|
|
1705
1760
|
registerItem,
|
|
1706
1761
|
unregisterItem,
|
|
1762
|
+
getCachedLabel,
|
|
1707
1763
|
query,
|
|
1708
1764
|
setQuery,
|
|
1709
|
-
|
|
1765
|
+
isDisabled: finalDisabled,
|
|
1710
1766
|
isLoading,
|
|
1711
|
-
|
|
1767
|
+
loadingLabel,
|
|
1768
|
+
isClearable,
|
|
1769
|
+
clearLabel,
|
|
1712
1770
|
serializeKey: serializeKeyFn,
|
|
1771
|
+
getOptionLabel: getOptionLabelFn,
|
|
1713
1772
|
name,
|
|
1714
|
-
|
|
1773
|
+
isInvalid: finalInvalid,
|
|
1774
|
+
listboxId: generatedListboxId,
|
|
1775
|
+
activeDescendant,
|
|
1776
|
+
setActiveDescendant,
|
|
1777
|
+
listboxRef,
|
|
1778
|
+
fieldId: field?.id,
|
|
1779
|
+
labelId: field?.labelId,
|
|
1780
|
+
describedBy: field ? `${field.helperId} ${field.errorId}` : void 0
|
|
1715
1781
|
}),
|
|
1716
1782
|
[
|
|
1717
1783
|
openState,
|
|
1718
1784
|
setOpenState,
|
|
1719
1785
|
keyState,
|
|
1720
1786
|
hasSelection,
|
|
1787
|
+
selectedLabel,
|
|
1721
1788
|
onSelect,
|
|
1722
1789
|
onClear,
|
|
1723
1790
|
keyEqualsFn,
|
|
1724
1791
|
items,
|
|
1725
1792
|
registerItem,
|
|
1726
1793
|
unregisterItem,
|
|
1794
|
+
getCachedLabel,
|
|
1727
1795
|
query,
|
|
1728
|
-
|
|
1796
|
+
finalDisabled,
|
|
1729
1797
|
isLoading,
|
|
1730
|
-
|
|
1798
|
+
loadingLabel,
|
|
1799
|
+
isClearable,
|
|
1800
|
+
clearLabel,
|
|
1731
1801
|
serializeKeyFn,
|
|
1802
|
+
getOptionLabelFn,
|
|
1732
1803
|
name,
|
|
1733
|
-
|
|
1804
|
+
finalInvalid,
|
|
1805
|
+
generatedListboxId,
|
|
1806
|
+
activeDescendant,
|
|
1807
|
+
field
|
|
1734
1808
|
]
|
|
1735
1809
|
);
|
|
1736
|
-
return /* @__PURE__ */ jsx(SelectContext.Provider, { value: ctx, children: /* @__PURE__ */
|
|
1810
|
+
return /* @__PURE__ */ jsx(SelectContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs(
|
|
1737
1811
|
Popover,
|
|
1738
1812
|
{
|
|
1739
1813
|
open: openState,
|
|
1740
1814
|
onOpenChange: (o) => {
|
|
1741
1815
|
setOpenState(o);
|
|
1742
|
-
if (!o)
|
|
1816
|
+
if (!o) {
|
|
1817
|
+
setQuery("");
|
|
1818
|
+
setActiveDescendant(null);
|
|
1819
|
+
}
|
|
1743
1820
|
},
|
|
1744
1821
|
placement,
|
|
1745
1822
|
offset: 4,
|
|
1746
|
-
children
|
|
1823
|
+
children: [
|
|
1824
|
+
children,
|
|
1825
|
+
name && hasSelection && /* @__PURE__ */ jsx("input", { type: "hidden", name, value: serializeKeyFn(keyState) })
|
|
1826
|
+
]
|
|
1747
1827
|
}
|
|
1748
1828
|
) });
|
|
1749
1829
|
}
|
|
@@ -1766,81 +1846,115 @@ var TRIGGER_DIVIDER_CLASSES = {
|
|
|
1766
1846
|
md: "h-4",
|
|
1767
1847
|
lg: "h-5"
|
|
1768
1848
|
};
|
|
1849
|
+
var TRIGGER_CLEAR_OFFSET_CLASSES = {
|
|
1850
|
+
xs: "right-[35px]",
|
|
1851
|
+
sm: "right-[37px]",
|
|
1852
|
+
md: "right-[41px]",
|
|
1853
|
+
lg: "right-[49px]"
|
|
1854
|
+
};
|
|
1855
|
+
function triggerDataState(open, isLoading, isDisabled, isInvalid) {
|
|
1856
|
+
if (open) return "open";
|
|
1857
|
+
if (isLoading) return "loading";
|
|
1858
|
+
if (isDisabled) return "disabled";
|
|
1859
|
+
if (isInvalid) return "invalid";
|
|
1860
|
+
return void 0;
|
|
1861
|
+
}
|
|
1769
1862
|
var SelectTrigger = forwardRef(
|
|
1770
|
-
function SelectTrigger2({ size, state, className, children, ...rest }, ref) {
|
|
1863
|
+
function SelectTrigger2({ size, state, className, children, "aria-label": ariaLabel, onKeyDown, ...rest }, ref) {
|
|
1771
1864
|
const ctx = useSelectContext();
|
|
1772
|
-
const triggerState = state ?? (ctx.
|
|
1773
|
-
const
|
|
1865
|
+
const triggerState = state ?? (ctx.isInvalid ? "invalid" : "default");
|
|
1866
|
+
const triggerTypeahead = useTypeahead({
|
|
1867
|
+
items: () => ctx.items,
|
|
1868
|
+
getLabel: (entry) => entry.text,
|
|
1869
|
+
isDisabled: (entry) => entry.isDisabled,
|
|
1870
|
+
getActiveIndex: () => ctx.hasSelection ? ctx.items.findIndex((i) => ctx.keyEquals(i.itemKey, ctx.selectedKey)) : -1,
|
|
1871
|
+
onMatch: (entry) => ctx.onSelect(entry),
|
|
1872
|
+
enabled: !ctx.open && !ctx.isDisabled && !ctx.isLoading
|
|
1873
|
+
});
|
|
1874
|
+
const handleTriggerKeyDown = (event) => {
|
|
1875
|
+
onKeyDown?.(event);
|
|
1876
|
+
if (event.defaultPrevented) return;
|
|
1877
|
+
if (!ctx.open && triggerTypeahead.onKeyDown(event)) {
|
|
1878
|
+
event.preventDefault();
|
|
1879
|
+
}
|
|
1880
|
+
};
|
|
1881
|
+
const showClear = ctx.isClearable && ctx.hasSelection && !ctx.isLoading && !ctx.isDisabled;
|
|
1774
1882
|
const sizeKey = size ?? "md";
|
|
1775
1883
|
const iconClass = TRIGGER_ICON_CLASSES[sizeKey];
|
|
1776
1884
|
const clearBoxClass = TRIGGER_CLEAR_BOX_CLASSES[sizeKey];
|
|
1777
1885
|
const dividerClass = TRIGGER_DIVIDER_CLASSES[sizeKey];
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1886
|
+
const clearOffsetClass = TRIGGER_CLEAR_OFFSET_CLASSES[sizeKey];
|
|
1887
|
+
const labelledBy = !ariaLabel ? ctx.labelId : void 0;
|
|
1888
|
+
return /* @__PURE__ */ jsxs("span", { className: "relative inline-flex w-full", children: [
|
|
1889
|
+
/* @__PURE__ */ jsx(Announce, { children: ctx.isLoading ? ctx.loadingLabel : "" }),
|
|
1890
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
1891
|
+
"button",
|
|
1892
|
+
{
|
|
1893
|
+
ref,
|
|
1894
|
+
type: "button",
|
|
1895
|
+
id: ctx.fieldId,
|
|
1896
|
+
disabled: ctx.isDisabled || ctx.isLoading,
|
|
1897
|
+
"aria-busy": ctx.isLoading || void 0,
|
|
1898
|
+
"aria-haspopup": "listbox",
|
|
1899
|
+
"aria-controls": ctx.listboxId,
|
|
1900
|
+
"aria-activedescendant": ctx.open ? ctx.activeDescendant ?? void 0 : void 0,
|
|
1901
|
+
"aria-invalid": triggerState === "invalid" || void 0,
|
|
1902
|
+
"aria-label": ariaLabel,
|
|
1903
|
+
"aria-labelledby": labelledBy,
|
|
1904
|
+
"aria-describedby": ctx.describedBy,
|
|
1905
|
+
"data-state": triggerDataState(ctx.open, ctx.isLoading, ctx.isDisabled, ctx.isInvalid),
|
|
1906
|
+
className: cn(selectTriggerVariants({ size, state: triggerState }), className),
|
|
1907
|
+
onKeyDown: handleTriggerKeyDown,
|
|
1908
|
+
...rest,
|
|
1909
|
+
children: [
|
|
1910
|
+
children ?? /* @__PURE__ */ jsx(SelectValue, {}),
|
|
1911
|
+
/* @__PURE__ */ jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-1.5", children: [
|
|
1912
|
+
showClear && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1913
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: clearBoxClass }),
|
|
1914
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, className: cn("w-px bg-foreground/20", dividerClass) })
|
|
1915
|
+
] }),
|
|
1916
|
+
ctx.isLoading ? /* @__PURE__ */ jsx(Loader2, { className: cn(iconClass, "animate-spin text-subtle-foreground") }) : /* @__PURE__ */ jsx(
|
|
1917
|
+
ChevronDown,
|
|
1793
1918
|
{
|
|
1794
|
-
role: "button",
|
|
1795
|
-
tabIndex: 0,
|
|
1796
|
-
"aria-label": "Clear selection",
|
|
1797
|
-
onClick: (e) => {
|
|
1798
|
-
e.stopPropagation();
|
|
1799
|
-
ctx.onClear();
|
|
1800
|
-
},
|
|
1801
|
-
onPointerDown: (e) => e.stopPropagation(),
|
|
1802
|
-
onKeyDown: (e) => {
|
|
1803
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
1804
|
-
e.preventDefault();
|
|
1805
|
-
e.stopPropagation();
|
|
1806
|
-
ctx.onClear();
|
|
1807
|
-
}
|
|
1808
|
-
},
|
|
1809
1919
|
className: cn(
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1920
|
+
iconClass,
|
|
1921
|
+
"text-muted-foreground transition-transform",
|
|
1922
|
+
ctx.open && "rotate-180"
|
|
1923
|
+
)
|
|
1814
1924
|
}
|
|
1815
|
-
)
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1925
|
+
)
|
|
1926
|
+
] })
|
|
1927
|
+
]
|
|
1928
|
+
}
|
|
1929
|
+
) }),
|
|
1930
|
+
showClear && /* @__PURE__ */ jsx(
|
|
1931
|
+
"button",
|
|
1932
|
+
{
|
|
1933
|
+
type: "button",
|
|
1934
|
+
"aria-label": ctx.clearLabel,
|
|
1935
|
+
onClick: () => ctx.onClear(),
|
|
1936
|
+
className: cn(
|
|
1937
|
+
"absolute top-1/2 grid min-h-6 min-w-6 -translate-y-1/2 place-items-center rounded-full text-subtle-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1938
|
+
clearBoxClass,
|
|
1939
|
+
clearOffsetClass
|
|
1940
|
+
),
|
|
1941
|
+
children: /* @__PURE__ */ jsx(X, { className: iconClass })
|
|
1942
|
+
}
|
|
1943
|
+
)
|
|
1944
|
+
] });
|
|
1832
1945
|
}
|
|
1833
1946
|
);
|
|
1834
1947
|
function SelectValue({ placeholder, children }) {
|
|
1835
1948
|
const ctx = useSelectContext();
|
|
1836
1949
|
if (children) return /* @__PURE__ */ jsx("span", { className: "truncate", children });
|
|
1837
1950
|
const match = ctx.hasSelection ? ctx.items.find((i) => ctx.keyEquals(i.itemKey, ctx.selectedKey)) : void 0;
|
|
1838
|
-
const label = match?.label ?? (ctx.hasSelection ? ctx.serializeKey(ctx.selectedKey) : null);
|
|
1951
|
+
const label = match?.label ?? ctx.selectedLabel ?? (ctx.hasSelection ? ctx.getCachedLabel(ctx.selectedKey) : null) ?? (ctx.hasSelection ? ctx.getOptionLabel?.(ctx.selectedKey) : null) ?? (ctx.hasSelection ? ctx.serializeKey(ctx.selectedKey) : null);
|
|
1839
1952
|
return /* @__PURE__ */ jsx("span", { className: cn("truncate text-left", !label && "text-subtle-foreground"), children: label ?? placeholder });
|
|
1840
1953
|
}
|
|
1954
|
+
var FORWARDED_NAV_KEYS = /* @__PURE__ */ new Set(["ArrowDown", "ArrowUp", "Home", "End", "PageDown", "PageUp", "Enter"]);
|
|
1841
1955
|
function SelectContent({
|
|
1842
1956
|
className,
|
|
1843
|
-
|
|
1957
|
+
isSearchable = false,
|
|
1844
1958
|
searchPlaceholder = "Search\u2026",
|
|
1845
1959
|
noResultsLabel = "No results",
|
|
1846
1960
|
matchWidth = false,
|
|
@@ -1855,6 +1969,21 @@ function SelectContent({
|
|
|
1855
1969
|
const hasItems = ctx.items.length > 0;
|
|
1856
1970
|
const visibleCount = ctx.query ? ctx.items.filter((i) => i.text.toLowerCase().includes(ctx.query.toLowerCase())).length : ctx.items.length;
|
|
1857
1971
|
const showEmpty = hasItems && visibleCount === 0;
|
|
1972
|
+
const handleSearchKeyDown = useCallback(
|
|
1973
|
+
(event) => {
|
|
1974
|
+
if (event.key === "Escape") {
|
|
1975
|
+
return;
|
|
1976
|
+
}
|
|
1977
|
+
if (!FORWARDED_NAV_KEYS.has(event.key)) return;
|
|
1978
|
+
const node = ctx.listboxRef.current;
|
|
1979
|
+
if (!node) return;
|
|
1980
|
+
event.preventDefault();
|
|
1981
|
+
node.dispatchEvent(
|
|
1982
|
+
new KeyboardEvent("keydown", { key: event.key, bubbles: true, cancelable: true })
|
|
1983
|
+
);
|
|
1984
|
+
},
|
|
1985
|
+
[ctx.listboxRef]
|
|
1986
|
+
);
|
|
1858
1987
|
return /* @__PURE__ */ jsxs(
|
|
1859
1988
|
PopoverContent,
|
|
1860
1989
|
{
|
|
@@ -1865,19 +1994,28 @@ function SelectContent({
|
|
|
1865
1994
|
elevation,
|
|
1866
1995
|
className: cn(
|
|
1867
1996
|
"overflow-hidden",
|
|
1868
|
-
|
|
1997
|
+
/* Truncate the option's first content child (the label) so trailing meta stays visible.
|
|
1998
|
+
Targets Listbox.Item's stable `data-listbox-item-content` wrapper rather than a deep
|
|
1999
|
+
`[role=option]>span.flex-1>:first-child` chain that breaks if the markup shifts. */
|
|
2000
|
+
matchWidth ? "w-(--anchor-width) [&_[data-listbox-item-content]>:first-child]:truncate" : "w-auto min-w-(--anchor-width)",
|
|
1869
2001
|
className
|
|
1870
2002
|
),
|
|
1871
2003
|
children: [
|
|
1872
|
-
|
|
2004
|
+
isSearchable && /* @__PURE__ */ jsx("div", { className: "border-b border-border p-1", children: /* @__PURE__ */ jsx(
|
|
1873
2005
|
SearchInput,
|
|
1874
2006
|
{
|
|
1875
2007
|
size: "sm",
|
|
1876
2008
|
autoFocus: true,
|
|
2009
|
+
role: "combobox",
|
|
2010
|
+
"aria-expanded": true,
|
|
2011
|
+
"aria-controls": ctx.listboxId,
|
|
2012
|
+
"aria-activedescendant": ctx.activeDescendant ?? void 0,
|
|
2013
|
+
"aria-autocomplete": "list",
|
|
1877
2014
|
value: ctx.query,
|
|
1878
2015
|
onChange: (e) => ctx.setQuery(e.target.value),
|
|
2016
|
+
onKeyDown: handleSearchKeyDown,
|
|
1879
2017
|
placeholder: searchPlaceholder,
|
|
1880
|
-
|
|
2018
|
+
isClearable: true,
|
|
1881
2019
|
onClear: () => ctx.setQuery(""),
|
|
1882
2020
|
className: "rounded-sm"
|
|
1883
2021
|
}
|
|
@@ -1885,6 +2023,10 @@ function SelectContent({
|
|
|
1885
2023
|
/* @__PURE__ */ jsxs(
|
|
1886
2024
|
Listbox,
|
|
1887
2025
|
{
|
|
2026
|
+
ref: ctx.listboxRef,
|
|
2027
|
+
id: ctx.listboxId,
|
|
2028
|
+
tabIndex: isSearchable ? -1 : 0,
|
|
2029
|
+
onActiveChange: ctx.setActiveDescendant,
|
|
1888
2030
|
value: ctx.selectedKey ?? void 0,
|
|
1889
2031
|
onValueChange: (k) => {
|
|
1890
2032
|
if (k === null || k === void 0) return;
|
|
@@ -1895,12 +2037,22 @@ function SelectContent({
|
|
|
1895
2037
|
variant: "flat",
|
|
1896
2038
|
radius: "none",
|
|
1897
2039
|
children: [
|
|
2040
|
+
ctx.isLoading && /* @__PURE__ */ jsxs(
|
|
2041
|
+
"div",
|
|
2042
|
+
{
|
|
2043
|
+
role: "status",
|
|
2044
|
+
className: "flex items-center gap-2 px-2 py-2 text-sm text-subtle-foreground",
|
|
2045
|
+
children: [
|
|
2046
|
+
/* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }),
|
|
2047
|
+
/* @__PURE__ */ jsx("span", { children: ctx.loadingLabel })
|
|
2048
|
+
]
|
|
2049
|
+
}
|
|
2050
|
+
),
|
|
1898
2051
|
children,
|
|
1899
|
-
showEmpty && /* @__PURE__ */ jsx(ListboxEmpty, { children: noResultsLabel })
|
|
2052
|
+
!ctx.isLoading && showEmpty && /* @__PURE__ */ jsx(ListboxEmpty, { children: noResultsLabel })
|
|
1900
2053
|
]
|
|
1901
2054
|
}
|
|
1902
|
-
)
|
|
1903
|
-
ctx.name && ctx.hasSelection && /* @__PURE__ */ jsx("input", { type: "hidden", name: ctx.name, value: ctx.serializeKey(ctx.selectedKey) })
|
|
2055
|
+
)
|
|
1904
2056
|
]
|
|
1905
2057
|
}
|
|
1906
2058
|
);
|
|
@@ -1915,20 +2067,22 @@ function extractText(node) {
|
|
|
1915
2067
|
}
|
|
1916
2068
|
return "";
|
|
1917
2069
|
}
|
|
1918
|
-
var SelectItem = forwardRef(function SelectItem2({ itemKey, value, label, children, text,
|
|
2070
|
+
var SelectItem = forwardRef(function SelectItem2({ itemKey, value, label, children, text, isDisabled, className }, ref) {
|
|
1919
2071
|
const ctx = useSelectContext();
|
|
1920
|
-
const { registerItem, query } = ctx;
|
|
2072
|
+
const { registerItem, unregisterItem, query } = ctx;
|
|
1921
2073
|
const resolvedValue = value === void 0 ? itemKey : value;
|
|
1922
|
-
const itemText = useMemo(
|
|
1923
|
-
(
|
|
1924
|
-
|
|
1925
|
-
|
|
2074
|
+
const itemText = useMemo(() => {
|
|
2075
|
+
if (text !== void 0) return text;
|
|
2076
|
+
const fromLabel = extractText(label);
|
|
2077
|
+
return fromLabel !== "" ? fromLabel : extractText(children);
|
|
2078
|
+
}, [text, label, children]);
|
|
1926
2079
|
useEffect(() => {
|
|
1927
|
-
registerItem({ itemKey, value: resolvedValue, label, text: itemText });
|
|
1928
|
-
|
|
2080
|
+
registerItem({ itemKey, value: resolvedValue, label, text: itemText, isDisabled: isDisabled ?? false });
|
|
2081
|
+
return () => unregisterItem(itemKey);
|
|
2082
|
+
}, [registerItem, unregisterItem, itemKey, resolvedValue, label, itemText, isDisabled]);
|
|
1929
2083
|
const matchesQuery = !query || itemText.toLowerCase().includes(query.toLowerCase());
|
|
1930
2084
|
if (!matchesQuery) return null;
|
|
1931
|
-
return /* @__PURE__ */ jsx(ListboxItem, { ref, value: itemKey,
|
|
2085
|
+
return /* @__PURE__ */ jsx(ListboxItem, { ref, value: itemKey, isDisabled, className, children: children ?? label });
|
|
1932
2086
|
});
|
|
1933
2087
|
Select.Trigger = SelectTrigger;
|
|
1934
2088
|
Select.Value = SelectValue;
|
|
@@ -1947,9 +2101,9 @@ function MultiSelect({
|
|
|
1947
2101
|
value,
|
|
1948
2102
|
defaultValue,
|
|
1949
2103
|
onValueChange,
|
|
1950
|
-
|
|
2104
|
+
isDisabled = false,
|
|
1951
2105
|
name,
|
|
1952
|
-
|
|
2106
|
+
isInvalid,
|
|
1953
2107
|
defaultOpen = false,
|
|
1954
2108
|
open: openProp,
|
|
1955
2109
|
onOpenChange,
|
|
@@ -1987,9 +2141,9 @@ function MultiSelect({
|
|
|
1987
2141
|
labels,
|
|
1988
2142
|
registerLabel,
|
|
1989
2143
|
unregisterLabel,
|
|
1990
|
-
|
|
2144
|
+
isDisabled,
|
|
1991
2145
|
name,
|
|
1992
|
-
|
|
2146
|
+
isInvalid
|
|
1993
2147
|
}),
|
|
1994
2148
|
[
|
|
1995
2149
|
openState,
|
|
@@ -1999,32 +2153,35 @@ function MultiSelect({
|
|
|
1999
2153
|
labels,
|
|
2000
2154
|
registerLabel,
|
|
2001
2155
|
unregisterLabel,
|
|
2002
|
-
|
|
2156
|
+
isDisabled,
|
|
2003
2157
|
name,
|
|
2004
|
-
|
|
2158
|
+
isInvalid
|
|
2005
2159
|
]
|
|
2006
2160
|
);
|
|
2007
|
-
return /* @__PURE__ */ jsx(MultiSelectContext.Provider, { value: ctx, children: /* @__PURE__ */
|
|
2161
|
+
return /* @__PURE__ */ jsx(MultiSelectContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs(
|
|
2008
2162
|
Popover,
|
|
2009
2163
|
{
|
|
2010
2164
|
open: openState,
|
|
2011
2165
|
onOpenChange: setOpenState,
|
|
2012
2166
|
placement,
|
|
2013
2167
|
offset: 6,
|
|
2014
|
-
children
|
|
2168
|
+
children: [
|
|
2169
|
+
children,
|
|
2170
|
+
name && valuesState.map((v) => /* @__PURE__ */ jsx("input", { type: "hidden", name, value: v }, v))
|
|
2171
|
+
]
|
|
2015
2172
|
}
|
|
2016
2173
|
) });
|
|
2017
2174
|
}
|
|
2018
2175
|
var MultiSelectTrigger = forwardRef(
|
|
2019
2176
|
function MultiSelectTrigger2({ size, state, className, onKeyDown, children, ...rest }, ref) {
|
|
2020
2177
|
const ctx = useMultiSelectContext();
|
|
2021
|
-
const triggerState = state ?? (ctx.
|
|
2178
|
+
const triggerState = state ?? (ctx.isInvalid ? "invalid" : "default");
|
|
2022
2179
|
return /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
2023
2180
|
"button",
|
|
2024
2181
|
{
|
|
2025
2182
|
ref,
|
|
2026
2183
|
type: "button",
|
|
2027
|
-
disabled: ctx.
|
|
2184
|
+
disabled: ctx.isDisabled,
|
|
2028
2185
|
onKeyDown: (e) => {
|
|
2029
2186
|
onKeyDown?.(e);
|
|
2030
2187
|
if (e.defaultPrevented) return;
|
|
@@ -2065,7 +2222,7 @@ function MultiSelectTags({ placeholder }) {
|
|
|
2065
2222
|
className: "inline-flex items-center gap-1 rounded-sm bg-muted px-1.5 py-0.5 text-xs",
|
|
2066
2223
|
children: [
|
|
2067
2224
|
ctx.labels[v] ?? v,
|
|
2068
|
-
!ctx.
|
|
2225
|
+
!ctx.isDisabled && /* @__PURE__ */ jsx(
|
|
2069
2226
|
"span",
|
|
2070
2227
|
{
|
|
2071
2228
|
role: "button",
|
|
@@ -2095,7 +2252,7 @@ function MultiSelectContent({
|
|
|
2095
2252
|
children
|
|
2096
2253
|
}) {
|
|
2097
2254
|
const ctx = useMultiSelectContext();
|
|
2098
|
-
return /* @__PURE__ */
|
|
2255
|
+
return /* @__PURE__ */ jsx(
|
|
2099
2256
|
PopoverContent,
|
|
2100
2257
|
{
|
|
2101
2258
|
variant,
|
|
@@ -2104,31 +2261,27 @@ function MultiSelectContent({
|
|
|
2104
2261
|
padding: padding ?? "none",
|
|
2105
2262
|
elevation,
|
|
2106
2263
|
className: cn("w-auto min-w-[var(--anchor-width)] overflow-hidden", className),
|
|
2107
|
-
children:
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
),
|
|
2119
|
-
ctx.name && ctx.values.map((v) => /* @__PURE__ */ jsx("input", { type: "hidden", name: ctx.name, value: v }, v))
|
|
2120
|
-
]
|
|
2264
|
+
children: /* @__PURE__ */ jsx(
|
|
2265
|
+
Listbox,
|
|
2266
|
+
{
|
|
2267
|
+
isMultiple: true,
|
|
2268
|
+
value: ctx.values,
|
|
2269
|
+
onValueChange: (v) => ctx.setValues(v),
|
|
2270
|
+
variant: "flat",
|
|
2271
|
+
radius: "none",
|
|
2272
|
+
children
|
|
2273
|
+
}
|
|
2274
|
+
)
|
|
2121
2275
|
}
|
|
2122
2276
|
);
|
|
2123
2277
|
}
|
|
2124
2278
|
var MultiSelectItem = forwardRef(
|
|
2125
2279
|
function MultiSelectItem2(props, ref) {
|
|
2126
2280
|
const ctx = useMultiSelectContext();
|
|
2127
|
-
const { registerLabel
|
|
2281
|
+
const { registerLabel } = ctx;
|
|
2128
2282
|
useEffect(() => {
|
|
2129
2283
|
registerLabel(props.value, props.children);
|
|
2130
|
-
|
|
2131
|
-
}, [registerLabel, unregisterLabel, props.value, props.children]);
|
|
2284
|
+
}, [registerLabel, props.value, props.children]);
|
|
2132
2285
|
return /* @__PURE__ */ jsx(ListboxItem, { ref, ...props });
|
|
2133
2286
|
}
|
|
2134
2287
|
);
|
|
@@ -2152,8 +2305,8 @@ function Combobox({
|
|
|
2152
2305
|
inputValue,
|
|
2153
2306
|
defaultInputValue,
|
|
2154
2307
|
onInputChange,
|
|
2155
|
-
|
|
2156
|
-
|
|
2308
|
+
isDisabled = false,
|
|
2309
|
+
isInvalid,
|
|
2157
2310
|
name,
|
|
2158
2311
|
defaultOpen = false,
|
|
2159
2312
|
open: openProp,
|
|
@@ -2178,6 +2331,7 @@ function Combobox({
|
|
|
2178
2331
|
});
|
|
2179
2332
|
const itemsRef = useRef([]);
|
|
2180
2333
|
const inputRef = useRef(null);
|
|
2334
|
+
const contentRef = useRef(null);
|
|
2181
2335
|
const [activeId, setActiveId] = useState(null);
|
|
2182
2336
|
const listboxId = useId$1();
|
|
2183
2337
|
const registerItem = useCallback((entry) => {
|
|
@@ -2213,9 +2367,10 @@ function Combobox({
|
|
|
2213
2367
|
unregisterItem,
|
|
2214
2368
|
itemsRef,
|
|
2215
2369
|
inputRef,
|
|
2370
|
+
contentRef,
|
|
2216
2371
|
listboxId,
|
|
2217
|
-
|
|
2218
|
-
|
|
2372
|
+
isDisabled,
|
|
2373
|
+
isInvalid,
|
|
2219
2374
|
selectItem
|
|
2220
2375
|
}),
|
|
2221
2376
|
[
|
|
@@ -2229,8 +2384,8 @@ function Combobox({
|
|
|
2229
2384
|
registerItem,
|
|
2230
2385
|
unregisterItem,
|
|
2231
2386
|
listboxId,
|
|
2232
|
-
|
|
2233
|
-
|
|
2387
|
+
isDisabled,
|
|
2388
|
+
isInvalid,
|
|
2234
2389
|
selectItem
|
|
2235
2390
|
]
|
|
2236
2391
|
);
|
|
@@ -2240,12 +2395,19 @@ function Combobox({
|
|
|
2240
2395
|
] });
|
|
2241
2396
|
}
|
|
2242
2397
|
var ComboboxInput = forwardRef(
|
|
2243
|
-
function ComboboxInput2({ className, size, state, onKeyDown, onFocus, ...rest }, forwardedRef) {
|
|
2398
|
+
function ComboboxInput2({ className, size, state, onKeyDown, onFocus, onBlur, ...rest }, forwardedRef) {
|
|
2244
2399
|
const ctx = useComboboxContext();
|
|
2245
|
-
const inputState = state ?? (ctx.
|
|
2400
|
+
const inputState = state ?? (ctx.isInvalid ? "invalid" : "default");
|
|
2401
|
+
const setActiveAndScroll = useCallback(
|
|
2402
|
+
(id) => {
|
|
2403
|
+
ctx.setActiveId(id);
|
|
2404
|
+
document.getElementById(id)?.scrollIntoView({ block: "nearest" });
|
|
2405
|
+
},
|
|
2406
|
+
[ctx]
|
|
2407
|
+
);
|
|
2246
2408
|
const moveActive = useCallback(
|
|
2247
2409
|
(direction) => {
|
|
2248
|
-
const list = ctx.itemsRef.current.filter((i) => !i.
|
|
2410
|
+
const list = ctx.itemsRef.current.filter((i) => !i.isDisabled);
|
|
2249
2411
|
if (list.length === 0) return;
|
|
2250
2412
|
const idx = list.findIndex((i) => i.id === ctx.activeId);
|
|
2251
2413
|
let nextIdx = idx + direction;
|
|
@@ -2253,13 +2415,13 @@ var ComboboxInput = forwardRef(
|
|
|
2253
2415
|
if (nextIdx < 0) nextIdx = list.length - 1;
|
|
2254
2416
|
if (nextIdx >= list.length) nextIdx = 0;
|
|
2255
2417
|
const next = list[nextIdx];
|
|
2256
|
-
if (next)
|
|
2418
|
+
if (next) setActiveAndScroll(next.id);
|
|
2257
2419
|
},
|
|
2258
|
-
[ctx]
|
|
2420
|
+
[ctx, setActiveAndScroll]
|
|
2259
2421
|
);
|
|
2260
2422
|
const handleKeyDown = (e) => {
|
|
2261
2423
|
onKeyDown?.(e);
|
|
2262
|
-
if (e.defaultPrevented || ctx.
|
|
2424
|
+
if (e.defaultPrevented || ctx.isDisabled) return;
|
|
2263
2425
|
switch (e.key) {
|
|
2264
2426
|
case "ArrowDown":
|
|
2265
2427
|
e.preventDefault();
|
|
@@ -2274,22 +2436,25 @@ var ComboboxInput = forwardRef(
|
|
|
2274
2436
|
case "Home":
|
|
2275
2437
|
if (ctx.open) {
|
|
2276
2438
|
e.preventDefault();
|
|
2277
|
-
const first = ctx.itemsRef.current.find((i) => !i.
|
|
2278
|
-
if (first)
|
|
2439
|
+
const first = ctx.itemsRef.current.find((i) => !i.isDisabled);
|
|
2440
|
+
if (first) setActiveAndScroll(first.id);
|
|
2279
2441
|
}
|
|
2280
2442
|
break;
|
|
2281
2443
|
case "End":
|
|
2282
2444
|
if (ctx.open) {
|
|
2283
2445
|
e.preventDefault();
|
|
2284
|
-
const list = ctx.itemsRef.current.filter((i) => !i.
|
|
2446
|
+
const list = ctx.itemsRef.current.filter((i) => !i.isDisabled);
|
|
2285
2447
|
const last = list[list.length - 1];
|
|
2286
|
-
if (last)
|
|
2448
|
+
if (last) setActiveAndScroll(last.id);
|
|
2287
2449
|
}
|
|
2288
2450
|
break;
|
|
2451
|
+
case "Tab":
|
|
2452
|
+
if (ctx.open) ctx.setOpen(false);
|
|
2453
|
+
break;
|
|
2289
2454
|
case "Enter": {
|
|
2290
2455
|
if (!ctx.open || !ctx.activeId) return;
|
|
2291
2456
|
const entry = ctx.itemsRef.current.find((i) => i.id === ctx.activeId);
|
|
2292
|
-
if (!entry || entry.
|
|
2457
|
+
if (!entry || entry.isDisabled) return;
|
|
2293
2458
|
e.preventDefault();
|
|
2294
2459
|
ctx.selectItem(entry);
|
|
2295
2460
|
break;
|
|
@@ -2316,8 +2481,8 @@ var ComboboxInput = forwardRef(
|
|
|
2316
2481
|
"aria-controls": ctx.listboxId,
|
|
2317
2482
|
"aria-activedescendant": ctx.activeId ?? void 0,
|
|
2318
2483
|
"aria-autocomplete": "list",
|
|
2319
|
-
"aria-disabled": ctx.
|
|
2320
|
-
disabled: ctx.
|
|
2484
|
+
"aria-disabled": ctx.isDisabled || void 0,
|
|
2485
|
+
disabled: ctx.isDisabled,
|
|
2321
2486
|
value: ctx.inputValue,
|
|
2322
2487
|
onChange: (e) => {
|
|
2323
2488
|
ctx.setInputValue(e.target.value);
|
|
@@ -2328,6 +2493,14 @@ var ComboboxInput = forwardRef(
|
|
|
2328
2493
|
onFocus?.(e);
|
|
2329
2494
|
if (!ctx.open) ctx.setOpen(true);
|
|
2330
2495
|
},
|
|
2496
|
+
onBlur: (e) => {
|
|
2497
|
+
onBlur?.(e);
|
|
2498
|
+
const next = e.relatedTarget;
|
|
2499
|
+
if (!next || !ctx.open) return;
|
|
2500
|
+
if (ctx.inputRef.current?.contains(next)) return;
|
|
2501
|
+
if (ctx.contentRef.current?.contains(next)) return;
|
|
2502
|
+
ctx.setOpen(false);
|
|
2503
|
+
},
|
|
2331
2504
|
onKeyDown: handleKeyDown,
|
|
2332
2505
|
className: cn(inputBaseVariants({ size, state: inputState }), className),
|
|
2333
2506
|
...rest
|
|
@@ -2347,6 +2520,13 @@ function ComboboxContent({
|
|
|
2347
2520
|
children
|
|
2348
2521
|
}) {
|
|
2349
2522
|
const ctx = useComboboxContext();
|
|
2523
|
+
useEffect(() => {
|
|
2524
|
+
if (!ctx.open) return;
|
|
2525
|
+
const list = ctx.itemsRef.current.filter((i) => !i.isDisabled);
|
|
2526
|
+
if (ctx.activeId && !list.some((i) => i.id === ctx.activeId)) {
|
|
2527
|
+
ctx.setActiveId(list[0]?.id ?? null);
|
|
2528
|
+
}
|
|
2529
|
+
});
|
|
2350
2530
|
if (!ctx.open) return null;
|
|
2351
2531
|
const resolvedPadding = padding ?? "xs";
|
|
2352
2532
|
return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
|
|
@@ -2367,6 +2547,7 @@ function ComboboxContent({
|
|
|
2367
2547
|
children: /* @__PURE__ */ jsx(
|
|
2368
2548
|
"div",
|
|
2369
2549
|
{
|
|
2550
|
+
ref: ctx.contentRef,
|
|
2370
2551
|
id: ctx.listboxId,
|
|
2371
2552
|
role: "listbox",
|
|
2372
2553
|
className: cn(
|
|
@@ -2389,22 +2570,22 @@ function ComboboxContent({
|
|
|
2389
2570
|
}
|
|
2390
2571
|
) });
|
|
2391
2572
|
}
|
|
2392
|
-
var ComboboxItem = forwardRef(function ComboboxItem2({ value,
|
|
2573
|
+
var ComboboxItem = forwardRef(function ComboboxItem2({ value, isDisabled = false, className, children, onClick, onPointerEnter, ...rest }, forwardedRef) {
|
|
2393
2574
|
const ctx = useComboboxContext();
|
|
2394
2575
|
const id = useId$1();
|
|
2395
2576
|
useEffect(() => {
|
|
2396
|
-
ctx.registerItem({ id, value,
|
|
2577
|
+
ctx.registerItem({ id, value, isDisabled, label: children });
|
|
2397
2578
|
return () => ctx.unregisterItem(id);
|
|
2398
|
-
}, [ctx, id, value,
|
|
2579
|
+
}, [ctx, id, value, isDisabled, children]);
|
|
2399
2580
|
useEffect(() => {
|
|
2400
2581
|
if (!ctx.activeId) {
|
|
2401
|
-
const list = ctx.itemsRef.current.filter((i) => !i.
|
|
2582
|
+
const list = ctx.itemsRef.current.filter((i) => !i.isDisabled);
|
|
2402
2583
|
if (list[0]) ctx.setActiveId(list[0].id);
|
|
2403
2584
|
}
|
|
2404
2585
|
}, [ctx]);
|
|
2405
2586
|
const isSelected = ctx.value === value;
|
|
2406
2587
|
const isActive = ctx.activeId === id;
|
|
2407
|
-
const state =
|
|
2588
|
+
const state = isDisabled ? "disabled" : isSelected ? "selected" : isActive ? "active" : "default";
|
|
2408
2589
|
return /* @__PURE__ */ jsxs(
|
|
2409
2590
|
"div",
|
|
2410
2591
|
{
|
|
@@ -2412,17 +2593,17 @@ var ComboboxItem = forwardRef(function ComboboxItem2({ value, disabled = false,
|
|
|
2412
2593
|
id,
|
|
2413
2594
|
role: "option",
|
|
2414
2595
|
"aria-selected": isSelected,
|
|
2415
|
-
"aria-disabled":
|
|
2596
|
+
"aria-disabled": isDisabled || void 0,
|
|
2416
2597
|
"data-active": isActive ? "" : void 0,
|
|
2417
2598
|
"data-selected": isSelected ? "" : void 0,
|
|
2418
2599
|
onClick: (e) => {
|
|
2419
2600
|
onClick?.(e);
|
|
2420
|
-
if (e.defaultPrevented ||
|
|
2421
|
-
ctx.selectItem({ id, value,
|
|
2601
|
+
if (e.defaultPrevented || isDisabled) return;
|
|
2602
|
+
ctx.selectItem({ id, value, isDisabled, label: children });
|
|
2422
2603
|
},
|
|
2423
2604
|
onPointerEnter: (e) => {
|
|
2424
2605
|
onPointerEnter?.(e);
|
|
2425
|
-
if (!
|
|
2606
|
+
if (!isDisabled) ctx.setActiveId(id);
|
|
2426
2607
|
},
|
|
2427
2608
|
className: cn(listboxItemVariants({ state }), className),
|
|
2428
2609
|
...rest,
|
|
@@ -2452,6 +2633,7 @@ Combobox.Item = ComboboxItem;
|
|
|
2452
2633
|
Combobox.Group = ComboboxGroup;
|
|
2453
2634
|
Combobox.Separator = ComboboxSeparator;
|
|
2454
2635
|
Combobox.Empty = ComboboxEmpty;
|
|
2636
|
+
var MAX_DISABLED_SKIP = 400;
|
|
2455
2637
|
function MonthGrid({
|
|
2456
2638
|
viewMonth,
|
|
2457
2639
|
onViewMonthChange,
|
|
@@ -2463,56 +2645,84 @@ function MonthGrid({
|
|
|
2463
2645
|
"aria-label": ariaLabel = "Calendar",
|
|
2464
2646
|
className
|
|
2465
2647
|
}) {
|
|
2648
|
+
const rootRef = useRef(null);
|
|
2466
2649
|
const gridRef = useRef(null);
|
|
2650
|
+
const interactedRef = useRef(false);
|
|
2467
2651
|
useEffect(() => {
|
|
2652
|
+
if (!interactedRef.current) return;
|
|
2468
2653
|
const cell = gridRef.current?.querySelector(
|
|
2469
2654
|
`[data-date="${focusedDate.toDateString()}"]`
|
|
2470
2655
|
);
|
|
2471
2656
|
cell?.focus();
|
|
2472
2657
|
}, [focusedDate]);
|
|
2658
|
+
useEffect(() => {
|
|
2659
|
+
const raf = requestAnimationFrame(() => {
|
|
2660
|
+
if (!rootRef.current?.contains(document.activeElement)) return;
|
|
2661
|
+
gridRef.current?.querySelector('button[tabindex="0"]')?.focus();
|
|
2662
|
+
});
|
|
2663
|
+
return () => cancelAnimationFrame(raf);
|
|
2664
|
+
}, []);
|
|
2473
2665
|
const moveFocus = useCallback(
|
|
2474
|
-
(next) => {
|
|
2475
|
-
|
|
2476
|
-
|
|
2666
|
+
(next, dir) => {
|
|
2667
|
+
let target = next;
|
|
2668
|
+
if (isDayDisabled) {
|
|
2669
|
+
let steps = 0;
|
|
2670
|
+
while (isDayDisabled(target) && steps < MAX_DISABLED_SKIP) {
|
|
2671
|
+
target = addDays(target, dir);
|
|
2672
|
+
steps += 1;
|
|
2673
|
+
}
|
|
2674
|
+
if (isDayDisabled(target)) {
|
|
2675
|
+
target = next;
|
|
2676
|
+
steps = 0;
|
|
2677
|
+
while (isDayDisabled(target) && steps < MAX_DISABLED_SKIP) {
|
|
2678
|
+
target = addDays(target, -dir);
|
|
2679
|
+
steps += 1;
|
|
2680
|
+
}
|
|
2681
|
+
}
|
|
2682
|
+
if (isDayDisabled(target)) return;
|
|
2683
|
+
}
|
|
2684
|
+
interactedRef.current = true;
|
|
2685
|
+
if (target.getMonth() !== viewMonth.getMonth() || target.getFullYear() !== viewMonth.getFullYear()) {
|
|
2686
|
+
onViewMonthChange(startOfMonth(target));
|
|
2477
2687
|
}
|
|
2478
|
-
onFocusedDateChange(
|
|
2688
|
+
onFocusedDateChange(target);
|
|
2479
2689
|
},
|
|
2480
|
-
[viewMonth, onViewMonthChange, onFocusedDateChange]
|
|
2690
|
+
[isDayDisabled, viewMonth, onViewMonthChange, onFocusedDateChange]
|
|
2481
2691
|
);
|
|
2482
2692
|
const onCellKeyDown = useCallback(
|
|
2483
2693
|
(e, date, outOfMonth) => {
|
|
2484
2694
|
switch (e.key) {
|
|
2485
2695
|
case "ArrowRight":
|
|
2486
2696
|
e.preventDefault();
|
|
2487
|
-
moveFocus(addDays(date, 1));
|
|
2697
|
+
moveFocus(addDays(date, 1), 1);
|
|
2488
2698
|
break;
|
|
2489
2699
|
case "ArrowLeft":
|
|
2490
2700
|
e.preventDefault();
|
|
2491
|
-
moveFocus(addDays(date, -1));
|
|
2701
|
+
moveFocus(addDays(date, -1), -1);
|
|
2492
2702
|
break;
|
|
2493
2703
|
case "ArrowDown":
|
|
2494
2704
|
e.preventDefault();
|
|
2495
|
-
moveFocus(addDays(date, 7));
|
|
2705
|
+
moveFocus(addDays(date, 7), 1);
|
|
2496
2706
|
break;
|
|
2497
2707
|
case "ArrowUp":
|
|
2498
2708
|
e.preventDefault();
|
|
2499
|
-
moveFocus(addDays(date, -7));
|
|
2709
|
+
moveFocus(addDays(date, -7), -1);
|
|
2500
2710
|
break;
|
|
2501
2711
|
case "Home":
|
|
2502
2712
|
e.preventDefault();
|
|
2503
|
-
moveFocus(addDays(date, -date.getDay()));
|
|
2713
|
+
moveFocus(addDays(date, -date.getDay()), 1);
|
|
2504
2714
|
break;
|
|
2505
2715
|
case "End":
|
|
2506
2716
|
e.preventDefault();
|
|
2507
|
-
moveFocus(addDays(date, 6 - date.getDay()));
|
|
2717
|
+
moveFocus(addDays(date, 6 - date.getDay()), -1);
|
|
2508
2718
|
break;
|
|
2509
2719
|
case "PageDown":
|
|
2510
2720
|
e.preventDefault();
|
|
2511
|
-
moveFocus(addMonths(date, e.shiftKey ? 12 : 1));
|
|
2721
|
+
moveFocus(addMonths(date, e.shiftKey ? 12 : 1), 1);
|
|
2512
2722
|
break;
|
|
2513
2723
|
case "PageUp":
|
|
2514
2724
|
e.preventDefault();
|
|
2515
|
-
moveFocus(addMonths(date, e.shiftKey ? -12 : -1));
|
|
2725
|
+
moveFocus(addMonths(date, e.shiftKey ? -12 : -1), -1);
|
|
2516
2726
|
break;
|
|
2517
2727
|
case "Enter":
|
|
2518
2728
|
case " ":
|
|
@@ -2523,12 +2733,18 @@ function MonthGrid({
|
|
|
2523
2733
|
},
|
|
2524
2734
|
[moveFocus, onDayActivate, isDayDisabled]
|
|
2525
2735
|
);
|
|
2736
|
+
const dayDisabled = (date) => isDayDisabled?.(date) ?? false;
|
|
2526
2737
|
const cells = buildMonthGrid(viewMonth.getFullYear(), viewMonth.getMonth());
|
|
2738
|
+
const weeks = Array.from({ length: 6 }, (_, w) => cells.slice(w * 7, w * 7 + 7));
|
|
2739
|
+
let tabStopDate = focusedDate;
|
|
2740
|
+
if (dayDisabled(focusedDate)) {
|
|
2741
|
+
const fallback = cells.find((c) => !c.outOfMonth && !dayDisabled(c.date)) ?? cells.find((c) => !dayDisabled(c.date));
|
|
2742
|
+
if (fallback) tabStopDate = fallback.date;
|
|
2743
|
+
}
|
|
2527
2744
|
return /* @__PURE__ */ jsxs(
|
|
2528
2745
|
"div",
|
|
2529
2746
|
{
|
|
2530
|
-
|
|
2531
|
-
"aria-label": ariaLabel,
|
|
2747
|
+
ref: rootRef,
|
|
2532
2748
|
className: cn(
|
|
2533
2749
|
"inline-flex flex-col gap-2 rounded-md border border-border bg-popover p-3 text-popover-foreground",
|
|
2534
2750
|
className
|
|
@@ -2569,9 +2785,9 @@ function MonthGrid({
|
|
|
2569
2785
|
},
|
|
2570
2786
|
w
|
|
2571
2787
|
)) }),
|
|
2572
|
-
/* @__PURE__ */ jsx("div", { ref: gridRef,
|
|
2573
|
-
const disabled =
|
|
2574
|
-
const
|
|
2788
|
+
/* @__PURE__ */ jsx("div", { ref: gridRef, role: "grid", "aria-label": ariaLabel, className: "px-1", children: weeks.map((week, weekIndex) => /* @__PURE__ */ jsx("div", { role: "row", className: "grid grid-cols-7 gap-0", children: week.map(({ date, outOfMonth }) => {
|
|
2789
|
+
const disabled = dayDisabled(date);
|
|
2790
|
+
const isTabStop = isSameDay(tabStopDate, date);
|
|
2575
2791
|
const consumerProps = dayProps?.(date, { outOfMonth }) ?? {};
|
|
2576
2792
|
const { className: cellClassName, ...consumerRest } = consumerProps;
|
|
2577
2793
|
return /* @__PURE__ */ jsx(
|
|
@@ -2584,10 +2800,10 @@ function MonthGrid({
|
|
|
2584
2800
|
"data-today": isToday(date) ? "" : void 0,
|
|
2585
2801
|
"data-out-of-month": outOfMonth ? "" : void 0,
|
|
2586
2802
|
"data-disabled": disabled ? "" : void 0,
|
|
2587
|
-
tabIndex:
|
|
2588
|
-
disabled,
|
|
2803
|
+
tabIndex: isTabStop ? 0 : -1,
|
|
2589
2804
|
onClick: () => {
|
|
2590
2805
|
if (disabled) return;
|
|
2806
|
+
interactedRef.current = true;
|
|
2591
2807
|
onDayActivate?.(date, { outOfMonth });
|
|
2592
2808
|
onFocusedDateChange(date);
|
|
2593
2809
|
if (outOfMonth) onViewMonthChange(startOfMonth(date));
|
|
@@ -2606,7 +2822,7 @@ function MonthGrid({
|
|
|
2606
2822
|
},
|
|
2607
2823
|
date.toDateString()
|
|
2608
2824
|
);
|
|
2609
|
-
}) })
|
|
2825
|
+
}) }, weekIndex)) })
|
|
2610
2826
|
]
|
|
2611
2827
|
}
|
|
2612
2828
|
);
|
|
@@ -2614,7 +2830,7 @@ function MonthGrid({
|
|
|
2614
2830
|
var Calendar = forwardRef(function Calendar2({
|
|
2615
2831
|
value,
|
|
2616
2832
|
defaultValue,
|
|
2617
|
-
|
|
2833
|
+
onValueChange,
|
|
2618
2834
|
defaultMonth,
|
|
2619
2835
|
min,
|
|
2620
2836
|
max,
|
|
@@ -2626,7 +2842,7 @@ var Calendar = forwardRef(function Calendar2({
|
|
|
2626
2842
|
const [selected, setSelected] = useControlled({
|
|
2627
2843
|
controlled: value,
|
|
2628
2844
|
default: defaultValue ?? null,
|
|
2629
|
-
onChange
|
|
2845
|
+
onChange: onValueChange
|
|
2630
2846
|
});
|
|
2631
2847
|
const [viewMonth, setViewMonth] = useState(
|
|
2632
2848
|
() => startOfMonth(defaultMonth ?? selected ?? /* @__PURE__ */ new Date())
|
|
@@ -2657,12 +2873,12 @@ var Calendar = forwardRef(function Calendar2({
|
|
|
2657
2873
|
}
|
|
2658
2874
|
) });
|
|
2659
2875
|
});
|
|
2660
|
-
var DateField = forwardRef(function DateField2({ value, defaultValue,
|
|
2876
|
+
var DateField = forwardRef(function DateField2({ value, defaultValue, onValueChange, min, max, size, state, className, id, disabled, required, ...rest }, ref) {
|
|
2661
2877
|
const ctx = useFormControl();
|
|
2662
2878
|
const [current, setCurrent] = useControlled({
|
|
2663
2879
|
controlled: value,
|
|
2664
2880
|
default: defaultValue ?? null,
|
|
2665
|
-
onChange
|
|
2881
|
+
onChange: onValueChange
|
|
2666
2882
|
});
|
|
2667
2883
|
return /* @__PURE__ */ jsx(
|
|
2668
2884
|
"input",
|
|
@@ -2689,12 +2905,12 @@ function timeToString(t) {
|
|
|
2689
2905
|
date.setHours(t.hours, t.minutes, 0, 0);
|
|
2690
2906
|
return formatISOTime(date);
|
|
2691
2907
|
}
|
|
2692
|
-
var TimeField = forwardRef(function TimeField2({ value, defaultValue,
|
|
2908
|
+
var TimeField = forwardRef(function TimeField2({ value, defaultValue, onValueChange, size, state, className, id, disabled, required, ...rest }, ref) {
|
|
2693
2909
|
const ctx = useFormControl();
|
|
2694
2910
|
const [current, setCurrent] = useControlled({
|
|
2695
2911
|
controlled: value,
|
|
2696
2912
|
default: defaultValue ?? null,
|
|
2697
|
-
onChange
|
|
2913
|
+
onChange: onValueChange
|
|
2698
2914
|
});
|
|
2699
2915
|
return /* @__PURE__ */ jsx(
|
|
2700
2916
|
"input",
|
|
@@ -2717,7 +2933,7 @@ var RangeCalendar = forwardRef(
|
|
|
2717
2933
|
function RangeCalendar2({
|
|
2718
2934
|
value,
|
|
2719
2935
|
defaultValue,
|
|
2720
|
-
|
|
2936
|
+
onValueChange,
|
|
2721
2937
|
defaultMonth,
|
|
2722
2938
|
min,
|
|
2723
2939
|
max,
|
|
@@ -2729,7 +2945,7 @@ var RangeCalendar = forwardRef(
|
|
|
2729
2945
|
const [range, setRange] = useControlled({
|
|
2730
2946
|
controlled: value,
|
|
2731
2947
|
default: defaultValue ?? null,
|
|
2732
|
-
onChange
|
|
2948
|
+
onChange: onValueChange
|
|
2733
2949
|
});
|
|
2734
2950
|
const [viewMonth, setViewMonth] = useState(
|
|
2735
2951
|
() => startOfMonth(defaultMonth ?? range?.start ?? /* @__PURE__ */ new Date())
|
|
@@ -2793,13 +3009,13 @@ var defaultFormat = (d) => d.toLocaleDateString(void 0, { year: "numeric", month
|
|
|
2793
3009
|
var DatePicker = forwardRef(function DatePicker2({
|
|
2794
3010
|
value,
|
|
2795
3011
|
defaultValue,
|
|
2796
|
-
|
|
3012
|
+
onValueChange,
|
|
2797
3013
|
placeholder = "Pick a date",
|
|
2798
3014
|
format = defaultFormat,
|
|
2799
3015
|
min,
|
|
2800
3016
|
max,
|
|
2801
3017
|
isDisabled: dayDisabled,
|
|
2802
|
-
|
|
3018
|
+
isInvalid,
|
|
2803
3019
|
name,
|
|
2804
3020
|
size,
|
|
2805
3021
|
state,
|
|
@@ -2810,13 +3026,13 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
2810
3026
|
const [date, setDate] = useControlled({
|
|
2811
3027
|
controlled: value,
|
|
2812
3028
|
default: defaultValue ?? null,
|
|
2813
|
-
onChange
|
|
3029
|
+
onChange: onValueChange
|
|
2814
3030
|
});
|
|
2815
3031
|
const [open, setOpen] = useControlled({
|
|
2816
3032
|
controlled: void 0,
|
|
2817
3033
|
default: false
|
|
2818
3034
|
});
|
|
2819
|
-
const triggerState = state ?? (
|
|
3035
|
+
const triggerState = state ?? (isInvalid ? "invalid" : "default");
|
|
2820
3036
|
return /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, placement: "bottom-start", offset: 6, children: [
|
|
2821
3037
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
2822
3038
|
"button",
|
|
@@ -2832,11 +3048,11 @@ var DatePicker = forwardRef(function DatePicker2({
|
|
|
2832
3048
|
]
|
|
2833
3049
|
}
|
|
2834
3050
|
) }),
|
|
2835
|
-
/* @__PURE__ */ jsx(PopoverContent, {
|
|
3051
|
+
/* @__PURE__ */ jsx(PopoverContent, { isBare: true, children: /* @__PURE__ */ jsx(
|
|
2836
3052
|
Calendar,
|
|
2837
3053
|
{
|
|
2838
3054
|
value: date,
|
|
2839
|
-
|
|
3055
|
+
onValueChange: (d) => {
|
|
2840
3056
|
setDate(d);
|
|
2841
3057
|
setOpen(false);
|
|
2842
3058
|
},
|
|
@@ -2854,11 +3070,11 @@ var HOURS = Array.from({ length: 24 }, (_, i) => i);
|
|
|
2854
3070
|
var TimePicker = forwardRef(function TimePicker2({
|
|
2855
3071
|
value,
|
|
2856
3072
|
defaultValue,
|
|
2857
|
-
|
|
3073
|
+
onValueChange,
|
|
2858
3074
|
minuteStep = 5,
|
|
2859
3075
|
placeholder = "Pick a time",
|
|
2860
3076
|
format = defaultFormat2,
|
|
2861
|
-
|
|
3077
|
+
isInvalid,
|
|
2862
3078
|
name,
|
|
2863
3079
|
size,
|
|
2864
3080
|
state,
|
|
@@ -2869,7 +3085,7 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
2869
3085
|
const [time, setTime] = useControlled({
|
|
2870
3086
|
controlled: value,
|
|
2871
3087
|
default: defaultValue ?? null,
|
|
2872
|
-
onChange
|
|
3088
|
+
onChange: onValueChange
|
|
2873
3089
|
});
|
|
2874
3090
|
const [open, setOpen] = useControlled({
|
|
2875
3091
|
controlled: void 0,
|
|
@@ -2889,7 +3105,7 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
2889
3105
|
minutesRef.current?.querySelector("[data-selected]")?.scrollIntoView({ block: "center" });
|
|
2890
3106
|
});
|
|
2891
3107
|
}, [open]);
|
|
2892
|
-
const triggerState = state ?? (
|
|
3108
|
+
const triggerState = state ?? (isInvalid ? "invalid" : "default");
|
|
2893
3109
|
const update = (next) => {
|
|
2894
3110
|
const merged = {
|
|
2895
3111
|
hours: next.hours ?? time?.hours ?? 0,
|
|
@@ -2912,7 +3128,7 @@ var TimePicker = forwardRef(function TimePicker2({
|
|
|
2912
3128
|
]
|
|
2913
3129
|
}
|
|
2914
3130
|
) }),
|
|
2915
|
-
/* @__PURE__ */ jsx(PopoverContent, {
|
|
3131
|
+
/* @__PURE__ */ jsx(PopoverContent, { isBare: true, children: /* @__PURE__ */ jsxs("div", { className: "flex gap-1 rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-md", children: [
|
|
2916
3132
|
/* @__PURE__ */ jsx(
|
|
2917
3133
|
"div",
|
|
2918
3134
|
{
|
|
@@ -2986,13 +3202,13 @@ var DateRangePicker = forwardRef(
|
|
|
2986
3202
|
function DateRangePicker2({
|
|
2987
3203
|
value,
|
|
2988
3204
|
defaultValue,
|
|
2989
|
-
|
|
3205
|
+
onValueChange,
|
|
2990
3206
|
placeholder = "Pick a range",
|
|
2991
3207
|
format = defaultFormat3,
|
|
2992
3208
|
min,
|
|
2993
3209
|
max,
|
|
2994
3210
|
isDisabled: dayDisabled,
|
|
2995
|
-
|
|
3211
|
+
isInvalid,
|
|
2996
3212
|
name,
|
|
2997
3213
|
size,
|
|
2998
3214
|
state,
|
|
@@ -3003,13 +3219,13 @@ var DateRangePicker = forwardRef(
|
|
|
3003
3219
|
const [range, setRange] = useControlled({
|
|
3004
3220
|
controlled: value,
|
|
3005
3221
|
default: defaultValue ?? null,
|
|
3006
|
-
onChange
|
|
3222
|
+
onChange: onValueChange
|
|
3007
3223
|
});
|
|
3008
3224
|
const [open, setOpen] = useControlled({
|
|
3009
3225
|
controlled: void 0,
|
|
3010
3226
|
default: false
|
|
3011
3227
|
});
|
|
3012
|
-
const triggerState = state ?? (
|
|
3228
|
+
const triggerState = state ?? (isInvalid ? "invalid" : "default");
|
|
3013
3229
|
const wasComplete = useRef(false);
|
|
3014
3230
|
useEffect(() => {
|
|
3015
3231
|
const complete = !!(range?.start && range?.end);
|
|
@@ -3034,11 +3250,11 @@ var DateRangePicker = forwardRef(
|
|
|
3034
3250
|
]
|
|
3035
3251
|
}
|
|
3036
3252
|
) }),
|
|
3037
|
-
/* @__PURE__ */ jsx(PopoverContent, {
|
|
3253
|
+
/* @__PURE__ */ jsx(PopoverContent, { isBare: true, children: /* @__PURE__ */ jsx(
|
|
3038
3254
|
RangeCalendar,
|
|
3039
3255
|
{
|
|
3040
3256
|
value: range,
|
|
3041
|
-
|
|
3257
|
+
onValueChange: setRange,
|
|
3042
3258
|
defaultMonth: range?.start ?? /* @__PURE__ */ new Date(),
|
|
3043
3259
|
min,
|
|
3044
3260
|
max,
|
|
@@ -3071,11 +3287,11 @@ var colorSwatchVariants = tv({
|
|
|
3071
3287
|
true: "cursor-pointer transition-shadow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 hover:shadow-sm",
|
|
3072
3288
|
false: ""
|
|
3073
3289
|
},
|
|
3074
|
-
|
|
3290
|
+
isSelected: {
|
|
3075
3291
|
true: "ring-2 ring-ring ring-offset-1",
|
|
3076
3292
|
false: ""
|
|
3077
3293
|
},
|
|
3078
|
-
|
|
3294
|
+
isDisabled: {
|
|
3079
3295
|
true: "cursor-not-allowed opacity-50",
|
|
3080
3296
|
false: ""
|
|
3081
3297
|
}
|
|
@@ -3084,14 +3300,14 @@ var colorSwatchVariants = tv({
|
|
|
3084
3300
|
size: "md",
|
|
3085
3301
|
shape: "square",
|
|
3086
3302
|
interactive: false,
|
|
3087
|
-
|
|
3088
|
-
|
|
3303
|
+
isSelected: false,
|
|
3304
|
+
isDisabled: false
|
|
3089
3305
|
}
|
|
3090
3306
|
});
|
|
3091
|
-
var ColorSwatch = forwardRef(function ColorSwatch2({ color = "#000000", size, shape,
|
|
3307
|
+
var ColorSwatch = forwardRef(function ColorSwatch2({ color = "#000000", size, shape, isSelected, isDisabled, className, onClick, style, ...rest }, ref) {
|
|
3092
3308
|
const interactive = !!onClick;
|
|
3093
3309
|
const classes = cn(
|
|
3094
|
-
colorSwatchVariants({ size, shape, interactive,
|
|
3310
|
+
colorSwatchVariants({ size, shape, interactive, isSelected, isDisabled }),
|
|
3095
3311
|
className
|
|
3096
3312
|
);
|
|
3097
3313
|
const styleWithColor = {
|
|
@@ -3105,7 +3321,7 @@ var ColorSwatch = forwardRef(function ColorSwatch2({ color = "#000000", size, sh
|
|
|
3105
3321
|
{
|
|
3106
3322
|
ref,
|
|
3107
3323
|
type: "button",
|
|
3108
|
-
disabled,
|
|
3324
|
+
disabled: isDisabled,
|
|
3109
3325
|
onClick,
|
|
3110
3326
|
style: styleWithColor,
|
|
3111
3327
|
className: classes,
|
|
@@ -3215,18 +3431,18 @@ function parseColorToHsv(input) {
|
|
|
3215
3431
|
function hsvToHex(hsv, options) {
|
|
3216
3432
|
return formatHex(hsvToRgb(hsv), options);
|
|
3217
3433
|
}
|
|
3218
|
-
function commitHex(text,
|
|
3434
|
+
function commitHex(text, hasAlpha) {
|
|
3219
3435
|
const normalised = text.startsWith("#") ? text : `#${text}`;
|
|
3220
3436
|
const rgb = parseHex(normalised);
|
|
3221
3437
|
if (!rgb) return null;
|
|
3222
|
-
return formatHex(rgb, { withAlpha });
|
|
3438
|
+
return formatHex(rgb, { withAlpha: hasAlpha });
|
|
3223
3439
|
}
|
|
3224
3440
|
var ColorField = forwardRef(function ColorField2({
|
|
3225
3441
|
value,
|
|
3226
3442
|
defaultValue,
|
|
3227
|
-
|
|
3443
|
+
onValueChange,
|
|
3228
3444
|
swatchShape = "square",
|
|
3229
|
-
|
|
3445
|
+
hasAlpha = false,
|
|
3230
3446
|
size,
|
|
3231
3447
|
state,
|
|
3232
3448
|
className,
|
|
@@ -3241,7 +3457,7 @@ var ColorField = forwardRef(function ColorField2({
|
|
|
3241
3457
|
const [committed, setCommitted] = useControlled({
|
|
3242
3458
|
controlled: value,
|
|
3243
3459
|
default: defaultValue ?? null,
|
|
3244
|
-
onChange
|
|
3460
|
+
onChange: onValueChange
|
|
3245
3461
|
});
|
|
3246
3462
|
const [draft, setDraft] = useState(committed ?? "");
|
|
3247
3463
|
useEffect(() => {
|
|
@@ -3252,7 +3468,7 @@ var ColorField = forwardRef(function ColorField2({
|
|
|
3252
3468
|
setCommitted(null);
|
|
3253
3469
|
return;
|
|
3254
3470
|
}
|
|
3255
|
-
const next = commitHex(draft,
|
|
3471
|
+
const next = commitHex(draft, hasAlpha);
|
|
3256
3472
|
if (next) {
|
|
3257
3473
|
setCommitted(next);
|
|
3258
3474
|
setDraft(next);
|
|
@@ -3331,10 +3547,10 @@ var ColorSlider = forwardRef(function ColorSlider2({
|
|
|
3331
3547
|
channel = "hue",
|
|
3332
3548
|
value,
|
|
3333
3549
|
defaultValue,
|
|
3334
|
-
|
|
3550
|
+
onValueChange,
|
|
3335
3551
|
color,
|
|
3336
3552
|
step,
|
|
3337
|
-
|
|
3553
|
+
isDisabled = false,
|
|
3338
3554
|
className,
|
|
3339
3555
|
"aria-label": ariaLabel,
|
|
3340
3556
|
...rest
|
|
@@ -3344,7 +3560,7 @@ var ColorSlider = forwardRef(function ColorSlider2({
|
|
|
3344
3560
|
const [val, setVal] = useControlled({
|
|
3345
3561
|
controlled: value,
|
|
3346
3562
|
default: defaultValue ?? 0,
|
|
3347
|
-
onChange
|
|
3563
|
+
onChange: onValueChange
|
|
3348
3564
|
});
|
|
3349
3565
|
const trackRef = useRef(null);
|
|
3350
3566
|
const updateFromClientX = useCallback(
|
|
@@ -3354,30 +3570,30 @@ var ColorSlider = forwardRef(function ColorSlider2({
|
|
|
3354
3570
|
const rect = track.getBoundingClientRect();
|
|
3355
3571
|
const ratio2 = clamp01((clientX - rect.left) / rect.width);
|
|
3356
3572
|
const next = ratio2 * max;
|
|
3357
|
-
setVal(channel === "hue" ?
|
|
3573
|
+
setVal(channel === "hue" ? next : clamp01(next));
|
|
3358
3574
|
},
|
|
3359
3575
|
[channel, max, setVal]
|
|
3360
3576
|
);
|
|
3361
3577
|
const handlePointerDown = useCallback(
|
|
3362
3578
|
(e) => {
|
|
3363
|
-
if (
|
|
3579
|
+
if (isDisabled) return;
|
|
3364
3580
|
e.preventDefault();
|
|
3365
3581
|
e.target.setPointerCapture?.(e.pointerId);
|
|
3366
3582
|
updateFromClientX(e.clientX);
|
|
3367
3583
|
},
|
|
3368
|
-
[
|
|
3584
|
+
[isDisabled, updateFromClientX]
|
|
3369
3585
|
);
|
|
3370
3586
|
const handlePointerMove = useCallback(
|
|
3371
3587
|
(e) => {
|
|
3372
|
-
if (
|
|
3588
|
+
if (isDisabled) return;
|
|
3373
3589
|
if (e.buttons !== 1) return;
|
|
3374
3590
|
updateFromClientX(e.clientX);
|
|
3375
3591
|
},
|
|
3376
|
-
[
|
|
3592
|
+
[isDisabled, updateFromClientX]
|
|
3377
3593
|
);
|
|
3378
3594
|
const handleKeyDown = useCallback(
|
|
3379
3595
|
(e) => {
|
|
3380
|
-
if (
|
|
3596
|
+
if (isDisabled) return;
|
|
3381
3597
|
let next = val;
|
|
3382
3598
|
switch (e.key) {
|
|
3383
3599
|
case "ArrowRight":
|
|
@@ -3395,20 +3611,19 @@ var ColorSlider = forwardRef(function ColorSlider2({
|
|
|
3395
3611
|
next = val - stepValue * 10;
|
|
3396
3612
|
break;
|
|
3397
3613
|
case "Home":
|
|
3398
|
-
next = 0;
|
|
3399
|
-
break;
|
|
3400
3614
|
case "End":
|
|
3401
|
-
|
|
3402
|
-
|
|
3615
|
+
e.preventDefault();
|
|
3616
|
+
setVal(e.key === "Home" ? 0 : max);
|
|
3617
|
+
return;
|
|
3403
3618
|
default:
|
|
3404
3619
|
return;
|
|
3405
3620
|
}
|
|
3406
3621
|
e.preventDefault();
|
|
3407
3622
|
setVal(channel === "hue" ? clampHue(next) : clamp01(next));
|
|
3408
3623
|
},
|
|
3409
|
-
[channel,
|
|
3624
|
+
[channel, isDisabled, max, setVal, stepValue, val]
|
|
3410
3625
|
);
|
|
3411
|
-
const ratio = channel === "hue" ? clampHue(val) / 360 : clamp01(val);
|
|
3626
|
+
const ratio = channel === "hue" ? val >= 360 ? 1 : clampHue(val) / 360 : clamp01(val);
|
|
3412
3627
|
const gradient = buildGradient(channel, color);
|
|
3413
3628
|
const trackStyle = {
|
|
3414
3629
|
backgroundImage: gradient,
|
|
@@ -3434,21 +3649,21 @@ var ColorSlider = forwardRef(function ColorSlider2({
|
|
|
3434
3649
|
{
|
|
3435
3650
|
ref: composeRefs(trackRef),
|
|
3436
3651
|
role: "slider",
|
|
3437
|
-
tabIndex:
|
|
3652
|
+
tabIndex: isDisabled ? -1 : 0,
|
|
3438
3653
|
"aria-label": ariaLabel ?? `${channel} slider`,
|
|
3439
3654
|
"aria-valuemin": 0,
|
|
3440
3655
|
"aria-valuemax": max,
|
|
3441
3656
|
"aria-valuenow": Math.round(val * 100) / 100,
|
|
3442
|
-
"aria-disabled":
|
|
3657
|
+
"aria-disabled": isDisabled || void 0,
|
|
3443
3658
|
"aria-orientation": "horizontal",
|
|
3444
|
-
"data-disabled":
|
|
3659
|
+
"data-disabled": isDisabled ? "" : void 0,
|
|
3445
3660
|
onPointerDown: handlePointerDown,
|
|
3446
3661
|
onPointerMove: handlePointerMove,
|
|
3447
3662
|
onKeyDown: handleKeyDown,
|
|
3448
3663
|
style: trackStyle,
|
|
3449
3664
|
className: cn(
|
|
3450
3665
|
"relative h-3 w-full rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
3451
|
-
|
|
3666
|
+
isDisabled && "pointer-events-none opacity-50"
|
|
3452
3667
|
),
|
|
3453
3668
|
children: /* @__PURE__ */ jsx(
|
|
3454
3669
|
"div",
|
|
@@ -3470,9 +3685,9 @@ var ColorArea = forwardRef(function ColorArea2({
|
|
|
3470
3685
|
defaultSaturation,
|
|
3471
3686
|
value,
|
|
3472
3687
|
defaultValue,
|
|
3473
|
-
|
|
3688
|
+
onValueChange,
|
|
3474
3689
|
step = 0.01,
|
|
3475
|
-
|
|
3690
|
+
isDisabled = false,
|
|
3476
3691
|
className,
|
|
3477
3692
|
"aria-label": ariaLabel = "Saturation and value",
|
|
3478
3693
|
...rest
|
|
@@ -3492,9 +3707,9 @@ var ColorArea = forwardRef(function ColorArea2({
|
|
|
3492
3707
|
const cv = clamp01(nextV);
|
|
3493
3708
|
setS(cs);
|
|
3494
3709
|
setV(cv);
|
|
3495
|
-
|
|
3710
|
+
onValueChange?.({ saturation: cs, value: cv });
|
|
3496
3711
|
},
|
|
3497
|
-
[
|
|
3712
|
+
[onValueChange, setS, setV]
|
|
3498
3713
|
);
|
|
3499
3714
|
const updateFromClient = useCallback(
|
|
3500
3715
|
(clientX, clientY) => {
|
|
@@ -3509,23 +3724,23 @@ var ColorArea = forwardRef(function ColorArea2({
|
|
|
3509
3724
|
);
|
|
3510
3725
|
const handlePointerDown = useCallback(
|
|
3511
3726
|
(e) => {
|
|
3512
|
-
if (
|
|
3727
|
+
if (isDisabled) return;
|
|
3513
3728
|
e.preventDefault();
|
|
3514
3729
|
e.target.setPointerCapture?.(e.pointerId);
|
|
3515
3730
|
updateFromClient(e.clientX, e.clientY);
|
|
3516
3731
|
},
|
|
3517
|
-
[
|
|
3732
|
+
[isDisabled, updateFromClient]
|
|
3518
3733
|
);
|
|
3519
3734
|
const handlePointerMove = useCallback(
|
|
3520
3735
|
(e) => {
|
|
3521
|
-
if (
|
|
3736
|
+
if (isDisabled || e.buttons !== 1) return;
|
|
3522
3737
|
updateFromClient(e.clientX, e.clientY);
|
|
3523
3738
|
},
|
|
3524
|
-
[
|
|
3739
|
+
[isDisabled, updateFromClient]
|
|
3525
3740
|
);
|
|
3526
3741
|
const handleKeyDown = useCallback(
|
|
3527
3742
|
(e) => {
|
|
3528
|
-
if (
|
|
3743
|
+
if (isDisabled) return;
|
|
3529
3744
|
const big = step * 10;
|
|
3530
3745
|
let nextS = s;
|
|
3531
3746
|
let nextV = v;
|
|
@@ -3562,7 +3777,7 @@ var ColorArea = forwardRef(function ColorArea2({
|
|
|
3562
3777
|
e.preventDefault();
|
|
3563
3778
|
emit(nextS, nextV);
|
|
3564
3779
|
},
|
|
3565
|
-
[
|
|
3780
|
+
[isDisabled, emit, s, step, v]
|
|
3566
3781
|
);
|
|
3567
3782
|
const baseColor = `hsl(${hue}, 100%, 50%)`;
|
|
3568
3783
|
const trackStyle = {
|
|
@@ -3580,18 +3795,18 @@ var ColorArea = forwardRef(function ColorArea2({
|
|
|
3580
3795
|
{
|
|
3581
3796
|
ref: composeRefs(forwardedRef, trackRef),
|
|
3582
3797
|
role: "slider",
|
|
3583
|
-
tabIndex:
|
|
3798
|
+
tabIndex: isDisabled ? -1 : 0,
|
|
3584
3799
|
"aria-label": ariaLabel,
|
|
3585
3800
|
"aria-valuetext": `saturation ${(s * 100).toFixed(0)}%, value ${(v * 100).toFixed(0)}%`,
|
|
3586
|
-
"aria-disabled":
|
|
3587
|
-
"data-disabled":
|
|
3801
|
+
"aria-disabled": isDisabled || void 0,
|
|
3802
|
+
"data-disabled": isDisabled ? "" : void 0,
|
|
3588
3803
|
onPointerDown: handlePointerDown,
|
|
3589
3804
|
onPointerMove: handlePointerMove,
|
|
3590
3805
|
onKeyDown: handleKeyDown,
|
|
3591
3806
|
style: trackStyle,
|
|
3592
3807
|
className: cn(
|
|
3593
3808
|
"relative aspect-square w-full select-none rounded-md border border-border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
3594
|
-
|
|
3809
|
+
isDisabled && "pointer-events-none opacity-50",
|
|
3595
3810
|
className
|
|
3596
3811
|
),
|
|
3597
3812
|
...rest,
|
|
@@ -3617,11 +3832,11 @@ function angleFromCenter(clientX, clientY, rect) {
|
|
|
3617
3832
|
var ColorWheel = forwardRef(function ColorWheel2({
|
|
3618
3833
|
value,
|
|
3619
3834
|
defaultValue,
|
|
3620
|
-
|
|
3835
|
+
onValueChange,
|
|
3621
3836
|
size = 200,
|
|
3622
3837
|
thickness = 30,
|
|
3623
3838
|
step = 1,
|
|
3624
|
-
|
|
3839
|
+
isDisabled = false,
|
|
3625
3840
|
className,
|
|
3626
3841
|
"aria-label": ariaLabel = "Hue",
|
|
3627
3842
|
...rest
|
|
@@ -3629,7 +3844,7 @@ var ColorWheel = forwardRef(function ColorWheel2({
|
|
|
3629
3844
|
const [hue, setHue] = useControlled({
|
|
3630
3845
|
controlled: value,
|
|
3631
3846
|
default: defaultValue ?? 0,
|
|
3632
|
-
onChange
|
|
3847
|
+
onChange: onValueChange
|
|
3633
3848
|
});
|
|
3634
3849
|
const trackRef = useRef(null);
|
|
3635
3850
|
const updateFromClient = useCallback(
|
|
@@ -3642,23 +3857,23 @@ var ColorWheel = forwardRef(function ColorWheel2({
|
|
|
3642
3857
|
);
|
|
3643
3858
|
const handlePointerDown = useCallback(
|
|
3644
3859
|
(e) => {
|
|
3645
|
-
if (
|
|
3860
|
+
if (isDisabled) return;
|
|
3646
3861
|
e.preventDefault();
|
|
3647
3862
|
e.target.setPointerCapture?.(e.pointerId);
|
|
3648
3863
|
updateFromClient(e.clientX, e.clientY);
|
|
3649
3864
|
},
|
|
3650
|
-
[
|
|
3865
|
+
[isDisabled, updateFromClient]
|
|
3651
3866
|
);
|
|
3652
3867
|
const handlePointerMove = useCallback(
|
|
3653
3868
|
(e) => {
|
|
3654
|
-
if (
|
|
3869
|
+
if (isDisabled || e.buttons !== 1) return;
|
|
3655
3870
|
updateFromClient(e.clientX, e.clientY);
|
|
3656
3871
|
},
|
|
3657
|
-
[
|
|
3872
|
+
[isDisabled, updateFromClient]
|
|
3658
3873
|
);
|
|
3659
3874
|
const handleKeyDown = useCallback(
|
|
3660
3875
|
(e) => {
|
|
3661
|
-
if (
|
|
3876
|
+
if (isDisabled) return;
|
|
3662
3877
|
let next = hue;
|
|
3663
3878
|
switch (e.key) {
|
|
3664
3879
|
case "ArrowRight":
|
|
@@ -3687,7 +3902,7 @@ var ColorWheel = forwardRef(function ColorWheel2({
|
|
|
3687
3902
|
e.preventDefault();
|
|
3688
3903
|
setHue(clampHue(next));
|
|
3689
3904
|
},
|
|
3690
|
-
[
|
|
3905
|
+
[isDisabled, hue, setHue, step]
|
|
3691
3906
|
);
|
|
3692
3907
|
const radius = (size - thickness) / 2;
|
|
3693
3908
|
const angleRad = hue * Math.PI / 180;
|
|
@@ -3705,20 +3920,20 @@ var ColorWheel = forwardRef(function ColorWheel2({
|
|
|
3705
3920
|
{
|
|
3706
3921
|
ref: composeRefs(forwardedRef, trackRef),
|
|
3707
3922
|
role: "slider",
|
|
3708
|
-
tabIndex:
|
|
3923
|
+
tabIndex: isDisabled ? -1 : 0,
|
|
3709
3924
|
"aria-label": ariaLabel,
|
|
3710
3925
|
"aria-valuemin": 0,
|
|
3711
3926
|
"aria-valuemax": 360,
|
|
3712
3927
|
"aria-valuenow": Math.round(hue),
|
|
3713
|
-
"aria-disabled":
|
|
3714
|
-
"data-disabled":
|
|
3928
|
+
"aria-disabled": isDisabled || void 0,
|
|
3929
|
+
"data-disabled": isDisabled ? "" : void 0,
|
|
3715
3930
|
onPointerDown: handlePointerDown,
|
|
3716
3931
|
onPointerMove: handlePointerMove,
|
|
3717
3932
|
onKeyDown: handleKeyDown,
|
|
3718
3933
|
style: wheelStyle,
|
|
3719
3934
|
className: cn(
|
|
3720
3935
|
"relative inline-block select-none rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
3721
|
-
|
|
3936
|
+
isDisabled && "pointer-events-none opacity-50",
|
|
3722
3937
|
className
|
|
3723
3938
|
),
|
|
3724
3939
|
...rest,
|
|
@@ -3737,7 +3952,7 @@ var ColorWheel = forwardRef(function ColorWheel2({
|
|
|
3737
3952
|
}
|
|
3738
3953
|
);
|
|
3739
3954
|
});
|
|
3740
|
-
function ColorSwatchItem({ color,
|
|
3955
|
+
function ColorSwatchItem({ color, isSelected, isDisabled, size, shape, onSelect }) {
|
|
3741
3956
|
const roving = useRovingFocusItem();
|
|
3742
3957
|
return /* @__PURE__ */ jsx(
|
|
3743
3958
|
ColorSwatch,
|
|
@@ -3746,8 +3961,8 @@ function ColorSwatchItem({ color, selected, disabled, size, shape, onSelect }) {
|
|
|
3746
3961
|
color,
|
|
3747
3962
|
size,
|
|
3748
3963
|
shape,
|
|
3749
|
-
|
|
3750
|
-
|
|
3964
|
+
isSelected,
|
|
3965
|
+
isDisabled,
|
|
3751
3966
|
tabIndex: roving.tabIndex,
|
|
3752
3967
|
onClick: () => onSelect(color),
|
|
3753
3968
|
onKeyDown: (e) => {
|
|
@@ -3768,31 +3983,31 @@ function ColorSwatchPicker({
|
|
|
3768
3983
|
colors,
|
|
3769
3984
|
value,
|
|
3770
3985
|
defaultValue,
|
|
3771
|
-
|
|
3986
|
+
onValueChange,
|
|
3772
3987
|
swatchSize = "md",
|
|
3773
3988
|
swatchShape = "square",
|
|
3774
|
-
|
|
3989
|
+
isDisabled = false,
|
|
3775
3990
|
className,
|
|
3776
3991
|
...rest
|
|
3777
3992
|
}) {
|
|
3778
3993
|
const [selected, setSelected] = useControlled({
|
|
3779
3994
|
controlled: value,
|
|
3780
3995
|
default: defaultValue ?? null,
|
|
3781
|
-
onChange
|
|
3996
|
+
onChange: onValueChange
|
|
3782
3997
|
});
|
|
3783
3998
|
return /* @__PURE__ */ jsx(
|
|
3784
3999
|
RovingFocusGroup,
|
|
3785
4000
|
{
|
|
3786
4001
|
orientation: "both",
|
|
3787
|
-
|
|
4002
|
+
canLoop: true,
|
|
3788
4003
|
className: cn("flex flex-wrap gap-1.5", className),
|
|
3789
4004
|
...rest,
|
|
3790
4005
|
children: colors.map((c) => /* @__PURE__ */ jsx(
|
|
3791
4006
|
ColorSwatchItem,
|
|
3792
4007
|
{
|
|
3793
4008
|
color: c,
|
|
3794
|
-
|
|
3795
|
-
|
|
4009
|
+
isSelected: selected === c,
|
|
4010
|
+
isDisabled,
|
|
3796
4011
|
size: swatchSize,
|
|
3797
4012
|
shape: swatchShape,
|
|
3798
4013
|
onSelect: (color) => setSelected(color)
|
|
@@ -3806,11 +4021,11 @@ var FALLBACK_HSV = { h: 217, s: 0.91, v: 0.96, a: 1 };
|
|
|
3806
4021
|
var ColorPicker = forwardRef(function ColorPicker2({
|
|
3807
4022
|
value,
|
|
3808
4023
|
defaultValue = "#3b82f6",
|
|
3809
|
-
|
|
3810
|
-
|
|
4024
|
+
onValueChange,
|
|
4025
|
+
hasAlpha = false,
|
|
3811
4026
|
presets,
|
|
3812
4027
|
triggerSize = "md",
|
|
3813
|
-
|
|
4028
|
+
isDisabled = false,
|
|
3814
4029
|
name,
|
|
3815
4030
|
className,
|
|
3816
4031
|
"aria-label": ariaLabel = "Pick a color"
|
|
@@ -3818,21 +4033,21 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
3818
4033
|
const [hex, setHex] = useControlled({
|
|
3819
4034
|
controlled: value,
|
|
3820
4035
|
default: defaultValue ?? null,
|
|
3821
|
-
onChange
|
|
4036
|
+
onChange: onValueChange
|
|
3822
4037
|
});
|
|
3823
4038
|
const [hsv, setHsvState] = useState(() => parseColorToHsv(hex) ?? FALLBACK_HSV);
|
|
3824
4039
|
useEffect(() => {
|
|
3825
4040
|
if (!hex) return;
|
|
3826
4041
|
const parsed = parseColorToHsv(hex);
|
|
3827
4042
|
if (!parsed) return;
|
|
3828
|
-
const currentHex = hsvToHex(hsv, { withAlpha });
|
|
4043
|
+
const currentHex = hsvToHex(hsv, { withAlpha: hasAlpha });
|
|
3829
4044
|
if (currentHex.toLowerCase() !== hex.toLowerCase()) {
|
|
3830
4045
|
setHsvState({ ...parsed, a: hsv.a });
|
|
3831
4046
|
}
|
|
3832
|
-
}, [hex,
|
|
4047
|
+
}, [hex, hasAlpha]);
|
|
3833
4048
|
const updateHsv = (next) => {
|
|
3834
4049
|
setHsvState(next);
|
|
3835
|
-
setHex(hsvToHex(next, { withAlpha }));
|
|
4050
|
+
setHex(hsvToHex(next, { withAlpha: hasAlpha }));
|
|
3836
4051
|
};
|
|
3837
4052
|
return /* @__PURE__ */ jsxs(Popover, { children: [
|
|
3838
4053
|
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
@@ -3841,7 +4056,7 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
3841
4056
|
ref,
|
|
3842
4057
|
type: "button",
|
|
3843
4058
|
"aria-label": ariaLabel,
|
|
3844
|
-
disabled,
|
|
4059
|
+
disabled: isDisabled,
|
|
3845
4060
|
className: cn(
|
|
3846
4061
|
"inline-flex items-center gap-2 rounded-md border border-border bg-background px-2 py-1 text-sm transition-colors hover:border-border-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-60",
|
|
3847
4062
|
className
|
|
@@ -3859,7 +4074,7 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
3859
4074
|
hue: hsv.h,
|
|
3860
4075
|
saturation: hsv.s,
|
|
3861
4076
|
value: hsv.v,
|
|
3862
|
-
|
|
4077
|
+
onValueChange: ({ saturation, value: value2 }) => updateHsv({ ...hsv, s: saturation, v: value2 })
|
|
3863
4078
|
}
|
|
3864
4079
|
),
|
|
3865
4080
|
/* @__PURE__ */ jsx(
|
|
@@ -3867,17 +4082,17 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
3867
4082
|
{
|
|
3868
4083
|
channel: "hue",
|
|
3869
4084
|
value: hsv.h,
|
|
3870
|
-
|
|
4085
|
+
onValueChange: (h) => updateHsv({ ...hsv, h }),
|
|
3871
4086
|
"aria-label": "Hue"
|
|
3872
4087
|
}
|
|
3873
4088
|
),
|
|
3874
|
-
|
|
4089
|
+
hasAlpha && /* @__PURE__ */ jsx(
|
|
3875
4090
|
ColorSlider,
|
|
3876
4091
|
{
|
|
3877
4092
|
channel: "alpha",
|
|
3878
4093
|
value: hsv.a ?? 1,
|
|
3879
4094
|
color: hsv,
|
|
3880
|
-
|
|
4095
|
+
onValueChange: (a) => updateHsv({ ...hsv, a }),
|
|
3881
4096
|
"aria-label": "Alpha"
|
|
3882
4097
|
}
|
|
3883
4098
|
),
|
|
@@ -3885,8 +4100,8 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
3885
4100
|
ColorField,
|
|
3886
4101
|
{
|
|
3887
4102
|
value: hex,
|
|
3888
|
-
|
|
3889
|
-
|
|
4103
|
+
onValueChange: (next) => setHex(next),
|
|
4104
|
+
hasAlpha
|
|
3890
4105
|
}
|
|
3891
4106
|
),
|
|
3892
4107
|
presets && presets.length > 0 && /* @__PURE__ */ jsx(
|
|
@@ -3894,7 +4109,7 @@ var ColorPicker = forwardRef(function ColorPicker2({
|
|
|
3894
4109
|
{
|
|
3895
4110
|
colors: presets,
|
|
3896
4111
|
value: hex,
|
|
3897
|
-
|
|
4112
|
+
onValueChange: setHex,
|
|
3898
4113
|
swatchSize: "sm"
|
|
3899
4114
|
}
|
|
3900
4115
|
)
|
|
@@ -3976,7 +4191,7 @@ var StepperList = forwardRef(function StepperList2({ className, children, ...res
|
|
|
3976
4191
|
}
|
|
3977
4192
|
);
|
|
3978
4193
|
});
|
|
3979
|
-
var StepperStep = forwardRef(function StepperStep2({ value, description,
|
|
4194
|
+
var StepperStep = forwardRef(function StepperStep2({ value, description, isDisabled = false, className, onClick, children, ...rest }, ref) {
|
|
3980
4195
|
const ctx = useStepperContext();
|
|
3981
4196
|
const roving = useRovingFocusItem();
|
|
3982
4197
|
useEffect(() => {
|
|
@@ -4006,19 +4221,19 @@ var StepperStep = forwardRef(function StepperStep2({ value, description, disable
|
|
|
4006
4221
|
"aria-controls": panelId,
|
|
4007
4222
|
"aria-current": status === "active" ? "step" : void 0,
|
|
4008
4223
|
"data-status": status,
|
|
4009
|
-
"data-disabled": dataAttr(
|
|
4224
|
+
"data-disabled": dataAttr(isDisabled),
|
|
4010
4225
|
tabIndex: roving.tabIndex,
|
|
4011
|
-
disabled,
|
|
4226
|
+
disabled: isDisabled,
|
|
4012
4227
|
onClick: (e) => {
|
|
4013
4228
|
onClick?.(e);
|
|
4014
|
-
if (e.defaultPrevented ||
|
|
4229
|
+
if (e.defaultPrevented || isDisabled) return;
|
|
4015
4230
|
ctx.setValue(value);
|
|
4016
4231
|
},
|
|
4017
4232
|
onFocus: roving.onFocus,
|
|
4018
4233
|
onKeyDown: roving.onKeyDown,
|
|
4019
4234
|
className: cn(
|
|
4020
4235
|
"group flex items-center gap-2 text-left text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-sm",
|
|
4021
|
-
|
|
4236
|
+
isDisabled && "pointer-events-none opacity-50",
|
|
4022
4237
|
className
|
|
4023
4238
|
),
|
|
4024
4239
|
...rest,
|
|
@@ -4095,9 +4310,9 @@ var TagsInput = forwardRef(function TagsInput2({
|
|
|
4095
4310
|
placeholder = "Add tag\u2026",
|
|
4096
4311
|
delimiters = [","],
|
|
4097
4312
|
validate = (t) => t.trim().length > 0,
|
|
4098
|
-
|
|
4313
|
+
allowsDuplicates = false,
|
|
4099
4314
|
max,
|
|
4100
|
-
|
|
4315
|
+
isInvalid,
|
|
4101
4316
|
disabled,
|
|
4102
4317
|
readOnly,
|
|
4103
4318
|
name,
|
|
@@ -4120,17 +4335,17 @@ var TagsInput = forwardRef(function TagsInput2({
|
|
|
4120
4335
|
});
|
|
4121
4336
|
const inputRef = useRef(null);
|
|
4122
4337
|
const [pendingDelete, setPendingDelete] = useState(false);
|
|
4123
|
-
const state =
|
|
4338
|
+
const state = isInvalid ? "invalid" : "default";
|
|
4124
4339
|
const commit = useCallback(
|
|
4125
4340
|
(raw) => {
|
|
4126
4341
|
const trimmed = raw.trim();
|
|
4127
4342
|
if (!trimmed || !validate(trimmed)) return;
|
|
4128
|
-
if (!
|
|
4343
|
+
if (!allowsDuplicates && tags.includes(trimmed)) return;
|
|
4129
4344
|
if (max != null && tags.length >= max) return;
|
|
4130
4345
|
setTags([...tags, trimmed]);
|
|
4131
4346
|
setText("");
|
|
4132
4347
|
},
|
|
4133
|
-
[tags, validate,
|
|
4348
|
+
[tags, validate, allowsDuplicates, max, setTags, setText]
|
|
4134
4349
|
);
|
|
4135
4350
|
const removeAt = useCallback(
|
|
4136
4351
|
(idx) => {
|
|
@@ -4177,7 +4392,7 @@ var TagsInput = forwardRef(function TagsInput2({
|
|
|
4177
4392
|
onClick: handleContainerClick,
|
|
4178
4393
|
"data-disabled": disabled || void 0,
|
|
4179
4394
|
"data-readonly": readOnly || void 0,
|
|
4180
|
-
"data-invalid":
|
|
4395
|
+
"data-invalid": isInvalid || void 0,
|
|
4181
4396
|
className: cn(
|
|
4182
4397
|
inputBaseVariants({ size, state }),
|
|
4183
4398
|
"h-auto min-h-10 flex-wrap items-center gap-1.5 py-1.5",
|
|
@@ -4206,7 +4421,7 @@ var TagsInput = forwardRef(function TagsInput2({
|
|
|
4206
4421
|
placeholder: tags.length === 0 ? placeholder : void 0,
|
|
4207
4422
|
disabled,
|
|
4208
4423
|
readOnly,
|
|
4209
|
-
"aria-invalid":
|
|
4424
|
+
"aria-invalid": isInvalid || void 0,
|
|
4210
4425
|
onChange: (e) => setText(e.target.value),
|
|
4211
4426
|
onKeyDown: handleKeyDown,
|
|
4212
4427
|
onBlur: (e) => {
|
|
@@ -4242,7 +4457,7 @@ var FileUpload = forwardRef(function FileUpload2({
|
|
|
4242
4457
|
maxFiles,
|
|
4243
4458
|
onFilesChange,
|
|
4244
4459
|
disabled,
|
|
4245
|
-
|
|
4460
|
+
isInvalid,
|
|
4246
4461
|
label = "Drop files here, or click to browse",
|
|
4247
4462
|
hint,
|
|
4248
4463
|
children,
|
|
@@ -4339,7 +4554,7 @@ var FileUpload = forwardRef(function FileUpload2({
|
|
|
4339
4554
|
openPicker();
|
|
4340
4555
|
}
|
|
4341
4556
|
};
|
|
4342
|
-
const showError =
|
|
4557
|
+
const showError = isInvalid || dragState === "reject";
|
|
4343
4558
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-3", className), children: [
|
|
4344
4559
|
/* @__PURE__ */ jsxs(
|
|
4345
4560
|
"div",
|
|
@@ -4415,15 +4630,15 @@ function Editable({
|
|
|
4415
4630
|
value: valueProp,
|
|
4416
4631
|
defaultValue,
|
|
4417
4632
|
onValueChange,
|
|
4418
|
-
|
|
4633
|
+
isEditing: editingProp,
|
|
4419
4634
|
defaultEditing = false,
|
|
4420
4635
|
onEditingChange,
|
|
4421
4636
|
placeholder = "Click to edit",
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
|
|
4637
|
+
canSubmitOnBlur = true,
|
|
4638
|
+
canSubmitOnEnter = true,
|
|
4639
|
+
canCancelOnEscape = true,
|
|
4640
|
+
isDisabled = false,
|
|
4641
|
+
isReadOnly = false,
|
|
4427
4642
|
name,
|
|
4428
4643
|
className,
|
|
4429
4644
|
children
|
|
@@ -4456,16 +4671,16 @@ function Editable({
|
|
|
4456
4671
|
value,
|
|
4457
4672
|
draft,
|
|
4458
4673
|
setDraft,
|
|
4459
|
-
editing,
|
|
4674
|
+
isEditing: editing,
|
|
4460
4675
|
setEditing,
|
|
4461
4676
|
submit,
|
|
4462
4677
|
cancel,
|
|
4463
4678
|
placeholder,
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4679
|
+
isDisabled,
|
|
4680
|
+
isReadOnly,
|
|
4681
|
+
canSubmitOnBlur,
|
|
4682
|
+
canSubmitOnEnter,
|
|
4683
|
+
canCancelOnEscape,
|
|
4469
4684
|
inputRef
|
|
4470
4685
|
}),
|
|
4471
4686
|
[
|
|
@@ -4476,11 +4691,11 @@ function Editable({
|
|
|
4476
4691
|
submit,
|
|
4477
4692
|
cancel,
|
|
4478
4693
|
placeholder,
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4694
|
+
isDisabled,
|
|
4695
|
+
isReadOnly,
|
|
4696
|
+
canSubmitOnBlur,
|
|
4697
|
+
canSubmitOnEnter,
|
|
4698
|
+
canCancelOnEscape
|
|
4484
4699
|
]
|
|
4485
4700
|
);
|
|
4486
4701
|
return /* @__PURE__ */ jsx(EditableContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxs("div", { className: cn("inline-flex items-center gap-1.5", className), children: [
|
|
@@ -4491,9 +4706,9 @@ function Editable({
|
|
|
4491
4706
|
var EditablePreview = forwardRef(
|
|
4492
4707
|
function EditablePreview2({ className, onClick, onKeyDown, ...rest }, forwardedRef) {
|
|
4493
4708
|
const ctx = useEditableContext();
|
|
4494
|
-
if (ctx.
|
|
4709
|
+
if (ctx.isEditing) return null;
|
|
4495
4710
|
const isEmpty = !ctx.value;
|
|
4496
|
-
const interactive = !ctx.
|
|
4711
|
+
const interactive = !ctx.isDisabled && !ctx.isReadOnly;
|
|
4497
4712
|
return /* @__PURE__ */ jsx(
|
|
4498
4713
|
"span",
|
|
4499
4714
|
{
|
|
@@ -4530,20 +4745,20 @@ var EditableInput = forwardRef(
|
|
|
4530
4745
|
function EditableInput2({ className, size, state, onKeyDown, onBlur, ...rest }, forwardedRef) {
|
|
4531
4746
|
const ctx = useEditableContext();
|
|
4532
4747
|
useEffect(() => {
|
|
4533
|
-
if (ctx.
|
|
4748
|
+
if (ctx.isEditing && ctx.inputRef.current) {
|
|
4534
4749
|
ctx.inputRef.current.focus();
|
|
4535
4750
|
const len = ctx.inputRef.current.value.length;
|
|
4536
4751
|
ctx.inputRef.current.setSelectionRange(len, len);
|
|
4537
4752
|
}
|
|
4538
|
-
}, [ctx.
|
|
4539
|
-
if (!ctx.
|
|
4753
|
+
}, [ctx.isEditing, ctx.inputRef]);
|
|
4754
|
+
if (!ctx.isEditing) return null;
|
|
4540
4755
|
const handleKeyDown = (e) => {
|
|
4541
4756
|
onKeyDown?.(e);
|
|
4542
4757
|
if (e.defaultPrevented) return;
|
|
4543
|
-
if (ctx.
|
|
4758
|
+
if (ctx.canSubmitOnEnter && e.key === "Enter") {
|
|
4544
4759
|
e.preventDefault();
|
|
4545
4760
|
ctx.submit();
|
|
4546
|
-
} else if (ctx.
|
|
4761
|
+
} else if (ctx.canCancelOnEscape && e.key === "Escape") {
|
|
4547
4762
|
e.preventDefault();
|
|
4548
4763
|
ctx.cancel();
|
|
4549
4764
|
}
|
|
@@ -4554,14 +4769,14 @@ var EditableInput = forwardRef(
|
|
|
4554
4769
|
ref: composeRefs(forwardedRef, ctx.inputRef),
|
|
4555
4770
|
type: "text",
|
|
4556
4771
|
value: ctx.draft,
|
|
4557
|
-
disabled: ctx.
|
|
4558
|
-
readOnly: ctx.
|
|
4772
|
+
disabled: ctx.isDisabled,
|
|
4773
|
+
readOnly: ctx.isReadOnly,
|
|
4559
4774
|
onChange: (e) => ctx.setDraft(e.target.value),
|
|
4560
4775
|
onKeyDown: handleKeyDown,
|
|
4561
4776
|
onBlur: (e) => {
|
|
4562
4777
|
onBlur?.(e);
|
|
4563
4778
|
if (e.defaultPrevented) return;
|
|
4564
|
-
if (ctx.
|
|
4779
|
+
if (ctx.canSubmitOnBlur) ctx.submit();
|
|
4565
4780
|
},
|
|
4566
4781
|
className: cn(inputBaseVariants({ size, state }), className),
|
|
4567
4782
|
...rest
|
|
@@ -4572,7 +4787,7 @@ var EditableInput = forwardRef(
|
|
|
4572
4787
|
var EditableSubmit = forwardRef(
|
|
4573
4788
|
function EditableSubmit2({ className, onClick, children, type = "button", ...rest }, forwardedRef) {
|
|
4574
4789
|
const ctx = useEditableContext();
|
|
4575
|
-
if (!ctx.
|
|
4790
|
+
if (!ctx.isEditing) return null;
|
|
4576
4791
|
return /* @__PURE__ */ jsx(
|
|
4577
4792
|
"button",
|
|
4578
4793
|
{
|
|
@@ -4598,7 +4813,7 @@ var EditableSubmit = forwardRef(
|
|
|
4598
4813
|
var EditableCancel = forwardRef(
|
|
4599
4814
|
function EditableCancel2({ className, onClick, children, type = "button", ...rest }, forwardedRef) {
|
|
4600
4815
|
const ctx = useEditableContext();
|
|
4601
|
-
if (!ctx.
|
|
4816
|
+
if (!ctx.isEditing) return null;
|
|
4602
4817
|
return /* @__PURE__ */ jsx(
|
|
4603
4818
|
"button",
|
|
4604
4819
|
{
|
|
@@ -4649,8 +4864,8 @@ var Wizard = forwardRef(function Wizard2({
|
|
|
4649
4864
|
return {
|
|
4650
4865
|
id: props.id,
|
|
4651
4866
|
label: props.label,
|
|
4652
|
-
|
|
4653
|
-
|
|
4867
|
+
isOptional: props.isOptional,
|
|
4868
|
+
isFinal: props.isFinal
|
|
4654
4869
|
};
|
|
4655
4870
|
});
|
|
4656
4871
|
const [steps, setSteps] = useState(stepFromChildren);
|
|
@@ -4712,7 +4927,7 @@ var Wizard = forwardRef(function Wizard2({
|
|
|
4712
4927
|
setIsPending(false);
|
|
4713
4928
|
}
|
|
4714
4929
|
}
|
|
4715
|
-
if (currentStep.
|
|
4930
|
+
if (currentStep.isFinal) {
|
|
4716
4931
|
setIsPending(true);
|
|
4717
4932
|
try {
|
|
4718
4933
|
await onComplete?.();
|
|
@@ -4794,7 +5009,7 @@ var WizardSteps = forwardRef(
|
|
|
4794
5009
|
children: [
|
|
4795
5010
|
/* @__PURE__ */ jsx("span", { className: "grid h-5 w-5 place-items-center rounded-full bg-background/20 text-[10px]", children: i + 1 }),
|
|
4796
5011
|
step.label ?? step.id,
|
|
4797
|
-
step.
|
|
5012
|
+
step.isOptional && /* @__PURE__ */ jsx("span", { className: "ml-1 text-[10px] opacity-70", children: "(optional)" })
|
|
4798
5013
|
]
|
|
4799
5014
|
},
|
|
4800
5015
|
step.id
|
|
@@ -4804,18 +5019,19 @@ var WizardSteps = forwardRef(
|
|
|
4804
5019
|
);
|
|
4805
5020
|
}
|
|
4806
5021
|
);
|
|
4807
|
-
var WizardStep = forwardRef(function WizardStep2({ id, label, validate,
|
|
5022
|
+
var WizardStep = forwardRef(function WizardStep2({ id, label, validate, isOptional, isFinal, className, children, ...rest }, ref) {
|
|
4808
5023
|
const ctx = useWizard();
|
|
4809
5024
|
const isCurrent = ctx.currentStep?.id === id;
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
5025
|
+
const { registerStep, unregisterStep, registerValidator, unregisterValidator } = ctx;
|
|
5026
|
+
useEffect(() => {
|
|
5027
|
+
registerStep({ id, label, isOptional, isFinal });
|
|
5028
|
+
return () => unregisterStep(id);
|
|
5029
|
+
}, [registerStep, unregisterStep, id, label, isOptional, isFinal]);
|
|
5030
|
+
useEffect(() => {
|
|
5031
|
+
if (validate) registerValidator(id, validate);
|
|
5032
|
+
else unregisterValidator(id);
|
|
5033
|
+
return () => unregisterValidator(id);
|
|
5034
|
+
}, [registerValidator, unregisterValidator, id, validate]);
|
|
4819
5035
|
if (!isCurrent) return null;
|
|
4820
5036
|
return /* @__PURE__ */ jsx(
|
|
4821
5037
|
"div",
|
|
@@ -4835,13 +5051,13 @@ var WizardFooter = forwardRef(
|
|
|
4835
5051
|
prevLabel = "Back",
|
|
4836
5052
|
nextLabel = "Next",
|
|
4837
5053
|
submitLabel = "Finish",
|
|
4838
|
-
|
|
5054
|
+
hasPrev = true,
|
|
4839
5055
|
className,
|
|
4840
5056
|
...rest
|
|
4841
5057
|
}, ref) {
|
|
4842
5058
|
const ctx = useWizard();
|
|
4843
5059
|
const isFirst = ctx.currentIndex === 0;
|
|
4844
|
-
const isFinal = ctx.currentStep?.
|
|
5060
|
+
const isFinal = ctx.currentStep?.isFinal ?? false;
|
|
4845
5061
|
return /* @__PURE__ */ jsxs(
|
|
4846
5062
|
"div",
|
|
4847
5063
|
{
|
|
@@ -4849,7 +5065,7 @@ var WizardFooter = forwardRef(
|
|
|
4849
5065
|
className: cn("mt-2 flex items-center justify-between gap-3", className),
|
|
4850
5066
|
...rest,
|
|
4851
5067
|
children: [
|
|
4852
|
-
|
|
5068
|
+
hasPrev && !isFirst && ctx.canGoBack ? /* @__PURE__ */ jsx(
|
|
4853
5069
|
"button",
|
|
4854
5070
|
{
|
|
4855
5071
|
type: "button",
|
|
@@ -4884,10 +5100,10 @@ var CodeEditor = forwardRef(
|
|
|
4884
5100
|
onValueChange,
|
|
4885
5101
|
language,
|
|
4886
5102
|
tabSize = 2,
|
|
4887
|
-
|
|
5103
|
+
isTabIndented = false,
|
|
4888
5104
|
disabled,
|
|
4889
5105
|
readOnly,
|
|
4890
|
-
|
|
5106
|
+
isInvalid,
|
|
4891
5107
|
minHeight = "12rem",
|
|
4892
5108
|
placeholder,
|
|
4893
5109
|
className,
|
|
@@ -4903,9 +5119,8 @@ var CodeEditor = forwardRef(
|
|
|
4903
5119
|
const textareaRef = useRef(null);
|
|
4904
5120
|
const gutterRef = useRef(null);
|
|
4905
5121
|
const [scrollTop, setScrollTop] = useState(0);
|
|
4906
|
-
useImperativeHandle(forwardedRef, () => textareaRef.current);
|
|
4907
5122
|
const lineCount = useMemo(() => value.split("\n").length, [value]);
|
|
4908
|
-
const indentChar =
|
|
5123
|
+
const indentChar = isTabIndented ? " " : " ".repeat(tabSize);
|
|
4909
5124
|
const insertAtSelection = useCallback(
|
|
4910
5125
|
(insert, selStart, selEnd) => {
|
|
4911
5126
|
const next = value.slice(0, selStart) + insert + value.slice(selEnd);
|
|
@@ -4926,7 +5141,7 @@ var CodeEditor = forwardRef(
|
|
|
4926
5141
|
if (e.shiftKey) {
|
|
4927
5142
|
const lineStart = value.lastIndexOf("\n", start - 1) + 1;
|
|
4928
5143
|
const lineSlice = value.slice(lineStart, start);
|
|
4929
|
-
const match =
|
|
5144
|
+
const match = isTabIndented ? /^\t/ : new RegExp(`^ {1,${tabSize}}`);
|
|
4930
5145
|
const m = match.exec(lineSlice);
|
|
4931
5146
|
if (m) {
|
|
4932
5147
|
const next = value.slice(0, lineStart) + lineSlice.slice(m[0].length) + value.slice(start);
|
|
@@ -4955,18 +5170,41 @@ var CodeEditor = forwardRef(
|
|
|
4955
5170
|
const lineStartOffset = before.lastIndexOf("\n") + 1;
|
|
4956
5171
|
const blockStart = before.slice(0, lineStartOffset);
|
|
4957
5172
|
const block = before.slice(lineStartOffset) + between;
|
|
5173
|
+
let newStart;
|
|
5174
|
+
let newEnd;
|
|
4958
5175
|
if (e.shiftKey) {
|
|
4959
|
-
const re =
|
|
4960
|
-
|
|
4961
|
-
|
|
5176
|
+
const re = isTabIndented ? /^\t/gm : new RegExp(`^ {1,${tabSize}}`, "gm");
|
|
5177
|
+
let removedTotal = 0;
|
|
5178
|
+
let removedFirst = 0;
|
|
5179
|
+
const outdented = block.replace(re, (m, offset) => {
|
|
5180
|
+
removedTotal += m.length;
|
|
5181
|
+
if (offset === 0) removedFirst = m.length;
|
|
5182
|
+
return "";
|
|
5183
|
+
});
|
|
5184
|
+
setValue(blockStart + outdented + after);
|
|
5185
|
+
newStart = Math.max(lineStartOffset, start - removedFirst);
|
|
5186
|
+
newEnd = Math.max(newStart, end - removedTotal);
|
|
4962
5187
|
} else {
|
|
4963
|
-
const
|
|
4964
|
-
|
|
5188
|
+
const relEnd = end - lineStartOffset;
|
|
5189
|
+
let inserted = 0;
|
|
5190
|
+
const indented = block.replace(/^/gm, (_m, offset) => {
|
|
5191
|
+
if (offset < relEnd) inserted++;
|
|
5192
|
+
return indentChar;
|
|
5193
|
+
});
|
|
5194
|
+
setValue(blockStart + indented + after);
|
|
5195
|
+
newStart = start + indentChar.length;
|
|
5196
|
+
newEnd = end + indentChar.length * inserted;
|
|
4965
5197
|
}
|
|
5198
|
+
requestAnimationFrame(() => {
|
|
5199
|
+
if (textareaRef.current) {
|
|
5200
|
+
textareaRef.current.selectionStart = newStart;
|
|
5201
|
+
textareaRef.current.selectionEnd = newEnd;
|
|
5202
|
+
}
|
|
5203
|
+
});
|
|
4966
5204
|
}
|
|
4967
5205
|
}
|
|
4968
5206
|
};
|
|
4969
|
-
const state =
|
|
5207
|
+
const state = isInvalid ? "invalid" : "default";
|
|
4970
5208
|
const gutterText = useMemo(
|
|
4971
5209
|
() => Array.from({ length: lineCount }, (_, i) => String(i + 1)).join("\n"),
|
|
4972
5210
|
[lineCount]
|
|
@@ -4992,9 +5230,15 @@ var CodeEditor = forwardRef(
|
|
|
4992
5230
|
{
|
|
4993
5231
|
ref: gutterRef,
|
|
4994
5232
|
"aria-hidden": "true",
|
|
4995
|
-
className: "select-none
|
|
4996
|
-
|
|
4997
|
-
|
|
5233
|
+
className: "select-none overflow-hidden border-r border-border bg-muted/40 text-right text-muted-foreground tabular-nums",
|
|
5234
|
+
children: /* @__PURE__ */ jsx(
|
|
5235
|
+
"div",
|
|
5236
|
+
{
|
|
5237
|
+
className: "whitespace-pre px-3 py-2",
|
|
5238
|
+
style: { transform: `translateY(${-scrollTop}px)` },
|
|
5239
|
+
children: gutterText
|
|
5240
|
+
}
|
|
5241
|
+
)
|
|
4998
5242
|
}
|
|
4999
5243
|
),
|
|
5000
5244
|
/* @__PURE__ */ jsx(
|
|
@@ -5013,7 +5257,7 @@ var CodeEditor = forwardRef(
|
|
|
5013
5257
|
readOnly,
|
|
5014
5258
|
spellCheck: false,
|
|
5015
5259
|
placeholder,
|
|
5016
|
-
"aria-invalid":
|
|
5260
|
+
"aria-invalid": isInvalid || void 0,
|
|
5017
5261
|
className: "block flex-1 resize-none whitespace-pre overflow-auto bg-transparent px-3 py-2 outline-none placeholder:text-subtle-foreground disabled:cursor-not-allowed"
|
|
5018
5262
|
}
|
|
5019
5263
|
)
|
|
@@ -5037,6 +5281,29 @@ var linePrefix = (prefix) => ({ value, start, end }) => {
|
|
|
5037
5281
|
const next = value.slice(0, lineStart) + updated + value.slice(lineEnd);
|
|
5038
5282
|
return { value: next, selStart: lineStart + prefix.length, selEnd: lineStart + updated.length };
|
|
5039
5283
|
};
|
|
5284
|
+
var escapeHtml = (html) => html.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
5285
|
+
var SAFE_URL = /^(?:https?:|mailto:|tel:|[^a-z0-9.+-]|[a-z0-9.+-]*$)/i;
|
|
5286
|
+
var safeUrl = (href) => SAFE_URL.test(href.trim()) ? href : null;
|
|
5287
|
+
var previewMarked = new Marked({
|
|
5288
|
+
renderer: {
|
|
5289
|
+
html({ text }) {
|
|
5290
|
+
return escapeHtml(text);
|
|
5291
|
+
},
|
|
5292
|
+
link({ href, title, tokens }) {
|
|
5293
|
+
const url = safeUrl(href);
|
|
5294
|
+
const text = this.parser.parseInline(tokens);
|
|
5295
|
+
if (url === null) return text;
|
|
5296
|
+
const titleAttr = title ? ` title="${escapeHtml(title)}"` : "";
|
|
5297
|
+
return `<a href="${escapeHtml(url)}"${titleAttr}>${text}</a>`;
|
|
5298
|
+
},
|
|
5299
|
+
image({ href, title, text }) {
|
|
5300
|
+
const url = safeUrl(href);
|
|
5301
|
+
if (url === null) return escapeHtml(text);
|
|
5302
|
+
const titleAttr = title ? ` title="${escapeHtml(title)}"` : "";
|
|
5303
|
+
return `<img src="${escapeHtml(url)}" alt="${escapeHtml(text)}"${titleAttr}>`;
|
|
5304
|
+
}
|
|
5305
|
+
}
|
|
5306
|
+
});
|
|
5040
5307
|
var ACTIONS = [
|
|
5041
5308
|
{ key: "h1", label: "Heading 1", icon: /* @__PURE__ */ jsx(Icon, { icon: Heading1, size: 14 }), apply: linePrefix("# ") },
|
|
5042
5309
|
{ key: "h2", label: "Heading 2", icon: /* @__PURE__ */ jsx(Icon, { icon: Heading2, size: 14 }), apply: linePrefix("## ") },
|
|
@@ -5058,7 +5325,7 @@ var MarkdownEditor = forwardRef(
|
|
|
5058
5325
|
renderPreview,
|
|
5059
5326
|
disabled,
|
|
5060
5327
|
readOnly,
|
|
5061
|
-
|
|
5328
|
+
isInvalid,
|
|
5062
5329
|
minHeight = "18rem",
|
|
5063
5330
|
placeholder,
|
|
5064
5331
|
className,
|
|
@@ -5080,7 +5347,7 @@ var MarkdownEditor = forwardRef(
|
|
|
5080
5347
|
const previewHtml = useMemo(() => {
|
|
5081
5348
|
if (renderPreview) return null;
|
|
5082
5349
|
try {
|
|
5083
|
-
return
|
|
5350
|
+
return previewMarked.parse(value, { async: false });
|
|
5084
5351
|
} catch {
|
|
5085
5352
|
return "<p>Failed to render preview.</p>";
|
|
5086
5353
|
}
|
|
@@ -5102,7 +5369,7 @@ var MarkdownEditor = forwardRef(
|
|
|
5102
5369
|
};
|
|
5103
5370
|
const showEdit = view === "split" || view === "edit";
|
|
5104
5371
|
const showPreview = view === "split" || view === "preview";
|
|
5105
|
-
const state =
|
|
5372
|
+
const state = isInvalid ? "invalid" : "default";
|
|
5106
5373
|
return /* @__PURE__ */ jsxs(
|
|
5107
5374
|
"div",
|
|
5108
5375
|
{
|
|
@@ -5156,7 +5423,7 @@ var MarkdownEditor = forwardRef(
|
|
|
5156
5423
|
disabled,
|
|
5157
5424
|
readOnly,
|
|
5158
5425
|
spellCheck: false,
|
|
5159
|
-
"aria-invalid":
|
|
5426
|
+
"aria-invalid": isInvalid || void 0,
|
|
5160
5427
|
onChange: (e) => setValue(e.target.value),
|
|
5161
5428
|
className: cn(
|
|
5162
5429
|
"flex-1 resize-none whitespace-pre-wrap break-words bg-transparent p-3 font-mono text-sm outline-none placeholder:text-subtle-foreground disabled:cursor-not-allowed",
|
|
@@ -5185,7 +5452,7 @@ function describeType(v) {
|
|
|
5185
5452
|
return typeof v;
|
|
5186
5453
|
}
|
|
5187
5454
|
function pathToString(path) {
|
|
5188
|
-
return path.map((p) => typeof p === "number" ? `[${p}]` :
|
|
5455
|
+
return path.map((p, i) => typeof p === "number" ? `[${p}]` : i === 0 ? p : `.${p}`).join("");
|
|
5189
5456
|
}
|
|
5190
5457
|
function setAtPath(root, path, next) {
|
|
5191
5458
|
if (path.length === 0) return next;
|
|
@@ -5209,9 +5476,9 @@ var JSONEditor = forwardRef(function JSONEditor2({
|
|
|
5209
5476
|
mode: modeProp,
|
|
5210
5477
|
defaultMode = "tree",
|
|
5211
5478
|
onModeChange,
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5479
|
+
isDisabled,
|
|
5480
|
+
isReadOnly,
|
|
5481
|
+
isInvalid,
|
|
5215
5482
|
indent = 2,
|
|
5216
5483
|
minHeight = "14rem",
|
|
5217
5484
|
className,
|
|
@@ -5234,11 +5501,11 @@ var JSONEditor = forwardRef(function JSONEditor2({
|
|
|
5234
5501
|
"div",
|
|
5235
5502
|
{
|
|
5236
5503
|
ref,
|
|
5237
|
-
"data-state":
|
|
5504
|
+
"data-state": isInvalid ? "invalid" : "default",
|
|
5238
5505
|
className: cn(
|
|
5239
5506
|
"flex flex-col overflow-hidden rounded-md border border-input bg-card text-card-foreground shadow-sm",
|
|
5240
|
-
|
|
5241
|
-
|
|
5507
|
+
isInvalid && "border-destructive",
|
|
5508
|
+
isDisabled && "opacity-60",
|
|
5242
5509
|
className
|
|
5243
5510
|
),
|
|
5244
5511
|
style: { minHeight },
|
|
@@ -5259,22 +5526,22 @@ var JSONEditor = forwardRef(function JSONEditor2({
|
|
|
5259
5526
|
},
|
|
5260
5527
|
m
|
|
5261
5528
|
)) }) }),
|
|
5262
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto", style: { minHeight: 0 }, children: mode === "tree" ? /* @__PURE__ */ jsx(TreeView, { value, updateAt,
|
|
5529
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-auto", style: { minHeight: 0 }, children: mode === "tree" ? /* @__PURE__ */ jsx(TreeView, { value, updateAt, isDisabled, isReadOnly }) : /* @__PURE__ */ jsx(TextView, { value, setValue, isDisabled, isReadOnly, indent }) })
|
|
5263
5530
|
]
|
|
5264
5531
|
}
|
|
5265
5532
|
);
|
|
5266
5533
|
});
|
|
5267
|
-
function TreeView({ value, updateAt,
|
|
5268
|
-
return /* @__PURE__ */ jsx("ul", { role: "tree", className: "font-mono text-sm", children: /* @__PURE__ */ jsx(TreeNode, { keyName: null, value, path: [], updateAt,
|
|
5534
|
+
function TreeView({ value, updateAt, isDisabled, isReadOnly }) {
|
|
5535
|
+
return /* @__PURE__ */ jsx("ul", { role: "tree", className: "font-mono text-sm", children: /* @__PURE__ */ jsx(TreeNode, { keyName: null, value, path: [], updateAt, isDisabled, isReadOnly, depth: 0 }) });
|
|
5269
5536
|
}
|
|
5270
|
-
function TreeNode({ keyName, value, path, updateAt,
|
|
5537
|
+
function TreeNode({ keyName, value, path, updateAt, isDisabled, isReadOnly, depth }) {
|
|
5271
5538
|
const type = describeType(value);
|
|
5272
5539
|
const isObject = type === "object" || type === "array";
|
|
5273
5540
|
const [open, setOpen] = useState(depth < 2);
|
|
5274
5541
|
const [editing, setEditing] = useState(false);
|
|
5275
5542
|
const [draft, setDraft] = useState("");
|
|
5276
5543
|
const startEdit = () => {
|
|
5277
|
-
if (
|
|
5544
|
+
if (isDisabled || isReadOnly || isObject) return;
|
|
5278
5545
|
setEditing(true);
|
|
5279
5546
|
setDraft(typeof value === "string" ? value : String(value));
|
|
5280
5547
|
};
|
|
@@ -5336,7 +5603,7 @@ function TreeNode({ keyName, value, path, updateAt, disabled, readOnly, depth })
|
|
|
5336
5603
|
onClick: startEdit,
|
|
5337
5604
|
className: cn(
|
|
5338
5605
|
"cursor-text rounded-sm px-1 text-left transition-colors",
|
|
5339
|
-
!
|
|
5606
|
+
!isDisabled && !isReadOnly && "hover:bg-muted",
|
|
5340
5607
|
type === "string" && "text-info",
|
|
5341
5608
|
type === "number" && "text-warning",
|
|
5342
5609
|
type === "boolean" && "text-success",
|
|
@@ -5363,15 +5630,15 @@ function TreeNode({ keyName, value, path, updateAt, disabled, readOnly, depth })
|
|
|
5363
5630
|
value: v,
|
|
5364
5631
|
path: [...path, k],
|
|
5365
5632
|
updateAt,
|
|
5366
|
-
|
|
5367
|
-
|
|
5633
|
+
isDisabled,
|
|
5634
|
+
isReadOnly,
|
|
5368
5635
|
depth: depth + 1
|
|
5369
5636
|
},
|
|
5370
5637
|
String(k)
|
|
5371
5638
|
)) })
|
|
5372
5639
|
] });
|
|
5373
5640
|
}
|
|
5374
|
-
function TextView({ value, setValue,
|
|
5641
|
+
function TextView({ value, setValue, isDisabled, isReadOnly, indent }) {
|
|
5375
5642
|
const initial = useMemo(() => safeStringify(value, indent), [value, indent]);
|
|
5376
5643
|
const [draft, setDraft] = useState(initial);
|
|
5377
5644
|
const [error, setError] = useState(null);
|
|
@@ -5394,8 +5661,8 @@ function TextView({ value, setValue, disabled, readOnly, indent }) {
|
|
|
5394
5661
|
"textarea",
|
|
5395
5662
|
{
|
|
5396
5663
|
value: draft,
|
|
5397
|
-
disabled,
|
|
5398
|
-
readOnly,
|
|
5664
|
+
disabled: isDisabled,
|
|
5665
|
+
readOnly: isReadOnly,
|
|
5399
5666
|
spellCheck: false,
|
|
5400
5667
|
onChange: (e) => {
|
|
5401
5668
|
dirty.current = true;
|
|
@@ -5453,16 +5720,14 @@ function nextOccurrence(rule, prev) {
|
|
|
5453
5720
|
if (!rule.byDay || rule.byDay.length === 0) return addDays(prev, 7 * rule.interval);
|
|
5454
5721
|
const allowed = new Set(rule.byDay);
|
|
5455
5722
|
let cursor = addDays(prev, 1);
|
|
5456
|
-
|
|
5457
|
-
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5723
|
+
while (cursor.getDay() !== 0) {
|
|
5724
|
+
if (allowed.has(JS_TO_RRULE[cursor.getDay()])) return cursor;
|
|
5725
|
+
cursor = addDays(cursor, 1);
|
|
5726
|
+
}
|
|
5727
|
+
cursor = addDays(cursor, 7 * (rule.interval - 1));
|
|
5728
|
+
for (let i = 0; i < 7; i++) {
|
|
5729
|
+
if (allowed.has(JS_TO_RRULE[cursor.getDay()])) return cursor;
|
|
5463
5730
|
cursor = addDays(cursor, 1);
|
|
5464
|
-
if (cursor.getDay() === 0) weekJumps++;
|
|
5465
|
-
if (weekJumps >= rule.interval) ;
|
|
5466
5731
|
}
|
|
5467
5732
|
return null;
|
|
5468
5733
|
}
|
|
@@ -5502,8 +5767,8 @@ var RecurrenceEditor = forwardRef(
|
|
|
5502
5767
|
onValueChange,
|
|
5503
5768
|
from = /* @__PURE__ */ new Date(),
|
|
5504
5769
|
previewCount = 5,
|
|
5505
|
-
|
|
5506
|
-
|
|
5770
|
+
isDisabled,
|
|
5771
|
+
isReadOnly,
|
|
5507
5772
|
name,
|
|
5508
5773
|
className,
|
|
5509
5774
|
...rest
|
|
@@ -5529,7 +5794,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5529
5794
|
ref,
|
|
5530
5795
|
className: cn(
|
|
5531
5796
|
"flex flex-col gap-3 rounded-md border border-border bg-card p-4 text-card-foreground shadow-sm",
|
|
5532
|
-
|
|
5797
|
+
isDisabled && "opacity-60",
|
|
5533
5798
|
className
|
|
5534
5799
|
),
|
|
5535
5800
|
...rest,
|
|
@@ -5543,8 +5808,8 @@ var RecurrenceEditor = forwardRef(
|
|
|
5543
5808
|
min: 1,
|
|
5544
5809
|
max: 999,
|
|
5545
5810
|
value: rule.interval,
|
|
5546
|
-
disabled,
|
|
5547
|
-
readOnly,
|
|
5811
|
+
disabled: isDisabled,
|
|
5812
|
+
readOnly: isReadOnly,
|
|
5548
5813
|
onChange: (e) => update({ interval: Math.max(1, Number(e.target.value) || 1) }),
|
|
5549
5814
|
className: cn(inputBaseVariants({ size: "sm" }), "w-16")
|
|
5550
5815
|
}
|
|
@@ -5554,7 +5819,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5554
5819
|
{
|
|
5555
5820
|
"aria-label": "Frequency",
|
|
5556
5821
|
value: rule.freq,
|
|
5557
|
-
disabled,
|
|
5822
|
+
disabled: isDisabled,
|
|
5558
5823
|
onChange: (e) => update({ freq: e.target.value }),
|
|
5559
5824
|
className: cn(inputBaseVariants({ size: "sm" }), "w-32"),
|
|
5560
5825
|
children: [
|
|
@@ -5576,7 +5841,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5576
5841
|
type: "button",
|
|
5577
5842
|
role: "checkbox",
|
|
5578
5843
|
"aria-checked": checked,
|
|
5579
|
-
disabled:
|
|
5844
|
+
disabled: isDisabled || isReadOnly,
|
|
5580
5845
|
onClick: () => {
|
|
5581
5846
|
const set = new Set(rule.byDay ?? []);
|
|
5582
5847
|
if (set.has(wd)) set.delete(wd);
|
|
@@ -5602,8 +5867,8 @@ var RecurrenceEditor = forwardRef(
|
|
|
5602
5867
|
min: 1,
|
|
5603
5868
|
max: 31,
|
|
5604
5869
|
value: rule.byMonthDay ?? from.getDate(),
|
|
5605
|
-
disabled,
|
|
5606
|
-
readOnly,
|
|
5870
|
+
disabled: isDisabled,
|
|
5871
|
+
readOnly: isReadOnly,
|
|
5607
5872
|
onChange: (e) => update({ byMonthDay: Math.min(31, Math.max(1, Number(e.target.value) || 1)) }),
|
|
5608
5873
|
className: cn(inputBaseVariants({ size: "sm" }), "w-20")
|
|
5609
5874
|
}
|
|
@@ -5618,7 +5883,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5618
5883
|
type: "radio",
|
|
5619
5884
|
name: `${name ?? "rule"}-end`,
|
|
5620
5885
|
checked: endMode === "never",
|
|
5621
|
-
disabled:
|
|
5886
|
+
disabled: isDisabled || isReadOnly,
|
|
5622
5887
|
onChange: () => update({ count: void 0, until: null })
|
|
5623
5888
|
}
|
|
5624
5889
|
),
|
|
@@ -5631,7 +5896,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5631
5896
|
type: "radio",
|
|
5632
5897
|
name: `${name ?? "rule"}-end`,
|
|
5633
5898
|
checked: endMode === "count",
|
|
5634
|
-
disabled:
|
|
5899
|
+
disabled: isDisabled || isReadOnly,
|
|
5635
5900
|
onChange: () => update({ count: rule.count ?? 10, until: null })
|
|
5636
5901
|
}
|
|
5637
5902
|
),
|
|
@@ -5642,7 +5907,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5642
5907
|
type: "number",
|
|
5643
5908
|
min: 1,
|
|
5644
5909
|
value: rule.count ?? "",
|
|
5645
|
-
disabled:
|
|
5910
|
+
disabled: isDisabled || isReadOnly || endMode !== "count",
|
|
5646
5911
|
onChange: (e) => update({ count: Math.max(1, Number(e.target.value) || 1), until: null }),
|
|
5647
5912
|
className: cn(inputBaseVariants({ size: "sm" }), "w-20")
|
|
5648
5913
|
}
|
|
@@ -5656,7 +5921,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5656
5921
|
type: "radio",
|
|
5657
5922
|
name: `${name ?? "rule"}-end`,
|
|
5658
5923
|
checked: endMode === "until",
|
|
5659
|
-
disabled:
|
|
5924
|
+
disabled: isDisabled || isReadOnly,
|
|
5660
5925
|
onChange: () => update({ until: addMonths(from, 6), count: void 0 })
|
|
5661
5926
|
}
|
|
5662
5927
|
),
|
|
@@ -5666,7 +5931,7 @@ var RecurrenceEditor = forwardRef(
|
|
|
5666
5931
|
{
|
|
5667
5932
|
type: "date",
|
|
5668
5933
|
value: formatISODate(rule.until ?? null),
|
|
5669
|
-
disabled:
|
|
5934
|
+
disabled: isDisabled || isReadOnly || endMode !== "until",
|
|
5670
5935
|
onChange: (e) => update({ until: parseISODate(e.target.value), count: void 0 }),
|
|
5671
5936
|
className: cn(inputBaseVariants({ size: "sm" }), "w-44")
|
|
5672
5937
|
}
|
|
@@ -5705,8 +5970,8 @@ var Knob = forwardRef(function Knob2({
|
|
|
5705
5970
|
arcDegrees = 270,
|
|
5706
5971
|
tone = "brand",
|
|
5707
5972
|
format = (v) => v.toFixed(2),
|
|
5708
|
-
|
|
5709
|
-
|
|
5973
|
+
isValueShown = true,
|
|
5974
|
+
isDisabled,
|
|
5710
5975
|
name,
|
|
5711
5976
|
className,
|
|
5712
5977
|
"aria-label": ariaLabel = "Knob",
|
|
@@ -5729,12 +5994,12 @@ var Knob = forwardRef(function Knob2({
|
|
|
5729
5994
|
[min, max, setValue]
|
|
5730
5995
|
);
|
|
5731
5996
|
const handlePointerDown = (e) => {
|
|
5732
|
-
if (
|
|
5997
|
+
if (isDisabled || e.button !== 0) return;
|
|
5733
5998
|
dragStateRef.current = { startY: e.clientY, startValue: value };
|
|
5734
5999
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
5735
6000
|
};
|
|
5736
6001
|
const handlePointerMove = (e) => {
|
|
5737
|
-
if (
|
|
6002
|
+
if (isDisabled || !dragStateRef.current) return;
|
|
5738
6003
|
const dy = dragStateRef.current.startY - e.clientY;
|
|
5739
6004
|
const range = max - min;
|
|
5740
6005
|
const sensitivity = range / 200;
|
|
@@ -5745,14 +6010,20 @@ var Knob = forwardRef(function Knob2({
|
|
|
5745
6010
|
dragStateRef.current = null;
|
|
5746
6011
|
e.currentTarget.releasePointerCapture?.(e.pointerId);
|
|
5747
6012
|
};
|
|
5748
|
-
|
|
5749
|
-
|
|
5750
|
-
|
|
5751
|
-
const
|
|
5752
|
-
|
|
5753
|
-
|
|
6013
|
+
useEffect(() => {
|
|
6014
|
+
const el = containerRef.current;
|
|
6015
|
+
if (!el) return;
|
|
6016
|
+
const handleWheel = (e) => {
|
|
6017
|
+
if (isDisabled) return;
|
|
6018
|
+
e.preventDefault();
|
|
6019
|
+
const delta = e.deltaY < 0 ? step : -step;
|
|
6020
|
+
setClamped(value + delta);
|
|
6021
|
+
};
|
|
6022
|
+
el.addEventListener("wheel", handleWheel, { passive: false });
|
|
6023
|
+
return () => el.removeEventListener("wheel", handleWheel);
|
|
6024
|
+
}, [isDisabled, step, value, setClamped]);
|
|
5754
6025
|
const handleKey = (e) => {
|
|
5755
|
-
if (
|
|
6026
|
+
if (isDisabled) return;
|
|
5756
6027
|
const s = e.shiftKey ? largeStep : step;
|
|
5757
6028
|
switch (e.key) {
|
|
5758
6029
|
case "ArrowUp":
|
|
@@ -5804,19 +6075,18 @@ var Knob = forwardRef(function Knob2({
|
|
|
5804
6075
|
"aria-valuemin": min,
|
|
5805
6076
|
"aria-valuemax": max,
|
|
5806
6077
|
"aria-orientation": "vertical",
|
|
5807
|
-
"aria-disabled":
|
|
5808
|
-
tabIndex:
|
|
6078
|
+
"aria-disabled": isDisabled || void 0,
|
|
6079
|
+
tabIndex: isDisabled ? -1 : 0,
|
|
5809
6080
|
onPointerDown: handlePointerDown,
|
|
5810
6081
|
onPointerMove: handlePointerMove,
|
|
5811
6082
|
onPointerUp: handlePointerUp,
|
|
5812
6083
|
onPointerCancel: handlePointerUp,
|
|
5813
|
-
onWheel: handleWheel,
|
|
5814
6084
|
onKeyDown: handleKey,
|
|
5815
6085
|
style: { width: size, height: size, touchAction: "none" },
|
|
5816
6086
|
className: cn(
|
|
5817
6087
|
"relative inline-flex select-none items-center justify-center rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
5818
6088
|
TONE_CLASS[tone],
|
|
5819
|
-
|
|
6089
|
+
isDisabled ? "cursor-not-allowed opacity-50" : "cursor-grab active:cursor-grabbing",
|
|
5820
6090
|
className
|
|
5821
6091
|
),
|
|
5822
6092
|
...rest,
|
|
@@ -5856,7 +6126,7 @@ var Knob = forwardRef(function Knob2({
|
|
|
5856
6126
|
}
|
|
5857
6127
|
)
|
|
5858
6128
|
] }),
|
|
5859
|
-
|
|
6129
|
+
isValueShown && /* @__PURE__ */ jsx(
|
|
5860
6130
|
"span",
|
|
5861
6131
|
{
|
|
5862
6132
|
"aria-hidden": "true",
|
|
@@ -5869,9 +6139,10 @@ var Knob = forwardRef(function Knob2({
|
|
|
5869
6139
|
}
|
|
5870
6140
|
);
|
|
5871
6141
|
});
|
|
6142
|
+
var IS_MAC = typeof navigator !== "undefined" && navigator.platform?.toLowerCase().includes("mac");
|
|
5872
6143
|
var MODIFIER_NAMES = {
|
|
5873
6144
|
Control: "Ctrl",
|
|
5874
|
-
Meta:
|
|
6145
|
+
Meta: IS_MAC ? "\u2318" : "Meta",
|
|
5875
6146
|
Alt: "Alt",
|
|
5876
6147
|
Shift: "Shift"
|
|
5877
6148
|
};
|
|
@@ -6045,7 +6316,7 @@ var IconPicker = forwardRef(
|
|
|
6045
6316
|
size = 20,
|
|
6046
6317
|
iconButtonSize = 36,
|
|
6047
6318
|
placeholder = "Search icons\u2026",
|
|
6048
|
-
|
|
6319
|
+
isDisabled,
|
|
6049
6320
|
name,
|
|
6050
6321
|
className,
|
|
6051
6322
|
...rest
|
|
@@ -6078,7 +6349,7 @@ var IconPicker = forwardRef(
|
|
|
6078
6349
|
type: "search",
|
|
6079
6350
|
value: query,
|
|
6080
6351
|
placeholder,
|
|
6081
|
-
disabled,
|
|
6352
|
+
disabled: isDisabled,
|
|
6082
6353
|
onChange: (e) => setQuery(e.target.value),
|
|
6083
6354
|
className: cn(inputBaseVariants({ size: "sm" }))
|
|
6084
6355
|
}
|
|
@@ -6099,7 +6370,7 @@ var IconPicker = forwardRef(
|
|
|
6099
6370
|
type: "button",
|
|
6100
6371
|
"aria-pressed": selected,
|
|
6101
6372
|
"aria-label": key,
|
|
6102
|
-
disabled,
|
|
6373
|
+
disabled: isDisabled,
|
|
6103
6374
|
onClick: () => setValue(key),
|
|
6104
6375
|
style: { width: iconButtonSize, height: iconButtonSize },
|
|
6105
6376
|
className: cn(
|
|
@@ -6143,7 +6414,7 @@ var FontPicker = forwardRef(
|
|
|
6143
6414
|
fonts = BUILT_IN_FONTS,
|
|
6144
6415
|
placeholder = "Select font\u2026",
|
|
6145
6416
|
previewText = "The quick brown fox",
|
|
6146
|
-
|
|
6417
|
+
isDisabled,
|
|
6147
6418
|
name,
|
|
6148
6419
|
className,
|
|
6149
6420
|
...rest
|
|
@@ -6167,7 +6438,7 @@ var FontPicker = forwardRef(
|
|
|
6167
6438
|
"button",
|
|
6168
6439
|
{
|
|
6169
6440
|
type: "button",
|
|
6170
|
-
disabled,
|
|
6441
|
+
disabled: isDisabled,
|
|
6171
6442
|
"aria-haspopup": "listbox",
|
|
6172
6443
|
"aria-expanded": open,
|
|
6173
6444
|
className: cn(
|
|
@@ -6179,7 +6450,7 @@ var FontPicker = forwardRef(
|
|
|
6179
6450
|
]
|
|
6180
6451
|
}
|
|
6181
6452
|
) }),
|
|
6182
|
-
/* @__PURE__ */ jsxs(PopoverContent, {
|
|
6453
|
+
/* @__PURE__ */ jsxs(PopoverContent, { isBare: true, className: "w-[20rem] p-2", children: [
|
|
6183
6454
|
/* @__PURE__ */ jsx(
|
|
6184
6455
|
"input",
|
|
6185
6456
|
{
|
|
@@ -6322,10 +6593,10 @@ var CronInput = forwardRef(
|
|
|
6322
6593
|
defaultValue,
|
|
6323
6594
|
onValueChange,
|
|
6324
6595
|
placeholder = "* * * * *",
|
|
6325
|
-
|
|
6596
|
+
isInvalid,
|
|
6326
6597
|
size,
|
|
6327
6598
|
state,
|
|
6328
|
-
|
|
6599
|
+
hasPreview = true,
|
|
6329
6600
|
disabled,
|
|
6330
6601
|
readOnly,
|
|
6331
6602
|
name,
|
|
@@ -6338,7 +6609,7 @@ var CronInput = forwardRef(
|
|
|
6338
6609
|
onChange: onValueChange
|
|
6339
6610
|
});
|
|
6340
6611
|
const preview = useMemo(() => parseCron(value), [value]);
|
|
6341
|
-
const isError =
|
|
6612
|
+
const isError = isInvalid || preview.startsWith("Invalid") || preview.startsWith("Cron");
|
|
6342
6613
|
const inputState = isError ? "invalid" : state ?? "default";
|
|
6343
6614
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-1", className), children: [
|
|
6344
6615
|
/* @__PURE__ */ jsx(
|
|
@@ -6357,7 +6628,7 @@ var CronInput = forwardRef(
|
|
|
6357
6628
|
className: cn(inputBaseVariants({ size, state: inputState }), "font-mono")
|
|
6358
6629
|
}
|
|
6359
6630
|
),
|
|
6360
|
-
|
|
6631
|
+
hasPreview && /* @__PURE__ */ jsx(
|
|
6361
6632
|
"div",
|
|
6362
6633
|
{
|
|
6363
6634
|
"aria-live": "polite",
|
|
@@ -6388,7 +6659,7 @@ function gradientToCss(g) {
|
|
|
6388
6659
|
return `conic-gradient(from ${g.angle}deg, ${stopsStr})`;
|
|
6389
6660
|
}
|
|
6390
6661
|
var GradientPicker = forwardRef(
|
|
6391
|
-
function GradientPicker2({ value: valueProp, defaultValue, onValueChange,
|
|
6662
|
+
function GradientPicker2({ value: valueProp, defaultValue, onValueChange, isDisabled, name, className, ...rest }, ref) {
|
|
6392
6663
|
const [gradient, setGradient] = useControlled({
|
|
6393
6664
|
controlled: valueProp,
|
|
6394
6665
|
default: defaultValue ?? DEFAULT_GRADIENT,
|
|
@@ -6418,7 +6689,7 @@ var GradientPicker = forwardRef(
|
|
|
6418
6689
|
ref,
|
|
6419
6690
|
className: cn(
|
|
6420
6691
|
"flex flex-col gap-3 rounded-md border border-border bg-card p-3 text-card-foreground shadow-sm",
|
|
6421
|
-
|
|
6692
|
+
isDisabled && "opacity-60",
|
|
6422
6693
|
className
|
|
6423
6694
|
),
|
|
6424
6695
|
...rest,
|
|
@@ -6430,7 +6701,7 @@ var GradientPicker = forwardRef(
|
|
|
6430
6701
|
type: "button",
|
|
6431
6702
|
role: "radio",
|
|
6432
6703
|
"aria-checked": gradient.kind === k,
|
|
6433
|
-
disabled,
|
|
6704
|
+
disabled: isDisabled,
|
|
6434
6705
|
onClick: () => update({ kind: k }),
|
|
6435
6706
|
className: cn(
|
|
6436
6707
|
"inline-flex h-6 items-center rounded px-2 text-xs font-medium transition-colors",
|
|
@@ -6449,7 +6720,7 @@ var GradientPicker = forwardRef(
|
|
|
6449
6720
|
min: 0,
|
|
6450
6721
|
max: 360,
|
|
6451
6722
|
value: gradient.angle,
|
|
6452
|
-
disabled,
|
|
6723
|
+
disabled: isDisabled,
|
|
6453
6724
|
onChange: (e) => update({ angle: Math.max(0, Math.min(360, Number(e.target.value) || 0)) }),
|
|
6454
6725
|
className: cn(inputBaseVariants({ size: "sm" }), "w-20")
|
|
6455
6726
|
}
|
|
@@ -6471,7 +6742,7 @@ var GradientPicker = forwardRef(
|
|
|
6471
6742
|
{
|
|
6472
6743
|
type: "color",
|
|
6473
6744
|
value: stop.color,
|
|
6474
|
-
disabled,
|
|
6745
|
+
disabled: isDisabled,
|
|
6475
6746
|
onChange: (e) => updateStop(i, { color: e.target.value }),
|
|
6476
6747
|
className: "h-7 w-10 cursor-pointer rounded-sm border border-input bg-background"
|
|
6477
6748
|
}
|
|
@@ -6481,7 +6752,7 @@ var GradientPicker = forwardRef(
|
|
|
6481
6752
|
{
|
|
6482
6753
|
type: "text",
|
|
6483
6754
|
value: stop.color,
|
|
6484
|
-
disabled,
|
|
6755
|
+
disabled: isDisabled,
|
|
6485
6756
|
onChange: (e) => updateStop(i, { color: e.target.value }),
|
|
6486
6757
|
className: cn(inputBaseVariants({ size: "sm" }), "flex-1 font-mono")
|
|
6487
6758
|
}
|
|
@@ -6493,7 +6764,7 @@ var GradientPicker = forwardRef(
|
|
|
6493
6764
|
min: 0,
|
|
6494
6765
|
max: 100,
|
|
6495
6766
|
value: stop.position,
|
|
6496
|
-
disabled,
|
|
6767
|
+
disabled: isDisabled,
|
|
6497
6768
|
onChange: (e) => updateStop(i, { position: Math.max(0, Math.min(100, Number(e.target.value) || 0)) }),
|
|
6498
6769
|
className: cn(inputBaseVariants({ size: "sm" }), "w-16")
|
|
6499
6770
|
}
|
|
@@ -6504,7 +6775,7 @@ var GradientPicker = forwardRef(
|
|
|
6504
6775
|
{
|
|
6505
6776
|
type: "button",
|
|
6506
6777
|
"aria-label": "Remove stop",
|
|
6507
|
-
disabled:
|
|
6778
|
+
disabled: isDisabled || gradient.stops.length <= 2,
|
|
6508
6779
|
onClick: () => removeStop(i),
|
|
6509
6780
|
className: "inline-flex h-7 w-7 items-center justify-center rounded text-destructive hover:bg-destructive-soft disabled:pointer-events-none disabled:opacity-40",
|
|
6510
6781
|
children: /* @__PURE__ */ jsx(Icon, { icon: Trash, size: 12 })
|
|
@@ -6515,7 +6786,7 @@ var GradientPicker = forwardRef(
|
|
|
6515
6786
|
"button",
|
|
6516
6787
|
{
|
|
6517
6788
|
type: "button",
|
|
6518
|
-
disabled,
|
|
6789
|
+
disabled: isDisabled,
|
|
6519
6790
|
onClick: addStop,
|
|
6520
6791
|
className: "inline-flex h-8 w-full items-center justify-center gap-1 rounded-md border border-dashed border-border text-xs text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
6521
6792
|
children: [
|
|
@@ -6616,7 +6887,7 @@ function configFor(iso) {
|
|
|
6616
6887
|
}
|
|
6617
6888
|
var EMPTY = { country: "US", line1: "", city: "", region: "", postalCode: "" };
|
|
6618
6889
|
var AddressForm = forwardRef(
|
|
6619
|
-
function AddressForm2({ value: valueProp, defaultValue, onValueChange,
|
|
6890
|
+
function AddressForm2({ value: valueProp, defaultValue, onValueChange, isDisabled, isReadOnly, isCompact, name, className, ...rest }, ref) {
|
|
6620
6891
|
const [address, setAddress] = useControlled({
|
|
6621
6892
|
controlled: valueProp,
|
|
6622
6893
|
default: defaultValue ?? EMPTY,
|
|
@@ -6640,7 +6911,7 @@ var AddressForm = forwardRef(
|
|
|
6640
6911
|
{
|
|
6641
6912
|
id: ids.country,
|
|
6642
6913
|
value: address.country,
|
|
6643
|
-
disabled:
|
|
6914
|
+
disabled: isDisabled || isReadOnly,
|
|
6644
6915
|
onChange: (e) => update({ country: e.target.value, region: "" }),
|
|
6645
6916
|
className: cn(inputBaseVariants({ size: "md" })),
|
|
6646
6917
|
children: [
|
|
@@ -6659,8 +6930,8 @@ var AddressForm = forwardRef(
|
|
|
6659
6930
|
type: "text",
|
|
6660
6931
|
autoComplete: "address-line1",
|
|
6661
6932
|
value: address.line1,
|
|
6662
|
-
disabled,
|
|
6663
|
-
readOnly,
|
|
6933
|
+
disabled: isDisabled,
|
|
6934
|
+
readOnly: isReadOnly,
|
|
6664
6935
|
onChange: (e) => update({ line1: e.target.value }),
|
|
6665
6936
|
className: cn(inputBaseVariants({ size: "md" }))
|
|
6666
6937
|
}
|
|
@@ -6678,14 +6949,14 @@ var AddressForm = forwardRef(
|
|
|
6678
6949
|
type: "text",
|
|
6679
6950
|
autoComplete: "address-line2",
|
|
6680
6951
|
value: address.line2 ?? "",
|
|
6681
|
-
disabled,
|
|
6682
|
-
readOnly,
|
|
6952
|
+
disabled: isDisabled,
|
|
6953
|
+
readOnly: isReadOnly,
|
|
6683
6954
|
onChange: (e) => update({ line2: e.target.value }),
|
|
6684
6955
|
className: cn(inputBaseVariants({ size: "md" }))
|
|
6685
6956
|
}
|
|
6686
6957
|
)
|
|
6687
6958
|
] }),
|
|
6688
|
-
/* @__PURE__ */ jsxs("div", { className: cn("grid gap-3",
|
|
6959
|
+
/* @__PURE__ */ jsxs("div", { className: cn("grid gap-3", isCompact ? "grid-cols-1" : "grid-cols-3"), children: [
|
|
6689
6960
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
6690
6961
|
/* @__PURE__ */ jsx("label", { htmlFor: ids.city, className: "text-xs font-medium text-foreground", children: "City" }),
|
|
6691
6962
|
/* @__PURE__ */ jsx(
|
|
@@ -6695,8 +6966,8 @@ var AddressForm = forwardRef(
|
|
|
6695
6966
|
type: "text",
|
|
6696
6967
|
autoComplete: "address-level2",
|
|
6697
6968
|
value: address.city,
|
|
6698
|
-
disabled,
|
|
6699
|
-
readOnly,
|
|
6969
|
+
disabled: isDisabled,
|
|
6970
|
+
readOnly: isReadOnly,
|
|
6700
6971
|
onChange: (e) => update({ city: e.target.value }),
|
|
6701
6972
|
className: cn(inputBaseVariants({ size: "md" }))
|
|
6702
6973
|
}
|
|
@@ -6709,7 +6980,7 @@ var AddressForm = forwardRef(
|
|
|
6709
6980
|
{
|
|
6710
6981
|
id: ids.region,
|
|
6711
6982
|
value: address.region,
|
|
6712
|
-
disabled:
|
|
6983
|
+
disabled: isDisabled || isReadOnly,
|
|
6713
6984
|
onChange: (e) => update({ region: e.target.value }),
|
|
6714
6985
|
className: cn(inputBaseVariants({ size: "md" })),
|
|
6715
6986
|
children: [
|
|
@@ -6724,8 +6995,8 @@ var AddressForm = forwardRef(
|
|
|
6724
6995
|
type: "text",
|
|
6725
6996
|
autoComplete: "address-level1",
|
|
6726
6997
|
value: address.region,
|
|
6727
|
-
disabled,
|
|
6728
|
-
readOnly,
|
|
6998
|
+
disabled: isDisabled,
|
|
6999
|
+
readOnly: isReadOnly,
|
|
6729
7000
|
onChange: (e) => update({ region: e.target.value }),
|
|
6730
7001
|
className: cn(inputBaseVariants({ size: "md" }))
|
|
6731
7002
|
}
|
|
@@ -6740,8 +7011,8 @@ var AddressForm = forwardRef(
|
|
|
6740
7011
|
type: "text",
|
|
6741
7012
|
autoComplete: "postal-code",
|
|
6742
7013
|
value: address.postalCode,
|
|
6743
|
-
disabled,
|
|
6744
|
-
readOnly,
|
|
7014
|
+
disabled: isDisabled,
|
|
7015
|
+
readOnly: isReadOnly,
|
|
6745
7016
|
onChange: (e) => update({ postalCode: e.target.value }),
|
|
6746
7017
|
className: cn(inputBaseVariants({ size: "md" }))
|
|
6747
7018
|
}
|
|
@@ -6829,9 +7100,9 @@ var PhoneInput = forwardRef(
|
|
|
6829
7100
|
defaultValue,
|
|
6830
7101
|
onValueChange,
|
|
6831
7102
|
defaultCountry = "US",
|
|
6832
|
-
|
|
6833
|
-
|
|
6834
|
-
|
|
7103
|
+
isDisabled,
|
|
7104
|
+
isReadOnly,
|
|
7105
|
+
isInvalid,
|
|
6835
7106
|
placeholder = "(555) 555-5555",
|
|
6836
7107
|
name,
|
|
6837
7108
|
className,
|
|
@@ -6842,10 +7113,18 @@ var PhoneInput = forwardRef(
|
|
|
6842
7113
|
default: defaultValue ?? "",
|
|
6843
7114
|
onChange: onValueChange
|
|
6844
7115
|
});
|
|
6845
|
-
const
|
|
7116
|
+
const [selectedIso, setSelectedIso] = useState(defaultCountry);
|
|
7117
|
+
const { iso, national } = useMemo(() => {
|
|
7118
|
+
const selected = PHONE_COUNTRIES.find((c) => c.iso === selectedIso);
|
|
7119
|
+
if (selected && (!value || value.startsWith(selected.dial))) {
|
|
7120
|
+
return { iso: selected.iso, national: value.slice(selected.dial.length).replace(/\D/g, "") };
|
|
7121
|
+
}
|
|
7122
|
+
return splitE164(value, defaultCountry);
|
|
7123
|
+
}, [value, selectedIso, defaultCountry]);
|
|
6846
7124
|
const country = PHONE_COUNTRIES.find((c) => c.iso === iso) ?? PHONE_COUNTRIES[0];
|
|
6847
7125
|
const setCountry = (nextIso) => {
|
|
6848
7126
|
const next = PHONE_COUNTRIES.find((c) => c.iso === nextIso) ?? country;
|
|
7127
|
+
setSelectedIso(next.iso);
|
|
6849
7128
|
setValue(`${next.dial}${national}`);
|
|
6850
7129
|
};
|
|
6851
7130
|
const setNational = (raw) => {
|
|
@@ -6858,8 +7137,8 @@ var PhoneInput = forwardRef(
|
|
|
6858
7137
|
ref,
|
|
6859
7138
|
className: cn(
|
|
6860
7139
|
"inline-flex items-stretch overflow-hidden rounded-md border bg-background",
|
|
6861
|
-
|
|
6862
|
-
|
|
7140
|
+
isInvalid ? "border-destructive" : "border-input",
|
|
7141
|
+
isDisabled && "opacity-60",
|
|
6863
7142
|
className
|
|
6864
7143
|
),
|
|
6865
7144
|
...rest,
|
|
@@ -6869,7 +7148,7 @@ var PhoneInput = forwardRef(
|
|
|
6869
7148
|
{
|
|
6870
7149
|
"aria-label": "Country",
|
|
6871
7150
|
value: iso,
|
|
6872
|
-
disabled:
|
|
7151
|
+
disabled: isDisabled || isReadOnly,
|
|
6873
7152
|
onChange: (e) => setCountry(e.target.value),
|
|
6874
7153
|
className: cn(
|
|
6875
7154
|
"h-10 cursor-pointer border-r border-input bg-card pl-2 pr-1 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
@@ -6890,9 +7169,9 @@ var PhoneInput = forwardRef(
|
|
|
6890
7169
|
autoComplete: "tel-national",
|
|
6891
7170
|
value: national,
|
|
6892
7171
|
placeholder,
|
|
6893
|
-
disabled,
|
|
6894
|
-
readOnly,
|
|
6895
|
-
"aria-invalid":
|
|
7172
|
+
disabled: isDisabled,
|
|
7173
|
+
readOnly: isReadOnly,
|
|
7174
|
+
"aria-invalid": isInvalid || void 0,
|
|
6896
7175
|
onChange: (e) => setNational(e.target.value),
|
|
6897
7176
|
className: cn(
|
|
6898
7177
|
inputBaseVariants({ size: "md" }),
|
|
@@ -7190,7 +7469,7 @@ var EmojiPicker = forwardRef(
|
|
|
7190
7469
|
columns = 8,
|
|
7191
7470
|
cellSize = 28,
|
|
7192
7471
|
categories = EMOJI,
|
|
7193
|
-
|
|
7472
|
+
isDisabled,
|
|
7194
7473
|
className,
|
|
7195
7474
|
...rest
|
|
7196
7475
|
}, ref) {
|
|
@@ -7227,7 +7506,7 @@ var EmojiPicker = forwardRef(
|
|
|
7227
7506
|
},
|
|
7228
7507
|
className: cn(
|
|
7229
7508
|
"flex flex-col rounded-md border border-border bg-card text-card-foreground shadow-sm",
|
|
7230
|
-
|
|
7509
|
+
isDisabled && "opacity-60",
|
|
7231
7510
|
className
|
|
7232
7511
|
),
|
|
7233
7512
|
style: { width: columns * cellSize + 24 },
|
|
@@ -7239,7 +7518,7 @@ var EmojiPicker = forwardRef(
|
|
|
7239
7518
|
type: "search",
|
|
7240
7519
|
value: query,
|
|
7241
7520
|
placeholder,
|
|
7242
|
-
disabled,
|
|
7521
|
+
disabled: isDisabled,
|
|
7243
7522
|
onChange: (e) => setQuery(e.target.value),
|
|
7244
7523
|
className: cn(inputBaseVariants({ size: "sm" }))
|
|
7245
7524
|
}
|
|
@@ -7267,9 +7546,9 @@ var EmojiPicker = forwardRef(
|
|
|
7267
7546
|
"aria-label": "Emoji",
|
|
7268
7547
|
className: "overflow-y-auto p-2",
|
|
7269
7548
|
style: { maxHeight: 280 },
|
|
7270
|
-
children: matches ? matches.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-2 py-6 text-center text-xs text-muted-foreground", children: "No emoji match." }) : /* @__PURE__ */ jsx("div", { className: "grid", style: { gridTemplateColumns: `repeat(${columns}, ${cellSize}px)` }, children: matches.map((e) => /* @__PURE__ */ jsx(EmojiCell, { entry: e, cellSize,
|
|
7549
|
+
children: matches ? matches.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-2 py-6 text-center text-xs text-muted-foreground", children: "No emoji match." }) : /* @__PURE__ */ jsx("div", { className: "grid", style: { gridTemplateColumns: `repeat(${columns}, ${cellSize}px)` }, children: matches.map((e) => /* @__PURE__ */ jsx(EmojiCell, { entry: e, cellSize, isDisabled, onSelect }, e.emoji)) }) : categories.map((cat) => /* @__PURE__ */ jsxs("div", { "data-cat": cat.id, id: `emoji-cat-${cat.id}`, className: "mb-3", children: [
|
|
7271
7550
|
/* @__PURE__ */ jsx("div", { className: "mb-1 px-1 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground", children: cat.label }),
|
|
7272
|
-
/* @__PURE__ */ jsx("div", { className: "grid", style: { gridTemplateColumns: `repeat(${columns}, ${cellSize}px)` }, children: cat.emojis.map((e) => /* @__PURE__ */ jsx(EmojiCell, { entry: e, cellSize,
|
|
7551
|
+
/* @__PURE__ */ jsx("div", { className: "grid", style: { gridTemplateColumns: `repeat(${columns}, ${cellSize}px)` }, children: cat.emojis.map((e) => /* @__PURE__ */ jsx(EmojiCell, { entry: e, cellSize, isDisabled, onSelect }, e.emoji)) })
|
|
7273
7552
|
] }, cat.id))
|
|
7274
7553
|
}
|
|
7275
7554
|
)
|
|
@@ -7278,13 +7557,13 @@ var EmojiPicker = forwardRef(
|
|
|
7278
7557
|
);
|
|
7279
7558
|
}
|
|
7280
7559
|
);
|
|
7281
|
-
function EmojiCell({ entry, cellSize,
|
|
7560
|
+
function EmojiCell({ entry, cellSize, isDisabled, onSelect }) {
|
|
7282
7561
|
return /* @__PURE__ */ jsx("div", { role: "gridcell", children: /* @__PURE__ */ jsx(
|
|
7283
7562
|
"button",
|
|
7284
7563
|
{
|
|
7285
7564
|
type: "button",
|
|
7286
7565
|
"aria-label": entry.name,
|
|
7287
|
-
disabled,
|
|
7566
|
+
disabled: isDisabled,
|
|
7288
7567
|
onClick: () => onSelect(entry.emoji),
|
|
7289
7568
|
style: { width: cellSize, height: cellSize },
|
|
7290
7569
|
className: "inline-flex items-center justify-center rounded-md text-lg transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
@@ -7304,7 +7583,7 @@ var ReactionPicker = forwardRef(
|
|
|
7304
7583
|
selected,
|
|
7305
7584
|
onSelect,
|
|
7306
7585
|
onMore,
|
|
7307
|
-
|
|
7586
|
+
isMoreHidden,
|
|
7308
7587
|
size = "md",
|
|
7309
7588
|
className,
|
|
7310
7589
|
...props
|
|
@@ -7341,7 +7620,7 @@ var ReactionPicker = forwardRef(
|
|
|
7341
7620
|
emoji
|
|
7342
7621
|
);
|
|
7343
7622
|
}),
|
|
7344
|
-
!
|
|
7623
|
+
!isMoreHidden && onMore && /* @__PURE__ */ jsx(
|
|
7345
7624
|
"button",
|
|
7346
7625
|
{
|
|
7347
7626
|
type: "button",
|
|
@@ -7367,11 +7646,11 @@ var ChatComposer = forwardRef(
|
|
|
7367
7646
|
onValueChange,
|
|
7368
7647
|
onSubmit,
|
|
7369
7648
|
placeholder = "Write a message\u2026",
|
|
7370
|
-
|
|
7649
|
+
isDisabled,
|
|
7371
7650
|
leading,
|
|
7372
7651
|
trailing,
|
|
7373
7652
|
sendButton,
|
|
7374
|
-
|
|
7653
|
+
isSendButtonHidden,
|
|
7375
7654
|
submitOn = "enter",
|
|
7376
7655
|
maxHeight = 200,
|
|
7377
7656
|
textareaProps,
|
|
@@ -7399,7 +7678,7 @@ var ChatComposer = forwardRef(
|
|
|
7399
7678
|
const handleSubmit = (e) => {
|
|
7400
7679
|
e?.preventDefault();
|
|
7401
7680
|
const trimmed = value.trim();
|
|
7402
|
-
if (!trimmed ||
|
|
7681
|
+
if (!trimmed || isDisabled) return;
|
|
7403
7682
|
onSubmit?.(trimmed);
|
|
7404
7683
|
if (valueProp === void 0) setValue("");
|
|
7405
7684
|
};
|
|
@@ -7422,7 +7701,7 @@ var ChatComposer = forwardRef(
|
|
|
7422
7701
|
className: cn(
|
|
7423
7702
|
"flex w-full items-end gap-2 rounded-2xl border border-input bg-background px-3 py-2",
|
|
7424
7703
|
"focus-within:ring-2 focus-within:ring-ring",
|
|
7425
|
-
|
|
7704
|
+
isDisabled && "cursor-not-allowed opacity-60",
|
|
7426
7705
|
className
|
|
7427
7706
|
),
|
|
7428
7707
|
...props,
|
|
@@ -7438,7 +7717,7 @@ var ChatComposer = forwardRef(
|
|
|
7438
7717
|
onKeyDown: handleKeyDown,
|
|
7439
7718
|
rows: 1,
|
|
7440
7719
|
placeholder,
|
|
7441
|
-
disabled,
|
|
7720
|
+
disabled: isDisabled,
|
|
7442
7721
|
className: cn(
|
|
7443
7722
|
"flex-1 resize-none bg-transparent py-1 text-sm leading-relaxed text-foreground placeholder:text-muted-foreground focus:outline-none",
|
|
7444
7723
|
textareaProps?.className
|
|
@@ -7446,11 +7725,11 @@ var ChatComposer = forwardRef(
|
|
|
7446
7725
|
}
|
|
7447
7726
|
),
|
|
7448
7727
|
trailing && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-1 self-end pb-1", children: trailing }),
|
|
7449
|
-
!
|
|
7728
|
+
!isSendButtonHidden && (sendButton ?? /* @__PURE__ */ jsx(
|
|
7450
7729
|
"button",
|
|
7451
7730
|
{
|
|
7452
7731
|
type: "submit",
|
|
7453
|
-
disabled:
|
|
7732
|
+
disabled: isDisabled || isEmpty,
|
|
7454
7733
|
"aria-label": "Send message",
|
|
7455
7734
|
className: cn(
|
|
7456
7735
|
"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full self-end",
|
|
@@ -7469,5 +7748,5 @@ var ChatComposer = forwardRef(
|
|
|
7469
7748
|
ChatComposer.displayName = "ChatComposer";
|
|
7470
7749
|
|
|
7471
7750
|
export { ADDRESS_COUNTRIES, AddressForm, BUILT_IN_EMOJI, BUILT_IN_FONTS, Calendar, CharacterCount, ChatComposer, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, CodeEditor, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CronInput, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, EmojiPicker, Fieldset, FilePicker, FileUpload, FontPicker, FormErrorMessage, FormField, FormHelperText, GradientPicker, IconPicker, InputAddon, InputGroup, JSONEditor, KeyboardShortcutPicker, Knob, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MarkdownEditor, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PHONE_COUNTRIES, PasswordInput, PasswordStrength, PercentInput, PhoneInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, ReactionPicker, RecurrenceEditor, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, Textarea, TimeField, TimePicker, UrlInput, Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, gradientToCss, useWizard };
|
|
7472
|
-
//# sourceMappingURL=chunk-
|
|
7473
|
-
//# sourceMappingURL=chunk-
|
|
7751
|
+
//# sourceMappingURL=chunk-HG7NX6GP.js.map
|
|
7752
|
+
//# sourceMappingURL=chunk-HG7NX6GP.js.map
|