@instructure/quiz-core 20.9.1-rc.3 → 20.9.1-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
2
  import _createClass from "@babel/runtime/helpers/esm/createClass";
4
3
  import _inherits from "@babel/runtime/helpers/esm/inherits";
@@ -6,21 +5,13 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
6
5
 
7
6
  var _dec, _class, _class2, _temp;
8
7
 
9
- import React, { Component } from 'react';
8
+ /** @jsx jsx */
9
+ import { Component } from 'react';
10
10
  import PropTypes from 'prop-types';
11
- import classnames from 'classnames';
12
- import { themeable } from '@instructure/ui-themeable';
13
- var styles = {
14
- componentId: 'KVDkV',
15
- template: function template(theme) {
16
- return "\n\n.KVDkV_gasz{display:flex;font-family:".concat(theme.fontFamily || 'inherit', ";height:100%;margin:0}\n\n@media screen and (--phoneBreakPoint){.KVDkV_caGd{-webkit-overflow-scrolling:touch}}\n\n.KVDkV_caGd{transition:").concat(theme.contentTransition || 'inherit', ";width:100%}\n\n.KVDkV_dxaC{overflow-x:hidden;overflow-y:auto}\n\n@media print{.KVDkV_gasz{display:block}}");
17
- },
18
- 'wrapper': 'KVDkV_gasz',
19
- 'content': 'KVDkV_caGd',
20
- 'scrollable': 'KVDkV_dxaC'
21
- };
22
- import theme from "./theme.js";
23
- export var Page = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
11
+ import { withStyle, jsx } from '@instructure/emotion';
12
+ import generateStyle from "./styles.js";
13
+ import generateComponentTheme from "./theme.js";
14
+ export var Page = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
24
15
  _inherits(Page, _Component);
25
16
 
26
17
  var _super = _createSuper(Page);
@@ -32,6 +23,16 @@ export var Page = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
32
23
  }
33
24
 
34
25
  _createClass(Page, [{
26
+ key: "componentDidMount",
27
+ value: function componentDidMount() {
28
+ this.props.makeStyles();
29
+ }
30
+ }, {
31
+ key: "componentDidUpdate",
32
+ value: function componentDidUpdate() {
33
+ this.props.makeStyles();
34
+ }
35
+ }, {
35
36
  key: "shouldRenderSidebar",
36
37
  value: function shouldRenderSidebar() {
37
38
  return this.props.sidebarComponent != null && this.props.sidebarOpen != null;
@@ -39,7 +40,7 @@ export var Page = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
39
40
  }, {
40
41
  key: "renderSidebar",
41
42
  value: function renderSidebar() {
42
- return /*#__PURE__*/React.createElement(this.props.sidebarComponent, {
43
+ return jsx(this.props.sidebarComponent, {
43
44
  role: this.props.sidebarRole,
44
45
  sidebarOpen: this.props.sidebarOpen,
45
46
  toggleSidebar: this.props.toggleSidebar
@@ -48,15 +49,14 @@ export var Page = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
48
49
  }, {
49
50
  key: "render",
50
51
  value: function render() {
51
- var childrenWrapperStyles = classnames(styles.content, _defineProperty({}, styles.scrollable, this.shouldRenderSidebar()));
52
- return /*#__PURE__*/React.createElement("div", {
53
- className: styles.wrapper
54
- }, this.shouldRenderSidebar() ? this.renderSidebar() : null, /*#__PURE__*/React.createElement("div", {
52
+ return jsx("div", {
53
+ css: this.props.styles.wrapper
54
+ }, this.shouldRenderSidebar() ? this.renderSidebar() : null, jsx("div", {
55
55
  // this component is focusable for SkipToContent
56
56
  tabIndex: "-1",
57
57
  ref: this.props.childrenWrapperRef,
58
58
  role: this.props.contentRole,
59
- className: childrenWrapperStyles
59
+ css: this.props.styles.childrenWrapper
60
60
  }, this.props.children));
61
61
  }
62
62
  }]);
@@ -70,7 +70,9 @@ export var Page = (_dec = themeable(theme, styles), _dec(_class = (_temp = _clas
70
70
  sidebarComponent: PropTypes.func,
71
71
  sidebarOpen: PropTypes.bool,
72
72
  sidebarRole: PropTypes.string,
73
- toggleSidebar: PropTypes.func
73
+ toggleSidebar: PropTypes.func,
74
+ styles: PropTypes.object,
75
+ makeStyles: PropTypes.func
74
76
  }, _class2.defaultProps = {
75
77
  childrenWrapperRef: function childrenWrapperRef() {},
76
78
  contentRole: 'main',
@@ -0,0 +1,26 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+
4
+ var generateStyle = function generateStyle(componentTheme, props) {
5
+ var printMq = '@media print';
6
+ var isScrollable = props.sidebarComponent != null && props.sidebarOpen != null;
7
+ return {
8
+ wrapper: _defineProperty({
9
+ display: 'flex',
10
+ fontFamily: componentTheme.fontFamily,
11
+ height: '100%',
12
+ margin: '0'
13
+ }, printMq, {
14
+ display: 'block'
15
+ }),
16
+ childrenWrapper: _objectSpread(_objectSpread({}, isScrollable && {
17
+ overflowX: 'hidden',
18
+ overflowY: 'auto'
19
+ }), {}, {
20
+ transition: componentTheme.contentTransition,
21
+ width: '100%'
22
+ })
23
+ };
24
+ };
25
+
26
+ export default generateStyle;
@@ -1,10 +1,11 @@
1
- export default function generator(_ref) {
1
+ var generateComponentTheme = function generateComponentTheme(_ref) {
2
2
  var typography = _ref.typography,
3
3
  breakpoints = _ref.breakpoints,
4
4
  transitions = _ref.transitions;
5
5
  return {
6
6
  fontFamily: typography.fontFamily,
7
- phoneBreakPoint: "max-width: ".concat(breakpoints.medium),
8
7
  contentTransition: "transform ".concat(transitions.duration)
9
8
  };
10
- }
9
+ };
10
+
11
+ export default generateComponentTheme;
@@ -6,25 +6,19 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
6
6
 
7
7
  var _dec, _class, _class2, _temp;
8
8
 
9
- import React, { Component } from 'react';
9
+ /** @jsx jsx */
10
+ import { Component } from 'react';
10
11
  import PropTypes from 'prop-types';
11
12
  import { IconHamburgerLine } from '@instructure/ui-icons';
12
13
  import { ScreenReaderContent } from '@instructure/ui-a11y-content';
13
- import { themeable } from '@instructure/ui-themeable';
14
+ import { withStyle, jsx } from '@instructure/emotion';
14
15
  import t from '@instructure/quiz-i18n/es/format-message';
15
- var styles = {
16
- componentId: 'cUqra',
17
- template: function template(theme) {
18
- return "\n\n.cUqra_nvdO{display:none;height:inherit}\n\n@media screen and (--phoneBreakPoint){.cUqra_nvdO{align-items:center;display:flex}}\n\n.cUqra_cdzo{background:transparent;border:none;color:".concat(theme.menuButtonColor || 'inherit', ";font-size:").concat(theme.menuButtonFontSize || 'inherit', ";height:inherit}\n\n.cUqra_cdzo:hover{opacity:").concat(theme.menuButtonHoverOpacity || 'inherit', "}");
19
- },
20
- 'title': 'cUqra_nvdO',
21
- 'menuButton': 'cUqra_cdzo'
22
- };
23
- import theme from "./theme.js";
24
-
25
- var _ref = /*#__PURE__*/React.createElement(IconHamburgerLine, null);
26
-
27
- export var HeaderMenuButton = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
16
+ import generateStyle from "./styles.js";
17
+ import generateComponentTheme from "./theme.js";
18
+
19
+ var _ref = jsx(IconHamburgerLine, null);
20
+
21
+ export var HeaderMenuButton = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
28
22
  _inherits(HeaderMenuButton, _Component);
29
23
 
30
24
  var _super = _createSuper(HeaderMenuButton);
@@ -62,14 +56,14 @@ export var HeaderMenuButton = (_dec = themeable(theme, styles), _dec(_class = (_
62
56
  return null;
63
57
  }
64
58
 
65
- return /*#__PURE__*/React.createElement("div", {
66
- className: styles.title
67
- }, /*#__PURE__*/React.createElement("button", {
68
- className: styles.menuButton,
59
+ return jsx("div", {
60
+ css: this.props.styles.title
61
+ }, jsx("button", {
62
+ css: this.props.styles.menuButton,
69
63
  onClick: this.toggleNavigator,
70
64
  tabIndex: "0",
71
65
  "data-automation": "sdk-hamburger-button"
72
- }, _ref, /*#__PURE__*/React.createElement(ScreenReaderContent, null, sidebarOpen ? t('Hide Question Navigator Menu') : t('Show Question Navigator Menu'))));
66
+ }, _ref, jsx(ScreenReaderContent, null, sidebarOpen ? t('Hide Question Navigator Menu') : t('Show Question Navigator Menu'))));
73
67
  }
74
68
  }]);
75
69
 
@@ -79,6 +73,7 @@ export var HeaderMenuButton = (_dec = themeable(theme, styles), _dec(_class = (_
79
73
  sidebarMenuClick: PropTypes.func.isRequired,
80
74
  hidden: PropTypes.bool.isRequired,
81
75
  sidebarOpen: PropTypes.bool.isRequired,
82
- screenreaderNotification: PropTypes.func.isRequired
76
+ screenreaderNotification: PropTypes.func.isRequired,
77
+ styles: PropTypes.object
83
78
  }, _temp)) || _class);
84
79
  export default HeaderMenuButton;
@@ -0,0 +1,27 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+
3
+ var generateStyle = function generateStyle(componentTheme) {
4
+ var mq = "@media screen and (".concat(componentTheme.phoneBreakPoint, ")");
5
+ return {
6
+ title: _defineProperty({
7
+ /* default to none - since toggle moved to sidebar on non mobile */
8
+ display: 'none',
9
+ height: 'inherit'
10
+ }, mq, {
11
+ display: 'flex',
12
+ alignItems: 'center'
13
+ }),
14
+ menuButton: {
15
+ border: 'none',
16
+ fontSize: componentTheme.menuButtonFontSize,
17
+ color: componentTheme.menuButtonColor,
18
+ background: 'transparent',
19
+ height: 'inherit',
20
+ '&:hover': {
21
+ opacity: componentTheme.menuButtonHoverOpacity
22
+ }
23
+ }
24
+ };
25
+ };
26
+
27
+ export default generateStyle;
@@ -1,4 +1,4 @@
1
- export default function generator(_ref) {
1
+ var generateComponentTheme = function generateComponentTheme(_ref) {
2
2
  var breakpoints = _ref.breakpoints,
3
3
  colors = _ref.colors,
4
4
  typography = _ref.typography;
@@ -8,4 +8,6 @@ export default function generator(_ref) {
8
8
  menuButtonColor: colors.licorice,
9
9
  menuButtonHoverOpacity: '0.6'
10
10
  };
11
- }
11
+ };
12
+
13
+ export default generateComponentTheme;
@@ -5,25 +5,16 @@ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
5
 
6
6
  var _dec, _class, _class2, _temp;
7
7
 
8
- import React, { Component } from 'react';
8
+ /** @jsx jsx */
9
+ import { Component } from 'react';
9
10
  import PropTypes from 'prop-types';
10
11
  import { Text } from '@instructure/ui-text';
11
- import { themeable } from '@instructure/ui-themeable';
12
+ import { withStyle, jsx } from '@instructure/emotion';
12
13
  import { DISPLAY_AS_SUMMARY_LIMIT } from "../presenter.js";
13
- var styles = {
14
- componentId: 'dhBxf',
15
- template: function template(theme) {
16
- return "\n\n.dhBxf_cltt{flex-grow:2}\n\n.dhBxf_eXht{flex-grow:1;text-align:right}\n\n[dir=ltr] .dhBxf_eXht,[dir=rtl] .dhBxf_eXht{text-align:right}\n\n.dhBxf_flYR{flex-grow:1}\n\n.dhBxf_dMbU{border:dotted ".concat(theme.itemContainerBorderWidth || 'inherit', ";border-color:").concat(theme.itemContainerBorderColor || 'inherit', ";color:").concat(theme.itemContainerColor || 'inherit', ";display:flex;padding:").concat(theme.itemContainerPadding || 'inherit', ";width:100%}\n\n.dhBxf_doNn{display:flex;flex-grow:1;margin:").concat(theme.summaryMargin || 'inherit', ";margin-left:").concat(theme.summaryMarginLeft || 'inherit', "}");
17
- },
18
- 'middleSection': 'dhBxf_cltt',
19
- 'endSection': 'dhBxf_eXht',
20
- 'questionCount': 'dhBxf_flYR',
21
- 'itemsContainer': 'dhBxf_dMbU',
22
- 'summary': 'dhBxf_doNn'
23
- };
24
- import theme from "./theme.js";
14
+ import generateStyle from "./styles.js";
15
+ import generateComponentTheme from "./theme.js";
25
16
  import t from '@instructure/quiz-i18n/es/format-message';
26
- export var Summary = (_dec = themeable(theme, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
17
+ export var Summary = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
27
18
  _inherits(Summary, _Component);
28
19
 
29
20
  var _super = _createSuper(Summary);
@@ -100,7 +91,7 @@ export var Summary = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
100
91
  isShowingItems = _this$props2.isShowingItems;
101
92
 
102
93
  if (!isDragging) {
103
- return /*#__PURE__*/React.createElement(Text, {
94
+ return jsx(Text, {
104
95
  size: "small",
105
96
  weight: "light"
106
97
  }, isShowingItems ? t('Collapse') : t('Expand'));
@@ -116,26 +107,29 @@ export var Summary = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
116
107
  }
117
108
 
118
109
  var id = "stimulus-summary-content-".concat(this.props.stimulusId);
119
- return /*#__PURE__*/React.createElement("div", {
110
+ return jsx("div", {
120
111
  role: "button",
121
112
  tabIndex: "0",
122
113
  "aria-expanded": this.props.isShowingItems,
123
114
  "aria-controls": id,
124
- className: styles.summary,
115
+ "data-testid": "summary",
116
+ css: this.props.styles.summary,
125
117
  onClick: this.handleShowItems,
126
118
  onKeyDown: this.handleKeyDown
127
- }, /*#__PURE__*/React.createElement("div", {
119
+ }, jsx("div", {
128
120
  id: id,
129
- className: styles.itemsContainer
130
- }, /*#__PURE__*/React.createElement("div", {
131
- className: styles.questionCount
132
- }, /*#__PURE__*/React.createElement(Text, {
121
+ css: this.props.styles.itemsContainer,
122
+ "data-testid": "items-container"
123
+ }, jsx("div", {
124
+ css: this.props.styles.questionCount,
125
+ "data-testid": "question-count"
126
+ }, jsx(Text, {
133
127
  size: "small",
134
128
  weight: "light"
135
- }, this.getCountText())), /*#__PURE__*/React.createElement("div", {
136
- className: styles.middleSection
137
- }), /*#__PURE__*/React.createElement("div", {
138
- className: styles.endSection
129
+ }, this.getCountText())), jsx("div", {
130
+ css: this.props.styles.middleSection
131
+ }), jsx("div", {
132
+ css: this.props.styles.endSection
139
133
  }, this.renderEndSectionContent())));
140
134
  }
141
135
  }]);
@@ -152,7 +146,8 @@ export var Summary = (_dec = themeable(theme, styles), _dec(_class = (_temp = _c
152
146
  isShowingItems: PropTypes.bool,
153
147
  stimulusId: PropTypes.string.isRequired,
154
148
  // from connected component
155
- setSidebarStimulusIsShowing: PropTypes.func.isRequired
149
+ setSidebarStimulusIsShowing: PropTypes.func.isRequired,
150
+ styles: PropTypes.object
156
151
  }, _class2.defaultProps = {
157
152
  isDragging: false,
158
153
  isShowingItems: false
@@ -0,0 +1,30 @@
1
+ var generateStyle = function generateStyle(componentTheme) {
2
+ return {
3
+ middleSection: {
4
+ flexGrow: '2'
5
+ },
6
+ endSection: {
7
+ flexGrow: '1',
8
+ textAlign: 'right'
9
+ },
10
+ questionCount: {
11
+ flexGrow: '1'
12
+ },
13
+ itemsContainer: {
14
+ color: componentTheme.itemContainerColor,
15
+ display: 'flex',
16
+ width: '100%',
17
+ padding: componentTheme.itemContainerPadding,
18
+ border: "dotted ".concat(componentTheme.itemContainerBorderWidth),
19
+ borderColor: componentTheme.itemContainerBorderColor
20
+ },
21
+ summary: {
22
+ margin: componentTheme.summaryMargin,
23
+ marginLeft: componentTheme.summaryMarginLeft,
24
+ display: 'flex',
25
+ flexGrow: '1'
26
+ }
27
+ };
28
+ };
29
+
30
+ 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;
@@ -10,4 +10,6 @@ export default function generator(_ref) {
10
10
  summaryMargin: spacing.small,
11
11
  summaryMarginLeft: spacing.medium
12
12
  };
13
- }
13
+ };
14
+
15
+ export default generateComponentTheme;
@@ -2,15 +2,11 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = exports.Page = void 0;
11
9
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
11
 
16
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -19,28 +15,19 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
19
15
 
20
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
21
17
 
22
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
23
19
 
24
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
21
 
26
- var _classnames2 = _interopRequireDefault(require("classnames"));
22
+ var _emotion = require("@instructure/emotion");
27
23
 
28
- var _uiThemeable = require("@instructure/ui-themeable");
24
+ var _styles = _interopRequireDefault(require("./styles.js"));
29
25
 
30
26
  var _theme = _interopRequireDefault(require("./theme.js"));
31
27
 
32
28
  var _dec, _class, _class2, _temp;
33
29
 
34
- var styles = {
35
- componentId: 'KVDkV',
36
- template: function template(theme) {
37
- return "\n\n.KVDkV_gasz{display:flex;font-family:".concat(theme.fontFamily || 'inherit', ";height:100%;margin:0}\n\n@media screen and (--phoneBreakPoint){.KVDkV_caGd{-webkit-overflow-scrolling:touch}}\n\n.KVDkV_caGd{transition:").concat(theme.contentTransition || 'inherit', ";width:100%}\n\n.KVDkV_dxaC{overflow-x:hidden;overflow-y:auto}\n\n@media print{.KVDkV_gasz{display:block}}");
38
- },
39
- 'wrapper': 'KVDkV_gasz',
40
- 'content': 'KVDkV_caGd',
41
- 'scrollable': 'KVDkV_dxaC'
42
- };
43
- var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
30
+ var Page = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
44
31
  (0, _inherits2.default)(Page, _Component);
45
32
 
46
33
  var _super = (0, _createSuper2.default)(Page);
@@ -51,6 +38,16 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
51
38
  }
52
39
 
53
40
  (0, _createClass2.default)(Page, [{
41
+ key: "componentDidMount",
42
+ value: function componentDidMount() {
43
+ this.props.makeStyles();
44
+ }
45
+ }, {
46
+ key: "componentDidUpdate",
47
+ value: function componentDidUpdate() {
48
+ this.props.makeStyles();
49
+ }
50
+ }, {
54
51
  key: "shouldRenderSidebar",
55
52
  value: function shouldRenderSidebar() {
56
53
  return this.props.sidebarComponent != null && this.props.sidebarOpen != null;
@@ -58,7 +55,7 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
58
55
  }, {
59
56
  key: "renderSidebar",
60
57
  value: function renderSidebar() {
61
- return /*#__PURE__*/_react.default.createElement(this.props.sidebarComponent, {
58
+ return (0, _emotion.jsx)(this.props.sidebarComponent, {
62
59
  role: this.props.sidebarRole,
63
60
  sidebarOpen: this.props.sidebarOpen,
64
61
  toggleSidebar: this.props.toggleSidebar
@@ -67,15 +64,14 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
67
64
  }, {
68
65
  key: "render",
69
66
  value: function render() {
70
- var childrenWrapperStyles = (0, _classnames2.default)(styles.content, (0, _defineProperty2.default)({}, styles.scrollable, this.shouldRenderSidebar()));
71
- return /*#__PURE__*/_react.default.createElement("div", {
72
- className: styles.wrapper
73
- }, this.shouldRenderSidebar() ? this.renderSidebar() : null, /*#__PURE__*/_react.default.createElement("div", {
67
+ return (0, _emotion.jsx)("div", {
68
+ css: this.props.styles.wrapper
69
+ }, this.shouldRenderSidebar() ? this.renderSidebar() : null, (0, _emotion.jsx)("div", {
74
70
  // this component is focusable for SkipToContent
75
71
  tabIndex: "-1",
76
72
  ref: this.props.childrenWrapperRef,
77
73
  role: this.props.contentRole,
78
- className: childrenWrapperStyles
74
+ css: this.props.styles.childrenWrapper
79
75
  }, this.props.children));
80
76
  }
81
77
  }]);
@@ -88,7 +84,9 @@ var Page = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_cl
88
84
  sidebarComponent: _propTypes.default.func,
89
85
  sidebarOpen: _propTypes.default.bool,
90
86
  sidebarRole: _propTypes.default.string,
91
- toggleSidebar: _propTypes.default.func
87
+ toggleSidebar: _propTypes.default.func,
88
+ styles: _propTypes.default.object,
89
+ makeStyles: _propTypes.default.func
92
90
  }, _class2.defaultProps = {
93
91
  childrenWrapperRef: function childrenWrapperRef() {},
94
92
  contentRole: 'main',
@@ -0,0 +1,37 @@
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 _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var generateStyle = function generateStyle(componentTheme, props) {
15
+ var printMq = '@media print';
16
+ var isScrollable = props.sidebarComponent != null && props.sidebarOpen != null;
17
+ return {
18
+ wrapper: (0, _defineProperty2.default)({
19
+ display: 'flex',
20
+ fontFamily: componentTheme.fontFamily,
21
+ height: '100%',
22
+ margin: '0'
23
+ }, printMq, {
24
+ display: 'block'
25
+ }),
26
+ childrenWrapper: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, isScrollable && {
27
+ overflowX: 'hidden',
28
+ overflowY: 'auto'
29
+ }), {}, {
30
+ transition: componentTheme.contentTransition,
31
+ width: '100%'
32
+ })
33
+ };
34
+ };
35
+
36
+ var _default = generateStyle;
37
+ exports.default = _default;
@@ -3,15 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var typography = _ref.typography,
10
10
  breakpoints = _ref.breakpoints,
11
11
  transitions = _ref.transitions;
12
12
  return {
13
13
  fontFamily: typography.fontFamily,
14
- phoneBreakPoint: "max-width: ".concat(breakpoints.medium),
15
14
  contentTransition: "transform ".concat(transitions.duration)
16
15
  };
17
- }
16
+ };
17
+
18
+ var _default = generateComponentTheme;
19
+ exports.default = _default;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -19,7 +17,7 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
19
17
 
20
18
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
21
19
 
22
- var _react = _interopRequireWildcard(require("react"));
20
+ var _react = require("react");
23
21
 
24
22
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
23
 
@@ -27,26 +25,19 @@ var _uiIcons = require("@instructure/ui-icons");
27
25
 
28
26
  var _uiA11yContent = require("@instructure/ui-a11y-content");
29
27
 
30
- var _uiThemeable = require("@instructure/ui-themeable");
28
+ var _emotion = require("@instructure/emotion");
31
29
 
32
30
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
33
31
 
32
+ var _styles = _interopRequireDefault(require("./styles.js"));
33
+
34
34
  var _theme = _interopRequireDefault(require("./theme.js"));
35
35
 
36
36
  var _dec, _class, _class2, _temp;
37
37
 
38
- var styles = {
39
- componentId: 'cUqra',
40
- template: function template(theme) {
41
- return "\n\n.cUqra_nvdO{display:none;height:inherit}\n\n@media screen and (--phoneBreakPoint){.cUqra_nvdO{align-items:center;display:flex}}\n\n.cUqra_cdzo{background:transparent;border:none;color:".concat(theme.menuButtonColor || 'inherit', ";font-size:").concat(theme.menuButtonFontSize || 'inherit', ";height:inherit}\n\n.cUqra_cdzo:hover{opacity:").concat(theme.menuButtonHoverOpacity || 'inherit', "}");
42
- },
43
- 'title': 'cUqra_nvdO',
44
- 'menuButton': 'cUqra_cdzo'
45
- };
46
-
47
- var _ref = /*#__PURE__*/_react.default.createElement(_uiIcons.IconHamburgerLine, null);
38
+ var _ref = (0, _emotion.jsx)(_uiIcons.IconHamburgerLine, null);
48
39
 
49
- var HeaderMenuButton = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
40
+ var HeaderMenuButton = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
50
41
  (0, _inherits2.default)(HeaderMenuButton, _Component);
51
42
 
52
43
  var _super = (0, _createSuper2.default)(HeaderMenuButton);
@@ -84,14 +75,14 @@ var HeaderMenuButton = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
84
75
  return null;
85
76
  }
86
77
 
87
- return /*#__PURE__*/_react.default.createElement("div", {
88
- className: styles.title
89
- }, /*#__PURE__*/_react.default.createElement("button", {
90
- className: styles.menuButton,
78
+ return (0, _emotion.jsx)("div", {
79
+ css: this.props.styles.title
80
+ }, (0, _emotion.jsx)("button", {
81
+ css: this.props.styles.menuButton,
91
82
  onClick: this.toggleNavigator,
92
83
  tabIndex: "0",
93
84
  "data-automation": "sdk-hamburger-button"
94
- }, _ref, /*#__PURE__*/_react.default.createElement(_uiA11yContent.ScreenReaderContent, null, sidebarOpen ? (0, _formatMessage.default)('Hide Question Navigator Menu') : (0, _formatMessage.default)('Show Question Navigator Menu'))));
85
+ }, _ref, (0, _emotion.jsx)(_uiA11yContent.ScreenReaderContent, null, sidebarOpen ? (0, _formatMessage.default)('Hide Question Navigator Menu') : (0, _formatMessage.default)('Show Question Navigator Menu'))));
95
86
  }
96
87
  }]);
97
88
  HeaderMenuButton.displayName = "HeaderMenuButton";
@@ -100,7 +91,8 @@ var HeaderMenuButton = (_dec = (0, _uiThemeable.themeable)(_theme.default, style
100
91
  sidebarMenuClick: _propTypes.default.func.isRequired,
101
92
  hidden: _propTypes.default.bool.isRequired,
102
93
  sidebarOpen: _propTypes.default.bool.isRequired,
103
- screenreaderNotification: _propTypes.default.func.isRequired
94
+ screenreaderNotification: _propTypes.default.func.isRequired,
95
+ styles: _propTypes.default.object
104
96
  }, _temp)) || _class);
105
97
  exports.HeaderMenuButton = HeaderMenuButton;
106
98
  var _default = HeaderMenuButton;
@@ -0,0 +1,37 @@
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var generateStyle = function generateStyle(componentTheme) {
13
+ var mq = "@media screen and (".concat(componentTheme.phoneBreakPoint, ")");
14
+ return {
15
+ title: (0, _defineProperty2.default)({
16
+ /* default to none - since toggle moved to sidebar on non mobile */
17
+ display: 'none',
18
+ height: 'inherit'
19
+ }, mq, {
20
+ display: 'flex',
21
+ alignItems: 'center'
22
+ }),
23
+ menuButton: {
24
+ border: 'none',
25
+ fontSize: componentTheme.menuButtonFontSize,
26
+ color: componentTheme.menuButtonColor,
27
+ background: 'transparent',
28
+ height: 'inherit',
29
+ '&:hover': {
30
+ opacity: componentTheme.menuButtonHoverOpacity
31
+ }
32
+ }
33
+ };
34
+ };
35
+
36
+ var _default = generateStyle;
37
+ exports.default = _default;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var breakpoints = _ref.breakpoints,
10
10
  colors = _ref.colors,
11
11
  typography = _ref.typography;
@@ -15,4 +15,7 @@ function generator(_ref) {
15
15
  menuButtonColor: colors.licorice,
16
16
  menuButtonHoverOpacity: '0.6'
17
17
  };
18
- }
18
+ };
19
+
20
+ var _default = generateComponentTheme;
21
+ exports.default = _default;
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -17,34 +15,25 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
17
15
 
18
16
  var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
17
 
20
- var _react = _interopRequireWildcard(require("react"));
18
+ var _react = require("react");
21
19
 
22
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
23
21
 
24
22
  var _uiText = require("@instructure/ui-text");
25
23
 
26
- var _uiThemeable = require("@instructure/ui-themeable");
24
+ var _emotion = require("@instructure/emotion");
27
25
 
28
26
  var _presenter = require("../presenter.js");
29
27
 
28
+ var _styles = _interopRequireDefault(require("./styles.js"));
29
+
30
30
  var _theme = _interopRequireDefault(require("./theme.js"));
31
31
 
32
32
  var _formatMessage = _interopRequireDefault(require("@instructure/quiz-i18n/es/format-message"));
33
33
 
34
34
  var _dec, _class, _class2, _temp;
35
35
 
36
- var styles = {
37
- componentId: 'dhBxf',
38
- template: function template(theme) {
39
- return "\n\n.dhBxf_cltt{flex-grow:2}\n\n.dhBxf_eXht{flex-grow:1;text-align:right}\n\n[dir=ltr] .dhBxf_eXht,[dir=rtl] .dhBxf_eXht{text-align:right}\n\n.dhBxf_flYR{flex-grow:1}\n\n.dhBxf_dMbU{border:dotted ".concat(theme.itemContainerBorderWidth || 'inherit', ";border-color:").concat(theme.itemContainerBorderColor || 'inherit', ";color:").concat(theme.itemContainerColor || 'inherit', ";display:flex;padding:").concat(theme.itemContainerPadding || 'inherit', ";width:100%}\n\n.dhBxf_doNn{display:flex;flex-grow:1;margin:").concat(theme.summaryMargin || 'inherit', ";margin-left:").concat(theme.summaryMarginLeft || 'inherit', "}");
40
- },
41
- 'middleSection': 'dhBxf_cltt',
42
- 'endSection': 'dhBxf_eXht',
43
- 'questionCount': 'dhBxf_flYR',
44
- 'itemsContainer': 'dhBxf_dMbU',
45
- 'summary': 'dhBxf_doNn'
46
- };
47
- var Summary = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
36
+ var Summary = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.default), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_Component) {
48
37
  (0, _inherits2.default)(Summary, _Component);
49
38
 
50
39
  var _super = (0, _createSuper2.default)(Summary);
@@ -121,7 +110,7 @@ var Summary = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(
121
110
  isShowingItems = _this$props2.isShowingItems;
122
111
 
123
112
  if (!isDragging) {
124
- return /*#__PURE__*/_react.default.createElement(_uiText.Text, {
113
+ return (0, _emotion.jsx)(_uiText.Text, {
125
114
  size: "small",
126
115
  weight: "light"
127
116
  }, isShowingItems ? (0, _formatMessage.default)('Collapse') : (0, _formatMessage.default)('Expand'));
@@ -137,26 +126,29 @@ var Summary = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(
137
126
  }
138
127
 
139
128
  var id = "stimulus-summary-content-".concat(this.props.stimulusId);
140
- return /*#__PURE__*/_react.default.createElement("div", {
129
+ return (0, _emotion.jsx)("div", {
141
130
  role: "button",
142
131
  tabIndex: "0",
143
132
  "aria-expanded": this.props.isShowingItems,
144
133
  "aria-controls": id,
145
- className: styles.summary,
134
+ "data-testid": "summary",
135
+ css: this.props.styles.summary,
146
136
  onClick: this.handleShowItems,
147
137
  onKeyDown: this.handleKeyDown
148
- }, /*#__PURE__*/_react.default.createElement("div", {
138
+ }, (0, _emotion.jsx)("div", {
149
139
  id: id,
150
- className: styles.itemsContainer
151
- }, /*#__PURE__*/_react.default.createElement("div", {
152
- className: styles.questionCount
153
- }, /*#__PURE__*/_react.default.createElement(_uiText.Text, {
140
+ css: this.props.styles.itemsContainer,
141
+ "data-testid": "items-container"
142
+ }, (0, _emotion.jsx)("div", {
143
+ css: this.props.styles.questionCount,
144
+ "data-testid": "question-count"
145
+ }, (0, _emotion.jsx)(_uiText.Text, {
154
146
  size: "small",
155
147
  weight: "light"
156
- }, this.getCountText())), /*#__PURE__*/_react.default.createElement("div", {
157
- className: styles.middleSection
158
- }), /*#__PURE__*/_react.default.createElement("div", {
159
- className: styles.endSection
148
+ }, this.getCountText())), (0, _emotion.jsx)("div", {
149
+ css: this.props.styles.middleSection
150
+ }), (0, _emotion.jsx)("div", {
151
+ css: this.props.styles.endSection
160
152
  }, this.renderEndSectionContent())));
161
153
  }
162
154
  }]);
@@ -172,7 +164,8 @@ var Summary = (_dec = (0, _uiThemeable.themeable)(_theme.default, styles), _dec(
172
164
  isShowingItems: _propTypes.default.bool,
173
165
  stimulusId: _propTypes.default.string.isRequired,
174
166
  // from connected component
175
- setSidebarStimulusIsShowing: _propTypes.default.func.isRequired
167
+ setSidebarStimulusIsShowing: _propTypes.default.func.isRequired,
168
+ styles: _propTypes.default.object
176
169
  }, _class2.defaultProps = {
177
170
  isDragging: false,
178
171
  isShowingItems: false
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var generateStyle = function generateStyle(componentTheme) {
9
+ return {
10
+ middleSection: {
11
+ flexGrow: '2'
12
+ },
13
+ endSection: {
14
+ flexGrow: '1',
15
+ textAlign: 'right'
16
+ },
17
+ questionCount: {
18
+ flexGrow: '1'
19
+ },
20
+ itemsContainer: {
21
+ color: componentTheme.itemContainerColor,
22
+ display: 'flex',
23
+ width: '100%',
24
+ padding: componentTheme.itemContainerPadding,
25
+ border: "dotted ".concat(componentTheme.itemContainerBorderWidth),
26
+ borderColor: componentTheme.itemContainerBorderColor
27
+ },
28
+ summary: {
29
+ margin: componentTheme.summaryMargin,
30
+ marginLeft: componentTheme.summaryMarginLeft,
31
+ display: 'flex',
32
+ flexGrow: '1'
33
+ }
34
+ };
35
+ };
36
+
37
+ var _default = generateStyle;
38
+ exports.default = _default;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = generator;
6
+ exports.default = void 0;
7
7
 
8
- function generator(_ref) {
8
+ var generateComponentTheme = function generateComponentTheme(_ref) {
9
9
  var colors = _ref.colors,
10
10
  spacing = _ref.spacing,
11
11
  borders = _ref.borders;
@@ -17,4 +17,7 @@ function generator(_ref) {
17
17
  summaryMargin: spacing.small,
18
18
  summaryMarginLeft: spacing.medium
19
19
  };
20
- }
20
+ };
21
+
22
+ var _default = generateComponentTheme;
23
+ exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/quiz-core",
3
- "version": "20.9.1-rc.3+6fbf38413",
3
+ "version": "20.9.1-rc.5+813bd63b2",
4
4
  "license": "MIT",
5
5
  "description": "The Quiz React SDK by Instructure Inc.",
6
6
  "author": "Instructure, Inc. Engineering and Product Design",
@@ -44,11 +44,11 @@
44
44
  "@instructure/emotion": "^8.51.0",
45
45
  "@instructure/grading-utils": "^1.0.0",
46
46
  "@instructure/outcomes-ui": "^3.1.0",
47
- "@instructure/quiz-common": "20.9.1-rc.3+6fbf38413",
48
- "@instructure/quiz-i18n": "20.9.1-rc.3+6fbf38413",
49
- "@instructure/quiz-interactions": "20.9.1-rc.3+6fbf38413",
50
- "@instructure/quiz-number-input": "20.9.1-rc.3+6fbf38413",
51
- "@instructure/quiz-rce": "20.9.1-rc.3+6fbf38413",
47
+ "@instructure/quiz-common": "20.9.1-rc.5+813bd63b2",
48
+ "@instructure/quiz-i18n": "20.9.1-rc.5+813bd63b2",
49
+ "@instructure/quiz-interactions": "20.9.1-rc.5+813bd63b2",
50
+ "@instructure/quiz-number-input": "20.9.1-rc.5+813bd63b2",
51
+ "@instructure/quiz-rce": "20.9.1-rc.5+813bd63b2",
52
52
  "@instructure/ui-a11y-content": "^8.51.0",
53
53
  "@instructure/ui-alerts": "^8.51.0",
54
54
  "@instructure/ui-avatar": "^8.51.0",
@@ -112,7 +112,7 @@
112
112
  "file-saver": "~2.0.5",
113
113
  "humps": "^2.0.0",
114
114
  "immutable": "^3.8.1",
115
- "instructure-validations": "20.9.1-rc.3+6fbf38413",
115
+ "instructure-validations": "20.9.1-rc.5+813bd63b2",
116
116
  "ipaddr.js": "^1.5.4",
117
117
  "isomorphic-fetch": "^2.2.0",
118
118
  "isuuid": "^0.1.0",
@@ -163,7 +163,7 @@
163
163
  "intl": "^1.2.4",
164
164
  "jquery": "^2.2.3",
165
165
  "most-subject": "^5.3.0",
166
- "quiz-presets": "20.9.1-rc.3+6fbf38413",
166
+ "quiz-presets": "20.9.1-rc.5+813bd63b2",
167
167
  "react": "^16.8.6",
168
168
  "react-addons-test-utils": "^15.6.2",
169
169
  "react-dom": "^16.8.6",
@@ -179,5 +179,5 @@
179
179
  "publishConfig": {
180
180
  "access": "public"
181
181
  },
182
- "gitHead": "6fbf384132d30d7ae8484ca964d30ba4f2e0d365"
182
+ "gitHead": "813bd63b275ad613c4a995bae449c2e610fe1526"
183
183
  }