@clubmed/trident-ui 2.0.0-beta.7 → 2.0.0-beta.74
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/README.md +8 -0
- package/assets/trident-ui.css +3 -0
- package/chunks/Backdrop.js +1 -1
- package/chunks/Backdrop.js.map +1 -1
- package/chunks/Birthdate.js +27 -0
- package/chunks/Birthdate.js.map +1 -0
- package/chunks/Carousel.context.js +1548 -0
- package/chunks/Carousel.context.js.map +1 -0
- package/chunks/ChatMessage.js +14395 -0
- package/chunks/ChatMessage.js.map +1 -0
- package/chunks/CriteriaParticipants.js +415 -0
- package/chunks/CriteriaParticipants.js.map +1 -0
- package/chunks/DateField.js +189 -128
- package/chunks/DateField.js.map +1 -1
- package/chunks/Datepicker.js +2039 -0
- package/chunks/Datepicker.js.map +1 -0
- package/chunks/Day.js +88 -0
- package/chunks/Day.js.map +1 -0
- package/chunks/Range.js +2 -2
- package/chunks/Range.js.map +1 -1
- package/chunks/Tooltip.js +4461 -0
- package/chunks/Tooltip.js.map +1 -0
- package/chunks/addLeadingZeros.js +33 -0
- package/chunks/addLeadingZeros.js.map +1 -0
- package/chunks/addYears.js +18 -0
- package/chunks/addYears.js.map +1 -0
- package/chunks/chunk.js +11 -4
- package/chunks/client.js +18953 -0
- package/chunks/client.js.map +1 -0
- package/chunks/endOfMonth.js +17 -0
- package/chunks/endOfMonth.js.map +1 -0
- package/chunks/format.js +1113 -0
- package/chunks/format.js.map +1 -0
- package/chunks/formatISO.js +29 -0
- package/chunks/formatISO.js.map +1 -0
- package/chunks/isAfter.js +9 -0
- package/chunks/isAfter.js.map +1 -0
- package/chunks/isBefore.js +15 -0
- package/chunks/isBefore.js.map +1 -0
- package/chunks/normalizeDates.js +10 -0
- package/chunks/normalizeDates.js.map +1 -0
- package/chunks/subYears.js +9 -0
- package/chunks/subYears.js.map +1 -0
- package/examples/accordion-demo.d.ts +1 -0
- package/examples/accordion-demo.js +79 -0
- package/examples/accordion-demo.js.map +1 -0
- package/examples/accordion-multiple-demo.d.ts +1 -0
- package/examples/accordion-multiple-demo.js +79 -0
- package/examples/accordion-multiple-demo.js.map +1 -0
- package/examples/accordion-trigger-wrapper-demo.d.ts +1 -0
- package/examples/accordion-trigger-wrapper-demo.js +80 -0
- package/examples/accordion-trigger-wrapper-demo.js.map +1 -0
- package/examples/advanced-toast-demo.js +2 -2
- package/examples/advanced-toast-demo.js.map +1 -1
- package/examples/advanced-toast-green-demo.js +1 -1
- package/examples/advanced-toast-green-demo.js.map +1 -1
- package/examples/advanced-toast-no-dismiss-demo.js +1 -1
- package/examples/advanced-toast-no-dismiss-demo.js.map +1 -1
- package/examples/advanced-toast-red-demo.js +1 -1
- package/examples/advanced-toast-red-demo.js.map +1 -1
- package/examples/advanced-toast-with-details-demo.js +2 -2
- package/examples/advanced-toast-with-details-demo.js.map +1 -1
- package/examples/arrow-button-demo.js +2 -1
- package/examples/arrow-button-demo.js.map +1 -1
- package/examples/arrow-button-disabled-demo.js +2 -1
- package/examples/arrow-button-disabled-demo.js.map +1 -1
- package/examples/arrow-button-left-demo.js +2 -1
- package/examples/arrow-button-left-demo.js.map +1 -1
- package/examples/arrow-button-outline-demo.js +2 -1
- package/examples/arrow-button-outline-demo.js.map +1 -1
- package/examples/arrow-button-tail-demo.js +2 -1
- package/examples/arrow-button-tail-demo.js.map +1 -1
- package/examples/avatar-demo.js +7 -7
- package/examples/button-demo.js +2 -2
- package/examples/button-demo.js.map +1 -1
- package/examples/card-list-demo.js +10 -10
- package/examples/card-no-border-demo.js +7 -7
- package/examples/chat-button-demo.js +1 -1
- package/examples/chat-button-demo.js.map +1 -1
- package/examples/chat-button-offset-demo.js +4 -1
- package/examples/chat-button-offset-demo.js.map +1 -1
- package/examples/chat-input-demo.d.ts +1 -0
- package/examples/chat-input-demo.js +22 -0
- package/examples/chat-input-demo.js.map +1 -0
- package/examples/chat-message-demo.d.ts +1 -0
- package/examples/chat-message-demo.js +20 -0
- package/examples/chat-message-demo.js.map +1 -0
- package/examples/chat-typing-indicator-demo.d.ts +1 -0
- package/examples/chat-typing-indicator-demo.js +14 -0
- package/examples/chat-typing-indicator-demo.js.map +1 -0
- package/examples/chat-window-csat-demo.d.ts +1 -0
- package/examples/chat-window-csat-demo.js +69 -0
- package/examples/chat-window-csat-demo.js.map +1 -0
- package/examples/chat-window-csat-prompt-demo.d.ts +1 -0
- package/examples/chat-window-csat-prompt-demo.js +40 -0
- package/examples/chat-window-csat-prompt-demo.js.map +1 -0
- package/examples/chat-window-demo.d.ts +1 -0
- package/examples/chat-window-demo.js +70 -0
- package/examples/chat-window-demo.js.map +1 -0
- package/examples/chat-window-quote-demo.d.ts +1 -0
- package/examples/chat-window-quote-demo.js +47 -0
- package/examples/chat-window-quote-demo.js.map +1 -0
- package/examples/chat-window-quotes-demo.d.ts +1 -0
- package/examples/chat-window-quotes-demo.js +68 -0
- package/examples/chat-window-quotes-demo.js.map +1 -0
- package/examples/checkbox-demo.js +17 -15
- package/examples/checkbox-demo.js.map +1 -1
- package/examples/checkbox-disabled-demo.js +12 -15
- package/examples/checkbox-disabled-demo.js.map +1 -1
- package/examples/checkbox-select-demo.d.ts +1 -0
- package/examples/checkbox-select-demo.js +101 -0
- package/examples/checkbox-select-demo.js.map +1 -0
- package/examples/checkboxes-demo.js +2 -1
- package/examples/checkboxes-demo.js.map +1 -1
- package/examples/checkboxes-with-form-control-demo.js +8 -8
- package/examples/checkboxes-with-form-control-demo.js.map +1 -1
- package/examples/chip-demo.js +4 -4
- package/examples/choice-expander-demo.js +5 -67
- package/examples/choice-expander-demo.js.map +1 -1
- package/examples/countdown-demo.d.ts +1 -0
- package/examples/countdown-demo.js +39 -0
- package/examples/countdown-demo.js.map +1 -0
- package/examples/criteria-dates-demo.d.ts +1 -0
- package/examples/criteria-dates-demo.js +41 -0
- package/examples/criteria-dates-demo.js.map +1 -0
- package/examples/criteria-participants-demo.d.ts +1 -0
- package/examples/criteria-participants-demo.js +77 -0
- package/examples/criteria-participants-demo.js.map +1 -0
- package/examples/criteria-participants-flow1-demo.d.ts +1 -0
- package/examples/criteria-participants-flow1-demo.js +53 -0
- package/examples/criteria-participants-flow1-demo.js.map +1 -0
- package/examples/criteria-participants-flow2-demo.d.ts +1 -0
- package/examples/criteria-participants-flow2-demo.js +61 -0
- package/examples/criteria-participants-flow2-demo.js.map +1 -0
- package/examples/criteria-participants-flow3-demo.d.ts +1 -0
- package/examples/criteria-participants-flow3-demo.js +72 -0
- package/examples/criteria-participants-flow3-demo.js.map +1 -0
- package/examples/criteria-transports-b2b-demo.d.ts +1 -0
- package/examples/criteria-transports-b2b-demo.js +51 -0
- package/examples/criteria-transports-b2b-demo.js.map +1 -0
- package/examples/criteria-transports-b2c-demo.d.ts +1 -0
- package/examples/criteria-transports-b2c-demo.js +37 -0
- package/examples/criteria-transports-b2c-demo.js.map +1 -0
- package/examples/criteria-transports-data.d.ts +7 -0
- package/examples/criteria-transports-data.js +151 -0
- package/examples/criteria-transports-data.js.map +1 -0
- package/examples/criteria-transports-demo.d.ts +1 -0
- package/examples/criteria-transports-demo.js +34 -0
- package/examples/criteria-transports-demo.js.map +1 -0
- package/examples/criteria-transports-error-demo.d.ts +1 -0
- package/examples/criteria-transports-error-demo.js +29 -0
- package/examples/criteria-transports-error-demo.js.map +1 -0
- package/examples/datepicker-demo.d.ts +1 -0
- package/examples/datepicker-demo.js +51 -0
- package/examples/datepicker-demo.js.map +1 -0
- package/examples/datepicker-disabled-days-demo.d.ts +1 -0
- package/examples/datepicker-disabled-days-demo.js +42 -0
- package/examples/datepicker-disabled-days-demo.js.map +1 -0
- package/examples/datepicker-duration-tooltip-demo.d.ts +1 -0
- package/examples/datepicker-duration-tooltip-demo.js +68 -0
- package/examples/datepicker-duration-tooltip-demo.js.map +1 -0
- package/examples/datepicker-no-prices-demo.d.ts +1 -0
- package/examples/datepicker-no-prices-demo.js +42 -0
- package/examples/datepicker-no-prices-demo.js.map +1 -0
- package/examples/datepicker-preselected-demo.d.ts +1 -0
- package/examples/datepicker-preselected-demo.js +77 -0
- package/examples/datepicker-preselected-demo.js.map +1 -0
- package/examples/dropdown-demo.js +9 -1
- package/examples/dropdown-demo.js.map +1 -1
- package/examples/elastic-height-demo.js +2 -1
- package/examples/elastic-height-demo.js.map +1 -1
- package/examples/expandable-text-demo.d.ts +1 -0
- package/examples/expandable-text-demo.js +22 -0
- package/examples/expandable-text-demo.js.map +1 -0
- package/examples/filter-demo.js +5 -5
- package/examples/floating-label-text-field-demo.d.ts +1 -0
- package/examples/floating-label-text-field-demo.js +32 -0
- package/examples/floating-label-text-field-demo.js.map +1 -0
- package/examples/frame-demo.d.ts +1 -0
- package/examples/frame-demo.js +36 -0
- package/examples/frame-demo.js.map +1 -0
- package/examples/frame-horizontal-demo.d.ts +1 -0
- package/examples/frame-horizontal-demo.js +44 -0
- package/examples/frame-horizontal-demo.js.map +1 -0
- package/examples/frame-no-image-demo.d.ts +1 -0
- package/examples/frame-no-image-demo.js +47 -0
- package/examples/frame-no-image-demo.js.map +1 -0
- package/examples/frame-vertical-demo.d.ts +1 -0
- package/examples/frame-vertical-demo.js +44 -0
- package/examples/frame-vertical-demo.js.map +1 -0
- package/examples/frame-with-tag-demo.d.ts +1 -0
- package/examples/frame-with-tag-demo.js +48 -0
- package/examples/frame-with-tag-demo.js.map +1 -0
- package/examples/journey-card-compact-demo.d.ts +1 -0
- package/examples/journey-card-compact-demo.js +71 -0
- package/examples/journey-card-compact-demo.js.map +1 -0
- package/examples/journey-card-demo.d.ts +1 -0
- package/examples/journey-card-demo.js +123 -0
- package/examples/journey-card-demo.js.map +1 -0
- package/examples/page-navigation-demo.d.ts +1 -0
- package/examples/page-navigation-demo.js +53 -0
- package/examples/page-navigation-demo.js.map +1 -0
- package/examples/password-demo.js +1 -0
- package/examples/password-demo.js.map +1 -1
- package/examples/phone-field-demo.js +6 -2
- package/examples/phone-field-demo.js.map +1 -1
- package/examples/radio-demo.js +3 -3
- package/examples/radio-demo.js.map +1 -1
- package/examples/radio-select-demo.d.ts +1 -0
- package/examples/radio-select-demo.js +100 -0
- package/examples/radio-select-demo.js.map +1 -0
- package/examples/scrollbar-demo.d.ts +1 -0
- package/examples/scrollbar-demo.js +42 -0
- package/examples/scrollbar-demo.js.map +1 -0
- package/examples/select-demo.js +1 -0
- package/examples/select-demo.js.map +1 -1
- package/examples/slider-frame-demo.d.ts +1 -0
- package/examples/slider-frame-demo.js +39 -0
- package/examples/slider-frame-demo.js.map +1 -0
- package/examples/slider-frame-with-button-demo.d.ts +1 -0
- package/examples/slider-frame-with-button-demo.js +47 -0
- package/examples/slider-frame-with-button-demo.js.map +1 -0
- package/examples/slider-frame-with-tag-demo.d.ts +1 -0
- package/examples/slider-frame-with-tag-demo.js +51 -0
- package/examples/slider-frame-with-tag-demo.js.map +1 -0
- package/examples/switch-demo.js +3 -2
- package/examples/switch-demo.js.map +1 -1
- package/examples/tabs-demo.js +2 -5
- package/examples/tabs-demo.js.map +1 -1
- package/examples/tabs-notification-demo.d.ts +1 -0
- package/examples/tabs-notification-demo.js +64 -0
- package/examples/tabs-notification-demo.js.map +1 -0
- package/examples/tabs-with-select-demo.js +1 -0
- package/examples/tabs-with-select-demo.js.map +1 -1
- package/examples/text-field-demo.js +6 -0
- package/examples/text-field-demo.js.map +1 -1
- package/examples/toggle-demo.d.ts +1 -0
- package/examples/toggle-demo.js +44 -0
- package/examples/toggle-demo.js.map +1 -0
- package/examples/toggle-small-demo.d.ts +1 -0
- package/examples/toggle-small-demo.js +33 -0
- package/examples/toggle-small-demo.js.map +1 -0
- package/examples/tooltip-demo.d.ts +1 -0
- package/examples/tooltip-demo.js +103 -0
- package/examples/tooltip-demo.js.map +1 -0
- package/package.json +10 -3
- package/styles/components.css +99 -0
- package/styles/index.css +0 -1
- package/styles/theme.css +5 -2
- package/styles/ui/button.css +1 -1
- package/styles/ui/chat-button.css +68 -1
- package/styles/ui/controls.css +11 -58
- package/styles/ui/range.css +6 -1
- package/styles/ui/tabs.css +0 -19
- package/ui/Accordion.d.ts +30 -0
- package/ui/Accordion.js +71 -0
- package/ui/Accordion.js.map +1 -0
- package/ui/AdvancedToast.js +31 -28
- package/ui/AdvancedToast.js.map +1 -1
- package/ui/Avatar.js +1 -1
- package/ui/Avatar.js.map +1 -1
- package/ui/BasicToast.js +13 -13
- package/ui/BasicToast.js.map +1 -1
- package/ui/Breadcrumb.js +7 -6
- package/ui/Breadcrumb.js.map +1 -1
- package/ui/ChatButton.js +9 -9
- package/ui/ChatButton.js.map +1 -1
- package/ui/ChatInput.d.ts +10 -0
- package/ui/ChatInput.js +149 -0
- package/ui/ChatInput.js.map +1 -0
- package/ui/ChatMessage.d.ts +6 -0
- package/ui/ChatMessage.js +2 -0
- package/ui/ChatTypingIndicator.d.ts +2 -0
- package/ui/ChatTypingIndicator.js +30 -0
- package/ui/ChatTypingIndicator.js.map +1 -0
- package/ui/ChatWindow.d.ts +34 -0
- package/ui/ChatWindow.js +142 -0
- package/ui/ChatWindow.js.map +1 -0
- package/ui/ChatWindowCsatPrompt.d.ts +15 -0
- package/ui/ChatWindowCsatPrompt.js +71 -0
- package/ui/ChatWindowCsatPrompt.js.map +1 -0
- package/ui/ChatWindowCsatThankYou.d.ts +9 -0
- package/ui/ChatWindowCsatThankYou.js +29 -0
- package/ui/ChatWindowCsatThankYou.js.map +1 -0
- package/ui/ChatWindowQuote.d.ts +22 -0
- package/ui/ChatWindowQuote.js +141 -0
- package/ui/ChatWindowQuote.js.map +1 -0
- package/ui/Chip.js +4 -4
- package/ui/ChoiceExpander.js +18 -18
- package/ui/ChoiceExpander.js.map +1 -1
- package/ui/Countdown.d.ts +16 -0
- package/ui/Countdown.js +61 -0
- package/ui/Countdown.js.map +1 -0
- package/ui/Datepicker.d.ts +26 -0
- package/ui/Datepicker.js +2 -0
- package/ui/Day.d.ts +25 -0
- package/ui/Day.js +2 -0
- package/ui/Dropdown.d.ts +20 -3
- package/ui/Dropdown.js +61 -27
- package/ui/Dropdown.js.map +1 -1
- package/ui/ElasticHeight.d.ts +0 -1
- package/ui/ElasticHeight.js +14 -23
- package/ui/ElasticHeight.js.map +1 -1
- package/ui/ExpandableText.d.ts +14 -0
- package/ui/ExpandableText.js +40 -0
- package/ui/ExpandableText.js.map +1 -0
- package/ui/FlipCard.d.ts +7 -0
- package/ui/FlipCard.js +59 -0
- package/ui/FlipCard.js.map +1 -0
- package/ui/HamburgerIcon.js +1 -1
- package/ui/HamburgerIcon.js.map +1 -1
- package/ui/Link.js +8 -8
- package/ui/Link.js.map +1 -1
- package/ui/PageNavigation.d.ts +13 -0
- package/ui/PageNavigation.js +71 -0
- package/ui/PageNavigation.js.map +1 -0
- package/ui/Pagination.js +23 -23
- package/ui/Pagination.js.map +1 -1
- package/ui/Scrollbar.d.ts +14 -0
- package/ui/Scrollbar.js +68 -0
- package/ui/Scrollbar.js.map +1 -0
- package/ui/SidebarLayout.d.ts +3 -1
- package/ui/SidebarLayout.js +67 -59
- package/ui/SidebarLayout.js.map +1 -1
- package/ui/Tag.js +6 -6
- package/ui/Toggle.d.ts +15 -0
- package/ui/Toggle.js +42 -0
- package/ui/Toggle.js.map +1 -0
- package/ui/Tooltip.d.ts +8 -0
- package/ui/Tooltip.js +2 -0
- package/ui/buttons/Button.type.d.ts +1 -1
- package/ui/buttons/Button.type.js +1 -1
- package/ui/buttons/Button.type.js.map +1 -1
- package/ui/buttons/ButtonContent.js +3 -3
- package/ui/carousel/Carousel.context.d.ts +27 -0
- package/ui/carousel/Carousel.context.js +2 -0
- package/ui/carousel/Carousel.d.ts +3 -0
- package/ui/carousel/Carousel.js +12 -0
- package/ui/carousel/Carousel.js.map +1 -0
- package/ui/carousel/CarouselBody.d.ts +6 -0
- package/ui/carousel/CarouselBody.js +21 -0
- package/ui/carousel/CarouselBody.js.map +1 -0
- package/ui/carousel/CarouselItem.d.ts +6 -0
- package/ui/carousel/CarouselItem.js +21 -0
- package/ui/carousel/CarouselItem.js.map +1 -0
- package/ui/carousel/CarouselNext.d.ts +8 -0
- package/ui/carousel/CarouselNext.js +23 -0
- package/ui/carousel/CarouselNext.js.map +1 -0
- package/ui/carousel/CarouselPrevious.d.ts +8 -0
- package/ui/carousel/CarouselPrevious.js +23 -0
- package/ui/carousel/CarouselPrevious.js.map +1 -0
- package/ui/contexts/TridentUIConfig.js +1 -1
- package/ui/criteria/Birthdate.d.ts +13 -0
- package/ui/criteria/Birthdate.js +2 -0
- package/ui/criteria/CriteriaDates.d.ts +32 -0
- package/ui/criteria/CriteriaDates.js +76 -0
- package/ui/criteria/CriteriaDates.js.map +1 -0
- package/ui/criteria/CriteriaParticipants.d.ts +106 -0
- package/ui/criteria/CriteriaParticipants.js +2 -0
- package/ui/criteria/CriteriaSection.d.ts +6 -0
- package/ui/criteria/CriteriaSection.js +15 -0
- package/ui/criteria/CriteriaSection.js.map +1 -0
- package/ui/criteria/CriteriaTransports.d.ts +72 -0
- package/ui/criteria/CriteriaTransports.js +224 -0
- package/ui/criteria/CriteriaTransports.js.map +1 -0
- package/ui/forms/CheckboxSelect.d.ts +31 -0
- package/ui/forms/CheckboxSelect.js +119 -0
- package/ui/forms/CheckboxSelect.js.map +1 -0
- package/ui/forms/Filter.d.ts +10 -4
- package/ui/forms/Filter.js +26 -44
- package/ui/forms/Filter.js.map +1 -1
- package/ui/forms/FloatingLabelTextField.d.ts +12 -0
- package/ui/forms/FloatingLabelTextField.js +132 -0
- package/ui/forms/FloatingLabelTextField.js.map +1 -0
- package/ui/forms/FormControl.d.ts +1 -1
- package/ui/forms/FormControl.js +4 -4
- package/ui/forms/FormControl.js.map +1 -1
- package/ui/forms/FormControlError.js +4 -4
- package/ui/forms/NumberField.d.ts +27 -26
- package/ui/forms/NumberField.js +24 -25
- package/ui/forms/NumberField.js.map +1 -1
- package/ui/forms/PhoneField.d.ts +5 -10
- package/ui/forms/PhoneField.js +31 -211
- package/ui/forms/PhoneField.js.map +1 -1
- package/ui/forms/PhoneFieldFullInput.d.ts +16 -0
- package/ui/forms/PhoneFieldFullInput.js +110 -0
- package/ui/forms/PhoneFieldFullInput.js.map +1 -0
- package/ui/forms/PhoneFieldSplitInput.d.ts +19 -0
- package/ui/forms/PhoneFieldSplitInput.js +158 -0
- package/ui/forms/PhoneFieldSplitInput.js.map +1 -0
- package/ui/forms/RadioSelect.d.ts +31 -0
- package/ui/forms/RadioSelect.js +117 -0
- package/ui/forms/RadioSelect.js.map +1 -0
- package/ui/forms/Range.d.ts +1 -1
- package/ui/forms/Select.js +18 -19
- package/ui/forms/Select.js.map +1 -1
- package/ui/forms/Switch.d.ts +5 -3
- package/ui/forms/Switch.js +54 -34
- package/ui/forms/Switch.js.map +1 -1
- package/ui/forms/TextField.js +35 -26
- package/ui/forms/TextField.js.map +1 -1
- package/ui/forms/checkboxes/Checkbox.d.ts +9 -4
- package/ui/forms/checkboxes/Checkbox.js +36 -16
- package/ui/forms/checkboxes/Checkbox.js.map +1 -1
- package/ui/forms/checkboxes/Checkboxes.d.ts +5 -0
- package/ui/forms/checkboxes/Checkboxes.js +8 -8
- package/ui/forms/checkboxes/Checkboxes.js.map +1 -1
- package/ui/forms/checkboxes/index.d.ts +0 -1
- package/ui/forms/checkboxes/index.js +1 -2
- package/ui/forms/password/Password.js +21 -22
- package/ui/forms/password/Password.js.map +1 -1
- package/ui/forms/password/ValidationMessage.js +5 -5
- package/ui/forms/radios/Radio.d.ts +2 -1
- package/ui/forms/radios/Radio.js +6 -3
- package/ui/forms/radios/Radio.js.map +1 -1
- package/ui/forms/radios/RadioGroup.js +13 -14
- package/ui/forms/radios/RadioGroup.js.map +1 -1
- package/ui/frame/Frame.d.ts +8 -0
- package/ui/frame/Frame.js +16 -0
- package/ui/frame/Frame.js.map +1 -0
- package/ui/frame/FrameLabelsWrapper.d.ts +5 -0
- package/ui/frame/FrameLabelsWrapper.js +12 -0
- package/ui/frame/FrameLabelsWrapper.js.map +1 -0
- package/ui/frame/FrameTitle.d.ts +7 -0
- package/ui/frame/FrameTitle.js +25 -0
- package/ui/frame/FrameTitle.js.map +1 -0
- package/ui/frame/FrameWrapper.d.ts +6 -0
- package/ui/frame/FrameWrapper.js +14 -0
- package/ui/frame/FrameWrapper.js.map +1 -0
- package/ui/frame/SliderFrame.d.ts +14 -0
- package/ui/frame/SliderFrame.js +50 -0
- package/ui/frame/SliderFrame.js.map +1 -0
- package/ui/helpers/cn.d.ts +2 -0
- package/ui/helpers/cn.js +10 -0
- package/ui/helpers/cn.js.map +1 -0
- package/ui/helpers/phone/defaultPrefixes.d.ts +1 -0
- package/ui/helpers/phone/defaultPrefixes.js +52 -28
- package/ui/helpers/phone/defaultPrefixes.js.map +1 -1
- package/ui/helpers/phone/formatters.d.ts +11 -0
- package/ui/helpers/phone/formatters.js +32 -1
- package/ui/helpers/phone/formatters.js.map +1 -1
- package/ui/helpers/phone/index.d.ts +1 -1
- package/ui/helpers/phone/index.js +3 -3
- package/ui/hooks/useIsClient.d.ts +1 -0
- package/ui/hooks/useIsClient.js +12 -0
- package/ui/hooks/useIsClient.js.map +1 -0
- package/ui/hooks/useValue.d.ts +3 -4
- package/ui/hooks/useValue.js +11 -11
- package/ui/hooks/useValue.js.map +1 -1
- package/ui/journey-card/FlightSegmentCard.d.ts +15 -0
- package/ui/journey-card/FlightSegmentCard.js +73 -0
- package/ui/journey-card/FlightSegmentCard.js.map +1 -0
- package/ui/journey-card/FlightTimeline.d.ts +5 -0
- package/ui/journey-card/FlightTimeline.js +27 -0
- package/ui/journey-card/FlightTimeline.js.map +1 -0
- package/ui/journey-card/ItineraryDetails.d.ts +9 -0
- package/ui/journey-card/ItineraryDetails.js +40 -0
- package/ui/journey-card/ItineraryDetails.js.map +1 -0
- package/ui/journey-card/JourneyCard.d.ts +17 -0
- package/ui/journey-card/JourneyCard.js +34 -0
- package/ui/journey-card/JourneyCard.js.map +1 -0
- package/ui/journey-card/JourneyDetails.d.ts +47 -0
- package/ui/journey-card/JourneyDetails.js +183 -0
- package/ui/journey-card/JourneyDetails.js.map +1 -0
- package/ui/tabs/Tabs.d.ts +5 -1
- package/ui/tabs/Tabs.js +208 -124
- package/ui/tabs/Tabs.js.map +1 -1
- package/examples/form-checkbox-demo.d.ts +0 -1
- package/examples/form-checkbox-demo.js +0 -30
- package/examples/form-checkbox-demo.js.map +0 -1
- package/examples/form-checkbox-disabled-demo.d.ts +0 -1
- package/examples/form-checkbox-disabled-demo.js +0 -25
- package/examples/form-checkbox-disabled-demo.js.map +0 -1
- package/ui/forms/checkboxes/FormCheckbox.d.ts +0 -12
- package/ui/forms/checkboxes/FormCheckbox.js +0 -38
- package/ui/forms/checkboxes/FormCheckbox.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","names":[],"sources":["../../../lib/ui/forms/TextField.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { useValue, type UseValueProps } from '../hooks/useValue';\nimport { useInternalStatus } from '../hooks/useInternalStatus';\nimport { FormControl, type FormControlProps } from './FormControl';\nimport { Icon, type IconicNames, type IconicTypes } from '@clubmed/trident-icons';\nimport { useId } from 'react';\n\nexport interface TextFieldProps<Value> extends FormControlProps<Value> {\n description?: string;\n icon?: IconicNames;\n iconType?: IconicTypes;\n errorMessage?: string;\n dataTestId?: string;\n formatter?: UseValueProps<Value>['formatter'];\n hasDropdown?: boolean;\n clear?: string;\n iconFirst?: boolean;\n}\n\nexport const TextField = <Value = string,>(props: TextFieldProps<Value>) => {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n label,\n value: initialValue,\n description,\n validationStatus = 'default',\n icon,\n iconType,\n errorMessage,\n disabled = false,\n required = false,\n hideRequiredStar,\n className,\n dataTestId = 'TextField',\n hasDropdown =
|
|
1
|
+
{"version":3,"file":"TextField.js","names":[],"sources":["../../../lib/ui/forms/TextField.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { useValue, type UseValueProps } from '../hooks/useValue';\nimport { useInternalStatus } from '../hooks/useInternalStatus';\nimport { FormControl, type FormControlProps } from './FormControl';\nimport { Icon, type IconicNames, type IconicTypes } from '@clubmed/trident-icons';\nimport { useId } from 'react';\n\nexport interface TextFieldProps<Value> extends FormControlProps<Value> {\n description?: string;\n icon?: IconicNames;\n iconType?: IconicTypes;\n errorMessage?: string;\n dataTestId?: string;\n formatter?: UseValueProps<Value>['formatter'];\n hasDropdown?: boolean;\n clear?: string;\n iconFirst?: boolean;\n}\n\nexport const TextField = <Value = string,>(props: TextFieldProps<Value>) => {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n label,\n value: initialValue,\n description,\n validationStatus = 'default',\n icon,\n iconType,\n errorMessage,\n disabled = false,\n required = false,\n hideRequiredStar,\n className,\n dataTestId = 'TextField',\n hasDropdown = false,\n clear = '',\n iconFirst = true,\n onChange,\n formatter,\n ...rest\n } = props;\n\n const { value, setValue } = useValue<Value>({ initialValue, onChange, formatter });\n const internalStatus = useInternalStatus({\n isDisabled: disabled,\n validationStatus,\n });\n\n const shouldDisplayClearButton =\n !disabled && value !== '' && value !== null && value !== undefined && !!clear;\n\n return (\n <FormControl\n id={id}\n label={label}\n className={className}\n description={description}\n dataName=\"TextField\"\n dataTestId={dataTestId}\n disabled={disabled}\n required={required}\n hideRequiredStar={hideRequiredStar}\n validationStatus={validationStatus}\n errorMessage={errorMessage}\n >\n <div className=\"relative\">\n <input\n {...rest}\n id={id}\n name={name}\n disabled={disabled}\n required={required}\n value={value as any}\n onChange={(e) => setValue(e.target.value as Value, e.nativeEvent)}\n style={\n {\n '--nbIconsStart': Number(!!icon && iconFirst),\n '--nbIconsEnd':\n Number(!!icon && !iconFirst) +\n Number(\n (hasDropdown && !shouldDisplayClearButton) ||\n (shouldDisplayClearButton && internalStatus !== 'error'),\n ) +\n Number(internalStatus === 'error' || internalStatus === 'success'),\n } as React.CSSProperties\n }\n className={clsx(\n 'text-b3 rounded-pill w-full border overflow-hidden px-20 py-12 font-normal outline-none focus-visible:ring-4 focus-visible:ring-black focus-visible:ring-offset-2 ps-[calc(20px+var(--nbIconsStart)*32px)] pe-[calc(20px+var(--nbIconsEnd)*32px)]',\n {\n 'border-middleGrey focus:border-black active:border-black':\n internalStatus === 'default',\n 'bg-white text-black': internalStatus !== 'disabled',\n 'bg-pearl border-middleGrey': internalStatus === 'disabled',\n 'border-red': internalStatus === 'error',\n 'border-green': internalStatus === 'success',\n },\n )}\n aria-label={name}\n />\n\n <div\n className={clsx(\n 'pointer-events-none absolute inset-0 flex items-center justify-between px-20 py-12',\n {\n 'text-grey': internalStatus === 'disabled',\n 'text-red': internalStatus === 'error',\n 'text-green': internalStatus === 'success',\n },\n )}\n >\n {icon && iconFirst && <Icon name={icon} width=\"24px\" />}\n\n <span className=\"ms-auto flex gap-x-8\">\n {internalStatus === 'error' &&\n (shouldDisplayClearButton ? (\n <button\n className=\"pointer-events-auto cursor-pointer flex outline-none focus-visible:ring-4 focus-visible:ring-black focus-visible:ring-offset-2\"\n onClick={(e) => setValue('' as Value, e.nativeEvent)}\n aria-label={clear}\n type=\"reset\"\n >\n <Icon name=\"CrossDefault\" width=\"24px\" type={iconType} />\n </button>\n ) : (\n <Icon name=\"CrossDefault\" width=\"24px\" type={iconType} />\n ))}\n\n {internalStatus === 'success' && (\n <Icon name=\"CheckDefault\" width=\"24px\" type={iconType} />\n )}\n {(hasDropdown || (shouldDisplayClearButton && internalStatus !== 'error')) &&\n (shouldDisplayClearButton ? (\n <button\n className=\"pointer-events-auto cursor-pointer flex outline-none focus-visible:ring-4 focus-visible:ring-black focus-visible:ring-offset-2\"\n onClick={(e) => setValue('' as Value, e.nativeEvent)}\n aria-label={clear}\n type=\"reset\"\n >\n <Icon name=\"CrossDefault\" className=\"text-black\" width=\"24px\" />\n </button>\n ) : (\n <Icon name=\"ArrowDefaultDown\" className=\"text-black\" width=\"24px\" />\n ))}\n {!iconFirst && icon && <Icon name={icon} width=\"24px\" />}\n </span>\n </div>\n </div>\n </FormControl>\n );\n};\n"],"mappings":";;;;;;;;AAmBA,IAAa,KAA8B,MAAiC;CAC1E,IAAM,IAAa,GAAO,EAEpB,EACJ,QAAK,GACL,UAAO,GACP,UACA,OAAO,GACP,gBACA,sBAAmB,WACnB,SACA,aACA,iBACA,cAAW,IACX,cAAW,IACX,qBACA,cACA,gBAAa,aACb,iBAAc,IACd,WAAQ,IACR,eAAY,IACZ,aACA,cACA,GAAG,MACD,GAEE,EAAE,UAAO,gBAAa,EAAgB;EAAE;EAAc;EAAU;EAAW,CAAC,EAC5E,IAAiB,EAAkB;EACvC,YAAY;EACZ;EACD,CAAC,EAEI,IACJ,CAAC,KAAY,MAAU,MAAM,KAAU,QAA+B,CAAC,CAAC;AAE1E,QACE,kBAAC,GAAD;EACM;EACG;EACI;EACE;EACb,UAAS;EACG;EACF;EACA;EACQ;EACA;EACJ;YAEd,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,SAAD;IACE,GAAI;IACA;IACE;IACI;IACA;IACH;IACP,WAAW,MAAM,EAAS,EAAE,OAAO,OAAgB,EAAE,YAAY;IACjE,OACE;KACE,kBAAkB,OAAO,CAAC,CAAC,KAAQ,EAAU;KAC7C,gBACE,OAAO,CAAC,CAAC,KAAQ,CAAC,EAAU,GAC5B,OACG,KAAe,CAAC,KACd,KAA4B,MAAmB,QACnD,GACD,OAAO,MAAmB,WAAW,MAAmB,UAAU;KACrE;IAEH,WAAW,EACT,qPACA;KACE,4DACE,MAAmB;KACrB,uBAAuB,MAAmB;KAC1C,8BAA8B,MAAmB;KACjD,cAAc,MAAmB;KACjC,gBAAgB,MAAmB;KACpC,CACF;IACD,cAAY;IACZ,CAAA,EAEF,kBAAC,OAAD;IACE,WAAW,EACT,sFACA;KACE,aAAa,MAAmB;KAChC,YAAY,MAAmB;KAC/B,cAAc,MAAmB;KAClC,CACF;cARH,CAUG,KAAQ,KAAa,kBAAC,GAAD;KAAM,MAAM;KAAM,OAAM;KAAS,CAAA,EAEvD,kBAAC,QAAD;KAAM,WAAU;eAAhB;MACG,MAAmB,YACjB,IACC,kBAAC,UAAD;OACE,WAAU;OACV,UAAU,MAAM,EAAS,IAAa,EAAE,YAAY;OACpD,cAAY;OACZ,MAAK;iBAEL,kBAAC,GAAD;QAAM,MAAK;QAAe,OAAM;QAAO,MAAM;QAAY,CAAA;OAClD,CAAA,GAET,kBAAC,GAAD;OAAM,MAAK;OAAe,OAAM;OAAO,MAAM;OAAY,CAAA;MAG5D,MAAmB,aAClB,kBAAC,GAAD;OAAM,MAAK;OAAe,OAAM;OAAO,MAAM;OAAY,CAAA;OAEzD,KAAgB,KAA4B,MAAmB,aAC9D,IACC,kBAAC,UAAD;OACE,WAAU;OACV,UAAU,MAAM,EAAS,IAAa,EAAE,YAAY;OACpD,cAAY;OACZ,MAAK;iBAEL,kBAAC,GAAD;QAAM,MAAK;QAAe,WAAU;QAAa,OAAM;QAAS,CAAA;OACzD,CAAA,GAET,kBAAC,GAAD;OAAM,MAAK;OAAmB,WAAU;OAAa,OAAM;OAAS,CAAA;MAEvE,CAAC,KAAa,KAAQ,kBAAC,GAAD;OAAM,MAAM;OAAM,OAAM;OAAS,CAAA;MACnD;OACH;MACF;;EACM,CAAA"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { ComponentPropsWithoutRef, Ref } from 'react';
|
|
2
2
|
import { Colors } from '../../types/Colors';
|
|
3
|
-
|
|
3
|
+
import { ValidationStatus } from '../../hooks/useInternalStatus';
|
|
4
|
+
export interface CheckboxProps extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'value'> {
|
|
4
5
|
color?: Colors;
|
|
5
6
|
size?: string;
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
value?: string | number | boolean;
|
|
8
|
+
validationStatus?: ValidationStatus;
|
|
9
|
+
errorMessage?: string;
|
|
10
|
+
['data-testid']?: string;
|
|
8
11
|
ref?: Ref<HTMLInputElement>;
|
|
9
|
-
|
|
12
|
+
onChange?: (event: Event, value: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function Checkbox(props: CheckboxProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,30 +1,50 @@
|
|
|
1
1
|
import { t as e } from "../../../chunks/clsx.js";
|
|
2
2
|
import { getBorderColor as t, getTextColor as n } from "../../helpers/colors/colors.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { FormControlError as r } from "../FormControlError.js";
|
|
4
|
+
import { useInternalStatus as i } from "../../hooks/useInternalStatus.js";
|
|
5
|
+
import { useId as a } from "react";
|
|
6
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
7
|
+
import { Icon as c } from "@clubmed/trident-icons";
|
|
6
8
|
//#region lib/ui/forms/checkboxes/Checkbox.tsx
|
|
7
|
-
function
|
|
8
|
-
let
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
function l(l) {
|
|
10
|
+
let u = a(), { id: d = u, name: f = d, className: p, color: m = "black", size: h = "size-24", disabled: g = !1, tabIndex: _ = 0, validationStatus: v = "default", errorMessage: y, children: b, ref: x, onChange: S, value: C, "data-testid": w, ...T } = l, E = i({
|
|
11
|
+
isDisabled: g,
|
|
12
|
+
validationStatus: v
|
|
13
|
+
}), D = E === "disabled", O = E === "error" && y, k = e({
|
|
14
|
+
"!border-red !text-red": E === "error",
|
|
15
|
+
"bg-pearl": D
|
|
16
|
+
}), A = /* @__PURE__ */ s("span", {
|
|
17
|
+
className: e("rounded-8 inline-flex shrink-0 items-center justify-center self-start border transition-colors hover:!border-current/60 has-[:focus-visible]:ring-4 has-[:focus-visible]:ring-black has-[:focus-visible]:ring-offset-2", t(m), n(m), h, k, p),
|
|
11
18
|
"data-name": "Checkbox",
|
|
12
|
-
children: [/* @__PURE__ */
|
|
13
|
-
...
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
children: [/* @__PURE__ */ o("input", {
|
|
20
|
+
...T,
|
|
21
|
+
disabled: g,
|
|
22
|
+
id: d,
|
|
23
|
+
name: f,
|
|
16
24
|
className: "peer sr-only",
|
|
17
|
-
ref:
|
|
18
|
-
tabIndex:
|
|
19
|
-
type: "checkbox"
|
|
20
|
-
|
|
25
|
+
ref: x,
|
|
26
|
+
tabIndex: _,
|
|
27
|
+
type: "checkbox",
|
|
28
|
+
value: typeof C == "boolean" ? String(C) : C,
|
|
29
|
+
onChange: (e) => {
|
|
30
|
+
S?.(e.nativeEvent, e.target.checked);
|
|
31
|
+
}
|
|
32
|
+
}), /* @__PURE__ */ o(c, {
|
|
21
33
|
className: "scale-1/2 transition-[transform,opacity] peer-checked:scale-auto opacity-0 peer-checked:opacity-100",
|
|
22
34
|
name: "CheckDefault",
|
|
23
35
|
width: "100%"
|
|
24
36
|
})]
|
|
25
37
|
});
|
|
38
|
+
return !b && !y ? A : /* @__PURE__ */ s("div", {
|
|
39
|
+
className: e("flex flex-col space-y-2", p),
|
|
40
|
+
"data-testid": w || `checkbox-container-${d}`,
|
|
41
|
+
children: [/* @__PURE__ */ s("label", {
|
|
42
|
+
className: e("relative flex items-center gap-8", { "text-grey": g }),
|
|
43
|
+
children: [A, b]
|
|
44
|
+
}), O && /* @__PURE__ */ o(r, { children: y })]
|
|
45
|
+
});
|
|
26
46
|
}
|
|
27
47
|
//#endregion
|
|
28
|
-
export {
|
|
48
|
+
export { l as Checkbox };
|
|
29
49
|
|
|
30
50
|
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","names":[],"sources":["../../../../lib/ui/forms/checkboxes/Checkbox.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { useId, type ComponentPropsWithoutRef, type Ref } from 'react';\nimport { Icon } from '@clubmed/trident-icons';\nimport type { Colors } from '../../types/Colors';\nimport { getBorderColor, getTextColor } from '../../helpers/colors/colors';\n\nexport interface CheckboxProps
|
|
1
|
+
{"version":3,"file":"Checkbox.js","names":[],"sources":["../../../../lib/ui/forms/checkboxes/Checkbox.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { useId, type ComponentPropsWithoutRef, type Ref } from 'react';\nimport { Icon } from '@clubmed/trident-icons';\nimport type { Colors } from '../../types/Colors';\nimport { getBorderColor, getTextColor } from '../../helpers/colors/colors';\nimport { FormControlError } from '@/ui/forms/FormControlError';\nimport { useInternalStatus, type ValidationStatus } from '@/ui/hooks/useInternalStatus';\n\nexport interface CheckboxProps\n extends Omit<ComponentPropsWithoutRef<'input'>, 'size' | 'onChange' | 'value'> {\n color?: Colors;\n size?: string;\n value?: string | number | boolean;\n validationStatus?: ValidationStatus;\n errorMessage?: string;\n ['data-testid']?: string;\n ref?: Ref<HTMLInputElement>;\n onChange?: (event: Event, value: boolean) => void;\n}\n\nexport function Checkbox(props: CheckboxProps) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n className,\n color = 'black',\n size = 'size-24',\n disabled = false,\n tabIndex = 0,\n validationStatus = 'default',\n errorMessage,\n children,\n ref,\n onChange,\n value,\n 'data-testid': dataTestId,\n ...rest\n } = props;\n\n const internalStatus = useInternalStatus({\n isDisabled: disabled,\n validationStatus,\n });\n const isDisabled = internalStatus === 'disabled';\n\n const shouldDisplayErrorMessage = internalStatus === 'error' && errorMessage;\n\n // Apply validation styling to checkbox via className\n const checkboxClassName = clsx({\n '!border-red !text-red': internalStatus === 'error',\n 'bg-pearl': isDisabled,\n });\n\n const checkbox = (\n <span\n className={clsx(\n 'rounded-8 inline-flex shrink-0 items-center justify-center self-start border transition-colors hover:!border-current/60 has-[:focus-visible]:ring-4 has-[:focus-visible]:ring-black has-[:focus-visible]:ring-offset-2',\n getBorderColor(color),\n getTextColor(color),\n size,\n checkboxClassName,\n className,\n )}\n data-name=\"Checkbox\"\n >\n <input\n {...rest}\n disabled={disabled}\n id={id}\n name={name}\n className=\"peer sr-only\"\n ref={ref}\n tabIndex={tabIndex}\n type=\"checkbox\"\n value={typeof value === 'boolean' ? String(value) : value}\n onChange={(e) => {\n onChange?.(e.nativeEvent, e.target.checked);\n }}\n />\n <Icon\n className=\"scale-1/2 transition-[transform,opacity] peer-checked:scale-auto opacity-0 peer-checked:opacity-100\"\n name=\"CheckDefault\"\n width=\"100%\"\n />\n </span>\n );\n\n if (!children && !errorMessage) {\n return checkbox;\n }\n\n return (\n <div\n className={clsx('flex flex-col space-y-2', className)}\n data-testid={dataTestId || `checkbox-container-${id}`}\n >\n <label\n className={clsx('relative flex items-center gap-8', {\n 'text-grey': disabled,\n })}\n >\n {checkbox}\n {children}\n </label>\n {shouldDisplayErrorMessage && <FormControlError>{errorMessage}</FormControlError>}\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAoBA,SAAgB,EAAS,GAAsB;CAC7C,IAAM,IAAa,GAAO,EAEpB,EACJ,QAAK,GACL,UAAO,GACP,cACA,WAAQ,SACR,UAAO,WACP,cAAW,IACX,cAAW,GACX,sBAAmB,WACnB,iBACA,aACA,QACA,aACA,UACA,eAAe,GACf,GAAG,MACD,GAEE,IAAiB,EAAkB;EACvC,YAAY;EACZ;EACD,CAAC,EACI,IAAa,MAAmB,YAEhC,IAA4B,MAAmB,WAAW,GAG1D,IAAoB,EAAK;EAC7B,yBAAyB,MAAmB;EAC5C,YAAY;EACb,CAAC,EAEI,IACJ,kBAAC,QAAD;EACE,WAAW,EACT,0NACA,EAAe,EAAM,EACrB,EAAa,EAAM,EACnB,GACA,GACA,EACD;EACD,aAAU;YATZ,CAWE,kBAAC,SAAD;GACE,GAAI;GACM;GACN;GACE;GACN,WAAU;GACL;GACK;GACV,MAAK;GACL,OAAO,OAAO,KAAU,YAAY,OAAO,EAAM,GAAG;GACpD,WAAW,MAAM;AACf,QAAW,EAAE,aAAa,EAAE,OAAO,QAAQ;;GAE7C,CAAA,EACF,kBAAC,GAAD;GACE,WAAU;GACV,MAAK;GACL,OAAM;GACN,CAAA,CACG;;AAOT,QAJI,CAAC,KAAY,CAAC,IACT,IAIP,kBAAC,OAAD;EACE,WAAW,EAAK,2BAA2B,EAAU;EACrD,eAAa,KAAc,sBAAsB;YAFnD,CAIE,kBAAC,SAAD;GACE,WAAW,EAAK,oCAAoC,EAClD,aAAa,GACd,CAAC;aAHJ,CAKG,GACA,EACK;MACP,KAA6B,kBAAC,GAAD,EAAA,UAAmB,GAAgC,CAAA,CAC7E"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { HTMLAttributes } from 'react';
|
|
2
2
|
import { FormControlProps } from '../FormControl';
|
|
3
3
|
export interface CheckboxesProps<Value = string> extends Pick<FormControlProps<Value[]>, 'id' | 'name' | 'value' | 'onChange' | 'disabled' | 'readOnly' | 'tabIndex' | 'description' | 'validationStatus' | 'errorMessage'>, Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
4
|
+
/**
|
|
5
|
+
* Should the tabIndex be overridden for each checkbox?
|
|
6
|
+
* @default true
|
|
7
|
+
*/
|
|
8
|
+
overrideTabIndex?: boolean;
|
|
4
9
|
}
|
|
5
10
|
export declare function Checkboxes<Value = string>(props: CheckboxesProps<Value>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -4,8 +4,7 @@ import { Children as n, cloneElement as r, isValidElement as i, useId as a } fro
|
|
|
4
4
|
import { jsx as o } from "react/jsx-runtime";
|
|
5
5
|
//#region lib/ui/forms/checkboxes/Checkboxes.tsx
|
|
6
6
|
function s(s) {
|
|
7
|
-
let c = a(), { id: l = c, name: u = l, children: d, value: f, defaultValue: p, onChange: m, disabled: h, readOnly: g, tabIndex: _ = 0,
|
|
8
|
-
name: u,
|
|
7
|
+
let c = a(), { id: l = c, name: u = l, children: d, value: f, defaultValue: p, onChange: m, disabled: h, readOnly: g, tabIndex: _ = 0, overrideTabIndex: v = !0, ...y } = s, { value: b, setValue: x } = t({
|
|
9
8
|
initialValue: f,
|
|
10
9
|
formatter(e) {
|
|
11
10
|
return e === void 0 ? e : [].concat(e);
|
|
@@ -14,8 +13,8 @@ function s(s) {
|
|
|
14
13
|
onChange: m
|
|
15
14
|
});
|
|
16
15
|
return /* @__PURE__ */ o("div", {
|
|
17
|
-
...
|
|
18
|
-
className:
|
|
16
|
+
...y,
|
|
17
|
+
className: y.className,
|
|
19
18
|
role: "listbox",
|
|
20
19
|
children: n.map(d, (t, n) => {
|
|
21
20
|
if (i(t)) {
|
|
@@ -26,11 +25,12 @@ function s(s) {
|
|
|
26
25
|
id: `${l}-${n}`,
|
|
27
26
|
disabled: h,
|
|
28
27
|
readOnly: g,
|
|
29
|
-
tabIndex: _ + n + 1,
|
|
28
|
+
tabIndex: v ? _ + n + 1 : _,
|
|
30
29
|
className: e(t.props.className || "mt-8 first:mt-0"),
|
|
31
|
-
checked:
|
|
32
|
-
onChange(e) {
|
|
33
|
-
e
|
|
30
|
+
checked: b.includes(i),
|
|
31
|
+
onChange(...e) {
|
|
32
|
+
let t = e[0] instanceof Event ? e[0] : e[0]?.nativeEvent ?? new Event("change");
|
|
33
|
+
(typeof e[2] == "boolean" ? e[2] : typeof e[1] == "boolean" ? e[1] : e[0]?.target?.checked) ? x(b.concat(i), t) : x(b.filter((e) => e !== i), t);
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkboxes.js","names":[],"sources":["../../../../lib/ui/forms/checkboxes/Checkboxes.tsx"],"sourcesContent":["import { Children, cloneElement, type HTMLAttributes, isValidElement, useId } from 'react';\nimport type { FormControlProps } from '../FormControl';\nimport { useValue } from '../../hooks/useValue';\nimport type { CheckboxProps } from './Checkbox';\nimport clsx from 'clsx';\n\nexport interface CheckboxesProps<Value = string>\n extends Pick<\n FormControlProps<Value[]>,\n | 'id'\n | 'name'\n | 'value'\n | 'onChange'\n | 'disabled'\n | 'readOnly'\n | 'tabIndex'\n | 'description'\n | 'validationStatus'\n | 'errorMessage'\n >,\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {}\n\nexport function Checkboxes<Value = string>(props: CheckboxesProps<Value>) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n children,\n value: initialValue,\n defaultValue,\n onChange,\n disabled,\n readOnly,\n tabIndex = 0,\n ...rest\n } = props;\n\n const { value, setValue } = useValue<Value[]>({\n
|
|
1
|
+
{"version":3,"file":"Checkboxes.js","names":[],"sources":["../../../../lib/ui/forms/checkboxes/Checkboxes.tsx"],"sourcesContent":["import { Children, cloneElement, type HTMLAttributes, isValidElement, useId } from 'react';\nimport type { FormControlProps } from '../FormControl';\nimport { useValue } from '../../hooks/useValue';\nimport type { CheckboxProps } from './Checkbox';\nimport clsx from 'clsx';\n\nexport interface CheckboxesProps<Value = string>\n extends Pick<\n FormControlProps<Value[]>,\n | 'id'\n | 'name'\n | 'value'\n | 'onChange'\n | 'disabled'\n | 'readOnly'\n | 'tabIndex'\n | 'description'\n | 'validationStatus'\n | 'errorMessage'\n >,\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /**\n * Should the tabIndex be overridden for each checkbox?\n * @default true\n */\n overrideTabIndex?: boolean;\n}\n\nexport function Checkboxes<Value = string>(props: CheckboxesProps<Value>) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n children,\n value: initialValue,\n defaultValue,\n onChange,\n disabled,\n readOnly,\n tabIndex = 0,\n overrideTabIndex = true,\n ...rest\n } = props;\n\n const { value, setValue } = useValue<Value[]>({\n initialValue,\n formatter(value) {\n return value !== undefined ? ([].concat(value as never) as Value[]) : value;\n },\n defaultValue: (defaultValue as Value[]) || ([] as Value[]),\n onChange,\n });\n\n return (\n <div {...rest} className={rest.className} role=\"listbox\">\n {Children.map(children, (child, index) => {\n if (isValidElement(child)) {\n const propValue: Value = (child.props as CheckboxProps).value as Value;\n\n return cloneElement(child, {\n ...(child.props as any),\n name,\n id: `${id}-${index}`,\n disabled,\n readOnly,\n tabIndex: overrideTabIndex ? tabIndex + index + 1 : tabIndex,\n className: clsx((child.props as any).className || 'mt-8 first:mt-0'),\n checked: value.includes(propValue),\n onChange(...args: unknown[]) {\n const event =\n args[0] instanceof Event\n ? args[0]\n : (args[0] as React.ChangeEvent<HTMLInputElement>)?.nativeEvent ??\n new Event('change');\n const checked =\n typeof args[2] === 'boolean'\n ? args[2]\n : typeof args[1] === 'boolean'\n ? args[1]\n : (args[0] as React.ChangeEvent<HTMLInputElement>)?.target?.checked;\n\n if (checked) {\n setValue(value.concat(propValue), event);\n } else {\n setValue(\n value.filter((v) => v !== propValue),\n event,\n );\n }\n },\n } as CheckboxProps);\n }\n\n return child;\n })}\n </div>\n );\n}\n"],"mappings":";;;;;AA4BA,SAAgB,EAA2B,GAA+B;CACxE,IAAM,IAAa,GAAO,EAEpB,EACJ,QAAK,GACL,UAAO,GACP,aACA,OAAO,GACP,iBACA,aACA,aACA,aACA,cAAW,GACX,sBAAmB,IACnB,GAAG,MACD,GAEE,EAAE,UAAO,gBAAa,EAAkB;EAC5C;EACA,UAAU,GAAO;AACf,UAAO,MAAU,KAAA,IAAqD,IAAxC,EAAE,CAAC,OAAO,EAAe;;EAEzD,cAAe,KAA6B,EAAE;EAC9C;EACD,CAAC;AAEF,QACE,kBAAC,OAAD;EAAK,GAAI;EAAM,WAAW,EAAK;EAAW,MAAK;YAC5C,EAAS,IAAI,IAAW,GAAO,MAAU;AACxC,OAAI,EAAe,EAAM,EAAE;IACzB,IAAM,IAAoB,EAAM,MAAwB;AAExD,WAAO,EAAa,GAAO;KACzB,GAAI,EAAM;KACV;KACA,IAAI,GAAG,EAAG,GAAG;KACb;KACA;KACA,UAAU,IAAmB,IAAW,IAAQ,IAAI;KACpD,WAAW,EAAM,EAAM,MAAc,aAAa,kBAAkB;KACpE,SAAS,EAAM,SAAS,EAAU;KAClC,SAAS,GAAG,GAAiB;MAC3B,IAAM,IACJ,EAAK,cAAc,QACf,EAAK,KACJ,EAAK,IAA4C,eAClD,IAAI,MAAM,SAAS;AAQzB,OANE,OAAO,EAAK,MAAO,YACf,EAAK,KACL,OAAO,EAAK,MAAO,YACjB,EAAK,KACJ,EAAK,IAA4C,QAAQ,WAGhE,EAAS,EAAM,OAAO,EAAU,EAAE,EAAM,GAExC,EACE,EAAM,QAAQ,MAAM,MAAM,EAAU,EACpC,EACD;;KAGN,CAAkB;;AAGrB,UAAO;IACP;EACE,CAAA"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { t as e } from "../../../chunks/clsx.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { useInternalStatus as t } from "../../hooks/useInternalStatus.js";
|
|
3
|
+
import { FormControl as n } from "../FormControl.js";
|
|
4
|
+
import { useValue as r } from "../../hooks/useValue.js";
|
|
5
5
|
import { ValidationMessage as i } from "./ValidationMessage.js";
|
|
6
6
|
import { useEffect as a, useId as o, useState as s } from "react";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
8
|
+
import { Icon as u } from "@clubmed/trident-icons";
|
|
9
9
|
//#region lib/ui/forms/password/Password.tsx
|
|
10
10
|
function d(d) {
|
|
11
|
-
let f = o(), { id: p = f, name: m = p, label: h, value: g, disabled: _ = !1, required: v = !1, hideRequiredStar: y, validationStatus: b = "default", errorMessage: x, validationMessages: S = [], withoutFieldValidation: C = !1, className: w, onChange: T, dataTestId: E = "Password", ...D } = d, O =
|
|
11
|
+
let f = o(), { id: p = f, name: m = p, label: h, value: g, disabled: _ = !1, required: v = !1, hideRequiredStar: y, validationStatus: b = "default", errorMessage: x, validationMessages: S = [], withoutFieldValidation: C = !1, className: w, onChange: T, dataTestId: E = "Password", ...D } = d, O = t({
|
|
12
12
|
isDisabled: _,
|
|
13
13
|
validationStatus: b
|
|
14
|
-
}), { value: k, setValue: A } =
|
|
15
|
-
name: m,
|
|
14
|
+
}), { value: k, setValue: A } = r({
|
|
16
15
|
initialValue: g,
|
|
17
16
|
onChange: T
|
|
18
17
|
}), [j, M] = s("password");
|
|
@@ -20,7 +19,7 @@ function d(d) {
|
|
|
20
19
|
M(_ ? "password" : j);
|
|
21
20
|
}, [j, _]);
|
|
22
21
|
let N = () => M(j === "password" ? "text" : "password");
|
|
23
|
-
return /* @__PURE__ */
|
|
22
|
+
return /* @__PURE__ */ l(n, {
|
|
24
23
|
className: w,
|
|
25
24
|
id: p,
|
|
26
25
|
label: h,
|
|
@@ -31,9 +30,9 @@ function d(d) {
|
|
|
31
30
|
hideRequiredStar: y,
|
|
32
31
|
validationStatus: C ? "default" : b,
|
|
33
32
|
errorMessage: x,
|
|
34
|
-
children: [/* @__PURE__ */
|
|
33
|
+
children: [/* @__PURE__ */ l("div", {
|
|
35
34
|
className: "relative",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
35
|
+
children: [/* @__PURE__ */ c("input", {
|
|
37
36
|
...D,
|
|
38
37
|
id: p,
|
|
39
38
|
name: m,
|
|
@@ -41,8 +40,8 @@ function d(d) {
|
|
|
41
40
|
value: k,
|
|
42
41
|
disabled: _,
|
|
43
42
|
required: v,
|
|
44
|
-
onChange: (e) => A(e.target.value),
|
|
45
|
-
className: e("text-b3 rounded-pill w-full border overflow-hidden ps-20 py-[11px] font-normal outline-none", {
|
|
43
|
+
onChange: (e) => A(e.target.value, e.nativeEvent),
|
|
44
|
+
className: e("text-b3 rounded-pill w-full border overflow-hidden ps-20 py-[11px] font-normal outline-none focus-visible:ring-4 focus-visible:ring-black focus-visible:ring-offset-2", {
|
|
46
45
|
"border-middleGrey focus:border-black active:border-black pe-[52px]": (C || b === "default") && O !== "disabled",
|
|
47
46
|
"bg-white text-black": O !== "disabled",
|
|
48
47
|
"bg-pearl border-middleGrey": O === "disabled",
|
|
@@ -51,26 +50,26 @@ function d(d) {
|
|
|
51
50
|
"border-green": !C && b === "success"
|
|
52
51
|
}),
|
|
53
52
|
"aria-label": m
|
|
54
|
-
}), /* @__PURE__ */
|
|
53
|
+
}), /* @__PURE__ */ c("div", {
|
|
55
54
|
className: e("pointer-events-none absolute inset-0 flex items-center justify-between px-20 py-12"),
|
|
56
|
-
children: /* @__PURE__ */
|
|
55
|
+
children: /* @__PURE__ */ l("span", {
|
|
57
56
|
className: "ms-auto flex gap-x-8",
|
|
58
57
|
children: [
|
|
59
|
-
!C && b === "error" && /* @__PURE__ */
|
|
58
|
+
!C && b === "error" && /* @__PURE__ */ c(u, {
|
|
60
59
|
name: "CrossDefault",
|
|
61
60
|
color: "red",
|
|
62
61
|
width: "24px"
|
|
63
62
|
}),
|
|
64
|
-
!C && b === "success" && /* @__PURE__ */
|
|
63
|
+
!C && b === "success" && /* @__PURE__ */ c(u, {
|
|
65
64
|
name: "CheckDefault",
|
|
66
65
|
color: "green",
|
|
67
66
|
width: "24px"
|
|
68
67
|
}),
|
|
69
|
-
!_ && /* @__PURE__ */
|
|
68
|
+
!_ && /* @__PURE__ */ c("button", {
|
|
70
69
|
type: "button",
|
|
71
|
-
className: "pointer-events-auto size-24 inline-flex",
|
|
70
|
+
className: "pointer-events-auto size-24 inline-flex outline-none focus-visible:ring-4 focus-visible:ring-black focus-visible:ring-offset-2",
|
|
72
71
|
onClick: N,
|
|
73
|
-
children: /* @__PURE__ */
|
|
72
|
+
children: /* @__PURE__ */ c(u, {
|
|
74
73
|
name: j === "password" ? "Invisible" : "Visible",
|
|
75
74
|
width: "24px",
|
|
76
75
|
type: "svg"
|
|
@@ -79,9 +78,9 @@ function d(d) {
|
|
|
79
78
|
]
|
|
80
79
|
})
|
|
81
80
|
})]
|
|
82
|
-
}), S.length > 0 && /* @__PURE__ */
|
|
81
|
+
}), S.length > 0 && /* @__PURE__ */ c("div", {
|
|
83
82
|
className: "flex flex-col gap-[10px] mt-8",
|
|
84
|
-
children: S.map(({ label: e, status: t }, n) => /* @__PURE__ */
|
|
83
|
+
children: S.map(({ label: e, status: t }, n) => /* @__PURE__ */ c(i, {
|
|
85
84
|
label: e,
|
|
86
85
|
status: t
|
|
87
86
|
}, n))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Password.js","names":[],"sources":["../../../../lib/ui/forms/password/Password.tsx"],"sourcesContent":["import { useInternalStatus } from '../../hooks/useInternalStatus';\nimport clsx from 'clsx';\n\nimport { type HTMLInputTypeAttribute, useEffect, useId, useState } from 'react';\n\nimport { useValue } from '../../hooks/useValue';\nimport { FormControl, type FormControlProps } from '../FormControl';\nimport { Icon } from '@clubmed/trident-icons';\nimport { ValidationMessage } from './ValidationMessage';\n\nexport interface PasswordProps<Value> extends FormControlProps<Value> {\n validationMessages?: ValidationMessage[];\n withoutFieldValidation?: boolean;\n}\n\nexport function Password<Value = string>(props: PasswordProps<Value>) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n label,\n value: initialValue,\n disabled = false,\n required = false,\n hideRequiredStar,\n validationStatus = 'default',\n errorMessage,\n validationMessages = [],\n withoutFieldValidation = false,\n className,\n onChange,\n dataTestId = 'Password',\n ...rest\n } = props;\n\n const internalStatus = useInternalStatus({\n isDisabled: disabled,\n validationStatus,\n });\n\n const { value, setValue } = useValue<Value>({\n
|
|
1
|
+
{"version":3,"file":"Password.js","names":[],"sources":["../../../../lib/ui/forms/password/Password.tsx"],"sourcesContent":["import { useInternalStatus } from '../../hooks/useInternalStatus';\nimport clsx from 'clsx';\n\nimport { type HTMLInputTypeAttribute, useEffect, useId, useState } from 'react';\n\nimport { useValue } from '../../hooks/useValue';\nimport { FormControl, type FormControlProps } from '../FormControl';\nimport { Icon } from '@clubmed/trident-icons';\nimport { ValidationMessage } from './ValidationMessage';\n\nexport interface PasswordProps<Value> extends FormControlProps<Value> {\n validationMessages?: ValidationMessage[];\n withoutFieldValidation?: boolean;\n}\n\nexport function Password<Value = string>(props: PasswordProps<Value>) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n label,\n value: initialValue,\n disabled = false,\n required = false,\n hideRequiredStar,\n validationStatus = 'default',\n errorMessage,\n validationMessages = [],\n withoutFieldValidation = false,\n className,\n onChange,\n dataTestId = 'Password',\n ...rest\n } = props;\n\n const internalStatus = useInternalStatus({\n isDisabled: disabled,\n validationStatus,\n });\n\n const { value, setValue } = useValue<Value>({\n initialValue,\n onChange,\n });\n const [type, setType] = useState<HTMLInputTypeAttribute>('password');\n\n useEffect(() => {\n if (disabled) {\n setType('password');\n } else {\n setType(type);\n }\n }, [type, disabled]);\n\n const toggleType = () => setType(type === 'password' ? 'text' : 'password');\n\n return (\n <FormControl\n className={className}\n id={id}\n label={label}\n dataName=\"Password\"\n dataTestId={dataTestId}\n disabled={disabled}\n required={required}\n hideRequiredStar={hideRequiredStar}\n validationStatus={withoutFieldValidation ? 'default' : validationStatus}\n errorMessage={errorMessage}\n >\n <div className=\"relative\">\n <input\n {...rest}\n id={id}\n name={name}\n type={type}\n value={value as any}\n disabled={disabled}\n required={required}\n onChange={(e) => setValue(e.target.value as Value, e.nativeEvent)}\n className={clsx(\n 'text-b3 rounded-pill w-full border overflow-hidden ps-20 py-[11px] font-normal outline-none focus-visible:ring-4 focus-visible:ring-black focus-visible:ring-offset-2',\n {\n 'border-middleGrey focus:border-black active:border-black pe-[52px]':\n (withoutFieldValidation || validationStatus === 'default') &&\n internalStatus !== 'disabled',\n 'bg-white text-black': internalStatus !== 'disabled',\n 'bg-pearl border-middleGrey': internalStatus === 'disabled',\n 'pe-[84px]':\n !withoutFieldValidation &&\n (validationStatus === 'error' || validationStatus === 'success'),\n 'border-red': !withoutFieldValidation && validationStatus === 'error',\n 'border-green': !withoutFieldValidation && validationStatus === 'success',\n },\n )}\n aria-label={name}\n />\n\n <div\n className={clsx(\n 'pointer-events-none absolute inset-0 flex items-center justify-between px-20 py-12',\n )}\n >\n <span className=\"ms-auto flex gap-x-8\">\n {!withoutFieldValidation && validationStatus === 'error' && (\n <Icon name=\"CrossDefault\" color=\"red\" width=\"24px\" />\n )}\n\n {!withoutFieldValidation && validationStatus === 'success' && (\n <Icon name=\"CheckDefault\" color=\"green\" width=\"24px\" />\n )}\n\n {!disabled && (\n <button\n type=\"button\"\n className=\"pointer-events-auto size-24 inline-flex outline-none focus-visible:ring-4 focus-visible:ring-black focus-visible:ring-offset-2\"\n onClick={toggleType}\n >\n <Icon\n name={type === 'password' ? 'Invisible' : 'Visible'}\n width=\"24px\"\n type=\"svg\"\n />\n </button>\n )}\n </span>\n </div>\n </div>\n\n {validationMessages.length > 0 && (\n <div className=\"flex flex-col gap-[10px] mt-8\">\n {validationMessages.map(({ label, status }, index) => (\n <ValidationMessage label={label} status={status} key={index} />\n ))}\n </div>\n )}\n </FormControl>\n );\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgB,EAAyB,GAA6B;CACpE,IAAM,IAAa,GAAO,EAEpB,EACJ,QAAK,GACL,UAAO,GACP,UACA,OAAO,GACP,cAAW,IACX,cAAW,IACX,qBACA,sBAAmB,WACnB,iBACA,wBAAqB,EAAE,EACvB,4BAAyB,IACzB,cACA,aACA,gBAAa,YACb,GAAG,MACD,GAEE,IAAiB,EAAkB;EACvC,YAAY;EACZ;EACD,CAAC,EAEI,EAAE,UAAO,gBAAa,EAAgB;EAC1C;EACA;EACD,CAAC,EACI,CAAC,GAAM,KAAW,EAAiC,WAAW;AAEpE,SAAgB;AACd,EACE,EADE,IACM,aAEA,EAAK;IAEd,CAAC,GAAM,EAAS,CAAC;CAEpB,IAAM,UAAmB,EAAQ,MAAS,aAAa,SAAS,WAAW;AAE3E,QACE,kBAAC,GAAD;EACa;EACP;EACG;EACP,UAAS;EACG;EACF;EACA;EACQ;EAClB,kBAAkB,IAAyB,YAAY;EACzC;YAVhB,CAYE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,SAAD;IACE,GAAI;IACA;IACE;IACA;IACC;IACG;IACA;IACV,WAAW,MAAM,EAAS,EAAE,OAAO,OAAgB,EAAE,YAAY;IACjE,WAAW,EACT,yKACA;KACE,uEACG,KAA0B,MAAqB,cAChD,MAAmB;KACrB,uBAAuB,MAAmB;KAC1C,8BAA8B,MAAmB;KACjD,aACE,CAAC,MACA,MAAqB,WAAW,MAAqB;KACxD,cAAc,CAAC,KAA0B,MAAqB;KAC9D,gBAAgB,CAAC,KAA0B,MAAqB;KACjE,CACF;IACD,cAAY;IACZ,CAAA,EAEF,kBAAC,OAAD;IACE,WAAW,EACT,qFACD;cAED,kBAAC,QAAD;KAAM,WAAU;eAAhB;MACG,CAAC,KAA0B,MAAqB,WAC/C,kBAAC,GAAD;OAAM,MAAK;OAAe,OAAM;OAAM,OAAM;OAAS,CAAA;MAGtD,CAAC,KAA0B,MAAqB,aAC/C,kBAAC,GAAD;OAAM,MAAK;OAAe,OAAM;OAAQ,OAAM;OAAS,CAAA;MAGxD,CAAC,KACA,kBAAC,UAAD;OACE,MAAK;OACL,WAAU;OACV,SAAS;iBAET,kBAAC,GAAD;QACE,MAAM,MAAS,aAAa,cAAc;QAC1C,OAAM;QACN,MAAK;QACL,CAAA;OACK,CAAA;MAEN;;IACH,CAAA,CACF;MAEL,EAAmB,SAAS,KAC3B,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAmB,KAAK,EAAE,UAAO,aAAU,MAC1C,kBAAC,GAAD;IAA0B;IAAe;IAAsB,EAAT,EAAS,CAC/D;GACE,CAAA,CAEI"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "../../../chunks/clsx.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
3
|
+
import { Icon as r } from "@clubmed/trident-icons";
|
|
4
4
|
//#region lib/ui/forms/password/ValidationMessage.tsx
|
|
5
5
|
var i = {
|
|
6
6
|
default: {
|
|
@@ -18,13 +18,13 @@ var i = {
|
|
|
18
18
|
};
|
|
19
19
|
function a({ label: a, status: o }) {
|
|
20
20
|
let { iconName: s, iconColor: c } = i[o];
|
|
21
|
-
return /* @__PURE__ */
|
|
21
|
+
return /* @__PURE__ */ n("div", {
|
|
22
22
|
className: "flex gap-[6px] px-20 items-center",
|
|
23
|
-
children: [/* @__PURE__ */
|
|
23
|
+
children: [/* @__PURE__ */ t(r, {
|
|
24
24
|
name: s,
|
|
25
25
|
width: "30px",
|
|
26
26
|
color: c
|
|
27
|
-
}), /* @__PURE__ */
|
|
27
|
+
}), /* @__PURE__ */ t("span", {
|
|
28
28
|
className: e("text-b3", `text-${c}`),
|
|
29
29
|
children: a
|
|
30
30
|
})]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InputHTMLAttributes } from 'react';
|
|
2
|
-
export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {
|
|
2
|
+
export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'onChange'> {
|
|
3
3
|
/**
|
|
4
4
|
* The data-testid to apply to the button.
|
|
5
5
|
* This is used for testing purposes.
|
|
@@ -10,6 +10,7 @@ export interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
|
|
|
10
10
|
* The diameter of the radio button.
|
|
11
11
|
* */
|
|
12
12
|
size?: number;
|
|
13
|
+
onChange?: (event: Event, value: string) => void;
|
|
13
14
|
}
|
|
14
15
|
export declare function Radio(props: RadioProps): import("react/jsx-runtime").JSX.Element;
|
|
15
16
|
export declare namespace Radio {
|
package/ui/forms/radios/Radio.js
CHANGED
|
@@ -3,20 +3,23 @@ import { useId as t } from "react";
|
|
|
3
3
|
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
4
|
//#region lib/ui/forms/radios/Radio.tsx
|
|
5
5
|
function i(i) {
|
|
6
|
-
let a = t(), { id: o = a, name: s = o, className: c, dataTestId: l, disabled: u, size: d = 24, tabIndex: f = 0, children: p,
|
|
6
|
+
let a = t(), { id: o = a, name: s = o, className: c, dataTestId: l, disabled: u, size: d = 24, tabIndex: f = 0, children: p, onChange: m, ...h } = i;
|
|
7
7
|
return /* @__PURE__ */ r("label", {
|
|
8
8
|
className: e(c, "relative flex items-center gap-8", { "text-grey": u }),
|
|
9
9
|
children: [/* @__PURE__ */ r("span", {
|
|
10
10
|
className: "relative",
|
|
11
11
|
children: [/* @__PURE__ */ n("input", {
|
|
12
12
|
"data-testid": l,
|
|
13
|
-
...
|
|
13
|
+
...h,
|
|
14
14
|
id: o,
|
|
15
15
|
name: s,
|
|
16
16
|
type: "radio",
|
|
17
17
|
tabIndex: f,
|
|
18
18
|
"data-name": "Radio",
|
|
19
|
-
disabled: u
|
|
19
|
+
disabled: u,
|
|
20
|
+
onChange: (e) => {
|
|
21
|
+
m?.(e.nativeEvent, e.target.value);
|
|
22
|
+
}
|
|
20
23
|
}), /* @__PURE__ */ n("span", {
|
|
21
24
|
style: {
|
|
22
25
|
height: d,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.js","names":[],"sources":["../../../../lib/ui/forms/radios/Radio.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { type InputHTMLAttributes, useId } from 'react';\n\nexport interface RadioProps
|
|
1
|
+
{"version":3,"file":"Radio.js","names":[],"sources":["../../../../lib/ui/forms/radios/Radio.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport { type InputHTMLAttributes, useId } from 'react';\n\nexport interface RadioProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'onChange'> {\n /**\n * The data-testid to apply to the button.\n * This is used for testing purposes.\n * @deprecated use [\"data-testid\"] instead.\n */\n dataTestId?: string;\n /**\n * The diameter of the radio button.\n * */\n size?: number;\n onChange?: (event: Event, value: string) => void;\n}\n\nexport function Radio(props: RadioProps) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n className,\n dataTestId,\n disabled,\n size = 24,\n tabIndex = 0,\n children,\n onChange,\n ...rest\n } = props;\n\n return (\n <label\n className={clsx(className, 'relative flex items-center gap-8', {\n 'text-grey': disabled,\n })}\n >\n <span className=\"relative\">\n <input\n data-testid={dataTestId}\n {...rest}\n id={id}\n name={name}\n type=\"radio\"\n tabIndex={tabIndex}\n data-name=\"Radio\"\n disabled={disabled}\n onChange={(e) => {\n onChange?.(e.nativeEvent, e.target.value);\n }}\n />\n\n <span style={{ height: size, width: size }} className={clsx({ 'bg-pearl': disabled })}>\n <svg viewBox=\"0 0 16 16\" width={(size * 2) / 3} className=\"overflow-visible\">\n <circle cx=\"8\" cy=\"8\" r=\"8px\" style={{ fill: 'var(--color-saffron)' }} />\n <circle cx=\"8\" cy=\"8\" r=\"4px\" style={{ fill: 'var(--color-black)' }} />\n </svg>\n </span>\n </span>\n\n {children}\n </label>\n );\n}\n\nRadio.displayName = 'Radio';\n"],"mappings":";;;;AAkBA,SAAgB,EAAM,GAAmB;CACvC,IAAM,IAAa,GAAO,EAEpB,EACJ,QAAK,GACL,UAAO,GACP,cACA,eACA,aACA,UAAO,IACP,cAAW,GACX,aACA,aACA,GAAG,MACD;AAEJ,QACE,kBAAC,SAAD;EACE,WAAW,EAAK,GAAW,oCAAoC,EAC7D,aAAa,GACd,CAAC;YAHJ,CAKE,kBAAC,QAAD;GAAM,WAAU;aAAhB,CACE,kBAAC,SAAD;IACE,eAAa;IACb,GAAI;IACA;IACE;IACN,MAAK;IACK;IACV,aAAU;IACA;IACV,WAAW,MAAM;AACf,SAAW,EAAE,aAAa,EAAE,OAAO,MAAM;;IAE3C,CAAA,EAEF,kBAAC,QAAD;IAAM,OAAO;KAAE,QAAQ;KAAM,OAAO;KAAM;IAAE,WAAW,EAAK,EAAE,YAAY,GAAU,CAAC;cACnF,kBAAC,OAAD;KAAK,SAAQ;KAAY,OAAQ,IAAO,IAAK;KAAG,WAAU;eAA1D,CACE,kBAAC,UAAD;MAAQ,IAAG;MAAI,IAAG;MAAI,GAAE;MAAM,OAAO,EAAE,MAAM,wBAAwB;MAAI,CAAA,EACzE,kBAAC,UAAD;MAAQ,IAAG;MAAI,IAAG;MAAI,GAAE;MAAM,OAAO,EAAE,MAAM,sBAAsB;MAAI,CAAA,CACnE;;IACD,CAAA,CACF;MAEN,EACK;;;AAIZ,EAAM,cAAc"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import { t as e } from "../../../chunks/clsx.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useValue as t } from "../../hooks/useValue.js";
|
|
3
|
+
import { KEY as n } from "../../hooks/keyboard.constants.js";
|
|
4
4
|
import { Children as r, cloneElement as i, isValidElement as a, useId as o } from "react";
|
|
5
5
|
import { jsx as s } from "react/jsx-runtime";
|
|
6
6
|
//#region lib/ui/forms/radios/RadioGroup.tsx
|
|
7
7
|
function c(c) {
|
|
8
|
-
let l = o(), { id: u = l, name: d = u, children: f, value: p, defaultValue: m, onChange: h, disabled: g, readOnly: _, tabIndex: v = 0, ...y } = c, { value: b, setValue: x } =
|
|
9
|
-
name: d,
|
|
8
|
+
let l = o(), { id: u = l, name: d = u, children: f, value: p, defaultValue: m, onChange: h, disabled: g, readOnly: _, tabIndex: v = 0, ...y } = c, { value: b, setValue: x } = t({
|
|
10
9
|
initialValue: p,
|
|
11
10
|
defaultValue: m,
|
|
12
11
|
onChange: h
|
|
13
|
-
}), S = (e,
|
|
14
|
-
let r =
|
|
15
|
-
if (e.key ===
|
|
16
|
-
else if (e.key ===
|
|
17
|
-
else if (e.key ===
|
|
18
|
-
x(i[
|
|
12
|
+
}), S = (e, t) => {
|
|
13
|
+
let r = t, i = e.target.parentNode.querySelectorAll("[role=\"radio\"]");
|
|
14
|
+
if (e.key === n.ARROW_RIGHT || e.key === n.ARROW_DOWN) r = (t + 1) % i.length, i[r]?.focus();
|
|
15
|
+
else if (e.key === n.ARROW_LEFT || e.key === n.ARROW_UP) r = (t - 1 + i.length) % i.length, i[r]?.focus();
|
|
16
|
+
else if (e.key === n.SPACE || e.key === n.ENTER) {
|
|
17
|
+
x(i[t].dataset.value, e.nativeEvent);
|
|
19
18
|
return;
|
|
20
19
|
}
|
|
21
20
|
};
|
|
@@ -43,8 +42,8 @@ function c(c) {
|
|
|
43
42
|
"data-value": r,
|
|
44
43
|
"aria-checked": b === r,
|
|
45
44
|
onKeyDown: (e) => S(e, t),
|
|
46
|
-
onClick() {
|
|
47
|
-
!g && !_ && (x(r), e.props?.onClick?.(r));
|
|
45
|
+
onClick(t) {
|
|
46
|
+
!g && !_ && (x(r, t.nativeEvent), e.props?.onClick?.(r));
|
|
48
47
|
}
|
|
49
48
|
}) : i(e, {
|
|
50
49
|
...e.props,
|
|
@@ -55,8 +54,8 @@ function c(c) {
|
|
|
55
54
|
tabIndex: C(o, t),
|
|
56
55
|
checked: o,
|
|
57
56
|
value: r,
|
|
58
|
-
onChange() {
|
|
59
|
-
!g && !_ && x(r);
|
|
57
|
+
onChange(e) {
|
|
58
|
+
!g && !_ && x(r, e);
|
|
60
59
|
}
|
|
61
60
|
});
|
|
62
61
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","names":[],"sources":["../../../../lib/ui/forms/radios/RadioGroup.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n useId,\n type ReactElement,\n} from 'react';\nimport type { FormControlProps } from '../FormControl';\nimport type { RadioProps } from './Radio';\nimport { useValue } from '../../hooks/useValue';\nimport clsx from 'clsx';\nimport type { ButtonProps } from '../../buttons/Button';\nimport { KEY } from '../../hooks/keyboard.constants';\n\nexport interface RadioGroupProps<Value = string>\n extends Pick<\n FormControlProps<Value>,\n 'id' | 'name' | 'value' | 'onChange' | 'disabled' | 'readOnly' | 'tabIndex'\n >,\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {}\n\nexport function RadioGroup<Value = string>(props: RadioGroupProps<Value>) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n children,\n value: initialValue,\n defaultValue,\n onChange,\n disabled,\n readOnly,\n tabIndex = 0,\n ...rest\n } = props;\n\n const { value, setValue } = useValue<Value>({\n
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","names":[],"sources":["../../../../lib/ui/forms/radios/RadioGroup.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n type HTMLAttributes,\n isValidElement,\n useId,\n type ReactElement,\n} from 'react';\nimport type { FormControlProps } from '../FormControl';\nimport type { RadioProps } from './Radio';\nimport { useValue } from '../../hooks/useValue';\nimport clsx from 'clsx';\nimport type { ButtonProps } from '../../buttons/Button';\nimport { KEY } from '../../hooks/keyboard.constants';\n\nexport interface RadioGroupProps<Value = string>\n extends Pick<\n FormControlProps<Value>,\n 'id' | 'name' | 'value' | 'onChange' | 'disabled' | 'readOnly' | 'tabIndex'\n >,\n Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {}\n\nexport function RadioGroup<Value = string>(props: RadioGroupProps<Value>) {\n const internalId = useId();\n\n const {\n id = internalId,\n name = id,\n children,\n value: initialValue,\n defaultValue,\n onChange,\n disabled,\n readOnly,\n tabIndex = 0,\n ...rest\n } = props;\n\n const { value, setValue } = useValue<Value>({\n initialValue,\n defaultValue: defaultValue as Value,\n onChange,\n });\n\n const handleKeyDown = (e: React.KeyboardEvent, index: number) => {\n let newIndex = index;\n const options = (e.target as any)!.parentNode!.querySelectorAll('[role=\"radio\"]');\n\n if (e.key === KEY.ARROW_RIGHT || e.key === KEY.ARROW_DOWN) {\n newIndex = (index + 1) % options.length;\n options[newIndex]?.focus();\n } else if (e.key === KEY.ARROW_LEFT || e.key === KEY.ARROW_UP) {\n newIndex = (index - 1 + options.length) % options.length;\n options[newIndex]?.focus();\n } else if (e.key === KEY.SPACE || e.key === KEY.ENTER) {\n setValue(options[index].dataset.value as Value, e.nativeEvent);\n return;\n }\n };\n\n function getTabIndex(checked: boolean, index: number) {\n if (value === undefined || value === null || value === '') {\n return tabIndex === index ? 0 : -1;\n }\n\n return checked ? 0 : -1;\n }\n\n return (\n <div {...rest} className={clsx('flex gap-12', rest.className)} role=\"radiogroup\">\n {Children.map(children, (child, index) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const type = (child.type as unknown as ReactElement & { displayName?: string }).displayName;\n const itemValue = (child.props as ButtonProps | RadioProps).value;\n const checked = value === itemValue;\n\n if (type?.includes('Button')) {\n return cloneElement(child, {\n color: checked ? 'black' : 'white',\n ...(child.props as any),\n value: undefined,\n role: 'radio',\n name,\n component: 'span',\n id: `${id}-${index}`,\n disabled,\n readOnly,\n tabIndex: getTabIndex(checked, index),\n 'data-value': itemValue,\n 'aria-checked': value === itemValue,\n onKeyDown: (e: React.KeyboardEvent) => handleKeyDown(e, index),\n onClick(event: React.MouseEvent) {\n if (!disabled && !readOnly) {\n setValue(itemValue as Value, event.nativeEvent);\n (child.props as any)?.onClick?.(itemValue as Value);\n }\n },\n } as ButtonProps);\n }\n\n return cloneElement(child, {\n ...(child.props as any),\n name,\n id: `${id}-${index}`,\n disabled,\n readOnly,\n tabIndex: getTabIndex(checked, index),\n checked: checked,\n value: itemValue,\n onChange(event: Event) {\n if (!disabled && !readOnly) {\n setValue(itemValue as Value, event);\n }\n },\n } as RadioProps);\n })}\n </div>\n );\n}\n"],"mappings":";;;;;;AAsBA,SAAgB,EAA2B,GAA+B;CACxE,IAAM,IAAa,GAAO,EAEpB,EACJ,QAAK,GACL,UAAO,GACP,aACA,OAAO,GACP,iBACA,aACA,aACA,aACA,cAAW,GACX,GAAG,MACD,GAEE,EAAE,UAAO,gBAAa,EAAgB;EAC1C;EACc;EACd;EACD,CAAC,EAEI,KAAiB,GAAwB,MAAkB;EAC/D,IAAI,IAAW,GACT,IAAW,EAAE,OAAgB,WAAY,iBAAiB,mBAAiB;AAEjF,MAAI,EAAE,QAAQ,EAAI,eAAe,EAAE,QAAQ,EAAI,WAE7C,CADA,KAAY,IAAQ,KAAK,EAAQ,QACjC,EAAQ,IAAW,OAAO;WACjB,EAAE,QAAQ,EAAI,cAAc,EAAE,QAAQ,EAAI,SAEnD,CADA,KAAY,IAAQ,IAAI,EAAQ,UAAU,EAAQ,QAClD,EAAQ,IAAW,OAAO;WACjB,EAAE,QAAQ,EAAI,SAAS,EAAE,QAAQ,EAAI,OAAO;AACrD,KAAS,EAAQ,GAAO,QAAQ,OAAgB,EAAE,YAAY;AAC9D;;;CAIJ,SAAS,EAAY,GAAkB,GAAe;AAKpD,SAJI,KAAiC,QAAQ,MAAU,KAC9C,MAAa,IAAQ,IAAI,KAG3B,IAAU,IAAI;;AAGvB,QACE,kBAAC,OAAD;EAAK,GAAI;EAAM,WAAW,EAAK,eAAe,EAAK,UAAU;EAAE,MAAK;YACjE,EAAS,IAAI,IAAW,GAAO,MAAU;AACxC,OAAI,CAAC,EAAe,EAAM,CACxB,QAAO;GAGT,IAAM,IAAQ,EAAM,KAA4D,aAC1E,IAAa,EAAM,MAAmC,OACtD,IAAU,MAAU;AA0B1B,UAxBI,GAAM,SAAS,SAAS,GACnB,EAAa,GAAO;IACzB,OAAO,IAAU,UAAU;IAC3B,GAAI,EAAM;IACV,OAAO,KAAA;IACP,MAAM;IACN;IACA,WAAW;IACX,IAAI,GAAG,EAAG,GAAG;IACb;IACA;IACA,UAAU,EAAY,GAAS,EAAM;IACrC,cAAc;IACd,gBAAgB,MAAU;IAC1B,YAAY,MAA2B,EAAc,GAAG,EAAM;IAC9D,QAAQ,GAAyB;AAC/B,KAAI,CAAC,KAAY,CAAC,MAChB,EAAS,GAAoB,EAAM,YAAY,EAC9C,EAAM,OAAe,UAAU,EAAmB;;IAGxD,CAAgB,GAGZ,EAAa,GAAO;IACzB,GAAI,EAAM;IACV;IACA,IAAI,GAAG,EAAG,GAAG;IACb;IACA;IACA,UAAU,EAAY,GAAS,EAAM;IAC5B;IACT,OAAO;IACP,SAAS,GAAc;AACrB,KAAI,CAAC,KAAY,CAAC,KAChB,EAAS,GAAoB,EAAM;;IAGxC,CAAe;IAChB;EACE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FunctionComponent } from 'react';
|
|
2
|
+
import { ImageProps } from '../Image';
|
|
3
|
+
import { FrameWrapperProps } from './FrameWrapper';
|
|
4
|
+
export interface FrameProps extends FrameWrapperProps {
|
|
5
|
+
image: ImageProps | null;
|
|
6
|
+
sizes?: ImageProps['sizes'];
|
|
7
|
+
}
|
|
8
|
+
export declare const Frame: FunctionComponent<FrameProps>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Image as e } from "../Image.js";
|
|
2
|
+
import { FrameWrapper as t } from "./FrameWrapper.js";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
//#region lib/ui/frame/Frame.tsx
|
|
5
|
+
var i = ({ children: i, image: a, sizes: o, ...s }) => /* @__PURE__ */ r(t, {
|
|
6
|
+
...s,
|
|
7
|
+
children: [a && /* @__PURE__ */ n(e, {
|
|
8
|
+
...a,
|
|
9
|
+
className: "h-full w-full object-cover",
|
|
10
|
+
sizes: o ?? a.sizes
|
|
11
|
+
}), i]
|
|
12
|
+
});
|
|
13
|
+
//#endregion
|
|
14
|
+
export { i as Frame };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=Frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Frame.js","names":[],"sources":["../../../lib/ui/frame/Frame.tsx"],"sourcesContent":["import type { FunctionComponent } from 'react';\n\nimport { Image, type ImageProps } from '../Image';\n\nimport { FrameWrapper, type FrameWrapperProps } from './FrameWrapper';\n\nexport interface FrameProps extends FrameWrapperProps {\n image: ImageProps | null;\n sizes?: ImageProps['sizes'];\n}\n\nexport const Frame: FunctionComponent<FrameProps> = ({ children, image, sizes, ...props }) => {\n return (\n <FrameWrapper {...props}>\n {image && (\n <Image {...image} className=\"h-full w-full object-cover\" sizes={sizes ?? image.sizes} />\n )}\n {children}\n </FrameWrapper>\n );\n};\n"],"mappings":";;;;AAWA,IAAa,KAAwC,EAAE,aAAU,UAAO,UAAO,GAAG,QAE9E,kBAAC,GAAD;CAAc,GAAI;WAAlB,CACG,KACC,kBAAC,GAAD;EAAO,GAAI;EAAO,WAAU;EAA6B,OAAO,KAAS,EAAM;EAAS,CAAA,EAEzF,EACY"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { t as e } from "../../chunks/clsx.js";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
//#region lib/ui/frame/FrameLabelsWrapper.tsx
|
|
4
|
+
var n = ({ children: n, className: r, hasImage: i = !1, ...a }) => /* @__PURE__ */ t("div", {
|
|
5
|
+
...a,
|
|
6
|
+
className: e("rounded-16 pointer-events-none absolute inset-0 flex flex-col overflow-auto", { "bg-linear-to-b from-transparent via-transparent via-40% to-black/70": i }, r),
|
|
7
|
+
children: n
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
export { n as FrameLabelsWrapper };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=FrameLabelsWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameLabelsWrapper.js","names":[],"sources":["../../../lib/ui/frame/FrameLabelsWrapper.tsx"],"sourcesContent":["import clsx from 'clsx';\nimport type { ComponentPropsWithoutRef, FunctionComponent } from 'react';\n\nexport interface FrameLabelsWrapperProps extends ComponentPropsWithoutRef<'div'> {\n hasImage: boolean;\n}\n\nexport const FrameLabelsWrapper: FunctionComponent<FrameLabelsWrapperProps> = ({\n children,\n className,\n hasImage = false,\n ...attrs\n}) => {\n return (\n <div\n {...attrs}\n className={clsx(\n 'rounded-16 pointer-events-none absolute inset-0 flex flex-col overflow-auto',\n {\n 'bg-linear-to-b from-transparent via-transparent via-40% to-black/70': hasImage,\n },\n className,\n )}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;AAOA,IAAa,KAAkE,EAC7E,aACA,cACA,cAAW,IACX,GAAG,QAGD,kBAAC,OAAD;CACE,GAAI;CACJ,WAAW,EACT,+EACA,EACE,uEAAuE,GACxE,EACD,EACD;CAEA;CACG,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FunctionComponent, HTMLAttributes } from 'react';
|
|
2
|
+
export interface FrameTitleProps extends HTMLAttributes<HTMLDivElement | HTMLAnchorElement> {
|
|
3
|
+
coverLink?: boolean;
|
|
4
|
+
hasImage?: boolean;
|
|
5
|
+
href?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const FrameTitle: FunctionComponent<FrameTitleProps>;
|