@pingux/astro 2.104.0-alpha.1 → 2.104.0-alpha.3

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.
Files changed (55) hide show
  1. package/lib/cjs/components/AIComponents/Response/Response.d.ts +4 -0
  2. package/lib/cjs/components/AIComponents/Response/Response.js +52 -0
  3. package/lib/cjs/components/AIComponents/Response/Response.stories.d.ts +7 -0
  4. package/lib/cjs/components/AIComponents/Response/Response.stories.js +82 -0
  5. package/lib/cjs/components/AIComponents/Response/Response.test.jsx +215 -0
  6. package/lib/cjs/components/AIComponents/Response/ResponseAttachment.d.ts +4 -0
  7. package/lib/cjs/components/AIComponents/Response/ResponseAttachment.js +54 -0
  8. package/lib/cjs/components/AIComponents/Response/ResponseList.d.ts +4 -0
  9. package/lib/cjs/components/AIComponents/Response/ResponseList.js +66 -0
  10. package/lib/cjs/components/AIComponents/Response/ResponseText.d.ts +4 -0
  11. package/lib/cjs/components/AIComponents/Response/ResponseText.js +46 -0
  12. package/lib/cjs/components/AIComponents/Response/ResponseToolbar.d.ts +4 -0
  13. package/lib/cjs/components/AIComponents/Response/ResponseToolbar.js +79 -0
  14. package/lib/cjs/components/AIComponents/Response/index.d.ts +5 -0
  15. package/lib/cjs/components/AIComponents/Response/index.js +42 -0
  16. package/lib/cjs/components/OverlayPanel/OverlayPanel.js +0 -1
  17. package/lib/cjs/hooks/useTypeAnimation/index.d.ts +1 -0
  18. package/lib/cjs/hooks/useTypeAnimation/index.js +14 -0
  19. package/lib/cjs/hooks/useTypeAnimation/useTypeAnimation.d.ts +8 -0
  20. package/lib/cjs/hooks/useTypeAnimation/useTypeAnimation.js +50 -0
  21. package/lib/cjs/hooks/useTypeAnimation/useTypeAnimation.test.d.ts +1 -0
  22. package/lib/cjs/hooks/useTypeAnimation/useTypeAnimation.test.js +66 -0
  23. package/lib/cjs/index.d.ts +5 -0
  24. package/lib/cjs/index.js +40 -0
  25. package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
  26. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +42 -0
  27. package/lib/cjs/styles/themes/next-gen/variants/response.d.ts +33 -0
  28. package/lib/cjs/styles/themes/next-gen/variants/response.js +43 -0
  29. package/lib/cjs/styles/themes/next-gen/variants/text.d.ts +10 -0
  30. package/lib/cjs/styles/themes/next-gen/variants/text.js +10 -0
  31. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +32 -0
  32. package/lib/cjs/styles/themes/next-gen/variants/variants.js +3 -1
  33. package/lib/cjs/types/response.d.ts +48 -0
  34. package/lib/cjs/types/response.js +6 -0
  35. package/lib/cjs/utils/devUtils/shouldReturnComingSoon.js +1 -1
  36. package/lib/components/AIComponents/Response/Response.js +38 -0
  37. package/lib/components/AIComponents/Response/Response.stories.js +72 -0
  38. package/lib/components/AIComponents/Response/Response.test.jsx +215 -0
  39. package/lib/components/AIComponents/Response/ResponseAttachment.js +40 -0
  40. package/lib/components/AIComponents/Response/ResponseList.js +52 -0
  41. package/lib/components/AIComponents/Response/ResponseText.js +37 -0
  42. package/lib/components/AIComponents/Response/ResponseToolbar.js +65 -0
  43. package/lib/components/AIComponents/Response/index.js +5 -0
  44. package/lib/components/OverlayPanel/OverlayPanel.js +0 -1
  45. package/lib/hooks/useTypeAnimation/index.js +1 -0
  46. package/lib/hooks/useTypeAnimation/useTypeAnimation.js +41 -0
  47. package/lib/hooks/useTypeAnimation/useTypeAnimation.test.js +63 -0
  48. package/lib/index.js +5 -0
  49. package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
  50. package/lib/styles/themes/next-gen/variants/response.js +35 -0
  51. package/lib/styles/themes/next-gen/variants/text.js +10 -0
  52. package/lib/styles/themes/next-gen/variants/variants.js +3 -1
  53. package/lib/types/response.js +1 -0
  54. package/lib/utils/devUtils/shouldReturnComingSoon.js +1 -1
  55. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ResponseProps } from '../../../types/response';
3
+ declare const Response: (props: ResponseProps) => React.JSX.Element;
4
+ export default Response;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
13
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _AutoAwesomeOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/AutoAwesomeOutlineIcon"));
17
+ var _index = require("../../../index");
18
+ var _react2 = require("@emotion/react");
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ var Response = function Response(props) {
22
+ var children = props.children,
23
+ containerProps = props.containerProps,
24
+ iconProps = props.iconProps,
25
+ iconWrapperProps = props.iconWrapperProps,
26
+ _props$delay = props.delay,
27
+ delay = _props$delay === void 0 ? 10 : _props$delay;
28
+ var _useState = (0, _react.useState)(0),
29
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
30
+ index = _useState2[0],
31
+ setIndex = _useState2[1];
32
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
33
+ isRow: true,
34
+ gap: "md"
35
+ }, containerProps), (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, iconWrapperProps, {
36
+ variant: "response.iconWrapper"
37
+ }), (0, _react2.jsx)(_index.Icon, (0, _extends2["default"])({
38
+ icon: _AutoAwesomeOutlineIcon["default"]
39
+ }, iconProps))), (0, _react2.jsx)(_index.Box, {
40
+ gap: "md"
41
+ }, (0, _map["default"])(_react.Children).call(_react.Children, children, function (child, i) {
42
+ return (0, _react2.jsx)(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].cloneElement(child, {
43
+ shouldStartAnimation: index === i,
44
+ setAnimationIndex: setIndex,
45
+ animationIndex: i,
46
+ parentIndex: index,
47
+ delay: delay
48
+ }));
49
+ })));
50
+ };
51
+ var _default = Response;
52
+ exports["default"] = _default;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ component: (props: import("../../../types/response").ResponseProps) => React.JSX.Element;
5
+ };
6
+ export default _default;
7
+ export declare const Default: (args: any) => React.JSX.Element;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.Default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _ContentCopyIcon = _interopRequireDefault(require("@pingux/mdi-react/ContentCopyIcon"));
12
+ var _TextIcon = _interopRequireDefault(require("@pingux/mdi-react/TextIcon"));
13
+ var _ThumbDownOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/ThumbDownOutlineIcon"));
14
+ var _ThumbUpOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/ThumbUpOutlineIcon"));
15
+ var _VolumeHighIcon = _interopRequireDefault(require("@pingux/mdi-react/VolumeHighIcon"));
16
+ var _ = require("../../..");
17
+ var _Response = _interopRequireDefault(require("./Response"));
18
+ var _ResponseAttachment = _interopRequireDefault(require("./ResponseAttachment"));
19
+ var _ResponseList = _interopRequireDefault(require("./ResponseList"));
20
+ var _ResponseText = _interopRequireDefault(require("./ResponseText"));
21
+ var _ResponseToolbar = _interopRequireDefault(require("./ResponseToolbar"));
22
+ var _react2 = require("@emotion/react");
23
+ var _default = {
24
+ title: 'Ai Components/Response',
25
+ component: _Response["default"]
26
+ };
27
+ exports["default"] = _default;
28
+ var testText = 'Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet';
29
+ var Default = function Default(args) {
30
+ var toolBarProps = {
31
+ readButtonProps: {
32
+ title: 'Read aloud',
33
+ icon: _VolumeHighIcon["default"]
34
+ },
35
+ copyButtonProps: {
36
+ title: 'Copy',
37
+ icon: _ContentCopyIcon["default"]
38
+ },
39
+ goodButtonProps: {
40
+ title: 'Good Response',
41
+ icon: _ThumbUpOutlineIcon["default"]
42
+ },
43
+ badButtonProps: {
44
+ title: 'Bad Response',
45
+ icon: _ThumbDownOutlineIcon["default"]
46
+ },
47
+ rephraseButtonProps: {
48
+ title: 'Rephrase Answer',
49
+ icon: _TextIcon["default"]
50
+ }
51
+ };
52
+ var delay = 20;
53
+ return (0, _react2.jsx)(_.AstroWrapper, (0, _extends2["default"])({}, args, {
54
+ themeOverrides: [_.NextGenTheme]
55
+ }), (0, _react2.jsx)(_Response["default"], {
56
+ delay: delay
57
+ }, (0, _react2.jsx)(_ResponseText["default"], {
58
+ text: testText
59
+ }), (0, _react2.jsx)(_ResponseAttachment["default"], null), (0, _react2.jsx)(_ResponseText["default"], {
60
+ text: testText
61
+ }), (0, _react2.jsx)(_ResponseText["default"], {
62
+ text: testText
63
+ }), (0, _react2.jsx)(_ResponseList["default"], null, (0, _react2.jsx)(_ResponseText["default"], {
64
+ as: "h5",
65
+ sx: {
66
+ fontWeight: 2
67
+ },
68
+ text: "heading"
69
+ }), (0, _react2.jsx)(_ResponseText["default"], {
70
+ as: "li",
71
+ text: "list item 1"
72
+ }), (0, _react2.jsx)(_ResponseText["default"], {
73
+ as: "li",
74
+ text: "list item 2"
75
+ }), (0, _react2.jsx)(_ResponseText["default"], {
76
+ as: "li",
77
+ text: "list item 3"
78
+ })), (0, _react2.jsx)(_ResponseText["default"], {
79
+ text: "follow up text"
80
+ }), (0, _react2.jsx)(_ResponseToolbar["default"], toolBarProps)));
81
+ };
82
+ exports.Default = Default;
@@ -0,0 +1,215 @@
1
+ import React from 'react';
2
+ import AccountGroupIcon from '@pingux/mdi-react/AccountGroupIcon';
3
+ import AccountIcon from '@pingux/mdi-react/AccountIcon';
4
+ import LockIcon from '@pingux/mdi-react/LockIcon';
5
+ import SearchIcon from '@pingux/mdi-react/SearchIcon';
6
+ import TagIcon from '@pingux/mdi-react/TagIcon';
7
+
8
+ import { act, render, screen } from '../../../utils/testUtils/testWrapper';
9
+
10
+ import Response from './Response';
11
+ import ResponseAttachment from './ResponseAttachment';
12
+ import ResponseList from './ResponseList';
13
+ import ResponseText from './ResponseText';
14
+ import ResponseToolbar from './ResponseToolbar';
15
+
16
+ const delay = 100;
17
+
18
+ const headingText = 'heading';
19
+
20
+ const listItem1 = 'list item 1';
21
+ const listItem2 = 'list item 2';
22
+ const listItem3 = 'list item 3';
23
+ const nextText = 'nextText';
24
+ const attachmentWrapperId = 'wrapper-id';
25
+ const toolbarId = 'id';
26
+
27
+ const customProps = {
28
+ readButtonProps: {
29
+ title: 'Read aloud test',
30
+ icon: AccountGroupIcon,
31
+ },
32
+ copyButtonProps: {
33
+ title: 'Copy test',
34
+ icon: AccountIcon,
35
+ },
36
+ goodButtonProps: {
37
+ title: 'Good Response test',
38
+ icon: LockIcon,
39
+ },
40
+ badButtonProps: {
41
+ title: 'Bad Response test',
42
+ icon: SearchIcon,
43
+ },
44
+ rephraseButtonProps: {
45
+ title: 'Rephrase Answer test',
46
+ icon: TagIcon,
47
+ },
48
+ };
49
+
50
+ const defaultProps = {
51
+ containerProps: {
52
+ 'data-testid': 'container',
53
+ },
54
+ text: 'Hello',
55
+ delay,
56
+ };
57
+
58
+ beforeEach(() => {
59
+ jest.useFakeTimers();
60
+ });
61
+
62
+ const getComponent = props => render(
63
+ <Response {...defaultProps} {...props}>
64
+ <ResponseText text={defaultProps.text} />
65
+ </Response>,
66
+ );
67
+
68
+ const getComponentWithList = props => render(
69
+ <Response {...defaultProps} {...props}>
70
+ <ResponseText text={headingText} delay={delay} />
71
+ <ResponseList as="ul">
72
+ <ResponseText as="li" text={listItem1} />
73
+ <ResponseText as="li" text={listItem2} />
74
+ <ResponseText as="li" text={listItem3} />
75
+ </ResponseList>
76
+ <ResponseText text={nextText} />
77
+ </Response>,
78
+ );
79
+
80
+ const getComponentWithToolbar = props => render(
81
+ <Response {...defaultProps} {...props}>
82
+ <ResponseText text={defaultProps.text} />
83
+ <ResponseToolbar data-testid={toolbarId} />
84
+ </Response>,
85
+ );
86
+
87
+ const getComponentWithAttachment = props => render(
88
+ <Response {...defaultProps} {...props}>
89
+ <ResponseText text={defaultProps.text} />
90
+ <ResponseAttachment wrapperProps={{ 'data-testid': attachmentWrapperId }} />
91
+ <ResponseText text={defaultProps.text} />
92
+ </Response>,
93
+ );
94
+
95
+ const getComponentWithToolbarCustomProps = props => render(
96
+ <Response {...defaultProps} {...props}>
97
+ <ResponseText text={defaultProps.text} />
98
+ <ResponseToolbar data-testid={toolbarId} {...customProps} />
99
+ </Response>,
100
+ );
101
+
102
+ test('component renders', () => {
103
+ getComponent();
104
+ const container = screen.getByTestId('container');
105
+
106
+ expect(container).toBeInTheDocument();
107
+ });
108
+
109
+ test('delay prop works correctly', async () => {
110
+ getComponent();
111
+
112
+ expect(screen.queryByText(defaultProps.text)).not.toBeInTheDocument();
113
+ for (let i = 1; i < defaultProps.text.length + 1; i += 1) {
114
+ act(() => { jest.advanceTimersByTime(100); });
115
+ expect(screen.queryByText(defaultProps.text.slice(0, i))).toBeInTheDocument();
116
+ }
117
+ expect(screen.queryByText(defaultProps.text)).toBeInTheDocument();
118
+ });
119
+
120
+ test('delay prop works correctly, with list', async () => {
121
+ getComponentWithList();
122
+
123
+ expect(screen.queryByText(headingText)).not.toBeInTheDocument();
124
+ for (let i = 1; i < headingText.length + 1; i += 1) {
125
+ act(() => { jest.advanceTimersByTime(100); });
126
+ expect(screen.queryByText(headingText.slice(0, i))).toBeInTheDocument();
127
+ }
128
+ expect(screen.queryByText(headingText)).toBeInTheDocument();
129
+
130
+ // advance through the listItems
131
+ for (let i = 1; i < (listItem1.length * 3) + 1; i += 1) {
132
+ act(() => { jest.advanceTimersByTime(100); });
133
+ }
134
+ expect(screen.queryByText(nextText)).not.toBeInTheDocument();
135
+
136
+ // ensure that the subsequent text renders correctly
137
+ for (let i = 1; i < nextText.length + 1; i += 1) {
138
+ act(() => { jest.advanceTimersByTime(100); });
139
+ expect(screen.queryByText(nextText.slice(0, i))).toBeInTheDocument();
140
+ }
141
+ expect(screen.queryByText(nextText)).toBeInTheDocument();
142
+ });
143
+
144
+ test('default delay prop works correctly', async () => {
145
+ render(
146
+ <Response {...defaultProps} delay={undefined}>
147
+ <ResponseText text={defaultProps.text} />
148
+ </Response>,
149
+ );
150
+
151
+ expect(screen.queryByText(defaultProps.text)).not.toBeInTheDocument();
152
+ for (let i = 1; i < defaultProps.text.length + 1; i += 1) {
153
+ act(() => { jest.advanceTimersByTime(10); });
154
+ expect(screen.queryByText(defaultProps.text.slice(0, i))).toBeInTheDocument();
155
+ }
156
+ expect(screen.queryByText(defaultProps.text)).toBeInTheDocument();
157
+ });
158
+
159
+ test('ResponseToolbar renders correctly', async () => {
160
+ getComponentWithToolbar();
161
+
162
+ const toolbar = screen.getByTestId(toolbarId);
163
+ expect(toolbar).toHaveClass('is-not-loaded');
164
+
165
+ for (let i = 1; i < defaultProps.text.length + 1; i += 1) {
166
+ act(() => { jest.advanceTimersByTime(100); });
167
+ }
168
+ expect(toolbar).not.toHaveClass('is-not-loaded');
169
+ });
170
+
171
+ test('ResponseAttachment renders correctly', async () => {
172
+ getComponentWithAttachment();
173
+ act(() => { jest.advanceTimersByTime(10); });
174
+
175
+ expect(screen.getByText('Attachment text')).toBeInTheDocument();
176
+ const wrapper = screen.getByTestId(attachmentWrapperId);
177
+ expect(wrapper).toHaveClass('is-not-loaded');
178
+ for (let i = 1; i < defaultProps.text.length + 1; i += 1) {
179
+ act(() => { jest.advanceTimersByTime(100); });
180
+ }
181
+ expect(wrapper).not.toHaveClass('is-not-loaded');
182
+ });
183
+
184
+ test('ResponseAttachment renders correctly, with custom props', async () => {
185
+ getComponentWithToolbarCustomProps();
186
+ act(() => { jest.advanceTimersByTime(10); });
187
+
188
+ expect(screen.getByTitle('Read aloud test')).toBeInTheDocument();
189
+ expect(screen.getByTitle('Copy test')).toBeInTheDocument();
190
+ expect(screen.getByTitle('Good Response test')).toBeInTheDocument();
191
+ expect(screen.getByTitle('Bad Response test')).toBeInTheDocument();
192
+ expect(screen.getByTitle('Rephrase Answer test')).toBeInTheDocument();
193
+ });
194
+
195
+ test('ResponseToolbar conditional rendering of IconButton based on title prop', async () => {
196
+ render(
197
+ <Response {...defaultProps}>
198
+ <ResponseText text={defaultProps.text} />
199
+ <ResponseToolbar
200
+ data-testid={toolbarId}
201
+ readButtonProps={{ title: 'Read aloud' }}
202
+ copyButtonProps={{ title: '' }}
203
+ goodButtonProps={{ title: 'Good Response' }}
204
+ badButtonProps={{ title: '' }}
205
+ rephraseButtonProps={{ title: 'Rephrase Answer' }}
206
+ />
207
+ </Response>,
208
+ );
209
+
210
+ expect(screen.getByTitle('Read aloud')).toBeInTheDocument();
211
+ expect(screen.queryByTitle('Copy')).not.toBeInTheDocument();
212
+ expect(screen.getByTitle('Good Response')).toBeInTheDocument();
213
+ expect(screen.queryByTitle('Bad Response')).not.toBeInTheDocument();
214
+ expect(screen.getByTitle('Rephrase Answer')).toBeInTheDocument();
215
+ });
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ResponseAttachmentProps } from '../../../types/response';
3
+ declare const ResponseAttachment: (props: ResponseAttachmentProps) => React.JSX.Element;
4
+ export default ResponseAttachment;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _FileTableOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/FileTableOutlineIcon"));
15
+ var _hooks = require("../../../hooks");
16
+ var _index = require("../../../index");
17
+ var _react2 = require("@emotion/react");
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ var ResponseAttachment = function ResponseAttachment(props) {
21
+ var setAnimationIndex = props.setAnimationIndex,
22
+ parentIndex = props.parentIndex,
23
+ wrapperProps = props.wrapperProps,
24
+ textProps = props.textProps,
25
+ iconProps = props.iconProps,
26
+ className = props.className,
27
+ animationIndex = props.animationIndex,
28
+ shouldStartAnimation = props.shouldStartAnimation;
29
+ var isLoaded = (0, _react.useRef)(false);
30
+ (0, _react.useEffect)(function () {
31
+ if (shouldStartAnimation && setAnimationIndex && animationIndex !== undefined && isLoaded.current === false) {
32
+ isLoaded.current = true;
33
+ setAnimationIndex(animationIndex + 1);
34
+ }
35
+ }, [setAnimationIndex, parentIndex, animationIndex, shouldStartAnimation]);
36
+ var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
37
+ isNotLoaded: !isLoaded.current
38
+ }),
39
+ classNames = _useStatusClasses.classNames;
40
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
41
+ isRow: true
42
+ }, wrapperProps, {
43
+ className: classNames,
44
+ variant: "response.attachmentWrapper"
45
+ }), (0, _react2.jsx)(_index.Icon, (0, _extends2["default"])({
46
+ color: "green",
47
+ icon: _FileTableOutlineIcon["default"],
48
+ title: {
49
+ name: 'attachment icon'
50
+ }
51
+ }, iconProps)), (0, _react2.jsx)(_index.Text, textProps, "Attachment text"));
52
+ };
53
+ var _default = ResponseAttachment;
54
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ResponseListProps } from '../../../types/response';
3
+ declare const ResponseList: (props: ResponseListProps) => React.JSX.Element;
4
+ export default ResponseList;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
13
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
15
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _index = require("../../../index");
18
+ var _react2 = require("@emotion/react");
19
+ var _excluded = ["children", "parentIndex", "setAnimationIndex", "shouldStartAnimation", "delay"];
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ var ResponseList = function ResponseList(props) {
23
+ var _useState = (0, _react.useState)(-1),
24
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
25
+ index = _useState2[0],
26
+ setIndex = _useState2[1];
27
+ var children = props.children,
28
+ parentIndex = props.parentIndex,
29
+ setAnimationIndex = props.setAnimationIndex,
30
+ shouldStartAnimation = props.shouldStartAnimation,
31
+ delay = props.delay,
32
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
33
+ (0, _react.useEffect)(function () {
34
+ if (children && setAnimationIndex && index === children.length && parentIndex) {
35
+ setAnimationIndex(parentIndex + 1);
36
+ }
37
+ }, [index]);
38
+ (0, _react.useEffect)(function () {
39
+ if (shouldStartAnimation) {
40
+ setIndex(0);
41
+ }
42
+ }, [shouldStartAnimation]);
43
+ return (0, _react2.jsx)(_index.Box, others, (0, _react2.jsx)(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].cloneElement(children[0], {
44
+ shouldStartAnimation: index === 0,
45
+ setAnimationIndex: setIndex,
46
+ animationIndex: 0,
47
+ delay: delay
48
+ })), (0, _react2.jsx)(_index.Box, {
49
+ as: "ul",
50
+ sx: {
51
+ pl: 'md',
52
+ listStyleType: 'disc',
53
+ listStylePosition: 'inside'
54
+ }
55
+ }, (0, _map["default"])(_react.Children).call(_react.Children, (0, _slice["default"])(children).call(children, 1, children.length), function (child, i) {
56
+ return /*#__PURE__*/_react["default"].cloneElement(child, {
57
+ shouldStartAnimation: index === i + 1,
58
+ setAnimationIndex: setIndex,
59
+ animationIndex: i + 1,
60
+ delay: delay,
61
+ isListItem: true
62
+ });
63
+ })));
64
+ };
65
+ var _default = ResponseList;
66
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ResponseTextProps } from '../../../types/response';
3
+ declare const ResponseText: (props: ResponseTextProps) => React.JSX.Element;
4
+ export default ResponseText;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _hooks = require("../../../hooks");
13
+ var _useTypeAnimation = _interopRequireDefault(require("../../../hooks/useTypeAnimation/useTypeAnimation"));
14
+ var _index = require("../../../index");
15
+ var _react2 = require("@emotion/react");
16
+ var _excluded = ["delay", "text", "shouldStartAnimation", "setAnimationIndex", "animationIndex", "isListItem", "className"];
17
+ var ResponseText = function ResponseText(props) {
18
+ var delay = props.delay,
19
+ text = props.text,
20
+ shouldStartAnimation = props.shouldStartAnimation,
21
+ setAnimationIndex = props.setAnimationIndex,
22
+ animationIndex = props.animationIndex,
23
+ isListItem = props.isListItem,
24
+ className = props.className,
25
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
26
+ var animationProps = {
27
+ delay: delay,
28
+ text: text,
29
+ setAnimationIndex: setAnimationIndex,
30
+ animationIndex: animationIndex,
31
+ shouldStartAnimation: shouldStartAnimation
32
+ };
33
+ var currentText = (0, _useTypeAnimation["default"])(animationProps);
34
+ var hasBullet = isListItem && currentText.length > 0;
35
+ var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
36
+ hasBullet: hasBullet
37
+ }),
38
+ classNames = _useStatusClasses.classNames;
39
+ return (0, _react2.jsx)(_index.Text, (0, _extends2["default"])({}, others, {
40
+ role: isListItem ? 'listitem' : '',
41
+ variant: "response",
42
+ className: classNames
43
+ }), currentText);
44
+ };
45
+ var _default = ResponseText;
46
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ResponseToolbarProps } from '../../../types/response';
3
+ declare const ResponseToolbar: (props: ResponseToolbarProps) => React.JSX.Element;
4
+ export default ResponseToolbar;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _ContentCopyIcon = _interopRequireDefault(require("@pingux/mdi-react/ContentCopyIcon"));
16
+ var _TextIcon = _interopRequireDefault(require("@pingux/mdi-react/TextIcon"));
17
+ var _ThumbDownOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/ThumbDownOutlineIcon"));
18
+ var _ThumbUpOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/ThumbUpOutlineIcon"));
19
+ var _VolumeHighIcon = _interopRequireDefault(require("@pingux/mdi-react/VolumeHighIcon"));
20
+ var _hooks = require("../../../hooks");
21
+ var _index = require("../../../index");
22
+ var _react2 = require("@emotion/react");
23
+ var _excluded = ["parentIndex", "setAnimationIndex", "readButtonProps", "copyButtonProps", "goodButtonProps", "badButtonProps", "rephraseButtonProps", "className", "shouldStartAnimation", "animationIndex"];
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
+ var ResponseToolbarIcon = function ResponseToolbarIcon(props) {
27
+ var title = props.title,
28
+ icon = props.icon;
29
+ return (0, _react2.jsx)(_index.IconButton, {
30
+ title: title
31
+ }, (0, _react2.jsx)(_index.Icon, {
32
+ icon: icon,
33
+ title: {
34
+ name: title
35
+ }
36
+ }));
37
+ };
38
+ var ResponseToolbar = function ResponseToolbar(props) {
39
+ var parentIndex = props.parentIndex,
40
+ setAnimationIndex = props.setAnimationIndex,
41
+ readButtonProps = props.readButtonProps,
42
+ copyButtonProps = props.copyButtonProps,
43
+ goodButtonProps = props.goodButtonProps,
44
+ badButtonProps = props.badButtonProps,
45
+ rephraseButtonProps = props.rephraseButtonProps,
46
+ className = props.className,
47
+ shouldStartAnimation = props.shouldStartAnimation,
48
+ animationIndex = props.animationIndex,
49
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
50
+ var isLoaded = (0, _react.useRef)(false);
51
+ (0, _react.useEffect)(function () {
52
+ if (shouldStartAnimation && setAnimationIndex && animationIndex !== undefined && isLoaded.current === false) {
53
+ isLoaded.current = true;
54
+ setAnimationIndex(animationIndex + 1);
55
+ }
56
+ }, [setAnimationIndex, parentIndex, shouldStartAnimation, animationIndex]);
57
+ var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
58
+ isNotLoaded: !isLoaded.current
59
+ }),
60
+ classNames = _useStatusClasses.classNames;
61
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
62
+ isRow: true,
63
+ gap: "sm",
64
+ variant: "response.toolbar",
65
+ className: classNames
66
+ }, others), (readButtonProps === null || readButtonProps === void 0 ? void 0 : readButtonProps.title) && (0, _react2.jsx)(ResponseToolbarIcon, (0, _extends2["default"])({
67
+ icon: _VolumeHighIcon["default"]
68
+ }, readButtonProps)), (copyButtonProps === null || copyButtonProps === void 0 ? void 0 : copyButtonProps.title) && (0, _react2.jsx)(ResponseToolbarIcon, (0, _extends2["default"])({
69
+ icon: _ContentCopyIcon["default"]
70
+ }, copyButtonProps)), (goodButtonProps === null || goodButtonProps === void 0 ? void 0 : goodButtonProps.title) && (0, _react2.jsx)(ResponseToolbarIcon, (0, _extends2["default"])({
71
+ icon: _ThumbUpOutlineIcon["default"]
72
+ }, goodButtonProps)), (badButtonProps === null || badButtonProps === void 0 ? void 0 : badButtonProps.title) && (0, _react2.jsx)(ResponseToolbarIcon, (0, _extends2["default"])({
73
+ icon: _ThumbDownOutlineIcon["default"]
74
+ }, badButtonProps)), (rephraseButtonProps === null || rephraseButtonProps === void 0 ? void 0 : rephraseButtonProps.title) && (0, _react2.jsx)(ResponseToolbarIcon, (0, _extends2["default"])({
75
+ icon: _TextIcon["default"]
76
+ }, rephraseButtonProps)));
77
+ };
78
+ var _default = ResponseToolbar;
79
+ exports["default"] = _default;
@@ -0,0 +1,5 @@
1
+ export { default } from './Response';
2
+ export { default as ResponseAttachment } from './ResponseAttachment';
3
+ export { default as ResponseList } from './ResponseList';
4
+ export { default as ResponseText } from './ResponseText';
5
+ export { default as ResponseToolbar } from './ResponseToolbar';