@instructure/quiz-core 20.9.0 → 20.9.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/es/building/components/layout/Sidebar/SidebarItem/presenter.js +16 -22
  2. package/es/building/components/layout/Sidebar/SidebarItem/styles.js +11 -0
  3. package/es/building/components/layout/Sidebar/SidebarItem/theme.js +4 -2
  4. package/es/building/components/layout/Sidebar/Stimulus/presenter.js +17 -23
  5. package/es/building/components/layout/Sidebar/Stimulus/styles.js +11 -0
  6. package/es/building/components/layout/Sidebar/Stimulus/theme.js +4 -2
  7. package/es/building/components/layout/Sidebar/presenter.js +42 -38
  8. package/es/building/components/layout/Sidebar/styles.js +28 -0
  9. package/es/building/components/layout/Sidebar/theme.js +4 -2
  10. package/es/building/components/layout/header/BuildingButtons/presenter.js +33 -39
  11. package/es/building/components/layout/header/BuildingButtons/styles.js +21 -0
  12. package/es/building/components/layout/header/BuildingButtons/theme.js +4 -2
  13. package/es/building/components/resources/ActionButtons/presenter.js +29 -27
  14. package/es/building/components/resources/ActionButtons/styles.js +33 -0
  15. package/es/building/components/resources/ActionButtons/theme.js +4 -2
  16. package/es/building/components/resources/AddToBankOptions/index.js +11 -15
  17. package/es/building/components/resources/AddToBankOptions/styles.js +11 -0
  18. package/es/building/components/resources/AddToBankOptions/theme.js +4 -2
  19. package/es/building/components/resources/DeleteStimulusModal/presenter.js +38 -44
  20. package/es/building/components/resources/DeleteStimulusModal/styles.js +22 -0
  21. package/es/building/components/resources/DeleteStimulusModal/theme.js +4 -2
  22. package/es/building/components/resources/ItemFeedbackModal/presenter.js +23 -28
  23. package/es/building/components/resources/ItemFeedbackModal/styles.js +14 -0
  24. package/es/building/components/resources/ItemFeedbackModal/theme.js +4 -2
  25. package/es/common/components/layout/sidebar/PositionSummary/index.js +17 -25
  26. package/es/common/components/layout/sidebar/PositionSummary/styles.js +28 -0
  27. package/es/common/components/layout/sidebar/PositionSummary/theme.js +4 -2
  28. package/es/common/components/layout/sidebar/Sidebar/index.js +88 -94
  29. package/es/common/components/layout/sidebar/Sidebar/styles.js +117 -0
  30. package/es/common/components/layout/sidebar/Sidebar/theme.js +4 -8
  31. package/es/common/components/layout/sidebar/SidebarItem/presenter.js +52 -52
  32. package/es/common/components/layout/sidebar/SidebarItem/styles.js +59 -0
  33. package/es/common/components/layout/sidebar/SidebarItem/theme.js +4 -2
  34. package/es/common/components/layout/sidebar/Stimulus/presenter.js +39 -36
  35. package/es/common/components/layout/sidebar/Stimulus/styles.js +33 -0
  36. package/es/common/components/layout/sidebar/Stimulus/theme.js +4 -2
  37. package/es/common/components/shared/drag_and_drop/DragAndDropZone/index.js +40 -30
  38. package/es/common/components/shared/drag_and_drop/DragAndDropZone/styles.js +41 -0
  39. package/es/common/components/shared/drag_and_drop/DragAndDropZone/theme.js +4 -2
  40. package/lib/building/components/layout/Sidebar/SidebarItem/presenter.js +15 -23
  41. package/lib/building/components/layout/Sidebar/SidebarItem/styles.js +19 -0
  42. package/lib/building/components/layout/Sidebar/SidebarItem/theme.js +6 -3
  43. package/lib/building/components/layout/Sidebar/Stimulus/presenter.js +16 -24
  44. package/lib/building/components/layout/Sidebar/Stimulus/styles.js +19 -0
  45. package/lib/building/components/layout/Sidebar/Stimulus/theme.js +6 -3
  46. package/lib/building/components/layout/Sidebar/presenter.js +40 -41
  47. package/lib/building/components/layout/Sidebar/styles.js +38 -0
  48. package/lib/building/components/layout/Sidebar/theme.js +6 -3
  49. package/lib/building/components/layout/header/BuildingButtons/presenter.js +32 -40
  50. package/lib/building/components/layout/header/BuildingButtons/styles.js +29 -0
  51. package/lib/building/components/layout/header/BuildingButtons/theme.js +6 -3
  52. package/lib/building/components/resources/ActionButtons/presenter.js +28 -30
  53. package/lib/building/components/resources/ActionButtons/styles.js +44 -0
  54. package/lib/building/components/resources/ActionButtons/theme.js +6 -3
  55. package/lib/building/components/resources/AddToBankOptions/index.js +10 -16
  56. package/lib/building/components/resources/AddToBankOptions/styles.js +19 -0
  57. package/lib/building/components/resources/AddToBankOptions/theme.js +6 -3
  58. package/lib/building/components/resources/DeleteStimulusModal/presenter.js +37 -46
  59. package/lib/building/components/resources/DeleteStimulusModal/styles.js +30 -0
  60. package/lib/building/components/resources/DeleteStimulusModal/theme.js +6 -3
  61. package/lib/building/components/resources/ItemFeedbackModal/presenter.js +19 -27
  62. package/lib/building/components/resources/ItemFeedbackModal/styles.js +22 -0
  63. package/lib/building/components/resources/ItemFeedbackModal/theme.js +6 -3
  64. package/lib/common/components/layout/sidebar/PositionSummary/index.js +16 -26
  65. package/lib/common/components/layout/sidebar/PositionSummary/styles.js +36 -0
  66. package/lib/common/components/layout/sidebar/PositionSummary/theme.js +6 -3
  67. package/lib/common/components/layout/sidebar/Sidebar/index.js +85 -97
  68. package/lib/common/components/layout/sidebar/Sidebar/styles.js +128 -0
  69. package/lib/common/components/layout/sidebar/Sidebar/theme.js +5 -9
  70. package/lib/common/components/layout/sidebar/SidebarItem/presenter.js +51 -55
  71. package/lib/common/components/layout/sidebar/SidebarItem/styles.js +69 -0
  72. package/lib/common/components/layout/sidebar/SidebarItem/theme.js +6 -3
  73. package/lib/common/components/layout/sidebar/Stimulus/presenter.js +38 -37
  74. package/lib/common/components/layout/sidebar/Stimulus/styles.js +41 -0
  75. package/lib/common/components/layout/sidebar/Stimulus/theme.js +6 -3
  76. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/index.js +40 -33
  77. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/styles.js +51 -0
  78. package/lib/common/components/shared/drag_and_drop/DragAndDropZone/theme.js +6 -3
  79. package/package.json +10 -10
@@ -1,3 +1,4 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
1
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
3
4
  import _inherits from "@babel/runtime/helpers/esm/inherits";
@@ -5,24 +6,14 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
6
 
6
7
  var _dec, _class, _class2, _temp;
7
8
 
8
- import React, { Component } from 'react';
9
+ /** @jsx jsx */
10
+ import { Component } from 'react';
9
11
  import PropTypes from 'prop-types';
10
- import classNames from 'classnames';
11
- import { themeable } from '@instructure/ui-themeable';
12
- var styles = {
13
- componentId: 'CixOW',
14
- template: function template(theme) {
15
- return "\n\n.CixOW_bZNM{display:flex;flex-flow:column}\n\n.CixOW_dlMM{padding-bottom:".concat(theme.firstNumberSummaryPadding || 'inherit', "}\n\n.CixOW_dWEq{padding-top:").concat(theme.secondNumberSummaryPadding || 'inherit', "}\n\n.CixOW_fJqn{color:").concat(theme.numberSummaryColor || 'inherit', ";font-size:").concat(theme.numberSummaryFontSize || 'inherit', ";font-weight:").concat(theme.numberSummaryFontWeight || 'inherit', ";margin:auto}\n\n.CixOW_EKnN{border-color:").concat(theme.verticalDotsBorderColor || 'inherit', ";border-left:dotted ").concat(theme.verticalDotsBorderWidth || 'inherit', ";height:1.5rem;margin:auto}");
16
- },
17
- 'column': 'CixOW_bZNM',
18
- 'firstNumberSummary': 'CixOW_dlMM',
19
- 'secondNumberSummary': 'CixOW_dWEq',
20
- 'numberSummary': 'CixOW_fJqn',
21
- 'verticalDots': 'CixOW_EKnN'
22
- };
23
- import theme from "./theme.js";
12
+ import { withStyle, jsx } from '@instructure/emotion';
13
+ import generateStyle from "./styles.js";
14
+ import generateComponentTheme from "./theme.js";
24
15
  import t from '@instructure/quiz-i18n/es/format-message';
25
- export var PositionSummary = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
16
+ export var PositionSummary = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
26
17
  _inherits(PositionSummary, _Component);
27
18
 
28
19
  var _super = _createSuper(PositionSummary);
@@ -36,16 +27,16 @@ export var PositionSummary = (_dec = themeable(theme, styles), _dec(_class = (_t
36
27
  _createClass(PositionSummary, [{
37
28
  key: "render",
38
29
  value: function render() {
39
- return /*#__PURE__*/React.createElement("div", {
40
- className: styles.column
41
- }, /*#__PURE__*/React.createElement("div", {
42
- className: classNames([styles.numberSummary, styles.firstNumberSummary])
30
+ return jsx("div", {
31
+ css: this.props.styles.column
32
+ }, jsx("div", {
33
+ css: _objectSpread(_objectSpread({}, this.props.styles.numberSummary), this.props.styles.firstNumberSummary)
43
34
  }, t('{first, number}', {
44
35
  first: this.props.firstPosition
45
- })), /*#__PURE__*/React.createElement("div", {
46
- className: styles.verticalDots
47
- }), /*#__PURE__*/React.createElement("div", {
48
- className: classNames([styles.numberSummary, styles.secondNumberSummary])
36
+ })), jsx("div", {
37
+ css: this.props.styles.verticalDots
38
+ }), jsx("div", {
39
+ css: _objectSpread(_objectSpread({}, this.props.styles.numberSummary), this.props.styles.secondNumberSummary)
49
40
  }, t('{last, number}', {
50
41
  last: this.props.lastPosition
51
42
  })));
@@ -56,6 +47,7 @@ export var PositionSummary = (_dec = themeable(theme, styles), _dec(_class = (_t
56
47
  return PositionSummary;
57
48
  }(Component), _class2.propTypes = {
58
49
  firstPosition: PropTypes.number.isRequired,
59
- lastPosition: PropTypes.number.isRequired
50
+ lastPosition: PropTypes.number.isRequired,
51
+ styles: PropTypes.object
60
52
  }, _temp)) || _class);
61
53
  export default PositionSummary;
@@ -0,0 +1,28 @@
1
+ var generateStyle = function generateStyle(componentTheme) {
2
+ return {
3
+ column: {
4
+ display: 'flex',
5
+ flexFlow: 'column'
6
+ },
7
+ firstNumberSummary: {
8
+ paddingBottom: "".concat(componentTheme.firstNumberSummaryPadding)
9
+ },
10
+ secondNumberSummary: {
11
+ paddingTop: "".concat(componentTheme.secondNumberSummaryPadding)
12
+ },
13
+ numberSummary: {
14
+ color: componentTheme.numberSummaryColor,
15
+ fontSize: componentTheme.numberSummaryFontSize,
16
+ fontWeight: componentTheme.numberSummaryFontWeight,
17
+ margin: 'auto'
18
+ },
19
+ verticalDots: {
20
+ margin: 'auto',
21
+ height: '1.5rem',
22
+ borderLeft: "dotted ".concat(componentTheme.verticalDotsBorderWidth),
23
+ borderColor: componentTheme.verticalDotsBorderColor
24
+ }
25
+ };
26
+ };
27
+
28
+ export default generateStyle;
@@ -1,4 +1,4 @@
1
- export default function generator(_ref) {
1
+ var generateComponentTheme = function generateComponentTheme(_ref) {
2
2
  var colors = _ref.colors,
3
3
  spacing = _ref.spacing,
4
4
  borders = _ref.borders,
@@ -12,4 +12,6 @@ export default function generator(_ref) {
12
12
  verticalDotsBorderWidth: borders.widthSmall,
13
13
  verticalDotsBorderColor: colors.licorice
14
14
  };
15
- }
15
+ };
16
+
17
+ export default generateComponentTheme;
@@ -1,4 +1,4 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
4
4
  import _inherits from "@babel/runtime/helpers/esm/inherits";
@@ -6,19 +6,20 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
6
6
 
7
7
  var _dec, _class, _class2, _temp;
8
8
 
9
+ /** @jsx jsx */
10
+
9
11
  /* eslint "jsx-a11y/click-events-have-key-events": "warn" */
10
- import React, { Component } from 'react';
12
+ import { Component } from 'react';
11
13
  import PropTypes from 'prop-types';
12
14
  import { List } from 'immutable';
13
15
  import ImmutablePropTypes from 'react-immutable-proptypes';
14
- import classNames from 'classnames';
15
16
  import { IconMoveStartLine, IconMoveEndLine, IconPinSolid, IconQuizInstructionsLine, IconQuizTitleLine } from '@instructure/ui-icons';
16
17
  import { AccessibleContent, ScreenReaderContent, PresentationContent } from '@instructure/ui-a11y-content';
17
18
  import { IconButton } from '@instructure/ui-buttons';
18
19
  import { Link } from '@instructure/ui-link';
19
20
  import { Text } from '@instructure/ui-text';
20
21
  import { View } from '@instructure/ui-view';
21
- import { themeable } from '@instructure/ui-themeable';
22
+ import { withStyle, jsx, Global } from '@instructure/emotion';
22
23
  import { Heading } from '@instructure/ui-heading';
23
24
  import t from '@instructure/quiz-i18n/es/format-message';
24
25
  import { INSTRUCTIONS_SCROLL_KEY, RESULTS_SCROLL_KEY, SIDEBAR_NAV_ID, TITLE_SCROLL_KEY } from '@instructure/quiz-common';
@@ -26,43 +27,24 @@ import { onPhone } from "../../../../util/windowChecks.js";
26
27
  import CustomPropTypes from "../../../../util/CustomPropTypes.js";
27
28
  import noop from "../../../../util/noop.js";
28
29
  import Pin from "./Pin.js";
29
- var styles = {
30
- componentId: 'bPuQe',
31
- template: function template(theme) {
32
- return "\n\n.bPuQe_bObp{background-color:".concat(theme.sidebarBackgroundColor || 'inherit', ";border:").concat(theme.sidebarBorderWidth || 'inherit', " solid ").concat(theme.sidebarBorderColor || 'inherit', ";box-sizing:border-box;color:").concat(theme.sidebarColor || 'inherit', ";height:100%;overflow:hidden;position:relative;transition:").concat(theme.sidebarTransitionDuration || 'inherit', " ease;width:").concat(theme.sidebarWidthClosed || 'inherit', ";z-index:").concat(theme.sidebarZIndex || 'inherit', "}\n\nbody.tox-fullscreen .bPuQe_bObp{z-index:0}\n\n.bPuQe_crKy{display:flex;flex-direction:column;height:100%}\n\n.bPuQe_eYGv{overflow-x:hidden;overflow-y:auto}\n\n.bPuQe_eeTU{border-bottom:").concat(theme.sidebarHeaderBorderWidth || 'inherit', " solid ").concat(theme.sidebarHeaderBorderColor || 'inherit', ";border-right:").concat(theme.actionableInfoBorderWidth || 'inherit', " solid ").concat(theme.sidebarBackgroundColor || 'inherit', ";text-align:center}\n\n[dir=ltr] .bPuQe_eeTU,[dir=rtl] .bPuQe_eeTU{text-align:center}\n\n.bPuQe_eeTU:hover{border-right:").concat(theme.actionableInfoBorderWidth || 'inherit', " solid ").concat(theme.actionableInfoHoverBorderColor || 'inherit', "}\n\n.bPuQe_difO{color:").concat(theme.descriptionFontColor || 'inherit', ";display:none;font-size:").concat(theme.descriptionFontSize || 'inherit', "}\n\n.bPuQe_cjDf{display:flex;flex-direction:row;flex-shrink:0;padding:").concat(theme.headerSpacingPadding || 'inherit', "}\n\n.bPuQe_cjDf h2{padding-top:0.3em}\n\n.bPuQe_fuFE{border-bottom:solid ").concat(theme.sidebarHeaderBorderWidth || 'inherit', ";border-color:").concat(theme.sidebarHeaderBorderColor || 'inherit', "}\n\n.bPuQe_cvRx{margin-left:auto}\n\n.bPuQe_fwEb{background-color:").concat(theme.pinnedSectionBackgroundColor || 'inherit', ";width:100%}\n\n.bPuQe_fwEb .bPuQe_cjDf{flex-grow:1}\n\n.bPuQe_ftzv{padding-top:").concat(theme.questionNavigatorPadding || 'inherit', "}\n\n.bPuQe_bObp.bPuQe_eNNp{opacity:1;transition:").concat(theme.sidebarTransitionDuration || 'inherit', " ease;width:").concat(theme.sidebarWidthOpen || 'inherit', "}\n\n.bPuQe_eNNp .bPuQe_difO{cursor:pointer;display:inline-block}\n\n.bPuQe_eNNp .bPuQe_eeTU,[dir=ltr] .bPuQe_eNNp .bPuQe_eeTU,[dir=rtl] .bPuQe_eNNp .bPuQe_eeTU{text-align:inherit}\n\n.bPuQe_eQGE{display:none}\n\n.bPuQe_eQGE.bPuQe_cvRx{display:block;margin:auto}\n\n.bPuQe_nqth button{font-size:").concat(theme.pinnedQuestionFontSize || 'inherit', ";padding-bottom:").concat(theme.pinnedQuestionSpacing || 'inherit', ";padding-left:").concat(theme.pinnedQuestionSpacing || 'inherit', "}\n\n.bPuQe_eYHq{height:100%}\n\n@media screen and (--phoneBreakPoint){.bPuQe_eYHq{position:relative}.bPuQe_bObp{position:absolute;width:0}.bPuQe_bObp,.bPuQe_bObp.bPuQe_eNNp{transition:").concat(theme.sidebarTransitionDuration || 'inherit', " ease}.bPuQe_bObp.bPuQe_eNNp{display:inline;max-width:100vw;width:100vw}}\n\n@media print{.bPuQe_eYHq{display:none}}");
33
- },
34
- 'sidebar': 'bPuQe_bObp',
35
- 'sidebarWrapper': 'bPuQe_crKy',
36
- 'sidebarContent': 'bPuQe_eYGv',
37
- 'actionableInfo': 'bPuQe_eeTU',
38
- 'description': 'bPuQe_difO',
39
- 'headerSpacing': 'bPuQe_cjDf',
40
- 'headerBottomBorder': 'bPuQe_fuFE',
41
- 'iconWrapper': 'bPuQe_cvRx',
42
- 'pinnedSection': 'bPuQe_fwEb',
43
- 'questionNavigatorPadding': 'bPuQe_ftzv',
44
- 'sidebarIsOpen': 'bPuQe_eNNp',
45
- 'sidebarClosed': 'bPuQe_eQGE',
46
- 'buttonWrapper': 'bPuQe_nqth',
47
- 'commonContainer': 'bPuQe_eYHq'
48
- };
49
- import theme from "./theme.js";
50
-
51
- var _ref = /*#__PURE__*/React.createElement(IconQuizTitleLine, {
30
+ import generateStyle from "./styles.js";
31
+ import generateComponentTheme from "./theme.js";
32
+
33
+ var _ref = jsx(IconQuizTitleLine, {
52
34
  color: "primary"
53
35
  });
54
36
 
55
- var _ref2 = /*#__PURE__*/React.createElement(IconQuizInstructionsLine, {
37
+ var _ref2 = jsx(IconQuizInstructionsLine, {
56
38
  color: "primary"
57
39
  });
58
40
 
59
- var _ref3 = /*#__PURE__*/React.createElement(IconQuizInstructionsLine, {
41
+ var _ref3 = jsx(IconQuizInstructionsLine, {
60
42
  color: "primary"
61
43
  });
62
44
 
63
- var _ref4 = /*#__PURE__*/React.createElement(IconPinSolid, null);
45
+ var _ref4 = jsx(IconPinSolid, null);
64
46
 
65
- export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
47
+ export var Sidebar = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
66
48
  _inherits(Sidebar, _Component);
67
49
 
68
50
  var _super = _createSuper(Sidebar);
@@ -123,6 +105,16 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
123
105
  }
124
106
 
125
107
  _createClass(Sidebar, [{
108
+ key: "componentDidMount",
109
+ value: function componentDidMount() {
110
+ this.props.makeStyles();
111
+ }
112
+ }, {
113
+ key: "componentDidUpdate",
114
+ value: function componentDidUpdate() {
115
+ this.props.makeStyles();
116
+ }
117
+ }, {
126
118
  key: "handleTransitionEnd",
127
119
  value: function handleTransitionEnd() {
128
120
  // when the sidebar finishes its transition, fire a "windowResized" event
@@ -141,16 +133,16 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
141
133
  return;
142
134
  }
143
135
 
144
- return /*#__PURE__*/React.createElement("div", {
145
- className: styles.actionableInfo
146
- }, /*#__PURE__*/React.createElement(Link, {
136
+ return jsx("div", {
137
+ css: this.props.styles.sidebar.actionableInfo
138
+ }, jsx(Link, {
147
139
  href: "#",
148
140
  margin: "small",
149
141
  forceButtonRole: false,
150
142
  onClick: this.scrollToTitle,
151
143
  renderIcon: _ref
152
- }, /*#__PURE__*/React.createElement(ScreenReaderContent, null, t('Navigate to title'))), /*#__PURE__*/React.createElement(PresentationContent, null, /*#__PURE__*/React.createElement("span", {
153
- className: styles.description,
144
+ }, jsx(ScreenReaderContent, null, t('Navigate to title'))), jsx(PresentationContent, null, jsx("span", {
145
+ css: this.props.styles.sidebar.description,
154
146
  onClick: this.scrollToTitle,
155
147
  tabIndex: "-1"
156
148
  }, this.props.title || t('Title'))));
@@ -162,17 +154,17 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
162
154
  return;
163
155
  }
164
156
 
165
- return /*#__PURE__*/React.createElement("div", {
166
- className: styles.actionableInfo
167
- }, /*#__PURE__*/React.createElement(Link, {
157
+ return jsx("div", {
158
+ css: this.props.styles.sidebar.actionableInfo
159
+ }, jsx(Link, {
168
160
  href: "#",
169
161
  margin: "small",
170
162
  forceButtonRole: false,
171
163
  onClick: this.scrollToInfo,
172
164
  renderIcon: _ref2,
173
165
  "data-automation": "sidebar-instructions-button"
174
- }, /*#__PURE__*/React.createElement(ScreenReaderContent, null, t('Navigate to instructions'))), /*#__PURE__*/React.createElement(PresentationContent, null, /*#__PURE__*/React.createElement("span", {
175
- className: styles.description,
166
+ }, jsx(ScreenReaderContent, null, t('Navigate to instructions'))), jsx(PresentationContent, null, jsx("span", {
167
+ css: this.props.styles.sidebar.description,
176
168
  "data-automation": "sidebar-instructions-text",
177
169
  onClick: this.scrollToInfo,
178
170
  tabIndex: "-1"
@@ -185,17 +177,17 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
185
177
  return;
186
178
  }
187
179
 
188
- return /*#__PURE__*/React.createElement("div", {
189
- className: styles.actionableInfo
190
- }, /*#__PURE__*/React.createElement(Link, {
180
+ return jsx("div", {
181
+ css: this.props.styles.sidebar.actionableInfo
182
+ }, jsx(Link, {
191
183
  href: "#",
192
184
  margin: "small",
193
185
  forceButtonRole: false,
194
186
  onClick: this.scrollToResults,
195
187
  renderIcon: _ref3,
196
188
  "data-automation": "sidebar-results-button"
197
- }, /*#__PURE__*/React.createElement(ScreenReaderContent, null, t('Navigate to results'))), /*#__PURE__*/React.createElement(PresentationContent, null, /*#__PURE__*/React.createElement("span", {
198
- className: styles.description,
189
+ }, jsx(ScreenReaderContent, null, t('Navigate to results'))), jsx(PresentationContent, null, jsx("span", {
190
+ css: this.props.styles.sidebar.description,
199
191
  "data-automation": "sidebar-results-text",
200
192
  onClick: this.scrollToResults,
201
193
  tabIndex: "-1"
@@ -204,20 +196,20 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
204
196
  }, {
205
197
  key: "renderSidebarHeader",
206
198
  value: function renderSidebarHeader() {
207
- var sidebarOpen = this.props.sidebarOpen;
199
+ var _this$props = this.props,
200
+ sidebarOpen = _this$props.sidebarOpen,
201
+ styles = _this$props.styles;
208
202
  var SidebarIcon = sidebarOpen ? IconMoveStartLine : IconMoveEndLine;
209
- var closedClasses = classNames(styles.questionNavigatorPadding, _defineProperty({}, styles.sidebarClosed, !this.props.sidebarOpen));
210
- var iconClasses = classNames(styles.iconWrapper, _defineProperty({}, styles.sidebarClosed, !sidebarOpen));
211
- return /*#__PURE__*/React.createElement("div", {
212
- className: classNames(styles.headerSpacing, styles.headerBottomBorder)
213
- }, /*#__PURE__*/React.createElement("div", {
214
- className: closedClasses
215
- }, /*#__PURE__*/React.createElement(Heading, {
203
+ return jsx("div", {
204
+ css: _objectSpread(_objectSpread({}, styles.headerSpacing), styles.headerBottomBorder)
205
+ }, jsx("div", {
206
+ css: styles.questionNavigatorPadding
207
+ }, jsx(Heading, {
216
208
  level: "h5",
217
209
  as: "h2"
218
- }, t('Question Navigator'))), /*#__PURE__*/React.createElement("div", {
219
- className: iconClasses
220
- }, /*#__PURE__*/React.createElement(IconButton, {
210
+ }, t('Question Navigator'))), jsx("div", {
211
+ css: styles.iconWrapper
212
+ }, jsx(IconButton, {
221
213
  onClick: this.toggleSidebar,
222
214
  size: "small",
223
215
  margin: "none",
@@ -231,15 +223,15 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
231
223
  }, {
232
224
  key: "renderTotalPointsPossible",
233
225
  value: function renderTotalPointsPossible() {
234
- var _this$props = this.props,
235
- sidebarOpen = _this$props.sidebarOpen,
236
- totalPointsPossible = _this$props.totalPointsPossible;
226
+ var _this$props2 = this.props,
227
+ sidebarOpen = _this$props2.sidebarOpen,
228
+ totalPointsPossible = _this$props2.totalPointsPossible;
237
229
 
238
230
  if (typeof totalPointsPossible !== 'number') {
239
231
  return null;
240
232
  }
241
233
 
242
- var pointsText = /*#__PURE__*/React.createElement(Text, {
234
+ var pointsText = jsx(Text, {
243
235
  key: "pointsText",
244
236
  size: "small",
245
237
  weight: "bold"
@@ -249,7 +241,7 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
249
241
  var responsiveText = pointsText;
250
242
 
251
243
  if (sidebarOpen) {
252
- responsiveText = /*#__PURE__*/React.createElement(Text, {
244
+ responsiveText = jsx(Text, {
253
245
  size: "small"
254
246
  }, t.rich('Total question points = <points/>', {
255
247
  points: function points() {
@@ -258,11 +250,11 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
258
250
  }));
259
251
  }
260
252
 
261
- return /*#__PURE__*/React.createElement(View, {
253
+ return jsx(View, {
262
254
  borderWidth: "0 0 small 0",
263
255
  padding: "small x-small",
264
256
  textAlign: sidebarOpen ? 'start' : 'center'
265
- }, /*#__PURE__*/React.createElement(AccessibleContent, {
257
+ }, jsx(AccessibleContent, {
266
258
  alt: t('Total question points = {totalPointsPossible}', {
267
259
  totalPointsPossible: totalPointsPossible
268
260
  })
@@ -271,38 +263,37 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
271
263
  }, {
272
264
  key: "renderPinned",
273
265
  value: function renderPinned() {
274
- var _this$props2 = this.props,
275
- sidebarOpen = _this$props2.sidebarOpen,
276
- taking = _this$props2.taking,
277
- pinnedItems = _this$props2.pinnedItems,
278
- scrollToItem = _this$props2.scrollToItem;
266
+ var _this$props3 = this.props,
267
+ sidebarOpen = _this$props3.sidebarOpen,
268
+ taking = _this$props3.taking,
269
+ pinnedItems = _this$props3.pinnedItems,
270
+ scrollToItem = _this$props3.scrollToItem,
271
+ styles = _this$props3.styles;
279
272
 
280
273
  if (!taking) {
281
274
  return;
282
275
  }
283
276
 
284
- var closedClasses = classNames(styles.buttonWrapper, _defineProperty({}, styles.sidebarClosed, !sidebarOpen));
285
- var iconClasses = classNames(styles.iconWrapper, _defineProperty({}, styles.sidebarClosed, !sidebarOpen));
286
- return /*#__PURE__*/React.createElement("div", {
287
- className: classNames(styles.pinnedSection, styles.headerBottomBorder)
288
- }, /*#__PURE__*/React.createElement("div", {
289
- className: styles.headerSpacing
290
- }, /*#__PURE__*/React.createElement("div", {
291
- className: closedClasses
292
- }, /*#__PURE__*/React.createElement(Heading, {
277
+ return jsx("div", {
278
+ css: _objectSpread(_objectSpread({}, styles.pinnedSection), styles.headerBottomBorder)
279
+ }, jsx("div", {
280
+ css: styles.headerSpacing
281
+ }, jsx("div", {
282
+ css: styles.buttonWrapper
283
+ }, jsx(Heading, {
293
284
  level: "h5",
294
285
  as: "h2"
295
- }, t('Pinned Questions'))), /*#__PURE__*/React.createElement("div", {
296
- className: iconClasses,
286
+ }, t('Pinned Questions'))), jsx("div", {
287
+ css: styles.iconWrapper,
297
288
  "aria-hidden": sidebarOpen
298
- }, /*#__PURE__*/React.createElement(Text, {
289
+ }, jsx(Text, {
299
290
  size: "x-small",
300
291
  "aria-label": t('Pinned Questions'),
301
292
  role: "img"
302
- }, _ref4))), /*#__PURE__*/React.createElement("div", {
303
- className: closedClasses
293
+ }, _ref4))), jsx("div", {
294
+ css: styles.buttonWrapper
304
295
  }, pinnedItems.map(function (pin) {
305
- return /*#__PURE__*/React.createElement(Pin, {
296
+ return jsx(Pin, {
306
297
  key: pin.sessionItemId,
307
298
  scrollToItem: scrollToItem,
308
299
  position: pin.position,
@@ -313,17 +304,18 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
313
304
  }, {
314
305
  key: "render",
315
306
  value: function render() {
316
- var sidebarClassList = classNames(styles.sidebar, _defineProperty({}, styles.sidebarIsOpen, this.props.sidebarOpen));
317
- return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement("div", {
318
- className: styles.commonContainer,
307
+ return jsx(View, null, jsx("div", {
308
+ css: this.props.styles.commonContainer,
319
309
  id: "sidebar-wrapper",
320
310
  tabIndex: "-1"
321
- }, /*#__PURE__*/React.createElement("div", {
322
- className: sidebarClassList,
311
+ }, jsx("div", {
312
+ css: this.props.styles.sidebar,
323
313
  onTransitionEnd: this.handleTransitionEnd,
324
314
  "data-automation": this.props.sidebarOpen ? 'sdk-sidebar-open' : 'sdk-sidebar-closed'
325
- }, /*#__PURE__*/React.createElement("div", {
326
- className: styles.sidebarWrapper,
315
+ }, jsx(Global, {
316
+ styles: this.props.styles.globalStyles
317
+ }), jsx("div", {
318
+ css: this.props.styles.sidebarWrapper,
327
319
  ref: this.refWrapper,
328
320
  role: this.props.role,
329
321
  onBlur: this.handleBlur // for some reason, without a click handler here, a random item will
@@ -331,8 +323,8 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
331
323
  ,
332
324
  onClick: noop,
333
325
  id: SIDEBAR_NAV_ID
334
- }, this.renderSidebarHeader(), this.renderTotalPointsPossible(), this.renderPinned(), this.renderTitle(), this.renderInstructions(), this.renderResults(), /*#__PURE__*/React.createElement("div", {
335
- className: styles.sidebarContent
326
+ }, this.renderSidebarHeader(), this.renderTotalPointsPossible(), this.renderPinned(), this.renderTitle(), this.renderInstructions(), this.renderResults(), jsx("div", {
327
+ css: this.props.styles.sidebarContent
336
328
  }, this.props.children)))));
337
329
  }
338
330
  }]);
@@ -354,7 +346,9 @@ export var Sidebar = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
354
346
  toggleSidebar: PropTypes.func.isRequired,
355
347
  screenreaderNotification: PropTypes.func.isRequired,
356
348
  totalPointsPossible: PropTypes.number,
357
- shouldCloseOnBlur: PropTypes.bool
349
+ shouldCloseOnBlur: PropTypes.bool,
350
+ makeStyles: PropTypes.func,
351
+ styles: PropTypes.object
358
352
  }, _class2.defaultProps = {
359
353
  grading: false,
360
354
  taking: false,
@@ -0,0 +1,117 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+
4
+ var generateStyle = function generateStyle(componentTheme, props) {
5
+ var _commonContainer;
6
+
7
+ var mq = "@media screen and (".concat(componentTheme.phoneBreakPoint, ")");
8
+ var mp = '@media print';
9
+ return {
10
+ sidebar: _objectSpread(_objectSpread(_defineProperty({
11
+ boxSizing: 'border-box',
12
+ width: componentTheme.sidebarWidthClosed,
13
+ backgroundColor: componentTheme.sidebarBackgroundColor,
14
+ border: "".concat(componentTheme.sidebarBorderWidth, " solid ").concat(componentTheme.sidebarBorderColor),
15
+ color: componentTheme.sidebarColor,
16
+ height: '100%',
17
+ overflow: 'hidden',
18
+ position: 'relative',
19
+ zIndex: componentTheme.sidebarZIndex,
20
+ transition: "".concat(componentTheme.sidebarTransitionDuration, " ease")
21
+ }, mq, {
22
+ position: 'absolute',
23
+ width: 0
24
+ }), props.sidebarOpen && _defineProperty({
25
+ width: componentTheme.sidebarWidthOpen,
26
+ opacity: 1
27
+ }, mq, {
28
+ width: '100vw',
29
+ maxWidth: '100vw'
30
+ })), {}, {
31
+ description: _objectSpread({
32
+ color: componentTheme.descriptionFontColor,
33
+ display: 'none',
34
+ fontSize: componentTheme.descriptionFontSize
35
+ }, props.sidebarOpen && {
36
+ cursor: 'pointer',
37
+ display: 'inline-block'
38
+ }),
39
+ actionableInfo: _objectSpread({
40
+ borderBottom: "".concat(componentTheme.sidebarHeaderBorderWidth, " solid ").concat(componentTheme.sidebarHeaderBorderColor),
41
+ borderRight: "".concat(componentTheme.actionableInfoBorderWidth, " solid ").concat(componentTheme.sidebarBackgroundColor),
42
+ textAlign: 'center',
43
+ ':hover': {
44
+ borderRight: "".concat(componentTheme.actionableInfoBorderWidth, " solid ").concat(componentTheme.actionableInfoHoverBorderColor)
45
+ }
46
+ }, props.sidebarOpen && {
47
+ textAlign: 'inherit'
48
+ })
49
+ }),
50
+
51
+ /* Decrease z-index when RCE editor is in fullscreen mode */
52
+ globalStyles: {
53
+ sidebar: {
54
+ zIndex: 0
55
+ }
56
+ },
57
+ sidebarWrapper: {
58
+ display: 'flex',
59
+ flexDirection: 'column',
60
+ height: '100%'
61
+ },
62
+ sidebarContent: {
63
+ overflowY: 'auto',
64
+ overflowX: 'hidden'
65
+ },
66
+ headerSpacing: {
67
+ display: 'flex',
68
+ flexDirection: 'row',
69
+ padding: componentTheme.headerSpacingPadding,
70
+ flexShrink: 0,
71
+ h2: {
72
+ paddingTop: '0.3em'
73
+ }
74
+ },
75
+ headerBottomBorder: {
76
+ borderBottom: "solid ".concat(componentTheme.sidebarHeaderBorderWidth),
77
+ borderColor: componentTheme.sidebarHeaderBorderColor
78
+ },
79
+ iconWrapper: _objectSpread({
80
+ marginLeft: 'auto'
81
+ }, !props.sidebarOpen && {
82
+ display: 'block',
83
+ margin: 'auto'
84
+ }),
85
+ pinnedSection: {
86
+ width: '100%',
87
+ backgroundColor: componentTheme.pinnedSectionBackgroundColor,
88
+ headerSpacing: {
89
+ flexGrow: 1
90
+ }
91
+ },
92
+ questionNavigatorPadding: _objectSpread({
93
+ paddingTop: componentTheme.questionNavigatorPadding
94
+ }, !props.sidebarOpen && {
95
+ display: 'none'
96
+ }),
97
+ buttonWrapper: _objectSpread({
98
+ button: {
99
+ paddingLeft: componentTheme.pinnedQuestionSpacing,
100
+ paddingBottom: componentTheme.pinnedQuestionSpacing,
101
+ fontSize: componentTheme.pinnedQuestionFontSize,
102
+ display: 'block'
103
+ }
104
+ }, !props.sidebarOpen && {
105
+ display: 'none'
106
+ }),
107
+ commonContainer: (_commonContainer = {
108
+ height: '100%'
109
+ }, _defineProperty(_commonContainer, mq, {
110
+ position: 'relative'
111
+ }), _defineProperty(_commonContainer, mp, {
112
+ display: 'none'
113
+ }), _commonContainer)
114
+ };
115
+ };
116
+
117
+ export default generateStyle;
@@ -1,5 +1,6 @@
1
1
  import { alpha } from '@instructure/ui-color-utils';
2
- export default function generator(_ref) {
2
+
3
+ var generateComponentTheme = function generateComponentTheme(_ref) {
3
4
  var colors = _ref.colors,
4
5
  spacing = _ref.spacing,
5
6
  typography = _ref.typography,
@@ -34,11 +35,6 @@ export default function generator(_ref) {
34
35
  focusBorderColor: colors.brand,
35
36
  focusOutlineColor: alpha(colors.brand, 50)
36
37
  };
37
- }
38
+ };
38
39
 
39
- generator.canvas = function (variables) {
40
- return {
41
- focusBorderColor: variables['ic-brand-primary'],
42
- focusOutlineColor: alpha(variables['ic-brand-primary'], 50)
43
- };
44
- };
40
+ export default generateComponentTheme;