@khanacademy/perseus 0.0.1 → 0.2.1

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 (507) hide show
  1. package/.babelrc.js +1 -1
  2. package/CHANGELOG.md +29 -0
  3. package/dist/es/index.css +4361 -0
  4. package/dist/es/index.js +7 -1
  5. package/dist/es/index.js.map +1 -1
  6. package/dist/index.css +4361 -0
  7. package/dist/index.js +7 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/strings.js +148 -46
  10. package/package.json +50 -4
  11. package/src/README.md +35 -0
  12. package/src/__stories__/item-renderer.stories.jsx +27 -0
  13. package/src/__stories__/server-item-renderer.stories.jsx +27 -0
  14. package/src/__testdata__/item-renderer_testdata.js +161 -0
  15. package/src/__testdata__/renderer_testdata.js +123 -0
  16. package/src/__tests__/__snapshots__/item-renderer_test.jsx.snap +233 -0
  17. package/src/__tests__/__snapshots__/perseus-markdown_test.jsx.snap +516 -0
  18. package/src/__tests__/__snapshots__/pure-markdown_test.js.snap +113 -0
  19. package/src/__tests__/__snapshots__/renderer_test.jsx.snap +576 -0
  20. package/src/__tests__/__snapshots__/server-item-renderer_test.jsx.snap +306 -0
  21. package/src/__tests__/a11y_test.jsx +304 -0
  22. package/src/__tests__/item-renderer_test.jsx +892 -0
  23. package/src/__tests__/mock-asset-loading-widget.jsx +57 -0
  24. package/src/__tests__/mock-widget.jsx +35 -0
  25. package/src/__tests__/perseus-markdown_test.jsx +747 -0
  26. package/src/__tests__/pure-markdown_test.js +552 -0
  27. package/src/__tests__/renderability_test.jsx +481 -0
  28. package/src/__tests__/renderer-api_test.jsx +333 -0
  29. package/src/__tests__/renderer_test.jsx +1792 -0
  30. package/src/__tests__/server-item-renderer_test.jsx +516 -0
  31. package/src/__tests__/test-items/image-item.js +25 -0
  32. package/src/__tests__/test-items/input-number-1-item.js +27 -0
  33. package/src/__tests__/test-items/input-number-2-item.js +39 -0
  34. package/src/__tests__/test-items/table-item.js +30 -0
  35. package/src/__tests__/tex-wrangler_test.js +83 -0
  36. package/src/__tests__/util_test.js +41 -0
  37. package/src/a11y.js +46 -0
  38. package/src/all-widgets.js +9 -0
  39. package/src/article-renderer.jsx +215 -0
  40. package/src/asset-context.js +30 -0
  41. package/src/basic-widgets.js +13 -0
  42. package/src/components/__stories__/button-group.stories.jsx +61 -0
  43. package/src/components/__stories__/fixed-to-responsive.stories.jsx +132 -0
  44. package/src/components/__stories__/graph.stories.jsx +27 -0
  45. package/src/components/__stories__/graphie.stories.jsx +28 -0
  46. package/src/components/__stories__/hud.stories.jsx +36 -0
  47. package/src/components/__stories__/icon.stories.jsx +56 -0
  48. package/src/components/__stories__/image-loader.stories.jsx +60 -0
  49. package/src/components/__stories__/info-tip.stories.jsx +33 -0
  50. package/src/components/__stories__/inline-icon.stories.jsx +39 -0
  51. package/src/components/__stories__/input-with-examples.stories.jsx +51 -0
  52. package/src/components/__stories__/lint.stories.jsx +40 -0
  53. package/src/components/__stories__/math-input.stories.jsx +29 -0
  54. package/src/components/__stories__/math-output.stories.jsx +24 -0
  55. package/src/components/__stories__/multi-button-group.stories.jsx +69 -0
  56. package/src/components/__stories__/number-input.stories.jsx +42 -0
  57. package/src/components/__stories__/possible-answers.stories.jsx +22 -0
  58. package/src/components/__stories__/prop-check-box.stories.jsx +62 -0
  59. package/src/components/__stories__/range-input.stories.jsx +28 -0
  60. package/src/components/__stories__/simple-keypad-input.stories.jsx +28 -0
  61. package/src/components/__stories__/sortable.stories.jsx +73 -0
  62. package/src/components/__stories__/stub-tag-editor.stories.jsx +44 -0
  63. package/src/components/__stories__/svg-image.stories.jsx +60 -0
  64. package/src/components/__stories__/tex.stories.jsx +18 -0
  65. package/src/components/__stories__/text-buttons.stories.jsx +51 -0
  66. package/src/components/__stories__/text-input.stories.jsx +34 -0
  67. package/src/components/__stories__/text-list-editor.stories.jsx +33 -0
  68. package/src/components/__stories__/zoomable-tex.stories.jsx +39 -0
  69. package/src/components/__stories__/zoomable.stories.jsx +40 -0
  70. package/src/components/__testdata__/sorter_testdata.js +20 -0
  71. package/src/components/__tests__/__snapshots__/sortable_test.jsx.snap +79 -0
  72. package/src/components/__tests__/__snapshots__/sorter_test.jsx.snap +297 -0
  73. package/src/components/__tests__/number-input_test.jsx +112 -0
  74. package/src/components/__tests__/sortable_test.jsx +234 -0
  75. package/src/components/__tests__/sorter_test.jsx +111 -0
  76. package/src/components/__tests__/zoomable_test.jsx +388 -0
  77. package/src/components/button-group.jsx +131 -0
  78. package/src/components/constants.js +15 -0
  79. package/src/components/fixed-to-responsive.jsx +164 -0
  80. package/src/components/graph.jsx +415 -0
  81. package/src/components/graphie-classes.jsx +148 -0
  82. package/src/components/graphie-movables.jsx +342 -0
  83. package/src/components/graphie.jsx +353 -0
  84. package/src/components/highlighting/highlightable-content.jsx +245 -0
  85. package/src/components/highlighting/highlights.js +208 -0
  86. package/src/components/highlighting/ranges.js +299 -0
  87. package/src/components/highlighting/types.js +73 -0
  88. package/src/components/highlighting/ui/highlight-renderer.jsx +179 -0
  89. package/src/components/highlighting/ui/highlight-set-renderer.jsx +190 -0
  90. package/src/components/highlighting/ui/highlight-tooltip.jsx +153 -0
  91. package/src/components/highlighting/ui/highlighting-ui.jsx +163 -0
  92. package/src/components/highlighting/ui/selection-tracker.jsx +195 -0
  93. package/src/components/highlighting/ui/types.js +21 -0
  94. package/src/components/highlighting/ui/util.js +166 -0
  95. package/src/components/highlighting/word-indexer.jsx +155 -0
  96. package/src/components/hud.jsx +179 -0
  97. package/src/components/icon.jsx +149 -0
  98. package/src/components/image-loader.jsx +175 -0
  99. package/src/components/info-tip/info-tip.jsx +146 -0
  100. package/src/components/info-tip.jsx +38 -0
  101. package/src/components/inline-icon.jsx +81 -0
  102. package/src/components/input-with-examples.jsx +231 -0
  103. package/src/components/lint.jsx +454 -0
  104. package/src/components/math-input.jsx +282 -0
  105. package/src/components/math-output.jsx +128 -0
  106. package/src/components/multi-button-group.jsx +137 -0
  107. package/src/components/new-tooltip/README.md +110 -0
  108. package/src/components/new-tooltip/__stories__/flexible-position.stories.jsx +437 -0
  109. package/src/components/new-tooltip/__stories__/new-tooltip.stories.jsx +665 -0
  110. package/src/components/new-tooltip/__stories__/tooltip-arrow.stories.jsx +70 -0
  111. package/src/components/new-tooltip/__stories__/tooltip-bubble.stories.jsx +98 -0
  112. package/src/components/new-tooltip/__tests__/style-constants_test.js +8 -0
  113. package/src/components/new-tooltip/__tests__/util_test.js +47 -0
  114. package/src/components/new-tooltip/flexible-position.jsx +182 -0
  115. package/src/components/new-tooltip/new-tooltip.jsx +399 -0
  116. package/src/components/new-tooltip/style-constants.js +13 -0
  117. package/src/components/new-tooltip/tooltip-arrow.jsx +184 -0
  118. package/src/components/new-tooltip/tooltip-bubble.jsx +223 -0
  119. package/src/components/new-tooltip/tooltip-portal.jsx +101 -0
  120. package/src/components/new-tooltip/tooltip-positioner.jsx +529 -0
  121. package/src/components/new-tooltip/types.js +183 -0
  122. package/src/components/new-tooltip/util.js +27 -0
  123. package/src/components/number-input.jsx +253 -0
  124. package/src/components/possible-answers.jsx +36 -0
  125. package/src/components/prop-check-box.jsx +80 -0
  126. package/src/components/range-input.jsx +61 -0
  127. package/src/components/simple-keypad-input.jsx +91 -0
  128. package/src/components/sortable.jsx +873 -0
  129. package/src/components/stub-tag-editor.jsx +54 -0
  130. package/src/components/svg-image.jsx +762 -0
  131. package/src/components/tex-buttons.jsx +322 -0
  132. package/src/components/tex.jsx +70 -0
  133. package/src/components/text-input.jsx +82 -0
  134. package/src/components/text-list-editor.jsx +157 -0
  135. package/src/components/tooltip.jsx +395 -0
  136. package/src/components/visibility-observer/__stories__/visibility-observer.stories.jsx +140 -0
  137. package/src/components/visibility-observer/get-scroll-parent.js +45 -0
  138. package/src/components/visibility-observer/visibility-observer.js +109 -0
  139. package/src/components/visibility-observer/visibility-observer.jsx +123 -0
  140. package/src/components/zoomable-tex.jsx +70 -0
  141. package/src/components/zoomable.jsx +304 -0
  142. package/src/components.js +17 -0
  143. package/src/dependencies.js +22 -0
  144. package/src/error-boundary.jsx +48 -0
  145. package/src/extra-widgets.js +75 -0
  146. package/src/gorgon/README +40 -0
  147. package/src/gorgon/__tests__/matcher_test.js +497 -0
  148. package/src/gorgon/__tests__/rule_test.js +101 -0
  149. package/src/gorgon/__tests__/rules_test.js +487 -0
  150. package/src/gorgon/__tests__/selector-parser_test.js +52 -0
  151. package/src/gorgon/__tests__/tree-transformer_test.js +446 -0
  152. package/src/gorgon/gorgon.js +290 -0
  153. package/src/gorgon/proptypes.js +29 -0
  154. package/src/gorgon/rule.js +413 -0
  155. package/src/gorgon/rules/absolute-url.js +24 -0
  156. package/src/gorgon/rules/all-rules.js +72 -0
  157. package/src/gorgon/rules/blockquoted-math.js +10 -0
  158. package/src/gorgon/rules/blockquoted-widget.js +10 -0
  159. package/src/gorgon/rules/double-spacing-after-terminal.js +12 -0
  160. package/src/gorgon/rules/extra-content-spacing.js +12 -0
  161. package/src/gorgon/rules/heading-level-1.js +14 -0
  162. package/src/gorgon/rules/heading-level-skip.js +20 -0
  163. package/src/gorgon/rules/heading-sentence-case.js +11 -0
  164. package/src/gorgon/rules/heading-title-case.js +63 -0
  165. package/src/gorgon/rules/image-alt-text.js +21 -0
  166. package/src/gorgon/rules/image-in-table.js +10 -0
  167. package/src/gorgon/rules/image-spaces-around-urls.js +35 -0
  168. package/src/gorgon/rules/image-widget.js +50 -0
  169. package/src/gorgon/rules/link-click-here.js +11 -0
  170. package/src/gorgon/rules/lint-utils.js +48 -0
  171. package/src/gorgon/rules/long-paragraph.js +14 -0
  172. package/src/gorgon/rules/math-adjacent.js +10 -0
  173. package/src/gorgon/rules/math-align-extra-break.js +11 -0
  174. package/src/gorgon/rules/math-align-linebreaks.js +43 -0
  175. package/src/gorgon/rules/math-empty.js +10 -0
  176. package/src/gorgon/rules/math-font-size.js +12 -0
  177. package/src/gorgon/rules/math-frac.js +10 -0
  178. package/src/gorgon/rules/math-nested.js +11 -0
  179. package/src/gorgon/rules/math-starts-with-space.js +12 -0
  180. package/src/gorgon/rules/math-text-empty.js +10 -0
  181. package/src/gorgon/rules/math-without-dollars.js +14 -0
  182. package/src/gorgon/rules/nested-lists.js +11 -0
  183. package/src/gorgon/rules/profanity.js +10 -0
  184. package/src/gorgon/rules/table-missing-cells.js +20 -0
  185. package/src/gorgon/rules/unbalanced-code-delimiters.js +14 -0
  186. package/src/gorgon/rules/unescaped-dollar.js +10 -0
  187. package/src/gorgon/rules/widget-in-table.js +10 -0
  188. package/src/gorgon/selector.js +506 -0
  189. package/src/gorgon/tree-transformer.js +588 -0
  190. package/src/hint-renderer.jsx +159 -0
  191. package/src/hints-renderer.jsx +359 -0
  192. package/src/icon-paths.js +120 -0
  193. package/src/index.js +149 -2
  194. package/src/init.js +49 -0
  195. package/src/interaction-tracker.js +60 -0
  196. package/src/interactive2/__tests__/movable-mock.js +48 -0
  197. package/src/interactive2/__tests__/movable-point_test.js +146 -0
  198. package/src/interactive2/interactive-util.js +152 -0
  199. package/src/interactive2/movable-helper-methods.js +160 -0
  200. package/src/interactive2/movable-line-options.js +392 -0
  201. package/src/interactive2/movable-line.js +322 -0
  202. package/src/interactive2/movable-point-options.js +190 -0
  203. package/src/interactive2/movable-point.jsx +603 -0
  204. package/src/interactive2/movable-polygon-options.js +351 -0
  205. package/src/interactive2/movable-polygon.js +368 -0
  206. package/src/interactive2/movable.js +273 -0
  207. package/src/interactive2/objective_.js +79 -0
  208. package/src/interactive2/types.js +3 -0
  209. package/src/interactive2/wrapped-defaults.js +86 -0
  210. package/src/interactive2/wrapped-ellipse.js +87 -0
  211. package/src/interactive2/wrapped-line.js +109 -0
  212. package/src/interactive2/wrapped-path.js +47 -0
  213. package/src/interactive2.js +91 -0
  214. package/src/item-renderer.jsx +518 -0
  215. package/src/item-version.js +12 -0
  216. package/src/jipt-paragraphs.js +44 -0
  217. package/src/jquery.mobile.vmouse.js +545 -0
  218. package/src/keypad-context.js +33 -0
  219. package/src/loading-context.js +20 -0
  220. package/src/logging/log.js +107 -0
  221. package/src/logging/log_test.js +41 -0
  222. package/src/mixins/changeable.jsx +115 -0
  223. package/src/mixins/editor-jsonify.jsx +13 -0
  224. package/src/mixins/provide-keypad.jsx +129 -0
  225. package/src/mixins/widget-jsonify-deprecated.jsx +23 -0
  226. package/src/mixins/widget-prop-blacklist.js +36 -0
  227. package/src/multi-items/__stories__/multi-renderer.stories.js +88 -0
  228. package/src/multi-items/__testdata__/multi-renderer_testdata.js +174 -0
  229. package/src/multi-items/__tests__/__snapshots__/multi-renderer_test.js.snap +994 -0
  230. package/src/multi-items/__tests__/items_test.js +245 -0
  231. package/src/multi-items/__tests__/multi-renderer_test.js +903 -0
  232. package/src/multi-items/__tests__/prop-type-builders_test.js +134 -0
  233. package/src/multi-items/__tests__/shapes_test.js +44 -0
  234. package/src/multi-items/__tests__/trees_test.js +316 -0
  235. package/src/multi-items/item-types.js +55 -0
  236. package/src/multi-items/items.js +176 -0
  237. package/src/multi-items/multi-renderer.jsx +543 -0
  238. package/src/multi-items/prop-type-builders.js +105 -0
  239. package/src/multi-items/shape-types.js +47 -0
  240. package/src/multi-items/shapes.js +53 -0
  241. package/src/multi-items/tree-types.js +42 -0
  242. package/src/multi-items/trees.js +345 -0
  243. package/src/multi-items.js +76 -0
  244. package/src/not-gorgon.js +129 -0
  245. package/src/perseus-api.jsx +270 -0
  246. package/src/perseus-env.js +26 -0
  247. package/src/perseus-error.js +19 -0
  248. package/src/perseus-markdown.jsx +433 -0
  249. package/src/perseus-types.js +1597 -0
  250. package/src/pure-markdown.js +347 -0
  251. package/src/question-paragraph.jsx +30 -0
  252. package/src/renderability.jsx +108 -0
  253. package/src/renderer.jsx +1932 -0
  254. package/src/server-item-renderer.jsx +467 -0
  255. package/src/sigfigs.jsx +492 -0
  256. package/src/styles/articles.less +748 -0
  257. package/src/styles/constants.js +119 -0
  258. package/src/styles/global-constants.js +350 -0
  259. package/src/styles/global-styles.js +307 -0
  260. package/src/styles/khan-exercise.css +1304 -0
  261. package/src/styles/media-queries.js +48 -0
  262. package/src/styles/perseus-renderer.less +1007 -0
  263. package/src/styles/shared.js +132 -0
  264. package/src/styles/util.less +47 -0
  265. package/src/styles/variables.boostrap.less +301 -0
  266. package/src/styles/variables.less +68 -0
  267. package/src/styles/variables.shared.less +356 -0
  268. package/src/styles/widgets/categorizer.less +39 -0
  269. package/src/styles/widgets/definition.less +86 -0
  270. package/src/styles/widgets/dropdown.less +3 -0
  271. package/src/styles/widgets/expression.less +147 -0
  272. package/src/styles/widgets/graded-group.less +36 -0
  273. package/src/styles/widgets/grapher.less +11 -0
  274. package/src/styles/widgets/group.less +19 -0
  275. package/src/styles/widgets/image.less +29 -0
  276. package/src/styles/widgets/interactive-graph.less +61 -0
  277. package/src/styles/widgets/label-image.less +41 -0
  278. package/src/styles/widgets/matcher.less +8 -0
  279. package/src/styles/widgets/matrix.less +120 -0
  280. package/src/styles/widgets/measurer.less +20 -0
  281. package/src/styles/widgets/orderer.less +97 -0
  282. package/src/styles/widgets/passage.less +151 -0
  283. package/src/styles/widgets/plotter.less +33 -0
  284. package/src/styles/widgets/radio.less +52 -0
  285. package/src/styles/widgets/reaction-diagram.less +35 -0
  286. package/src/styles/widgets/sequence.less +5 -0
  287. package/src/styles/widgets/sortable.less +127 -0
  288. package/src/styles/widgets/table.less +56 -0
  289. package/src/styles/widgets/transformer.less +28 -0
  290. package/src/styles/widgets/unit.less +14 -0
  291. package/src/tex-wrangler.js +176 -0
  292. package/src/traversal.jsx +141 -0
  293. package/src/types.js +538 -0
  294. package/src/util/a11y.js +24 -0
  295. package/src/util/answer-types.js +862 -0
  296. package/src/util/answer-types_test.js +115 -0
  297. package/src/util/colors.js +94 -0
  298. package/src/util/fix-passage-refs.jsx +122 -0
  299. package/src/util/graph-utils.js +16 -0
  300. package/src/util/graphie.js +1586 -0
  301. package/src/util/interactive.js +4078 -0
  302. package/src/util/katex-preprocess.js +16 -0
  303. package/src/util/math.js +296 -0
  304. package/src/util/mobile-native-utils.js +14 -0
  305. package/src/util/mobile-native-utils_test.js +24 -0
  306. package/src/util/register-all-widgets-for-testing.js +12 -0
  307. package/src/util/scroll-utils.js +162 -0
  308. package/src/util/sizing-utils.js +46 -0
  309. package/src/util/tex.js +203 -0
  310. package/src/util/url-utils.js +36 -0
  311. package/src/util.js +990 -0
  312. package/src/version.js +11 -0
  313. package/src/widget-container.jsx +174 -0
  314. package/src/widgets/__stories__/categorizer.stories.jsx +15 -0
  315. package/src/widgets/__stories__/cs-program.stories.jsx +15 -0
  316. package/src/widgets/__stories__/definition.stories.jsx +38 -0
  317. package/src/widgets/__stories__/dropdown.stories.jsx +15 -0
  318. package/src/widgets/__stories__/explanation.stories.jsx +19 -0
  319. package/src/widgets/__stories__/expression.stories.jsx +26 -0
  320. package/src/widgets/__stories__/graded-group-set.stories.jsx +32 -0
  321. package/src/widgets/__stories__/graded-group.stories.jsx +32 -0
  322. package/src/widgets/__stories__/grapher.stories.jsx +47 -0
  323. package/src/widgets/__stories__/group.stories.jsx +15 -0
  324. package/src/widgets/__stories__/iframe.stories.jsx +15 -0
  325. package/src/widgets/__stories__/image.stories.jsx +62 -0
  326. package/src/widgets/__stories__/input-number.stories.jsx +90 -0
  327. package/src/widgets/__stories__/interaction.stories.jsx +15 -0
  328. package/src/widgets/__stories__/interactive-graph.stories.jsx +61 -0
  329. package/src/widgets/__stories__/matcher.stories.jsx +15 -0
  330. package/src/widgets/__stories__/matrix.stories.jsx +15 -0
  331. package/src/widgets/__stories__/number-line.stories.jsx +15 -0
  332. package/src/widgets/__stories__/numeric-input.stories.jsx +19 -0
  333. package/src/widgets/__stories__/orderer.stories.jsx +15 -0
  334. package/src/widgets/__stories__/passage-ref.stories.jsx +19 -0
  335. package/src/widgets/__stories__/passage.stories.jsx +19 -0
  336. package/src/widgets/__stories__/radio.stories.jsx +82 -0
  337. package/src/widgets/__stories__/sorter.stories.jsx +15 -0
  338. package/src/widgets/__stories__/transformer.stories.jsx +15 -0
  339. package/src/widgets/__stories__/unit.stories.jsx +45 -0
  340. package/src/widgets/__stories__/video-transcript-link.stories.jsx +24 -0
  341. package/src/widgets/__stories__/video.stories.jsx +15 -0
  342. package/src/widgets/__testdata__/categorizer_testdata.js +50 -0
  343. package/src/widgets/__testdata__/cs-program_testdata.js +28 -0
  344. package/src/widgets/__testdata__/dropdown_testdata.js +34 -0
  345. package/src/widgets/__testdata__/explanation_testdata.js +56 -0
  346. package/src/widgets/__testdata__/expression_testdata.js +95 -0
  347. package/src/widgets/__testdata__/graded-group-set_testdata.js +358 -0
  348. package/src/widgets/__testdata__/graded-group_testdata.js +79 -0
  349. package/src/widgets/__testdata__/grapher_testdata.js +376 -0
  350. package/src/widgets/__testdata__/group_testdata.js +156 -0
  351. package/src/widgets/__testdata__/iframe_testdata.js +36 -0
  352. package/src/widgets/__testdata__/image_testdata.js +38 -0
  353. package/src/widgets/__testdata__/input-number_testdata.js +73 -0
  354. package/src/widgets/__testdata__/interaction_testdata.js +264 -0
  355. package/src/widgets/__testdata__/interactive-graph_testdata.js +646 -0
  356. package/src/widgets/__testdata__/matcher_testdata.js +34 -0
  357. package/src/widgets/__testdata__/matrix_testdata.js +29 -0
  358. package/src/widgets/__testdata__/number-line_testdata.js +31 -0
  359. package/src/widgets/__testdata__/numeric-input_testdata.js +266 -0
  360. package/src/widgets/__testdata__/orderer_testdata.js +58 -0
  361. package/src/widgets/__testdata__/passage-ref_testdata.js +41 -0
  362. package/src/widgets/__testdata__/passage_testdata.js +71 -0
  363. package/src/widgets/__testdata__/radio_testdata.js +210 -0
  364. package/src/widgets/__testdata__/sorter_testdata.js +20 -0
  365. package/src/widgets/__testdata__/transformer_testdata.js +109 -0
  366. package/src/widgets/__testdata__/video_testdata.js +22 -0
  367. package/src/widgets/__tests__/__snapshots__/categorizer_test.jsx.snap +928 -0
  368. package/src/widgets/__tests__/__snapshots__/cs-program_test.jsx.snap +75 -0
  369. package/src/widgets/__tests__/__snapshots__/definition_test.js.snap +99 -0
  370. package/src/widgets/__tests__/__snapshots__/dropdown_test.jsx.snap +143 -0
  371. package/src/widgets/__tests__/__snapshots__/explanation_test.js.snap +473 -0
  372. package/src/widgets/__tests__/__snapshots__/expression_test.jsx.snap +38 -0
  373. package/src/widgets/__tests__/__snapshots__/graded-group-set-jipt_test.jsx.snap +754 -0
  374. package/src/widgets/__tests__/__snapshots__/graded-group-set_test.jsx.snap +310 -0
  375. package/src/widgets/__tests__/__snapshots__/graded-group_test.jsx.snap +863 -0
  376. package/src/widgets/__tests__/__snapshots__/grapher_test.jsx.snap +2880 -0
  377. package/src/widgets/__tests__/__snapshots__/group_test.jsx.snap +1154 -0
  378. package/src/widgets/__tests__/__snapshots__/iframe_test.jsx.snap +69 -0
  379. package/src/widgets/__tests__/__snapshots__/image_test.jsx.snap +388 -0
  380. package/src/widgets/__tests__/__snapshots__/input-number_test.jsx.snap +978 -0
  381. package/src/widgets/__tests__/__snapshots__/interaction_test.jsx.snap +311 -0
  382. package/src/widgets/__tests__/__snapshots__/interactive-graph_test.jsx.snap +2915 -0
  383. package/src/widgets/__tests__/__snapshots__/matcher_test.jsx.snap +1039 -0
  384. package/src/widgets/__tests__/__snapshots__/matrix_test.jsx.snap +450 -0
  385. package/src/widgets/__tests__/__snapshots__/number-line_test.jsx.snap +888 -0
  386. package/src/widgets/__tests__/__snapshots__/numeric-input_test.jsx.snap +930 -0
  387. package/src/widgets/__tests__/__snapshots__/orderer_test.jsx.snap +275 -0
  388. package/src/widgets/__tests__/__snapshots__/passage-ref_test.jsx.snap +446 -0
  389. package/src/widgets/__tests__/__snapshots__/passage_test.jsx.snap +1988 -0
  390. package/src/widgets/__tests__/__snapshots__/radio_test.jsx.snap +7107 -0
  391. package/src/widgets/__tests__/__snapshots__/video_test.jsx.snap +163 -0
  392. package/src/widgets/__tests__/categorizer_test.jsx +205 -0
  393. package/src/widgets/__tests__/cs-program_test.jsx +45 -0
  394. package/src/widgets/__tests__/definition_test.js +152 -0
  395. package/src/widgets/__tests__/dropdown_test.jsx +106 -0
  396. package/src/widgets/__tests__/explanation_test.js +199 -0
  397. package/src/widgets/__tests__/expression_test.jsx +439 -0
  398. package/src/widgets/__tests__/graded-group-set-jipt_test.jsx +33 -0
  399. package/src/widgets/__tests__/graded-group-set_test.jsx +270 -0
  400. package/src/widgets/__tests__/graded-group_test.jsx +233 -0
  401. package/src/widgets/__tests__/grapher.cypress.jsx +486 -0
  402. package/src/widgets/__tests__/grapher_test.jsx +35 -0
  403. package/src/widgets/__tests__/group_test.jsx +512 -0
  404. package/src/widgets/__tests__/iframe_test.jsx +47 -0
  405. package/src/widgets/__tests__/image_test.jsx +65 -0
  406. package/src/widgets/__tests__/input-number_test.jsx +360 -0
  407. package/src/widgets/__tests__/interaction_test.jsx +33 -0
  408. package/src/widgets/__tests__/interactive-graph.cypress.jsx +697 -0
  409. package/src/widgets/__tests__/interactive-graph_test.jsx +105 -0
  410. package/src/widgets/__tests__/matcher_test.jsx +157 -0
  411. package/src/widgets/__tests__/matrix_test.jsx +84 -0
  412. package/src/widgets/__tests__/number-line_test.jsx +81 -0
  413. package/src/widgets/__tests__/numeric-input_test.jsx +574 -0
  414. package/src/widgets/__tests__/orderer_test.jsx +75 -0
  415. package/src/widgets/__tests__/passage-ref_test.jsx +166 -0
  416. package/src/widgets/__tests__/passage_test.jsx +133 -0
  417. package/src/widgets/__tests__/radio/base-radio_test.jsx +82 -0
  418. package/src/widgets/__tests__/radio_test.jsx +651 -0
  419. package/src/widgets/__tests__/renderQuestion.jsx +66 -0
  420. package/src/widgets/__tests__/unit_test.jsx +144 -0
  421. package/src/widgets/__tests__/video_test.jsx +55 -0
  422. package/src/widgets/categorizer.jsx +338 -0
  423. package/src/widgets/cs-program.jsx +227 -0
  424. package/src/widgets/definition.jsx +141 -0
  425. package/src/widgets/dropdown.jsx +143 -0
  426. package/src/widgets/explanation.jsx +315 -0
  427. package/src/widgets/expression.jsx +652 -0
  428. package/src/widgets/graded-group-answer-bar.jsx +152 -0
  429. package/src/widgets/graded-group-set.jsx +285 -0
  430. package/src/widgets/graded-group.jsx +448 -0
  431. package/src/widgets/grapher/util.jsx +806 -0
  432. package/src/widgets/grapher.jsx +663 -0
  433. package/src/widgets/group.jsx +213 -0
  434. package/src/widgets/iframe.jsx +198 -0
  435. package/src/widgets/image.jsx +310 -0
  436. package/src/widgets/input-number.jsx +411 -0
  437. package/src/widgets/interaction/arrow-picker.jsx +39 -0
  438. package/src/widgets/interaction/color-picker.jsx +69 -0
  439. package/src/widgets/interaction/dash-picker.jsx +46 -0
  440. package/src/widgets/interaction/element-container.jsx +97 -0
  441. package/src/widgets/interaction.jsx +742 -0
  442. package/src/widgets/interactive-graph.jsx +2820 -0
  443. package/src/widgets/label-image/__stories__/answer-choices.stories.jsx +93 -0
  444. package/src/widgets/label-image/__stories__/marker.stories.jsx +172 -0
  445. package/src/widgets/label-image/answer-choices.jsx +311 -0
  446. package/src/widgets/label-image/marker.jsx +365 -0
  447. package/src/widgets/label-image/types.js +33 -0
  448. package/src/widgets/label-image.jsx +841 -0
  449. package/src/widgets/label-image_test.js +840 -0
  450. package/src/widgets/lights-puzzle.jsx +356 -0
  451. package/src/widgets/matcher.jsx +271 -0
  452. package/src/widgets/matrix.jsx +616 -0
  453. package/src/widgets/measurer.jsx +215 -0
  454. package/src/widgets/molecule/__tests__/layout_test.jsx +159 -0
  455. package/src/widgets/molecule/__tests__/parser_test.jsx +142 -0
  456. package/src/widgets/molecule/molecule-drawing.jsx +175 -0
  457. package/src/widgets/molecule/molecule-layout.jsx +367 -0
  458. package/src/widgets/molecule/smiles-parser.jsx +300 -0
  459. package/src/widgets/molecule.jsx +172 -0
  460. package/src/widgets/number-line.jsx +858 -0
  461. package/src/widgets/numeric-input.jsx +622 -0
  462. package/src/widgets/orderer.jsx +753 -0
  463. package/src/widgets/passage/__tests__/passage-markdown_test.jsx +382 -0
  464. package/src/widgets/passage/get-line-height-for-node.js +10 -0
  465. package/src/widgets/passage/passage-markdown.jsx +416 -0
  466. package/src/widgets/passage-ref-target.jsx +70 -0
  467. package/src/widgets/passage-ref.jsx +198 -0
  468. package/src/widgets/passage.jsx +601 -0
  469. package/src/widgets/plotter.jsx +1198 -0
  470. package/src/widgets/radio/__stories__/base-radio.stories.jsx +40 -0
  471. package/src/widgets/radio/__stories__/choice-icon.stories.jsx +157 -0
  472. package/src/widgets/radio/__stories__/choice-none-above.stories.jsx +26 -0
  473. package/src/widgets/radio/__stories__/cross-out-button.stories.jsx +64 -0
  474. package/src/widgets/radio/__stories__/cross-out-menu.stories.jsx +59 -0
  475. package/src/widgets/radio/__stories__/cross-out-tooltip.stories.jsx +59 -0
  476. package/src/widgets/radio/__stories__/focus-ring.stories.jsx +38 -0
  477. package/src/widgets/radio/__stories__/option-status.stories.jsx +118 -0
  478. package/src/widgets/radio/__stories__/toggleable-radio-button.stories.jsx +28 -0
  479. package/src/widgets/radio/base-radio.jsx +642 -0
  480. package/src/widgets/radio/choice-icon.jsx +468 -0
  481. package/src/widgets/radio/choice-none-above.jsx +54 -0
  482. package/src/widgets/radio/choice.jsx +692 -0
  483. package/src/widgets/radio/choice.jsx.fixture.js +64 -0
  484. package/src/widgets/radio/cross-out-button.jsx +136 -0
  485. package/src/widgets/radio/cross-out-menu-wrapper.jsx +492 -0
  486. package/src/widgets/radio/cross-out-tooltip.jsx +129 -0
  487. package/src/widgets/radio/focus-ring.jsx +51 -0
  488. package/src/widgets/radio/option-status.jsx +89 -0
  489. package/src/widgets/radio/toggleable-radio-button.jsx +133 -0
  490. package/src/widgets/radio/util.js +32 -0
  491. package/src/widgets/radio/util_test.js +19 -0
  492. package/src/widgets/radio/widget.jsx +470 -0
  493. package/src/widgets/radio.jsx +156 -0
  494. package/src/widgets/reaction-diagram.jsx +137 -0
  495. package/src/widgets/sequence.jsx +140 -0
  496. package/src/widgets/simulator.jsx +808 -0
  497. package/src/widgets/sorter.jsx +146 -0
  498. package/src/widgets/table.jsx +394 -0
  499. package/src/widgets/transformer.jsx +2876 -0
  500. package/src/widgets/unit.jsx +372 -0
  501. package/src/widgets/video-transcript-link.jsx +84 -0
  502. package/src/widgets/video-transcript-link_test.js +211 -0
  503. package/src/widgets/video.jsx +126 -0
  504. package/src/widgets.js +431 -0
  505. package/src/zoom.js +539 -0
  506. package/README.md +0 -3
  507. package/src/__tests__/index.test.js +0 -14
@@ -0,0 +1,1304 @@
1
+ .exercise, .vars, #next { display: none; }
2
+ p.question { font-weight: bold; }
3
+ var { font-style: normal; }
4
+
5
+ .hint_blue { color: #6495ED; }
6
+ .hint_orange { color: #FFA500; }
7
+ .hint_pink { color: #FF00AF; }
8
+ .hint_red { color: #DF0030; }
9
+ .hint_green { color: #28AE7B; }
10
+ .hint_gray { color: gray; }
11
+ .hint_purple{ color: #9D38BD; }
12
+
13
+ .last-hint { font-weight: bold; }
14
+
15
+ div.subhint {
16
+ border: 1px solid #aaaaaa;
17
+ background: #f9f9f9;
18
+ display: none;
19
+ -moz-border-radius: 4px;
20
+ -webkit-border-radius: 4px;
21
+ border-radius: 4px;
22
+ margin-left: 20px;
23
+ margin-right: 20px;
24
+ padding: 10px;
25
+ }
26
+
27
+ a.show-subhint {
28
+ font-size: 12px;
29
+ font-style: italic;
30
+ background-color: #FDFDFD;
31
+ }
32
+
33
+ a.show-definition {
34
+ background-color: #FDFDFD;
35
+ }
36
+
37
+ div.definition {
38
+ position: absolute;
39
+ border: 1px solid #aaaaaa;
40
+ background: #f9f9f9;
41
+ display: none;
42
+ -moz-border-radius: 4px;
43
+ -webkit-border-radius: 4px;
44
+ border-radius: 4px;
45
+ margin-left: 20px;
46
+ margin-right: 20px;
47
+ padding: 10px;
48
+ z-index: 1000;
49
+ }
50
+
51
+ .solutionarea ul { list-style: none; }
52
+ .solutionarea li { padding: 7px 0; }
53
+ .solutionarea li label { display: block; }
54
+ .solutionarea li input[type=radio] { float: left; margin-top: 4px; }
55
+ .solutionarea li .value { display: block; min-height: 22px; margin-left: 18px; }
56
+
57
+ #extras li { display: inline; }
58
+ #extras li:before { content: "| "; }
59
+ #extras li:first-child:before { content: ""; }
60
+
61
+ #scratchpad-show {
62
+ position: relative;
63
+ z-index: 1;
64
+ }
65
+
66
+ #answer_area #check-answer-results { overflow: hidden; margin: 5px 0; }
67
+ #answer_area #check-answer-results .check-answer-message { font-size: 12px; line-height: 20px; margin: 0; }
68
+ #sad, #happy { float: left; margin: 0 6px 4px 0; }
69
+
70
+ .examples { color: #777; margin-left: 20px; list-style-type: disc; }
71
+ .examples li { margin: 5px 0; }
72
+
73
+ #problemarea { font-size: 14px; width: 70%; min-height: 378px; position: relative; float: left; padding-bottom: 38px; }
74
+
75
+ #solution { font-size: 14px; }
76
+ #solution label { display: block; white-space: nowrap; }
77
+
78
+ #tester-info { border: 1px solid #AAA; background: #F0F0F0; padding: 10px; margin: 10px 0; }
79
+ #debug var { font: 14px Menlo, Courier, monospace; word-wrap: break-word; }
80
+
81
+ code {
82
+ font-family: Courier, monospace;
83
+ }
84
+
85
+ pre {
86
+ background-color: #F0F1F2;
87
+ border-radius: 4px;
88
+ color: #21242C;
89
+ font-size: 18px;
90
+ padding: 16px;
91
+ white-space: pre-wrap;
92
+ }
93
+
94
+ table.limit { margin: 5px; }
95
+ table.limit th { font-weight: bold; text-align: center; }
96
+ table.limit td { border: 1px solid #AAA; }
97
+ table.limit th, table.limit td { padding: 5px; }
98
+ table.limit th:first-child { text-align: right; }
99
+
100
+ .solutionarea input[type=text],
101
+ .solutionarea input[type=number] {
102
+ width: 80px;
103
+ }
104
+ .solutionarea .short20 input[type=text],
105
+ .solutionarea .short20 input[type=number] {
106
+ width: 20px;
107
+ }
108
+ .solutionarea .short25 input[type=text],
109
+ .solutionarea .short25 input[type=number] {
110
+ width: 25px;
111
+ }
112
+ .solutionarea .short28 input[type=text],
113
+ .solutionarea .short28 input[type=number] {
114
+ width: 28px;
115
+ }
116
+ .solutionarea .short30 input[type=text],
117
+ .solutionarea .short30 input[type=number] {
118
+ width: 30px;
119
+ }
120
+ .solutionarea .short32 input[type=text],
121
+ .solutionarea .short32 input[type=number] {
122
+ width: 32px;
123
+ }
124
+ .solutionarea .short35 input[type=text],
125
+ .solutionarea .short35 input[type=number] {
126
+ width: 35px;
127
+ }
128
+ .solutionarea .short40 input[type=text],
129
+ .solutionarea .short40 input[type=number] {
130
+ width: 40px;
131
+ }
132
+ .solutionarea .short50 input[type=text],
133
+ .solutionarea .short50 input[type=number] {
134
+ width: 50px;
135
+ }
136
+ #readonly { display: none; }
137
+
138
+ .radical .surd { font: 150% Arial; padding: 0 0 0 5px; }
139
+ .radical .overline { border-top: 1px solid #000; padding: 6px 1px 0 3px; margin-left: -1px; }
140
+ .solutionarea .radical input[type=text],
141
+ .solutionarea .radical input[type=number] {
142
+ width: 40px;
143
+ }
144
+
145
+ body.debug .graphie { outline: 1px dashed #fdd; }
146
+ .graphie svg { position: absolute; top: 0; left: 0; }
147
+
148
+ #scratchpad {
149
+ display: none;
150
+ margin: 0 10px;
151
+ overflow: hidden;
152
+ padding-bottom: 40px;
153
+ }
154
+ #scratchpad div {
155
+ -moz-box-sizing: border-box;
156
+ -ms-box-sizing: border-box;
157
+ -webkit-box-sizing: border-box;
158
+ box-sizing: border-box;
159
+ border: 1px solid #ccc;
160
+ height: 100%;
161
+ position: absolute;
162
+ width: 100%;
163
+ z-index: 1;
164
+ }
165
+
166
+ #scratchpad-not-available { display: none; }
167
+ #extras .report-issue-link { float: right; }
168
+
169
+ #tester-info.info-box { background: #f2e4bf; }
170
+ #tester-info .box { border: 1px solid black; padding: 2px 4px; margin-left: 5px; }
171
+ #tester-info .group-box { border: 1px solid #aaa; padding: 6px 4px 6px 0px; margin-left: 2px; }
172
+
173
+ #browserwarning { background: white; margin: 0 1px; padding: 18px; font-size: 120%; text-align: center; }
174
+
175
+ #answer_area .answer-buttons input.simple-button,
176
+ #answer_area input.simple-button.full-width {
177
+ width: 100%;
178
+ }
179
+ #answer_area #answercontent { position: relative; z-index: 2; } /* above-scratchpad */
180
+ #answer_area .hint-box { position: relative; z-index: 1;}
181
+
182
+ #problemarea a:link,
183
+ #problemarea input,
184
+ #problemarea label, /* HACK(aria): for radios */
185
+ #problemarea select { /* for dropdowns */
186
+ position: relative; z-index: 3; /* interactive-content */
187
+ }
188
+
189
+ #answer_area .calculator {
190
+ width: 181px;
191
+ margin: 0 auto;
192
+ }
193
+
194
+ .calculator-angle-mode .selected-anglemode {
195
+ color: #050505;
196
+ }
197
+
198
+ .calculator-angle-mode .unselected-anglemode {
199
+ color: #BBBBBB;
200
+ }
201
+
202
+ #answer_area .calculator .history {
203
+ font: 14px/1.5 Menlo, Monaco, Courier, monospace;
204
+ margin: 0 0 10px;
205
+ width: 183px;
206
+
207
+ background-color: white;
208
+ border-radius: 5px;
209
+ }
210
+
211
+ #answer_area .calculator .history #calc-output-content {
212
+ position: absolute;
213
+ bottom: 0px;
214
+ width: 100%;
215
+ overflow-y: scroll;
216
+ overflow-x: hidden;
217
+ max-height: 80px;
218
+ }
219
+
220
+ #answer_area .calculator .history #calc-output {
221
+ height: 80px;
222
+ text-align: left;
223
+ overflow-y: hidden;
224
+ overflow-x: hidden;
225
+ position: relative;
226
+ }
227
+
228
+ #answer_area .calculator .history .output {
229
+ text-align: right;
230
+ margin-right: 3px;
231
+ }
232
+
233
+ #answer_area .calculator .history input {
234
+ box-sizing: border-box;
235
+ -moz-box-sizing: border-box;
236
+ display: block;
237
+ font: inherit;
238
+ margin: 5px 3px 3px;
239
+ width: 98%;
240
+ padding-left: 25px;
241
+ padding-right: 8px;
242
+ text-align: right;
243
+ border: none;
244
+ outline-width: 0;
245
+ }
246
+
247
+ #answer_area .calculator .history .input {
248
+ position: relative;
249
+ }
250
+
251
+ #answer_area .calculator .history .input-history {
252
+ position: relative;
253
+ margin-left: 3px;
254
+ }
255
+
256
+ #answer_area .calculator .history .status a {
257
+ position: absolute;
258
+ font: 10px/1.5 Menlo, Monaco, Courier, monospace;
259
+ color: #999;
260
+ text-decoration: none;
261
+ line-height: 9px;
262
+ height: 19px;
263
+ top: 5px;
264
+ left: 6px;
265
+ }
266
+
267
+ #answer_area .calculator .keypad .calc-row {
268
+ margin: 5px 0;
269
+ }
270
+
271
+ #answer_area .calculator .keypad .calc-row a {
272
+ background: #ccc;
273
+ border-radius: 2px;
274
+ color: #000;
275
+ display: inline-block;
276
+ margin: 0 5px 0 0;
277
+ text-align: center;
278
+ text-decoration: none;
279
+ width: 31px;
280
+ }
281
+
282
+ #answer_area .calculator .keypad .calc-row a:hover {
283
+ background: #bbb;
284
+ }
285
+
286
+ #answer_area .calculator .keypad .calc-row a:active {
287
+ background: #aaa;
288
+ }
289
+
290
+ #answer_area .calculator .keypad .calc-row a.dark {
291
+ background: #aaa;
292
+ }
293
+
294
+ #answer_area .calculator .keypad .calc-row a.dark:hover {
295
+ background: #999;
296
+ }
297
+
298
+ #answer_area .calculator .keypad .calc-row a.dark:active {
299
+ background: #888;
300
+ }
301
+
302
+ #answer_area .calculator .keypad a sup {
303
+ vertical-align: super;
304
+ font-size: 80%;
305
+ line-height: 0;
306
+ }
307
+
308
+ #answer_area .calculator .keypad a.wide {
309
+ width: 67px;
310
+ }
311
+
312
+ #solutionarea {
313
+ min-height: 35px;
314
+ padding: 10px;
315
+ margin: 0 -10px;
316
+ border-bottom: 1px solid #c3c3c3;
317
+ overflow: visible;
318
+ }
319
+
320
+ .workarea #solutionarea {
321
+ border-bottom: 0;
322
+ padding-bottom: 0;
323
+ padding-top: 0;
324
+ }
325
+
326
+ #answer_area .answer-buttons {
327
+ margin: 0 -10px;
328
+ padding: 10px 10px 0;
329
+ position: relative;
330
+ }
331
+
332
+ #show-prereqs-button {
333
+ margin-top: 15px;
334
+ }
335
+
336
+ #positive-reinforcement img {
337
+ width: 28px;
338
+ position: absolute;
339
+ top: 7px;
340
+ left: 5px;
341
+ cursor: pointer;
342
+ }
343
+
344
+ #answer_area input.simple-button[disabled=disabled] { opacity: 0.5; filter: alpha(opacity = 50); cursor: default; }
345
+ #answer_area input.simple-button[disabled=disabled]:hover { color: #fff !important; }
346
+ #answer_area input.simple-button.orange[disabled=disabled]:hover { border-color: #bf4f04 !important; border-bottom-color: #803503 !important; }
347
+ #answer_area input.simple-button.green[disabled=disabled]:hover { border-color: #76a005 !important; border-bottom-color: #557303 !important; }
348
+
349
+ .simple-button.disabled { opacity: 0.5; filter: alpha(opacity = 50); cursor: default; }
350
+
351
+ #hint-remainder { color: #777; }
352
+
353
+ #footer .simple-button, .info-box .simple-button { padding: 3px 10px; top: -1px }
354
+ .info-box .simple-button { top: 0; }
355
+
356
+ #issue #issue-status.error { font-weight: bold; color: #A21; font-size: 1.2em; }
357
+ #issue-link { font-style: italic; }
358
+ #issue .issue-form input[type=text] { display: block; width: 98%; }
359
+ #issue .issue-form textarea { display: block; width: 98%; height: 100px; }
360
+ #issue-cancel { float: right; }
361
+ #issue fieldset {
362
+ list-style: none;
363
+ border: 1px solid rgba(0, 0, 0, 0.3);
364
+ padding-left: 10px;
365
+ -moz-border-radius: 5px;
366
+ -webkit-border-radius: 5px;
367
+ border-radius: 5px;
368
+ line-height: 22px;
369
+ margin-bottom: 3px;
370
+ }
371
+ #issue fieldset legend { padding-left: 5px; padding-right: 5px; }
372
+ #issue fieldset label { display: inline; }
373
+ #issue fieldset li { margin-top: 0px; margin-bottom: 0px; }
374
+
375
+ var, div.graphie { white-space: pre; }
376
+
377
+ #spinner { position: relative; top: 4px; left: 4px; }
378
+ #issue-spinner { position: relative; top: 3px; }
379
+
380
+ .exp input { vertical-align: super; font-size: 9px; height: 11px; }
381
+
382
+ .correct-activity {
383
+ background-color: #69bb00;
384
+ text-shadow: 0 -1px 0 #557303;
385
+ }
386
+
387
+ .incorrect-activity {
388
+ background-color: #e12c2d;
389
+ text-shadow: 0 -1px 0 #921118;
390
+ }
391
+
392
+ .hint-activity {
393
+ background-color: #f19726;
394
+ text-shadow: 0 -1px 0 #B55C00;
395
+ }
396
+
397
+ .user-activity {
398
+ margin: 8px;
399
+ padding: 2px 5px;
400
+ border: 1px solid #999;
401
+ border-radius: 4px;
402
+ -webkit-border-radius: 4px;
403
+ -moz-border-radius: 4px;
404
+ float: left;
405
+ cursor: pointer;
406
+ color: white;
407
+ }
408
+
409
+ .user-activity input {
410
+ cursor: pointer;
411
+ }
412
+
413
+ div.timeline-time {
414
+ float: left;
415
+ padding-top: 10px;
416
+ }
417
+
418
+ div.timeline-time:before {
419
+ padding: 3px;
420
+ content: "~";
421
+ }
422
+
423
+ div.timeline-time:after {
424
+ padding: 3px;
425
+ content: "~";
426
+ }
427
+
428
+ div.timeline-total {
429
+ border-top: 1px solid #999;
430
+ }
431
+
432
+ #timelinecontainer {
433
+ border: 1px solid #c6d1ad;
434
+ border-top: 0px;
435
+ position: relative;
436
+ }
437
+
438
+ #timelinecontainer:before, #timelinecontainer:after {
439
+ content: "";
440
+ display: table;
441
+ }
442
+
443
+ #timelinecontainer:after {
444
+ clear: both;
445
+ }
446
+
447
+ #timelinecontainer {
448
+ zoom: 1;
449
+ }
450
+
451
+ #timeline {
452
+ overflow: hidden;
453
+ position: absolute;
454
+ left: 265px;
455
+ right: 225px;
456
+ border-left: 1px solid #c6d1ad;
457
+ border-right: 1px solid #c6d1ad;
458
+ }
459
+
460
+ #timeline-events {
461
+ width: 10000px;
462
+ }
463
+
464
+ /* Allow the timeline to scroll all the way to the end with a little margin */
465
+ #timeline-events:after, #timeline-events:before {
466
+ content: "";
467
+ display: block;
468
+ width: 1px;
469
+ height: 1px;
470
+ float: left;
471
+ }
472
+
473
+ #timeline p {
474
+ margin: 0;
475
+ }
476
+
477
+ #previous-problem {
478
+ margin: 5px;
479
+ cursor: pointer;
480
+ float: left;
481
+ width: 100px;
482
+ }
483
+
484
+ #previous-step {
485
+ margin: 5px;
486
+ cursor: pointer;
487
+ float: left;
488
+ width: 100px;
489
+ }
490
+
491
+ #next-step {
492
+ margin: 5px;
493
+ cursor: pointer;
494
+ float: right;
495
+ width: 80px;
496
+ }
497
+
498
+ #previous-step span {
499
+ background: url(/images/previous-step.png) no-repeat 0 50% transparent;
500
+ padding: 4px 0 4px 25px;
501
+ }
502
+
503
+ #next-step span {
504
+ background: url(/images/next-step.png) no-repeat 100% 50% transparent;
505
+ padding: 4px 25px 4px 0;
506
+ }
507
+
508
+ #next-problem {
509
+ margin: 5px;
510
+ cursor: pointer;
511
+ float: right;
512
+ width: 80px;
513
+ }
514
+
515
+ .user-activity.activated {
516
+ border: 2px solid #888;
517
+ }
518
+
519
+ /* Version of the site used by Khan/exercise-browser for the iframe preview */
520
+
521
+ html.exercise-browser {
522
+ overflow-x: hidden;
523
+ overflow-y: hidden;
524
+ }
525
+
526
+ .exercise-browser body {
527
+ min-width: 0;
528
+ width: 790px;
529
+ overflow-x: hidden;
530
+ overflow-y: auto;
531
+ }
532
+
533
+ .exercise-browser header, .exercise-browser footer, .exercise-browser .topic-exercise-badge, .exercise-browser #extras, .exercise-browser .exercises-stack, .exercise-browser .related-video-box {
534
+ display: none !important;
535
+ }
536
+
537
+ .exercise-browser #outer-wrapper, .exercise-browser #page-container, .exercise-browser #page-container-inner {
538
+ background: #ffffff;
539
+ }
540
+
541
+ .exercise-browser article {
542
+ border: none;
543
+ }
544
+
545
+ .exercise-browser #container.single-exercise {
546
+ min-width: 0;
547
+ }
548
+
549
+ .exercise-browser #page-container {
550
+ width: 790px;
551
+ min-width: 0;
552
+ }
553
+
554
+ .exercise-browser .problem-types {
555
+ margin-right: 20px;
556
+ }
557
+
558
+ .exercise-browser .problem-type-link {
559
+ display: block;
560
+ margin-bottom: 5px;
561
+ padding: 6px;
562
+ background: #36A6C4;
563
+ border-radius: 5px;
564
+ border: 1px solid #7FC8E6;
565
+ color: white;
566
+ }
567
+
568
+ .exercise-browser .problem-type-link:hover {
569
+ color: white;
570
+ background: #1C758C;
571
+ text-decoration: none;
572
+ }
573
+
574
+ .exercise-browser .problem-type-link:visited {
575
+ color: #C2EAFF;
576
+ text-decoration: none;
577
+ }
578
+
579
+
580
+ .lite header, .lite footer, .lite #extras, .lite .exercise-badge, .lite .hint-box, .lite .related-video-box {
581
+ display: none !important;
582
+ }
583
+
584
+ .lite #page-container, .lite #container {
585
+ min-width: 0;
586
+ border-width: 0;
587
+ }
588
+
589
+ .lite #streak-bar-container {
590
+ position: absolute;
591
+ top: 10px;
592
+ left: 15px;
593
+ }
594
+
595
+ .lite #answercontent {
596
+ position: absolute;
597
+ right: 5px;
598
+ top: 12px;
599
+ padding: 0px;
600
+ border: none;
601
+ -webkit-box-shadow: none;
602
+ overflow: visible;
603
+ }
604
+
605
+ .lite #answercontent > * {
606
+ float: left;
607
+ margin-right: 10px;
608
+ }
609
+
610
+ /* TODO: Find a better way to display these. */
611
+ .lite #spinner, .lite #check-answer-results {
612
+ display: none !important;
613
+ }
614
+
615
+ .lite #answercontent .info-box-header {
616
+ font-size: 16px;
617
+ }
618
+
619
+ .lite #answercontent .examples {
620
+ display: none !important;
621
+ }
622
+
623
+ .lite .ui-icon {
624
+ width: 18px;
625
+ height: 18px;
626
+ }
627
+
628
+ .lite h1 {
629
+ font-family: inherit;
630
+ }
631
+
632
+ .lite #solutionarea input {
633
+ font-size: 14px;
634
+ }
635
+
636
+ .lite #answercontent .simple-button {
637
+ margin-top: -5px;
638
+ color: #fff !important;
639
+ font-size: 14px;
640
+ text-shadow: none;
641
+ }
642
+
643
+ #warning-bar {
644
+ width: 100%;
645
+ height: 35px;
646
+ text-align: center;
647
+ font-size: 15px;
648
+ display: none;
649
+ padding: 6px 0;
650
+ position: relative;
651
+ z-index: 2;
652
+ }
653
+
654
+ .bibliotron-exercise #warning-bar {
655
+ height: auto;
656
+ }
657
+
658
+ #warning-bar span {
659
+ position: relative;
660
+ top: 5px;
661
+ }
662
+
663
+ .bibliotron-exercise #warning-bar span,
664
+ .bibliotron-exercise #warning-bar #warning-bar-close {
665
+ top: auto;
666
+ }
667
+
668
+ #warning-bar-close {
669
+ top: 5px;
670
+ float: right;
671
+ right: 20px;
672
+ position: relative;
673
+ }
674
+
675
+ #warning-bar-content a {
676
+ text-decoration: underline;
677
+ }
678
+
679
+ #warning-bar.error {
680
+ background-color: #D61914;
681
+ color: #eee;
682
+ }
683
+
684
+ #warning-bar.error a {
685
+ color: #eee;
686
+ }
687
+
688
+ #warning-bar.warning {
689
+ background-color: #f5e722;
690
+ color: #222;
691
+ }
692
+
693
+ #warning-bar.warning a {
694
+ color: #222;
695
+ }
696
+
697
+ /* Faux table styles that allow revealing data row by row in hints */
698
+
699
+ .fake_header > span {
700
+ font-weight: bold;
701
+ display: inline-block;
702
+ padding-left: 10px;
703
+ border-bottom: 2px solid #CCCCCC;
704
+ }
705
+
706
+ .fake_row > span {
707
+ display: inline-block;
708
+ padding-top: 5px;
709
+ padding-bottom: 5px;
710
+ padding-left: 10px;
711
+ border-bottom: 1px solid #DDD;
712
+ }
713
+
714
+ .fake_row:nth-child(n) > span {
715
+ border-bottom: none;
716
+ }
717
+
718
+ .fake_row:nth-child(2n+1) > span {
719
+ background-color: #F3F3F3;
720
+ }
721
+
722
+ #timelinecontainer .simple-button {
723
+ -webkit-user-select: none;
724
+ -khtml-user-select: none;
725
+ -moz-user-select: none;
726
+ -o-user-select: none;
727
+ user-select: none;
728
+ white-space: nowrap;
729
+ }
730
+
731
+ .thumbnail a {
732
+ outline: none;
733
+ color: #fff;
734
+ }
735
+
736
+ .thumbnail a:hover {
737
+ text-decoration: none;
738
+ }
739
+
740
+ .thumbnail div.thumb {
741
+ background-size: 200px 150px;
742
+ background-position: no-repeat top left;
743
+ background-position: 0px -25px;
744
+ background-position-y: -80px\9;
745
+ background-position-x: -100px\9;
746
+ width: 200px;
747
+ height: 100px;
748
+ border: 1px solid #aaa;
749
+ -webkit-box-shadow: 0 0 3px #ccc;
750
+ -moz-box-shadow: 0 0 3px #ccc;
751
+ box-shadow: 0 0 3px #ccc;
752
+ margin-left: 14px; /* to line up with other titles */
753
+ margin-bottom: 8px;
754
+ margin-top: 4px;
755
+ }
756
+
757
+ .thumbnail div.thumbnail_label {
758
+ padding: 5px 10px;
759
+ max-width: 180px;
760
+ margin: 0;
761
+ text-align: left;
762
+ margin-top: 68px;
763
+ background: #333;
764
+ background-color: rgba(30, 30, 30, 0.9);
765
+ color: #fff;
766
+ overflow: hidden;
767
+ text-overflow: ellipsis;
768
+ }
769
+
770
+ .thumbnail div.thumbnail_desc {
771
+ width: 180px;
772
+ overflow: hidden;
773
+ text-overflow: ellipsis;
774
+ white-space: nowrap;
775
+ }
776
+
777
+ .thumbnail div.thumbnail_teaser {
778
+ height: 0px;
779
+ overflow: hidden;
780
+ text-overflow: ellipsis;
781
+ white-space: normal;
782
+ text-decoration: none;
783
+ font-size: 11px;
784
+ }
785
+
786
+ .sortable {
787
+ background: #eee;
788
+ border: 1px solid #ccc;
789
+ border-bottom: 1px solid #aaa;
790
+ padding: 13px;
791
+ position: relative;
792
+ z-index: 2;
793
+
794
+ box-shadow: 0 1px 2px #ccc;
795
+ -moz-box-shadow: 0 1px 2px #ccc;
796
+ -webkit-box-shadow: 0 1px 2px #ccc;
797
+ }
798
+
799
+ .sortable > ul {
800
+ list-style-type: none;
801
+ }
802
+
803
+ .sortable > ul > li {
804
+ background-color: #fff;
805
+ border: 1px solid #b9b9b9;
806
+ border-bottom-color: #939393;
807
+ border-radius: 4px;
808
+ -moz-border-radius: 4px;
809
+ -webkit-border-radius: 4px;
810
+ cursor: pointer;
811
+ margin-right: 4px;
812
+ min-width: 65px;
813
+ height: 65px;
814
+ text-align: center;
815
+ font-size: 1.2em;
816
+ float: left;
817
+ -webkit-user-select: none;
818
+ -khtml-user-select: none;
819
+ -moz-user-select: none;
820
+ -o-user-select: none;
821
+ user-select: none;
822
+ }
823
+
824
+ .sortable > ul > li.placeholder {
825
+ background:#ddd;
826
+ border: 0;
827
+ border: 1px solid #ccc;
828
+ float: left;
829
+ }
830
+
831
+
832
+ .sortable code {
833
+ line-height: 65px;
834
+ }
835
+
836
+ .sortable > ul > li:hover {
837
+ border-color: #ffa500;
838
+ box-shadow: 0 0 4px #c56f00;
839
+ -moz-box-shadow: 0 0 4px #c56f00;
840
+ -ms-box-shadow: 0 0 4px #c56f00;
841
+ -o-box-shadow: 0 0 4px #c56f00;
842
+ -webkit-box-shadow: 0 0 4px #c56f00;
843
+ }
844
+
845
+ .sortable > ul > li:active, .sortable > ul > li.dragging {
846
+ background-color: #ffedcd;
847
+ opacity: 0.8;
848
+ filter: alpha(opacity = 80);
849
+ }
850
+
851
+ .box-whisker-sortable > .sortable {
852
+ background: #f8f8f8;
853
+ border: 0;
854
+ border-bottom: 0;
855
+ box-shadow: 0 0 0;
856
+ -moz-box-shadow: 0 0 0;
857
+ -webkit-box-shadow: 0 0 0;
858
+ padding-right: 0;
859
+ }
860
+
861
+ .box-whisker-sortable > .sortable > ul > li {
862
+ width: 28px;
863
+ min-width: 28px;
864
+ height: 28px;
865
+ margin-right: 2px;
866
+ font-size: 1em;
867
+ border: 1px solid #ddd;
868
+ }
869
+ .box-whisker-sortable > .sortable code {
870
+ line-height: 32px;
871
+ }
872
+
873
+ #problemarea div#congruent-triangles {
874
+ outline-color: #999;
875
+ outline-style: dashed;
876
+ outline-width: 1px;
877
+ }
878
+
879
+ /* Video hints */
880
+
881
+ .video-hint {
882
+ margin-bottom: 20px;
883
+ }
884
+
885
+ /* Question-based hints */
886
+
887
+ .qhint {
888
+ border: 1px solid #aaaaaa;
889
+ background: #f9f9f9;
890
+ -moz-border-radius: 4px;
891
+ -webkit-border-radius: 4px;
892
+ border-radius: 4px;
893
+ margin-right: 20px;
894
+ margin-bottom: 20px;
895
+ padding: 10px;
896
+ }
897
+
898
+ .qhint-answer {
899
+ display: none;
900
+ }
901
+
902
+ .qhint-feedback {
903
+ font-weight: bold;
904
+ color: #6495ED;
905
+ }
906
+
907
+ .qhint-feedback.correct {
908
+ color: #28AE7B;
909
+ }
910
+
911
+ .qhint-feedback.incorrect {
912
+ color: #CE4444;
913
+ }
914
+
915
+ /*Worked example hints*/
916
+ .example-hint {
917
+ margin-bottom: 15px;
918
+ }
919
+
920
+ /* Fancy matrix input - goes along with matrix-input.js */
921
+ .matrix-input {
922
+ padding: 15px;
923
+ margin-top: 10px;
924
+ background-color: #eee;
925
+ width: 165px;
926
+ }
927
+
928
+ .solutionarea .matrix-row {
929
+ float: left; /* contain inner floats */
930
+ clear: both;
931
+ }
932
+
933
+ .solutionarea .matrix-row .sol {
934
+ margin: 0;
935
+ float: left;
936
+ }
937
+
938
+ .solutionarea .matrix-row .sol input[type=text],
939
+ .solutionarea .matrix-row .sol input[type=number] {
940
+ width: 45px;
941
+ height: 30px;
942
+ border: none;
943
+ margin: 3px;
944
+ padding: 1px;
945
+ }
946
+
947
+ .matrix-input .matrix-bracket {
948
+ width: 6px;
949
+ position: absolute;
950
+ border-top: 2px solid #888;
951
+ border-bottom: 2px solid #888;
952
+ /* margin-top must have the same magnitude
953
+ as the border widths */
954
+ margin-top: -2px;
955
+ }
956
+
957
+ .matrix-input .matrix-bracket.bracket-left {
958
+ border-left: 2px solid #888;
959
+ /* margin-left for the left bracket must have
960
+ the same magnitude as the border widths */
961
+ margin-left: -2px;
962
+ }
963
+
964
+ .matrix-input .matrix-bracket.bracket-right {
965
+ border-right: 2px solid #888;
966
+ }
967
+
968
+ .matrix-input:after {
969
+ content: "";
970
+ display: block;
971
+ clear: both;
972
+ visibility: hidden;
973
+ overflow: hidden;
974
+ height: 0;
975
+ }
976
+
977
+ table.periodic-table td.element {
978
+ border: 1px solid;
979
+ min-width: 37px;
980
+ min-height: 37px;
981
+ text-align: center;
982
+ line-height: 1.2;
983
+ }
984
+
985
+ table.periodic-table td.element div.atomic-num {
986
+ }
987
+ table.periodic-table td.element div.symbol {
988
+ font-weight: bold;
989
+ }
990
+ table.periodic-table td.element div.weight {
991
+ font-size: 10px;
992
+ }
993
+
994
+ .plugging_in_values > span {
995
+ width: 80px;
996
+ }
997
+ table.plugging_in_values_hint td {
998
+ padding-left: 40px;
999
+ }
1000
+
1001
+ span.hover-hint {
1002
+ color: #005987;
1003
+ border-bottom: 1px dashed #005987;
1004
+ }
1005
+ span.hover-hint:hover {
1006
+ color: #678d00;
1007
+ border-bottom: 1px dashed #678d00;
1008
+ cursor: pointer;
1009
+ }
1010
+
1011
+ .vis-deriv-hint-graph {
1012
+ display: block;
1013
+ float: left;
1014
+ margin-right: 50px;
1015
+ }
1016
+
1017
+ #problemarea .quarter-graph {
1018
+ float: left;
1019
+ margin-bottom: 45px;
1020
+ margin-right: 45px;
1021
+ }
1022
+
1023
+ #problemarea .estimation span {
1024
+ width: 100px;
1025
+ }
1026
+ #problemarea .estimation span:first-child {
1027
+ width: 50px;
1028
+ }
1029
+
1030
+ #solutionarea table.rational-exp td {
1031
+ text-align: center;
1032
+ vertical-align: middle;
1033
+ padding-left: 4px;
1034
+ padding-right: 4px;
1035
+ }
1036
+ #solutionarea table.rational-exp td.soln-top {
1037
+ padding-bottom: 1px;
1038
+ }
1039
+ #solutionarea table.rational-exp td.soln-bot {
1040
+ padding-top: 1px;
1041
+ border-top: 1px solid black;
1042
+ }
1043
+
1044
+ #solutionarea table.rational-exp td.soln-dom {
1045
+ padding-left: 3px;
1046
+ }
1047
+
1048
+ #problemarea div.z-score-table > span {
1049
+ width: 32px;
1050
+ font-size: 11px;
1051
+ padding: 5px;
1052
+ }
1053
+
1054
+ #problemarea div.z-score-table > span:first-child {
1055
+ font-weight: bold;
1056
+ width: 22px;
1057
+ border-right: 2px solid #CCCCCC;
1058
+ }
1059
+
1060
+ #problemarea div.focus-information {
1061
+ padding-bottom: 12px;
1062
+ height: 70px;
1063
+ clear: both;
1064
+ }
1065
+
1066
+ #problemarea div.focus-information div {
1067
+ display: block;
1068
+ }
1069
+ #problemarea div.focus-information-column-left {
1070
+ float: left;
1071
+ width: 30%;
1072
+ }
1073
+ #problemarea div.focus-information-column-right {
1074
+ float: right;
1075
+ width: 55%;
1076
+ }
1077
+
1078
+ #problemarea .reading-tables > span {
1079
+ text-align: center;
1080
+ width: 65px;
1081
+ }
1082
+ #problemarea .reading-tables > span:first-child {
1083
+ text-align: left;
1084
+ width: 100px;
1085
+ }
1086
+
1087
+ #problemarea .reading > span {
1088
+ width: 32px;
1089
+ font-size: 11px;
1090
+ padding: 5px;
1091
+ }
1092
+
1093
+ #problemarea .reading.fake_header > span {
1094
+ text-align: center;
1095
+ }
1096
+
1097
+ #problemarea .reading > span:first-child {
1098
+ font-weight: bold;
1099
+ width: 22px;
1100
+ border-right: 2px solid #CCCCCC;
1101
+ }
1102
+
1103
+ #problemarea .problem .graph-caption {
1104
+ display: block;
1105
+ margin-top: 10px;
1106
+ margin-bottom: 30px;
1107
+ }
1108
+
1109
+ #solutionarea .intuition-equation td {
1110
+ text-align: right;
1111
+ padding-left: 5px;
1112
+ }
1113
+
1114
+ .question li span.sort-key {
1115
+ visibility: hidden;
1116
+ position: absolute;
1117
+ }
1118
+
1119
+ .problem table.problem-equation td {
1120
+ padding-left: 3px;
1121
+ padding-right: 3px;
1122
+ text-align: center;
1123
+ }
1124
+ .problem table.problem-equation input {
1125
+ width: 25px;
1126
+ margin-right: 5px;
1127
+ vertical-align: super;
1128
+ }
1129
+
1130
+ #coin-flip-sequence-charts {
1131
+ height: 324px;
1132
+ position: relative;
1133
+ width: 496px;
1134
+ }
1135
+
1136
+ #coin-flip-sequence-charts .graphie {
1137
+ height: 324px;
1138
+ width: 496px;
1139
+ position: absolute !important;
1140
+ }
1141
+
1142
+ #coin-flip-sequence-chart-1 {
1143
+ left: 496px;
1144
+ }
1145
+
1146
+ #coin-flip-sequence-chart-2 {
1147
+ left: 992px;
1148
+ }
1149
+
1150
+ #coin-flip-sequence-chart-3 {
1151
+ left: 1488px;
1152
+ }
1153
+
1154
+ .view-coin-flip-sequence-patterns {
1155
+ margin-top: 12px;
1156
+ }
1157
+
1158
+ .view-coin-flip-sequence-patterns span {
1159
+ color: #ccc;
1160
+ }
1161
+
1162
+ .view-coin-flip-sequence-patterns a {
1163
+ margin: 0 5px;
1164
+ }
1165
+
1166
+ .view-coin-flip-sequence-patterns a.selected {
1167
+ font-weight: bold;
1168
+ color: #444 !important;
1169
+ cursor: default;
1170
+ text-decoration: none !important;
1171
+ }
1172
+
1173
+ .coin-flip-sequence-heads {
1174
+ background: #a6a6a6;
1175
+ color: #333;
1176
+ }
1177
+
1178
+ .coin-flip-sequence-heads,
1179
+ .coin-flip-sequence-tails {
1180
+ border-right: 1px solid #888;
1181
+ float: left;
1182
+ font-family: Verdana, sans-serif;
1183
+ font-size: 14px;
1184
+ margin-bottom: 5px;
1185
+ padding: 0 2px;
1186
+ text-align: center;
1187
+ width: 16px;
1188
+ }
1189
+
1190
+ .coin-flip-sequence-tails {
1191
+ background: #595959;
1192
+ color: #ccc;
1193
+ }
1194
+
1195
+ body.debug span.error {
1196
+ font-weight: bold;
1197
+ color: #FFF;
1198
+ background: #F00;
1199
+ font-size: 1.4em;
1200
+ padding: 0.2em;
1201
+ text-decoration: line-through;
1202
+ }
1203
+
1204
+ /* Work around bug added in https://khanacademy.kilnhg.com/Review/K109777 */
1205
+ .new-header .MathJax .math {
1206
+ color: inherit;
1207
+ }
1208
+
1209
+ .solutionarea .info-box .mini-button {
1210
+ margin: 0px 10px 0px 0px;
1211
+ padding: 0px 5px;
1212
+ width: 25px;
1213
+ height: 18px;
1214
+ }
1215
+
1216
+ .solutionarea #number-label {
1217
+ clear: both;
1218
+ margin: 0px 0px;
1219
+ padding: 14px 0px 0px 0px;
1220
+ }
1221
+
1222
+ /* Expression/equation input (see "expression" answer type) */
1223
+ .solutionarea .expression {
1224
+ box-sizing: border-box;
1225
+ display: block;
1226
+ max-width: 240px;
1227
+ width: 100%;
1228
+ }
1229
+
1230
+ .solutionarea .expression > .output {
1231
+ background: #f2f2f2;
1232
+ display: inline-block;
1233
+ border-radius: 5px;
1234
+ padding-top: 10px;
1235
+ margin: 10px 0;
1236
+ /* HACK(aria) above scratchpad so that users have somewhere to
1237
+ * "click off of" to hide the expression dialog.
1238
+ * Also important because it can get a silly scrollbar and we
1239
+ * want users to be able to scroll even if the scratchpad is
1240
+ * open. We should probably make this wider eventually. */
1241
+ position: relative; z-index: 2;
1242
+ }
1243
+
1244
+ .solutionarea .expression > .output > .tex {
1245
+ display: block;
1246
+ min-height: 42px;
1247
+ overflow-x: scroll;
1248
+ padding: 2px 10px 16px 10px;
1249
+ }
1250
+
1251
+ .solutionarea .expression > .input {
1252
+ position: relative;
1253
+ z-index: 3; /* interactive-content */
1254
+ }
1255
+
1256
+ .solutionarea .expression > .input > input {
1257
+ border: 1px solid #a4a4a4;
1258
+ border-radius: 5px;
1259
+ direction: ltr;
1260
+ font-size: 14px;
1261
+ margin-bottom: 5px;
1262
+ padding: 6px;
1263
+ }
1264
+
1265
+ .solutionarea .expression > .output,
1266
+ .solutionarea .expression > .output > .tex,
1267
+ .solutionarea .expression > .input > input {
1268
+ box-sizing: border-box;
1269
+ max-width: 240px;
1270
+ width: 100%;
1271
+ }
1272
+
1273
+ .solutionarea .expression > .input > input.error {
1274
+ padding-right: 25px;
1275
+ }
1276
+
1277
+ .solutionarea .expression > .input > .error-div {
1278
+ position: absolute;
1279
+ right: 6px;
1280
+ top: -3px;
1281
+ }
1282
+
1283
+ .solutionarea .expression > .input > .error-div > .error-icon {
1284
+ color: #fcc335;
1285
+ font-size: 20px;
1286
+ }
1287
+
1288
+ body:not(.mobile) ul.inequalities-one-line-radios,
1289
+ body:not(.mobile) ul.inequalities-one-line-radios > li {
1290
+ display: inline;
1291
+ }
1292
+
1293
+ body.mobile ul.inequalities-one-line-radios > li {
1294
+ padding: 7px 0;
1295
+ }
1296
+
1297
+ .inequalities-padding#grid {
1298
+ margin-bottom: 2em;
1299
+ }
1300
+
1301
+ #skip-question-button,
1302
+ #opt-out-button {
1303
+ margin-top: 15px;
1304
+ }