@hh.ru/magritte-ui-chat-bubble 1.2.0 → 1.4.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/ChatBubble.d.ts CHANGED
@@ -1,14 +1,18 @@
1
1
  import { ChatBubbleErrorAction } from '@hh.ru/magritte-ui-chat-bubble/ErrorAction';
2
2
  import { ChatBubbleFile } from '@hh.ru/magritte-ui-chat-bubble/File';
3
3
  import { ChatBubbleLabel } from '@hh.ru/magritte-ui-chat-bubble/Label';
4
+ import { ChatBubbleMedia } from '@hh.ru/magritte-ui-chat-bubble/Media';
4
5
  import { ChatBubbleMessage } from '@hh.ru/magritte-ui-chat-bubble/Message';
6
+ import { ChatBubbleSnippet } from '@hh.ru/magritte-ui-chat-bubble/Snippet';
5
7
  import { ChatBubbleStatus } from '@hh.ru/magritte-ui-chat-bubble/Status';
6
8
  import type { ChatBubbleProps } from '@hh.ru/magritte-ui-chat-bubble/types';
7
9
  interface ChatBubbleComponents {
8
10
  ErrorAction: typeof ChatBubbleErrorAction;
9
11
  File: typeof ChatBubbleFile;
10
12
  Label: typeof ChatBubbleLabel;
13
+ Media: typeof ChatBubbleMedia;
11
14
  Message: typeof ChatBubbleMessage;
15
+ Snippet: typeof ChatBubbleSnippet;
12
16
  Status: typeof ChatBubbleStatus;
13
17
  }
14
18
  export declare const ChatBubble: React.ForwardRefExoticComponent<ChatBubbleProps & React.RefAttributes<HTMLDivElement>> & ChatBubbleComponents;
package/ChatBubble.js CHANGED
@@ -6,7 +6,9 @@ import { ButtonDefaultPropsContext } from '@hh.ru/magritte-ui-button';
6
6
  import { ChatBubbleErrorAction } from './ErrorAction.js';
7
7
  import { ChatBubbleFile } from './File.js';
8
8
  import { ChatBubbleLabel } from './Label.js';
9
+ import { ChatBubbleMedia } from './Media.js';
9
10
  import { ChatBubbleMessage } from './Message.js';
11
+ import { ChatBubbleSnippet } from './Snippet.js';
10
12
  import { ChatBubbleStatus } from './Status.js';
11
13
  import { Meta } from './internal/Meta.js';
12
14
  import { Tail } from './internal/Tail.js';
@@ -18,14 +20,14 @@ import { IconDefaultPropsContext } from '@hh.ru/magritte-ui-icon';
18
20
  import { ExclamationCircleFilledSize24 } from '@hh.ru/magritte-ui-icon/icon';
19
21
  import { Menu } from '@hh.ru/magritte-ui-menu';
20
22
  import { Text } from '@hh.ru/magritte-ui-typography';
21
- import { s as styles } from './chat-bubble-CaB7cEff.js';
23
+ import { s as styles } from './chat-bubble-C4Yvxp5H.js';
22
24
  import '@hh.ru/magritte-ui-cell';
23
25
  import '@hh.ru/magritte-ui-link';
24
26
  import '@hh.ru/magritte-ui-loader';
25
27
  import '@hh.ru/magritte-common-use-multiple-refs';
26
28
  import '@hh.ru/magritte-common-use-translation';
27
29
  import '@hh.ru/magritte-ui-tooltip';
28
- import './chat-bubble-BjmT1S_i.js';
30
+ import './chat-bubble-BEqoLjma.js';
29
31
 
30
32
  const ChatBubble = forwardRef(({ actions, buttons, children, header, errorActions, mode = 'incoming', showTail = false, status, time, error = false, errorText, 'data-qa': dataQa = 'chat-bubble', className, }, ref) => {
31
33
  const [menuVisible, setMenuVisible] = useState(false);
@@ -52,7 +54,9 @@ ChatBubble.displayName = 'ChatBubble';
52
54
  ChatBubble.ErrorAction = ChatBubbleErrorAction;
53
55
  ChatBubble.File = ChatBubbleFile;
54
56
  ChatBubble.Label = ChatBubbleLabel;
57
+ ChatBubble.Media = ChatBubbleMedia;
55
58
  ChatBubble.Message = ChatBubbleMessage;
59
+ ChatBubble.Snippet = ChatBubbleSnippet;
56
60
  ChatBubble.Status = ChatBubbleStatus;
57
61
 
58
62
  export { ChatBubble };
package/ChatBubble.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ChatBubble.js","sources":["src/ChatBubble.tsx"],"sourcesContent":["import { cloneElement, forwardRef, useCallback, useState, useMemo, useRef } from 'react';\nimport classnames from 'classnames';\n\nimport { ButtonDefaultPropsContext, type ButtonProps } from '@hh.ru/magritte-ui-button';\nimport { ChatBubbleErrorAction } from '@hh.ru/magritte-ui-chat-bubble/ErrorAction';\nimport { ChatBubbleFile } from '@hh.ru/magritte-ui-chat-bubble/File';\nimport { ChatBubbleLabel } from '@hh.ru/magritte-ui-chat-bubble/Label';\nimport { ChatBubbleMessage } from '@hh.ru/magritte-ui-chat-bubble/Message';\nimport { ChatBubbleStatus } from '@hh.ru/magritte-ui-chat-bubble/Status';\nimport { Meta } from '@hh.ru/magritte-ui-chat-bubble/internal/Meta';\nimport { Tail } from '@hh.ru/magritte-ui-chat-bubble/internal/Tail';\nimport { getColors } from '@hh.ru/magritte-ui-chat-bubble/internal/colors';\nimport { ChatBubbleErrorMenuProvider } from '@hh.ru/magritte-ui-chat-bubble/internal/errorMenu';\nimport { ChatBubbleModeProvider } from '@hh.ru/magritte-ui-chat-bubble/internal/mode';\nimport { isMetaHost, flattenFragments } from '@hh.ru/magritte-ui-chat-bubble/internal/utils';\nimport type { ChatBubbleProps } from '@hh.ru/magritte-ui-chat-bubble/types';\nimport { IconDefaultPropsContext, type IconProps } from '@hh.ru/magritte-ui-icon';\nimport { ExclamationCircleFilledSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Menu } from '@hh.ru/magritte-ui-menu';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './chat-bubble.less';\n\ninterface ChatBubbleComponents {\n ErrorAction: typeof ChatBubbleErrorAction;\n File: typeof ChatBubbleFile;\n Label: typeof ChatBubbleLabel;\n Message: typeof ChatBubbleMessage;\n Status: typeof ChatBubbleStatus;\n}\n\nexport const ChatBubble = forwardRef<HTMLDivElement, ChatBubbleProps>(\n (\n {\n actions,\n buttons,\n children,\n header,\n errorActions,\n mode = 'incoming',\n showTail = false,\n status,\n time,\n error = false,\n errorText,\n 'data-qa': dataQa = 'chat-bubble',\n className,\n },\n ref\n ) => {\n const [menuVisible, setMenuVisible] = useState(false);\n const closeErrorMenu = useCallback(() => setMenuVisible(false), []);\n const activatorMenuRef = useRef<SVGElement>(null);\n const colors = getColors(mode);\n const actionsIconProps: Partial<IconProps> = useMemo(\n () => ({ padding: 8, initialColor: colors.actionsIcon }),\n [colors]\n );\n const buttonsProps: Partial<ButtonProps> = useMemo(\n () => ({ size: 'small', mode: 'secondary', style: colors.button, stretched: true }),\n [colors]\n );\n /**\n * Время отдаём последнему элементу контента\n * Позиция времени меняется, в зависимости от компонента\n * Если последний ребенок не может отрисовать, вставим meta в самый конец\n */\n const meta = <Meta mode={mode} status={status} time={time} />;\n const items = flattenFragments(children);\n const lastIndex = items.length - 1;\n const metaHosted = isMetaHost(items[lastIndex]);\n const content = items.map((child, index) =>\n index === lastIndex && isMetaHost(child) ? cloneElement(child, { meta }) : child\n );\n return (\n <ChatBubbleModeProvider value={mode}>\n <div\n className={classnames(className, styles.chatBubble, styles[mode], {\n [styles.withTail]: showTail,\n })}\n data-qa={dataQa}\n ref={ref}\n >\n <div className={styles.row}>\n <div className={styles.bubble}>\n {header && (\n <div className={styles.header} data-qa=\"chat-bubble-header\">\n {header}\n </div>\n )}\n <div\n className={header ? styles.contentWithHeader : undefined}\n data-qa=\"chat-bubble-content\"\n >\n {content}\n {!metaHosted && meta}\n </div>\n {showTail && <Tail />}\n </div>\n {mode === 'outgoing' && error && (\n <div>\n <ExclamationCircleFilledSize24\n ref={activatorMenuRef}\n initialColor=\"negative\"\n onClick={errorActions ? () => setMenuVisible((visible) => !visible) : undefined}\n data-qa=\"chat-bubble-error-button\"\n aria-haspopup={errorActions ? 'menu' : undefined}\n aria-expanded={errorActions ? menuVisible : undefined}\n />\n {errorActions && (\n <Menu\n activatorRef={activatorMenuRef}\n onClose={closeErrorMenu}\n placement=\"bottom-right\"\n visible={menuVisible}\n >\n <ChatBubbleErrorMenuProvider value={closeErrorMenu}>\n {errorActions}\n </ChatBubbleErrorMenuProvider>\n </Menu>\n )}\n </div>\n )}\n </div>\n {mode === 'outgoing' && error && errorText && (\n <div className={styles.errorText} data-qa=\"chat-bubble-error-text\">\n <Text typography=\"label-4-regular\" style=\"negative\" maxLines={2}>\n {errorText}\n </Text>\n </div>\n )}\n {buttons && (mode === 'bot' || mode === 'incoming') && (\n <ButtonDefaultPropsContext props={buttonsProps}>\n <div className={styles.buttons} data-qa=\"chat-bubble-buttons\">\n {buttons}\n </div>\n </ButtonDefaultPropsContext>\n )}\n {actions && (\n <IconDefaultPropsContext props={actionsIconProps}>\n <div className={styles.actions} data-qa=\"chat-bubble-actions\">\n {actions}\n </div>\n </IconDefaultPropsContext>\n )}\n </div>\n </ChatBubbleModeProvider>\n );\n }\n) as React.ForwardRefExoticComponent<ChatBubbleProps & React.RefAttributes<HTMLDivElement>> & ChatBubbleComponents;\n\nChatBubble.displayName = 'ChatBubble';\n\nChatBubble.ErrorAction = ChatBubbleErrorAction;\nChatBubble.File = ChatBubbleFile;\nChatBubble.Label = ChatBubbleLabel;\nChatBubble.Message = ChatBubbleMessage;\nChatBubble.Status = ChatBubbleStatus;\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ChatBubble.js","sources":["src/ChatBubble.tsx"],"sourcesContent":["import { cloneElement, forwardRef, useCallback, useState, useMemo, useRef } from 'react';\nimport classnames from 'classnames';\n\nimport { ButtonDefaultPropsContext, type ButtonProps } from '@hh.ru/magritte-ui-button';\nimport { ChatBubbleErrorAction } from '@hh.ru/magritte-ui-chat-bubble/ErrorAction';\nimport { ChatBubbleFile } from '@hh.ru/magritte-ui-chat-bubble/File';\nimport { ChatBubbleLabel } from '@hh.ru/magritte-ui-chat-bubble/Label';\nimport { ChatBubbleMedia } from '@hh.ru/magritte-ui-chat-bubble/Media';\nimport { ChatBubbleMessage } from '@hh.ru/magritte-ui-chat-bubble/Message';\nimport { ChatBubbleSnippet } from '@hh.ru/magritte-ui-chat-bubble/Snippet';\nimport { ChatBubbleStatus } from '@hh.ru/magritte-ui-chat-bubble/Status';\nimport { Meta } from '@hh.ru/magritte-ui-chat-bubble/internal/Meta';\nimport { Tail } from '@hh.ru/magritte-ui-chat-bubble/internal/Tail';\nimport { getColors } from '@hh.ru/magritte-ui-chat-bubble/internal/colors';\nimport { ChatBubbleErrorMenuProvider } from '@hh.ru/magritte-ui-chat-bubble/internal/errorMenu';\nimport { ChatBubbleModeProvider } from '@hh.ru/magritte-ui-chat-bubble/internal/mode';\nimport { isMetaHost, flattenFragments } from '@hh.ru/magritte-ui-chat-bubble/internal/utils';\nimport type { ChatBubbleProps } from '@hh.ru/magritte-ui-chat-bubble/types';\nimport { IconDefaultPropsContext, type IconProps } from '@hh.ru/magritte-ui-icon';\nimport { ExclamationCircleFilledSize24 } from '@hh.ru/magritte-ui-icon/icon';\nimport { Menu } from '@hh.ru/magritte-ui-menu';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './chat-bubble.less';\n\ninterface ChatBubbleComponents {\n ErrorAction: typeof ChatBubbleErrorAction;\n File: typeof ChatBubbleFile;\n Label: typeof ChatBubbleLabel;\n Media: typeof ChatBubbleMedia;\n Message: typeof ChatBubbleMessage;\n Snippet: typeof ChatBubbleSnippet;\n Status: typeof ChatBubbleStatus;\n}\n\nexport const ChatBubble = forwardRef<HTMLDivElement, ChatBubbleProps>(\n (\n {\n actions,\n buttons,\n children,\n header,\n errorActions,\n mode = 'incoming',\n showTail = false,\n status,\n time,\n error = false,\n errorText,\n 'data-qa': dataQa = 'chat-bubble',\n className,\n },\n ref\n ) => {\n const [menuVisible, setMenuVisible] = useState(false);\n const closeErrorMenu = useCallback(() => setMenuVisible(false), []);\n const activatorMenuRef = useRef<SVGElement>(null);\n const colors = getColors(mode);\n const actionsIconProps: Partial<IconProps> = useMemo(\n () => ({ padding: 8, initialColor: colors.actionsIcon }),\n [colors]\n );\n const buttonsProps: Partial<ButtonProps> = useMemo(\n () => ({ size: 'small', mode: 'secondary', style: colors.button, stretched: true }),\n [colors]\n );\n /**\n * Время отдаём последнему элементу контента\n * Позиция времени меняется, в зависимости от компонента\n * Если последний ребенок не может отрисовать, вставим meta в самый конец\n */\n const meta = <Meta mode={mode} status={status} time={time} />;\n const items = flattenFragments(children);\n const lastIndex = items.length - 1;\n const metaHosted = isMetaHost(items[lastIndex]);\n const content = items.map((child, index) =>\n index === lastIndex && isMetaHost(child) ? cloneElement(child, { meta }) : child\n );\n return (\n <ChatBubbleModeProvider value={mode}>\n <div\n className={classnames(className, styles.chatBubble, styles[mode], {\n [styles.withTail]: showTail,\n })}\n data-qa={dataQa}\n ref={ref}\n >\n <div className={styles.row}>\n <div className={styles.bubble}>\n {header && (\n <div className={styles.header} data-qa=\"chat-bubble-header\">\n {header}\n </div>\n )}\n <div\n className={header ? styles.contentWithHeader : undefined}\n data-qa=\"chat-bubble-content\"\n >\n {content}\n {!metaHosted && meta}\n </div>\n {showTail && <Tail />}\n </div>\n {mode === 'outgoing' && error && (\n <div>\n <ExclamationCircleFilledSize24\n ref={activatorMenuRef}\n initialColor=\"negative\"\n onClick={errorActions ? () => setMenuVisible((visible) => !visible) : undefined}\n data-qa=\"chat-bubble-error-button\"\n aria-haspopup={errorActions ? 'menu' : undefined}\n aria-expanded={errorActions ? menuVisible : undefined}\n />\n {errorActions && (\n <Menu\n activatorRef={activatorMenuRef}\n onClose={closeErrorMenu}\n placement=\"bottom-right\"\n visible={menuVisible}\n >\n <ChatBubbleErrorMenuProvider value={closeErrorMenu}>\n {errorActions}\n </ChatBubbleErrorMenuProvider>\n </Menu>\n )}\n </div>\n )}\n </div>\n {mode === 'outgoing' && error && errorText && (\n <div className={styles.errorText} data-qa=\"chat-bubble-error-text\">\n <Text typography=\"label-4-regular\" style=\"negative\" maxLines={2}>\n {errorText}\n </Text>\n </div>\n )}\n {buttons && (mode === 'bot' || mode === 'incoming') && (\n <ButtonDefaultPropsContext props={buttonsProps}>\n <div className={styles.buttons} data-qa=\"chat-bubble-buttons\">\n {buttons}\n </div>\n </ButtonDefaultPropsContext>\n )}\n {actions && (\n <IconDefaultPropsContext props={actionsIconProps}>\n <div className={styles.actions} data-qa=\"chat-bubble-actions\">\n {actions}\n </div>\n </IconDefaultPropsContext>\n )}\n </div>\n </ChatBubbleModeProvider>\n );\n }\n) as React.ForwardRefExoticComponent<ChatBubbleProps & React.RefAttributes<HTMLDivElement>> & ChatBubbleComponents;\n\nChatBubble.displayName = 'ChatBubble';\n\nChatBubble.ErrorAction = ChatBubbleErrorAction;\nChatBubble.File = ChatBubbleFile;\nChatBubble.Label = ChatBubbleLabel;\nChatBubble.Media = ChatBubbleMedia;\nChatBubble.Message = ChatBubbleMessage;\nChatBubble.Snippet = ChatBubbleSnippet;\nChatBubble.Status = ChatBubbleStatus;\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
package/File.js CHANGED
@@ -8,7 +8,7 @@ import { markMetaHost } from './internal/utils.js';
8
8
  import { ArrowDownLineOutlinedSize24, DocumentOutlinedSize24 } from '@hh.ru/magritte-ui-icon/icon';
9
9
  import { LinkDefaultPropsContext } from '@hh.ru/magritte-ui-link';
10
10
  import { Loader } from '@hh.ru/magritte-ui-loader';
11
- import { s as styles } from './chat-bubble-CaB7cEff.js';
11
+ import { s as styles } from './chat-bubble-C4Yvxp5H.js';
12
12
 
13
13
  /** Прикреплённый файл */
14
14
  const ChatBubbleFileComponent = forwardRef(({ 'data-qa': dataQa = 'chat-bubble-file', description, meta, name, preview, state = 'loaded', previewAlt, ...props }, ref) => {
package/Media.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import { type ChatBubbleMetaHostProps } from '@hh.ru/magritte-ui-chat-bubble/internal/utils';
3
+ export interface ChatBubbleMediaProps extends HTMLAttributes<HTMLDivElement>, ChatBubbleMetaHostProps {
4
+ /** Url изображения или превью видео */
5
+ src?: string;
6
+ /** alt изображения */
7
+ alt?: string;
8
+ /** Содержимое поверх превью */
9
+ children?: ReactNode;
10
+ /** тип медиа (отображается в верхнем левом углу) */
11
+ format?: ReactNode;
12
+ /**
13
+ * Значение data-qa
14
+ * @default chat-bubble-media
15
+ */
16
+ 'data-qa'?: string;
17
+ }
18
+ export declare const ChatBubbleMedia: import("react").ForwardRefExoticComponent<ChatBubbleMediaProps & import("react").RefAttributes<HTMLDivElement>> & import("@hh.ru/magritte-ui-chat-bubble/internal/utils").MetaHostComponent;
package/Media.js ADDED
@@ -0,0 +1,18 @@
1
+ import './index.css';
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { markMetaHost } from './internal/utils.js';
5
+ import { Text } from '@hh.ru/magritte-ui-typography';
6
+ import { s as styles } from './chat-bubble-C4Yvxp5H.js';
7
+
8
+ /**
9
+ * Медиа в сообщении
10
+ */
11
+ const ChatBubbleMediaComponent = forwardRef(({ alt, children, 'data-qa': dataQa = 'chat-bubble-media', meta, src, format, ...props }, ref) => {
12
+ return (jsxs("div", { ...props, className: styles.media, "data-qa": dataQa, ref: ref, children: [src && (jsxs(Fragment, { children: [jsx("img", { className: styles.mediaBlur, src: src, alt: "", "aria-hidden": true }), jsx("img", { className: styles.mediaImage, src: src, alt: alt ?? '' })] })), children && jsx("span", { className: styles.mediaContent, children: children }), format && (jsx("span", { className: styles.mediaFormat, "data-qa": "chat-bubble-media-format", children: jsx(Text, { Element: "span", typography: "label-4-regular", style: "constant", children: format }) })), meta && (jsx("span", { className: styles.mediaMeta, "data-qa": "chat-bubble-media-meta", children: meta }))] }));
13
+ });
14
+ ChatBubbleMediaComponent.displayName = 'ChatBubble.Media';
15
+ const ChatBubbleMedia = markMetaHost(ChatBubbleMediaComponent);
16
+
17
+ export { ChatBubbleMedia };
18
+ //# sourceMappingURL=Media.js.map
package/Media.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Media.js","sources":["src/Media.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\n\nimport { markMetaHost, type ChatBubbleMetaHostProps } from '@hh.ru/magritte-ui-chat-bubble/internal/utils';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './chat-bubble.less';\n\nexport interface ChatBubbleMediaProps extends HTMLAttributes<HTMLDivElement>, ChatBubbleMetaHostProps {\n /** Url изображения или превью видео */\n src?: string;\n /** alt изображения */\n alt?: string;\n /** Содержимое поверх превью */\n children?: ReactNode;\n /** тип медиа (отображается в верхнем левом углу) */\n format?: ReactNode;\n /**\n * Значение data-qa\n * @default chat-bubble-media\n */\n 'data-qa'?: string;\n}\n\n/**\n * Медиа в сообщении\n */\nconst ChatBubbleMediaComponent = forwardRef<HTMLDivElement, ChatBubbleMediaProps>(\n ({ alt, children, 'data-qa': dataQa = 'chat-bubble-media', meta, src, format, ...props }, ref) => {\n return (\n <div {...props} className={styles.media} data-qa={dataQa} ref={ref}>\n {src && (\n <>\n <img className={styles.mediaBlur} src={src} alt=\"\" aria-hidden />\n <img className={styles.mediaImage} src={src} alt={alt ?? ''} />\n </>\n )}\n {children && <span className={styles.mediaContent}>{children}</span>}\n {format && (\n <span className={styles.mediaFormat} data-qa=\"chat-bubble-media-format\">\n <Text Element=\"span\" typography=\"label-4-regular\" style=\"constant\">\n {format}\n </Text>\n </span>\n )}\n {meta && (\n <span className={styles.mediaMeta} data-qa=\"chat-bubble-media-meta\">\n {meta}\n </span>\n )}\n </div>\n );\n }\n);\n\nChatBubbleMediaComponent.displayName = 'ChatBubble.Media';\n\nexport const ChatBubbleMedia = markMetaHost(ChatBubbleMediaComponent);\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;;AAuBA;;AAEG;AACH,MAAM,wBAAwB,GAAG,UAAU,CACvC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,mBAAmB,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;IAC7F,QACIA,IAAS,CAAA,KAAA,EAAA,EAAA,GAAA,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAW,SAAA,EAAA,MAAM,EAAE,GAAG,EAAE,GAAG,EAAA,QAAA,EAAA,CAC7D,GAAG,KACAA,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACIC,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,EAAE,EAAA,aAAA,EAAA,IAAA,EAAA,CAAe,EACjEA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAI,CAAA,CAAA,EAAA,CAChE,CACN,EACA,QAAQ,IAAIA,cAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAQ,EACnE,MAAM,KACHA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,WAAW,EAAA,SAAA,EAAU,0BAA0B,EAAA,QAAA,EACnEA,GAAC,CAAA,IAAI,EAAC,EAAA,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,iBAAiB,EAAC,KAAK,EAAC,UAAU,EAAA,QAAA,EAC7D,MAAM,EAAA,CACJ,EACJ,CAAA,CACV,EACA,IAAI,KACDA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,SAAS,EAAU,SAAA,EAAA,wBAAwB,EAC9D,QAAA,EAAA,IAAI,EACF,CAAA,CACV,CACC,EAAA,CAAA,EACR;AACN,CAAC,CACJ,CAAC;AAEF,wBAAwB,CAAC,WAAW,GAAG,kBAAkB,CAAC;MAE7C,eAAe,GAAG,YAAY,CAAC,wBAAwB;;;;"}
package/Message.js CHANGED
@@ -5,7 +5,7 @@ import { getColors } from './internal/colors.js';
5
5
  import { useChatBubbleMode } from './internal/mode.js';
6
6
  import { markMetaHost } from './internal/utils.js';
7
7
  import { Text } from '@hh.ru/magritte-ui-typography';
8
- import { s as styles } from './chat-bubble-CaB7cEff.js';
8
+ import { s as styles } from './chat-bubble-C4Yvxp5H.js';
9
9
 
10
10
  /**
11
11
  * Текстовая часть сообщения.
package/Snippet.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ export interface ChatBubbleSnippetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
3
+ /** Заголовок сниппета */
4
+ title?: ReactNode;
5
+ /** Подзаголовок сниппета */
6
+ subtitle?: ReactNode;
7
+ /** Описание под заголовками */
8
+ message?: ReactNode;
9
+ /** Содержимое под текстом (превью, карта, кастомный контент) */
10
+ children?: ReactNode;
11
+ /**
12
+ * Значение data-qa
13
+ * @default chat-bubble-snippet
14
+ */
15
+ 'data-qa'?: string;
16
+ }
17
+ export declare const ChatBubbleSnippet: import("react").ForwardRefExoticComponent<ChatBubbleSnippetProps & import("react").RefAttributes<HTMLDivElement>>;
package/Snippet.js ADDED
@@ -0,0 +1,20 @@
1
+ import './index.css';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { getColors } from './internal/colors.js';
5
+ import { useChatBubbleMode } from './internal/mode.js';
6
+ import { Text } from '@hh.ru/magritte-ui-typography';
7
+ import { s as styles } from './chat-bubble-C4Yvxp5H.js';
8
+
9
+ /**
10
+ * Сниппет: дополнительная информация к сообщению
11
+ */
12
+ const ChatBubbleSnippetComponent = forwardRef(({ children, 'data-qa': dataQa = 'chat-bubble-snippet', message, subtitle, title, ...props }, ref) => {
13
+ const colors = getColors(useChatBubbleMode());
14
+ return (jsxs("div", { ...props, className: styles.snippet, "data-qa": dataQa, ref: ref, children: [title && (jsx(Text, { typography: "subtitle-3-semibold", style: colors.text, "data-qa": "chat-bubble-snippet-title", children: title })), subtitle && (jsx(Text, { typography: "subtitle-3-semibold", style: colors.text, maxLines: 2, "data-qa": "chat-bubble-snippet-subtitle", children: subtitle })), message && (jsx(Text, { typography: "label-4-regular", style: colors.text, "data-qa": "chat-bubble-snippet-message", children: message })), children] }));
15
+ });
16
+ ChatBubbleSnippetComponent.displayName = 'ChatBubble.Snippet';
17
+ const ChatBubbleSnippet = ChatBubbleSnippetComponent;
18
+
19
+ export { ChatBubbleSnippet };
20
+ //# sourceMappingURL=Snippet.js.map
package/Snippet.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Snippet.js","sources":["src/Snippet.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from 'react';\n\nimport { getColors } from '@hh.ru/magritte-ui-chat-bubble/internal/colors';\nimport { useChatBubbleMode } from '@hh.ru/magritte-ui-chat-bubble/internal/mode';\nimport { Text } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './chat-bubble.less';\n\nexport interface ChatBubbleSnippetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Заголовок сниппета */\n title?: ReactNode;\n /** Подзаголовок сниппета */\n subtitle?: ReactNode;\n /** Описание под заголовками */\n message?: ReactNode;\n /** Содержимое под текстом (превью, карта, кастомный контент) */\n children?: ReactNode;\n /**\n * Значение data-qa\n * @default chat-bubble-snippet\n */\n 'data-qa'?: string;\n}\n\n/**\n * Сниппет: дополнительная информация к сообщению\n */\nconst ChatBubbleSnippetComponent = forwardRef<HTMLDivElement, ChatBubbleSnippetProps>(\n ({ children, 'data-qa': dataQa = 'chat-bubble-snippet', message, subtitle, title, ...props }, ref) => {\n const colors = getColors(useChatBubbleMode());\n\n return (\n <div {...props} className={styles.snippet} data-qa={dataQa} ref={ref}>\n {title && (\n <Text typography=\"subtitle-3-semibold\" style={colors.text} data-qa=\"chat-bubble-snippet-title\">\n {title}\n </Text>\n )}\n {subtitle && (\n <Text\n typography=\"subtitle-3-semibold\"\n style={colors.text}\n maxLines={2}\n data-qa=\"chat-bubble-snippet-subtitle\"\n >\n {subtitle}\n </Text>\n )}\n {message && (\n <Text typography=\"label-4-regular\" style={colors.text} data-qa=\"chat-bubble-snippet-message\">\n {message}\n </Text>\n )}\n {children}\n </div>\n );\n }\n);\n\nChatBubbleSnippetComponent.displayName = 'ChatBubble.Snippet';\n\nexport const ChatBubbleSnippet = ChatBubbleSnippetComponent;\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAwBA;;AAEG;AACH,MAAM,0BAA0B,GAAG,UAAU,CACzC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,qBAAqB,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AACjG,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAE9C,IAAA,QACIA,IAAS,CAAA,KAAA,EAAA,EAAA,GAAA,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,aAAW,MAAM,EAAE,GAAG,EAAE,GAAG,aAC/D,KAAK,KACFC,GAAC,CAAA,IAAI,EAAC,EAAA,UAAU,EAAC,qBAAqB,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAA,SAAA,EAAU,2BAA2B,EACzF,QAAA,EAAA,KAAK,GACH,CACV,EACA,QAAQ,KACLA,IAAC,IAAI,EAAA,EACD,UAAU,EAAC,qBAAqB,EAChC,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,QAAQ,EAAE,CAAC,EAAA,SAAA,EACH,8BAA8B,EAErC,QAAA,EAAA,QAAQ,GACN,CACV,EACA,OAAO,KACJA,IAAC,IAAI,EAAA,EAAC,UAAU,EAAC,iBAAiB,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,aAAU,6BAA6B,EAAA,QAAA,EACvF,OAAO,EACL,CAAA,CACV,EACA,QAAQ,CAAA,EAAA,CACP,EACR;AACN,CAAC,CACJ,CAAC;AAEF,0BAA0B,CAAC,WAAW,GAAG,oBAAoB,CAAC;AAEvD,MAAM,iBAAiB,GAAG;;;;"}
package/Status.js CHANGED
@@ -7,7 +7,7 @@ import { getColors } from './internal/colors.js';
7
7
  import { useChatBubbleMode } from './internal/mode.js';
8
8
  import { EyeOutlinedSize16, ClockOutlinedSize16, CheckOutlinedSize16, CheckDoubleOutlinedSize16 } from '@hh.ru/magritte-ui-icon/icon';
9
9
  import { TooltipHover } from '@hh.ru/magritte-ui-tooltip';
10
- import { s as styles } from './chat-bubble-CaB7cEff.js';
10
+ import { s as styles } from './chat-bubble-C4Yvxp5H.js';
11
11
 
12
12
  const ICON = {
13
13
  sending: ClockOutlinedSize16,
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"tail":"magritte-tail___-1lJ0_1-4-0","tail_outgoing":"magritte-tail_outgoing___cnyh3_1-4-0","tailOutgoing":"magritte-tail_outgoing___cnyh3_1-4-0","meta":"magritte-meta___HT7lp_1-4-0"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=chat-bubble-BEqoLjma.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-bubble-BEqoLjma.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"chat-bubble":"magritte-chat-bubble___ds9CP_1-4-0","chatBubble":"magritte-chat-bubble___ds9CP_1-4-0","outgoing":"magritte-outgoing___3n00o_1-4-0","bot":"magritte-bot___Z6vZA_1-4-0","row":"magritte-row___mQNnt_1-4-0","bubble":"magritte-bubble___NVuDI_1-4-0","with-tail":"magritte-with-tail___IdixJ_1-4-0","withTail":"magritte-with-tail___IdixJ_1-4-0","header":"magritte-header___Px2to_1-4-0","message-title":"magritte-message-title___dgBFk_1-4-0","messageTitle":"magritte-message-title___dgBFk_1-4-0","message":"magritte-message___7TEpw_1-4-0","buttons":"magritte-buttons___yQqBi_1-4-0","actions":"magritte-actions___I5GSz_1-4-0","error-text":"magritte-error-text___1ZxWY_1-4-0","errorText":"magritte-error-text___1ZxWY_1-4-0","file":"magritte-file___k2IKy_1-4-0","file-preview":"magritte-file-preview___eJKu8_1-4-0","filePreview":"magritte-file-preview___eJKu8_1-4-0","media":"magritte-media___9jH2k_1-4-0","media-blur":"magritte-media-blur___TbiMa_1-4-0","mediaBlur":"magritte-media-blur___TbiMa_1-4-0","media-image":"magritte-media-image___G-FkF_1-4-0","mediaImage":"magritte-media-image___G-FkF_1-4-0","media-content":"magritte-media-content___n3XbD_1-4-0","mediaContent":"magritte-media-content___n3XbD_1-4-0","media-format":"magritte-media-format___AdfCK_1-4-0","mediaFormat":"magritte-media-format___AdfCK_1-4-0","media-meta":"magritte-media-meta___oSxxr_1-4-0","mediaMeta":"magritte-media-meta___oSxxr_1-4-0","snippet":"magritte-snippet___8k9xb_1-4-0","status":"magritte-status___dHzCt_1-4-0","content-with-header":"magritte-content-with-header___wiNKB_1-4-0","contentWithHeader":"magritte-content-with-header___wiNKB_1-4-0"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=chat-bubble-C4Yvxp5H.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-bubble-C4Yvxp5H.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/index.css CHANGED
@@ -1,10 +1,19 @@
1
1
  :root{
2
+ --magritte-color-background-overlay-v25-0-1:#20262bad;
3
+ --magritte-color-text-constant-v25-0-1:#ffffff;
2
4
  --magritte-color-component-chat-bubble-background-incoming-v25-0-1:#F4F6FB;
3
5
  --magritte-color-component-chat-bubble-background-outgoing-v25-0-1:#0070ff;
4
6
  --magritte-color-component-chat-bubble-background-bot-v25-0-1:#f9f7ff;
5
7
  --magritte-color-component-chat-bubble-border-incoming-v25-0-1:#EEF1F7;
6
8
  --magritte-color-component-chat-bubble-border-outgoing-v25-0-1:#0d63e3;
7
9
  --magritte-color-component-chat-bubble-border-bot-v25-0-1:#f3eeff;
10
+ --magritte-color-component-chat-bubble-border-image-v25-0-1:#0000001a;
11
+ --magritte-color-component-chat-bubble-snippet-background-incoming-v25-0-1:#EEF1F7;
12
+ --magritte-color-component-chat-bubble-snippet-background-outgoing-v25-0-1:#2b7fff;
13
+ --magritte-color-component-chat-bubble-snippet-background-bot-v25-0-1:#f3eeff;
14
+ --magritte-color-component-chat-bubble-snippet-line-incoming-v25-0-1:#0070ff;
15
+ --magritte-color-component-chat-bubble-snippet-line-outgoing-v25-0-1:#f3f9ff;
16
+ --magritte-color-component-chat-bubble-snippet-line-bot-v25-0-1:#9054ea;
8
17
  }
9
18
 
10
19
  .magritte-night-theme{
@@ -14,47 +23,58 @@
14
23
  --magritte-color-component-chat-bubble-border-incoming-v25-0-1:#303030;
15
24
  --magritte-color-component-chat-bubble-border-outgoing-v25-0-1:#0070ff;
16
25
  --magritte-color-component-chat-bubble-border-bot-v25-0-1:#403A59;
26
+ --magritte-color-component-chat-bubble-snippet-background-incoming-v25-0-1:#303030;
27
+ --magritte-color-component-chat-bubble-snippet-background-outgoing-v25-0-1:#468ffd;
28
+ --magritte-color-component-chat-bubble-snippet-background-bot-v25-0-1:#403A59;
17
29
  }
18
30
 
19
31
  .magritte-zp-day-theme{
20
32
  --magritte-color-component-chat-bubble-background-outgoing-v25-0-1:#7195AF;
21
33
  --magritte-color-component-chat-bubble-border-outgoing-v25-0-1:#557B96;
34
+ --magritte-color-component-chat-bubble-snippet-background-outgoing-v25-0-1:#90ACC1;
35
+ --magritte-color-component-chat-bubble-snippet-line-incoming-v25-0-1:#557B96;
22
36
  }
23
- .magritte-chat-bubble___ds9CP_1-2-0{
37
+ .magritte-chat-bubble___ds9CP_1-4-0{
24
38
  --magritte-chat-bubble-background:var(--magritte-color-component-chat-bubble-background-incoming-v25-0-1);
25
39
  --magritte-chat-bubble-border:var(--magritte-color-component-chat-bubble-border-incoming-v25-0-1);
40
+ --magritte-chat-bubble-snippet-background:var(--magritte-color-component-chat-bubble-snippet-background-incoming-v25-0-1);
41
+ --magritte-chat-bubble-snippet-line:var(--magritte-color-component-chat-bubble-snippet-line-incoming-v25-0-1);
26
42
  display:flex;
27
43
  flex-direction:column;
28
44
  align-items:flex-start;
29
45
  max-width:calc(100% - 40px);
30
46
  }
31
47
  @media (min-width: 1020px){
32
- body.magritte-old-layout .magritte-chat-bubble___ds9CP_1-2-0{
48
+ body.magritte-old-layout .magritte-chat-bubble___ds9CP_1-4-0{
33
49
  max-width:min(460px, 100%);
34
50
  }
35
51
  }
36
52
  @media (min-width: 1024px){
37
- body:not(.magritte-old-layout) .magritte-chat-bubble___ds9CP_1-2-0{
53
+ body:not(.magritte-old-layout) .magritte-chat-bubble___ds9CP_1-4-0{
38
54
  max-width:min(460px, 100%);
39
55
  }
40
56
  }
41
- .magritte-outgoing___3n00o_1-2-0{
57
+ .magritte-outgoing___3n00o_1-4-0{
42
58
  --magritte-chat-bubble-background:var(--magritte-color-component-chat-bubble-background-outgoing-v25-0-1);
43
59
  --magritte-chat-bubble-border:var(--magritte-color-component-chat-bubble-border-outgoing-v25-0-1);
60
+ --magritte-chat-bubble-snippet-background:var(--magritte-color-component-chat-bubble-snippet-background-outgoing-v25-0-1);
61
+ --magritte-chat-bubble-snippet-line:var(--magritte-color-component-chat-bubble-snippet-line-outgoing-v25-0-1);
44
62
  align-items:flex-end;
45
63
  margin-left:auto;
46
64
  }
47
- .magritte-bot___Z6vZA_1-2-0{
65
+ .magritte-bot___Z6vZA_1-4-0{
48
66
  --magritte-chat-bubble-background:var(--magritte-color-component-chat-bubble-background-bot-v25-0-1);
49
67
  --magritte-chat-bubble-border:var(--magritte-color-component-chat-bubble-border-bot-v25-0-1);
68
+ --magritte-chat-bubble-snippet-background:var(--magritte-color-component-chat-bubble-snippet-background-bot-v25-0-1);
69
+ --magritte-chat-bubble-snippet-line:var(--magritte-color-component-chat-bubble-snippet-line-bot-v25-0-1);
50
70
  }
51
- .magritte-row___mQNnt_1-2-0{
71
+ .magritte-row___mQNnt_1-4-0{
52
72
  display:flex;
53
73
  align-items:flex-end;
54
74
  gap:8px;
55
75
  max-width:100%;
56
76
  }
57
- .magritte-bubble___NVuDI_1-2-0{
77
+ .magritte-bubble___NVuDI_1-4-0{
58
78
  position:relative;
59
79
  box-sizing:border-box;
60
80
  min-width:0;
@@ -65,78 +85,204 @@
65
85
  border-radius:20px;
66
86
  overflow-wrap:break-word;
67
87
  }
68
- .magritte-with-tail___IdixJ_1-2-0 .magritte-bubble___NVuDI_1-2-0{
88
+ .magritte-with-tail___IdixJ_1-4-0 .magritte-bubble___NVuDI_1-4-0{
69
89
  border-bottom-left-radius:0;
70
90
  }
71
- .magritte-with-tail___IdixJ_1-2-0.magritte-outgoing___3n00o_1-2-0 .magritte-bubble___NVuDI_1-2-0{
91
+ .magritte-with-tail___IdixJ_1-4-0.magritte-outgoing___3n00o_1-4-0 .magritte-bubble___NVuDI_1-4-0{
72
92
  border-bottom-left-radius:20px;
73
93
  border-bottom-right-radius:0;
74
94
  }
75
- .magritte-header___Px2to_1-2-0{
95
+ .magritte-header___Px2to_1-4-0{
76
96
  display:flex;
77
97
  flex-direction:column;
78
98
  gap:4px;
79
99
  margin-bottom:4px;
80
100
  }
81
- .magritte-message-title___dgBFk_1-2-0{
101
+ .magritte-message-title___dgBFk_1-4-0{
82
102
  margin-bottom:4px;
83
103
  }
84
- .magritte-message___7TEpw_1-2-0:not(:first-child){
104
+ .magritte-message___7TEpw_1-4-0:not(:first-child){
85
105
  margin-top:8px;
86
106
  }
87
- .magritte-buttons___yQqBi_1-2-0{
107
+ .magritte-buttons___yQqBi_1-4-0{
88
108
  display:grid;
89
109
  grid-template-columns:repeat(2, 1fr);
90
110
  gap:8px;
91
111
  width:100%;
92
112
  margin-top:4px;
93
113
  }
94
- .magritte-buttons___yQqBi_1-2-0 > *:last-child:nth-child(odd){
114
+ .magritte-buttons___yQqBi_1-4-0 > *:last-child:nth-child(odd){
95
115
  grid-column:span 2;
96
116
  }
97
- .magritte-actions___I5GSz_1-2-0{
117
+ .magritte-actions___I5GSz_1-4-0{
98
118
  display:flex;
99
119
  flex-wrap:wrap;
100
120
  gap:2px;
101
121
  margin-top:4px;
102
122
  }
103
- .magritte-error-text___1ZxWY_1-2-0{
123
+ .magritte-error-text___1ZxWY_1-4-0{
104
124
  margin-top:2px;
105
125
  }
106
- .magritte-file___k2IKy_1-2-0{
126
+ .magritte-file___k2IKy_1-4-0{
107
127
  display:flex;
108
128
  align-items:flex-end;
109
129
  }
110
- .magritte-file___k2IKy_1-2-0 + .magritte-file___k2IKy_1-2-0{
130
+ .magritte-file___k2IKy_1-4-0 + .magritte-file___k2IKy_1-4-0{
111
131
  margin-top:12px;
112
132
  }
113
- .magritte-content-with-header___wiNKB_1-2-0 > .magritte-file___k2IKy_1-2-0:first-child{
114
- margin-top:8px;
115
- }
116
- .magritte-file-preview___eJKu8_1-2-0{
133
+ .magritte-file-preview___eJKu8_1-4-0{
117
134
  display:block;
118
135
  width:48px;
119
136
  height:48px;
120
137
  border-radius:8px;
121
138
  object-fit:cover;
122
139
  }
123
- .magritte-status___dHzCt_1-2-0{
140
+ .magritte-media___9jH2k_1-4-0{
141
+ display:flex;
142
+ position:relative;
143
+ box-sizing:border-box;
144
+ min-width:120px;
145
+ min-height:120px;
146
+ max-height:min(60vh, 452px);
147
+ margin:-8px;
148
+ border-radius:16px;
149
+ overflow:hidden;
150
+ box-shadow:inset 0 0 0 1px var(--magritte-color-component-chat-bubble-border-image-v25-0-1);
151
+ }
152
+ @media (min-width: 1020px){
153
+ body.magritte-old-layout .magritte-media___9jH2k_1-4-0{
154
+ max-width:452px;
155
+ max-height:452px;
156
+ }
157
+ }
158
+ @media (min-width: 1024px){
159
+ body:not(.magritte-old-layout) .magritte-media___9jH2k_1-4-0{
160
+ max-width:452px;
161
+ max-height:452px;
162
+ }
163
+ }
164
+ .magritte-media-blur___TbiMa_1-4-0{
165
+ position:absolute;
166
+ top:-96px;
167
+ left:-96px;
168
+ width:calc(100% + 96px * 2);
169
+ height:calc(100% + 96px * 2);
170
+ opacity:0.5;
171
+ filter:blur(48px);
172
+ object-fit:cover;
173
+ }
174
+ .magritte-media-image___G-FkF_1-4-0{
175
+ display:block;
176
+ position:relative;
177
+ max-width:100%;
178
+ max-height:min(60vh, 452px);
179
+ margin:auto;
180
+ }
181
+ @media (min-width: 1020px){
182
+ body.magritte-old-layout .magritte-media-image___G-FkF_1-4-0{
183
+ max-height:452px;
184
+ }
185
+ }
186
+ @media (min-width: 1024px){
187
+ body:not(.magritte-old-layout) .magritte-media-image___G-FkF_1-4-0{
188
+ max-height:452px;
189
+ }
190
+ }
191
+ .magritte-media-content___n3XbD_1-4-0{
192
+ display:flex;
193
+ position:absolute;
194
+ inset:0;
195
+ align-items:center;
196
+ justify-content:center;
197
+ }
198
+ .magritte-media-format___AdfCK_1-4-0{
199
+ display:flex;
200
+ position:absolute;
201
+ top:4px;
202
+ left:4px;
203
+ padding:2px 8px;
204
+ background-color:var(--magritte-color-background-overlay-v25-0-1);
205
+ border-radius:12px;
206
+ backdrop-filter:blur(24px);
207
+ }
208
+ .magritte-media-meta___oSxxr_1-4-0{
209
+ --magritte-ui-text-color-override:var(--magritte-color-text-constant-v25-0-1);
210
+ display:flex;
211
+ position:absolute;
212
+ right:4px;
213
+ bottom:4px;
214
+ align-items:center;
215
+ padding:2px 8px;
216
+ background-color:var(--magritte-color-background-overlay-v25-0-1);
217
+ border-radius:12px;
218
+ backdrop-filter:blur(24px);
219
+ }
220
+ .magritte-media-meta___oSxxr_1-4-0:empty{
221
+ display:none;
222
+ }
223
+ .magritte-media-meta___oSxxr_1-4-0 > span{
224
+ margin-left:0;
225
+ }
226
+ .magritte-media___9jH2k_1-4-0:not(:last-child){
227
+ margin-bottom:12px;
228
+ }
229
+ .magritte-snippet___8k9xb_1-4-0{
230
+ display:flex;
231
+ position:relative;
232
+ flex-direction:column;
233
+ gap:2px;
234
+ padding:8px;
235
+ padding-left:12px;
236
+ background-color:var(--magritte-chat-bubble-snippet-background);
237
+ border-radius:8px;
238
+ overflow:hidden;
239
+ }
240
+ .magritte-snippet___8k9xb_1-4-0:not(:last-child){
241
+ margin-bottom:4px;
242
+ }
243
+ .magritte-snippet___8k9xb_1-4-0::before{
244
+ content:'';
245
+ position:absolute;
246
+ top:0;
247
+ bottom:0;
248
+ left:0;
249
+ width:4px;
250
+ background-color:var(--magritte-chat-bubble-snippet-line);
251
+ }
252
+ .magritte-snippet___8k9xb_1-4-0 img{
253
+ display:block;
254
+ max-width:100%;
255
+ border-radius:4px;
256
+ outline:1px solid var(--magritte-color-component-chat-bubble-border-image-v25-0-1);
257
+ outline-offset:-1px;
258
+ margin-top:6px;
259
+ }
260
+ .magritte-snippet___8k9xb_1-4-0:not(:first-child){
261
+ margin-top:8px;
262
+ }
263
+ .magritte-status___dHzCt_1-4-0{
124
264
  display:inline-flex;
125
265
  vertical-align:middle;
266
+ }
267
+ .magritte-status___dHzCt_1-4-0:not(:first-child){
126
268
  margin-left:4px;
127
269
  }
270
+ .magritte-content-with-header___wiNKB_1-4-0 > .magritte-file___k2IKy_1-4-0:first-child,
271
+ .magritte-content-with-header___wiNKB_1-4-0 > .magritte-media___9jH2k_1-4-0:first-child{
272
+ margin-top:8px;
273
+ }
128
274
 
129
- .magritte-tail___-1lJ0_1-2-0{
275
+ .magritte-tail___-1lJ0_1-4-0{
130
276
  position:absolute;
131
277
  bottom:-1px;
132
278
  left:-7px;
133
279
  }
134
- .magritte-tail_outgoing___cnyh3_1-2-0{
280
+ .magritte-tail_outgoing___cnyh3_1-4-0{
135
281
  left:auto;
136
282
  right:-7px;
137
283
  transform:scaleX(-1);
138
284
  }
139
- .magritte-meta___HT7lp_1-2-0{
285
+ .magritte-meta___HT7lp_1-4-0{
140
286
  float:right;
141
287
  margin-left:12px;
142
288
  white-space:nowrap;
package/index.d.ts CHANGED
@@ -3,5 +3,7 @@ export type { ChatBubbleMode, ChatBubbleProps } from '@hh.ru/magritte-ui-chat-bu
3
3
  export type { ChatBubbleErrorActionProps } from '@hh.ru/magritte-ui-chat-bubble/ErrorAction';
4
4
  export type { ChatBubbleFileProps, ChatBubbleFileState } from '@hh.ru/magritte-ui-chat-bubble/File';
5
5
  export type { ChatBubbleLabelProps } from '@hh.ru/magritte-ui-chat-bubble/Label';
6
+ export type { ChatBubbleMediaProps } from '@hh.ru/magritte-ui-chat-bubble/Media';
6
7
  export type { ChatBubbleMessageProps } from '@hh.ru/magritte-ui-chat-bubble/Message';
8
+ export type { ChatBubbleSnippetProps } from '@hh.ru/magritte-ui-chat-bubble/Snippet';
7
9
  export type { ChatBubbleStatusProps, ChatBubbleStatusValue } from '@hh.ru/magritte-ui-chat-bubble/Status';
package/index.js CHANGED
@@ -15,16 +15,18 @@ import './internal/utils.js';
15
15
  import '@hh.ru/magritte-ui-icon/icon';
16
16
  import '@hh.ru/magritte-ui-link';
17
17
  import '@hh.ru/magritte-ui-loader';
18
- import './chat-bubble-CaB7cEff.js';
18
+ import './chat-bubble-C4Yvxp5H.js';
19
19
  import './Label.js';
20
20
  import '@hh.ru/magritte-ui-typography';
21
+ import './Media.js';
21
22
  import './Message.js';
23
+ import './Snippet.js';
22
24
  import './Status.js';
23
25
  import '@hh.ru/magritte-common-use-multiple-refs';
24
26
  import '@hh.ru/magritte-common-use-translation';
25
27
  import '@hh.ru/magritte-ui-tooltip';
26
28
  import './internal/Meta.js';
27
- import './chat-bubble-BjmT1S_i.js';
29
+ import './chat-bubble-BEqoLjma.js';
28
30
  import './internal/Tail.js';
29
31
  import '@hh.ru/magritte-ui-icon';
30
32
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/index.mock.d.ts CHANGED
@@ -2,12 +2,16 @@ export type { ChatBubbleMode, ChatBubbleProps } from '@hh.ru/magritte-ui-chat-bu
2
2
  export type { ChatBubbleErrorActionProps } from '@hh.ru/magritte-ui-chat-bubble/ErrorAction';
3
3
  export type { ChatBubbleFileProps, ChatBubbleFileState } from '@hh.ru/magritte-ui-chat-bubble/File';
4
4
  export type { ChatBubbleLabelProps } from '@hh.ru/magritte-ui-chat-bubble/Label';
5
+ export type { ChatBubbleMediaProps } from '@hh.ru/magritte-ui-chat-bubble/Media';
5
6
  export type { ChatBubbleMessageProps } from '@hh.ru/magritte-ui-chat-bubble/Message';
7
+ export type { ChatBubbleSnippetProps } from '@hh.ru/magritte-ui-chat-bubble/Snippet';
6
8
  export type { ChatBubbleStatusProps, ChatBubbleStatusValue } from '@hh.ru/magritte-ui-chat-bubble/Status';
7
9
  export declare const ChatBubble: import("react").ForwardRefExoticComponent<Record<string, unknown>> & {
8
10
  ErrorAction: import("react").ForwardRefExoticComponent<Record<string, unknown>>;
9
11
  File: import("react").ForwardRefExoticComponent<Record<string, unknown>>;
10
12
  Label: import("react").ForwardRefExoticComponent<Record<string, unknown>>;
13
+ Media: import("react").ForwardRefExoticComponent<Record<string, unknown>>;
11
14
  Message: import("react").ForwardRefExoticComponent<Record<string, unknown>>;
15
+ Snippet: import("react").ForwardRefExoticComponent<Record<string, unknown>>;
12
16
  Status: import("react").ForwardRefExoticComponent<Record<string, unknown>>;
13
17
  };
package/index.mock.js CHANGED
@@ -4,13 +4,17 @@ import { mockComponent } from '@hh.ru/magritte-ui-mock-component';
4
4
  const ErrorAction = mockComponent('ChatBubble.ErrorAction', undefined, { withChildren: true });
5
5
  const File = mockComponent('ChatBubble.File');
6
6
  const Label = mockComponent('ChatBubble.Label', undefined, { withChildren: true });
7
+ const Media = mockComponent('ChatBubble.Media', undefined, { withChildren: true });
7
8
  const Message = mockComponent('ChatBubble.Message', undefined, { withChildren: true });
9
+ const Snippet = mockComponent('ChatBubble.Snippet', undefined, { withChildren: true });
8
10
  const Status = mockComponent('ChatBubble.Status', undefined, { withChildren: true });
9
11
  const ChatBubble = Object.assign(mockComponent('ChatBubble', undefined, { withChildren: true }), {
10
12
  ErrorAction,
11
13
  File,
12
14
  Label,
15
+ Media,
13
16
  Message,
17
+ Snippet,
14
18
  Status,
15
19
  });
16
20
 
package/index.mock.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mock.js","sources":["src/index.mock.ts"],"sourcesContent":["import { mockComponent } from '@hh.ru/magritte-ui-mock-component';\n\nexport type { ChatBubbleMode, ChatBubbleProps } from '@hh.ru/magritte-ui-chat-bubble/types';\nexport type { ChatBubbleErrorActionProps } from '@hh.ru/magritte-ui-chat-bubble/ErrorAction';\nexport type { ChatBubbleFileProps, ChatBubbleFileState } from '@hh.ru/magritte-ui-chat-bubble/File';\nexport type { ChatBubbleLabelProps } from '@hh.ru/magritte-ui-chat-bubble/Label';\nexport type { ChatBubbleMessageProps } from '@hh.ru/magritte-ui-chat-bubble/Message';\nexport type { ChatBubbleStatusProps, ChatBubbleStatusValue } from '@hh.ru/magritte-ui-chat-bubble/Status';\n\nconst ErrorAction = mockComponent('ChatBubble.ErrorAction', undefined, { withChildren: true });\nconst File = mockComponent('ChatBubble.File');\nconst Label = mockComponent('ChatBubble.Label', undefined, { withChildren: true });\nconst Message = mockComponent('ChatBubble.Message', undefined, { withChildren: true });\nconst Status = mockComponent('ChatBubble.Status', undefined, { withChildren: true });\n\nexport const ChatBubble = Object.assign(mockComponent('ChatBubble', undefined, { withChildren: true }), {\n ErrorAction,\n File,\n Label,\n Message,\n Status,\n});\n"],"names":[],"mappings":";;AASA,MAAM,WAAW,GAAG,aAAa,CAAC,wBAAwB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/F,MAAM,IAAI,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACnF,MAAM,OAAO,GAAG,aAAa,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACvF,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;MAExE,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE;IACpG,WAAW;IACX,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;AACT,CAAA;;;;"}
1
+ {"version":3,"file":"index.mock.js","sources":["src/index.mock.ts"],"sourcesContent":["import { mockComponent } from '@hh.ru/magritte-ui-mock-component';\n\nexport type { ChatBubbleMode, ChatBubbleProps } from '@hh.ru/magritte-ui-chat-bubble/types';\nexport type { ChatBubbleErrorActionProps } from '@hh.ru/magritte-ui-chat-bubble/ErrorAction';\nexport type { ChatBubbleFileProps, ChatBubbleFileState } from '@hh.ru/magritte-ui-chat-bubble/File';\nexport type { ChatBubbleLabelProps } from '@hh.ru/magritte-ui-chat-bubble/Label';\nexport type { ChatBubbleMediaProps } from '@hh.ru/magritte-ui-chat-bubble/Media';\nexport type { ChatBubbleMessageProps } from '@hh.ru/magritte-ui-chat-bubble/Message';\nexport type { ChatBubbleSnippetProps } from '@hh.ru/magritte-ui-chat-bubble/Snippet';\nexport type { ChatBubbleStatusProps, ChatBubbleStatusValue } from '@hh.ru/magritte-ui-chat-bubble/Status';\n\nconst ErrorAction = mockComponent('ChatBubble.ErrorAction', undefined, { withChildren: true });\nconst File = mockComponent('ChatBubble.File');\nconst Label = mockComponent('ChatBubble.Label', undefined, { withChildren: true });\nconst Media = mockComponent('ChatBubble.Media', undefined, { withChildren: true });\nconst Message = mockComponent('ChatBubble.Message', undefined, { withChildren: true });\nconst Snippet = mockComponent('ChatBubble.Snippet', undefined, { withChildren: true });\nconst Status = mockComponent('ChatBubble.Status', undefined, { withChildren: true });\n\nexport const ChatBubble = Object.assign(mockComponent('ChatBubble', undefined, { withChildren: true }), {\n ErrorAction,\n File,\n Label,\n Media,\n Message,\n Snippet,\n Status,\n});\n"],"names":[],"mappings":";;AAWA,MAAM,WAAW,GAAG,aAAa,CAAC,wBAAwB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/F,MAAM,IAAI,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACnF,MAAM,KAAK,GAAG,aAAa,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACnF,MAAM,OAAO,GAAG,aAAa,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACvF,MAAM,OAAO,GAAG,aAAa,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACvF,MAAM,MAAM,GAAG,aAAa,CAAC,mBAAmB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;MAExE,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE;IACpG,WAAW;IACX,IAAI;IACJ,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;AACT,CAAA;;;;"}
package/internal/Meta.js CHANGED
@@ -2,7 +2,7 @@ import './../index.css';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { getColors } from './colors.js';
4
4
  import { Text } from '@hh.ru/magritte-ui-typography';
5
- import { s as styles } from '../chat-bubble-BjmT1S_i.js';
5
+ import { s as styles } from '../chat-bubble-BEqoLjma.js';
6
6
 
7
7
  /**
8
8
  * Время и статус сообщения
package/internal/Tail.js CHANGED
@@ -2,7 +2,7 @@ import './../index.css';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import classnames from 'classnames';
4
4
  import { useChatBubbleMode } from './mode.js';
5
- import { s as styles } from '../chat-bubble-BjmT1S_i.js';
5
+ import { s as styles } from '../chat-bubble-BEqoLjma.js';
6
6
  import 'react';
7
7
 
8
8
  const OUTLINE = 'M6.5 0C6.5 7.5 5.2 11.8 1.6 13.4C0.9 13.9 0.6 14.5 1.1 14.5H7';
@@ -5,11 +5,11 @@ import type { IconColor } from '@hh.ru/magritte-ui-icon';
5
5
  import type { LinkProps } from '@hh.ru/magritte-ui-link';
6
6
  import type { TextStyle } from '@hh.ru/magritte-ui-typography';
7
7
  export interface ChatBubbleColors {
8
- /** Основной текст сообщения, названия файла */
8
+ /** Основной текст сообщения, названия файла, текст сниппета */
9
9
  text: TextStyle;
10
- /** Второстепенный текст: время, размер файла, описание сниппета */
10
+ /** Второстепенный текст: время, размер файла */
11
11
  secondaryText: TextStyle;
12
- /** Акцентный текст: имя отправителя, автор цитаты, заголовок сниппета */
12
+ /** Акцентный текст: имя отправителя, автор цитаты */
13
13
  accentText: TextStyle;
14
14
  /** Иконка статуса, лежит на фоне баббла */
15
15
  statusIcon: IconColor;
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","sources":["src/internal/colors.ts"],"sourcesContent":["import type { TokenColorBackground } from '@hh.ru/magritte-design-tokens/types';\nimport type { ButtonStyle } from '@hh.ru/magritte-ui-button';\nimport type { ChatBubbleMode } from '@hh.ru/magritte-ui-chat-bubble/types';\nimport type { IconColor } from '@hh.ru/magritte-ui-icon';\nimport type { LinkProps } from '@hh.ru/magritte-ui-link';\nimport type { TextStyle } from '@hh.ru/magritte-ui-typography';\n\nexport interface ChatBubbleColors {\n /** Основной текст сообщения, названия файла */\n text: TextStyle;\n /** Второстепенный текст: время, размер файла, описание сниппета */\n secondaryText: TextStyle;\n /** Акцентный текст: имя отправителя, автор цитаты, заголовок сниппета */\n accentText: TextStyle;\n /** Иконка статуса, лежит на фоне баббла */\n statusIcon: IconColor;\n /** Иконки действий, лежат под бабблом на фоне страницы */\n actionsIcon: IconColor;\n /** Кнопки под бабблом */\n button: ButtonStyle;\n /** Ссылка-действие: «Открыть», «Загрузить» */\n link: Pick<LinkProps, 'style' | 'mode'>;\n /** Иконка рядом со второстепенным текстом: лоадер загрузки файла */\n secondaryIcon: IconColor;\n /** Иконка файла */\n fileIcon: IconColor;\n /** Подложка под иконкой файла */\n fileIconBackground: TokenColorBackground;\n}\n\nconst COLORS: Record<ChatBubbleMode, ChatBubbleColors> = {\n incoming: {\n text: 'primary',\n secondaryText: 'secondary',\n accentText: 'accent',\n statusIcon: 'constant',\n actionsIcon: 'secondary',\n button: 'neutral',\n link: { style: 'accent' },\n secondaryIcon: 'secondary',\n fileIcon: 'constant',\n fileIconBackground: 'accent',\n },\n outgoing: {\n text: 'constant',\n secondaryText: 'constant',\n accentText: 'constant',\n statusIcon: 'constant',\n actionsIcon: 'accent',\n button: 'accent',\n link: { style: 'constant', mode: 'secondary' },\n secondaryIcon: 'constant',\n fileIcon: 'accent',\n fileIconBackground: 'accent-secondary',\n },\n bot: {\n text: 'primary',\n secondaryText: 'secondary',\n accentText: 'special',\n statusIcon: 'special',\n actionsIcon: 'special',\n button: 'special',\n link: { style: 'accent' },\n secondaryIcon: 'secondary',\n fileIcon: 'constant',\n fileIconBackground: 'special',\n },\n};\n\nexport const getColors = (mode: ChatBubbleMode): ChatBubbleColors => COLORS[mode];\n"],"names":[],"mappings":"AA8BA,MAAM,MAAM,GAA6C;AACrD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AACzB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,kBAAkB,EAAE,QAAQ;AAC/B,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;AAC9C,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,kBAAkB,EAAE,kBAAkB;AACzC,KAAA;AACD,IAAA,GAAG,EAAE;AACD,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AACzB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,kBAAkB,EAAE,SAAS;AAChC,KAAA;CACJ,CAAC;AAEK,MAAM,SAAS,GAAG,CAAC,IAAoB,KAAuB,MAAM,CAAC,IAAI;;;;"}
1
+ {"version":3,"file":"colors.js","sources":["src/internal/colors.ts"],"sourcesContent":["import type { TokenColorBackground } from '@hh.ru/magritte-design-tokens/types';\nimport type { ButtonStyle } from '@hh.ru/magritte-ui-button';\nimport type { ChatBubbleMode } from '@hh.ru/magritte-ui-chat-bubble/types';\nimport type { IconColor } from '@hh.ru/magritte-ui-icon';\nimport type { LinkProps } from '@hh.ru/magritte-ui-link';\nimport type { TextStyle } from '@hh.ru/magritte-ui-typography';\n\nexport interface ChatBubbleColors {\n /** Основной текст сообщения, названия файла, текст сниппета */\n text: TextStyle;\n /** Второстепенный текст: время, размер файла */\n secondaryText: TextStyle;\n /** Акцентный текст: имя отправителя, автор цитаты */\n accentText: TextStyle;\n /** Иконка статуса, лежит на фоне баббла */\n statusIcon: IconColor;\n /** Иконки действий, лежат под бабблом на фоне страницы */\n actionsIcon: IconColor;\n /** Кнопки под бабблом */\n button: ButtonStyle;\n /** Ссылка-действие: «Открыть», «Загрузить» */\n link: Pick<LinkProps, 'style' | 'mode'>;\n /** Иконка рядом со второстепенным текстом: лоадер загрузки файла */\n secondaryIcon: IconColor;\n /** Иконка файла */\n fileIcon: IconColor;\n /** Подложка под иконкой файла */\n fileIconBackground: TokenColorBackground;\n}\n\nconst COLORS: Record<ChatBubbleMode, ChatBubbleColors> = {\n incoming: {\n text: 'primary',\n secondaryText: 'secondary',\n accentText: 'accent',\n statusIcon: 'constant',\n actionsIcon: 'secondary',\n button: 'neutral',\n link: { style: 'accent' },\n secondaryIcon: 'secondary',\n fileIcon: 'constant',\n fileIconBackground: 'accent',\n },\n outgoing: {\n text: 'constant',\n secondaryText: 'constant',\n accentText: 'constant',\n statusIcon: 'constant',\n actionsIcon: 'accent',\n button: 'accent',\n link: { style: 'constant', mode: 'secondary' },\n secondaryIcon: 'constant',\n fileIcon: 'accent',\n fileIconBackground: 'accent-secondary',\n },\n bot: {\n text: 'primary',\n secondaryText: 'secondary',\n accentText: 'special',\n statusIcon: 'special',\n actionsIcon: 'special',\n button: 'special',\n link: { style: 'accent' },\n secondaryIcon: 'secondary',\n fileIcon: 'constant',\n fileIconBackground: 'special',\n },\n};\n\nexport const getColors = (mode: ChatBubbleMode): ChatBubbleColors => COLORS[mode];\n"],"names":[],"mappings":"AA8BA,MAAM,MAAM,GAA6C;AACrD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AACzB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,kBAAkB,EAAE,QAAQ;AAC/B,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;AAC9C,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,kBAAkB,EAAE,kBAAkB;AACzC,KAAA;AACD,IAAA,GAAG,EAAE;AACD,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;AACzB,QAAA,aAAa,EAAE,WAAW;AAC1B,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,kBAAkB,EAAE,SAAS;AAChC,KAAA;CACJ,CAAC;AAEK,MAAM,SAAS,GAAG,CAAC,IAAoB,KAAuB,MAAM,CAAC,IAAI;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-chat-bubble",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -28,7 +28,7 @@
28
28
  "@hh.ru/magritte-ui-icon": "15.0.3",
29
29
  "@hh.ru/magritte-ui-link": "7.2.0",
30
30
  "@hh.ru/magritte-ui-loader": "4.1.0",
31
- "@hh.ru/magritte-ui-menu": "1.0.34",
31
+ "@hh.ru/magritte-ui-menu": "1.0.35",
32
32
  "@hh.ru/magritte-ui-mock-component": "1.1.7",
33
33
  "@hh.ru/magritte-ui-tooltip": "11.0.44",
34
34
  "@hh.ru/magritte-ui-typography": "5.3.12"
@@ -40,5 +40,5 @@
40
40
  "publishConfig": {
41
41
  "access": "public"
42
42
  },
43
- "gitHead": "908702cc0743dad7b2875c13c8f7abd8b3ceb011"
43
+ "gitHead": "62e71a0b8833517456a5b94635e409e152ef4734"
44
44
  }
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"tail":"magritte-tail___-1lJ0_1-2-0","tail_outgoing":"magritte-tail_outgoing___cnyh3_1-2-0","tailOutgoing":"magritte-tail_outgoing___cnyh3_1-2-0","meta":"magritte-meta___HT7lp_1-2-0"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=chat-bubble-BjmT1S_i.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-bubble-BjmT1S_i.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"chat-bubble":"magritte-chat-bubble___ds9CP_1-2-0","chatBubble":"magritte-chat-bubble___ds9CP_1-2-0","outgoing":"magritte-outgoing___3n00o_1-2-0","bot":"magritte-bot___Z6vZA_1-2-0","row":"magritte-row___mQNnt_1-2-0","bubble":"magritte-bubble___NVuDI_1-2-0","with-tail":"magritte-with-tail___IdixJ_1-2-0","withTail":"magritte-with-tail___IdixJ_1-2-0","header":"magritte-header___Px2to_1-2-0","message-title":"magritte-message-title___dgBFk_1-2-0","messageTitle":"magritte-message-title___dgBFk_1-2-0","message":"magritte-message___7TEpw_1-2-0","buttons":"magritte-buttons___yQqBi_1-2-0","actions":"magritte-actions___I5GSz_1-2-0","error-text":"magritte-error-text___1ZxWY_1-2-0","errorText":"magritte-error-text___1ZxWY_1-2-0","file":"magritte-file___k2IKy_1-2-0","content-with-header":"magritte-content-with-header___wiNKB_1-2-0","contentWithHeader":"magritte-content-with-header___wiNKB_1-2-0","file-preview":"magritte-file-preview___eJKu8_1-2-0","filePreview":"magritte-file-preview___eJKu8_1-2-0","status":"magritte-status___dHzCt_1-2-0"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=chat-bubble-CaB7cEff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-bubble-CaB7cEff.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}