@darajs/ui-components 1.11.2 → 1.11.4

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.
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import { InteractiveComponentProps, Message, UserData } from '../types';
2
3
  export interface ChatProps extends InteractiveComponentProps<Message[]> {
3
4
  /** Event triggered when the chat sidebar is closed */
@@ -6,6 +7,16 @@ export interface ChatProps extends InteractiveComponentProps<Message[]> {
6
7
  onUpdate?: (value: Message[]) => void | Promise<void>;
7
8
  /** The user who is currently active in the chat */
8
9
  activeUser: UserData;
10
+ /** The title to appear at the top of the chat */
11
+ chatTitle?: string;
12
+ /** The placeholder text for the reply field */
13
+ placeholder?: string;
14
+ /** Whether the chat is in a popup and should be styled as such */
15
+ isPopup?: boolean;
16
+ /** A component showing the loading state of the chat, it appears above the input area, when not loading the caller can set it to null */
17
+ loadingComponent?: React.ReactNode;
18
+ /** Whether the user can edit/delete previous messages */
19
+ isHistoryReadonly?: boolean;
9
20
  }
10
21
  /**
11
22
  * A chat component
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAqExE,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,OAAO,EAAE,CAAC;IACnE,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,mDAAmD;IACnD,UAAU,EAAE,QAAQ,CAAC;CACxB;AA0BD;;;;GAIG;AACH,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAmG3C;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAkExE,MAAM,WAAW,SAAU,SAAQ,yBAAyB,CAAC,OAAO,EAAE,CAAC;IACnE,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,mDAAmD;IACnD,UAAU,EAAE,QAAQ,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yIAAyI;IACzI,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA0BD;;;;GAIG;AACH,iBAAS,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAgH3C;AAED,eAAe,IAAI,CAAC"}
package/dist/chat/chat.js CHANGED
@@ -19,7 +19,7 @@ import { isEqual } from 'lodash';
19
19
  import { nanoid } from 'nanoid';
20
20
  import * as React from 'react';
21
21
  import styled from '@darajs/styled-components';
22
- import { Xmark } from '@darajs/ui-icons';
22
+ import { PaperPlane, Xmark } from '@darajs/ui-icons';
23
23
  import Button from '../button/button';
24
24
  import TextArea from '../textarea/textarea';
25
25
  import { default as MessageComponent } from './message';
@@ -29,27 +29,24 @@ const ChatWrapper = styled.div `
29
29
  flex-direction: column;
30
30
  gap: 1rem;
31
31
 
32
- width: 350px;
33
- height: calc(100vh - 2rem);
32
+ width: ${(props) => (props.$isPopup ? '350px' : '100%')};
33
+ height: ${(props) => (props.$isPopup ? 'calc(100vh - 2rem)' : '100%')};
34
34
  padding: 1.5rem;
35
35
 
36
- background-color: ${(props) => props.theme.colors.background}e6;
37
- border-radius: 0.4rem;
36
+ background-color: ${(props) => (props.$isPopup ? `${props.theme.colors.background}e6` : 'inherit')};
37
+ border-radius: ${(props) => (props.$isPopup ? '0.4rem' : 0)};
38
38
  box-shadow: ${(props) => props.theme.shadow.medium};
39
39
  `;
40
40
  const ReplyWrapper = styled.div `
41
41
  display: flex;
42
- flex-direction: column;
43
- gap: 1rem;
44
- justify-self: flex-end;
45
-
46
- height: 8.6rem;
42
+ gap: 0.5rem;
43
+ align-items: end;
47
44
  margin-top: auto;
48
45
  `;
49
46
  const ReplyButtons = styled.div `
50
47
  display: flex;
51
48
  gap: 1rem;
52
- justify-content: flex-end;
49
+ align-items: end;
53
50
  `;
54
51
  const ChatBody = styled.div `
55
52
  overflow-y: auto;
@@ -57,7 +54,7 @@ const ChatBody = styled.div `
57
54
  flex-direction: column;
58
55
  gap: 1rem;
59
56
 
60
- max-height: calc(100% - 10.225rem);
57
+ max-height: calc(100% - 6.225rem);
61
58
  margin: -0.25rem;
62
59
  padding: 0.25rem;
63
60
  `;
@@ -112,13 +109,17 @@ function didUserWriteMessage(message, user) {
112
109
  * @param {ChatProps} props - the component props
113
110
  */
114
111
  function Chat(props) {
115
- var _a;
112
+ var _a, _b, _c;
116
113
  const [reply, setReply] = React.useState('');
117
114
  const [localMessages, setLocalMessages] = React.useState((_a = props.value) !== null && _a !== void 0 ? _a : []);
118
- if (props.value && !isEqual(props.value, localMessages)) {
119
- setLocalMessages(props.value);
120
- }
121
115
  const chatBodyRef = React.useRef(null);
116
+ React.useEffect(() => {
117
+ var _a;
118
+ if (!isEqual(props.value, localMessages)) {
119
+ setLocalMessages((_a = props.value) !== null && _a !== void 0 ? _a : []);
120
+ scrollToBottom(chatBodyRef === null || chatBodyRef === void 0 ? void 0 : chatBodyRef.current);
121
+ }
122
+ }, [props.value]);
122
123
  const onChangeReply = (text) => {
123
124
  // Prevents the message starting with a newline
124
125
  if (!text.startsWith('\n')) {
@@ -171,7 +172,7 @@ function Chat(props) {
171
172
  React.useLayoutEffect(() => {
172
173
  scrollToBottom(chatBodyRef === null || chatBodyRef === void 0 ? void 0 : chatBodyRef.current);
173
174
  }, []);
174
- return (_jsxs(ChatWrapper, { className: props.className, style: props.style, children: [_jsxs(ChatTop, { children: [_jsx("span", { children: "Chat" }), _jsx(CloseIcon, { onClick: props.onClose })] }), _jsx(ChatBody, { ref: chatBodyRef, children: localMessages.map((message) => (_jsx(MessageComponent, { onChange: onEditMessage, onDelete: onDeleteMessage, value: message, isEditable: didUserWriteMessage(message, props.activeUser) }, message.id))) }), _jsxs(ReplyWrapper, { children: [_jsx(TextArea, { onChange: onChangeReply, onComplete: onSubmitMessage, placeholder: "Add a comment", resize: "none", value: reply }), _jsx(ReplyButtons, { children: _jsx(Button, { disabled: !(reply.trim().length > 0), onClick: onSubmitMessage, children: "Send" }) })] })] }));
175
+ return (_jsxs(ChatWrapper, { className: props.className, style: props.style, "$isPopup": props.isPopup, children: [_jsxs(ChatTop, { children: [_jsx("span", { children: (_b = props.chatTitle) !== null && _b !== void 0 ? _b : 'Chat' }), props.isPopup && _jsx(CloseIcon, { onClick: props.onClose, "aria-label": "Close chat" })] }), _jsxs(ChatBody, { ref: chatBodyRef, role: "log", children: [localMessages.map((message) => (_jsx(MessageComponent, { onChange: onEditMessage, onDelete: onDeleteMessage, value: message, didUserWriteMessage: didUserWriteMessage(message, props.activeUser), isEditable: !props.isHistoryReadonly }, message.id))), props.loadingComponent] }), _jsxs(ReplyWrapper, { children: [_jsx(TextArea, { onChange: onChangeReply, onComplete: onSubmitMessage, placeholder: (_c = props.placeholder) !== null && _c !== void 0 ? _c : 'Add a comment', resize: "none", maxHeight: 6, value: reply, style: { width: '100%' } }), _jsx(ReplyButtons, { children: _jsx(Button, { "aria-label": "Send", style: { height: '3.7rem' }, disabled: !!props.loadingComponent || !(reply.trim().length > 0), onClick: onSubmitMessage, children: _jsx(PaperPlane, { onClick: onSubmitMessage }) }) })] })] }));
175
176
  }
176
177
  export default Chat;
177
178
  //# sourceMappingURL=chat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface MessageProps extends InteractiveComponentProps<Message> {
7
7
  onDelete?: (id: string) => void | Promise<void>;
8
8
  /** An optional flag to determine if the message is editable */
9
9
  isEditable?: boolean;
10
+ /** Flag to check if the user wrote the message */
11
+ didUserWriteMessage?: boolean;
10
12
  }
11
13
  /**
12
14
  * A function to get the formatted timestamp to display in the submitted message
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/chat/message.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AA8G9D,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,OAAO,CAAC;IACpE,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAmCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAwF1D;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/chat/message.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAkH9D,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,OAAO,CAAC;IACpE,yEAAyE;IACzE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAmCD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,iBAAS,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CA8G1D;AAED,eAAe,gBAAgB,CAAC"}
@@ -27,7 +27,7 @@ import Tooltip from '../tooltip/tooltip';
27
27
  const InteractiveIcons = styled.div `
28
28
  position: absolute;
29
29
  top: 0.75rem;
30
- left: 236px;
30
+ right: 0.75rem;
31
31
 
32
32
  display: none;
33
33
  gap: 0.5rem;
@@ -46,7 +46,7 @@ const MessageWrapper = styled.div `
46
46
  width: 100%;
47
47
  padding: 1rem;
48
48
 
49
- background-color: ${(props) => props.theme.colors.blue1};
49
+ background-color: ${(props) => props.$messageFromActiveUser ? props.theme.colors.blue2 : props.theme.colors.blue1};
50
50
  border-radius: 0.25rem;
51
51
  box-shadow: ${(props) => props.theme.shadow.medium};
52
52
 
@@ -64,7 +64,10 @@ const MessageTimestamp = styled.span `
64
64
  font-size: 0.75rem;
65
65
  color: ${(props) => props.theme.colors.grey5};
66
66
  `;
67
- const MessageBody = styled.span `
67
+ const MessageBody = styled.div `
68
+ display: flex;
69
+ flex-direction: column;
70
+ gap: 0.5rem;
68
71
  width: 100%;
69
72
  color: ${(props) => props.theme.colors.text};
70
73
  overflow-wrap: break-word;
@@ -166,6 +169,7 @@ export function processText(text) {
166
169
  * @param {MessageProps} props - the component props
167
170
  */
168
171
  function MessageComponent(props) {
172
+ var _a, _b;
169
173
  const theme = useTheme();
170
174
  const [editMode, setEditMode] = React.useState(false);
171
175
  const [editMessage, setEditMessage] = React.useState(props.value.message);
@@ -202,7 +206,9 @@ function MessageComponent(props) {
202
206
  props.onDelete(props.value.id);
203
207
  }
204
208
  };
205
- return (_jsxs(MessageWrapper, { className: props.className, style: props.style, children: [_jsxs(MessageTop, { children: [_jsxs(UserInfoWrapper, { children: [_jsx(AvatarIcon, { style: { backgroundColor: selectColor(localMessage.user.name, tokenColors) }, children: getInitials(localMessage.user.name) }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [localMessage.user.name, _jsx(MessageTimestamp, { children: getFormattedTimestamp(props.value.created_at) })] }), localMessage.updated_at !== localMessage.created_at && (_jsx(Tooltip, { content: getFormattedTimestamp(props.value.updated_at), children: _jsx(EditedText, { children: " (edited)" }) }))] }), !editMode && props.isEditable && (_jsxs(InteractiveIcons, { children: [_jsx(EditIcon, { "data-testid": "message-edit-button", onClick: () => setEditMode(true), role: "button" }), _jsx(DeleteIcon, { "data-testid": "message-delete-button", onClick: onDelete, role: "button" })] }))] }), editMode && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '1rem' }, children: [_jsx(TextArea, { onChange: setEditMessage, resize: "vertical", value: editMessage }), _jsxs(EditButtons, { children: [_jsx(Button, { onClick: () => setEditMode(false), outline: true, children: "Cancel" }), _jsx(Button, { onClick: onAccept, children: "Save" })] })] })), !editMode && (_jsx(MessageBody, { children: _jsx(Markdown, { markdown: processText(localMessage.message) }) }))] }));
209
+ return (_jsxs(MessageWrapper, { role: "listitem", className: props.className, style: props.style, "$messageFromActiveUser": props.didUserWriteMessage, children: [_jsxs(MessageTop, { children: [_jsxs(UserInfoWrapper, { children: [_jsx(AvatarIcon, { "aria-hidden": "true", style: {
210
+ backgroundColor: (_a = localMessage.user.color) !== null && _a !== void 0 ? _a : selectColor(localMessage.user.name, tokenColors),
211
+ }, children: (_b = localMessage.user.bubbleContent) !== null && _b !== void 0 ? _b : getInitials(localMessage.user.name) }), _jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [localMessage.user.name, _jsx(MessageTimestamp, { children: getFormattedTimestamp(props.value.created_at) })] }), localMessage.updated_at !== localMessage.created_at && (_jsx(Tooltip, { content: getFormattedTimestamp(props.value.updated_at), children: _jsx(EditedText, { children: " (edited)" }) }))] }), !editMode && props.isEditable && props.didUserWriteMessage && (_jsxs(InteractiveIcons, { children: [_jsx(EditIcon, { "aria-label": "Edit message", "data-testid": "message-edit-button", onClick: () => setEditMode(true), role: "button" }), _jsx(DeleteIcon, { "aria-label": "Delete message", "data-testid": "message-delete-button", onClick: onDelete, role: "button" })] }))] }), editMode && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: '1rem' }, children: [_jsx(TextArea, { onChange: setEditMessage, resize: "vertical", value: editMessage }), _jsxs(EditButtons, { children: [_jsx(Button, { onClick: () => setEditMode(false), outline: true, children: "Cancel" }), _jsx(Button, { onClick: onAccept, children: "Save" })] })] })), !editMode && (_jsxs(MessageBody, { children: [_jsx(Markdown, { markdown: processText(localMessage.message) }), props.value.actions] }))] }));
206
212
  }
207
213
  export default MessageComponent;
208
214
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/chat/message.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/chat/message.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Copyright 2023 Impulse Innovations Limited
3
+ *
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { Language } from 'prism-react-renderer';
18
+ import { InteractiveComponentProps } from '../types';
19
+ export declare enum CodeComponentThemes {
20
+ DARK = "dark",
21
+ LIGHT = "light"
22
+ }
23
+ export interface CodeViewerProps extends InteractiveComponentProps<string> {
24
+ /** the language the code string is written in */
25
+ language: Language;
26
+ /** The code theme to display */
27
+ codeTheme?: CodeComponentThemes;
28
+ }
29
+ declare function CodeViewer(props: CodeViewerProps): JSX.Element;
30
+ export default CodeViewer;
31
+ //# sourceMappingURL=code-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-viewer.d.ts","sourceRoot":"","sources":["../../src/code-viewer/code-viewer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAkB,EAAE,QAAQ,EAAgB,MAAM,sBAAsB,CAAC;AASzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAgCrD,oBAAY,mBAAmB;IAC3B,IAAI,SAAS;IACb,KAAK,UAAU;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,yBAAyB,CAAC,MAAM,CAAC;IACtE,iDAAiD;IACjD,QAAQ,EAAE,QAAQ,CAAC;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACnC;AAWD,iBAAS,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAgFvD;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,114 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { createElement as _createElement } from "react";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ /**
13
+ * Copyright 2023 Impulse Innovations Limited
14
+ *
15
+ *
16
+ * Licensed under the Apache License, Version 2.0 (the "License");
17
+ * you may not use this file except in compliance with the License.
18
+ * You may obtain a copy of the License at
19
+ *
20
+ * http://www.apache.org/licenses/LICENSE-2.0
21
+ *
22
+ * Unless required by applicable law or agreed to in writing, software
23
+ * distributed under the License is distributed on an "AS IS" BASIS,
24
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25
+ * See the License for the specific language governing permissions and
26
+ * limitations under the License.
27
+ */
28
+ import Highlight, { defaultProps } from 'prism-react-renderer';
29
+ import nightOwlLight from 'prism-react-renderer/themes/nightOwlLight';
30
+ import vsDark from 'prism-react-renderer/themes/vsDark';
31
+ import { useEffect, useMemo, useState } from 'react';
32
+ import styled, { darkTheme, theme, useTheme } from '@darajs/styled-components';
33
+ import { Check, Copy } from '@darajs/ui-icons';
34
+ import { copyToClipboard } from '@darajs/ui-utils';
35
+ const CodeViewerContainer = styled.div `
36
+ display: flex;
37
+ flex: 1 1 100%;
38
+ flex-direction: column;
39
+ color: ${(props) => props.theme.colors.grey4};
40
+ `;
41
+ const TopBar = styled.div `
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: space-between;
45
+
46
+ padding: 0.5rem 1rem;
47
+
48
+ font-size: 0.875rem;
49
+
50
+ background-color: ${(props) => (props.$isLightTheme ? theme.colors.blue2 : darkTheme.colors.blue2)} !important;
51
+ border-radius: 0.25rem 0.25rem 0 0;
52
+ `;
53
+ const CopyToClipboardContainer = styled.span `
54
+ :hover {
55
+ color: ${(props) => props.theme.colors.grey5};
56
+ }
57
+
58
+ :active {
59
+ color: ${(props) => props.theme.colors.grey6};
60
+ }
61
+ `;
62
+ export var CodeComponentThemes;
63
+ (function (CodeComponentThemes) {
64
+ CodeComponentThemes["DARK"] = "dark";
65
+ CodeComponentThemes["LIGHT"] = "light";
66
+ })(CodeComponentThemes || (CodeComponentThemes = {}));
67
+ const StyledPre = styled.pre `
68
+ min-width: fit-content;
69
+ margin: 0;
70
+ padding: 1rem;
71
+
72
+ background-color: ${(props) => (props.$isLightTheme ? theme.colors.blue1 : darkTheme.colors.blue1)} !important;
73
+ border-radius: 0 0 0.25rem 0.25rem;
74
+ `;
75
+ function CodeViewer(props) {
76
+ const themeCtx = useTheme();
77
+ const [isCopied, setIsCopied] = useState(false);
78
+ useEffect(() => {
79
+ if (isCopied) {
80
+ const timer = setTimeout(() => {
81
+ setIsCopied(false);
82
+ }, 2000);
83
+ return () => clearTimeout(timer);
84
+ }
85
+ }, [isCopied]);
86
+ function copyCodeToClipboard(code) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ const success = yield copyToClipboard(code);
89
+ if (success) {
90
+ setIsCopied(true);
91
+ }
92
+ else {
93
+ setIsCopied(false);
94
+ }
95
+ });
96
+ }
97
+ const viewerTheme = useMemo(() => {
98
+ if (props.codeTheme) {
99
+ if (props.codeTheme === CodeComponentThemes.LIGHT) {
100
+ return nightOwlLight;
101
+ }
102
+ return vsDark;
103
+ }
104
+ if (themeCtx.themeType === 'dark') {
105
+ return vsDark;
106
+ }
107
+ return nightOwlLight;
108
+ }, [props.codeTheme, themeCtx.themeType]);
109
+ return (_jsxs(CodeViewerContainer, { style: Object.assign({}, props.style), className: props.className, children: [_jsxs(TopBar, { "$isLightTheme": props.codeTheme !== 'dark', children: [_jsx("span", { children: props.language }), isCopied ?
110
+ _jsxs(CopyToClipboardContainer, { children: [_jsx(Check, {}), " Copied!"] })
111
+ : _jsxs(CopyToClipboardContainer, { style: { cursor: 'pointer' }, onClick: () => copyCodeToClipboard(props.value), role: "button", children: [_jsx(Copy, {}), " Copy code"] })] }), _jsx(Highlight, Object.assign({}, defaultProps, { code: props.value, language: props.language, theme: viewerTheme, children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsx(StyledPre, { className: className, "$isLightTheme": props.codeTheme !== 'dark', style: Object.assign({}, style), children: tokens.map((line, i) => (_createElement("div", Object.assign({}, getLineProps({ key: i, line }), { key: i }), line.map((token, key) => (_createElement("code", Object.assign({}, getTokenProps({ key, token }), { key: key }))))))) })) }))] }));
112
+ }
113
+ export default CodeViewer;
114
+ //# sourceMappingURL=code-viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-viewer.js","sourceRoot":"","sources":["../../src/code-viewer/code-viewer.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -25,6 +25,7 @@ export { default as Chat } from './chat/chat';
25
25
  export { default as CategoricalFilter } from './filter/categorical-filter';
26
26
  export { default as Checkbox } from './checkbox/checkbox';
27
27
  export { default as CheckboxGroup } from './checkbox/checkbox-group';
28
+ export { default as CodeViewer, CodeComponentThemes } from './code-viewer/code-viewer';
28
29
  export { default as ComboBox } from './combo-box/combo-box';
29
30
  export { default as ContextMenu, MenuAction } from './context-menu/context-menu';
30
31
  export { default as DatePicker } from './datepicker/datepicker';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ export { default as Chat } from './chat/chat';
24
24
  export { default as CategoricalFilter } from './filter/categorical-filter';
25
25
  export { default as Checkbox } from './checkbox/checkbox';
26
26
  export { default as CheckboxGroup } from './checkbox/checkbox-group';
27
+ export { default as CodeViewer, CodeComponentThemes } from './code-viewer/code-viewer';
27
28
  export { default as ComboBox } from './combo-box/combo-box';
28
29
  export { default as ContextMenu } from './context-menu/context-menu';
29
30
  export { default as DatePicker } from './datepicker/datepicker';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import { Options } from 'react-markdown';
2
3
  interface MarkdownProps extends Options {
3
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/markdown/markdown.tsx"],"names":[],"mappings":"AAAA,OAAsB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAKxD,UAAU,aAAc,SAAQ,OAAO;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC/B;AAgQD;;GAEG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAUnD;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/markdown/markdown.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAsB,EAAc,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAOpE,UAAU,aAAc,SAAQ,OAAO;IACnC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC/B;AAsSD;;GAEG;AACH,iBAAS,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAkBnD;AAED,eAAe,QAAQ,CAAC"}
@@ -10,9 +10,11 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
+ import * as React from 'react';
13
14
  import ReactMarkdown from 'react-markdown';
14
15
  import remarkGfm from 'remark-gfm';
15
- import styled from '@darajs/styled-components';
16
+ import styled, { useTheme } from '@darajs/styled-components';
17
+ import CodeViewer, { CodeComponentThemes } from '../code-viewer/code-viewer';
16
18
  const CustomMarkdownWrapper = styled.div `
17
19
  /*
18
20
  * Apply some base styles to the markdown content so it looks good by default
@@ -122,7 +124,17 @@ const CustomMarkdownWrapper = styled.div `
122
124
  font-size: 0.9rem;
123
125
  }
124
126
 
125
- pre {
127
+ pre:first-child {
128
+ margin-top: 0;
129
+ }
130
+
131
+ pre:last-child {
132
+ margin-bottom: 0;
133
+ }
134
+
135
+ /* don't apply default styles if the pre block has the pretty code display */
136
+ /* stylelint-disable-next-line */
137
+ pre:not(.prism-code):not(:has(.prism-code)) {
126
138
  overflow-x: auto;
127
139
 
128
140
  margin-top: 1.7rem;
@@ -243,7 +255,6 @@ const CustomMarkdownWrapper = styled.div `
243
255
  img:first-child,
244
256
  figure:first-child,
245
257
  video:first-child,
246
- pre:first-child,
247
258
  hr:first-child {
248
259
  margin-top: 0;
249
260
  }
@@ -261,18 +272,34 @@ const CustomMarkdownWrapper = styled.div `
261
272
  img:last-child,
262
273
  figure:last-child,
263
274
  video:last-child,
264
- pre:last-child,
265
275
  hr:last-child {
266
276
  margin-bottom: 0;
267
277
  }
268
278
  `;
279
+ function CodeDisplay(props) {
280
+ const theme = useTheme();
281
+ const { children } = props, rest = __rest(props, ["children"]);
282
+ const match = /language-(\w+)/.exec(props.className || '');
283
+ const parsed = React.useMemo(() => {
284
+ return String(children).trim().replace(/\n\n/, '\n').replace(/\n$/, '');
285
+ }, [children]);
286
+ // if the code block doesn't specify the language, e.g. ``` without lang or inline `code` block
287
+ if (!match) {
288
+ return _jsx("code", Object.assign({}, rest, { children: parsed }));
289
+ }
290
+ // assume language is supported - we could check for grammar support but if unsupported
291
+ // prism will just render without syntax highlighting which is fine
292
+ return (_jsx(CodeViewer, { value: parsed, language: match[1], codeTheme:
293
+ // opposite theme
294
+ theme.themeType === 'dark' ? CodeComponentThemes.LIGHT : CodeComponentThemes.DARK }));
295
+ }
269
296
  /**
270
297
  * A component for rendering markdown
271
298
  */
272
299
  function Markdown(props) {
273
300
  var _a;
274
301
  const { markdown, className, style } = props, reactMarkdownProps = __rest(props, ["markdown", "className", "style"]);
275
- return (_jsx(CustomMarkdownWrapper, { className: className, style: style, children: _jsx(ReactMarkdown, Object.assign({}, reactMarkdownProps, { remarkPlugins: (_a = reactMarkdownProps.remarkPlugins) !== null && _a !== void 0 ? _a : [remarkGfm], children: markdown })) }));
302
+ return (_jsx(CustomMarkdownWrapper, { className: className, style: style, children: _jsx(ReactMarkdown, Object.assign({}, reactMarkdownProps, { components: Object.assign({ code: CodeDisplay }, reactMarkdownProps.components), remarkPlugins: (_a = reactMarkdownProps.remarkPlugins) !== null && _a !== void 0 ? _a : [remarkGfm], children: markdown })) }));
276
303
  }
277
304
  export default Markdown;
278
305
  //# sourceMappingURL=markdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/markdown/markdown.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,aAA0B,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAa/C,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;gCAgBR,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;gCACnC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;iBAoBlD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;;;;;;;;;;;;;;iBAcrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;;qCAEf,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkE5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;4BACnC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;;;;gCAI/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;;;oCAG/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;oCA0BnC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;oCACnC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGtE,CAAC;AAEF;;GAEG;AACH,SAAS,QAAQ,CAAC,KAAoB;;IAClC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,KAA4B,KAAK,EAA5B,kBAAkB,UAAK,KAAK,EAA7D,kCAAqD,CAAQ,CAAC;IAEpE,OAAO,CACH,KAAC,qBAAqB,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,YACrD,KAAC,aAAa,oBAAK,kBAAkB,IAAE,aAAa,EAAE,MAAA,kBAAkB,CAAC,aAAa,mCAAI,CAAC,SAAS,CAAC,YAChG,QAAQ,IACG,GACI,CAC3B,CAAC;AACN,CAAC;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/markdown/markdown.tsx"],"names":[],"mappings":"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"}
@@ -34,12 +34,14 @@ export interface TextAreaProps extends InteractiveComponentProps<string> {
34
34
  placeholder?: string;
35
35
  /** An optional property which sets whether the textarea is resizable, and if so, in which directions */
36
36
  resize?: 'none' | 'both' | 'horizontal' | 'vertical' | 'block' | 'inline';
37
+ /** The maximum height the textarea will grow to, if not set it will not grow as more text is entered */
38
+ maxHeight?: number;
37
39
  }
38
40
  /**
39
41
  * A simple text area component, accepts an onChange handler to listen for changes.
40
42
  *
41
43
  * @param props - the component props
42
44
  */
43
- declare function TextArea({ autoFocus, className, disabled, errorMsg, initialValue, keydownFilter, onBlur, onChange, onClick, onComplete, placeholder, style, value, resize, }: TextAreaProps): JSX.Element;
45
+ declare function TextArea({ autoFocus, className, disabled, errorMsg, initialValue, keydownFilter, maxHeight, onBlur, onChange, onClick, onComplete, placeholder, style, value, resize, }: TextAreaProps): JSX.Element;
44
46
  export default TextArea;
45
47
  //# sourceMappingURL=textarea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../src/textarea/textarea.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAuDrD,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,MAAM,CAAC;IACpE,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;0BACsB;IACtB,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC;IACzE,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC7E;AAED;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,MAAM,EACN,QAAQ,EACR,OAAO,EACP,UAAU,EACV,WAAW,EACX,KAAK,EACL,KAAK,EACL,MAAM,GACT,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAsC7B;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../src/textarea/textarea.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAuDrD,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,MAAM,CAAC;IACpE,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;0BACsB;IACtB,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC;IACzE,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC1E,wGAAwG;IACxG,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,EACd,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,SAAS,EACT,MAAM,EACN,QAAQ,EACR,OAAO,EACP,UAAU,EACV,WAAW,EACX,KAAK,EACL,KAAK,EACL,MAAM,GACT,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAyD7B;AAED,eAAe,QAAQ,CAAC"}
@@ -1,4 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * Copyright 2023 Impulse Innovations Limited
4
+ *
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+ import * as React from 'react';
2
19
  import styled from '@darajs/styled-components';
3
20
  import { Key } from '../constants';
4
21
  const ErrorMessage = styled.span `
@@ -53,7 +70,21 @@ const PrimaryTextArea = styled.textarea `
53
70
  *
54
71
  * @param props - the component props
55
72
  */
56
- function TextArea({ autoFocus, className, disabled, errorMsg, initialValue, keydownFilter, onBlur, onChange, onClick, onComplete, placeholder, style, value, resize, }) {
73
+ function TextArea({ autoFocus, className, disabled, errorMsg, initialValue, keydownFilter, maxHeight, onBlur, onChange, onClick, onComplete, placeholder, style, value, resize, }) {
74
+ const textareaRef = React.useRef(null);
75
+ React.useEffect(() => {
76
+ // This effect is used to resize the textarea based on the content
77
+ if (maxHeight && textareaRef.current) {
78
+ const minHeight = 3.7;
79
+ // Reset the height to the initial minimum height
80
+ textareaRef.current.style.height = '3.7rem';
81
+ // Calculate the height based on the scrollHeight
82
+ const newHeight = textareaRef.current.scrollHeight / parseFloat(getComputedStyle(document.documentElement).fontSize);
83
+ if (minHeight < newHeight) {
84
+ textareaRef.current.style.height = `${Math.min(newHeight, maxHeight)}rem`;
85
+ }
86
+ }
87
+ }, [maxHeight, value]);
57
88
  const onChangeText = (e) => {
58
89
  const target = e.target;
59
90
  if (onChange) {
@@ -71,7 +102,7 @@ function TextArea({ autoFocus, className, disabled, errorMsg, initialValue, keyd
71
102
  onComplete();
72
103
  }
73
104
  };
74
- return (_jsxs("div", { className: className, style: style, children: [_jsx(PrimaryTextArea, { autoFocus: autoFocus, defaultValue: initialValue, disabled: disabled, isErrored: !!errorMsg, onBlur: onBlur, onChange: onChangeText, onClick: onClick, onKeyDown: onKeyDown, placeholder: placeholder, style: { resize }, value: value }), errorMsg && _jsx(ErrorMessage, { children: errorMsg })] }));
105
+ return (_jsxs("div", { className: className, style: style, children: [_jsx(PrimaryTextArea, { ref: textareaRef, autoFocus: autoFocus, defaultValue: initialValue, disabled: disabled, isErrored: !!errorMsg, onBlur: onBlur, onChange: onChangeText, onClick: onClick, onKeyDown: onKeyDown, placeholder: placeholder, style: { resize, maxHeight: maxHeight ? `${maxHeight}rem` : 'none' }, value: value }), errorMsg && _jsx(ErrorMessage, { children: errorMsg })] }));
75
106
  }
76
107
  export default TextArea;
77
108
  //# sourceMappingURL=textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../src/textarea/textarea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../src/textarea/textarea.tsx"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  /**
2
3
  * Copyright 2023 Impulse Innovations Limited
3
4
  *
@@ -74,10 +75,19 @@ export interface Message {
74
75
  updated_at: string;
75
76
  /** User data of the person who wrote the message */
76
77
  user: UserData;
78
+ /** Optional actions to be displayed with the message */
79
+ actions?: React.ReactNode[];
77
80
  }
78
81
  export interface UserData {
82
+ /** user unique identifier */
79
83
  id?: string;
84
+ /** user name */
80
85
  name: string;
86
+ /** user email */
81
87
  email?: string;
88
+ /** Optional content of the user bubble to be shown */
89
+ bubbleContent?: React.ReactNode;
90
+ /** Optional color the user bubble should take */
91
+ color?: string;
82
92
  }
83
93
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC;AAE/F,MAAM,WAAW,SAAS;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,4CAA4C;AAC5C,MAAM,WAAW,IAAI;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IACxC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,mFAAmF;IACnF,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,wEAAwE;IACxE,KAAK,CAAC,EAAE,CAAC,CAAC;CACb;AAED,8BAA8B;AAC9B,MAAM,WAAW,OAAO;IACpB,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,IAAI,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,QAAQ,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC;AAE/F,MAAM,WAAW,SAAS;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,4CAA4C;AAC5C,MAAM,WAAW,IAAI;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,KAAK,EAAE,GAAG,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAChC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IACxC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,mFAAmF;IACnF,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,wEAAwE;IACxE,KAAK,CAAC,EAAE,CAAC,CAAC;CACb;AAED,8BAA8B;AAC9B,MAAM,WAAW,OAAO;IACpB,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,IAAI,EAAE,QAAQ,CAAC;IACf,wDAAwD;IACxD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,QAAQ;IACrB,6BAA6B;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darajs/ui-components",
3
- "version": "1.11.2",
3
+ "version": "1.11.4",
4
4
  "description": "The core React UI kit for Dara",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -23,9 +23,9 @@
23
23
  "@babel/preset-env": "^7.15.6",
24
24
  "@babel/preset-react": "^7.14.5",
25
25
  "@babel/preset-typescript": "^7.15.0",
26
- "@darajs/eslint-config": "1.11.2",
27
- "@darajs/prettier-config": "1.11.2",
28
- "@darajs/stylelint-config": "1.11.2",
26
+ "@darajs/eslint-config": "1.11.4",
27
+ "@darajs/prettier-config": "1.11.4",
28
+ "@darajs/stylelint-config": "1.11.4",
29
29
  "@storybook/addon-a11y": "^6.5.16",
30
30
  "@storybook/addon-actions": "^6.5.16",
31
31
  "@storybook/addon-essentials": "^6.5.16",
@@ -67,9 +67,9 @@
67
67
  "typescript": "^5.0.4"
68
68
  },
69
69
  "dependencies": {
70
- "@darajs/styled-components": "1.11.2",
71
- "@darajs/ui-icons": "1.11.2",
72
- "@darajs/ui-utils": "1.11.2",
70
+ "@darajs/styled-components": "1.11.4",
71
+ "@darajs/ui-icons": "1.11.4",
72
+ "@darajs/ui-utils": "1.11.4",
73
73
  "@floating-ui/react": "^0.26.12",
74
74
  "@fortawesome/free-regular-svg-icons": "~6.4.0",
75
75
  "@fortawesome/free-solid-svg-icons": "~6.4.0",
@@ -81,6 +81,7 @@
81
81
  "memoize-one": "^6.0.0",
82
82
  "nanoid": "^3.3.0",
83
83
  "polished": "3.6.4",
84
+ "prism-react-renderer": "^1.2.0",
84
85
  "react": "^18.0",
85
86
  "react-collapse": "^5.1.1",
86
87
  "react-compound-slider": "3.3.0",
@@ -102,5 +103,5 @@
102
103
  "publishConfig": {
103
104
  "access": "public"
104
105
  },
105
- "gitHead": "859cfcf281a0635e05f7e633857346e9ec4fc116"
106
+ "gitHead": "a9a34682a5d5b752a9b44170deae45718aa7f067"
106
107
  }