@mediquo/medicore 0.1.0
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 +89 -0
- package/dist/components/advisor-contact/advisor-contact.d.ts +39 -0
- package/dist/components/advisor-contact/advisor-contact.js +94 -0
- package/dist/components/advisor-contact/advisor-contact.js.map +1 -0
- package/dist/components/advisor-contact/index.d.ts +1 -0
- package/dist/components/announcement/announcement-dialog.d.ts +39 -0
- package/dist/components/announcement/announcement-dialog.js +107 -0
- package/dist/components/announcement/announcement-dialog.js.map +1 -0
- package/dist/components/announcement/announcement-illustration.d.ts +9 -0
- package/dist/components/announcement/announcement-illustration.js +58 -0
- package/dist/components/announcement/announcement-illustration.js.map +1 -0
- package/dist/components/announcement/index.d.ts +2 -0
- package/dist/components/app-shell/app-shell.d.ts +74 -0
- package/dist/components/app-shell/app-shell.js +208 -0
- package/dist/components/app-shell/app-shell.js.map +1 -0
- package/dist/components/app-shell/index.d.ts +1 -0
- package/dist/components/appointment-row/appointment-row.d.ts +59 -0
- package/dist/components/appointment-row/appointment-row.js +160 -0
- package/dist/components/appointment-row/appointment-row.js.map +1 -0
- package/dist/components/appointment-row/index.d.ts +1 -0
- package/dist/components/auth-panel/auth-panel.d.ts +20 -0
- package/dist/components/auth-panel/auth-panel.js +36 -0
- package/dist/components/auth-panel/auth-panel.js.map +1 -0
- package/dist/components/auth-panel/index.d.ts +1 -0
- package/dist/components/availability-column/availability-column.d.ts +28 -0
- package/dist/components/availability-column/availability-column.js +57 -0
- package/dist/components/availability-column/availability-column.js.map +1 -0
- package/dist/components/availability-column/index.d.ts +1 -0
- package/dist/components/availability-row/availability-row.d.ts +36 -0
- package/dist/components/availability-row/availability-row.js +60 -0
- package/dist/components/availability-row/availability-row.js.map +1 -0
- package/dist/components/availability-row/index.d.ts +1 -0
- package/dist/components/avatar/avatar.d.ts +57 -0
- package/dist/components/avatar/avatar.js +115 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/index.d.ts +1 -0
- package/dist/components/badge/badge.d.ts +20 -0
- package/dist/components/badge/badge.js +42 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/index.d.ts +1 -0
- package/dist/components/banner/banner.d.ts +32 -0
- package/dist/components/banner/banner.js +93 -0
- package/dist/components/banner/banner.js.map +1 -0
- package/dist/components/banner/index.d.ts +1 -0
- package/dist/components/bottom-bar/bottom-bar.d.ts +41 -0
- package/dist/components/bottom-bar/bottom-bar.js +76 -0
- package/dist/components/bottom-bar/bottom-bar.js.map +1 -0
- package/dist/components/bottom-bar/index.d.ts +1 -0
- package/dist/components/brand-mark/brand-mark.d.ts +22 -0
- package/dist/components/brand-mark/brand-mark.js +72 -0
- package/dist/components/brand-mark/brand-mark.js.map +1 -0
- package/dist/components/brand-mark/index.d.ts +1 -0
- package/dist/components/breadcrumb/breadcrumb.d.ts +36 -0
- package/dist/components/breadcrumb/breadcrumb.js +70 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/index.d.ts +1 -0
- package/dist/components/button/button.d.ts +29 -0
- package/dist/components/button/button.js +104 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/card/card.d.ts +84 -0
- package/dist/components/card/card.js +157 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/index.d.ts +1 -0
- package/dist/components/card-appointment/card-appointment.d.ts +58 -0
- package/dist/components/card-appointment/card-appointment.js +136 -0
- package/dist/components/card-appointment/card-appointment.js.map +1 -0
- package/dist/components/card-appointment/index.d.ts +1 -0
- package/dist/components/card-article/card-article.d.ts +28 -0
- package/dist/components/card-article/card-article.js +46 -0
- package/dist/components/card-article/card-article.js.map +1 -0
- package/dist/components/card-article/index.d.ts +1 -0
- package/dist/components/card-professional/card-professional.d.ts +56 -0
- package/dist/components/card-professional/card-professional.js +77 -0
- package/dist/components/card-professional/card-professional.js.map +1 -0
- package/dist/components/card-professional/index.d.ts +1 -0
- package/dist/components/card-professional-mini/card-professional-mini.d.ts +22 -0
- package/dist/components/card-professional-mini/card-professional-mini.js +37 -0
- package/dist/components/card-professional-mini/card-professional-mini.js.map +1 -0
- package/dist/components/card-professional-mini/index.d.ts +1 -0
- package/dist/components/card-program/card-program.d.ts +45 -0
- package/dist/components/card-program/card-program.js +142 -0
- package/dist/components/card-program/card-program.js.map +1 -0
- package/dist/components/card-program/index.d.ts +1 -0
- package/dist/components/card-service-option/card-service-option.d.ts +33 -0
- package/dist/components/card-service-option/card-service-option.js +49 -0
- package/dist/components/card-service-option/card-service-option.js.map +1 -0
- package/dist/components/card-service-option/index.d.ts +1 -0
- package/dist/components/card-testimonial/card-testimonial.d.ts +17 -0
- package/dist/components/card-testimonial/card-testimonial.js +36 -0
- package/dist/components/card-testimonial/card-testimonial.js.map +1 -0
- package/dist/components/card-testimonial/index.d.ts +1 -0
- package/dist/components/chat/chat-attachment.d.ts +34 -0
- package/dist/components/chat/chat-attachment.js +90 -0
- package/dist/components/chat/chat-attachment.js.map +1 -0
- package/dist/components/chat/chat-bubble.d.ts +49 -0
- package/dist/components/chat/chat-bubble.js +102 -0
- package/dist/components/chat/chat-bubble.js.map +1 -0
- package/dist/components/chat/chat-composer.d.ts +40 -0
- package/dist/components/chat/chat-composer.js +114 -0
- package/dist/components/chat/chat-composer.js.map +1 -0
- package/dist/components/chat/chat-conversation-row.d.ts +42 -0
- package/dist/components/chat/chat-conversation-row.js +104 -0
- package/dist/components/chat/chat-conversation-row.js.map +1 -0
- package/dist/components/chat/chat-date-separator.d.ts +15 -0
- package/dist/components/chat/chat-date-separator.js +29 -0
- package/dist/components/chat/chat-date-separator.js.map +1 -0
- package/dist/components/chat/chat-delivery-status.d.ts +21 -0
- package/dist/components/chat/chat-delivery-status.js +43 -0
- package/dist/components/chat/chat-delivery-status.js.map +1 -0
- package/dist/components/chat/chat-launcher.d.ts +24 -0
- package/dist/components/chat/chat-launcher.js +52 -0
- package/dist/components/chat/chat-launcher.js.map +1 -0
- package/dist/components/chat/chat-message-list.d.ts +13 -0
- package/dist/components/chat/chat-message-list.js +23 -0
- package/dist/components/chat/chat-message-list.js.map +1 -0
- package/dist/components/chat/chat-room-header.d.ts +33 -0
- package/dist/components/chat/chat-room-header.js +53 -0
- package/dist/components/chat/chat-room-header.js.map +1 -0
- package/dist/components/chat/chat-typing-indicator.d.ts +20 -0
- package/dist/components/chat/chat-typing-indicator.js +61 -0
- package/dist/components/chat/chat-typing-indicator.js.map +1 -0
- package/dist/components/chat/index.d.ts +10 -0
- package/dist/components/checkbox/checkbox-field.d.ts +25 -0
- package/dist/components/checkbox/checkbox-field.js +62 -0
- package/dist/components/checkbox/checkbox-field.js.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts +28 -0
- package/dist/components/checkbox/checkbox.js +62 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/chip/chip.d.ts +60 -0
- package/dist/components/chip/chip.js +101 -0
- package/dist/components/chip/chip.js.map +1 -0
- package/dist/components/chip/index.d.ts +1 -0
- package/dist/components/date-badge/date-badge.d.ts +15 -0
- package/dist/components/date-badge/date-badge.js +35 -0
- package/dist/components/date-badge/date-badge.js.map +1 -0
- package/dist/components/date-badge/index.d.ts +1 -0
- package/dist/components/day-cell/day-cell.d.ts +45 -0
- package/dist/components/day-cell/day-cell.js +124 -0
- package/dist/components/day-cell/day-cell.js.map +1 -0
- package/dist/components/day-cell/index.d.ts +1 -0
- package/dist/components/divider/divider.d.ts +23 -0
- package/dist/components/divider/divider.js +49 -0
- package/dist/components/divider/divider.js.map +1 -0
- package/dist/components/divider/index.d.ts +1 -0
- package/dist/components/empty-state/empty-state.d.ts +53 -0
- package/dist/components/empty-state/empty-state.js +57 -0
- package/dist/components/empty-state/empty-state.js.map +1 -0
- package/dist/components/empty-state/index.d.ts +1 -0
- package/dist/components/field/field-context.d.ts +19 -0
- package/dist/components/field/field-context.js +10 -0
- package/dist/components/field/field-context.js.map +1 -0
- package/dist/components/field/field.d.ts +47 -0
- package/dist/components/field/field.js +116 -0
- package/dist/components/field/field.js.map +1 -0
- package/dist/components/field/index.d.ts +1 -0
- package/dist/components/footer/footer.d.ts +29 -0
- package/dist/components/footer/footer.js +88 -0
- package/dist/components/footer/footer.js.map +1 -0
- package/dist/components/footer/index.d.ts +1 -0
- package/dist/components/health-record/health-record.d.ts +88 -0
- package/dist/components/health-record/health-record.js +255 -0
- package/dist/components/health-record/health-record.js.map +1 -0
- package/dist/components/health-record/index.d.ts +1 -0
- package/dist/components/hero-greeting/hero-greeting.d.ts +17 -0
- package/dist/components/hero-greeting/hero-greeting.js +29 -0
- package/dist/components/hero-greeting/hero-greeting.js.map +1 -0
- package/dist/components/hero-greeting/index.d.ts +1 -0
- package/dist/components/icon-button/icon-button.d.ts +37 -0
- package/dist/components/icon-button/icon-button.js +64 -0
- package/dist/components/icon-button/icon-button.js.map +1 -0
- package/dist/components/icon-button/index.d.ts +1 -0
- package/dist/components/icon-container/icon-container.d.ts +29 -0
- package/dist/components/icon-container/icon-container.js +49 -0
- package/dist/components/icon-container/icon-container.js.map +1 -0
- package/dist/components/icon-container/index.d.ts +1 -0
- package/dist/components/included-item/included-item.d.ts +10 -0
- package/dist/components/included-item/included-item.js +37 -0
- package/dist/components/included-item/included-item.js.map +1 -0
- package/dist/components/included-item/index.d.ts +1 -0
- package/dist/components/input/control-styles.d.ts +34 -0
- package/dist/components/input/control-styles.js +36 -0
- package/dist/components/input/control-styles.js.map +1 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/input.d.ts +35 -0
- package/dist/components/input/input.js +123 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/link/index.d.ts +1 -0
- package/dist/components/link/link.d.ts +52 -0
- package/dist/components/link/link.js +94 -0
- package/dist/components/link/link.js.map +1 -0
- package/dist/components/list-row/index.d.ts +1 -0
- package/dist/components/list-row/list-row.d.ts +47 -0
- package/dist/components/list-row/list-row.js +71 -0
- package/dist/components/list-row/list-row.js.map +1 -0
- package/dist/components/logo/index.d.ts +1 -0
- package/dist/components/logo/logo.d.ts +13 -0
- package/dist/components/logo/logo.js +48 -0
- package/dist/components/logo/logo.js.map +1 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/menu/menu.d.ts +79 -0
- package/dist/components/menu/menu.js +250 -0
- package/dist/components/menu/menu.js.map +1 -0
- package/dist/components/mobile-header/index.d.ts +1 -0
- package/dist/components/mobile-header/mobile-header.d.ts +49 -0
- package/dist/components/mobile-header/mobile-header.js +84 -0
- package/dist/components/mobile-header/mobile-header.js.map +1 -0
- package/dist/components/modal/confirm-modal.d.ts +32 -0
- package/dist/components/modal/confirm-modal.js +78 -0
- package/dist/components/modal/confirm-modal.js.map +1 -0
- package/dist/components/modal/index.d.ts +2 -0
- package/dist/components/modal/modal.d.ts +103 -0
- package/dist/components/modal/modal.js +248 -0
- package/dist/components/modal/modal.js.map +1 -0
- package/dist/components/modal/use-media-query.d.ts +7 -0
- package/dist/components/modal/use-media-query.js +22 -0
- package/dist/components/modal/use-media-query.js.map +1 -0
- package/dist/components/nav-item/index.d.ts +1 -0
- package/dist/components/nav-item/nav-item.d.ts +54 -0
- package/dist/components/nav-item/nav-item.js +124 -0
- package/dist/components/nav-item/nav-item.js.map +1 -0
- package/dist/components/otp-input/index.d.ts +1 -0
- package/dist/components/otp-input/otp-input.d.ts +40 -0
- package/dist/components/otp-input/otp-input.js +152 -0
- package/dist/components/otp-input/otp-input.js.map +1 -0
- package/dist/components/page-header/index.d.ts +1 -0
- package/dist/components/page-header/page-header.d.ts +24 -0
- package/dist/components/page-header/page-header.js +41 -0
- package/dist/components/page-header/page-header.js.map +1 -0
- package/dist/components/phone-input/index.d.ts +1 -0
- package/dist/components/phone-input/phone-input.d.ts +46 -0
- package/dist/components/phone-input/phone-input.js +219 -0
- package/dist/components/phone-input/phone-input.js.map +1 -0
- package/dist/components/promo-app/index.d.ts +1 -0
- package/dist/components/promo-app/promo-app.d.ts +29 -0
- package/dist/components/promo-app/promo-app.js +51 -0
- package/dist/components/promo-app/promo-app.js.map +1 -0
- package/dist/components/radio/field-item-label.d.ts +13 -0
- package/dist/components/radio/field-item-label.js +29 -0
- package/dist/components/radio/field-item-label.js.map +1 -0
- package/dist/components/radio/index.d.ts +1 -0
- package/dist/components/radio/radio.d.ts +38 -0
- package/dist/components/radio/radio.js +90 -0
- package/dist/components/radio/radio.js.map +1 -0
- package/dist/components/radio/use-field-group-label.d.ts +7 -0
- package/dist/components/radio/use-field-group-label.js +16 -0
- package/dist/components/radio/use-field-group-label.js.map +1 -0
- package/dist/components/rating/index.d.ts +1 -0
- package/dist/components/rating/rating.d.ts +23 -0
- package/dist/components/rating/rating.js +93 -0
- package/dist/components/rating/rating.js.map +1 -0
- package/dist/components/section-header/index.d.ts +1 -0
- package/dist/components/section-header/section-header.d.ts +37 -0
- package/dist/components/section-header/section-header.js +60 -0
- package/dist/components/section-header/section-header.js.map +1 -0
- package/dist/components/segmented-control/index.d.ts +1 -0
- package/dist/components/segmented-control/segmented-control.d.ts +34 -0
- package/dist/components/segmented-control/segmented-control.js +51 -0
- package/dist/components/segmented-control/segmented-control.js.map +1 -0
- package/dist/components/select/index.d.ts +2 -0
- package/dist/components/select/native-select.d.ts +30 -0
- package/dist/components/select/native-select.js +83 -0
- package/dist/components/select/native-select.js.map +1 -0
- package/dist/components/select/select.d.ts +49 -0
- package/dist/components/select/select.js +125 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/selection-card/index.d.ts +1 -0
- package/dist/components/selection-card/selection-card.d.ts +31 -0
- package/dist/components/selection-card/selection-card.js +90 -0
- package/dist/components/selection-card/selection-card.js.map +1 -0
- package/dist/components/severity-indicator/index.d.ts +1 -0
- package/dist/components/severity-indicator/severity-indicator.d.ts +18 -0
- package/dist/components/severity-indicator/severity-indicator.js +64 -0
- package/dist/components/severity-indicator/severity-indicator.js.map +1 -0
- package/dist/components/severity-scale/index.d.ts +1 -0
- package/dist/components/severity-scale/severity-scale.d.ts +17 -0
- package/dist/components/severity-scale/severity-scale.js +22 -0
- package/dist/components/severity-scale/severity-scale.js.map +1 -0
- package/dist/components/sidebar/index.d.ts +1 -0
- package/dist/components/sidebar/sidebar.d.ts +99 -0
- package/dist/components/sidebar/sidebar.js +228 -0
- package/dist/components/sidebar/sidebar.js.map +1 -0
- package/dist/components/skeleton/index.d.ts +1 -0
- package/dist/components/skeleton/skeleton.d.ts +33 -0
- package/dist/components/skeleton/skeleton.js +47 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/social-button/index.d.ts +1 -0
- package/dist/components/social-button/social-button.d.ts +29 -0
- package/dist/components/social-button/social-button.js +53 -0
- package/dist/components/social-button/social-button.js.map +1 -0
- package/dist/components/spinner/index.d.ts +1 -0
- package/dist/components/spinner/spinner.d.ts +20 -0
- package/dist/components/spinner/spinner.js +54 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/stat-tile/index.d.ts +1 -0
- package/dist/components/stat-tile/stat-tile.d.ts +15 -0
- package/dist/components/stat-tile/stat-tile.js +28 -0
- package/dist/components/stat-tile/stat-tile.js.map +1 -0
- package/dist/components/step-indicator/index.d.ts +1 -0
- package/dist/components/step-indicator/step-indicator.d.ts +17 -0
- package/dist/components/step-indicator/step-indicator.js +35 -0
- package/dist/components/step-indicator/step-indicator.js.map +1 -0
- package/dist/components/store-badge/index.d.ts +1 -0
- package/dist/components/store-badge/store-badge.d.ts +22 -0
- package/dist/components/store-badge/store-badge.js +40 -0
- package/dist/components/store-badge/store-badge.js.map +1 -0
- package/dist/components/switch/index.d.ts +1 -0
- package/dist/components/switch/switch.d.ts +23 -0
- package/dist/components/switch/switch.js +67 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/table.d.ts +85 -0
- package/dist/components/table/table.js +175 -0
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/tabs/index.d.ts +1 -0
- package/dist/components/tabs/tabs.d.ts +58 -0
- package/dist/components/tabs/tabs.js +89 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/textarea/textarea.d.ts +25 -0
- package/dist/components/textarea/textarea.js +79 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/time-slot/index.d.ts +1 -0
- package/dist/components/time-slot/time-slot.d.ts +50 -0
- package/dist/components/time-slot/time-slot.js +75 -0
- package/dist/components/time-slot/time-slot.js.map +1 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/toast.d.ts +60 -0
- package/dist/components/toast/toast.js +159 -0
- package/dist/components/toast/toast.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/tooltip.d.ts +40 -0
- package/dist/components/tooltip/tooltip.js +110 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/video/index.d.ts +4 -0
- package/dist/components/video/video-control-button.d.ts +33 -0
- package/dist/components/video/video-control-button.js +119 -0
- package/dist/components/video/video-control-button.js.map +1 -0
- package/dist/components/video/video-label.d.ts +14 -0
- package/dist/components/video/video-label.js +25 -0
- package/dist/components/video/video-label.js.map +1 -0
- package/dist/components/video/video-stage.d.ts +39 -0
- package/dist/components/video/video-stage.js +96 -0
- package/dist/components/video/video-stage.js.map +1 -0
- package/dist/components/video/video-tile.d.ts +37 -0
- package/dist/components/video/video-tile.js +61 -0
- package/dist/components/video/video-tile.js.map +1 -0
- package/dist/icons/create-icon.d.ts +18 -0
- package/dist/icons/create-icon.js +46 -0
- package/dist/icons/create-icon.js.map +1 -0
- package/dist/icons/generated/activity-heart.d.ts +1 -0
- package/dist/icons/generated/activity-heart.js +10 -0
- package/dist/icons/generated/activity-heart.js.map +1 -0
- package/dist/icons/generated/activity.d.ts +1 -0
- package/dist/icons/generated/activity.js +10 -0
- package/dist/icons/generated/activity.js.map +1 -0
- package/dist/icons/generated/alert-circle.d.ts +1 -0
- package/dist/icons/generated/alert-circle.js +10 -0
- package/dist/icons/generated/alert-circle.js.map +1 -0
- package/dist/icons/generated/alert-triangle.d.ts +1 -0
- package/dist/icons/generated/alert-triangle.js +10 -0
- package/dist/icons/generated/alert-triangle.js.map +1 -0
- package/dist/icons/generated/allergy-peanut.d.ts +1 -0
- package/dist/icons/generated/allergy-peanut.js +16 -0
- package/dist/icons/generated/allergy-peanut.js.map +1 -0
- package/dist/icons/generated/annotation-alert.d.ts +1 -0
- package/dist/icons/generated/annotation-alert.js +10 -0
- package/dist/icons/generated/annotation-alert.js.map +1 -0
- package/dist/icons/generated/annotation-check.d.ts +1 -0
- package/dist/icons/generated/annotation-check.js +10 -0
- package/dist/icons/generated/annotation-check.js.map +1 -0
- package/dist/icons/generated/annotation-info.d.ts +1 -0
- package/dist/icons/generated/annotation-info.js +10 -0
- package/dist/icons/generated/annotation-info.js.map +1 -0
- package/dist/icons/generated/annotation-question.d.ts +1 -0
- package/dist/icons/generated/annotation-question.js +10 -0
- package/dist/icons/generated/annotation-question.js.map +1 -0
- package/dist/icons/generated/annotation.d.ts +1 -0
- package/dist/icons/generated/annotation.js +10 -0
- package/dist/icons/generated/annotation.js.map +1 -0
- package/dist/icons/generated/arrow-circle-down.d.ts +1 -0
- package/dist/icons/generated/arrow-circle-down.js +10 -0
- package/dist/icons/generated/arrow-circle-down.js.map +1 -0
- package/dist/icons/generated/arrow-circle-left.d.ts +1 -0
- package/dist/icons/generated/arrow-circle-left.js +10 -0
- package/dist/icons/generated/arrow-circle-left.js.map +1 -0
- package/dist/icons/generated/arrow-circle-right.d.ts +1 -0
- package/dist/icons/generated/arrow-circle-right.js +10 -0
- package/dist/icons/generated/arrow-circle-right.js.map +1 -0
- package/dist/icons/generated/arrow-circle-up.d.ts +1 -0
- package/dist/icons/generated/arrow-circle-up.js +10 -0
- package/dist/icons/generated/arrow-circle-up.js.map +1 -0
- package/dist/icons/generated/arrow-narrow-down.d.ts +1 -0
- package/dist/icons/generated/arrow-narrow-down.js +10 -0
- package/dist/icons/generated/arrow-narrow-down.js.map +1 -0
- package/dist/icons/generated/arrow-narrow-left.d.ts +1 -0
- package/dist/icons/generated/arrow-narrow-left.js +10 -0
- package/dist/icons/generated/arrow-narrow-left.js.map +1 -0
- package/dist/icons/generated/arrow-narrow-right.d.ts +1 -0
- package/dist/icons/generated/arrow-narrow-right.js +10 -0
- package/dist/icons/generated/arrow-narrow-right.js.map +1 -0
- package/dist/icons/generated/arrow-narrow-up.d.ts +1 -0
- package/dist/icons/generated/arrow-narrow-up.js +10 -0
- package/dist/icons/generated/arrow-narrow-up.js.map +1 -0
- package/dist/icons/generated/arrow-right.d.ts +1 -0
- package/dist/icons/generated/arrow-right.js +10 -0
- package/dist/icons/generated/arrow-right.js.map +1 -0
- package/dist/icons/generated/bar-chart-01.d.ts +1 -0
- package/dist/icons/generated/bar-chart-01.js +10 -0
- package/dist/icons/generated/bar-chart-01.js.map +1 -0
- package/dist/icons/generated/bar-chart-02.d.ts +1 -0
- package/dist/icons/generated/bar-chart-02.js +10 -0
- package/dist/icons/generated/bar-chart-02.js.map +1 -0
- package/dist/icons/generated/bar-chart-03.d.ts +1 -0
- package/dist/icons/generated/bar-chart-03.js +10 -0
- package/dist/icons/generated/bar-chart-03.js.map +1 -0
- package/dist/icons/generated/bell-01.d.ts +1 -0
- package/dist/icons/generated/bell-01.js +10 -0
- package/dist/icons/generated/bell-01.js.map +1 -0
- package/dist/icons/generated/bell-02.d.ts +1 -0
- package/dist/icons/generated/bell-02.js +10 -0
- package/dist/icons/generated/bell-02.js.map +1 -0
- package/dist/icons/generated/bookmark.d.ts +1 -0
- package/dist/icons/generated/bookmark.js +10 -0
- package/dist/icons/generated/bookmark.js.map +1 -0
- package/dist/icons/generated/broken-heart.d.ts +1 -0
- package/dist/icons/generated/broken-heart.js +10 -0
- package/dist/icons/generated/broken-heart.js.map +1 -0
- package/dist/icons/generated/calendar-chat.d.ts +1 -0
- package/dist/icons/generated/calendar-chat.js +13 -0
- package/dist/icons/generated/calendar-chat.js.map +1 -0
- package/dist/icons/generated/calendar-check-01.d.ts +1 -0
- package/dist/icons/generated/calendar-check-01.js +10 -0
- package/dist/icons/generated/calendar-check-01.js.map +1 -0
- package/dist/icons/generated/calendar-check-02.d.ts +1 -0
- package/dist/icons/generated/calendar-check-02.js +10 -0
- package/dist/icons/generated/calendar-check-02.js.map +1 -0
- package/dist/icons/generated/calendar-heart-01.d.ts +1 -0
- package/dist/icons/generated/calendar-heart-01.js +10 -0
- package/dist/icons/generated/calendar-heart-01.js.map +1 -0
- package/dist/icons/generated/calendar-minus-01.d.ts +1 -0
- package/dist/icons/generated/calendar-minus-01.js +10 -0
- package/dist/icons/generated/calendar-minus-01.js.map +1 -0
- package/dist/icons/generated/calendar-minus-02.d.ts +1 -0
- package/dist/icons/generated/calendar-minus-02.js +10 -0
- package/dist/icons/generated/calendar-minus-02.js.map +1 -0
- package/dist/icons/generated/calendar-plus-01.d.ts +1 -0
- package/dist/icons/generated/calendar-plus-01.js +10 -0
- package/dist/icons/generated/calendar-plus-01.js.map +1 -0
- package/dist/icons/generated/calendar-plus-02.d.ts +1 -0
- package/dist/icons/generated/calendar-plus-02.js +10 -0
- package/dist/icons/generated/calendar-plus-02.js.map +1 -0
- package/dist/icons/generated/calendar.d.ts +1 -0
- package/dist/icons/generated/calendar.js +10 -0
- package/dist/icons/generated/calendar.js.map +1 -0
- package/dist/icons/generated/camera-01.d.ts +1 -0
- package/dist/icons/generated/camera-01.js +13 -0
- package/dist/icons/generated/camera-01.js.map +1 -0
- package/dist/icons/generated/camera-off.d.ts +1 -0
- package/dist/icons/generated/camera-off.js +10 -0
- package/dist/icons/generated/camera-off.js.map +1 -0
- package/dist/icons/generated/certificate-02.d.ts +1 -0
- package/dist/icons/generated/certificate-02.js +10 -0
- package/dist/icons/generated/certificate-02.js.map +1 -0
- package/dist/icons/generated/check-circle.d.ts +1 -0
- package/dist/icons/generated/check-circle.js +10 -0
- package/dist/icons/generated/check-circle.js.map +1 -0
- package/dist/icons/generated/check-heart.d.ts +1 -0
- package/dist/icons/generated/check-heart.js +10 -0
- package/dist/icons/generated/check-heart.js.map +1 -0
- package/dist/icons/generated/check-square.d.ts +1 -0
- package/dist/icons/generated/check-square.js +10 -0
- package/dist/icons/generated/check-square.js.map +1 -0
- package/dist/icons/generated/check-verified-02.d.ts +1 -0
- package/dist/icons/generated/check-verified-02.js +10 -0
- package/dist/icons/generated/check-verified-02.js.map +1 -0
- package/dist/icons/generated/check.d.ts +1 -0
- package/dist/icons/generated/check.js +7 -0
- package/dist/icons/generated/check.js.map +1 -0
- package/dist/icons/generated/chevron-down.d.ts +1 -0
- package/dist/icons/generated/chevron-down.js +10 -0
- package/dist/icons/generated/chevron-down.js.map +1 -0
- package/dist/icons/generated/chevron-left.d.ts +1 -0
- package/dist/icons/generated/chevron-left.js +10 -0
- package/dist/icons/generated/chevron-left.js.map +1 -0
- package/dist/icons/generated/chevron-right.d.ts +1 -0
- package/dist/icons/generated/chevron-right.js +10 -0
- package/dist/icons/generated/chevron-right.js.map +1 -0
- package/dist/icons/generated/chevron-up.d.ts +1 -0
- package/dist/icons/generated/chevron-up.js +10 -0
- package/dist/icons/generated/chevron-up.js.map +1 -0
- package/dist/icons/generated/clipboard-check.d.ts +1 -0
- package/dist/icons/generated/clipboard-check.js +10 -0
- package/dist/icons/generated/clipboard-check.js.map +1 -0
- package/dist/icons/generated/clock.d.ts +1 -0
- package/dist/icons/generated/clock.js +10 -0
- package/dist/icons/generated/clock.js.map +1 -0
- package/dist/icons/generated/copy-01.d.ts +1 -0
- package/dist/icons/generated/copy-01.js +10 -0
- package/dist/icons/generated/copy-01.js.map +1 -0
- package/dist/icons/generated/credit-card-01.d.ts +1 -0
- package/dist/icons/generated/credit-card-01.js +10 -0
- package/dist/icons/generated/credit-card-01.js.map +1 -0
- package/dist/icons/generated/credit-card-02.d.ts +1 -0
- package/dist/icons/generated/credit-card-02.js +10 -0
- package/dist/icons/generated/credit-card-02.js.map +1 -0
- package/dist/icons/generated/credit-card-check.d.ts +1 -0
- package/dist/icons/generated/credit-card-check.js +10 -0
- package/dist/icons/generated/credit-card-check.js.map +1 -0
- package/dist/icons/generated/currency-euro.d.ts +1 -0
- package/dist/icons/generated/currency-euro.js +10 -0
- package/dist/icons/generated/currency-euro.js.map +1 -0
- package/dist/icons/generated/dots-horizontal.d.ts +1 -0
- package/dist/icons/generated/dots-horizontal.js +14 -0
- package/dist/icons/generated/dots-horizontal.js.map +1 -0
- package/dist/icons/generated/dots-vertical.d.ts +1 -0
- package/dist/icons/generated/dots-vertical.js +14 -0
- package/dist/icons/generated/dots-vertical.js.map +1 -0
- package/dist/icons/generated/download-02.d.ts +1 -0
- package/dist/icons/generated/download-02.js +10 -0
- package/dist/icons/generated/download-02.js.map +1 -0
- package/dist/icons/generated/download-cloud-01.d.ts +1 -0
- package/dist/icons/generated/download-cloud-01.js +10 -0
- package/dist/icons/generated/download-cloud-01.js.map +1 -0
- package/dist/icons/generated/edit-01.d.ts +1 -0
- package/dist/icons/generated/edit-01.js +10 -0
- package/dist/icons/generated/edit-01.js.map +1 -0
- package/dist/icons/generated/edit-05.d.ts +1 -0
- package/dist/icons/generated/edit-05.js +10 -0
- package/dist/icons/generated/edit-05.js.map +1 -0
- package/dist/icons/generated/eye-off.d.ts +1 -0
- package/dist/icons/generated/eye-off.js +10 -0
- package/dist/icons/generated/eye-off.js.map +1 -0
- package/dist/icons/generated/eye.d.ts +1 -0
- package/dist/icons/generated/eye.js +13 -0
- package/dist/icons/generated/eye.js.map +1 -0
- package/dist/icons/generated/face-content.d.ts +1 -0
- package/dist/icons/generated/face-content.js +10 -0
- package/dist/icons/generated/face-content.js.map +1 -0
- package/dist/icons/generated/face-frown.d.ts +1 -0
- package/dist/icons/generated/face-frown.js +10 -0
- package/dist/icons/generated/face-frown.js.map +1 -0
- package/dist/icons/generated/face-happy.d.ts +1 -0
- package/dist/icons/generated/face-happy.js +10 -0
- package/dist/icons/generated/face-happy.js.map +1 -0
- package/dist/icons/generated/face-id.d.ts +1 -0
- package/dist/icons/generated/face-id.js +10 -0
- package/dist/icons/generated/face-id.js.map +1 -0
- package/dist/icons/generated/female.d.ts +1 -0
- package/dist/icons/generated/female.js +10 -0
- package/dist/icons/generated/female.js.map +1 -0
- package/dist/icons/generated/file-06.d.ts +1 -0
- package/dist/icons/generated/file-06.js +10 -0
- package/dist/icons/generated/file-06.js.map +1 -0
- package/dist/icons/generated/file-lock-02.d.ts +1 -0
- package/dist/icons/generated/file-lock-02.js +10 -0
- package/dist/icons/generated/file-lock-02.js.map +1 -0
- package/dist/icons/generated/filter-funnel-01.d.ts +1 -0
- package/dist/icons/generated/filter-funnel-01.js +10 -0
- package/dist/icons/generated/filter-funnel-01.js.map +1 -0
- package/dist/icons/generated/filter-lines.d.ts +1 -0
- package/dist/icons/generated/filter-lines.js +10 -0
- package/dist/icons/generated/filter-lines.js.map +1 -0
- package/dist/icons/generated/fingerprint-01.d.ts +1 -0
- package/dist/icons/generated/fingerprint-01.js +10 -0
- package/dist/icons/generated/fingerprint-01.js.map +1 -0
- package/dist/icons/generated/fingerprint-04.d.ts +1 -0
- package/dist/icons/generated/fingerprint-04.js +10 -0
- package/dist/icons/generated/fingerprint-04.js.map +1 -0
- package/dist/icons/generated/flag-01.d.ts +1 -0
- package/dist/icons/generated/flag-01.js +10 -0
- package/dist/icons/generated/flag-01.js.map +1 -0
- package/dist/icons/generated/flash-off.d.ts +1 -0
- package/dist/icons/generated/flash-off.js +10 -0
- package/dist/icons/generated/flash-off.js.map +1 -0
- package/dist/icons/generated/flash.d.ts +1 -0
- package/dist/icons/generated/flash.js +10 -0
- package/dist/icons/generated/flash.js.map +1 -0
- package/dist/icons/generated/flip-backward.d.ts +1 -0
- package/dist/icons/generated/flip-backward.js +10 -0
- package/dist/icons/generated/flip-backward.js.map +1 -0
- package/dist/icons/generated/globe-01.d.ts +1 -0
- package/dist/icons/generated/globe-01.js +10 -0
- package/dist/icons/generated/globe-01.js.map +1 -0
- package/dist/icons/generated/globe-04.d.ts +1 -0
- package/dist/icons/generated/globe-04.js +10 -0
- package/dist/icons/generated/globe-04.js.map +1 -0
- package/dist/icons/generated/heart.d.ts +1 -0
- package/dist/icons/generated/heart.js +17 -0
- package/dist/icons/generated/heart.js.map +1 -0
- package/dist/icons/generated/help-circle.d.ts +1 -0
- package/dist/icons/generated/help-circle.js +10 -0
- package/dist/icons/generated/help-circle.js.map +1 -0
- package/dist/icons/generated/help-square.d.ts +1 -0
- package/dist/icons/generated/help-square.js +10 -0
- package/dist/icons/generated/help-square.js.map +1 -0
- package/dist/icons/generated/home-02.d.ts +1 -0
- package/dist/icons/generated/home-02.js +10 -0
- package/dist/icons/generated/home-02.js.map +1 -0
- package/dist/icons/generated/hourglass-01.d.ts +1 -0
- package/dist/icons/generated/hourglass-01.js +10 -0
- package/dist/icons/generated/hourglass-01.js.map +1 -0
- package/dist/icons/generated/image-01.d.ts +1 -0
- package/dist/icons/generated/image-01.js +10 -0
- package/dist/icons/generated/image-01.js.map +1 -0
- package/dist/icons/generated/image-03.d.ts +1 -0
- package/dist/icons/generated/image-03.js +10 -0
- package/dist/icons/generated/image-03.js.map +1 -0
- package/dist/icons/generated/image-check.d.ts +1 -0
- package/dist/icons/generated/image-check.js +10 -0
- package/dist/icons/generated/image-check.js.map +1 -0
- package/dist/icons/generated/image-plus.d.ts +1 -0
- package/dist/icons/generated/image-plus.js +10 -0
- package/dist/icons/generated/image-plus.js.map +1 -0
- package/dist/icons/generated/inbox-01.d.ts +1 -0
- package/dist/icons/generated/inbox-01.js +10 -0
- package/dist/icons/generated/inbox-01.js.map +1 -0
- package/dist/icons/generated/info-circle.d.ts +1 -0
- package/dist/icons/generated/info-circle.js +10 -0
- package/dist/icons/generated/info-circle.js.map +1 -0
- package/dist/icons/generated/info-square.d.ts +1 -0
- package/dist/icons/generated/info-square.js +10 -0
- package/dist/icons/generated/info-square.js.map +1 -0
- package/dist/icons/generated/key-02.d.ts +1 -0
- package/dist/icons/generated/key-02.js +10 -0
- package/dist/icons/generated/key-02.js.map +1 -0
- package/dist/icons/generated/link-01.d.ts +1 -0
- package/dist/icons/generated/link-01.js +10 -0
- package/dist/icons/generated/link-01.js.map +1 -0
- package/dist/icons/generated/link-03.d.ts +1 -0
- package/dist/icons/generated/link-03.js +10 -0
- package/dist/icons/generated/link-03.js.map +1 -0
- package/dist/icons/generated/link-broken-01.d.ts +1 -0
- package/dist/icons/generated/link-broken-01.js +10 -0
- package/dist/icons/generated/link-broken-01.js.map +1 -0
- package/dist/icons/generated/link-external-01.d.ts +1 -0
- package/dist/icons/generated/link-external-01.js +10 -0
- package/dist/icons/generated/link-external-01.js.map +1 -0
- package/dist/icons/generated/loading-01.d.ts +1 -0
- package/dist/icons/generated/loading-01.js +10 -0
- package/dist/icons/generated/loading-01.js.map +1 -0
- package/dist/icons/generated/lock-01.d.ts +1 -0
- package/dist/icons/generated/lock-01.js +10 -0
- package/dist/icons/generated/lock-01.js.map +1 -0
- package/dist/icons/generated/lock-03.d.ts +1 -0
- package/dist/icons/generated/lock-03.js +10 -0
- package/dist/icons/generated/lock-03.js.map +1 -0
- package/dist/icons/generated/lock-unlocked-01.d.ts +1 -0
- package/dist/icons/generated/lock-unlocked-01.js +10 -0
- package/dist/icons/generated/lock-unlocked-01.js.map +1 -0
- package/dist/icons/generated/log-in-01.d.ts +1 -0
- package/dist/icons/generated/log-in-01.js +10 -0
- package/dist/icons/generated/log-in-01.js.map +1 -0
- package/dist/icons/generated/log-out-01.d.ts +1 -0
- package/dist/icons/generated/log-out-01.js +10 -0
- package/dist/icons/generated/log-out-01.js.map +1 -0
- package/dist/icons/generated/mail-01.d.ts +1 -0
- package/dist/icons/generated/mail-01.js +10 -0
- package/dist/icons/generated/mail-01.js.map +1 -0
- package/dist/icons/generated/mail-02.d.ts +1 -0
- package/dist/icons/generated/mail-02.js +10 -0
- package/dist/icons/generated/mail-02.js.map +1 -0
- package/dist/icons/generated/male.d.ts +1 -0
- package/dist/icons/generated/male.js +10 -0
- package/dist/icons/generated/male.js.map +1 -0
- package/dist/icons/generated/marker-pin-01.d.ts +1 -0
- package/dist/icons/generated/marker-pin-01.js +13 -0
- package/dist/icons/generated/marker-pin-01.js.map +1 -0
- package/dist/icons/generated/medical-circle.d.ts +1 -0
- package/dist/icons/generated/medical-circle.js +13 -0
- package/dist/icons/generated/medical-circle.js.map +1 -0
- package/dist/icons/generated/medical-cross.d.ts +1 -0
- package/dist/icons/generated/medical-cross.js +10 -0
- package/dist/icons/generated/medical-cross.js.map +1 -0
- package/dist/icons/generated/medical-square.d.ts +1 -0
- package/dist/icons/generated/medical-square.js +13 -0
- package/dist/icons/generated/medical-square.js.map +1 -0
- package/dist/icons/generated/menu-01.d.ts +1 -0
- package/dist/icons/generated/menu-01.js +10 -0
- package/dist/icons/generated/menu-01.js.map +1 -0
- package/dist/icons/generated/message-alert-square.d.ts +1 -0
- package/dist/icons/generated/message-alert-square.js +10 -0
- package/dist/icons/generated/message-alert-square.js.map +1 -0
- package/dist/icons/generated/message-check-square.d.ts +1 -0
- package/dist/icons/generated/message-check-square.js +10 -0
- package/dist/icons/generated/message-check-square.js.map +1 -0
- package/dist/icons/generated/message-notification-square.d.ts +1 -0
- package/dist/icons/generated/message-notification-square.js +10 -0
- package/dist/icons/generated/message-notification-square.js.map +1 -0
- package/dist/icons/generated/message-plus-square.d.ts +1 -0
- package/dist/icons/generated/message-plus-square.js +10 -0
- package/dist/icons/generated/message-plus-square.js.map +1 -0
- package/dist/icons/generated/message-question-square.d.ts +1 -0
- package/dist/icons/generated/message-question-square.js +10 -0
- package/dist/icons/generated/message-question-square.js.map +1 -0
- package/dist/icons/generated/message-smile-square.d.ts +1 -0
- package/dist/icons/generated/message-smile-square.js +10 -0
- package/dist/icons/generated/message-smile-square.js.map +1 -0
- package/dist/icons/generated/message-x-square.d.ts +1 -0
- package/dist/icons/generated/message-x-square.js +10 -0
- package/dist/icons/generated/message-x-square.js.map +1 -0
- package/dist/icons/generated/message.d.ts +1 -0
- package/dist/icons/generated/message.js +10 -0
- package/dist/icons/generated/message.js.map +1 -0
- package/dist/icons/generated/microphone-01.d.ts +1 -0
- package/dist/icons/generated/microphone-01.js +10 -0
- package/dist/icons/generated/microphone-01.js.map +1 -0
- package/dist/icons/generated/microphone-off-01.d.ts +1 -0
- package/dist/icons/generated/microphone-off-01.js +10 -0
- package/dist/icons/generated/microphone-off-01.js.map +1 -0
- package/dist/icons/generated/microscope.d.ts +1 -0
- package/dist/icons/generated/microscope.js +10 -0
- package/dist/icons/generated/microscope.js.map +1 -0
- package/dist/icons/generated/minus.d.ts +1 -0
- package/dist/icons/generated/minus.js +7 -0
- package/dist/icons/generated/minus.js.map +1 -0
- package/dist/icons/generated/paperclip.d.ts +1 -0
- package/dist/icons/generated/paperclip.js +10 -0
- package/dist/icons/generated/paperclip.js.map +1 -0
- package/dist/icons/generated/passport.d.ts +1 -0
- package/dist/icons/generated/passport.js +10 -0
- package/dist/icons/generated/passport.js.map +1 -0
- package/dist/icons/generated/pause-circle.d.ts +1 -0
- package/dist/icons/generated/pause-circle.js +10 -0
- package/dist/icons/generated/pause-circle.js.map +1 -0
- package/dist/icons/generated/phone-02.d.ts +1 -0
- package/dist/icons/generated/phone-02.js +10 -0
- package/dist/icons/generated/phone-02.js.map +1 -0
- package/dist/icons/generated/phone.d.ts +1 -0
- package/dist/icons/generated/phone.js +10 -0
- package/dist/icons/generated/phone.js.map +1 -0
- package/dist/icons/generated/pill.d.ts +1 -0
- package/dist/icons/generated/pill.js +10 -0
- package/dist/icons/generated/pill.js.map +1 -0
- package/dist/icons/generated/pin-01.d.ts +1 -0
- package/dist/icons/generated/pin-01.js +10 -0
- package/dist/icons/generated/pin-01.js.map +1 -0
- package/dist/icons/generated/pin-02.d.ts +1 -0
- package/dist/icons/generated/pin-02.js +10 -0
- package/dist/icons/generated/pin-02.js.map +1 -0
- package/dist/icons/generated/play.d.ts +1 -0
- package/dist/icons/generated/play.js +10 -0
- package/dist/icons/generated/play.js.map +1 -0
- package/dist/icons/generated/plus-circle.d.ts +1 -0
- package/dist/icons/generated/plus-circle.js +10 -0
- package/dist/icons/generated/plus-circle.js.map +1 -0
- package/dist/icons/generated/plus-square.d.ts +1 -0
- package/dist/icons/generated/plus-square.js +10 -0
- package/dist/icons/generated/plus-square.js.map +1 -0
- package/dist/icons/generated/plus.d.ts +1 -0
- package/dist/icons/generated/plus.js +7 -0
- package/dist/icons/generated/plus.js.map +1 -0
- package/dist/icons/generated/prescription.d.ts +1 -0
- package/dist/icons/generated/prescription.js +10 -0
- package/dist/icons/generated/prescription.js.map +1 -0
- package/dist/icons/generated/receipt-check.d.ts +1 -0
- package/dist/icons/generated/receipt-check.js +10 -0
- package/dist/icons/generated/receipt-check.js.map +1 -0
- package/dist/icons/generated/receipt.d.ts +1 -0
- package/dist/icons/generated/receipt.js +10 -0
- package/dist/icons/generated/receipt.js.map +1 -0
- package/dist/icons/generated/refresh-ccw-01.d.ts +1 -0
- package/dist/icons/generated/refresh-ccw-01.js +10 -0
- package/dist/icons/generated/refresh-ccw-01.js.map +1 -0
- package/dist/icons/generated/refresh-ccw-02.d.ts +1 -0
- package/dist/icons/generated/refresh-ccw-02.js +10 -0
- package/dist/icons/generated/refresh-ccw-02.js.map +1 -0
- package/dist/icons/generated/reverse-left.d.ts +1 -0
- package/dist/icons/generated/reverse-left.js +10 -0
- package/dist/icons/generated/reverse-left.js.map +1 -0
- package/dist/icons/generated/scan.d.ts +1 -0
- package/dist/icons/generated/scan.js +10 -0
- package/dist/icons/generated/scan.js.map +1 -0
- package/dist/icons/generated/search-lg.d.ts +1 -0
- package/dist/icons/generated/search-lg.js +10 -0
- package/dist/icons/generated/search-lg.js.map +1 -0
- package/dist/icons/generated/search-md.d.ts +1 -0
- package/dist/icons/generated/search-md.js +10 -0
- package/dist/icons/generated/search-md.js.map +1 -0
- package/dist/icons/generated/search-sm.d.ts +1 -0
- package/dist/icons/generated/search-sm.js +10 -0
- package/dist/icons/generated/search-sm.js.map +1 -0
- package/dist/icons/generated/send-01.d.ts +1 -0
- package/dist/icons/generated/send-01.js +10 -0
- package/dist/icons/generated/send-01.js.map +1 -0
- package/dist/icons/generated/settings-02.d.ts +1 -0
- package/dist/icons/generated/settings-02.js +13 -0
- package/dist/icons/generated/settings-02.js.map +1 -0
- package/dist/icons/generated/settings-04.d.ts +1 -0
- package/dist/icons/generated/settings-04.js +10 -0
- package/dist/icons/generated/settings-04.js.map +1 -0
- package/dist/icons/generated/share-01.d.ts +1 -0
- package/dist/icons/generated/share-01.js +10 -0
- package/dist/icons/generated/share-01.js.map +1 -0
- package/dist/icons/generated/share-03.d.ts +1 -0
- package/dist/icons/generated/share-03.js +10 -0
- package/dist/icons/generated/share-03.js.map +1 -0
- package/dist/icons/generated/share-06.d.ts +1 -0
- package/dist/icons/generated/share-06.js +10 -0
- package/dist/icons/generated/share-06.js.map +1 -0
- package/dist/icons/generated/share-07.d.ts +1 -0
- package/dist/icons/generated/share-07.js +10 -0
- package/dist/icons/generated/share-07.js.map +1 -0
- package/dist/icons/generated/shield-tick.d.ts +1 -0
- package/dist/icons/generated/shield-tick.js +10 -0
- package/dist/icons/generated/shield-tick.js.map +1 -0
- package/dist/icons/generated/slash-circle-01.d.ts +1 -0
- package/dist/icons/generated/slash-circle-01.js +10 -0
- package/dist/icons/generated/slash-circle-01.js.map +1 -0
- package/dist/icons/generated/star-01.d.ts +1 -0
- package/dist/icons/generated/star-01.js +10 -0
- package/dist/icons/generated/star-01.js.map +1 -0
- package/dist/icons/generated/star-04.d.ts +1 -0
- package/dist/icons/generated/star-04.js +10 -0
- package/dist/icons/generated/star-04.js.map +1 -0
- package/dist/icons/generated/star-06.d.ts +1 -0
- package/dist/icons/generated/star-06.js +10 -0
- package/dist/icons/generated/star-06.js.map +1 -0
- package/dist/icons/generated/stethoscope-doctor.d.ts +1 -0
- package/dist/icons/generated/stethoscope-doctor.js +14 -0
- package/dist/icons/generated/stethoscope-doctor.js.map +1 -0
- package/dist/icons/generated/tag-01.d.ts +1 -0
- package/dist/icons/generated/tag-01.js +10 -0
- package/dist/icons/generated/tag-01.js.map +1 -0
- package/dist/icons/generated/thumbs-down.d.ts +1 -0
- package/dist/icons/generated/thumbs-down.js +10 -0
- package/dist/icons/generated/thumbs-down.js.map +1 -0
- package/dist/icons/generated/thumbs-up.d.ts +1 -0
- package/dist/icons/generated/thumbs-up.js +10 -0
- package/dist/icons/generated/thumbs-up.js.map +1 -0
- package/dist/icons/generated/trash-01.d.ts +1 -0
- package/dist/icons/generated/trash-01.js +10 -0
- package/dist/icons/generated/trash-01.js.map +1 -0
- package/dist/icons/generated/trash-02.d.ts +1 -0
- package/dist/icons/generated/trash-02.js +10 -0
- package/dist/icons/generated/trash-02.js.map +1 -0
- package/dist/icons/generated/upload-01.d.ts +1 -0
- package/dist/icons/generated/upload-01.js +10 -0
- package/dist/icons/generated/upload-01.js.map +1 -0
- package/dist/icons/generated/user-01.d.ts +1 -0
- package/dist/icons/generated/user-01.js +10 -0
- package/dist/icons/generated/user-01.js.map +1 -0
- package/dist/icons/generated/user-03.d.ts +1 -0
- package/dist/icons/generated/user-03.js +10 -0
- package/dist/icons/generated/user-03.js.map +1 -0
- package/dist/icons/generated/user-check-01.d.ts +1 -0
- package/dist/icons/generated/user-check-01.js +10 -0
- package/dist/icons/generated/user-check-01.js.map +1 -0
- package/dist/icons/generated/user-check-02.d.ts +1 -0
- package/dist/icons/generated/user-check-02.js +10 -0
- package/dist/icons/generated/user-check-02.js.map +1 -0
- package/dist/icons/generated/user-edit.d.ts +1 -0
- package/dist/icons/generated/user-edit.js +10 -0
- package/dist/icons/generated/user-edit.js.map +1 -0
- package/dist/icons/generated/user-plus-01.d.ts +1 -0
- package/dist/icons/generated/user-plus-01.js +10 -0
- package/dist/icons/generated/user-plus-01.js.map +1 -0
- package/dist/icons/generated/user-square.d.ts +1 -0
- package/dist/icons/generated/user-square.js +10 -0
- package/dist/icons/generated/user-square.js.map +1 -0
- package/dist/icons/generated/users-02.d.ts +1 -0
- package/dist/icons/generated/users-02.js +10 -0
- package/dist/icons/generated/users-02.js.map +1 -0
- package/dist/icons/generated/video-recorder-off.d.ts +1 -0
- package/dist/icons/generated/video-recorder-off.js +10 -0
- package/dist/icons/generated/video-recorder-off.js.map +1 -0
- package/dist/icons/generated/video-recorder.d.ts +1 -0
- package/dist/icons/generated/video-recorder.js +13 -0
- package/dist/icons/generated/video-recorder.js.map +1 -0
- package/dist/icons/generated/virus.d.ts +1 -0
- package/dist/icons/generated/virus.js +10 -0
- package/dist/icons/generated/virus.js.map +1 -0
- package/dist/icons/generated/weight.d.ts +1 -0
- package/dist/icons/generated/weight.js +15 -0
- package/dist/icons/generated/weight.js.map +1 -0
- package/dist/icons/generated/x-close.d.ts +1 -0
- package/dist/icons/generated/x-close.js +10 -0
- package/dist/icons/generated/x-close.js.map +1 -0
- package/dist/icons/generated/x.d.ts +1 -0
- package/dist/icons/generated/x.js +7 -0
- package/dist/icons/generated/x.js.map +1 -0
- package/dist/icons/generated/zap.d.ts +1 -0
- package/dist/icons/generated/zap.js +10 -0
- package/dist/icons/generated/zap.js.map +1 -0
- package/dist/icons/index.d.ts +182 -0
- package/dist/icons/index.js +542 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.js +263 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +2 -0
- package/dist/lib/cn.js +51 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/provider/index.d.ts +2 -0
- package/dist/provider/labels.d.ts +97 -0
- package/dist/provider/labels.js +99 -0
- package/dist/provider/labels.js.map +1 -0
- package/dist/provider/medicore-provider.d.ts +10 -0
- package/dist/provider/medicore-provider.js +19 -0
- package/dist/provider/medicore-provider.js.map +1 -0
- package/dist/styles/primitives.css +59 -0
- package/dist/styles/theme.css +15 -0
- package/dist/styles/tokens.css +253 -0
- package/dist/styles/typography.css +115 -0
- package/dist/styles/utilities.css +37 -0
- package/package.json +80 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Tabs as BaseTabs } from "@base-ui/react/tabs";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
export interface TabsProps extends Omit<BaseTabs.Root.Props, "className"> {
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Switches WHAT you are looking at inside the same page: Próximas / Pasadas in
|
|
8
|
+
* Mis citas, Datos personales / Historial / Facturación in the profile.
|
|
9
|
+
*
|
|
10
|
+
* - **Tabs are not a SegmentedControl.** A tab changes the content (another
|
|
11
|
+
* section); a segmented control filters the same list (Todos / No leídos). If the
|
|
12
|
+
* list keeps its structure and only its items change, use `SegmentedControl`.
|
|
13
|
+
* - If every tab is its own URL they are links with `aria-current="page"`, not
|
|
14
|
+
* tabs: don't use this component for route navigation.
|
|
15
|
+
* - `role="tablist"` / `role="tab"` with `aria-selected` and ←/→ between tabs come
|
|
16
|
+
* from Base UI. Put the panels right after the list with `TabsPanel`.
|
|
17
|
+
*
|
|
18
|
+
* ```tsx
|
|
19
|
+
* <Tabs defaultValue="upcoming">
|
|
20
|
+
* <TabsList aria-label="Mis citas">
|
|
21
|
+
* <TabsTab value="upcoming" count={3}>Próximas</TabsTab>
|
|
22
|
+
* <TabsTab value="past">Pasadas</TabsTab>
|
|
23
|
+
* </TabsList>
|
|
24
|
+
* <TabsPanel value="upcoming">…</TabsPanel>
|
|
25
|
+
* <TabsPanel value="past">…</TabsPanel>
|
|
26
|
+
* </Tabs>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function Tabs({ className, ...props }: TabsProps): React.JSX.Element;
|
|
30
|
+
export interface TabsListProps extends Omit<BaseTabs.List.Props, "className"> {
|
|
31
|
+
className?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The row of tabs. It sits on a full-width 1px `border-subtle` line that the active
|
|
35
|
+
* tab's bar covers. When the tabs don't fit (mobile) the row scrolls sideways.
|
|
36
|
+
*/
|
|
37
|
+
export declare function TabsList({ className, ...props }: TabsListProps): React.JSX.Element;
|
|
38
|
+
export interface TabsTabProps extends Omit<BaseTabs.Tab.Props, "className"> {
|
|
39
|
+
/**
|
|
40
|
+
* Counter next to the label ("3"): unread messages, pending appointments. Only for
|
|
41
|
+
* something that updates live; a fixed number is noise.
|
|
42
|
+
*/
|
|
43
|
+
count?: ReactNode;
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* One tab. 44px tall (`control-lg`): a tab row lives at the top of the screen, the
|
|
48
|
+
* hardest place to reach with a thumb.
|
|
49
|
+
*
|
|
50
|
+
* The active tab is not told apart by colour alone: 2px bar underneath, Medium label
|
|
51
|
+
* and brand text (9.67:1; default 5.07:1).
|
|
52
|
+
*/
|
|
53
|
+
export declare function TabsTab({ count, className, children, ...props }: TabsTabProps): React.JSX.Element;
|
|
54
|
+
export interface TabsPanelProps extends Omit<BaseTabs.Panel.Props, "className"> {
|
|
55
|
+
className?: string;
|
|
56
|
+
}
|
|
57
|
+
/** The content of one tab. It is only mounted while its tab is active (`keepMounted` to keep it). */
|
|
58
|
+
export declare function TabsPanel({ className, ...props }: TabsPanelProps): React.JSX.Element;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
|
|
3
|
+
import { cn } from "../../lib/cn.js";
|
|
4
|
+
import { Badge } from "../badge/badge.js";
|
|
5
|
+
function Tabs({ className, ...props }) {
|
|
6
|
+
return /* @__PURE__ */ jsx(
|
|
7
|
+
Tabs$1.Root,
|
|
8
|
+
{
|
|
9
|
+
"data-slot": "tabs",
|
|
10
|
+
className: cn("flex flex-col gap-4", className),
|
|
11
|
+
...props
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
function TabsList({
|
|
16
|
+
className,
|
|
17
|
+
...props
|
|
18
|
+
}) {
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
Tabs$1.List,
|
|
21
|
+
{
|
|
22
|
+
"data-slot": "tabs-list",
|
|
23
|
+
className: cn(
|
|
24
|
+
"flex overflow-x-auto [scrollbar-width:none]",
|
|
25
|
+
// The baseline is an inset shadow and not a border so it stays full width
|
|
26
|
+
// while the tabs scroll, and the active bar can paint over it.
|
|
27
|
+
"shadow-[inset_0_-1px_0_0_var(--color-border-subtle)]",
|
|
28
|
+
className
|
|
29
|
+
),
|
|
30
|
+
...props
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
function TabsTab({
|
|
35
|
+
count,
|
|
36
|
+
className,
|
|
37
|
+
children,
|
|
38
|
+
...props
|
|
39
|
+
}) {
|
|
40
|
+
return /* @__PURE__ */ jsxs(
|
|
41
|
+
Tabs$1.Tab,
|
|
42
|
+
{
|
|
43
|
+
"data-slot": "tabs-tab",
|
|
44
|
+
className: cn(
|
|
45
|
+
"relative inline-flex h-control-lg shrink-0 cursor-pointer select-none items-center justify-center gap-2 whitespace-nowrap rounded-md px-4",
|
|
46
|
+
"text-label-default text-text-secondary transition-colors",
|
|
47
|
+
"after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:bg-transparent",
|
|
48
|
+
"not-data-disabled:not-data-active:hover:text-text-primary",
|
|
49
|
+
"data-active:text-label-strong data-active:text-text-brand data-active:after:bg-text-brand",
|
|
50
|
+
"data-disabled:cursor-not-allowed data-disabled:text-text-disabled",
|
|
51
|
+
// Inside the tab, not around it: in navigation there is no room outside.
|
|
52
|
+
"focus-ring focus-visible:-outline-offset-2",
|
|
53
|
+
className
|
|
54
|
+
),
|
|
55
|
+
...props,
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsx(
|
|
58
|
+
"span",
|
|
59
|
+
{
|
|
60
|
+
"data-label": typeof children === "string" ? children : void 0,
|
|
61
|
+
className: "flex flex-col after:invisible after:h-0 after:overflow-hidden after:text-label-strong after:content-[attr(data-label)]",
|
|
62
|
+
children
|
|
63
|
+
}
|
|
64
|
+
),
|
|
65
|
+
count !== void 0 && count !== null && /* @__PURE__ */ jsx(Badge, { variant: "brand", children: count })
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
function TabsPanel({
|
|
71
|
+
className,
|
|
72
|
+
...props
|
|
73
|
+
}) {
|
|
74
|
+
return /* @__PURE__ */ jsx(
|
|
75
|
+
Tabs$1.Panel,
|
|
76
|
+
{
|
|
77
|
+
"data-slot": "tabs-panel",
|
|
78
|
+
className: cn("focus-ring", className),
|
|
79
|
+
...props
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
export {
|
|
84
|
+
Tabs,
|
|
85
|
+
TabsList,
|
|
86
|
+
TabsPanel,
|
|
87
|
+
TabsTab
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../src/components/tabs/tabs.tsx"],"sourcesContent":["import { Tabs as BaseTabs } from \"@base-ui/react/tabs\";\nimport type { ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { Badge } from \"../badge\";\n\nexport interface TabsProps extends Omit<BaseTabs.Root.Props, \"className\"> {\n className?: string;\n}\n\n/**\n * Switches WHAT you are looking at inside the same page: Próximas / Pasadas in\n * Mis citas, Datos personales / Historial / Facturación in the profile.\n *\n * - **Tabs are not a SegmentedControl.** A tab changes the content (another\n * section); a segmented control filters the same list (Todos / No leídos). If the\n * list keeps its structure and only its items change, use `SegmentedControl`.\n * - If every tab is its own URL they are links with `aria-current=\"page\"`, not\n * tabs: don't use this component for route navigation.\n * - `role=\"tablist\"` / `role=\"tab\"` with `aria-selected` and ←/→ between tabs come\n * from Base UI. Put the panels right after the list with `TabsPanel`.\n *\n * ```tsx\n * <Tabs defaultValue=\"upcoming\">\n * <TabsList aria-label=\"Mis citas\">\n * <TabsTab value=\"upcoming\" count={3}>Próximas</TabsTab>\n * <TabsTab value=\"past\">Pasadas</TabsTab>\n * </TabsList>\n * <TabsPanel value=\"upcoming\">…</TabsPanel>\n * <TabsPanel value=\"past\">…</TabsPanel>\n * </Tabs>\n * ```\n */\nexport function Tabs({ className, ...props }: TabsProps): React.JSX.Element {\n return (\n <BaseTabs.Root\n data-slot=\"tabs\"\n className={cn(\"flex flex-col gap-4\", className)}\n {...props}\n />\n );\n}\n\nexport interface TabsListProps extends Omit<BaseTabs.List.Props, \"className\"> {\n className?: string;\n}\n\n/**\n * The row of tabs. It sits on a full-width 1px `border-subtle` line that the active\n * tab's bar covers. When the tabs don't fit (mobile) the row scrolls sideways.\n */\nexport function TabsList({\n className,\n ...props\n}: TabsListProps): React.JSX.Element {\n return (\n <BaseTabs.List\n data-slot=\"tabs-list\"\n className={cn(\n \"flex overflow-x-auto [scrollbar-width:none]\",\n // The baseline is an inset shadow and not a border so it stays full width\n // while the tabs scroll, and the active bar can paint over it.\n \"shadow-[inset_0_-1px_0_0_var(--color-border-subtle)]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface TabsTabProps extends Omit<BaseTabs.Tab.Props, \"className\"> {\n /**\n * Counter next to the label (\"3\"): unread messages, pending appointments. Only for\n * something that updates live; a fixed number is noise.\n */\n count?: ReactNode;\n className?: string;\n}\n\n/**\n * One tab. 44px tall (`control-lg`): a tab row lives at the top of the screen, the\n * hardest place to reach with a thumb.\n *\n * The active tab is not told apart by colour alone: 2px bar underneath, Medium label\n * and brand text (9.67:1; default 5.07:1).\n */\nexport function TabsTab({\n count,\n className,\n children,\n ...props\n}: TabsTabProps): React.JSX.Element {\n return (\n <BaseTabs.Tab\n data-slot=\"tabs-tab\"\n className={cn(\n \"relative inline-flex h-control-lg shrink-0 cursor-pointer select-none items-center justify-center gap-2 whitespace-nowrap rounded-md px-4\",\n \"text-label-default text-text-secondary transition-colors\",\n \"after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:bg-transparent\",\n \"not-data-disabled:not-data-active:hover:text-text-primary\",\n \"data-active:text-label-strong data-active:text-text-brand data-active:after:bg-text-brand\",\n \"data-disabled:cursor-not-allowed data-disabled:text-text-disabled\",\n // Inside the tab, not around it: in navigation there is no room outside.\n \"focus-ring focus-visible:-outline-offset-2\",\n className,\n )}\n {...props}\n >\n <span\n // An invisible Medium copy of the label reserves the active width, so the\n // row doesn't jump when the active tab changes.\n data-label={typeof children === \"string\" ? children : undefined}\n className=\"flex flex-col after:invisible after:h-0 after:overflow-hidden after:text-label-strong after:content-[attr(data-label)]\"\n >\n {children}\n </span>\n {count !== undefined && count !== null && (\n <Badge variant=\"brand\">{count}</Badge>\n )}\n </BaseTabs.Tab>\n );\n}\n\nexport interface TabsPanelProps\n extends Omit<BaseTabs.Panel.Props, \"className\"> {\n className?: string;\n}\n\n/** The content of one tab. It is only mounted while its tab is active (`keepMounted` to keep it). */\nexport function TabsPanel({\n className,\n ...props\n}: TabsPanelProps): React.JSX.Element {\n return (\n <BaseTabs.Panel\n data-slot=\"tabs-panel\"\n className={cn(\"focus-ring\", className)}\n {...props}\n />\n );\n}\n"],"names":["BaseTabs"],"mappings":";;;;AAiCO,SAAS,KAAK,EAAE,WAAW,GAAG,SAAuC;AAC1E,SACE;AAAA,IAACA,OAAS;AAAA,IAAT;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,uBAAuB,SAAS;AAAA,MAC7C,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAUO,SAAS,SAAS;AAAA,EACvB;AAAA,EACA,GAAG;AACL,GAAqC;AACnC,SACE;AAAA,IAACA,OAAS;AAAA,IAAT;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAkBO,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAoC;AAClC,SACE;AAAA,IAACA,OAAS;AAAA,IAAT;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAGC,cAAY,OAAO,aAAa,WAAW,WAAW;AAAA,YACtD,WAAU;AAAA,YAET;AAAA,UAAA;AAAA,QAAA;AAAA,QAEF,UAAU,UAAa,UAAU,4BAC/B,OAAA,EAAM,SAAQ,SAAS,UAAA,MAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAItC;AAQO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA,GAAG;AACL,GAAsC;AACpC,SACE;AAAA,IAACA,OAAS;AAAA,IAAT;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,cAAc,SAAS;AAAA,MACpC,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Textarea, type TextareaProps } from "./textarea";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ComponentProps, type Ref } from "react";
|
|
2
|
+
export interface TextareaProps extends Omit<ComponentProps<"textarea">, "className" | "ref"> {
|
|
3
|
+
ref?: Ref<HTMLTextAreaElement>;
|
|
4
|
+
/**
|
|
5
|
+
* Red 2px border and `aria-invalid`. Never on its own: the message goes under the
|
|
6
|
+
* field (use `Field` with `error`, which sets this for you).
|
|
7
|
+
*/
|
|
8
|
+
invalid?: boolean;
|
|
9
|
+
/** Called with the new text on every change. */
|
|
10
|
+
onValueChange?: (value: string) => void;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Multi-line text field. Same states, radius, padding and borders as Input and
|
|
15
|
+
* Select; there is no size axis (if only one line fits, use Input).
|
|
16
|
+
*
|
|
17
|
+
* - The text starts at the top, never vertically centred.
|
|
18
|
+
* - 96px minimum (about three and a half lines). It grows with the content up to
|
|
19
|
+
* 240px and then scrolls; there is no drag handle. Change the limits with
|
|
20
|
+
* `className="min-h-40 max-h-96"`.
|
|
21
|
+
* - Inside `<Field maxLength={240}>` it takes the limit and feeds the counter.
|
|
22
|
+
* - The placeholder should lower the barrier ("Describe los síntomas con tus
|
|
23
|
+
* palabras…"), not say "Escribe aquí".
|
|
24
|
+
*/
|
|
25
|
+
export declare function Textarea({ invalid, className, id, name, value, defaultValue, disabled, maxLength, onChange, onValueChange, "aria-describedby": ariaDescribedBy, ref, ...props }: TextareaProps): React.JSX.Element;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Field } from "@base-ui/react/field";
|
|
3
|
+
import { useRef, useCallback, useLayoutEffect } from "react";
|
|
4
|
+
import { cn } from "../../lib/cn.js";
|
|
5
|
+
import { useFieldContext } from "../field/field-context.js";
|
|
6
|
+
import { selfControlStates, controlPlaceholder, controlBox } from "../input/control-styles.js";
|
|
7
|
+
function Textarea({
|
|
8
|
+
invalid = false,
|
|
9
|
+
className,
|
|
10
|
+
id,
|
|
11
|
+
name,
|
|
12
|
+
value,
|
|
13
|
+
defaultValue,
|
|
14
|
+
disabled,
|
|
15
|
+
maxLength,
|
|
16
|
+
onChange,
|
|
17
|
+
onValueChange,
|
|
18
|
+
"aria-describedby": ariaDescribedBy,
|
|
19
|
+
ref,
|
|
20
|
+
...props
|
|
21
|
+
}) {
|
|
22
|
+
const field = useFieldContext();
|
|
23
|
+
const setLength = field?.setLength;
|
|
24
|
+
const textareaRef = useRef(null);
|
|
25
|
+
const setRefs = useCallback(
|
|
26
|
+
(node) => {
|
|
27
|
+
const textarea = node;
|
|
28
|
+
textareaRef.current = textarea;
|
|
29
|
+
if (typeof ref === "function") {
|
|
30
|
+
ref(textarea);
|
|
31
|
+
} else if (ref) {
|
|
32
|
+
ref.current = textarea;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
[ref]
|
|
36
|
+
);
|
|
37
|
+
useLayoutEffect(() => {
|
|
38
|
+
if (setLength && textareaRef.current) {
|
|
39
|
+
setLength(textareaRef.current.value.length);
|
|
40
|
+
}
|
|
41
|
+
}, [setLength, value]);
|
|
42
|
+
return /* @__PURE__ */ jsx(
|
|
43
|
+
Field.Control,
|
|
44
|
+
{
|
|
45
|
+
ref: setRefs,
|
|
46
|
+
"data-slot": "textarea",
|
|
47
|
+
id,
|
|
48
|
+
name,
|
|
49
|
+
value,
|
|
50
|
+
defaultValue,
|
|
51
|
+
disabled,
|
|
52
|
+
onValueChange,
|
|
53
|
+
"aria-describedby": ariaDescribedBy,
|
|
54
|
+
"aria-invalid": invalid && !disabled ? true : void 0,
|
|
55
|
+
className: cn(
|
|
56
|
+
controlBox,
|
|
57
|
+
"block min-h-24 max-h-60 resize-none overflow-y-auto p-3 text-body-small field-sizing-content",
|
|
58
|
+
controlPlaceholder,
|
|
59
|
+
selfControlStates,
|
|
60
|
+
className
|
|
61
|
+
),
|
|
62
|
+
render: /* @__PURE__ */ jsx(
|
|
63
|
+
"textarea",
|
|
64
|
+
{
|
|
65
|
+
maxLength: maxLength ?? field?.maxLength,
|
|
66
|
+
onChange: (event) => {
|
|
67
|
+
setLength?.(event.currentTarget.value.length);
|
|
68
|
+
onChange?.(event);
|
|
69
|
+
},
|
|
70
|
+
...props
|
|
71
|
+
}
|
|
72
|
+
)
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
export {
|
|
77
|
+
Textarea
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=textarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.js","sources":["../../../src/components/textarea/textarea.tsx"],"sourcesContent":["import { Field as BaseField } from \"@base-ui/react/field\";\nimport {\n type ComponentProps,\n type Ref,\n useCallback,\n useLayoutEffect,\n useRef,\n} from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { useFieldContext } from \"../field/field-context\";\nimport {\n controlBox,\n controlPlaceholder,\n selfControlStates,\n} from \"../input/control-styles\";\n\nexport interface TextareaProps\n extends Omit<ComponentProps<\"textarea\">, \"className\" | \"ref\"> {\n ref?: Ref<HTMLTextAreaElement>;\n /**\n * Red 2px border and `aria-invalid`. Never on its own: the message goes under the\n * field (use `Field` with `error`, which sets this for you).\n */\n invalid?: boolean;\n /** Called with the new text on every change. */\n onValueChange?: (value: string) => void;\n className?: string;\n}\n\n/**\n * Multi-line text field. Same states, radius, padding and borders as Input and\n * Select; there is no size axis (if only one line fits, use Input).\n *\n * - The text starts at the top, never vertically centred.\n * - 96px minimum (about three and a half lines). It grows with the content up to\n * 240px and then scrolls; there is no drag handle. Change the limits with\n * `className=\"min-h-40 max-h-96\"`.\n * - Inside `<Field maxLength={240}>` it takes the limit and feeds the counter.\n * - The placeholder should lower the barrier (\"Describe los síntomas con tus\n * palabras…\"), not say \"Escribe aquí\".\n */\nexport function Textarea({\n invalid = false,\n className,\n id,\n name,\n value,\n defaultValue,\n disabled,\n maxLength,\n onChange,\n onValueChange,\n \"aria-describedby\": ariaDescribedBy,\n ref,\n ...props\n}: TextareaProps): React.JSX.Element {\n const field = useFieldContext();\n const setLength = field?.setLength;\n const textareaRef = useRef<HTMLTextAreaElement | null>(null);\n\n const setRefs = useCallback(\n (node: HTMLElement | null) => {\n const textarea = node as HTMLTextAreaElement | null;\n textareaRef.current = textarea;\n if (typeof ref === \"function\") {\n ref(textarea);\n } else if (ref) {\n ref.current = textarea;\n }\n },\n [ref],\n );\n\n // Keeps Field's counter right for controlled values and for the default value.\n // biome-ignore lint/correctness/useExhaustiveDependencies: `value` is the trigger, the length is read from the DOM.\n useLayoutEffect(() => {\n if (setLength && textareaRef.current) {\n setLength(textareaRef.current.value.length);\n }\n }, [setLength, value]);\n\n return (\n <BaseField.Control\n ref={setRefs}\n data-slot=\"textarea\"\n id={id}\n name={name}\n value={value}\n defaultValue={defaultValue}\n disabled={disabled}\n onValueChange={onValueChange}\n aria-describedby={ariaDescribedBy}\n aria-invalid={invalid && !disabled ? true : undefined}\n className={cn(\n controlBox,\n \"block min-h-24 max-h-60 resize-none overflow-y-auto p-3 text-body-small field-sizing-content\",\n controlPlaceholder,\n selfControlStates,\n className,\n )}\n render={\n <textarea\n maxLength={maxLength ?? field?.maxLength}\n onChange={(event) => {\n setLength?.(event.currentTarget.value.length);\n onChange?.(event);\n }}\n {...props}\n />\n }\n />\n );\n}\n"],"names":["BaseField"],"mappings":";;;;;;AA0CO,SAAS,SAAS;AAAA,EACvB,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB;AAAA,EACA,GAAG;AACL,GAAqC;AACnC,QAAM,QAAQ,gBAAA;AACd,QAAM,YAAY,OAAO;AACzB,QAAM,cAAc,OAAmC,IAAI;AAE3D,QAAM,UAAU;AAAA,IACd,CAAC,SAA6B;AAC5B,YAAM,WAAW;AACjB,kBAAY,UAAU;AACtB,UAAI,OAAO,QAAQ,YAAY;AAC7B,YAAI,QAAQ;AAAA,MACd,WAAW,KAAK;AACd,YAAI,UAAU;AAAA,MAChB;AAAA,IACF;AAAA,IACA,CAAC,GAAG;AAAA,EAAA;AAKN,kBAAgB,MAAM;AACpB,QAAI,aAAa,YAAY,SAAS;AACpC,gBAAU,YAAY,QAAQ,MAAM,MAAM;AAAA,IAC5C;AAAA,EACF,GAAG,CAAC,WAAW,KAAK,CAAC;AAErB,SACE;AAAA,IAACA,MAAU;AAAA,IAAV;AAAA,MACC,KAAK;AAAA,MACL,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,oBAAkB;AAAA,MAClB,gBAAc,WAAW,CAAC,WAAW,OAAO;AAAA,MAC5C,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,QACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,aAAa,OAAO;AAAA,UAC/B,UAAU,CAAC,UAAU;AACnB,wBAAY,MAAM,cAAc,MAAM,MAAM;AAC5C,uBAAW,KAAK;AAAA,UAClB;AAAA,UACC,GAAG;AAAA,QAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TimeSlot, TimeSlotGroup, type TimeSlotGroupLayout, type TimeSlotGroupProps, type TimeSlotProps, } from "./time-slot";
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Radio as BaseRadio } from "@base-ui/react/radio";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import { type RadioGroupProps } from "../radio";
|
|
4
|
+
export type TimeSlotGroupLayout = "columns" | "rows";
|
|
5
|
+
export interface TimeSlotGroupProps<Value = string> extends RadioGroupProps<Value> {
|
|
6
|
+
/**
|
|
7
|
+
* `columns` (default): `AvailabilityColumn`s side by side, as in `CardProfessional`.
|
|
8
|
+
* The days that don't fit are hidden, never squeezed: a slot never goes below
|
|
9
|
+
* 64×44, the rest of the week is in "Ver agenda completa".
|
|
10
|
+
* `rows`: `AvailabilityRow`s one under another.
|
|
11
|
+
*/
|
|
12
|
+
layout?: TimeSlotGroupLayout;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The single choice of an agenda: every `TimeSlot` inside it (across all the days)
|
|
16
|
+
* is one radio group, so there is one tab stop and the arrow keys move from hour to
|
|
17
|
+
* hour. Name it with `aria-label` ("Horas disponibles con la Dra. Díaz").
|
|
18
|
+
*/
|
|
19
|
+
export declare function TimeSlotGroup<Value = string>({ layout, className, ...props }: TimeSlotGroupProps<Value>): React.JSX.Element;
|
|
20
|
+
interface TimeSlotRadioProps<Value> extends Omit<BaseRadio.Root.Props<Value>, "className" | "children"> {
|
|
21
|
+
/** The time, formatted in the patient's time zone: "11:00" (no "h", no space). */
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* Unavailable (taken): struck through and not selectable. A screen reader hears
|
|
25
|
+
* "11:00, no disponible" (`timeSlotUnavailable` label): the line isn't read.
|
|
26
|
+
*/
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
loading?: false;
|
|
29
|
+
className?: string;
|
|
30
|
+
}
|
|
31
|
+
interface TimeSlotLoadingProps {
|
|
32
|
+
/** Grey placeholder while the availability arrives, so the grid doesn't jump. */
|
|
33
|
+
loading: true;
|
|
34
|
+
value?: undefined;
|
|
35
|
+
children?: undefined;
|
|
36
|
+
className?: string;
|
|
37
|
+
}
|
|
38
|
+
export type TimeSlotProps<Value = string> = TimeSlotRadioProps<Value> | TimeSlotLoadingProps;
|
|
39
|
+
/**
|
|
40
|
+
* One hour of the agenda, 64×44 (`control-lg`: tapped with the thumb in a dense
|
|
41
|
+
* grid). A radio inside `TimeSlotGroup`.
|
|
42
|
+
*
|
|
43
|
+
* - Available: `brand-subtle` fill with brand text, no border.
|
|
44
|
+
* - Selected: brand fill, inverse text, 1.5px border and Medium label — three cues
|
|
45
|
+
* besides colour.
|
|
46
|
+
* - Unavailable (`disabled`): struck through, the cue that doesn't depend on colour.
|
|
47
|
+
* - `loading`: the grey slot while the availability loads (no radio, `aria-hidden`).
|
|
48
|
+
*/
|
|
49
|
+
export declare function TimeSlot<Value = string>(props: TimeSlotProps<Value>): React.JSX.Element;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Radio } from "@base-ui/react/radio";
|
|
3
|
+
import { cn } from "../../lib/cn.js";
|
|
4
|
+
import { useMediCoreLabels } from "../../provider/medicore-provider.js";
|
|
5
|
+
import { Skeleton } from "../skeleton/skeleton.js";
|
|
6
|
+
import { RadioGroup } from "../radio/radio.js";
|
|
7
|
+
const columnsClasses = [
|
|
8
|
+
"flex-row items-start justify-between gap-2",
|
|
9
|
+
"@max-[208px]:[&>*:nth-child(n+3)]:hidden",
|
|
10
|
+
"@max-[280px]:[&>*:nth-child(n+4)]:hidden",
|
|
11
|
+
"@max-[352px]:[&>*:nth-child(n+5)]:hidden",
|
|
12
|
+
"@max-[424px]:[&>*:nth-child(n+6)]:hidden",
|
|
13
|
+
"@max-[496px]:[&>*:nth-child(n+7)]:hidden"
|
|
14
|
+
];
|
|
15
|
+
function TimeSlotGroup({
|
|
16
|
+
layout = "columns",
|
|
17
|
+
className,
|
|
18
|
+
...props
|
|
19
|
+
}) {
|
|
20
|
+
const group = /* @__PURE__ */ jsx(
|
|
21
|
+
RadioGroup,
|
|
22
|
+
{
|
|
23
|
+
"data-slot": "time-slot-group",
|
|
24
|
+
className: cn(layout === "columns" ? columnsClasses : "gap-2", className),
|
|
25
|
+
...props
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
if (layout === "rows") {
|
|
29
|
+
return group;
|
|
30
|
+
}
|
|
31
|
+
return /* @__PURE__ */ jsx("div", { className: "@container w-full min-w-0", children: group });
|
|
32
|
+
}
|
|
33
|
+
function TimeSlot(props) {
|
|
34
|
+
const labels = useMediCoreLabels();
|
|
35
|
+
if (props.loading) {
|
|
36
|
+
return /* @__PURE__ */ jsx(
|
|
37
|
+
Skeleton,
|
|
38
|
+
{
|
|
39
|
+
"data-slot": "time-slot",
|
|
40
|
+
"data-loading": "",
|
|
41
|
+
shape: "block",
|
|
42
|
+
className: cn("h-control-lg w-16 shrink-0 rounded-md", props.className)
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
const { children, disabled, className, loading: _loading, ...rest } = props;
|
|
47
|
+
return /* @__PURE__ */ jsxs(
|
|
48
|
+
Radio.Root,
|
|
49
|
+
{
|
|
50
|
+
"data-slot": "time-slot",
|
|
51
|
+
disabled,
|
|
52
|
+
className: cn(
|
|
53
|
+
"inline-flex h-control-lg w-16 shrink-0 cursor-pointer select-none items-center justify-center rounded-md border border-transparent px-1 py-2",
|
|
54
|
+
"bg-brand-subtle text-label-default text-text-brand transition-colors",
|
|
55
|
+
"focus-ring",
|
|
56
|
+
"data-checked:border-[1.5px] data-checked:border-brand data-checked:bg-brand data-checked:text-label-strong data-checked:text-text-inverse",
|
|
57
|
+
"data-disabled:cursor-not-allowed data-disabled:border-border-subtle data-disabled:bg-surface data-disabled:text-text-secondary data-disabled:line-through",
|
|
58
|
+
className
|
|
59
|
+
),
|
|
60
|
+
...rest,
|
|
61
|
+
children: [
|
|
62
|
+
children,
|
|
63
|
+
disabled && /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
|
|
64
|
+
", ",
|
|
65
|
+
labels.timeSlotUnavailable
|
|
66
|
+
] })
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
TimeSlot,
|
|
73
|
+
TimeSlotGroup
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=time-slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-slot.js","sources":["../../../src/components/time-slot/time-slot.tsx"],"sourcesContent":["import { Radio as BaseRadio } from \"@base-ui/react/radio\";\nimport type { ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\nimport { RadioGroup, type RadioGroupProps } from \"../radio\";\nimport { Skeleton } from \"../skeleton\";\n\nexport type TimeSlotGroupLayout = \"columns\" | \"rows\";\n\nexport interface TimeSlotGroupProps<Value = string>\n extends RadioGroupProps<Value> {\n /**\n * `columns` (default): `AvailabilityColumn`s side by side, as in `CardProfessional`.\n * The days that don't fit are hidden, never squeezed: a slot never goes below\n * 64×44, the rest of the week is in \"Ver agenda completa\".\n * `rows`: `AvailabilityRow`s one under another.\n */\n layout?: TimeSlotGroupLayout;\n}\n\n// A column is 64px and the gap 8px: n days need 72n − 8. Below that width the\n// n-th day and the ones after it are hidden (the container is the wrapper div).\nconst columnsClasses = [\n \"flex-row items-start justify-between gap-2\",\n \"@max-[208px]:[&>*:nth-child(n+3)]:hidden\",\n \"@max-[280px]:[&>*:nth-child(n+4)]:hidden\",\n \"@max-[352px]:[&>*:nth-child(n+5)]:hidden\",\n \"@max-[424px]:[&>*:nth-child(n+6)]:hidden\",\n \"@max-[496px]:[&>*:nth-child(n+7)]:hidden\",\n];\n\n/**\n * The single choice of an agenda: every `TimeSlot` inside it (across all the days)\n * is one radio group, so there is one tab stop and the arrow keys move from hour to\n * hour. Name it with `aria-label` (\"Horas disponibles con la Dra. Díaz\").\n */\nexport function TimeSlotGroup<Value = string>({\n layout = \"columns\",\n className,\n ...props\n}: TimeSlotGroupProps<Value>): React.JSX.Element {\n const group = (\n <RadioGroup<Value>\n data-slot=\"time-slot-group\"\n className={cn(layout === \"columns\" ? columnsClasses : \"gap-2\", className)}\n {...props}\n />\n );\n\n if (layout === \"rows\") {\n return group;\n }\n\n return <div className=\"@container w-full min-w-0\">{group}</div>;\n}\n\ninterface TimeSlotRadioProps<Value>\n extends Omit<BaseRadio.Root.Props<Value>, \"className\" | \"children\"> {\n /** The time, formatted in the patient's time zone: \"11:00\" (no \"h\", no space). */\n children: ReactNode;\n /**\n * Unavailable (taken): struck through and not selectable. A screen reader hears\n * \"11:00, no disponible\" (`timeSlotUnavailable` label): the line isn't read.\n */\n disabled?: boolean;\n loading?: false;\n className?: string;\n}\n\ninterface TimeSlotLoadingProps {\n /** Grey placeholder while the availability arrives, so the grid doesn't jump. */\n loading: true;\n value?: undefined;\n children?: undefined;\n className?: string;\n}\n\nexport type TimeSlotProps<Value = string> =\n | TimeSlotRadioProps<Value>\n | TimeSlotLoadingProps;\n\n/**\n * One hour of the agenda, 64×44 (`control-lg`: tapped with the thumb in a dense\n * grid). A radio inside `TimeSlotGroup`.\n *\n * - Available: `brand-subtle` fill with brand text, no border.\n * - Selected: brand fill, inverse text, 1.5px border and Medium label — three cues\n * besides colour.\n * - Unavailable (`disabled`): struck through, the cue that doesn't depend on colour.\n * - `loading`: the grey slot while the availability loads (no radio, `aria-hidden`).\n */\nexport function TimeSlot<Value = string>(\n props: TimeSlotProps<Value>,\n): React.JSX.Element {\n const labels = useMediCoreLabels();\n\n if (props.loading) {\n return (\n <Skeleton\n data-slot=\"time-slot\"\n data-loading=\"\"\n shape=\"block\"\n className={cn(\"h-control-lg w-16 shrink-0 rounded-md\", props.className)}\n />\n );\n }\n\n const { children, disabled, className, loading: _loading, ...rest } = props;\n\n return (\n <BaseRadio.Root<Value>\n data-slot=\"time-slot\"\n disabled={disabled}\n className={cn(\n \"inline-flex h-control-lg w-16 shrink-0 cursor-pointer select-none items-center justify-center rounded-md border border-transparent px-1 py-2\",\n \"bg-brand-subtle text-label-default text-text-brand transition-colors\",\n \"focus-ring\",\n \"data-checked:border-[1.5px] data-checked:border-brand data-checked:bg-brand data-checked:text-label-strong data-checked:text-text-inverse\",\n \"data-disabled:cursor-not-allowed data-disabled:border-border-subtle data-disabled:bg-surface data-disabled:text-text-secondary data-disabled:line-through\",\n className,\n )}\n {...rest}\n >\n {children}\n {disabled && (\n <span className=\"sr-only\">, {labels.timeSlotUnavailable}</span>\n )}\n </BaseRadio.Root>\n );\n}\n"],"names":["BaseRadio"],"mappings":";;;;;;AAuBA,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOO,SAAS,cAA8B;AAAA,EAC5C,SAAS;AAAA,EACT;AAAA,EACA,GAAG;AACL,GAAiD;AAC/C,QAAM,QACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,WAAW,YAAY,iBAAiB,SAAS,SAAS;AAAA,MACvE,GAAG;AAAA,IAAA;AAAA,EAAA;AAIR,MAAI,WAAW,QAAQ;AACrB,WAAO;AAAA,EACT;AAEA,SAAO,oBAAC,OAAA,EAAI,WAAU,6BAA6B,UAAA,OAAM;AAC3D;AAqCO,SAAS,SACd,OACmB;AACnB,QAAM,SAAS,kBAAA;AAEf,MAAI,MAAM,SAAS;AACjB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAU;AAAA,QACV,gBAAa;AAAA,QACb,OAAM;AAAA,QACN,WAAW,GAAG,yCAAyC,MAAM,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAG5E;AAEA,QAAM,EAAE,UAAU,UAAU,WAAW,SAAS,UAAU,GAAG,SAAS;AAEtE,SACE;AAAA,IAACA,MAAU;AAAA,IAAV;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA;AAAA,QACA,YACC,qBAAC,QAAA,EAAK,WAAU,WAAU,UAAA;AAAA,UAAA;AAAA,UAAG,OAAO;AAAA,QAAA,EAAA,CAAoB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIhE;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { type ToastActionOptions, type ToastOptions, ToastProvider, type ToastProviderProps, type ToastStatus, type UseToastReturnValue, useToast, } from "./toast";
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* There is no `warning` on purpose: a warning that matters can't vanish on its own,
|
|
4
|
+
* and one that can vanish wasn't a warning. Use a persistent `Banner`.
|
|
5
|
+
*/
|
|
6
|
+
export type ToastStatus = "neutral" | "success" | "error";
|
|
7
|
+
export interface ToastActionOptions {
|
|
8
|
+
/** Defaults to the MediCore `undo` label ("Deshacer"). */
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Runs on click; the toast closes right after. */
|
|
11
|
+
onClick: () => void;
|
|
12
|
+
}
|
|
13
|
+
export interface ToastOptions {
|
|
14
|
+
/**
|
|
15
|
+
* What happened, concrete: "Cita guardada", "No se pudo guardar la cita". Never
|
|
16
|
+
* "Operación completada con éxito" or "Ha ocurrido un error".
|
|
17
|
+
*/
|
|
18
|
+
message: ReactNode;
|
|
19
|
+
/** `neutral` (default) for system state, `success` in past tense, `error` for what failed. */
|
|
20
|
+
status?: ToastStatus;
|
|
21
|
+
/** Undo for success, retry for errors. Leave it out when there is nothing to do. */
|
|
22
|
+
action?: ToastActionOptions;
|
|
23
|
+
/** The icon follows the status; pass `false` to hide it. */
|
|
24
|
+
icon?: boolean;
|
|
25
|
+
/** Milliseconds before it closes on its own (the provider's default otherwise). `0` keeps it open. */
|
|
26
|
+
timeout?: number;
|
|
27
|
+
/** Passing the id of a visible toast updates it in place. */
|
|
28
|
+
id?: string;
|
|
29
|
+
onClose?: () => void;
|
|
30
|
+
}
|
|
31
|
+
export interface UseToastReturnValue {
|
|
32
|
+
/** Shows a toast and returns its id. */
|
|
33
|
+
toast: (options: ToastOptions) => string;
|
|
34
|
+
/** Closes a toast by id, or all of them. */
|
|
35
|
+
close: (id?: string) => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Shows transient notices. Needs a `ToastProvider` above.
|
|
39
|
+
*
|
|
40
|
+
* ```tsx
|
|
41
|
+
* const { toast } = useToast();
|
|
42
|
+
* toast({ message: "Cita guardada", status: "success", action: { onClick: undo } });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function useToast(): UseToastReturnValue;
|
|
46
|
+
export interface ToastProviderProps {
|
|
47
|
+
children?: ReactNode;
|
|
48
|
+
/** Default time on screen in milliseconds. Hovering or focusing the toasts pauses it. */
|
|
49
|
+
timeout?: number;
|
|
50
|
+
/** Toasts visible at once; older ones are hidden until there is room. */
|
|
51
|
+
limit?: number;
|
|
52
|
+
/** Accessible name of the notifications region. */
|
|
53
|
+
label?: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Wrap the app once. Renders the toast region: at the bottom on mobile (full width
|
|
57
|
+
* minus 16px per side) and top right on desktop (360px), at most three at a time.
|
|
58
|
+
* The timer pauses on hover and keyboard focus, and F6 jumps into the region.
|
|
59
|
+
*/
|
|
60
|
+
export declare function ToastProvider({ children, timeout, limit, label, }: ToastProviderProps): React.JSX.Element;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Toast } from "@base-ui/react/toast";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { useContext, useCallback, useMemo, createContext } from "react";
|
|
5
|
+
import { AlertCircleIcon } from "../../icons/generated/alert-circle.js";
|
|
6
|
+
import { CheckCircleIcon } from "../../icons/generated/check-circle.js";
|
|
7
|
+
import { InfoCircleIcon } from "../../icons/generated/info-circle.js";
|
|
8
|
+
import { cn } from "../../lib/cn.js";
|
|
9
|
+
import { useMediCoreLabels } from "../../provider/medicore-provider.js";
|
|
10
|
+
import { Button } from "../button/button.js";
|
|
11
|
+
const ToastApiContext = createContext(null);
|
|
12
|
+
function useToast() {
|
|
13
|
+
const manager = useContext(ToastApiContext);
|
|
14
|
+
const labels = useMediCoreLabels();
|
|
15
|
+
if (manager === null) {
|
|
16
|
+
throw new Error(
|
|
17
|
+
"MediCore: useToast() must be used inside <ToastProvider>."
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
const toast = useCallback(
|
|
21
|
+
({
|
|
22
|
+
message,
|
|
23
|
+
status = "neutral",
|
|
24
|
+
action,
|
|
25
|
+
icon = true,
|
|
26
|
+
...options
|
|
27
|
+
}) => {
|
|
28
|
+
let id = "";
|
|
29
|
+
id = manager.add({
|
|
30
|
+
...options,
|
|
31
|
+
title: message,
|
|
32
|
+
type: status,
|
|
33
|
+
// High priority is announced assertively, so only errors use it.
|
|
34
|
+
priority: status === "error" ? "high" : "low",
|
|
35
|
+
data: { icon },
|
|
36
|
+
actionProps: action && {
|
|
37
|
+
children: action.label ?? labels.undo,
|
|
38
|
+
onClick: () => {
|
|
39
|
+
action.onClick();
|
|
40
|
+
manager.close(id);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return id;
|
|
45
|
+
},
|
|
46
|
+
[manager, labels.undo]
|
|
47
|
+
);
|
|
48
|
+
return useMemo(() => ({ toast, close: manager.close }), [toast, manager]);
|
|
49
|
+
}
|
|
50
|
+
function ToastProvider({
|
|
51
|
+
children,
|
|
52
|
+
timeout,
|
|
53
|
+
limit = 3,
|
|
54
|
+
label = "Notificaciones"
|
|
55
|
+
}) {
|
|
56
|
+
return /* @__PURE__ */ jsxs(Toast.Provider, { timeout, limit, children: [
|
|
57
|
+
/* @__PURE__ */ jsx(ToastApiBridge, { children }),
|
|
58
|
+
/* @__PURE__ */ jsx(Toaster, { label })
|
|
59
|
+
] });
|
|
60
|
+
}
|
|
61
|
+
function ToastApiBridge({
|
|
62
|
+
children
|
|
63
|
+
}) {
|
|
64
|
+
const { add, close } = Toast.useToastManager();
|
|
65
|
+
const api = useMemo(() => ({ add, close }), [add, close]);
|
|
66
|
+
return /* @__PURE__ */ jsx(ToastApiContext.Provider, { value: api, children });
|
|
67
|
+
}
|
|
68
|
+
function Toaster({ label }) {
|
|
69
|
+
const { toasts } = Toast.useToastManager();
|
|
70
|
+
return /* @__PURE__ */ jsx(Toast.Portal, { children: /* @__PURE__ */ jsx(
|
|
71
|
+
Toast.Viewport,
|
|
72
|
+
{
|
|
73
|
+
"data-slot": "toast-viewport",
|
|
74
|
+
"aria-label": label,
|
|
75
|
+
className: cn(
|
|
76
|
+
"fixed inset-x-4 bottom-4 z-60 flex flex-col-reverse gap-2 outline-hidden",
|
|
77
|
+
"md:inset-x-auto md:top-8 md:right-8 md:bottom-auto md:w-90 md:flex-col"
|
|
78
|
+
),
|
|
79
|
+
children: toasts.map((toast) => /* @__PURE__ */ jsx(ToastItem, { toast }, toast.id))
|
|
80
|
+
}
|
|
81
|
+
) });
|
|
82
|
+
}
|
|
83
|
+
const toastVariants = cva(
|
|
84
|
+
[
|
|
85
|
+
"flex items-center gap-3 rounded-lg px-4 py-3 text-text-inverse shadow-lg select-none",
|
|
86
|
+
"[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--toast-swipe-movement-y))]",
|
|
87
|
+
"transition-[opacity,transform] duration-200 ease-out motion-reduce:transition-none",
|
|
88
|
+
"data-starting-style:opacity-0 data-starting-style:[transform:translateY(100%)] md:data-starting-style:[transform:translateY(-100%)]",
|
|
89
|
+
"data-ending-style:opacity-0",
|
|
90
|
+
"data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]",
|
|
91
|
+
"data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",
|
|
92
|
+
"data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))]",
|
|
93
|
+
"data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))]",
|
|
94
|
+
"data-limited:hidden focus-ring"
|
|
95
|
+
],
|
|
96
|
+
{
|
|
97
|
+
variants: {
|
|
98
|
+
status: {
|
|
99
|
+
neutral: "bg-surface-inverse",
|
|
100
|
+
// success-STRONG, not the status green: white on #34C759 is 2.22:1.
|
|
101
|
+
success: "bg-success-strong",
|
|
102
|
+
error: "bg-error-strong"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
defaultVariants: {
|
|
106
|
+
status: "neutral"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
const statusIcons = {
|
|
111
|
+
neutral: InfoCircleIcon,
|
|
112
|
+
success: CheckCircleIcon,
|
|
113
|
+
error: AlertCircleIcon
|
|
114
|
+
};
|
|
115
|
+
function isToastStatus(value) {
|
|
116
|
+
return value === "neutral" || value === "success" || value === "error";
|
|
117
|
+
}
|
|
118
|
+
function ToastItem({
|
|
119
|
+
toast
|
|
120
|
+
}) {
|
|
121
|
+
const status = isToastStatus(toast.type) ? toast.type : "neutral";
|
|
122
|
+
const Icon = statusIcons[status];
|
|
123
|
+
return /* @__PURE__ */ jsxs(
|
|
124
|
+
Toast.Root,
|
|
125
|
+
{
|
|
126
|
+
toast,
|
|
127
|
+
"data-slot": "toast",
|
|
128
|
+
className: toastVariants({ status }),
|
|
129
|
+
children: [
|
|
130
|
+
toast.data?.icon !== false && /* @__PURE__ */ jsx(Icon, { size: "md", className: "shrink-0" }),
|
|
131
|
+
/* @__PURE__ */ jsx(
|
|
132
|
+
Toast.Title,
|
|
133
|
+
{
|
|
134
|
+
render: /* @__PURE__ */ jsx("p", {}),
|
|
135
|
+
className: "min-w-0 flex-1 text-body-small"
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
/* @__PURE__ */ jsx(
|
|
139
|
+
Toast.Action,
|
|
140
|
+
{
|
|
141
|
+
render: /* @__PURE__ */ jsx(
|
|
142
|
+
Button,
|
|
143
|
+
{
|
|
144
|
+
variant: "inverse-ghost",
|
|
145
|
+
size: "small",
|
|
146
|
+
className: "-my-1.5 underline underline-offset-2"
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
}
|
|
150
|
+
)
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
export {
|
|
156
|
+
ToastProvider,
|
|
157
|
+
useToast
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=toast.js.map
|