@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,99 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
import { type ComponentProps, type ReactNode } from "react";
|
|
3
|
+
import { type NavItemProps } from "../nav-item";
|
|
4
|
+
interface SidebarContextValue {
|
|
5
|
+
collapsed: boolean;
|
|
6
|
+
setCollapsed: (collapsed: boolean) => void;
|
|
7
|
+
/** Set by AppShell when the sidebar is shown as the mobile menu drawer. */
|
|
8
|
+
onClose?: () => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Internal: AppShell renders the same sidebar inside the mobile menu drawer. There it
|
|
12
|
+
* is always expanded and the collapse chevron becomes a close button.
|
|
13
|
+
*/
|
|
14
|
+
export declare const SidebarDrawerContext: import("react").Context<(() => void) | null>;
|
|
15
|
+
/** Collapsed state of the nearest `Sidebar`, for custom content inside it. */
|
|
16
|
+
export declare function useSidebar(): SidebarContextValue;
|
|
17
|
+
export interface SidebarProps extends ComponentProps<"div"> {
|
|
18
|
+
/** Icon-only rail (76px). Controlled; pair it with `onCollapsedChange`. */
|
|
19
|
+
collapsed?: boolean;
|
|
20
|
+
/** Initial state when uncontrolled. */
|
|
21
|
+
defaultCollapsed?: boolean;
|
|
22
|
+
/** Called by the header chevron. Persist it (e.g. in localStorage) if the app wants to remember it. */
|
|
23
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Desktop side menu: 320px expanded, 76px collapsed, full height. Compose it:
|
|
27
|
+
*
|
|
28
|
+
* ```tsx
|
|
29
|
+
* <Sidebar>
|
|
30
|
+
* <SidebarHeader /> // logo + collapse chevron
|
|
31
|
+
* <SidebarNav> // <nav aria-label="Navegación principal">
|
|
32
|
+
* <SidebarSection>
|
|
33
|
+
* <SidebarItem icon={<Home02Icon />} render={<Link to="/" />}>Inicio</SidebarItem>
|
|
34
|
+
* </SidebarSection>
|
|
35
|
+
* <SidebarSection>…</SidebarSection> // a divider separates sections
|
|
36
|
+
* </SidebarNav>
|
|
37
|
+
* <SidebarFooter><SidebarUser … /></SidebarFooter>
|
|
38
|
+
* </Sidebar>
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* - Sections and items come from the app: MediCore draws them, it doesn't decide them.
|
|
42
|
+
* - `SidebarNav` takes the free height, so the footer (user card) sits at the bottom;
|
|
43
|
+
* if the items don't fit, the nav scrolls on its own.
|
|
44
|
+
* - Collapsed keeps every section name in the DOM (it is each link's accessible name)
|
|
45
|
+
* and shows it in a tooltip.
|
|
46
|
+
*/
|
|
47
|
+
export declare function Sidebar({ collapsed: collapsedProp, defaultCollapsed, onCollapsedChange, className, ...props }: SidebarProps): React.JSX.Element;
|
|
48
|
+
export interface SidebarHeaderProps extends ComponentProps<"div"> {
|
|
49
|
+
/** The brand at the top. Defaults to the mediQuo `Logo`; a clinic passes its own. Hidden when collapsed. */
|
|
50
|
+
children?: ReactNode;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Logo on the left, collapse chevron on the right (the chevron used to be at the
|
|
54
|
+
* bottom, under the user card, where nobody found it). 88px tall, like PageHeader,
|
|
55
|
+
* so both lines match.
|
|
56
|
+
*/
|
|
57
|
+
export declare function SidebarHeader({ children, className, ...props }: SidebarHeaderProps): React.JSX.Element;
|
|
58
|
+
export interface SidebarNavProps extends ComponentProps<"nav"> {
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The `<nav>` landmark, named "Navegación principal" (`mainNavigation` label). Takes
|
|
62
|
+
* the free height and scrolls if the sections don't fit.
|
|
63
|
+
*/
|
|
64
|
+
export declare function SidebarNav({ "aria-label": ariaLabel, className, children, ...props }: SidebarNavProps): React.JSX.Element;
|
|
65
|
+
export interface SidebarSectionProps extends ComponentProps<"ul"> {
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A group of items (a `<ul>`). Every section after the first is preceded by a
|
|
69
|
+
* `Divider`: main sections first, support/secondary ones after.
|
|
70
|
+
*/
|
|
71
|
+
export declare function SidebarSection({ className, ...props }: SidebarSectionProps): React.JSX.Element;
|
|
72
|
+
export interface SidebarItemProps extends Omit<NavItemProps, "collapsed"> {
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* A `NavItem` in a list item, collapsed together with the sidebar. Pass the router's
|
|
76
|
+
* link with `render`; for the root route use exact matching
|
|
77
|
+
* (`<Link to="/" activeOptions={{ exact: true }} />`) or it is active everywhere.
|
|
78
|
+
*/
|
|
79
|
+
export declare function SidebarItem(props: SidebarItemProps): React.JSX.Element;
|
|
80
|
+
export interface SidebarFooterProps extends ComponentProps<"div"> {
|
|
81
|
+
}
|
|
82
|
+
/** Bottom of the sidebar, pushed down by the nav: the user card (`SidebarUser`). */
|
|
83
|
+
export declare function SidebarFooter({ className, ...props }: SidebarFooterProps): React.JSX.Element;
|
|
84
|
+
export interface SidebarUserProps extends Omit<useRender.ComponentProps<"div">, "className" | "children"> {
|
|
85
|
+
/** `<Avatar size={40} initials="UP" />` (or with `src`). Leave its `alt` out: the name is next to it. */
|
|
86
|
+
avatar: ReactNode;
|
|
87
|
+
/** "Usuario paciente". */
|
|
88
|
+
name: ReactNode;
|
|
89
|
+
/** Second line, truncated: the email, or the clinic and role in the admin. */
|
|
90
|
+
description?: ReactNode;
|
|
91
|
+
className?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Who is signed in: avatar, name and a secondary line. Collapsed, only the avatar
|
|
95
|
+
* shows (the name stays for screen readers). To open the profile or a menu, pass
|
|
96
|
+
* `render={<Link to="/perfil" />}` or `render={<button type="button" />}`.
|
|
97
|
+
*/
|
|
98
|
+
export declare function SidebarUser({ avatar, name, description, className, render, ...props }: SidebarUserProps): React.JSX.Element;
|
|
99
|
+
export {};
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Tooltip } from "@base-ui/react/tooltip";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
import { useContext, useState, useCallback, useMemo, createContext } from "react";
|
|
5
|
+
import { ChevronLeftIcon } from "../../icons/generated/chevron-left.js";
|
|
6
|
+
import { ChevronRightIcon } from "../../icons/generated/chevron-right.js";
|
|
7
|
+
import { XCloseIcon } from "../../icons/generated/x-close.js";
|
|
8
|
+
import { cn } from "../../lib/cn.js";
|
|
9
|
+
import { useMediCoreLabels } from "../../provider/medicore-provider.js";
|
|
10
|
+
import { Logo } from "../logo/logo.js";
|
|
11
|
+
import { IconButton } from "../icon-button/icon-button.js";
|
|
12
|
+
import { NavItem } from "../nav-item/nav-item.js";
|
|
13
|
+
import { Divider } from "../divider/divider.js";
|
|
14
|
+
const SidebarContext = createContext({
|
|
15
|
+
collapsed: false,
|
|
16
|
+
setCollapsed: () => {
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const SidebarDrawerContext = createContext(null);
|
|
20
|
+
function useSidebar() {
|
|
21
|
+
return useContext(SidebarContext);
|
|
22
|
+
}
|
|
23
|
+
function Sidebar({
|
|
24
|
+
collapsed: collapsedProp,
|
|
25
|
+
defaultCollapsed = false,
|
|
26
|
+
onCollapsedChange,
|
|
27
|
+
className,
|
|
28
|
+
...props
|
|
29
|
+
}) {
|
|
30
|
+
const onClose = useContext(SidebarDrawerContext) ?? void 0;
|
|
31
|
+
const [uncontrolled, setUncontrolled] = useState(defaultCollapsed);
|
|
32
|
+
const isControlled = collapsedProp !== void 0;
|
|
33
|
+
const collapsed = onClose ? false : isControlled ? collapsedProp : uncontrolled;
|
|
34
|
+
const setCollapsed = useCallback(
|
|
35
|
+
(next) => {
|
|
36
|
+
if (!isControlled) {
|
|
37
|
+
setUncontrolled(next);
|
|
38
|
+
}
|
|
39
|
+
onCollapsedChange?.(next);
|
|
40
|
+
},
|
|
41
|
+
[isControlled, onCollapsedChange]
|
|
42
|
+
);
|
|
43
|
+
const value = useMemo(
|
|
44
|
+
() => ({ collapsed, setCollapsed, onClose }),
|
|
45
|
+
[collapsed, setCollapsed, onClose]
|
|
46
|
+
);
|
|
47
|
+
return /* @__PURE__ */ jsx(SidebarContext.Provider, { value, children: /* @__PURE__ */ jsx(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
"data-slot": "sidebar",
|
|
51
|
+
"data-collapsed": collapsed || void 0,
|
|
52
|
+
className: cn(
|
|
53
|
+
"flex h-full shrink-0 flex-col overflow-hidden border-border border-r bg-surface pb-5",
|
|
54
|
+
"transition-[width] duration-200 motion-reduce:transition-none",
|
|
55
|
+
onClose ? "w-full" : collapsed ? "w-19" : "w-80",
|
|
56
|
+
className
|
|
57
|
+
),
|
|
58
|
+
...props
|
|
59
|
+
}
|
|
60
|
+
) });
|
|
61
|
+
}
|
|
62
|
+
function SidebarHeader({
|
|
63
|
+
children,
|
|
64
|
+
className,
|
|
65
|
+
...props
|
|
66
|
+
}) {
|
|
67
|
+
const labels = useMediCoreLabels();
|
|
68
|
+
const { collapsed, setCollapsed, onClose } = useSidebar();
|
|
69
|
+
return /* @__PURE__ */ jsxs(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
"data-slot": "sidebar-header",
|
|
73
|
+
className: cn(
|
|
74
|
+
"flex h-22 shrink-0 items-center gap-2",
|
|
75
|
+
collapsed ? "justify-center" : "justify-between pr-5 pl-6",
|
|
76
|
+
className
|
|
77
|
+
),
|
|
78
|
+
...props,
|
|
79
|
+
children: [
|
|
80
|
+
!collapsed && (children ?? /* @__PURE__ */ jsx(Logo, {})),
|
|
81
|
+
onClose ? /* @__PURE__ */ jsx(
|
|
82
|
+
IconButton,
|
|
83
|
+
{
|
|
84
|
+
variant: "ghost",
|
|
85
|
+
size: "small",
|
|
86
|
+
icon: /* @__PURE__ */ jsx(XCloseIcon, {}),
|
|
87
|
+
"aria-label": labels.close,
|
|
88
|
+
onClick: onClose,
|
|
89
|
+
className: "not-data-disabled:hover:bg-surface-raised"
|
|
90
|
+
}
|
|
91
|
+
) : /* @__PURE__ */ jsx(
|
|
92
|
+
IconButton,
|
|
93
|
+
{
|
|
94
|
+
"data-slot": "sidebar-toggle",
|
|
95
|
+
variant: "ghost",
|
|
96
|
+
size: "small",
|
|
97
|
+
icon: collapsed ? /* @__PURE__ */ jsx(ChevronRightIcon, {}) : /* @__PURE__ */ jsx(ChevronLeftIcon, {}),
|
|
98
|
+
"aria-label": collapsed ? labels.expandSidebar : labels.collapseSidebar,
|
|
99
|
+
"aria-expanded": !collapsed,
|
|
100
|
+
onClick: () => setCollapsed(!collapsed),
|
|
101
|
+
className: "not-data-disabled:hover:bg-surface-raised"
|
|
102
|
+
}
|
|
103
|
+
)
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
function SidebarNav({
|
|
109
|
+
"aria-label": ariaLabel,
|
|
110
|
+
className,
|
|
111
|
+
children,
|
|
112
|
+
...props
|
|
113
|
+
}) {
|
|
114
|
+
const labels = useMediCoreLabels();
|
|
115
|
+
return /* @__PURE__ */ jsx(
|
|
116
|
+
"nav",
|
|
117
|
+
{
|
|
118
|
+
"data-slot": "sidebar-nav",
|
|
119
|
+
"aria-label": ariaLabel ?? labels.mainNavigation,
|
|
120
|
+
className: cn("flex min-h-0 flex-1 flex-col overflow-y-auto", className),
|
|
121
|
+
...props,
|
|
122
|
+
children: /* @__PURE__ */ jsx(Tooltip.Provider, { delay: 300, children })
|
|
123
|
+
}
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
function SidebarSection({
|
|
127
|
+
className,
|
|
128
|
+
...props
|
|
129
|
+
}) {
|
|
130
|
+
const { collapsed } = useSidebar();
|
|
131
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "sidebar-section", className: "flex flex-col", children: [
|
|
132
|
+
/* @__PURE__ */ jsx(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: cn(
|
|
136
|
+
"flex py-2 [:first-child>&]:hidden",
|
|
137
|
+
collapsed ? "justify-center" : "px-5"
|
|
138
|
+
),
|
|
139
|
+
children: /* @__PURE__ */ jsx(Divider, { className: collapsed ? "w-10" : void 0 })
|
|
140
|
+
}
|
|
141
|
+
),
|
|
142
|
+
/* @__PURE__ */ jsx(
|
|
143
|
+
"ul",
|
|
144
|
+
{
|
|
145
|
+
className: cn(
|
|
146
|
+
"flex flex-col gap-1 py-2 [:not(:first-child)>&]:pt-0",
|
|
147
|
+
collapsed ? "items-center" : "px-5",
|
|
148
|
+
className
|
|
149
|
+
),
|
|
150
|
+
...props
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
] });
|
|
154
|
+
}
|
|
155
|
+
function SidebarItem(props) {
|
|
156
|
+
const { collapsed } = useSidebar();
|
|
157
|
+
return /* @__PURE__ */ jsx("li", { "data-slot": "sidebar-item", className: "flex", children: /* @__PURE__ */ jsx(NavItem, { collapsed, ...props }) });
|
|
158
|
+
}
|
|
159
|
+
function SidebarFooter({
|
|
160
|
+
className,
|
|
161
|
+
...props
|
|
162
|
+
}) {
|
|
163
|
+
const { collapsed } = useSidebar();
|
|
164
|
+
return /* @__PURE__ */ jsx(
|
|
165
|
+
"div",
|
|
166
|
+
{
|
|
167
|
+
"data-slot": "sidebar-footer",
|
|
168
|
+
className: cn(
|
|
169
|
+
"flex shrink-0 flex-col py-2",
|
|
170
|
+
collapsed ? "items-center" : "px-5",
|
|
171
|
+
className
|
|
172
|
+
),
|
|
173
|
+
...props
|
|
174
|
+
}
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
function SidebarUser({
|
|
178
|
+
avatar,
|
|
179
|
+
name,
|
|
180
|
+
description,
|
|
181
|
+
className,
|
|
182
|
+
render,
|
|
183
|
+
...props
|
|
184
|
+
}) {
|
|
185
|
+
const { collapsed } = useSidebar();
|
|
186
|
+
return useRender({
|
|
187
|
+
defaultTagName: "div",
|
|
188
|
+
render,
|
|
189
|
+
props: {
|
|
190
|
+
"data-slot": "sidebar-user",
|
|
191
|
+
className: cn(
|
|
192
|
+
"flex min-w-0 items-center gap-3 rounded-md text-left",
|
|
193
|
+
"focus-ring focus-visible:-outline-offset-2",
|
|
194
|
+
render && "cursor-pointer",
|
|
195
|
+
className
|
|
196
|
+
),
|
|
197
|
+
children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
198
|
+
avatar,
|
|
199
|
+
/* @__PURE__ */ jsxs(
|
|
200
|
+
"span",
|
|
201
|
+
{
|
|
202
|
+
className: cn(
|
|
203
|
+
"flex min-w-0 flex-1 flex-col",
|
|
204
|
+
collapsed && "sr-only"
|
|
205
|
+
),
|
|
206
|
+
children: [
|
|
207
|
+
/* @__PURE__ */ jsx("span", { className: "text-body-default-strong text-text-primary", children: name }),
|
|
208
|
+
description && /* @__PURE__ */ jsx("span", { className: "truncate text-caption-default text-text-secondary", children: description })
|
|
209
|
+
]
|
|
210
|
+
}
|
|
211
|
+
)
|
|
212
|
+
] }),
|
|
213
|
+
...props
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
export {
|
|
218
|
+
Sidebar,
|
|
219
|
+
SidebarDrawerContext,
|
|
220
|
+
SidebarFooter,
|
|
221
|
+
SidebarHeader,
|
|
222
|
+
SidebarItem,
|
|
223
|
+
SidebarNav,
|
|
224
|
+
SidebarSection,
|
|
225
|
+
SidebarUser,
|
|
226
|
+
useSidebar
|
|
227
|
+
};
|
|
228
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","sources":["../../../src/components/sidebar/sidebar.tsx"],"sourcesContent":["import { Tooltip } from \"@base-ui/react/tooltip\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport {\n type ComponentProps,\n createContext,\n type ReactNode,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\nimport { ChevronLeftIcon, ChevronRightIcon, XCloseIcon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\nimport { Divider } from \"../divider\";\nimport { IconButton } from \"../icon-button\";\nimport { Logo } from \"../logo\";\nimport { NavItem, type NavItemProps } from \"../nav-item\";\n\ninterface SidebarContextValue {\n collapsed: boolean;\n setCollapsed: (collapsed: boolean) => void;\n /** Set by AppShell when the sidebar is shown as the mobile menu drawer. */\n onClose?: () => void;\n}\n\nconst SidebarContext = createContext<SidebarContextValue>({\n collapsed: false,\n setCollapsed: () => {},\n});\n\n/**\n * Internal: AppShell renders the same sidebar inside the mobile menu drawer. There it\n * is always expanded and the collapse chevron becomes a close button.\n */\nexport const SidebarDrawerContext = createContext<(() => void) | null>(null);\n\n/** Collapsed state of the nearest `Sidebar`, for custom content inside it. */\nexport function useSidebar(): SidebarContextValue {\n return useContext(SidebarContext);\n}\n\nexport interface SidebarProps extends ComponentProps<\"div\"> {\n /** Icon-only rail (76px). Controlled; pair it with `onCollapsedChange`. */\n collapsed?: boolean;\n /** Initial state when uncontrolled. */\n defaultCollapsed?: boolean;\n /** Called by the header chevron. Persist it (e.g. in localStorage) if the app wants to remember it. */\n onCollapsedChange?: (collapsed: boolean) => void;\n}\n\n/**\n * Desktop side menu: 320px expanded, 76px collapsed, full height. Compose it:\n *\n * ```tsx\n * <Sidebar>\n * <SidebarHeader /> // logo + collapse chevron\n * <SidebarNav> // <nav aria-label=\"Navegación principal\">\n * <SidebarSection>\n * <SidebarItem icon={<Home02Icon />} render={<Link to=\"/\" />}>Inicio</SidebarItem>\n * </SidebarSection>\n * <SidebarSection>…</SidebarSection> // a divider separates sections\n * </SidebarNav>\n * <SidebarFooter><SidebarUser … /></SidebarFooter>\n * </Sidebar>\n * ```\n *\n * - Sections and items come from the app: MediCore draws them, it doesn't decide them.\n * - `SidebarNav` takes the free height, so the footer (user card) sits at the bottom;\n * if the items don't fit, the nav scrolls on its own.\n * - Collapsed keeps every section name in the DOM (it is each link's accessible name)\n * and shows it in a tooltip.\n */\nexport function Sidebar({\n collapsed: collapsedProp,\n defaultCollapsed = false,\n onCollapsedChange,\n className,\n ...props\n}: SidebarProps): React.JSX.Element {\n const onClose = useContext(SidebarDrawerContext) ?? undefined;\n const [uncontrolled, setUncontrolled] = useState(defaultCollapsed);\n const isControlled = collapsedProp !== undefined;\n // In the mobile drawer there is room for the labels: never collapsed.\n const collapsed = onClose\n ? false\n : isControlled\n ? collapsedProp\n : uncontrolled;\n\n const setCollapsed = useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolled(next);\n }\n onCollapsedChange?.(next);\n },\n [isControlled, onCollapsedChange],\n );\n\n const value = useMemo(\n () => ({ collapsed, setCollapsed, onClose }),\n [collapsed, setCollapsed, onClose],\n );\n\n return (\n <SidebarContext.Provider value={value}>\n <div\n data-slot=\"sidebar\"\n data-collapsed={collapsed || undefined}\n className={cn(\n \"flex h-full shrink-0 flex-col overflow-hidden border-border border-r bg-surface pb-5\",\n \"transition-[width] duration-200 motion-reduce:transition-none\",\n onClose ? \"w-full\" : collapsed ? \"w-19\" : \"w-80\",\n className,\n )}\n {...props}\n />\n </SidebarContext.Provider>\n );\n}\n\nexport interface SidebarHeaderProps extends ComponentProps<\"div\"> {\n /** The brand at the top. Defaults to the mediQuo `Logo`; a clinic passes its own. Hidden when collapsed. */\n children?: ReactNode;\n}\n\n/**\n * Logo on the left, collapse chevron on the right (the chevron used to be at the\n * bottom, under the user card, where nobody found it). 88px tall, like PageHeader,\n * so both lines match.\n */\nexport function SidebarHeader({\n children,\n className,\n ...props\n}: SidebarHeaderProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const { collapsed, setCollapsed, onClose } = useSidebar();\n\n return (\n <div\n data-slot=\"sidebar-header\"\n className={cn(\n \"flex h-22 shrink-0 items-center gap-2\",\n collapsed ? \"justify-center\" : \"justify-between pr-5 pl-6\",\n className,\n )}\n {...props}\n >\n {!collapsed && (children ?? <Logo />)}\n {onClose ? (\n <IconButton\n variant=\"ghost\"\n size=\"small\"\n icon={<XCloseIcon />}\n aria-label={labels.close}\n onClick={onClose}\n className=\"not-data-disabled:hover:bg-surface-raised\"\n />\n ) : (\n <IconButton\n data-slot=\"sidebar-toggle\"\n variant=\"ghost\"\n size=\"small\"\n icon={collapsed ? <ChevronRightIcon /> : <ChevronLeftIcon />}\n aria-label={collapsed ? labels.expandSidebar : labels.collapseSidebar}\n aria-expanded={!collapsed}\n onClick={() => setCollapsed(!collapsed)}\n // Ghost hovers to `surface`, which is the sidebar's own background.\n className=\"not-data-disabled:hover:bg-surface-raised\"\n />\n )}\n </div>\n );\n}\n\nexport interface SidebarNavProps extends ComponentProps<\"nav\"> {}\n\n/**\n * The `<nav>` landmark, named \"Navegación principal\" (`mainNavigation` label). Takes\n * the free height and scrolls if the sections don't fit.\n */\nexport function SidebarNav({\n \"aria-label\": ariaLabel,\n className,\n children,\n ...props\n}: SidebarNavProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n\n return (\n <nav\n data-slot=\"sidebar-nav\"\n aria-label={ariaLabel ?? labels.mainNavigation}\n className={cn(\"flex min-h-0 flex-1 flex-col overflow-y-auto\", className)}\n {...props}\n >\n {/* Moving from one collapsed item to the next opens its tooltip at once. */}\n <Tooltip.Provider delay={300}>{children}</Tooltip.Provider>\n </nav>\n );\n}\n\nexport interface SidebarSectionProps extends ComponentProps<\"ul\"> {}\n\n/**\n * A group of items (a `<ul>`). Every section after the first is preceded by a\n * `Divider`: main sections first, support/secondary ones after.\n */\nexport function SidebarSection({\n className,\n ...props\n}: SidebarSectionProps): React.JSX.Element {\n const { collapsed } = useSidebar();\n\n return (\n <div data-slot=\"sidebar-section\" className=\"flex flex-col\">\n <div\n className={cn(\n \"flex py-2 [:first-child>&]:hidden\",\n collapsed ? \"justify-center\" : \"px-5\",\n )}\n >\n <Divider className={collapsed ? \"w-10\" : undefined} />\n </div>\n <ul\n className={cn(\n \"flex flex-col gap-1 py-2 [:not(:first-child)>&]:pt-0\",\n collapsed ? \"items-center\" : \"px-5\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nexport interface SidebarItemProps extends Omit<NavItemProps, \"collapsed\"> {}\n\n/**\n * A `NavItem` in a list item, collapsed together with the sidebar. Pass the router's\n * link with `render`; for the root route use exact matching\n * (`<Link to=\"/\" activeOptions={{ exact: true }} />`) or it is active everywhere.\n */\nexport function SidebarItem(props: SidebarItemProps): React.JSX.Element {\n const { collapsed } = useSidebar();\n\n return (\n <li data-slot=\"sidebar-item\" className=\"flex\">\n <NavItem collapsed={collapsed} {...props} />\n </li>\n );\n}\n\nexport interface SidebarFooterProps extends ComponentProps<\"div\"> {}\n\n/** Bottom of the sidebar, pushed down by the nav: the user card (`SidebarUser`). */\nexport function SidebarFooter({\n className,\n ...props\n}: SidebarFooterProps): React.JSX.Element {\n const { collapsed } = useSidebar();\n\n return (\n <div\n data-slot=\"sidebar-footer\"\n className={cn(\n \"flex shrink-0 flex-col py-2\",\n collapsed ? \"items-center\" : \"px-5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport interface SidebarUserProps\n extends Omit<useRender.ComponentProps<\"div\">, \"className\" | \"children\"> {\n /** `<Avatar size={40} initials=\"UP\" />` (or with `src`). Leave its `alt` out: the name is next to it. */\n avatar: ReactNode;\n /** \"Usuario paciente\". */\n name: ReactNode;\n /** Second line, truncated: the email, or the clinic and role in the admin. */\n description?: ReactNode;\n className?: string;\n}\n\n/**\n * Who is signed in: avatar, name and a secondary line. Collapsed, only the avatar\n * shows (the name stays for screen readers). To open the profile or a menu, pass\n * `render={<Link to=\"/perfil\" />}` or `render={<button type=\"button\" />}`.\n */\nexport function SidebarUser({\n avatar,\n name,\n description,\n className,\n render,\n ...props\n}: SidebarUserProps): React.JSX.Element {\n const { collapsed } = useSidebar();\n\n return useRender({\n defaultTagName: \"div\",\n render,\n props: {\n \"data-slot\": \"sidebar-user\",\n className: cn(\n \"flex min-w-0 items-center gap-3 rounded-md text-left\",\n \"focus-ring focus-visible:-outline-offset-2\",\n render && \"cursor-pointer\",\n className,\n ),\n children: (\n <>\n {avatar}\n <span\n className={cn(\n \"flex min-w-0 flex-1 flex-col\",\n collapsed && \"sr-only\",\n )}\n >\n <span className=\"text-body-default-strong text-text-primary\">\n {name}\n </span>\n {description && (\n <span className=\"truncate text-caption-default text-text-secondary\">\n {description}\n </span>\n )}\n </span>\n </>\n ),\n ...props,\n },\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AA2BA,MAAM,iBAAiB,cAAmC;AAAA,EACxD,WAAW;AAAA,EACX,cAAc,MAAM;AAAA,EAAC;AACvB,CAAC;AAMM,MAAM,uBAAuB,cAAmC,IAAI;AAGpE,SAAS,aAAkC;AAChD,SAAO,WAAW,cAAc;AAClC;AAiCO,SAAS,QAAQ;AAAA,EACtB,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAoC;AAClC,QAAM,UAAU,WAAW,oBAAoB,KAAK;AACpD,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,gBAAgB;AACjE,QAAM,eAAe,kBAAkB;AAEvC,QAAM,YAAY,UACd,QACA,eACE,gBACA;AAEN,QAAM,eAAe;AAAA,IACnB,CAAC,SAAkB;AACjB,UAAI,CAAC,cAAc;AACjB,wBAAgB,IAAI;AAAA,MACtB;AACA,0BAAoB,IAAI;AAAA,IAC1B;AAAA,IACA,CAAC,cAAc,iBAAiB;AAAA,EAAA;AAGlC,QAAM,QAAQ;AAAA,IACZ,OAAO,EAAE,WAAW,cAAc;IAClC,CAAC,WAAW,cAAc,OAAO;AAAA,EAAA;AAGnC,SACE,oBAAC,eAAe,UAAf,EAAwB,OACvB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,kBAAgB,aAAa;AAAA,MAC7B,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,WAAW,YAAY,SAAS;AAAA,QAC1C;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;AAYO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA0C;AACxC,QAAM,SAAS,kBAAA;AACf,QAAM,EAAE,WAAW,cAAc,QAAA,IAAY,WAAA;AAE7C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,YAAY,mBAAmB;AAAA,QAC/B;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,CAAC,cAAc,YAAY,oBAAC,MAAA,CAAA,CAAK;AAAA,QACjC,UACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,0BAAO,YAAA,EAAW;AAAA,YAClB,cAAY,OAAO;AAAA,YACnB,SAAS;AAAA,YACT,WAAU;AAAA,UAAA;AAAA,QAAA,IAGZ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,aAAU;AAAA,YACV,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAM,YAAY,oBAAC,kBAAA,CAAA,CAAiB,wBAAM,iBAAA,EAAgB;AAAA,YAC1D,cAAY,YAAY,OAAO,gBAAgB,OAAO;AAAA,YACtD,iBAAe,CAAC;AAAA,YAChB,SAAS,MAAM,aAAa,CAAC,SAAS;AAAA,YAEtC,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ;AAAA,IAAA;AAAA,EAAA;AAIR;AAQO,SAAS,WAAW;AAAA,EACzB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAuC;AACrC,QAAM,SAAS,kBAAA;AAEf,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,cAAY,aAAa,OAAO;AAAA,MAChC,WAAW,GAAG,gDAAgD,SAAS;AAAA,MACtE,GAAG;AAAA,MAGJ,8BAAC,QAAQ,UAAR,EAAiB,OAAO,KAAM,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAG9C;AAQO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAA2C;AACzC,QAAM,EAAE,UAAA,IAAc,WAAA;AAEtB,SACE,qBAAC,OAAA,EAAI,aAAU,mBAAkB,WAAU,iBACzC,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY,mBAAmB;AAAA,QAAA;AAAA,QAGjC,UAAA,oBAAC,SAAA,EAAQ,WAAW,YAAY,SAAS,OAAA,CAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAEtD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY,iBAAiB;AAAA,UAC7B;AAAA,QAAA;AAAA,QAED,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ;AASO,SAAS,YAAY,OAA4C;AACtE,QAAM,EAAE,UAAA,IAAc,WAAA;AAEtB,SACE,oBAAC,MAAA,EAAG,aAAU,gBAAe,WAAU,QACrC,UAAA,oBAAC,SAAA,EAAQ,WAAuB,GAAG,MAAA,CAAO,EAAA,CAC5C;AAEJ;AAKO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,GAA0C;AACxC,QAAM,EAAE,UAAA,IAAc,WAAA;AAEtB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,YAAY,iBAAiB;AAAA,QAC7B;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAkBO,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAwC;AACtC,QAAM,EAAE,UAAA,IAAc,WAAA;AAEtB,SAAO,UAAU;AAAA,IACf,gBAAgB;AAAA,IAChB;AAAA,IACA,OAAO;AAAA,MACL,aAAa;AAAA,MACb,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,MAEF,UACE,qBAAA,UAAA,EACG,UAAA;AAAA,QAAA;AAAA,QACD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,aAAa;AAAA,YAAA;AAAA,YAGf,UAAA;AAAA,cAAA,oBAAC,QAAA,EAAK,WAAU,8CACb,UAAA,MACH;AAAA,cACC,eACC,oBAAC,QAAA,EAAK,WAAU,qDACb,UAAA,YAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ,GACF;AAAA,MAEF,GAAG;AAAA,IAAA;AAAA,EACL,CACD;AACH;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Skeleton, type SkeletonProps, type SkeletonShape, skeletonVariants, } from "./skeleton";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
export declare const skeletonVariants: (props?: ({
|
|
3
|
+
shape?: "circle" | "line" | "block" | null | undefined;
|
|
4
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
5
|
+
export type SkeletonShape = "line" | "block" | "circle";
|
|
6
|
+
export interface SkeletonProps extends ComponentProps<"span"> {
|
|
7
|
+
/**
|
|
8
|
+
* `line` for a line of text (14px, the height of Body/Small) · `block` for cards and
|
|
9
|
+
* images · `circle` for avatars. Resize freely with `className` (`w-3/5`, `h-40`,
|
|
10
|
+
* `size-avatar-2xl`…).
|
|
11
|
+
*/
|
|
12
|
+
shape?: SkeletonShape;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Placeholder for content that is loading. It is a shape, not a mock-up.
|
|
16
|
+
*
|
|
17
|
+
* A skeleton is not a prettier spinner. The rule is duration and predictability:
|
|
18
|
+
* - Under 300ms: show NOTHING. A skeleton that flashes for two frames is worse than
|
|
19
|
+
* the wait (the delay is the app's job, not this component's).
|
|
20
|
+
* - Known, stable shape (a list of appointments, a professional's card): skeleton,
|
|
21
|
+
* with the SAME shape as what will arrive, or the content jumps when it lands.
|
|
22
|
+
* - Unknown duration or unpredictable shape (a submission, a search): `Spinner`.
|
|
23
|
+
*
|
|
24
|
+
* Don't imitate a paragraph with lines of random widths: use two or three lines of
|
|
25
|
+
* clearly different widths (100%, 60%) that suggest hierarchy.
|
|
26
|
+
*
|
|
27
|
+
* Accessibility: every skeleton is `aria-hidden`; put `aria-busy="true"` on the
|
|
28
|
+
* container while it loads, otherwise a screen reader announces a list of empty boxes.
|
|
29
|
+
*
|
|
30
|
+
* It uses `surface-raised`, not a darker grey: it must read as "something goes here",
|
|
31
|
+
* not as real content.
|
|
32
|
+
*/
|
|
33
|
+
export declare function Skeleton({ shape, className, ...props }: SkeletonProps): React.JSX.Element;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { cn } from "../../lib/cn.js";
|
|
4
|
+
const skeletonVariants = cva(
|
|
5
|
+
[
|
|
6
|
+
"block bg-surface-raised",
|
|
7
|
+
// Shimmer only with motion allowed; with prefers-reduced-motion it stays still in
|
|
8
|
+
// its colour, which still reads as "loading".
|
|
9
|
+
"motion-safe:bg-linear-to-r motion-safe:bg-size-[300%_100%]",
|
|
10
|
+
"motion-safe:from-surface-raised motion-safe:from-40%",
|
|
11
|
+
"motion-safe:via-surface motion-safe:via-50%",
|
|
12
|
+
"motion-safe:to-surface-raised motion-safe:to-60%",
|
|
13
|
+
"motion-safe:animate-skeleton-shimmer"
|
|
14
|
+
],
|
|
15
|
+
{
|
|
16
|
+
variants: {
|
|
17
|
+
shape: {
|
|
18
|
+
line: "h-3.5 w-full rounded-full",
|
|
19
|
+
block: "h-24 w-full rounded-md",
|
|
20
|
+
circle: "size-avatar-lg shrink-0 rounded-full"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: {
|
|
24
|
+
shape: "line"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
function Skeleton({
|
|
29
|
+
shape,
|
|
30
|
+
className,
|
|
31
|
+
...props
|
|
32
|
+
}) {
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
"span",
|
|
35
|
+
{
|
|
36
|
+
"data-slot": "skeleton",
|
|
37
|
+
"aria-hidden": "true",
|
|
38
|
+
className: cn(skeletonVariants({ shape }), className),
|
|
39
|
+
...props
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
Skeleton,
|
|
45
|
+
skeletonVariants
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.js","sources":["../../../src/components/skeleton/skeleton.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type { ComponentProps } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\n// The shimmer (`animate-skeleton-shimmer`, in tokens.css) moves background-position\n// 100% → 0%, so the highlight band travels left to right; both ends are flat, so the\n// loop has no visible jump.\nexport const skeletonVariants = cva(\n [\n \"block bg-surface-raised\",\n // Shimmer only with motion allowed; with prefers-reduced-motion it stays still in\n // its colour, which still reads as \"loading\".\n \"motion-safe:bg-linear-to-r motion-safe:bg-size-[300%_100%]\",\n \"motion-safe:from-surface-raised motion-safe:from-40%\",\n \"motion-safe:via-surface motion-safe:via-50%\",\n \"motion-safe:to-surface-raised motion-safe:to-60%\",\n \"motion-safe:animate-skeleton-shimmer\",\n ],\n {\n variants: {\n shape: {\n line: \"h-3.5 w-full rounded-full\",\n block: \"h-24 w-full rounded-md\",\n circle: \"size-avatar-lg shrink-0 rounded-full\",\n },\n },\n defaultVariants: {\n shape: \"line\",\n },\n },\n);\n\nexport type SkeletonShape = \"line\" | \"block\" | \"circle\";\n\nexport interface SkeletonProps extends ComponentProps<\"span\"> {\n /**\n * `line` for a line of text (14px, the height of Body/Small) · `block` for cards and\n * images · `circle` for avatars. Resize freely with `className` (`w-3/5`, `h-40`,\n * `size-avatar-2xl`…).\n */\n shape?: SkeletonShape;\n}\n\n/**\n * Placeholder for content that is loading. It is a shape, not a mock-up.\n *\n * A skeleton is not a prettier spinner. The rule is duration and predictability:\n * - Under 300ms: show NOTHING. A skeleton that flashes for two frames is worse than\n * the wait (the delay is the app's job, not this component's).\n * - Known, stable shape (a list of appointments, a professional's card): skeleton,\n * with the SAME shape as what will arrive, or the content jumps when it lands.\n * - Unknown duration or unpredictable shape (a submission, a search): `Spinner`.\n *\n * Don't imitate a paragraph with lines of random widths: use two or three lines of\n * clearly different widths (100%, 60%) that suggest hierarchy.\n *\n * Accessibility: every skeleton is `aria-hidden`; put `aria-busy=\"true\"` on the\n * container while it loads, otherwise a screen reader announces a list of empty boxes.\n *\n * It uses `surface-raised`, not a darker grey: it must read as \"something goes here\",\n * not as real content.\n */\nexport function Skeleton({\n shape,\n className,\n ...props\n}: SkeletonProps): React.JSX.Element {\n return (\n <span\n data-slot=\"skeleton\"\n aria-hidden=\"true\"\n className={cn(skeletonVariants({ shape }), className)}\n {...props}\n />\n );\n}\n"],"names":[],"mappings":";;;AAQO,MAAM,mBAAmB;AAAA,EAC9B;AAAA,IACE;AAAA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,MAAA;AAAA,IACV;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAgCO,SAAS,SAAS;AAAA,EACvB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqC;AACnC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,WAAW,GAAG,iBAAiB,EAAE,MAAA,CAAO,GAAG,SAAS;AAAA,MACnD,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SocialButton, type SocialButtonProps, type SocialProvider, } from "./social-button";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Button as BaseButton } from "@base-ui/react/button";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
/** `phone`: a code by WhatsApp to the mobile number. */
|
|
4
|
+
export type SocialProvider = "google" | "apple" | "phone";
|
|
5
|
+
export interface SocialButtonProps extends Omit<BaseButton.Props, "className" | "children"> {
|
|
6
|
+
provider: SocialProvider;
|
|
7
|
+
/**
|
|
8
|
+
* While the provider's window opens: the mark becomes a spinner and the button
|
|
9
|
+
* ignores more taps (`aria-busy`), without looking disabled.
|
|
10
|
+
*/
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Defaults to "Continuar con Google" / "Continuar con Apple" / "Continuar con mi
|
|
14
|
+
* móvil" — "Continuar", not "Iniciar sesión": the same button signs in and signs
|
|
15
|
+
* up, and the patient doesn't need to know whether they have an account.
|
|
16
|
+
*/
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A way in: Google, Apple or the phone. The three look the same on purpose — none is
|
|
22
|
+
* "the right one", and it meets Google's and Apple's rules (a white or black button
|
|
23
|
+
* with their logo, never in another brand's colour). 44px high, full width.
|
|
24
|
+
*
|
|
25
|
+
* Never disable them until the terms are accepted: a grey button doesn't say why it
|
|
26
|
+
* doesn't work. If pressed without accepting, mark the missing checkboxes in error
|
|
27
|
+
* (`CheckboxField error`) with the message below.
|
|
28
|
+
*/
|
|
29
|
+
export declare function SocialButton({ provider, loading, children, className, type, ...props }: SocialButtonProps): React.JSX.Element;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "@base-ui/react/button";
|
|
3
|
+
import { MessageIcon } from "../../icons/generated/message.js";
|
|
4
|
+
import { cn } from "../../lib/cn.js";
|
|
5
|
+
import { useMediCoreLabels } from "../../provider/medicore-provider.js";
|
|
6
|
+
import { Spinner } from "../spinner/spinner.js";
|
|
7
|
+
import { buttonVariants } from "../button/button.js";
|
|
8
|
+
import { BrandMark } from "../brand-mark/brand-mark.js";
|
|
9
|
+
function SocialButton({
|
|
10
|
+
provider,
|
|
11
|
+
loading = false,
|
|
12
|
+
children,
|
|
13
|
+
className,
|
|
14
|
+
type = "button",
|
|
15
|
+
...props
|
|
16
|
+
}) {
|
|
17
|
+
const labels = useMediCoreLabels();
|
|
18
|
+
const mark = {
|
|
19
|
+
google: /* @__PURE__ */ jsx(BrandMark, { brand: "google" }),
|
|
20
|
+
apple: /* @__PURE__ */ jsx(BrandMark, { brand: "apple" }),
|
|
21
|
+
phone: /* @__PURE__ */ jsx(MessageIcon, {})
|
|
22
|
+
}[provider];
|
|
23
|
+
const label = {
|
|
24
|
+
google: labels.continueWithGoogle,
|
|
25
|
+
apple: labels.continueWithApple,
|
|
26
|
+
phone: labels.continueWithPhone
|
|
27
|
+
}[provider];
|
|
28
|
+
return /* @__PURE__ */ jsxs(
|
|
29
|
+
Button,
|
|
30
|
+
{
|
|
31
|
+
"data-slot": "social-button",
|
|
32
|
+
"data-provider": provider,
|
|
33
|
+
type,
|
|
34
|
+
disabled: loading,
|
|
35
|
+
focusableWhenDisabled: loading,
|
|
36
|
+
"aria-busy": loading || void 0,
|
|
37
|
+
className: cn(
|
|
38
|
+
buttonVariants({ variant: "outline", size: null }),
|
|
39
|
+
"h-control-lg w-full gap-3 px-4 [&_svg]:size-icon-md",
|
|
40
|
+
className
|
|
41
|
+
),
|
|
42
|
+
...props,
|
|
43
|
+
children: [
|
|
44
|
+
loading ? /* @__PURE__ */ jsx(Spinner, { size: 20, label: null }) : mark,
|
|
45
|
+
children ?? label
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
SocialButton
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=social-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"social-button.js","sources":["../../../src/components/social-button/social-button.tsx"],"sourcesContent":["import { Button as BaseButton } from \"@base-ui/react/button\";\nimport type { ReactNode } from \"react\";\n\nimport { MessageIcon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\nimport { BrandMark } from \"../brand-mark\";\nimport { buttonVariants } from \"../button\";\nimport { Spinner } from \"../spinner\";\n\n/** `phone`: a code by WhatsApp to the mobile number. */\nexport type SocialProvider = \"google\" | \"apple\" | \"phone\";\n\nexport interface SocialButtonProps\n extends Omit<BaseButton.Props, \"className\" | \"children\"> {\n provider: SocialProvider;\n /**\n * While the provider's window opens: the mark becomes a spinner and the button\n * ignores more taps (`aria-busy`), without looking disabled.\n */\n loading?: boolean;\n /**\n * Defaults to \"Continuar con Google\" / \"Continuar con Apple\" / \"Continuar con mi\n * móvil\" — \"Continuar\", not \"Iniciar sesión\": the same button signs in and signs\n * up, and the patient doesn't need to know whether they have an account.\n */\n children?: ReactNode;\n className?: string;\n}\n\n/**\n * A way in: Google, Apple or the phone. The three look the same on purpose — none is\n * \"the right one\", and it meets Google's and Apple's rules (a white or black button\n * with their logo, never in another brand's colour). 44px high, full width.\n *\n * Never disable them until the terms are accepted: a grey button doesn't say why it\n * doesn't work. If pressed without accepting, mark the missing checkboxes in error\n * (`CheckboxField error`) with the message below.\n */\nexport function SocialButton({\n provider,\n loading = false,\n children,\n className,\n type = \"button\",\n ...props\n}: SocialButtonProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n\n const mark = {\n google: <BrandMark brand=\"google\" />,\n apple: <BrandMark brand=\"apple\" />,\n phone: <MessageIcon />,\n }[provider];\n\n const label = {\n google: labels.continueWithGoogle,\n apple: labels.continueWithApple,\n phone: labels.continueWithPhone,\n }[provider];\n\n return (\n <BaseButton\n data-slot=\"social-button\"\n data-provider={provider}\n type={type}\n disabled={loading}\n focusableWhenDisabled={loading}\n aria-busy={loading || undefined}\n className={cn(\n buttonVariants({ variant: \"outline\", size: null }),\n \"h-control-lg w-full gap-3 px-4 [&_svg]:size-icon-md\",\n className,\n )}\n {...props}\n >\n {loading ? <Spinner size={20} label={null} /> : mark}\n {children ?? label}\n </BaseButton>\n );\n}\n"],"names":["BaseButton"],"mappings":";;;;;;;;AAuCO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAyC;AACvC,QAAM,SAAS,kBAAA;AAEf,QAAM,OAAO;AAAA,IACX,QAAQ,oBAAC,WAAA,EAAU,OAAM,SAAA,CAAS;AAAA,IAClC,OAAO,oBAAC,WAAA,EAAU,OAAM,QAAA,CAAQ;AAAA,IAChC,2BAAQ,aAAA,CAAA,CAAY;AAAA,EAAA,EACpB,QAAQ;AAEV,QAAM,QAAQ;AAAA,IACZ,QAAQ,OAAO;AAAA,IACf,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,EAAA,EACd,QAAQ;AAEV,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,iBAAe;AAAA,MACf;AAAA,MACA,UAAU;AAAA,MACV,uBAAuB;AAAA,MACvB,aAAW,WAAW;AAAA,MACtB,WAAW;AAAA,QACT,eAAe,EAAE,SAAS,WAAW,MAAM,MAAM;AAAA,QACjD;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,8BAAW,SAAA,EAAQ,MAAM,IAAI,OAAO,MAAM,IAAK;AAAA,QAC/C,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGnB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Spinner, type SpinnerProps } from "./spinner";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
export interface SpinnerProps extends Omit<ComponentProps<"span">, "color"> {
|
|
3
|
+
/** 16 inside Button and IconButton, 20 in NavItem, 24 standalone. */
|
|
4
|
+
size?: 16 | 20 | 24;
|
|
5
|
+
/** `inverse` on solid brand or error fills, where the default colour disappears. */
|
|
6
|
+
color?: "default" | "inverse";
|
|
7
|
+
/**
|
|
8
|
+
* What is loading, for screen readers. Defaults to "Cargando". Pass `null` when the
|
|
9
|
+
* spinner sits inside a control that already announces it (e.g. `aria-busy`).
|
|
10
|
+
*/
|
|
11
|
+
label?: string | null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Loading indicator: the `loading-01` glyph spinning 360° in 800ms, linear.
|
|
15
|
+
*
|
|
16
|
+
* It goes in text-secondary, not in the brand colour: it means "working on it", not
|
|
17
|
+
* success or a call to action. With `prefers-reduced-motion` it stays still, so the
|
|
18
|
+
* label becomes visible — a still glyph says nothing on its own.
|
|
19
|
+
*/
|
|
20
|
+
export declare function Spinner({ size, color, label, className, ...props }: SpinnerProps): React.JSX.Element;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { Loading01Icon } from "../../icons/generated/loading-01.js";
|
|
4
|
+
import { cn } from "../../lib/cn.js";
|
|
5
|
+
import { useMediCoreLabels } from "../../provider/medicore-provider.js";
|
|
6
|
+
const spinnerVariants = cva("inline-flex shrink-0 items-center gap-2", {
|
|
7
|
+
variants: {
|
|
8
|
+
color: {
|
|
9
|
+
default: "text-text-secondary",
|
|
10
|
+
inverse: "text-text-inverse"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
defaultVariants: {
|
|
14
|
+
color: "default"
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
const iconSizes = {
|
|
18
|
+
16: "sm",
|
|
19
|
+
20: "md",
|
|
20
|
+
24: "lg"
|
|
21
|
+
};
|
|
22
|
+
function Spinner({
|
|
23
|
+
size = 20,
|
|
24
|
+
color,
|
|
25
|
+
label,
|
|
26
|
+
className,
|
|
27
|
+
...props
|
|
28
|
+
}) {
|
|
29
|
+
const labels = useMediCoreLabels();
|
|
30
|
+
const text = label === void 0 ? labels.loading : label;
|
|
31
|
+
return /* @__PURE__ */ jsxs(
|
|
32
|
+
"span",
|
|
33
|
+
{
|
|
34
|
+
"data-slot": "spinner",
|
|
35
|
+
role: text === null ? void 0 : "status",
|
|
36
|
+
className: cn(spinnerVariants({ color }), className),
|
|
37
|
+
...props,
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
Loading01Icon,
|
|
41
|
+
{
|
|
42
|
+
size: iconSizes[size],
|
|
43
|
+
className: "motion-safe:animate-[spin_800ms_linear_infinite]"
|
|
44
|
+
}
|
|
45
|
+
),
|
|
46
|
+
text !== null && /* @__PURE__ */ jsx("span", { className: "sr-only text-body-small motion-reduce:not-sr-only", children: text })
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
Spinner
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type { ComponentProps } from \"react\";\n\nimport { Loading01Icon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\n\nconst spinnerVariants = cva(\"inline-flex shrink-0 items-center gap-2\", {\n variants: {\n color: {\n default: \"text-text-secondary\",\n inverse: \"text-text-inverse\",\n },\n },\n defaultVariants: {\n color: \"default\",\n },\n});\n\nconst iconSizes = {\n 16: \"sm\",\n 20: \"md\",\n 24: \"lg\",\n} as const;\n\nexport interface SpinnerProps extends Omit<ComponentProps<\"span\">, \"color\"> {\n /** 16 inside Button and IconButton, 20 in NavItem, 24 standalone. */\n size?: 16 | 20 | 24;\n /** `inverse` on solid brand or error fills, where the default colour disappears. */\n color?: \"default\" | \"inverse\";\n /**\n * What is loading, for screen readers. Defaults to \"Cargando\". Pass `null` when the\n * spinner sits inside a control that already announces it (e.g. `aria-busy`).\n */\n label?: string | null;\n}\n\n/**\n * Loading indicator: the `loading-01` glyph spinning 360° in 800ms, linear.\n *\n * It goes in text-secondary, not in the brand colour: it means \"working on it\", not\n * success or a call to action. With `prefers-reduced-motion` it stays still, so the\n * label becomes visible — a still glyph says nothing on its own.\n */\nexport function Spinner({\n size = 20,\n color,\n label,\n className,\n ...props\n}: SpinnerProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const text = label === undefined ? labels.loading : label;\n\n return (\n <span\n data-slot=\"spinner\"\n role={text === null ? undefined : \"status\"}\n className={cn(spinnerVariants({ color }), className)}\n {...props}\n >\n <Loading01Icon\n size={iconSizes[size]}\n className=\"motion-safe:animate-[spin_800ms_linear_infinite]\"\n />\n {text !== null && (\n <span className=\"sr-only text-body-small motion-reduce:not-sr-only\">\n {text}\n </span>\n )}\n </span>\n );\n}\n"],"names":[],"mappings":";;;;;AAOA,MAAM,kBAAkB,IAAI,2CAA2C;AAAA,EACrE,UAAU;AAAA,IACR,OAAO;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,iBAAiB;AAAA,IACf,OAAO;AAAA,EAAA;AAEX,CAAC;AAED,MAAM,YAAY;AAAA,EAChB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAqBO,SAAS,QAAQ;AAAA,EACtB,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAoC;AAClC,QAAM,SAAS,kBAAA;AACf,QAAM,OAAO,UAAU,SAAY,OAAO,UAAU;AAEpD,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAM,SAAS,OAAO,SAAY;AAAA,MAClC,WAAW,GAAG,gBAAgB,EAAE,MAAA,CAAO,GAAG,SAAS;AAAA,MAClD,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,UAAU,IAAI;AAAA,YACpB,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAEX,SAAS,QACR,oBAAC,QAAA,EAAK,WAAU,qDACb,UAAA,KAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { StatTile, type StatTileProps } from "./stat-tile";
|