@atlaskit/contextual-survey 2.0.11

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 (64) hide show
  1. package/CHANGELOG.md +258 -0
  2. package/LICENSE +13 -0
  3. package/README.md +13 -0
  4. package/build/tsconfig.json +17 -0
  5. package/constants/package.json +7 -0
  6. package/dist/cjs/components/ContextualSurvey.js +274 -0
  7. package/dist/cjs/components/FeedbackAcknowledgement.js +26 -0
  8. package/dist/cjs/components/FeedbackScoreButtons.js +60 -0
  9. package/dist/cjs/components/SignUpPrompt.js +84 -0
  10. package/dist/cjs/components/SignUpSuccess.js +29 -0
  11. package/dist/cjs/components/SuccessContainer.js +35 -0
  12. package/dist/cjs/components/SurveyContainer.js +48 -0
  13. package/dist/cjs/components/SurveyForm.js +159 -0
  14. package/dist/cjs/components/SurveyMarshal.js +67 -0
  15. package/dist/cjs/components/useEscapeToDismiss.js +78 -0
  16. package/dist/cjs/constants.js +15 -0
  17. package/dist/cjs/index.js +35 -0
  18. package/dist/cjs/types.js +5 -0
  19. package/dist/cjs/version.json +5 -0
  20. package/dist/es2019/components/ContextualSurvey.js +178 -0
  21. package/dist/es2019/components/FeedbackAcknowledgement.js +12 -0
  22. package/dist/es2019/components/FeedbackScoreButtons.js +69 -0
  23. package/dist/es2019/components/SignUpPrompt.js +46 -0
  24. package/dist/es2019/components/SignUpSuccess.js +12 -0
  25. package/dist/es2019/components/SuccessContainer.js +22 -0
  26. package/dist/es2019/components/SurveyContainer.js +37 -0
  27. package/dist/es2019/components/SurveyForm.js +121 -0
  28. package/dist/es2019/components/SurveyMarshal.js +62 -0
  29. package/dist/es2019/components/useEscapeToDismiss.js +69 -0
  30. package/dist/es2019/constants.js +4 -0
  31. package/dist/es2019/index.js +2 -0
  32. package/dist/es2019/types.js +1 -0
  33. package/dist/es2019/version.json +5 -0
  34. package/dist/esm/components/ContextualSurvey.js +244 -0
  35. package/dist/esm/components/FeedbackAcknowledgement.js +13 -0
  36. package/dist/esm/components/FeedbackScoreButtons.js +44 -0
  37. package/dist/esm/components/SignUpPrompt.js +66 -0
  38. package/dist/esm/components/SignUpSuccess.js +16 -0
  39. package/dist/esm/components/SuccessContainer.js +21 -0
  40. package/dist/esm/components/SurveyContainer.js +30 -0
  41. package/dist/esm/components/SurveyForm.js +132 -0
  42. package/dist/esm/components/SurveyMarshal.js +55 -0
  43. package/dist/esm/components/useEscapeToDismiss.js +68 -0
  44. package/dist/esm/constants.js +4 -0
  45. package/dist/esm/index.js +2 -0
  46. package/dist/esm/types.js +1 -0
  47. package/dist/esm/version.json +5 -0
  48. package/dist/types/components/ContextualSurvey.d.ts +39 -0
  49. package/dist/types/components/FeedbackAcknowledgement.d.ts +2 -0
  50. package/dist/types/components/FeedbackScoreButtons.d.ts +6 -0
  51. package/dist/types/components/SignUpPrompt.d.ts +5 -0
  52. package/dist/types/components/SignUpSuccess.d.ts +4 -0
  53. package/dist/types/components/SuccessContainer.d.ts +6 -0
  54. package/dist/types/components/SurveyContainer.d.ts +7 -0
  55. package/dist/types/components/SurveyForm.d.ts +11 -0
  56. package/dist/types/components/SurveyMarshal.d.ts +13 -0
  57. package/dist/types/components/useEscapeToDismiss.d.ts +6 -0
  58. package/dist/types/constants.d.ts +2 -0
  59. package/dist/types/index.d.ts +3 -0
  60. package/dist/types/types.d.ts +5 -0
  61. package/docs/0-intro.tsx +115 -0
  62. package/package.json +58 -0
  63. package/tsconfig.json +16 -0
  64. package/types/package.json +7 -0
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _core = require("@emotion/core");
13
+
14
+ var _constants = require("@atlaskit/theme/constants");
15
+
16
+ var _SuccessContainer = _interopRequireDefault(require("./SuccessContainer"));
17
+
18
+ var _templateObject;
19
+
20
+ var _default = function _default() {
21
+ return (0, _core.jsx)(_SuccessContainer.default, null, (0, _core.jsx)("h1", {
22
+ css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-size: ", "px;\n font-weight: 600;\n margin-top: 0;\n line-height: ", "px;\n "])), (0, _constants.fontSize)(), (0, _constants.gridSize)() * 3)
23
+ }, "Thanks for your feedback"));
24
+ };
25
+
26
+ exports.default = _default;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _core = require("@emotion/core");
13
+
14
+ var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
15
+
16
+ var _colors = require("@atlaskit/theme/colors");
17
+
18
+ var _constants = require("@atlaskit/theme/constants");
19
+
20
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
21
+
22
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
23
+
24
+ var tooltipMessage = ['Strongly disagree', 'Disagree', 'Slightly disagree', 'Neutral', 'Slightly agree', 'Agree', 'Strongly agree'];
25
+
26
+ var _default = function _default(_ref) {
27
+ var onChange = _ref.onChange,
28
+ value = _ref.value;
29
+ return (0, _core.jsx)("div", null, (0, _core.jsx)("div", {
30
+ css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n justify-content: space-between;\n\n & > * + * {\n margin-left: ", "px;\n }\n\n & > * {\n flex: 1;\n\n & > button {\n justify-content: center;\n }\n }\n "])), (0, _constants.gridSize)())
31
+ }, Array.from({
32
+ length: 7
33
+ }, function (_, i) {
34
+ var score = i + 1;
35
+ var isSelected = value === score;
36
+ return (0, _core.jsx)(_tooltip.default, {
37
+ content: tooltipMessage[i],
38
+ key: score,
39
+ hideTooltipOnClick: true
40
+ }, (0, _core.jsx)(_customThemeButton.default, {
41
+ onClick: function onClick() {
42
+ return onChange(score);
43
+ },
44
+ isSelected: isSelected,
45
+ "aria-pressed": isSelected,
46
+ "aria-describedby": "contextualSurveyStatement",
47
+ "aria-label": tooltipMessage[i],
48
+ shouldFitContainer: true
49
+ }, score));
50
+ })), (0, _core.jsx)("div", {
51
+ css: (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n font-size: 12px;\n font-weight: 600;\n color: ", ";\n display: flex;\n margin-top: ", "px;\n margin-bottom: ", "px;\n\n & > span {\n width: ", "px;\n }\n "])), _colors.N200, (0, _constants.gridSize)(), (0, _constants.gridSize)() * 3, (0, _constants.gridSize)() * 10),
52
+ "aria-hidden": true
53
+ }, (0, _core.jsx)("span", null, "Strongly disagree"), (0, _core.jsx)("span", {
54
+ css: (0, _core.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n text-align: center;\n margin: 0 auto;\n padding: 0 ", "px;\n "])), (0, _constants.gridSize)() * 6)
55
+ }, "Neutral"), (0, _core.jsx)("span", {
56
+ css: (0, _core.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n text-align: right;\n "])))
57
+ }, "Strongly agree")));
58
+ };
59
+
60
+ exports.default = _default;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = require("react");
19
+
20
+ var _core = require("@emotion/core");
21
+
22
+ var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
23
+
24
+ var _constants = require("@atlaskit/theme/constants");
25
+
26
+ var _SuccessContainer = _interopRequireDefault(require("./SuccessContainer"));
27
+
28
+ var _templateObject, _templateObject2;
29
+
30
+ var _default = function _default(_ref) {
31
+ var onAnswer = _ref.onAnswer;
32
+
33
+ var _useState = (0, _react.useState)(null),
34
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
+ pending = _useState2[0],
36
+ setPending = _useState2[1];
37
+
38
+ var answeredWith = (0, _react.useCallback)( /*#__PURE__*/function () {
39
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(answer) {
40
+ return _regenerator.default.wrap(function _callee$(_context) {
41
+ while (1) {
42
+ switch (_context.prev = _context.next) {
43
+ case 0:
44
+ setPending(answer ? 'yes' : 'no');
45
+ _context.next = 3;
46
+ return onAnswer(answer);
47
+
48
+ case 3:
49
+ case "end":
50
+ return _context.stop();
51
+ }
52
+ }
53
+ }, _callee);
54
+ }));
55
+
56
+ return function (_x) {
57
+ return _ref2.apply(this, arguments);
58
+ };
59
+ }(), [setPending, onAnswer]);
60
+ var isDisabled = Boolean(pending);
61
+ return (0, _core.jsx)(_SuccessContainer.default, null, (0, _core.jsx)("h1", {
62
+ css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-size: ", "px;\n font-weight: 600;\n margin: 0;\n line-height: ", "px;\n "])), (0, _constants.fontSize)(), (0, _constants.gridSize)() * 3)
63
+ }, "Thanks for your feedback"), (0, _core.jsx)("p", null, "Are you interested in participating in our research?"), (0, _core.jsx)("p", null, "Sign up for the", ' ', (0, _core.jsx)("a", {
64
+ href: "https://www.atlassian.com/research-group"
65
+ }, "Atlassian Research Group"), ' ', "and we may contact you in the future with research opportunities."), (0, _core.jsx)("div", {
66
+ css: (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", "px;\n display: flex;\n justify-content: flex-end;\n\n & > * + * {\n margin-left: ", "px;\n }\n "])), (0, _constants.gridSize)() * 4, (0, _constants.gridSize)())
67
+ }, (0, _core.jsx)(_customThemeButton.default, {
68
+ appearance: "subtle",
69
+ onClick: function onClick() {
70
+ return answeredWith(false);
71
+ },
72
+ isDisabled: isDisabled,
73
+ isLoading: pending === 'no'
74
+ }, "No, thanks"), (0, _core.jsx)(_customThemeButton.default, {
75
+ appearance: "primary",
76
+ onClick: function onClick() {
77
+ return answeredWith(true);
78
+ },
79
+ isDisabled: isDisabled,
80
+ isLoading: pending === 'yes'
81
+ }, "Yes, sign me up")));
82
+ };
83
+
84
+ exports.default = _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
13
+
14
+ var _core = require("@emotion/core");
15
+
16
+ var _constants = require("@atlaskit/theme/constants");
17
+
18
+ var _SuccessContainer = _interopRequireDefault(require("./SuccessContainer"));
19
+
20
+ var _templateObject;
21
+
22
+ var _default = function _default(_ref) {
23
+ (0, _objectDestructuringEmpty2.default)(_ref);
24
+ return (0, _core.jsx)(_SuccessContainer.default, null, (0, _core.jsx)("h1", {
25
+ css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-size: ", "px;\n font-weight: 600;\n line-height: ", "px;\n margin: 0;\n "])), (0, _constants.fontSize)(), (0, _constants.gridSize)() * 3)
26
+ }, "Thanks for signing up"), (0, _core.jsx)("p", null, "We may reach out to you in the future to participate in additional research."));
27
+ };
28
+
29
+ exports.default = _default;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _core = require("@emotion/core");
13
+
14
+ var _checkCircle = _interopRequireDefault(require("@atlaskit/icon/glyph/check-circle"));
15
+
16
+ var _colors = require("@atlaskit/theme/colors");
17
+
18
+ var _constants = require("@atlaskit/theme/constants");
19
+
20
+ var _templateObject, _templateObject2;
21
+
22
+ var _default = function _default(_ref) {
23
+ var children = _ref.children;
24
+ return (0, _core.jsx)("section", {
25
+ css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", "px;\n "])), (0, _constants.gridSize)() * 5)
26
+ }, (0, _core.jsx)("div", {
27
+ css: (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: ", "px;\n left: ", "px;\n "])), (0, _constants.gridSize)() * 3, (0, _constants.gridSize)() * 3)
28
+ }, (0, _core.jsx)(_checkCircle.default, {
29
+ label: "",
30
+ "aria-hidden": true,
31
+ primaryColor: _colors.G300
32
+ })), children);
33
+ };
34
+
35
+ exports.default = _default;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _core = require("@emotion/core");
13
+
14
+ var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
15
+
16
+ var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
17
+
18
+ var _colors = require("@atlaskit/theme/colors");
19
+
20
+ var _constants = require("@atlaskit/theme/constants");
21
+
22
+ var _elevation = require("@atlaskit/theme/elevation");
23
+
24
+ var _constants2 = require("../constants");
25
+
26
+ var _templateObject, _templateObject2;
27
+
28
+ var padding = (0, _constants.gridSize)() * 3;
29
+
30
+ var _default = function _default(_ref) {
31
+ var children = _ref.children,
32
+ onDismiss = _ref.onDismiss;
33
+ return (0, _core.jsx)("div", {
34
+ css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n border-radius: ", "px;\n padding: ", "px;\n ", "\n width: ", "px;\n "])), _colors.N0, (0, _constants.borderRadius)(), padding, (0, _elevation.e500)(), _constants2.surveyInnerWidth)
35
+ }, (0, _core.jsx)("div", {
36
+ css: (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: ", "px;\n right: ", "px;\n "])), padding - (0, _constants.gridSize)(), padding - (0, _constants.gridSize)())
37
+ }, (0, _core.jsx)(_customThemeButton.default, {
38
+ iconBefore: (0, _core.jsx)(_cross.default, {
39
+ label: "",
40
+ primaryColor: _colors.N50
41
+ }),
42
+ "aria-label": "Dismiss",
43
+ appearance: "subtle",
44
+ onClick: onDismiss
45
+ })), children);
46
+ };
47
+
48
+ exports.default = _default;
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _react = require("react");
19
+
20
+ var _core = require("@emotion/core");
21
+
22
+ var _reactTransitionGroup = require("react-transition-group");
23
+
24
+ var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
25
+
26
+ var _checkbox = require("@atlaskit/checkbox");
27
+
28
+ var _form = _interopRequireWildcard(require("@atlaskit/form"));
29
+
30
+ var _textarea = _interopRequireDefault(require("@atlaskit/textarea"));
31
+
32
+ var _constants = require("@atlaskit/theme/constants");
33
+
34
+ var _FeedbackScoreButtons = _interopRequireDefault(require("./FeedbackScoreButtons"));
35
+
36
+ var _templateObject, _templateObject2;
37
+
38
+ 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); }
39
+
40
+ 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; }
41
+
42
+ var getExpandedHeight = function getExpandedHeight(ref, state) {
43
+ if (!ref.current) {
44
+ return '0';
45
+ }
46
+
47
+ switch (state) {
48
+ case 'entering':
49
+ return "".concat(ref.current.scrollHeight, "px");
50
+
51
+ case 'entered':
52
+ // needed for TextField auto height expand
53
+ return "none";
54
+
55
+ default:
56
+ return '0';
57
+ }
58
+ };
59
+
60
+ var transitionDuration = 200;
61
+
62
+ var _default = function _default(_ref) {
63
+ var question = _ref.question,
64
+ statement = _ref.statement,
65
+ textPlaceholder = _ref.textPlaceholder,
66
+ textLabel = _ref.textLabel,
67
+ onSubmit = _ref.onSubmit;
68
+
69
+ var _useState = (0, _react.useState)(false),
70
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
71
+ expanded = _useState2[0],
72
+ setExpanded = _useState2[1];
73
+
74
+ var _useState3 = (0, _react.useState)(false),
75
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
76
+ canContactDefault = _useState4[0],
77
+ setCanContactDefault = _useState4[1];
78
+
79
+ var hasAutoFilledCanContactRef = (0, _react.useRef)(false);
80
+ var expandedAreaRef = (0, _react.useRef)(null);
81
+ var onScoreSelect = (0, _react.useCallback)(function () {
82
+ setExpanded(true);
83
+ }, [setExpanded]); // On the first type the user types some feedback we auto select
84
+ // the option for allowing feedback. This automatic selection only
85
+ // happens once. After that it is up to the user to control
86
+
87
+ var onFeedbackChange = (0, _react.useCallback)(function () {
88
+ if (hasAutoFilledCanContactRef.current) {
89
+ return;
90
+ }
91
+
92
+ hasAutoFilledCanContactRef.current = true;
93
+ setCanContactDefault(true);
94
+ }, []);
95
+ return (0, _core.jsx)("section", {
96
+ "aria-labelledby": "contextualSurveyQuestion"
97
+ }, (0, _core.jsx)("h1", {
98
+ id: "contextualSurveyQuestion",
99
+ css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n font-size: ", "px;\n font-weight: 600;\n "])), (0, _constants.fontSize)())
100
+ }, question), statement && (0, _core.jsx)("p", {
101
+ id: "contextualSurveyStatement"
102
+ }, statement), (0, _core.jsx)(_form.default, {
103
+ onSubmit: onSubmit
104
+ }, function (_ref2) {
105
+ var formProps = _ref2.formProps,
106
+ submitting = _ref2.submitting;
107
+ return (0, _core.jsx)("form", formProps, (0, _core.jsx)(_form.Field, {
108
+ name: "feedbackScore",
109
+ isDisabled: submitting,
110
+ isRequired: true
111
+ }, function (_ref3) {
112
+ var fieldProps = _ref3.fieldProps;
113
+ return (0, _core.jsx)(_FeedbackScoreButtons.default, (0, _extends2.default)({}, fieldProps, {
114
+ onChange: function onChange(score) {
115
+ fieldProps.onChange(score);
116
+ onScoreSelect();
117
+ }
118
+ }));
119
+ }), (0, _core.jsx)(_reactTransitionGroup.Transition, {
120
+ in: expanded,
121
+ timeout: transitionDuration,
122
+ mountOnEnter: true
123
+ }, function (state) {
124
+ return (0, _core.jsx)("div", {
125
+ css: (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n transition: max-height ", "ms ease-in-out;\n overflow: hidden;\n max-height: ", ";\n "])), transitionDuration, getExpandedHeight(expandedAreaRef, state)),
126
+ ref: expandedAreaRef
127
+ }, (0, _core.jsx)(_form.Field, {
128
+ name: "writtenFeedback",
129
+ defaultValue: "",
130
+ isDisabled: submitting
131
+ }, function (_ref4) {
132
+ var fieldProps = _ref4.fieldProps;
133
+ return (0, _core.jsx)(_textarea.default, (0, _extends2.default)({}, fieldProps, {
134
+ "aria-label": textLabel,
135
+ placeholder: textPlaceholder,
136
+ onChange: function onChange(event) {
137
+ fieldProps.onChange(event);
138
+ onFeedbackChange();
139
+ }
140
+ }));
141
+ }), (0, _core.jsx)(_form.CheckboxField, {
142
+ name: "canContact",
143
+ isDisabled: submitting,
144
+ defaultIsChecked: canContactDefault
145
+ }, function (_ref5) {
146
+ var fieldProps = _ref5.fieldProps;
147
+ return (0, _core.jsx)(_checkbox.Checkbox, (0, _extends2.default)({}, fieldProps, {
148
+ label: "Atlassian can contact me about this feedback"
149
+ }));
150
+ }), (0, _core.jsx)(_form.FormFooter, null, (0, _core.jsx)(_customThemeButton.default, {
151
+ type: "submit",
152
+ appearance: "primary",
153
+ isLoading: submitting
154
+ }, "Submit")));
155
+ }));
156
+ }));
157
+ };
158
+
159
+ exports.default = _default;