UNPKG

@cometchat/chat-uikit-react

Version:

Ready-to-use Chat UI Components for React

769 lines (765 loc) 23.7 kB
/* src/components/CometChatReactions/CometChatReactions.css */ .cometchat-reactions { display: flex; padding: 0 var(--cometchat-padding-1, 4px); align-items: flex-start; align-content: flex-start; gap: 2px; align-self: stretch; min-width: 100%; height: fit-content; } .cometchat-reactions__bar { display: flex; align-items: center; gap: 2px; flex-wrap: nowrap; min-width: 100%; } .cometchat-reactions__chip { display: inline-flex; height: 24px; padding: 2px var(--cometchat-padding-2, 8px); align-items: center; gap: var(--cometchat-padding-1, 4px); flex-shrink: 0; border-radius: 20px; border: 1px solid var(--cometchat-border-color-light, #f5f5f5); background: var(--cometchat-background-color-01, #fff); cursor: pointer; transition: border-color 0.15s, background-color 0.15s; } @media (prefers-reduced-motion: reduce) { .cometchat-reactions__chip { transition: none; } } .cometchat-reactions__chip:hover { border-color: var(--cometchat-border-color-default, #e8e8e8); } .cometchat-reactions__chip--active { border: 1px solid var(--cometchat-extended-primary-color-300, #ccc4f1); background: var(--cometchat-extended-primary-color-100, #edeafa); } .cometchat-reactions__chip:focus-visible { outline: 2px solid var(--cometchat-primary-color, #3399ff); outline-offset: 2px; } .cometchat-reactions__chip-emoji { color: var(--cometchat-text-color-primary, #141414); font: var(--cometchat-font-body-regular, 400 14px Roboto); } .cometchat-reactions__chip-count { color: var(--cometchat-text-color-primary, #141414); font: var(--cometchat-font-caption1-regular, 400 12px Roboto); } .cometchat-reactions__overflow { display: inline-flex; height: 24px; padding: 2px var(--cometchat-padding-2, 8px); align-items: center; gap: var(--cometchat-padding-1, 4px); flex-shrink: 0; border-radius: 20px; border: 1px solid var(--cometchat-border-color-light, #f5f5f5); background: var(--cometchat-background-color-01, #fff); cursor: pointer; } .cometchat-reactions__overflow:focus-visible { outline: 2px solid var(--cometchat-primary-color, #3399ff); outline-offset: 2px; } .cometchat-reactions__overflow-count { color: var(--cometchat-text-color-primary, #141414); font: var(--cometchat-font-caption1-regular, 400 12px Roboto); } .cometchat-reactions__info-wrapper .cometchat-popover__content { background: transparent; box-shadow: none; border: none; } .cometchat-reactions__info { display: inline-flex; justify-content: center; align-items: flex-start; border-radius: var(--cometchat-radius-2, 8px); } .cometchat-reactions__info-content { display: flex; padding: 8px var(--cometchat-padding-2, 8px); flex-direction: column; align-items: center; border-radius: var(--cometchat-radius-1, 4px); background: var(--cometchat-static-black, #141414); box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03); margin: -1px; min-height: 77px; min-width: 77px; justify-content: center; } .cometchat-reactions__info-emoji-text { display: flex; flex-direction: column; align-items: center; gap: var(--cometchat-padding-1, 4px); } .cometchat-reactions__info-emoji { color: var(--cometchat-static-white, #f9f8fd); text-align: center; font: var(--cometchat-font-heading1-regular, 400 24px Roboto); } .cometchat-reactions__info-title { color: var(--cometchat-static-white, #f9f8fd); text-align: center; font: var(--cometchat-font-caption1-regular, 400 12px Roboto); } .cometchat-reactions__info-description { color: var(--cometchat-text-color-tertiary, #a1a1a1); text-align: center; font: var(--cometchat-font-caption1-regular, 400 12px Roboto); } .cometchat-reactions__info-error { color: var(--cometchat-error-color, #f44649); text-align: center; font: var(--cometchat-font-caption1-regular, 400 12px Roboto); } .cometchat-reactions__info-loading { height: 24px; width: 24px; border: 4px solid var(--cometchat-background-color-04, #e8e8e8); border-radius: 50%; border-top: 4px solid transparent; animation: cometchat-reactions-spin 2s linear infinite; } @media (prefers-reduced-motion: reduce) { .cometchat-reactions__info-loading { animation: none; } } @keyframes cometchat-reactions-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .cometchat-reactions__list { display: flex; width: 280px; flex-direction: column; overflow: hidden; align-items: flex-start; border-radius: var(--cometchat-radius-5, 20px); border: 1px solid var(--cometchat-border-color-light, #f5f5f5); background: var(--cometchat-background-color-01, #fff); box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03); } .cometchat-reactions__list-error { display: flex; height: 200px; flex-direction: column; justify-content: center; align-items: center; flex-shrink: 0; align-self: stretch; color: var(--cometchat-text-color-secondary, #727272); text-align: center; font: var(--cometchat-font-body-regular, 400 14px Roboto); } .cometchat-reactions__list-tabs { display: flex; padding-top: var(--cometchat-padding-2, 8px); max-width: 280px; align-items: center; align-self: stretch; overflow-x: auto; border-bottom: 1px solid var(--cometchat-border-color-default, #e8e8e8); background: var(--cometchat-background-color-01, #fff); } .cometchat-reactions__list-tabs-tab { display: flex; height: 40px; padding: var(--cometchat-padding-2, 8px) var(--cometchat-padding-4, 16px); align-items: center; gap: var(--cometchat-padding-1, 4px); cursor: pointer; border: none; background: none; border-radius: 4px 4px 0 0; } .cometchat-reactions__list-tabs-tab:focus-visible { outline: 2px solid var(--cometchat-primary-color, #3399ff); outline-offset: -2px; } .cometchat-reactions__list-tabs-tab--active { border-bottom: 2px solid var(--cometchat-primary-color, #6852d6); } .cometchat-reactions__list-tabs-tab-emoji, .cometchat-reactions__list-tabs-tab-count { color: var(--cometchat-text-color-secondary, #727272); text-align: center; font: var(--cometchat-font-body-medium, 500 14px Roboto); } .cometchat-reactions__list-tabs-tab-emoji--active, .cometchat-reactions__list-tabs-tab-count--active { color: var(--cometchat-text-color-highlight, #6852d6); } .cometchat-reactions__list-items { display: flex; padding: 0; flex-direction: column; align-items: flex-start; align-self: stretch; border-radius: var(--cometchat-radius-0, 0); background: var(--cometchat-background-color-01, #fff); overflow-y: auto; height: 200px; } .cometchat-reactions__list-item { width: 280px; cursor: pointer; } .cometchat-reactions__list-item .cometchat-list-item__leading-view, .cometchat-reactions__list-item .cometchat-list-item__body { padding: 0; flex-shrink: inherit; } .cometchat-reactions__list-item .cometchat-avatar, .cometchat-reactions__list-item .cometchat-avatar__image, .cometchat-reactions__list-item .cometchat-list-item__leading-view { height: 32px; width: 32px; } .cometchat-reactions__list-shimmer { display: flex; width: 280px; height: 200px; flex-direction: column; align-items: flex-start; align-self: stretch; background: var(--cometchat-background-color-01, #fff); } .cometchat-reactions__list-shimmer-item { display: flex; width: 280px; padding: var(--cometchat-padding-2, 8px) var(--cometchat-padding-4, 16px); align-items: center; gap: var(--cometchat-padding-3, 12px); flex: 1 0 0; background: var(--cometchat-background-color-01, #fff); } .cometchat-reactions__list-shimmer-item-icon { background: var(--cometchat-shimmer-gradient-color); display: flex; border-radius: var(--cometchat-radius-max, 1000px); width: 32px; height: 32px; justify-content: center; align-items: center; animation: cometchat-reactions-shimmer 10s infinite linear; } .cometchat-reactions__list-shimmer-item-content { background: var(--cometchat-shimmer-gradient-color); border-radius: var(--cometchat-radius-2, 8px); display: flex; height: 20px; justify-content: center; align-items: center; flex: 1 0 0; animation: cometchat-reactions-shimmer 5s infinite linear; } .cometchat-reactions__list-shimmer-item-tailview { background: var(--cometchat-shimmer-gradient-color); display: flex; width: 24px; height: 24px; border-radius: var(--cometchat-radius-max, 1000px); justify-content: center; align-items: center; animation: cometchat-reactions-shimmer 10s infinite linear; } @media (prefers-reduced-motion: reduce) { .cometchat-reactions__list-shimmer-item-icon, .cometchat-reactions__list-shimmer-item-content, .cometchat-reactions__list-shimmer-item-tailview { animation: none; } } @keyframes cometchat-reactions-shimmer { 0% { background-position: -468px 0; } 100% { background-position: 468px 0; } } /* src/components/CometChatReactionList/CometChatReactionList.css */ .cometchat-reaction-list { display: flex; width: 280px; flex-direction: column; overflow: hidden; align-items: flex-start; border-radius: var(--cometchat-radius-5, 20px); border: 1px solid var(--cometchat-border-color-light, #f5f5f5); background: var(--cometchat-background-color-01, #fff); box-shadow: 0 12px 16px -4px rgba(16, 24, 40, 0.08), 0 4px 6px -2px rgba(16, 24, 40, 0.03); } .cometchat-reaction-list__tabs { display: flex; padding-top: var(--cometchat-padding-2, 8px); max-width: 280px; align-items: center; align-self: stretch; overflow-x: auto; border-bottom: 1px solid var(--cometchat-border-color-default, #e8e8e8); background: var(--cometchat-background-color-01, #fff); scrollbar-width: none; -ms-overflow-style: none; } .cometchat-reaction-list__tabs::-webkit-scrollbar { display: none; } .cometchat-reaction-list__tabs-tab { display: flex; height: 40px; padding: var(--cometchat-padding-2, 8px) var(--cometchat-padding-4, 16px); align-items: center; gap: var(--cometchat-padding-1, 4px); flex-shrink: 0; cursor: pointer; border: none; background: none; border-radius: 4px 4px 0 0; } .cometchat-reaction-list__tabs-tab:focus-visible { outline: 2px solid var(--cometchat-primary-color, #6852d6); outline-offset: -2px; } .cometchat-reaction-list__tabs-tab--active { border-bottom: 2px solid var(--cometchat-primary-color, #6852d6); } .cometchat-reaction-list__tabs-tab-emoji { color: var(--cometchat-text-color-secondary, #727272); text-align: center; font: var(--cometchat-font-body-medium, 500 14px Roboto); } .cometchat-reaction-list__tabs-tab-emoji--active { color: var(--cometchat-text-color-highlight, #6852d6); } .cometchat-reaction-list__tabs-tab-count { color: var(--cometchat-text-color-secondary, #727272); text-align: center; font: var(--cometchat-font-body-medium, 500 14px Roboto); } .cometchat-reaction-list__tabs-tab-count--active { color: var(--cometchat-text-color-highlight, #6852d6); } .cometchat-reaction-list__list { display: flex; flex-direction: column; align-items: flex-start; align-self: stretch; height: 200px; overflow-y: auto; background: var(--cometchat-background-color-01, #fff); } .cometchat-reaction-list__list-item { display: flex; flex-direction: row; align-items: center; padding: var(--cometchat-padding-2, 8px) var(--cometchat-padding-4, 16px); gap: var(--cometchat-padding-3, 12px); width: 100%; box-sizing: border-box; outline: none; } .cometchat-reaction-list__list-item--current-user { cursor: pointer; } .cometchat-reaction-list__list-item--current-user:hover { background: var(--cometchat-background-color-02, #f5f5f5); } .cometchat-reaction-list__list-item--current-user:focus-visible { outline: 2px solid var(--cometchat-primary-color, #6852d6); outline-offset: -2px; } .cometchat-reaction-list__list-item--readonly { cursor: default; } .cometchat-reaction-list__item-avatar { width: 32px; height: 32px; flex-shrink: 0; border-radius: 50%; overflow: hidden; } .cometchat-reaction-list__item-avatar .cometchat-avatar, .cometchat-reaction-list__item-avatar .cometchat-avatar__image { width: 32px; height: 32px; } .cometchat-reaction-list__item-info { display: flex; flex-direction: column; flex: 1; min-width: 0; } .cometchat-reaction-list__item-name { color: var(--cometchat-text-color-primary, #141414); font: var(--cometchat-font-body-medium, 500 14px Roboto); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cometchat-reaction-list__item-hint { color: var(--cometchat-text-color-secondary, #727272); font: var(--cometchat-font-caption1-regular, 400 12px Roboto); } .cometchat-reaction-list__item-emoji { font-size: 20px; flex-shrink: 0; line-height: 1; } .cometchat-reaction-list__shimmer { display: flex; width: 280px; height: 200px; flex-direction: column; align-items: flex-start; align-self: stretch; background: var(--cometchat-background-color-01, #fff); } .cometchat-reaction-list__shimmer-item { display: flex; width: 100%; padding: var(--cometchat-padding-2, 8px) var(--cometchat-padding-4, 16px); align-items: center; gap: var(--cometchat-padding-3, 12px); flex: 1 0 0; background: var(--cometchat-background-color-01, #fff); box-sizing: border-box; } .cometchat-reaction-list__shimmer-item-icon { background: var( --cometchat-shimmer-gradient-color, linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%) ); background-size: 400% 100%; display: flex; border-radius: var(--cometchat-radius-max, 1000px); width: 32px; height: 32px; flex-shrink: 0; animation: cometchat-reaction-list-shimmer 1.5s infinite linear; } .cometchat-reaction-list__shimmer-item-content { background: var( --cometchat-shimmer-gradient-color, linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%) ); background-size: 400% 100%; border-radius: var(--cometchat-radius-2, 8px); display: flex; height: 20px; flex: 1 0 0; animation: cometchat-reaction-list-shimmer 1.5s infinite linear; } .cometchat-reaction-list__shimmer-item-tailview { background: var( --cometchat-shimmer-gradient-color, linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%) ); background-size: 400% 100%; display: flex; width: 24px; height: 24px; flex-shrink: 0; border-radius: var(--cometchat-radius-max, 1000px); animation: cometchat-reaction-list-shimmer 1.5s infinite linear; } @keyframes cometchat-reaction-list-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } @media (prefers-reduced-motion: reduce) { .cometchat-reaction-list__shimmer-item-icon, .cometchat-reaction-list__shimmer-item-content, .cometchat-reaction-list__shimmer-item-tailview { animation: none; } } .cometchat-reaction-list__error { display: flex; height: 200px; width: 100%; flex-direction: column; justify-content: center; align-items: center; gap: var(--cometchat-padding-2, 8px); background: var(--cometchat-background-color-01, #fff); padding: 0 var(--cometchat-padding-4, 16px); box-sizing: border-box; } .cometchat-reaction-list__error-text { color: var(--cometchat-text-color-secondary, #727272); text-align: center; font: var(--cometchat-font-body-regular, 400 14px Roboto); margin: 0; word-break: break-word; } .cometchat-reaction-list__retry-button { display: inline-flex; padding: var(--cometchat-padding-1, 4px) var(--cometchat-padding-3, 12px); align-items: center; justify-content: center; border-radius: var(--cometchat-radius-2, 8px); border: 1px solid var(--cometchat-primary-color, #6852d6); background: none; color: var(--cometchat-primary-color, #6852d6); font: var(--cometchat-font-body-medium, 500 14px Roboto); cursor: pointer; transition: background-color 0.15s; } .cometchat-reaction-list__retry-button:hover { background: var(--cometchat-extended-primary-color-100, #edeafa); } .cometchat-reaction-list__retry-button:focus-visible { outline: 2px solid var(--cometchat-primary-color, #6852d6); outline-offset: 2px; } @media (prefers-reduced-motion: reduce) { .cometchat-reaction-list__retry-button { transition: none; } } .cometchat-reaction-list__empty { display: flex; height: 200px; width: 100%; flex-direction: column; justify-content: center; align-items: center; background: var(--cometchat-background-color-01, #fff); } .cometchat-reaction-list__empty-text { color: var(--cometchat-text-color-secondary, #727272); text-align: center; font: var(--cometchat-font-body-regular, 400 14px Roboto); margin: 0; } .cometchat-reaction-list__loading-more { display: flex; justify-content: center; align-items: center; padding: var(--cometchat-padding-2, 8px); width: 100%; } .cometchat-reaction-list__spinner { width: 20px; height: 20px; border: 2px solid var(--cometchat-border-color-default, #e8e8e8); border-top-color: var(--cometchat-primary-color, #6852d6); border-radius: 50%; animation: cometchat-reaction-list-spin 0.8s linear infinite; } @keyframes cometchat-reaction-list-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @media (prefers-reduced-motion: reduce) { .cometchat-reaction-list__spinner { animation: none; border-top-color: var(--cometchat-border-color-default, #e8e8e8); } } @media (prefers-contrast: high) { .cometchat-reaction-list { border: 2px solid ButtonText; } .cometchat-reaction-list__tabs-tab--active { border-bottom: 3px solid ButtonText; } .cometchat-reaction-list__tabs-tab-emoji--active, .cometchat-reaction-list__tabs-tab-count--active { color: ButtonText; } .cometchat-reaction-list__list-item--current-user:focus-visible { outline: 3px solid ButtonText; } .cometchat-reaction-list__retry-button { border: 2px solid ButtonText; color: ButtonText; } } /* src/components/base/CometChatAvatar/CometChatAvatar.css */ .cometchat-avatar { position: relative; display: flex; justify-content: center; align-items: center; flex-shrink: 0; border-radius: var(--cometchat-radius-max, 1000px); background: var(--cometchat-extended-primary-color-500, #aa9ee8); } .cometchat-avatar[data-size=small] { width: 32px; height: 32px; } .cometchat-avatar[data-size=medium] { width: 40px; height: 40px; } .cometchat-avatar[data-size=large] { width: 48px; height: 48px; } .cometchat-avatar__image { width: 100%; height: 100%; object-fit: cover; border-radius: var(--cometchat-radius-max, 1000px); overflow: hidden; } .cometchat-avatar__initials { display: flex; justify-content: center; align-items: center; color: var(--cometchat-static-white, #fff); text-align: center; user-select: none; } .cometchat-avatar[data-size=small] .cometchat-avatar__initials { font: var(--cometchat-font-body-bold, 700 12px Roboto); } .cometchat-avatar[data-size=medium] .cometchat-avatar__initials { font: var(--cometchat-font-heading4-bold, 700 14px Roboto); } .cometchat-avatar[data-size=large] .cometchat-avatar__initials { font: var(--cometchat-font-heading3-bold, 700 20px Roboto); } .cometchat-avatar__status-indicator { position: absolute; bottom: 0; right: 0; border-radius: var(--cometchat-radius-max, 1000px); border: 2px solid var(--cometchat-background-color-01, #fff); } .cometchat-avatar[data-size=small] .cometchat-avatar__status-indicator { width: 8px; height: 8px; } .cometchat-avatar[data-size=medium] .cometchat-avatar__status-indicator { width: 10px; height: 10px; } .cometchat-avatar[data-size=large] .cometchat-avatar__status-indicator { width: 12px; height: 12px; } .cometchat-avatar__status-indicator[data-status=online] { background: var(--cometchat-success-color, #09c26f); } .cometchat-avatar__status-indicator[data-status=offline] { display: none; } /* src/components/base/CometChatPopover/CometChatPopover.css */ .cometchat-popover { position: relative; display: inline-block; } .cometchat-popover__trigger { display: inline-block; cursor: pointer; } .cometchat-popover__trigger:focus-visible { outline: 2px solid var(--cometchat-primary-color, #6852d6); outline-offset: 2px; border-radius: var(--cometchat-radius-1, 4px); } .cometchat-popover__trigger:focus { outline: none; } .cometchat-popover__content { position: fixed; z-index: var(--cometchat-popover-content-z-index, 1000); background-color: var(--cometchat-popover-content-background, transparent); color: var(--cometchat-text-color-primary, #141414); font: var( --cometchat-font-body-regular, 400 14px var(--cometchat-font-family, "Inter", sans-serif) ); border: none; border-radius: var(--cometchat-popover-content-border-radius, 0); padding: var(--cometchat-popover-content-padding, 0); max-width: var(--cometchat-popover-content-max-width, 300px); box-shadow: var(--cometchat-popover-content-box-shadow, none); word-wrap: break-word; opacity: 0; pointer-events: none; } .cometchat-popover__content--positioned { opacity: 1; pointer-events: auto; } @media (prefers-reduced-motion: no-preference) { .cometchat-popover__content--positioned { animation: cometchatPopoverFadeIn var(--cometchat-popover-animation-duration, 0.15s) ease-out; } } @keyframes cometchatPopoverFadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } .cometchat-popover__content .cometchat-popover__content { z-index: var(--cometchat-popover-nested-z-index, 1001); } .cometchat-popover__content--top { } .cometchat-popover__content--bottom { } .cometchat-popover__content--left { } .cometchat-popover__content--right { } .cometchat-popover__content:focus-visible { outline: 2px solid var(--cometchat-primary-color, #6852d6); outline-offset: -2px; } .cometchat-popover__arrow { position: absolute; width: 0; height: 0; border-style: solid; } .cometchat-popover__arrow--top { bottom: calc(-1 * var(--cometchat-popover-arrow-size, 8px)); left: 50%; transform: translateX(-50%); border-width: var(--cometchat-popover-arrow-size, 8px) var(--cometchat-popover-arrow-size, 8px) 0 var(--cometchat-popover-arrow-size, 8px); border-color: var(--cometchat-popover-arrow-color, var(--cometchat-background-color-01, #fff)) transparent transparent transparent; } .cometchat-popover__arrow--bottom { top: calc(-1 * var(--cometchat-popover-arrow-size, 8px)); left: 50%; transform: translateX(-50%); border-width: 0 var(--cometchat-popover-arrow-size, 8px) var(--cometchat-popover-arrow-size, 8px) var(--cometchat-popover-arrow-size, 8px); border-color: transparent transparent var(--cometchat-popover-arrow-color, var(--cometchat-background-color-01, #fff)) transparent; } .cometchat-popover__arrow--left { right: calc(-1 * var(--cometchat-popover-arrow-size, 8px)); top: 50%; transform: translateY(-50%); border-width: var(--cometchat-popover-arrow-size, 8px) 0 var(--cometchat-popover-arrow-size, 8px) var(--cometchat-popover-arrow-size, 8px); border-color: transparent transparent transparent var(--cometchat-popover-arrow-color, var(--cometchat-background-color-01, #fff)); } .cometchat-popover__arrow--right { left: calc(-1 * var(--cometchat-popover-arrow-size, 8px)); top: 50%; transform: translateY(-50%); border-width: var(--cometchat-popover-arrow-size, 8px) var(--cometchat-popover-arrow-size, 8px) var(--cometchat-popover-arrow-size, 8px) 0; border-color: transparent var(--cometchat-popover-arrow-color, var(--cometchat-background-color-01, #fff)) transparent transparent; }