@pingux/astro 2.112.0-alpha.2 → 2.112.0-alpha.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.
Files changed (35) hide show
  1. package/lib/cjs/components/AIComponents/PromptInput/PromptInput.js +56 -14
  2. package/lib/cjs/components/AIComponents/PromptInput/PromptInput.test.js +73 -15
  3. package/lib/cjs/components/AIComponents/PromptInput/PromptUploadButton.js +1 -1
  4. package/lib/cjs/components/AIComponents/PromptInput/PromptUploadButton.test.d.ts +1 -0
  5. package/lib/cjs/components/AIComponents/PromptInput/PromptUploadButton.test.js +68 -0
  6. package/lib/cjs/components/AIComponents/Response/Response.stories.js +24 -24
  7. package/lib/cjs/components/AIComponents/Response/Response.test.jsx +40 -70
  8. package/lib/cjs/components/AIComponents/Response/ResponseAttachment.js +3 -2
  9. package/lib/cjs/components/AIComponents/Response/ResponseToolbar.js +23 -35
  10. package/lib/cjs/components/AIComponents/Response/ResponseToolbarIcon.d.ts +4 -0
  11. package/lib/cjs/components/AIComponents/Response/ResponseToolbarIcon.js +57 -0
  12. package/lib/cjs/components/AIComponents/Response/index.d.ts +1 -0
  13. package/lib/cjs/components/AIComponents/Response/index.js +8 -1
  14. package/lib/cjs/index.d.ts +1 -0
  15. package/lib/cjs/index.js +8 -0
  16. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +33 -0
  17. package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +33 -0
  18. package/lib/cjs/styles/themes/next-gen/variants/button.js +6 -0
  19. package/lib/cjs/styles/themes/next-gen/variants/input.js +25 -3
  20. package/lib/cjs/types/promptInput.d.ts +3 -0
  21. package/lib/cjs/types/response.d.ts +10 -3
  22. package/lib/components/AIComponents/PromptInput/PromptInput.js +57 -15
  23. package/lib/components/AIComponents/PromptInput/PromptInput.test.js +73 -15
  24. package/lib/components/AIComponents/PromptInput/PromptUploadButton.js +1 -1
  25. package/lib/components/AIComponents/PromptInput/PromptUploadButton.test.js +65 -0
  26. package/lib/components/AIComponents/Response/Response.stories.js +24 -24
  27. package/lib/components/AIComponents/Response/Response.test.jsx +40 -70
  28. package/lib/components/AIComponents/Response/ResponseAttachment.js +3 -2
  29. package/lib/components/AIComponents/Response/ResponseToolbar.js +25 -37
  30. package/lib/components/AIComponents/Response/ResponseToolbarIcon.js +43 -0
  31. package/lib/components/AIComponents/Response/index.js +2 -1
  32. package/lib/index.js +1 -0
  33. package/lib/styles/themes/next-gen/variants/button.js +6 -0
  34. package/lib/styles/themes/next-gen/variants/input.js +25 -3
  35. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
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';
2
+ import CopyIcon from '@pingux/mdi-react/ContentCopyIcon';
3
+ import TextIcon from '@pingux/mdi-react/TextIcon';
4
+ import ThumbDownOutlineIcon from '@pingux/mdi-react/ThumbDownOutlineIcon';
5
+ import ThumbUpOutlineIcon from '@pingux/mdi-react/ThumbUpOutlineIcon';
6
+ import VolumeHighIcon from '@pingux/mdi-react/VolumeHighIcon';
7
7
 
8
8
  import { act, render, screen } from '../../../utils/testUtils/testWrapper';
9
9
 
@@ -12,6 +12,7 @@ import ResponseAttachment from './ResponseAttachment';
12
12
  import ResponseList from './ResponseList';
13
13
  import ResponseText from './ResponseText';
14
14
  import ResponseToolbar from './ResponseToolbar';
15
+ import ResponseToolBarIcon from './ResponseToolbarIcon';
15
16
 
16
17
  const delay = 100;
17
18
 
@@ -24,28 +25,24 @@ const nextText = 'nextText';
24
25
  const attachmentWrapperId = 'wrapper-id';
25
26
  const toolbarId = 'id';
26
27
 
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
- };
28
+ const attachmentText = 'Attachment Text';
29
+
30
+ const icons = [{
31
+ title: 'Read aloud test',
32
+ icon: VolumeHighIcon,
33
+ }, {
34
+ title: 'Copy test',
35
+ icon: CopyIcon,
36
+ }, {
37
+ title: 'Good Response test',
38
+ icon: ThumbUpOutlineIcon,
39
+ }, {
40
+ title: 'Bad Response test',
41
+ icon: ThumbDownOutlineIcon,
42
+ }, {
43
+ title: 'Rephrase Answer test',
44
+ icon: TextIcon,
45
+ }];
49
46
 
50
47
  const defaultProps = {
51
48
  containerProps: {
@@ -80,25 +77,25 @@ const getComponentWithList = props => render(
80
77
  const getComponentWithToolbar = props => render(
81
78
  <Response {...defaultProps} {...props}>
82
79
  <ResponseText text={defaultProps.text} />
83
- <ResponseToolbar data-testid={toolbarId} />
80
+ <ResponseToolbar data-testid={toolbarId}>
81
+ {icons.map(icon => {
82
+ return (
83
+ <ResponseToolBarIcon key={icon.title} {...icon} />
84
+ );
85
+ })}
86
+ </ResponseToolbar>
87
+ <ResponseText text={defaultProps.text} />
84
88
  </Response>,
85
89
  );
86
90
 
87
91
  const getComponentWithAttachment = props => render(
88
92
  <Response {...defaultProps} {...props}>
89
93
  <ResponseText text={defaultProps.text} />
90
- <ResponseAttachment wrapperProps={{ 'data-testid': attachmentWrapperId }} />
94
+ <ResponseAttachment text={attachmentText} wrapperProps={{ 'data-testid': attachmentWrapperId }} />
91
95
  <ResponseText text={defaultProps.text} />
92
96
  </Response>,
93
97
  );
94
98
 
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
99
  test('component renders', () => {
103
100
  getComponent();
104
101
  const container = screen.getByTestId('container');
@@ -166,13 +163,19 @@ test('ResponseToolbar renders correctly', async () => {
166
163
  act(() => { jest.advanceTimersByTime(100); });
167
164
  }
168
165
  expect(toolbar).not.toHaveClass('is-not-loaded');
166
+ for (let i = 1; i < icons.length + 1; i += 1) {
167
+ act(() => { jest.advanceTimersByTime(100); });
168
+ expect(screen.getByTitle(icons[i - 1].title)).toBeInTheDocument();
169
+ expect(screen.getByTitle(icons[i - 1].title)).not.toHaveClass('is-not-loaded');
170
+ }
171
+ act(() => { jest.advanceTimersByTime(2000); });
169
172
  });
170
173
 
171
174
  test('ResponseAttachment renders correctly', async () => {
172
175
  getComponentWithAttachment();
173
176
  act(() => { jest.advanceTimersByTime(10); });
174
177
 
175
- expect(screen.getByText('Attachment text')).toBeInTheDocument();
178
+ expect(screen.getByText(attachmentText)).toBeInTheDocument();
176
179
  const wrapper = screen.getByTestId(attachmentWrapperId);
177
180
  expect(wrapper).toHaveClass('is-not-loaded');
178
181
  for (let i = 1; i < defaultProps.text.length + 1; i += 1) {
@@ -180,36 +183,3 @@ test('ResponseAttachment renders correctly', async () => {
180
183
  }
181
184
  expect(wrapper).not.toHaveClass('is-not-loaded');
182
185
  });
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
- });
@@ -25,7 +25,8 @@ var ResponseAttachment = function ResponseAttachment(props) {
25
25
  iconProps = props.iconProps,
26
26
  className = props.className,
27
27
  animationIndex = props.animationIndex,
28
- shouldStartAnimation = props.shouldStartAnimation;
28
+ shouldStartAnimation = props.shouldStartAnimation,
29
+ text = props.text;
29
30
  var isLoaded = (0, _react.useRef)(false);
30
31
  (0, _react.useEffect)(function () {
31
32
  if (shouldStartAnimation && setAnimationIndex && animationIndex !== undefined && isLoaded.current === false) {
@@ -48,7 +49,7 @@ var ResponseAttachment = function ResponseAttachment(props) {
48
49
  title: {
49
50
  name: 'attachment icon'
50
51
  }
51
- }, iconProps)), (0, _react2.jsx)(_index.Text, textProps, "Attachment text"));
52
+ }, iconProps)), (0, _react2.jsx)(_index.Text, textProps, text));
52
53
  };
53
54
  var _default = ResponseAttachment;
54
55
  exports["default"] = _default;
@@ -9,49 +9,40 @@ _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
11
  exports["default"] = void 0;
12
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
12
13
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
13
15
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
14
16
  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
17
  var _hooks = require("../../../hooks");
21
18
  var _index = require("../../../index");
22
19
  var _react2 = require("@emotion/react");
23
- var _excluded = ["parentIndex", "setAnimationIndex", "readButtonProps", "copyButtonProps", "goodButtonProps", "badButtonProps", "rephraseButtonProps", "className", "shouldStartAnimation", "animationIndex"];
20
+ var _excluded = ["parentIndex", "setAnimationIndex", "children", "className", "shouldStartAnimation", "animationIndex", "delay"];
24
21
  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
22
  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
23
  var ResponseToolbar = function ResponseToolbar(props) {
39
24
  var parentIndex = props.parentIndex,
40
25
  setAnimationIndex = props.setAnimationIndex,
41
- readButtonProps = props.readButtonProps,
42
- copyButtonProps = props.copyButtonProps,
43
- goodButtonProps = props.goodButtonProps,
44
- badButtonProps = props.badButtonProps,
45
- rephraseButtonProps = props.rephraseButtonProps,
26
+ children = props.children,
46
27
  className = props.className,
47
28
  shouldStartAnimation = props.shouldStartAnimation,
48
29
  animationIndex = props.animationIndex,
30
+ delay = props.delay,
49
31
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
50
32
  var isLoaded = (0, _react.useRef)(false);
33
+ var _useState = (0, _react.useState)(-1),
34
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
35
+ index = _useState2[0],
36
+ setIndex = _useState2[1];
37
+ (0, _react.useEffect)(function () {
38
+ if (index === (children === null || children === void 0 ? void 0 : children.length) && animationIndex !== undefined && setAnimationIndex) {
39
+ setAnimationIndex(animationIndex + 1);
40
+ }
41
+ }, [setAnimationIndex, index, shouldStartAnimation, animationIndex, children === null || children === void 0 ? void 0 : children.length]);
51
42
  (0, _react.useEffect)(function () {
52
43
  if (shouldStartAnimation && setAnimationIndex && animationIndex !== undefined && isLoaded.current === false) {
53
44
  isLoaded.current = true;
54
- setAnimationIndex(animationIndex + 1);
45
+ setIndex(0);
55
46
  }
56
47
  }, [setAnimationIndex, parentIndex, shouldStartAnimation, animationIndex]);
57
48
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
@@ -63,17 +54,14 @@ var ResponseToolbar = function ResponseToolbar(props) {
63
54
  gap: "sm",
64
55
  variant: "response.toolbar",
65
56
  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)));
57
+ }, others), (0, _map["default"])(_react.Children).call(_react.Children, children, function (child, i) {
58
+ return (0, _react2.jsx)(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].cloneElement(child, {
59
+ setAnimationIndex: setIndex,
60
+ animationIndex: i,
61
+ parentIndex: index,
62
+ delay: delay
63
+ }));
64
+ }));
77
65
  };
78
66
  var _default = ResponseToolbar;
79
67
  exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ResponseToolbarIconProps } from '../../../types/response';
3
+ declare const ResponseToolbarIcon: (props: ResponseToolbarIconProps) => React.JSX.Element;
4
+ export default ResponseToolbarIcon;
@@ -0,0 +1,57 @@
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 _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
13
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _hooks = require("../../../hooks");
17
+ var _index = require("../../../index");
18
+ var _react2 = require("@emotion/react");
19
+ var _excluded = ["title", "icon", "className", "parentIndex", "animationIndex", "setAnimationIndex", "delay", "iconProps"];
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 ResponseToolbarIcon = function ResponseToolbarIcon(props) {
23
+ var title = props.title,
24
+ icon = props.icon,
25
+ className = props.className,
26
+ parentIndex = props.parentIndex,
27
+ animationIndex = props.animationIndex,
28
+ setAnimationIndex = props.setAnimationIndex,
29
+ delay = props.delay,
30
+ iconProps = props.iconProps,
31
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
32
+ var isLoaded = (0, _react.useRef)(false);
33
+ (0, _react.useEffect)(function () {
34
+ if (parentIndex === animationIndex && setAnimationIndex && parentIndex !== undefined) {
35
+ (0, _setTimeout2["default"])(function () {
36
+ isLoaded.current = true;
37
+ setAnimationIndex(parentIndex + 1);
38
+ }, delay);
39
+ }
40
+ }, [parentIndex, animationIndex, setAnimationIndex, delay]);
41
+ var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
42
+ isNotLoaded: !isLoaded.current
43
+ }),
44
+ classNames = _useStatusClasses.classNames;
45
+ return (0, _react2.jsx)(_index.IconButton, (0, _extends2["default"])({
46
+ title: title,
47
+ className: classNames,
48
+ variant: "responseToolbar"
49
+ }, others), (0, _react2.jsx)(_index.Icon, (0, _extends2["default"])({
50
+ icon: icon,
51
+ title: {
52
+ name: title
53
+ }
54
+ }, iconProps)));
55
+ };
56
+ var _default = ResponseToolbarIcon;
57
+ exports["default"] = _default;
@@ -3,3 +3,4 @@ export { default as ResponseAttachment } from './ResponseAttachment';
3
3
  export { default as ResponseList } from './ResponseList';
4
4
  export { default as ResponseText } from './ResponseText';
5
5
  export { default as ResponseToolbar } from './ResponseToolbar';
6
+ export { default as ResponseToolbarIcon } from './ResponseToolbarIcon';
@@ -29,6 +29,12 @@ _Object$defineProperty(exports, "ResponseToolbar", {
29
29
  return _ResponseToolbar["default"];
30
30
  }
31
31
  });
32
+ _Object$defineProperty(exports, "ResponseToolbarIcon", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _ResponseToolbarIcon["default"];
36
+ }
37
+ });
32
38
  _Object$defineProperty(exports, "default", {
33
39
  enumerable: true,
34
40
  get: function get() {
@@ -39,4 +45,5 @@ var _Response = _interopRequireDefault(require("./Response"));
39
45
  var _ResponseAttachment = _interopRequireDefault(require("./ResponseAttachment"));
40
46
  var _ResponseList = _interopRequireDefault(require("./ResponseList"));
41
47
  var _ResponseText = _interopRequireDefault(require("./ResponseText"));
42
- var _ResponseToolbar = _interopRequireDefault(require("./ResponseToolbar"));
48
+ var _ResponseToolbar = _interopRequireDefault(require("./ResponseToolbar"));
49
+ var _ResponseToolbarIcon = _interopRequireDefault(require("./ResponseToolbarIcon"));
@@ -16,6 +16,7 @@ export { default as ResponseAttachment } from './components/AIComponents/Respons
16
16
  export { default as ResponseList } from './components/AIComponents/Response/ResponseList';
17
17
  export { default as ResponseText } from './components/AIComponents/Response/ResponseText';
18
18
  export { default as ResponseToolbar } from './components/AIComponents/Response/ResponseToolbar';
19
+ export { default as ResponseToolbarIcon } from './components/AIComponents/Response/ResponseToolbarIcon';
19
20
  export { default as Suggestions } from './components/AIComponents/Suggestions';
20
21
  export { default as Suggestion } from './components/AIComponents/Suggestions/Suggestion';
21
22
  export { default as ArrayField } from './components/ArrayField';
package/lib/cjs/index.js CHANGED
@@ -26,6 +26,7 @@ var _exportNames = {
26
26
  ResponseList: true,
27
27
  ResponseText: true,
28
28
  ResponseToolbar: true,
29
+ ResponseToolbarIcon: true,
29
30
  Suggestions: true,
30
31
  Suggestion: true,
31
32
  ArrayField: true,
@@ -798,6 +799,12 @@ _Object$defineProperty(exports, "ResponseToolbar", {
798
799
  return _ResponseToolbar["default"];
799
800
  }
800
801
  });
802
+ _Object$defineProperty(exports, "ResponseToolbarIcon", {
803
+ enumerable: true,
804
+ get: function get() {
805
+ return _ResponseToolbarIcon["default"];
806
+ }
807
+ });
801
808
  _Object$defineProperty(exports, "RockerButton", {
802
809
  enumerable: true,
803
810
  get: function get() {
@@ -1072,6 +1079,7 @@ var _ResponseAttachment = _interopRequireDefault(require("./components/AICompone
1072
1079
  var _ResponseList = _interopRequireDefault(require("./components/AIComponents/Response/ResponseList"));
1073
1080
  var _ResponseText = _interopRequireDefault(require("./components/AIComponents/Response/ResponseText"));
1074
1081
  var _ResponseToolbar = _interopRequireDefault(require("./components/AIComponents/Response/ResponseToolbar"));
1082
+ var _ResponseToolbarIcon = _interopRequireDefault(require("./components/AIComponents/Response/ResponseToolbarIcon"));
1075
1083
  var _Suggestions = _interopRequireDefault(require("./components/AIComponents/Suggestions"));
1076
1084
  var _Suggestion = _interopRequireDefault(require("./components/AIComponents/Suggestions/Suggestion"));
1077
1085
  var _ArrayField = _interopRequireWildcard(require("./components/ArrayField"));
@@ -783,6 +783,39 @@ declare const _default: {
783
783
  transition: string;
784
784
  outline: string;
785
785
  };
786
+ responseToolbar: {
787
+ '&.is-not-loaded': {
788
+ display: string;
789
+ };
790
+ display: string;
791
+ cursor: string;
792
+ transition: string;
793
+ outline: string;
794
+ borderRadius: string;
795
+ border: string;
796
+ borderColor: string;
797
+ path: {
798
+ fill: string;
799
+ };
800
+ '&.is-focused': {
801
+ outline: string;
802
+ outlineColor: string;
803
+ outlineOffset: string;
804
+ };
805
+ '&.is-hovered': {
806
+ backgroundColor: string;
807
+ path: {
808
+ fill: string;
809
+ };
810
+ };
811
+ '&.is-pressed': {
812
+ backgroundColor: string;
813
+ borderColor: string;
814
+ path: {
815
+ fill: string;
816
+ };
817
+ };
818
+ };
786
819
  modalCloseButton: {
787
820
  position: string;
788
821
  top: number;
@@ -550,6 +550,39 @@ declare const buttons: {
550
550
  transition: string;
551
551
  outline: string;
552
552
  };
553
+ responseToolbar: {
554
+ '&.is-not-loaded': {
555
+ display: string;
556
+ };
557
+ display: string;
558
+ cursor: string;
559
+ transition: string;
560
+ outline: string;
561
+ borderRadius: string;
562
+ border: string;
563
+ borderColor: string;
564
+ path: {
565
+ fill: string;
566
+ };
567
+ '&.is-focused': {
568
+ outline: string;
569
+ outlineColor: string;
570
+ outlineOffset: string;
571
+ };
572
+ '&.is-hovered': {
573
+ backgroundColor: string;
574
+ path: {
575
+ fill: string;
576
+ };
577
+ };
578
+ '&.is-pressed': {
579
+ backgroundColor: string;
580
+ borderColor: string;
581
+ path: {
582
+ fill: string;
583
+ };
584
+ };
585
+ };
553
586
  modalCloseButton: {
554
587
  position: string;
555
588
  top: number;
@@ -250,6 +250,12 @@ var iconButtons = {
250
250
  base: _objectSpread({}, baseIconButton),
251
251
  nextGen: _objectSpread({}, onyxIconButton),
252
252
  onyx: _objectSpread({}, onyxIconButton),
253
+ responseToolbar: _objectSpread(_objectSpread({}, baseIconButton), {}, {
254
+ '&.is-not-loaded': {
255
+ display: 'none'
256
+ },
257
+ display: 'inline-flex'
258
+ }),
253
259
  modalCloseButton: modalCloseButton,
254
260
  badge: {
255
261
  deleteButton: _objectSpread(_objectSpread({}, baseIconButton), {}, {
@@ -35,14 +35,20 @@ var input = {
35
35
  '&.is-focused': _objectSpread({}, defaultFocus),
36
36
  borderRadius: '4px',
37
37
  fontWeight: 1,
38
- height: '50px',
39
38
  '&::placeholder': _text.text.placeholder
40
39
  };
41
40
  exports.input = input;
42
41
  input.promptInput = _objectSpread(_objectSpread({}, input), {}, {
42
+ position: 'absolute',
43
43
  pl: '0px',
44
44
  border: 'none',
45
45
  outline: 'none !important',
46
+ overflowY: 'hidden',
47
+ resize: 'none',
48
+ lineHeight: '24px',
49
+ minHeight: '26px',
50
+ height: '26px',
51
+ p: '0px',
46
52
  '&.is-focused': {
47
53
  border: 'none !important',
48
54
  outline: 'none !important'
@@ -121,8 +127,8 @@ input.fieldControlWrapper = _objectSpread({}, fieldControlWrapper);
121
127
  input.promptInputWrapper = _objectSpread(_objectSpread({}, fieldControlWrapper), {}, {
122
128
  border: '1px solid',
123
129
  borderColor: 'border.input',
124
- px: '.75rem',
125
130
  borderRadius: '4px',
131
+ minHeight: '50px',
126
132
  '&.is-focused': {
127
133
  boxShadow: '0 1px 1px rgba(0,0,0,.075), 0 0 0 .0625rem blue'
128
134
  }
@@ -158,4 +164,20 @@ input.multivaluesWrapper = _objectSpread(_objectSpread({}, fieldControlWrapper),
158
164
  });
159
165
  input.numberField = _objectSpread(_objectSpread({}, input), {}, {
160
166
  pr: '28px'
161
- });
167
+ });
168
+ input.promptInputRow = {
169
+ alignItems: 'center',
170
+ position: 'relative',
171
+ justifyContent: 'center',
172
+ flexGrow: '1',
173
+ overflowX: 'hidden',
174
+ overflowY: 'auto',
175
+ py: '12px'
176
+ };
177
+ input.promptInputAttachmentWrapper = {
178
+ gap: '1.5rem',
179
+ overflowX: 'auto',
180
+ overflowY: 'hidden',
181
+ whiteSpace: 'nowrap',
182
+ px: '.75rem'
183
+ };
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { PressEvent } from '@react-types/shared';
2
3
  import { IconTypeExtended } from './icon';
3
4
  import { IconButtonProps } from './iconButton';
@@ -15,6 +16,8 @@ export interface PromptProps {
15
16
  isFullScreen?: boolean;
16
17
  }
17
18
  export interface PromptInputProps extends TextFieldProps, PromptProps {
19
+ onKeyUp?: (e: React.KeyboardEvent, value?: string) => void;
20
+ onKeyDown?: (e: React.KeyboardEvent, value?: string) => void;
18
21
  }
19
22
  export interface AttachmentProps {
20
23
  title: string;
@@ -20,22 +20,22 @@ export interface ResponseAttachmentProps extends SharedResponseProps {
20
20
  iconProps?: IconProps;
21
21
  parentIndex?: number;
22
22
  className?: string;
23
+ text: string;
23
24
  }
24
25
  export interface ResponseListProps extends SharedResponseProps, BoxProps {
25
26
  children: ReactNode[];
26
27
  parentIndex?: number;
27
28
  delay?: number;
28
29
  }
29
- export interface ResponseProps {
30
+ export interface ResponseProps extends BoxProps {
30
31
  containerProps?: BoxProps;
31
32
  iconProps?: IconProps;
32
33
  textProps?: ResponseTextProps;
33
34
  iconWrapperProps?: IconWrapperProps;
34
35
  shouldStartAnimation?: boolean;
35
- children: ReactNode[];
36
36
  delay?: number;
37
37
  }
38
- export interface ResponseToolbarProps extends SharedResponseProps {
38
+ export interface ResponseToolbarProps extends BoxProps, SharedResponseProps {
39
39
  readButtonProps?: IconButtonProps;
40
40
  copyButtonProps?: IconButtonProps;
41
41
  goodButtonProps?: IconButtonProps;
@@ -44,5 +44,12 @@ export interface ResponseToolbarProps extends SharedResponseProps {
44
44
  containerProps?: BoxProps;
45
45
  parentIndex?: number;
46
46
  className?: string;
47
+ delay?: number;
48
+ children: ReactNode[];
49
+ }
50
+ export interface ResponseToolbarIconProps extends IconButtonProps, SharedResponseProps {
51
+ delay?: number;
52
+ parentIndex?: number;
53
+ iconProps?: IconProps;
47
54
  }
48
55
  export {};