@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 @@
|
|
|
1
|
+
{"version":3,"file":"health-record.js","sources":["../../../src/components/health-record/health-record.tsx"],"sourcesContent":["import { type ComponentProps, type ReactNode, useId } from \"react\";\n\nimport {\n CheckIcon,\n DotsVerticalIcon,\n Edit05Icon,\n Trash01Icon,\n} from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { useMediCoreLabels } from \"../../provider\";\nimport { Button } from \"../button\";\nimport { IconButton } from \"../icon-button\";\nimport { IconContainer } from \"../icon-container\";\nimport {\n Menu,\n MenuContent,\n MenuItem,\n MenuSeparator,\n MenuTrigger,\n} from \"../menu\";\nimport { Tooltip } from \"../tooltip\";\n\n/*\n * Figma `Layout` is not a prop: the section is a container and switches to Desktop\n * (a table with a header row) from 720px wide; below that the rows stack (Mobile).\n * Mobile-first classes, `@min-[720px]:` for Desktop.\n */\n\nexport type HealthRecordHeadingLevel = 2 | 3 | 4 | 5 | 6;\n\nexport type HealthRecordSectionState = \"empty\" | \"declined\" | \"list\";\n\nexport interface HealthRecordSectionProps\n extends Omit<ComponentProps<\"section\">, \"title\"> {\n /** The category: \"Alergias\", \"Medicación\", \"Enfermedades\". Heading/h4 look. */\n title: ReactNode;\n /** Heading level for the page outline. Default 2 (under the page's h1). */\n headingLevel?: HealthRecordHeadingLevel;\n /**\n * The category's icon, shown in Empty in a brand `IconContainer`:\n * `AllergyPeanutIcon` (allergies), `PillIcon` (medication), `VirusIcon` or\n * `MedicalCrossIcon` (conditions).\n */\n icon?: ReactNode;\n /**\n * The patient's three possible answers: `empty` (hasn't said anything yet: \"Añadir…\"\n * and \"No refiero…\") · `declined` (has said there is none: shown as a confirmed\n * fact, green check) · `list` (has records: `header` + `HealthRecordRow`s).\n */\n state: HealthRecordSectionState;\n /** Empty: what goes here and how to say there's none. */\n description?: ReactNode;\n /** Declined: replaces the title (\"No refieres alergias\"). */\n declinedTitle?: ReactNode;\n /** Declined: \"Has indicado que no tienes alergias. Si en el futuro…\". */\n declinedDescription?: ReactNode;\n /** \"Añadir alergia\". The primary action (secondary at the bottom of a mobile list). */\n addLabel: ReactNode;\n onAdd?: () => void;\n /**\n * Empty only: \"No refiero alergias\". It exists because, for the doctor, \"has no\n * allergies\" and \"hasn't filled it in\" are different data.\n */\n declineLabel?: ReactNode;\n onDecline?: () => void;\n /** List: a `HealthRecordHeader` with the column names. */\n header?: ReactNode;\n /** List: the `HealthRecordRow`s. */\n children?: ReactNode;\n}\n\n/**\n * The medical-history block for one category (allergies, medication, conditions):\n * one instance per category.\n *\n * On mobile the buttons take the full width and the primary goes on top; each row's\n * actions go in its \"⋮\" menu. The list is a real `<table>` named by the title.\n */\nexport function HealthRecordSection({\n title,\n headingLevel = 2,\n icon,\n state,\n description,\n declinedTitle,\n declinedDescription,\n addLabel,\n onAdd,\n declineLabel,\n onDecline,\n header,\n children,\n className,\n ...props\n}: HealthRecordSectionProps): React.JSX.Element {\n const titleId = useId();\n const Heading = `h${headingLevel}` as const;\n const declined = state === \"declined\";\n const list = state === \"list\";\n const leadingIcon = declined ? (\n <IconContainer size={32} tone=\"success\" icon={<CheckIcon />} />\n ) : (\n state === \"empty\" &&\n icon && <IconContainer size={32} tone=\"brand\" icon={icon} />\n );\n const text = declined ? declinedDescription : list ? undefined : description;\n const fullWidth = \"w-full @min-[720px]:w-auto\";\n\n return (\n <section\n data-slot=\"health-record-section\"\n data-state={state}\n aria-labelledby={titleId}\n className={cn(\"@container rounded-xl bg-background shadow-s\", className)}\n {...props}\n >\n <div className=\"flex flex-col gap-4 p-4 @min-[720px]:p-6\">\n <div className=\"flex flex-col gap-4 @min-[720px]:flex-row @min-[720px]:items-center @min-[720px]:gap-6\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n <div className=\"flex items-center gap-3\">\n {leadingIcon}\n <Heading\n id={titleId}\n className=\"min-w-0 text-heading-h4 text-text-primary\"\n >\n {declined ? (declinedTitle ?? title) : title}\n </Heading>\n </div>\n {text && (\n <p className=\"text-body-small text-text-secondary\">{text}</p>\n )}\n </div>\n {/* DOM order primary first; on desktop the row is reversed so it ends up last. */}\n <div className=\"flex flex-col gap-3 @min-[720px]:flex-row-reverse @min-[720px]:items-center\">\n <Button\n size=\"small\"\n onClick={onAdd}\n className={cn(\n fullWidth,\n list && \"hidden @min-[720px]:inline-flex\",\n )}\n >\n {addLabel}\n </Button>\n {state === \"empty\" && declineLabel && (\n <Button\n size=\"small\"\n variant=\"secondary\"\n onClick={onDecline}\n className={fullWidth}\n >\n {declineLabel}\n </Button>\n )}\n </div>\n </div>\n\n {list && (\n <table\n aria-labelledby={titleId}\n className=\"block w-full border-collapse @min-[720px]:table\"\n >\n {header}\n <tbody className=\"block @min-[720px]:table-row-group\">\n {children}\n </tbody>\n </table>\n )}\n\n {list && (\n <Button\n size=\"small\"\n variant=\"secondary\"\n onClick={onAdd}\n className=\"w-full @min-[720px]:hidden\"\n >\n {addLabel}\n </Button>\n )}\n </div>\n </section>\n );\n}\n\nexport interface HealthRecordHeaderProps\n extends Omit<ComponentProps<\"thead\">, \"children\"> {\n /**\n * The three column names: the record (\"Alergia\", \"Medicamento\", \"Enfermedad\"),\n * \"Detalles\" and the data (\"Gravedad\", \"Posología\").\n */\n columns: readonly [ReactNode, ReactNode, ReactNode];\n}\n\n/**\n * The header row of a `HealthRecordSection` list (`header` prop). Visible on\n * desktop; on mobile the rows stack and it is only read by screen readers.\n */\nexport function HealthRecordHeader({\n columns,\n className,\n ...props\n}: HealthRecordHeaderProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const cell = \"py-2 text-left align-top text-label-small text-text-secondary\";\n\n return (\n <thead\n data-slot=\"health-record-header\"\n className={cn(\n \"sr-only @min-[720px]:not-sr-only @min-[720px]:table-header-group\",\n className,\n )}\n {...props}\n >\n <tr className=\"border-border-subtle border-b\">\n <th scope=\"col\" className={cn(cell, \"w-44 pr-6\")}>\n {columns[0]}\n </th>\n <th scope=\"col\" className={cn(cell, \"pr-6\")}>\n {columns[1]}\n </th>\n <th scope=\"col\" className={cn(cell, \"w-40 pr-6\")}>\n {columns[2]}\n </th>\n <th scope=\"col\" className={cn(cell, \"w-19\")}>\n <span className=\"sr-only\">{labels.healthRecordActions}</span>\n </th>\n </tr>\n </thead>\n );\n}\n\nexport interface HealthRecordRowProps\n extends Omit<ComponentProps<\"tr\">, \"children\"> {\n /** \"Pescados y mariscos\", \"Enalapril 10 mg\". Also names the actions. */\n name: string;\n /** \"Picor de garganta, dificultad para respirar y ronchas…\". */\n details?: ReactNode;\n /**\n * Meta=Severity: a `<SeverityIndicator level={3} />`. Meta=Text: the dosage of a\n * medication (\"3 veces al día\").\n */\n meta?: ReactNode;\n /** Shows \"Editar\" (ghost IconButton with Tooltip on desktop, the \"⋮\" menu on mobile). */\n onEdit?: () => void;\n /**\n * Shows \"Eliminar\". It must open a confirmation `ConfirmModal`: deleting clinical\n * data can't be undone with a Toast.\n */\n onDelete?: () => void;\n}\n\n/**\n * One record of the medical history: an allergy, a medication or a condition. A\n * table row of `HealthRecordSection`.\n *\n * Desktop: name · details · meta · edit and delete (ghost small IconButtons named\n * \"Editar Pescados y mariscos\" / \"Eliminar Pescados y mariscos\", with a Tooltip;\n * 36 drawn, 44 to the touch). Mobile: name and \"⋮\" on top, then details and meta;\n * the actions are in the menu.\n */\nexport function HealthRecordRow({\n name,\n details,\n meta,\n onEdit,\n onDelete,\n className,\n ...props\n}: HealthRecordRowProps): React.JSX.Element {\n const labels = useMediCoreLabels();\n const hasActions = Boolean(onEdit || onDelete);\n const cell =\n \"block @min-[720px]:table-cell @min-[720px]:py-4 @min-[720px]:align-top\";\n\n return (\n <tr\n data-slot=\"health-record-row\"\n className={cn(\n \"grid grid-cols-[1fr_auto] items-center gap-x-2 gap-y-2 border-border-subtle border-b py-4\",\n \"@min-[720px]:table-row @min-[720px]:py-0\",\n className,\n )}\n {...props}\n >\n <th\n scope=\"row\"\n className={cn(\n cell,\n \"min-w-0 text-left text-label-strong text-text-primary @min-[720px]:w-44 @min-[720px]:pr-6\",\n )}\n >\n {name}\n </th>\n <td\n className={cn(\n cell,\n \"col-span-2 text-body-small text-text-primary @min-[720px]:pr-6\",\n )}\n >\n {details}\n </td>\n <td\n className={cn(\n cell,\n \"col-span-2 flex text-body-small text-text-primary @min-[720px]:w-40 @min-[720px]:pr-6\",\n )}\n >\n {meta}\n </td>\n <td className=\"col-start-2 row-start-1 flex justify-end @min-[720px]:table-cell @min-[720px]:w-19 @min-[720px]:py-2 @min-[720px]:align-top\">\n {hasActions && (\n <>\n <div className=\"hidden items-center gap-1 @min-[720px]:flex\">\n {onEdit && (\n <Tooltip label={labels.healthRecordEdit}>\n <IconButton\n variant=\"ghost\"\n size=\"small\"\n icon={<Edit05Icon />}\n aria-label={labels.healthRecordEditItem(name)}\n onClick={onEdit}\n />\n </Tooltip>\n )}\n {onDelete && (\n <Tooltip label={labels.healthRecordDelete}>\n <IconButton\n variant=\"ghost\"\n size=\"small\"\n icon={<Trash01Icon />}\n aria-label={labels.healthRecordDeleteItem(name)}\n onClick={onDelete}\n className=\"text-text-error\"\n />\n </Tooltip>\n )}\n </div>\n <div className=\"flex @min-[720px]:hidden\">\n <Menu>\n <MenuTrigger\n aria-label={labels.healthRecordOptions(name)}\n render={\n <IconButton\n variant=\"ghost\"\n size=\"small\"\n icon={<DotsVerticalIcon />}\n aria-label={labels.healthRecordOptions(name)}\n />\n }\n />\n <MenuContent label={name}>\n {onEdit && (\n <MenuItem icon={<Edit05Icon />} onClick={onEdit}>\n {labels.healthRecordEdit}\n </MenuItem>\n )}\n {onEdit && onDelete && <MenuSeparator />}\n {onDelete && (\n <MenuItem\n type=\"destructive\"\n icon={<Trash01Icon />}\n onClick={onDelete}\n >\n {labels.healthRecordDelete}\n </MenuItem>\n )}\n </MenuContent>\n </Menu>\n </div>\n </>\n )}\n </td>\n </tr>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { HealthRecordHeader, type HealthRecordHeaderProps, type HealthRecordHeadingLevel, HealthRecordRow, type HealthRecordRowProps, HealthRecordSection, type HealthRecordSectionProps, type HealthRecordSectionState, } from "./health-record";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComponentProps, ReactNode } from "react";
|
|
2
|
+
export interface HeroGreetingProps extends Omit<ComponentProps<"div">, "title"> {
|
|
3
|
+
/** "Hola, Marta". The page's only `<h1>`. No emoji. */
|
|
4
|
+
title: ReactNode;
|
|
5
|
+
/** "Tu salud, siempre a tu lado." */
|
|
6
|
+
subtitle?: ReactNode;
|
|
7
|
+
/** The access to the advisor: `<AdvisorContact variant="hero" />`. */
|
|
8
|
+
advisor?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The home's header: the patient's greeting and the access to their advisor.
|
|
12
|
+
* `brand-dark` background in both modes, text in `text-inverse` (16.3:1).
|
|
13
|
+
*
|
|
14
|
+
* Figma `Layout` is not a prop: from 800px wide the advisor sits on the right
|
|
15
|
+
* (Desktop), below it goes under the greeting (Mobile).
|
|
16
|
+
*/
|
|
17
|
+
export declare function HeroGreeting({ title, subtitle, advisor, className, ...props }: HeroGreetingProps): React.JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../lib/cn.js";
|
|
3
|
+
function HeroGreeting({
|
|
4
|
+
title,
|
|
5
|
+
subtitle,
|
|
6
|
+
advisor,
|
|
7
|
+
className,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
"data-slot": "hero-greeting",
|
|
14
|
+
className: cn("@container bg-brand-dark", className),
|
|
15
|
+
...props,
|
|
16
|
+
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 px-4 py-6 @min-[800px]:flex-row @min-[800px]:items-center @min-[800px]:px-15 @min-[800px]:py-8", children: [
|
|
17
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [
|
|
18
|
+
/* @__PURE__ */ jsx("h1", { className: "text-heading-h2 text-text-inverse", children: title }),
|
|
19
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "text-body-default text-text-inverse-secondary", children: subtitle })
|
|
20
|
+
] }),
|
|
21
|
+
advisor && /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-col @min-[800px]:w-105 @min-[800px]:shrink-0", children: advisor })
|
|
22
|
+
] })
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
HeroGreeting
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=hero-greeting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero-greeting.js","sources":["../../../src/components/hero-greeting/hero-greeting.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\nexport interface HeroGreetingProps\n extends Omit<ComponentProps<\"div\">, \"title\"> {\n /** \"Hola, Marta\". The page's only `<h1>`. No emoji. */\n title: ReactNode;\n /** \"Tu salud, siempre a tu lado.\" */\n subtitle?: ReactNode;\n /** The access to the advisor: `<AdvisorContact variant=\"hero\" />`. */\n advisor?: ReactNode;\n}\n\n/**\n * The home's header: the patient's greeting and the access to their advisor.\n * `brand-dark` background in both modes, text in `text-inverse` (16.3:1).\n *\n * Figma `Layout` is not a prop: from 800px wide the advisor sits on the right\n * (Desktop), below it goes under the greeting (Mobile).\n */\nexport function HeroGreeting({\n title,\n subtitle,\n advisor,\n className,\n ...props\n}: HeroGreetingProps): React.JSX.Element {\n return (\n <div\n data-slot=\"hero-greeting\"\n className={cn(\"@container bg-brand-dark\", className)}\n {...props}\n >\n <div className=\"flex flex-col gap-6 px-4 py-6 @min-[800px]:flex-row @min-[800px]:items-center @min-[800px]:px-15 @min-[800px]:py-8\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <h1 className=\"text-heading-h2 text-text-inverse\">{title}</h1>\n {subtitle && (\n <p className=\"text-body-default text-text-inverse-secondary\">\n {subtitle}\n </p>\n )}\n </div>\n {advisor && (\n <div className=\"flex min-w-0 flex-col @min-[800px]:w-105 @min-[800px]:shrink-0\">\n {advisor}\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":";;AAqBO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyC;AACvC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,4BAA4B,SAAS;AAAA,MAClD,GAAG;AAAA,MAEJ,UAAA,qBAAC,OAAA,EAAI,WAAU,sHACb,UAAA;AAAA,QAAA,qBAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,UAAA,oBAAC,MAAA,EAAG,WAAU,qCAAqC,UAAA,OAAM;AAAA,UACxD,YACC,oBAAC,KAAA,EAAE,WAAU,iDACV,UAAA,SAAA,CACH;AAAA,QAAA,GAEJ;AAAA,QACC,WACC,oBAAC,OAAA,EAAI,WAAU,kEACZ,UAAA,QAAA,CACH;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { HeroGreeting, type HeroGreetingProps } from "./hero-greeting";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Button as BaseButton } from "@base-ui/react/button";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import { type ButtonProps } from "../button";
|
|
4
|
+
export type IconButtonVariant = NonNullable<ButtonProps["variant"]>;
|
|
5
|
+
export type IconButtonSize = "default" | "small";
|
|
6
|
+
/** Square sizes on top of `buttonVariants`, which keeps the colours of each variant. */
|
|
7
|
+
export declare const iconButtonVariants: (props?: ({
|
|
8
|
+
size?: "small" | "default" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
export interface IconButtonProps extends Omit<BaseButton.Props, "className" | "children"> {
|
|
11
|
+
/**
|
|
12
|
+
* Required: an icon says nothing to a screen reader. Use the same text in the
|
|
13
|
+
* Tooltip that accompanies the button.
|
|
14
|
+
*/
|
|
15
|
+
"aria-label": string;
|
|
16
|
+
/** A MediCore icon (`<XCloseIcon />`). It is sized by the button: 20, or 16 in `small`. */
|
|
17
|
+
icon: ReactNode;
|
|
18
|
+
variant?: IconButtonVariant;
|
|
19
|
+
size?: IconButtonSize;
|
|
20
|
+
/** Keeps the variant colour, swaps the icon for a spinner and ignores clicks without losing focus. */
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Button whose only content is an icon. Same variants, states and sizes as `Button`,
|
|
26
|
+
* so switching between the two keeps them.
|
|
27
|
+
*
|
|
28
|
+
* - `aria-label` is mandatory, and in the UI it goes with a Tooltip showing the same
|
|
29
|
+
* text. If the icon isn't obvious, don't look for another icon: use a `Button`
|
|
30
|
+
* with a label.
|
|
31
|
+
* - `ghost` is the one for toolbars and headers (the close "x" of a Modal).
|
|
32
|
+
* `inverse` and `inverse-ghost` only on dark surfaces (`bg-brand-dark`, a photo
|
|
33
|
+
* with a scrim).
|
|
34
|
+
* - The drawing is 40×40 (36 in `small`, only for dense desktop bars) but the hit
|
|
35
|
+
* area is always 44×44.
|
|
36
|
+
*/
|
|
37
|
+
export declare function IconButton({ variant, size, disabled, loading, icon, className, type, ...props }: IconButtonProps): React.JSX.Element;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from "@base-ui/react/button";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../../lib/cn.js";
|
|
5
|
+
import { Spinner } from "../spinner/spinner.js";
|
|
6
|
+
import { buttonVariants } from "../button/button.js";
|
|
7
|
+
const iconButtonVariants = cva("", {
|
|
8
|
+
variants: {
|
|
9
|
+
size: {
|
|
10
|
+
default: "size-control-md [&_svg]:size-icon-md",
|
|
11
|
+
small: "size-control-sm [&_svg]:size-icon-sm"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
defaultVariants: {
|
|
15
|
+
size: "default"
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
const inverseSpinner = /* @__PURE__ */ new Set([
|
|
19
|
+
"primary",
|
|
20
|
+
"destructive",
|
|
21
|
+
"inverse-ghost"
|
|
22
|
+
]);
|
|
23
|
+
function IconButton({
|
|
24
|
+
variant = "primary",
|
|
25
|
+
size = "default",
|
|
26
|
+
disabled = false,
|
|
27
|
+
loading = false,
|
|
28
|
+
icon,
|
|
29
|
+
className,
|
|
30
|
+
type = "button",
|
|
31
|
+
...props
|
|
32
|
+
}) {
|
|
33
|
+
return /* @__PURE__ */ jsx(
|
|
34
|
+
Button,
|
|
35
|
+
{
|
|
36
|
+
"data-slot": "icon-button",
|
|
37
|
+
type,
|
|
38
|
+
disabled: disabled || loading,
|
|
39
|
+
focusableWhenDisabled: loading,
|
|
40
|
+
"aria-busy": loading || void 0,
|
|
41
|
+
className: cn(
|
|
42
|
+
// `size: null` drops Button's height and horizontal padding; the square
|
|
43
|
+
// size comes from iconButtonVariants.
|
|
44
|
+
buttonVariants({ variant, size: null, disabled }),
|
|
45
|
+
iconButtonVariants({ size }),
|
|
46
|
+
className
|
|
47
|
+
),
|
|
48
|
+
...props,
|
|
49
|
+
children: loading ? /* @__PURE__ */ jsx(
|
|
50
|
+
Spinner,
|
|
51
|
+
{
|
|
52
|
+
size: size === "small" ? 16 : 20,
|
|
53
|
+
color: inverseSpinner.has(variant) ? "inverse" : "default",
|
|
54
|
+
label: null
|
|
55
|
+
}
|
|
56
|
+
) : icon
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
IconButton,
|
|
62
|
+
iconButtonVariants
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=icon-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-button.js","sources":["../../../src/components/icon-button/icon-button.tsx"],"sourcesContent":["import { Button as BaseButton } from \"@base-ui/react/button\";\nimport { cva } from \"class-variance-authority\";\nimport type { ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\nimport { type ButtonProps, buttonVariants } from \"../button\";\nimport { Spinner } from \"../spinner\";\n\nexport type IconButtonVariant = NonNullable<ButtonProps[\"variant\"]>;\n\nexport type IconButtonSize = \"default\" | \"small\";\n\n/** Square sizes on top of `buttonVariants`, which keeps the colours of each variant. */\nexport const iconButtonVariants = cva(\"\", {\n variants: {\n size: {\n default: \"size-control-md [&_svg]:size-icon-md\",\n small: \"size-control-sm [&_svg]:size-icon-sm\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n});\n\n// Figma: the spinner goes inverse on solid fills (and on dark surfaces) and in\n// text-secondary on the light variants.\nconst inverseSpinner: ReadonlySet<IconButtonVariant> = new Set([\n \"primary\",\n \"destructive\",\n \"inverse-ghost\",\n]);\n\nexport interface IconButtonProps\n extends Omit<BaseButton.Props, \"className\" | \"children\"> {\n /**\n * Required: an icon says nothing to a screen reader. Use the same text in the\n * Tooltip that accompanies the button.\n */\n \"aria-label\": string;\n /** A MediCore icon (`<XCloseIcon />`). It is sized by the button: 20, or 16 in `small`. */\n icon: ReactNode;\n variant?: IconButtonVariant;\n size?: IconButtonSize;\n /** Keeps the variant colour, swaps the icon for a spinner and ignores clicks without losing focus. */\n loading?: boolean;\n className?: string;\n}\n\n/**\n * Button whose only content is an icon. Same variants, states and sizes as `Button`,\n * so switching between the two keeps them.\n *\n * - `aria-label` is mandatory, and in the UI it goes with a Tooltip showing the same\n * text. If the icon isn't obvious, don't look for another icon: use a `Button`\n * with a label.\n * - `ghost` is the one for toolbars and headers (the close \"x\" of a Modal).\n * `inverse` and `inverse-ghost` only on dark surfaces (`bg-brand-dark`, a photo\n * with a scrim).\n * - The drawing is 40×40 (36 in `small`, only for dense desktop bars) but the hit\n * area is always 44×44.\n */\nexport function IconButton({\n variant = \"primary\",\n size = \"default\",\n disabled = false,\n loading = false,\n icon,\n className,\n type = \"button\",\n ...props\n}: IconButtonProps): React.JSX.Element {\n return (\n <BaseButton\n data-slot=\"icon-button\"\n type={type}\n disabled={disabled || loading}\n focusableWhenDisabled={loading}\n aria-busy={loading || undefined}\n className={cn(\n // `size: null` drops Button's height and horizontal padding; the square\n // size comes from iconButtonVariants.\n buttonVariants({ variant, size: null, disabled }),\n iconButtonVariants({ size }),\n className,\n )}\n {...props}\n >\n {loading ? (\n <Spinner\n size={size === \"small\" ? 16 : 20}\n color={inverseSpinner.has(variant) ? \"inverse\" : \"default\"}\n label={null}\n />\n ) : (\n icon\n )}\n </BaseButton>\n );\n}\n"],"names":["BaseButton"],"mappings":";;;;;;AAaO,MAAM,qBAAqB,IAAI,IAAI;AAAA,EACxC,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC;AAID,MAAM,qCAAqD,IAAI;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AACF,CAAC;AA+BM,SAAS,WAAW;AAAA,EACzB,UAAU;AAAA,EACV,OAAO;AAAA,EACP,WAAW;AAAA,EACX,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAuC;AACrC,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,uBAAuB;AAAA,MACvB,aAAW,WAAW;AAAA,MACtB,WAAW;AAAA;AAAA;AAAA,QAGT,eAAe,EAAE,SAAS,MAAM,MAAM,UAAU;AAAA,QAChD,mBAAmB,EAAE,MAAM;AAAA,QAC3B;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEH,UAAA,UACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAM,SAAS,UAAU,KAAK;AAAA,UAC9B,OAAO,eAAe,IAAI,OAAO,IAAI,YAAY;AAAA,UACjD,OAAO;AAAA,QAAA;AAAA,MAAA,IAGT;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, iconButtonVariants, } from "./icon-button";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ComponentProps, ReactNode } from "react";
|
|
2
|
+
export declare const iconContainerVariants: (props?: ({
|
|
3
|
+
size?: 32 | 40 | 48 | null | undefined;
|
|
4
|
+
tone?: "error" | "brand" | "neutral" | "success" | "warning" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export type IconContainerSize = 32 | 40 | 48;
|
|
7
|
+
export type IconContainerTone = "neutral" | "brand" | "success" | "warning" | "error";
|
|
8
|
+
export interface IconContainerProps extends Omit<ComponentProps<"span">, "children"> {
|
|
9
|
+
/** A MediCore icon (`<ActivityHeartIcon />`). It is sized by the container: 32→16, 40→20, 48→24. */
|
|
10
|
+
icon: ReactNode;
|
|
11
|
+
size?: IconContainerSize;
|
|
12
|
+
/**
|
|
13
|
+
* Semantic, not decoration: `neutral` for things without a state, `brand` for an
|
|
14
|
+
* entry to a service, `success`/`warning`/`error` only when the content really has
|
|
15
|
+
* that state (a download icon is not `success`).
|
|
16
|
+
*/
|
|
17
|
+
tone?: IconContainerTone;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Rounded square with an icon inside: the leading element of list rows, service
|
|
21
|
+
* blocks and cards.
|
|
22
|
+
*
|
|
23
|
+
* - Icons only, never text: `warning` is 3.93:1, enough for an icon (WCAG 1.4.11) but
|
|
24
|
+
* not for text.
|
|
25
|
+
* - Its fill against the surface is 1.07–1.14:1 on purpose: it is decoration, not a
|
|
26
|
+
* control boundary. If it has to look pressable, the ListRow or Card around it does.
|
|
27
|
+
* - Square look (the old Square_40): override the radius, `className="rounded-sm"`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function IconContainer({ icon, size, tone, className, ...props }: IconContainerProps): React.JSX.Element;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { cn } from "../../lib/cn.js";
|
|
4
|
+
const iconContainerVariants = cva(
|
|
5
|
+
"inline-flex shrink-0 items-center justify-center [&>svg]:shrink-0",
|
|
6
|
+
{
|
|
7
|
+
variants: {
|
|
8
|
+
// The icon size goes with the container size: it can't be mismatched.
|
|
9
|
+
size: {
|
|
10
|
+
32: "size-avatar-md rounded-lg [&>svg]:size-icon-sm",
|
|
11
|
+
40: "size-avatar-lg rounded-xl [&>svg]:size-icon-md",
|
|
12
|
+
48: "size-avatar-xl rounded-xl [&>svg]:size-icon-lg"
|
|
13
|
+
},
|
|
14
|
+
tone: {
|
|
15
|
+
neutral: "bg-surface-raised text-text-primary",
|
|
16
|
+
brand: "bg-brand-subtle text-text-brand",
|
|
17
|
+
success: "bg-success-subtle text-text-success",
|
|
18
|
+
warning: "bg-warning-subtle text-text-warning",
|
|
19
|
+
error: "bg-error-subtle text-text-error"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
defaultVariants: {
|
|
23
|
+
size: 32,
|
|
24
|
+
tone: "neutral"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
function IconContainer({
|
|
29
|
+
icon,
|
|
30
|
+
size,
|
|
31
|
+
tone,
|
|
32
|
+
className,
|
|
33
|
+
...props
|
|
34
|
+
}) {
|
|
35
|
+
return /* @__PURE__ */ jsx(
|
|
36
|
+
"span",
|
|
37
|
+
{
|
|
38
|
+
"data-slot": "icon-container",
|
|
39
|
+
className: cn(iconContainerVariants({ size, tone }), className),
|
|
40
|
+
...props,
|
|
41
|
+
children: icon
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
IconContainer,
|
|
47
|
+
iconContainerVariants
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=icon-container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-container.js","sources":["../../../src/components/icon-container/icon-container.tsx"],"sourcesContent":["import { cva } from \"class-variance-authority\";\nimport type { ComponentProps, ReactNode } from \"react\";\n\nimport { cn } from \"../../lib/cn\";\n\nexport const iconContainerVariants = cva(\n \"inline-flex shrink-0 items-center justify-center [&>svg]:shrink-0\",\n {\n variants: {\n // The icon size goes with the container size: it can't be mismatched.\n size: {\n 32: \"size-avatar-md rounded-lg [&>svg]:size-icon-sm\",\n 40: \"size-avatar-lg rounded-xl [&>svg]:size-icon-md\",\n 48: \"size-avatar-xl rounded-xl [&>svg]:size-icon-lg\",\n },\n tone: {\n neutral: \"bg-surface-raised text-text-primary\",\n brand: \"bg-brand-subtle text-text-brand\",\n success: \"bg-success-subtle text-text-success\",\n warning: \"bg-warning-subtle text-text-warning\",\n error: \"bg-error-subtle text-text-error\",\n },\n },\n defaultVariants: {\n size: 32,\n tone: \"neutral\",\n },\n },\n);\n\nexport type IconContainerSize = 32 | 40 | 48;\n\nexport type IconContainerTone =\n | \"neutral\"\n | \"brand\"\n | \"success\"\n | \"warning\"\n | \"error\";\n\nexport interface IconContainerProps\n extends Omit<ComponentProps<\"span\">, \"children\"> {\n /** A MediCore icon (`<ActivityHeartIcon />`). It is sized by the container: 32→16, 40→20, 48→24. */\n icon: ReactNode;\n size?: IconContainerSize;\n /**\n * Semantic, not decoration: `neutral` for things without a state, `brand` for an\n * entry to a service, `success`/`warning`/`error` only when the content really has\n * that state (a download icon is not `success`).\n */\n tone?: IconContainerTone;\n}\n\n/**\n * Rounded square with an icon inside: the leading element of list rows, service\n * blocks and cards.\n *\n * - Icons only, never text: `warning` is 3.93:1, enough for an icon (WCAG 1.4.11) but\n * not for text.\n * - Its fill against the surface is 1.07–1.14:1 on purpose: it is decoration, not a\n * control boundary. If it has to look pressable, the ListRow or Card around it does.\n * - Square look (the old Square_40): override the radius, `className=\"rounded-sm\"`.\n */\nexport function IconContainer({\n icon,\n size,\n tone,\n className,\n ...props\n}: IconContainerProps): React.JSX.Element {\n return (\n <span\n data-slot=\"icon-container\"\n className={cn(iconContainerVariants({ size, tone }), className)}\n {...props}\n >\n {icon}\n </span>\n );\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,wBAAwB;AAAA,EACnC;AAAA,EACA;AAAA,IACE,UAAU;AAAA;AAAA,MAER,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MAAA;AAAA,MAEN,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,IACT;AAAA,IAEF,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAkCO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA0C;AACxC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,sBAAsB,EAAE,MAAM,KAAA,CAAM,GAAG,SAAS;AAAA,MAC7D,GAAG;AAAA,MAEH,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { IconContainer, type IconContainerProps, type IconContainerSize, type IconContainerTone, iconContainerVariants, } from "./icon-container";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ComponentProps } from "react";
|
|
2
|
+
export interface IncludedItemProps extends ComponentProps<"li"> {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* One item of "Qué incluye" in a programme page. It is an `<li>`: put it in a
|
|
6
|
+
* `<ul>` (a grid of three on desktop). The check is decorative.
|
|
7
|
+
*
|
|
8
|
+
* Only what the programme really includes and ops backs up.
|
|
9
|
+
*/
|
|
10
|
+
export declare function IncludedItem({ className, children, ...props }: IncludedItemProps): React.JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { CheckIcon } from "../../icons/generated/check.js";
|
|
3
|
+
import { cn } from "../../lib/cn.js";
|
|
4
|
+
import { IconContainer } from "../icon-container/icon-container.js";
|
|
5
|
+
function IncludedItem({
|
|
6
|
+
className,
|
|
7
|
+
children,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsxs(
|
|
11
|
+
"li",
|
|
12
|
+
{
|
|
13
|
+
"data-slot": "included-item",
|
|
14
|
+
className: cn(
|
|
15
|
+
"flex min-w-0 items-center gap-3 rounded-xl border border-border-subtle bg-background p-3",
|
|
16
|
+
className
|
|
17
|
+
),
|
|
18
|
+
...props,
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ jsx(
|
|
21
|
+
IconContainer,
|
|
22
|
+
{
|
|
23
|
+
size: 32,
|
|
24
|
+
tone: "success",
|
|
25
|
+
icon: /* @__PURE__ */ jsx(CheckIcon, {}),
|
|
26
|
+
"aria-hidden": true
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 text-body-small text-text-primary", children })
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
IncludedItem
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=included-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"included-item.js","sources":["../../../src/components/included-item/included-item.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\n\nimport { CheckIcon } from \"../../icons\";\nimport { cn } from \"../../lib/cn\";\nimport { IconContainer } from \"../icon-container\";\n\nexport interface IncludedItemProps extends ComponentProps<\"li\"> {}\n\n/**\n * One item of \"Qué incluye\" in a programme page. It is an `<li>`: put it in a\n * `<ul>` (a grid of three on desktop). The check is decorative.\n *\n * Only what the programme really includes and ops backs up.\n */\nexport function IncludedItem({\n className,\n children,\n ...props\n}: IncludedItemProps): React.JSX.Element {\n return (\n <li\n data-slot=\"included-item\"\n className={cn(\n \"flex min-w-0 items-center gap-3 rounded-xl border border-border-subtle bg-background p-3\",\n className,\n )}\n {...props}\n >\n <IconContainer\n size={32}\n tone=\"success\"\n icon={<CheckIcon />}\n aria-hidden\n />\n <span className=\"min-w-0 flex-1 text-body-small text-text-primary\">\n {children}\n </span>\n </li>\n );\n}\n"],"names":[],"mappings":";;;;AAcO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAyC;AACvC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,MAAK;AAAA,YACL,0BAAO,WAAA,EAAU;AAAA,YACjB,eAAW;AAAA,UAAA;AAAA,QAAA;AAAA,QAEb,oBAAC,QAAA,EAAK,WAAU,oDACb,SAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { IncludedItem, type IncludedItemProps } from "./included-item";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** Border, radius, fill and text colour of the box. */
|
|
2
|
+
export declare const controlBox = "w-full min-w-0 rounded-md border border-border-input bg-background text-text-primary ring-1 ring-transparent ring-inset transition-[border-color,box-shadow]";
|
|
3
|
+
/** One-line content: 12px side padding, 8px between icon and text, Label/Default (14). */
|
|
4
|
+
export declare const controlRow = "flex items-center gap-2 px-3 text-label-default";
|
|
5
|
+
/** control-md (40) and control-sm (36): the same tokens as Button, so they line up. */
|
|
6
|
+
export declare const controlHeight: {
|
|
7
|
+
readonly default: "h-control-md";
|
|
8
|
+
readonly small: "h-control-sm";
|
|
9
|
+
};
|
|
10
|
+
export type ControlSize = keyof typeof controlHeight;
|
|
11
|
+
/**
|
|
12
|
+
* States for a box that WRAPS the real control (Input, NativeSelect, the phone
|
|
13
|
+
* prefix). Read from the control inside: `aria-invalid` (set by `invalid` or by
|
|
14
|
+
* Field), `:focus` and `:disabled` (of the input/select only: a native select's
|
|
15
|
+
* placeholder `<option disabled>` must not grey the box out). Buttons inside the box
|
|
16
|
+
* (reveal password, clear) keep their own focus ring and don't light the box up.
|
|
17
|
+
*/
|
|
18
|
+
export declare const wrappedControlStates: string;
|
|
19
|
+
/** States for a box that IS the control (Textarea). */
|
|
20
|
+
export declare const selfControlStates: string;
|
|
21
|
+
/**
|
|
22
|
+
* States for a button box (Select trigger). It keeps the focus border while its popup
|
|
23
|
+
* is open, because focus is inside the list then.
|
|
24
|
+
*/
|
|
25
|
+
export declare const triggerControlStates: string;
|
|
26
|
+
/** Placeholder: the same Value node in text-secondary, never a variant. */
|
|
27
|
+
export declare const controlPlaceholder = "placeholder:text-text-secondary disabled:placeholder:text-text-disabled";
|
|
28
|
+
/**
|
|
29
|
+
* Leading / trailing icon slot: 16px in text-secondary (5.07:1), disabled with the
|
|
30
|
+
* box. The box carries `group/control`.
|
|
31
|
+
*/
|
|
32
|
+
export declare const controlIcon = "flex shrink-0 text-text-secondary [&_svg]:size-icon-sm group-has-[:is(input,select):disabled]/control:text-text-disabled group-data-disabled/control:text-text-disabled";
|
|
33
|
+
/** Small icon button inside the box (reveal password, clear). 44px hit area. */
|
|
34
|
+
export declare const controlAction = "focus-ring touch-target -me-1 inline-flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm text-text-secondary transition-colors hover:text-text-primary disabled:cursor-not-allowed disabled:text-text-disabled [&_svg]:size-icon-sm";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
const controlBox = "w-full min-w-0 rounded-md border border-border-input bg-background text-text-primary ring-1 ring-transparent ring-inset transition-[border-color,box-shadow]";
|
|
2
|
+
const controlRow = "flex items-center gap-2 px-3 text-label-default";
|
|
3
|
+
const controlHeight = {
|
|
4
|
+
default: "h-control-md",
|
|
5
|
+
small: "h-control-sm"
|
|
6
|
+
};
|
|
7
|
+
const wrappedControlStates = [
|
|
8
|
+
"has-[[aria-invalid=true]]:border-error has-[[aria-invalid=true]]:ring-error",
|
|
9
|
+
"has-[:focus:not(button)]:border-border-focus has-[:focus:not(button)]:ring-border-focus",
|
|
10
|
+
"has-[:is(input,select):disabled]:cursor-not-allowed has-[:is(input,select):disabled]:border-border has-[:is(input,select):disabled]:bg-surface has-[:is(input,select):disabled]:text-text-disabled"
|
|
11
|
+
].join(" ");
|
|
12
|
+
const selfControlStates = [
|
|
13
|
+
"outline-none focus:border-border-focus focus:ring-border-focus",
|
|
14
|
+
"aria-invalid:not-focus:border-error aria-invalid:not-focus:ring-error",
|
|
15
|
+
"disabled:cursor-not-allowed disabled:border-border disabled:bg-surface disabled:text-text-disabled"
|
|
16
|
+
].join(" ");
|
|
17
|
+
const triggerControlStates = [
|
|
18
|
+
"outline-none focus:border-border-focus focus:ring-border-focus data-popup-open:border-border-focus data-popup-open:ring-border-focus",
|
|
19
|
+
"aria-invalid:not-focus:not-data-popup-open:border-error aria-invalid:not-focus:not-data-popup-open:ring-error",
|
|
20
|
+
"data-disabled:cursor-not-allowed data-disabled:border-border data-disabled:bg-surface data-disabled:text-text-disabled"
|
|
21
|
+
].join(" ");
|
|
22
|
+
const controlPlaceholder = "placeholder:text-text-secondary disabled:placeholder:text-text-disabled";
|
|
23
|
+
const controlIcon = "flex shrink-0 text-text-secondary [&_svg]:size-icon-sm group-has-[:is(input,select):disabled]/control:text-text-disabled group-data-disabled/control:text-text-disabled";
|
|
24
|
+
const controlAction = "focus-ring touch-target -me-1 inline-flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm text-text-secondary transition-colors hover:text-text-primary disabled:cursor-not-allowed disabled:text-text-disabled [&_svg]:size-icon-sm";
|
|
25
|
+
export {
|
|
26
|
+
controlAction,
|
|
27
|
+
controlBox,
|
|
28
|
+
controlHeight,
|
|
29
|
+
controlIcon,
|
|
30
|
+
controlPlaceholder,
|
|
31
|
+
controlRow,
|
|
32
|
+
selfControlStates,
|
|
33
|
+
triggerControlStates,
|
|
34
|
+
wrappedControlStates
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=control-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-styles.js","sources":["../../../src/components/input/control-styles.ts"],"sourcesContent":["/*\n * The box shared by Input, Textarea, Select, NativeSelect and PhoneInput. Figma draws\n * them as the same object on purpose: same radius, padding, border and states, so a\n * field and a dropdown in the same row only differ by the chevron.\n *\n * Focus and Error are a 2px border (border-thick), not just a colour change. The\n * second pixel is an inset ring, so the content never moves when the state changes.\n * Focus wins over Error: the message under the field keeps saying what is wrong.\n */\n\n/** Border, radius, fill and text colour of the box. */\nexport const controlBox =\n \"w-full min-w-0 rounded-md border border-border-input bg-background text-text-primary ring-1 ring-transparent ring-inset transition-[border-color,box-shadow]\";\n\n/** One-line content: 12px side padding, 8px between icon and text, Label/Default (14). */\nexport const controlRow = \"flex items-center gap-2 px-3 text-label-default\";\n\n/** control-md (40) and control-sm (36): the same tokens as Button, so they line up. */\nexport const controlHeight = {\n default: \"h-control-md\",\n small: \"h-control-sm\",\n} as const;\n\nexport type ControlSize = keyof typeof controlHeight;\n\n/**\n * States for a box that WRAPS the real control (Input, NativeSelect, the phone\n * prefix). Read from the control inside: `aria-invalid` (set by `invalid` or by\n * Field), `:focus` and `:disabled` (of the input/select only: a native select's\n * placeholder `<option disabled>` must not grey the box out). Buttons inside the box\n * (reveal password, clear) keep their own focus ring and don't light the box up.\n */\nexport const wrappedControlStates = [\n \"has-[[aria-invalid=true]]:border-error has-[[aria-invalid=true]]:ring-error\",\n \"has-[:focus:not(button)]:border-border-focus has-[:focus:not(button)]:ring-border-focus\",\n \"has-[:is(input,select):disabled]:cursor-not-allowed has-[:is(input,select):disabled]:border-border has-[:is(input,select):disabled]:bg-surface has-[:is(input,select):disabled]:text-text-disabled\",\n].join(\" \");\n\n/** States for a box that IS the control (Textarea). */\nexport const selfControlStates = [\n \"outline-none focus:border-border-focus focus:ring-border-focus\",\n \"aria-invalid:not-focus:border-error aria-invalid:not-focus:ring-error\",\n \"disabled:cursor-not-allowed disabled:border-border disabled:bg-surface disabled:text-text-disabled\",\n].join(\" \");\n\n/**\n * States for a button box (Select trigger). It keeps the focus border while its popup\n * is open, because focus is inside the list then.\n */\nexport const triggerControlStates = [\n \"outline-none focus:border-border-focus focus:ring-border-focus data-popup-open:border-border-focus data-popup-open:ring-border-focus\",\n \"aria-invalid:not-focus:not-data-popup-open:border-error aria-invalid:not-focus:not-data-popup-open:ring-error\",\n \"data-disabled:cursor-not-allowed data-disabled:border-border data-disabled:bg-surface data-disabled:text-text-disabled\",\n].join(\" \");\n\n/** Placeholder: the same Value node in text-secondary, never a variant. */\nexport const controlPlaceholder =\n \"placeholder:text-text-secondary disabled:placeholder:text-text-disabled\";\n\n/**\n * Leading / trailing icon slot: 16px in text-secondary (5.07:1), disabled with the\n * box. The box carries `group/control`.\n */\nexport const controlIcon =\n \"flex shrink-0 text-text-secondary [&_svg]:size-icon-sm group-has-[:is(input,select):disabled]/control:text-text-disabled group-data-disabled/control:text-text-disabled\";\n\n/** Small icon button inside the box (reveal password, clear). 44px hit area. */\nexport const controlAction =\n \"focus-ring touch-target -me-1 inline-flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-sm text-text-secondary transition-colors hover:text-text-primary disabled:cursor-not-allowed disabled:text-text-disabled [&_svg]:size-icon-sm\";\n"],"names":[],"mappings":"AAWO,MAAM,aACX;AAGK,MAAM,aAAa;AAGnB,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,OAAO;AACT;AAWO,MAAM,uBAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG;AAGH,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG;AAMH,MAAM,uBAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG;AAGH,MAAM,qBACX;AAMK,MAAM,cACX;AAGK,MAAM,gBACX;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Input, type InputProps } from "./input";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Input as BaseInput } from "@base-ui/react/input";
|
|
2
|
+
import { type ReactNode, type Ref } from "react";
|
|
3
|
+
import { type ControlSize } from "./control-styles";
|
|
4
|
+
export interface InputProps extends Omit<BaseInput.Props, "className" | "size" | "ref"> {
|
|
5
|
+
ref?: Ref<HTMLInputElement>;
|
|
6
|
+
/** `default` 40px (control-md), `small` 36px (control-sm): the same heights as Button. */
|
|
7
|
+
size?: ControlSize;
|
|
8
|
+
/**
|
|
9
|
+
* Red 2px border and `aria-invalid`. Never on its own: the message that says what
|
|
10
|
+
* is wrong goes under the field (use `Field` with `error`, which sets this for you).
|
|
11
|
+
*/
|
|
12
|
+
invalid?: boolean;
|
|
13
|
+
/** Decorative 16px icon before the text: `SearchMdIcon`, `CalendarIcon`, `User01Icon`. */
|
|
14
|
+
leadingIcon?: ReactNode;
|
|
15
|
+
/** Decorative 16px icon after the text: `CalendarIcon`, `AlertCircleIcon`. */
|
|
16
|
+
trailingIcon?: ReactNode;
|
|
17
|
+
/** Shows an × button ("Borrar") while there is text. It fires `onChange` with "". */
|
|
18
|
+
clearable?: boolean;
|
|
19
|
+
/** Applied to the box, not to the `<input>`: use it for the width. */
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* One-line text field. Only the box: the label, the help text and the error go
|
|
24
|
+
* OUTSIDE, in `Field`, so the message can grow to two lines.
|
|
25
|
+
*
|
|
26
|
+
* - It fills its container (Figma draws it at 280 as a reference). Constrain it with
|
|
27
|
+
* `className="max-w-xs"` or with the layout.
|
|
28
|
+
* - Placeholder in text-secondary, value in text-primary. The placeholder is an
|
|
29
|
+
* example, never the label.
|
|
30
|
+
* - `type="password"` adds the reveal button (eye / eye-off) with its accessible name.
|
|
31
|
+
* - Ask the browser for help: `type="email"`, `inputMode="numeric"`,
|
|
32
|
+
* `autoComplete="given-name"`… The keyboard and autofill depend on it.
|
|
33
|
+
* - Inside `Field` the label, description and `aria-invalid` wire themselves.
|
|
34
|
+
*/
|
|
35
|
+
export declare function Input({ size, invalid, leadingIcon, trailingIcon, clearable, className, type, disabled, readOnly, value, defaultValue, onChange, ref, ...props }: InputProps): React.JSX.Element;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Input as Input$1 } from "@base-ui/react/input";
|
|
3
|
+
import { useRef, useState, useCallback } from "react";
|
|
4
|
+
import { EyeIcon } from "../../icons/generated/eye.js";
|
|
5
|
+
import { EyeOffIcon } from "../../icons/generated/eye-off.js";
|
|
6
|
+
import { XCloseIcon } from "../../icons/generated/x-close.js";
|
|
7
|
+
import { cn } from "../../lib/cn.js";
|
|
8
|
+
import { controlIcon, controlPlaceholder, controlAction, wrappedControlStates, controlHeight, controlRow, controlBox } from "./control-styles.js";
|
|
9
|
+
import { useMediCoreLabels } from "../../provider/medicore-provider.js";
|
|
10
|
+
function Input({
|
|
11
|
+
size = "default",
|
|
12
|
+
invalid = false,
|
|
13
|
+
leadingIcon,
|
|
14
|
+
trailingIcon,
|
|
15
|
+
clearable = false,
|
|
16
|
+
className,
|
|
17
|
+
type = "text",
|
|
18
|
+
disabled,
|
|
19
|
+
readOnly,
|
|
20
|
+
value,
|
|
21
|
+
defaultValue,
|
|
22
|
+
onChange,
|
|
23
|
+
ref,
|
|
24
|
+
...props
|
|
25
|
+
}) {
|
|
26
|
+
const labels = useMediCoreLabels();
|
|
27
|
+
const inputRef = useRef(null);
|
|
28
|
+
const [revealed, setRevealed] = useState(false);
|
|
29
|
+
const [uncontrolledFilled, setUncontrolledFilled] = useState(
|
|
30
|
+
() => defaultValue != null && String(defaultValue) !== ""
|
|
31
|
+
);
|
|
32
|
+
const filled = value === void 0 ? uncontrolledFilled : value !== null && String(value) !== "";
|
|
33
|
+
const isPassword = type === "password";
|
|
34
|
+
const setRefs = useCallback(
|
|
35
|
+
(node) => {
|
|
36
|
+
const input = node;
|
|
37
|
+
inputRef.current = input;
|
|
38
|
+
if (typeof ref === "function") {
|
|
39
|
+
ref(input);
|
|
40
|
+
} else if (ref) {
|
|
41
|
+
ref.current = input;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
[ref]
|
|
45
|
+
);
|
|
46
|
+
function clear() {
|
|
47
|
+
const input = inputRef.current;
|
|
48
|
+
if (!input) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
Object.getOwnPropertyDescriptor(
|
|
52
|
+
HTMLInputElement.prototype,
|
|
53
|
+
"value"
|
|
54
|
+
)?.set?.call(input, "");
|
|
55
|
+
input.dispatchEvent(new Event("input", { bubbles: true }));
|
|
56
|
+
input.focus();
|
|
57
|
+
}
|
|
58
|
+
return /* @__PURE__ */ jsxs(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
"data-slot": "input",
|
|
62
|
+
className: cn(
|
|
63
|
+
"group/control",
|
|
64
|
+
controlBox,
|
|
65
|
+
controlRow,
|
|
66
|
+
controlHeight[size],
|
|
67
|
+
wrappedControlStates,
|
|
68
|
+
className
|
|
69
|
+
),
|
|
70
|
+
children: [
|
|
71
|
+
leadingIcon && /* @__PURE__ */ jsx("span", { className: controlIcon, children: leadingIcon }),
|
|
72
|
+
/* @__PURE__ */ jsx(
|
|
73
|
+
Input$1,
|
|
74
|
+
{
|
|
75
|
+
ref: setRefs,
|
|
76
|
+
"data-slot": "input-control",
|
|
77
|
+
type: isPassword && revealed ? "text" : type,
|
|
78
|
+
disabled,
|
|
79
|
+
readOnly,
|
|
80
|
+
value,
|
|
81
|
+
defaultValue,
|
|
82
|
+
"aria-invalid": invalid && !disabled ? true : void 0,
|
|
83
|
+
onChange: (event) => {
|
|
84
|
+
setUncontrolledFilled(event.currentTarget.value !== "");
|
|
85
|
+
onChange?.(event);
|
|
86
|
+
},
|
|
87
|
+
className: cn(
|
|
88
|
+
"h-full min-w-0 flex-1 bg-transparent outline-none disabled:cursor-not-allowed",
|
|
89
|
+
controlPlaceholder
|
|
90
|
+
),
|
|
91
|
+
...props
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
clearable && filled && !disabled && !readOnly && /* @__PURE__ */ jsx(
|
|
95
|
+
"button",
|
|
96
|
+
{
|
|
97
|
+
type: "button",
|
|
98
|
+
"aria-label": labels.clear,
|
|
99
|
+
className: controlAction,
|
|
100
|
+
onClick: clear,
|
|
101
|
+
children: /* @__PURE__ */ jsx(XCloseIcon, { size: "sm" })
|
|
102
|
+
}
|
|
103
|
+
),
|
|
104
|
+
trailingIcon && /* @__PURE__ */ jsx("span", { className: controlIcon, children: trailingIcon }),
|
|
105
|
+
isPassword && /* @__PURE__ */ jsx(
|
|
106
|
+
"button",
|
|
107
|
+
{
|
|
108
|
+
type: "button",
|
|
109
|
+
"aria-label": revealed ? labels.hidePassword : labels.showPassword,
|
|
110
|
+
disabled,
|
|
111
|
+
className: controlAction,
|
|
112
|
+
onClick: () => setRevealed((current) => !current),
|
|
113
|
+
children: revealed ? /* @__PURE__ */ jsx(EyeOffIcon, { size: "sm" }) : /* @__PURE__ */ jsx(EyeIcon, { size: "sm" })
|
|
114
|
+
}
|
|
115
|
+
)
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
export {
|
|
121
|
+
Input
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=input.js.map
|