@oat-sa/tao-core-ui 3.24.1 → 3.24.3

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 (140) hide show
  1. package/dist/animable/pulsable/pulsable.js +0 -1
  2. package/dist/autocomplete/css/autocomplete.css +1 -1
  3. package/dist/autocomplete/css/autocomplete.css.map +1 -1
  4. package/dist/badge/css/badge.css +6 -6
  5. package/dist/badge/css/badge.css.map +1 -1
  6. package/dist/breadcrumbs/css/breadcrumbs.css +2 -2
  7. package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
  8. package/dist/calculator/css/calculator.css +8 -6
  9. package/dist/calculator/css/calculator.css.map +1 -1
  10. package/dist/class/css/selector.css +4 -4
  11. package/dist/class/css/selector.css.map +1 -1
  12. package/dist/component/css/components.css +5 -5
  13. package/dist/component/css/components.css.map +1 -1
  14. package/dist/component/css/windowComponent.css +1 -1
  15. package/dist/component/css/windowComponent.css.map +1 -1
  16. package/dist/component/draggable.js +0 -1
  17. package/dist/component/resizable.js +0 -1
  18. package/dist/contextualPopup/css/contextualPopup.css +1 -1
  19. package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
  20. package/dist/datatable/css/datatable.css +3 -3
  21. package/dist/datatable/css/datatable.css.map +1 -1
  22. package/dist/datatable.js +1 -2
  23. package/dist/datetime/css/picker.css +13 -13
  24. package/dist/datetime/css/picker.css.map +1 -1
  25. package/dist/documentViewer/css/documentViewer.css +10 -10
  26. package/dist/documentViewer/css/documentViewer.css.map +1 -1
  27. package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +0 -1
  28. package/dist/dynamicComponent/css/dynamicComponent.css +1 -1
  29. package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
  30. package/dist/dynamicComponent.js +1 -4
  31. package/dist/figure/FigureStateActive.js +20 -23
  32. package/dist/form/css/dropdownForm.css +1 -1
  33. package/dist/form/css/dropdownForm.css.map +1 -1
  34. package/dist/form/widget/widget.js +1 -4
  35. package/dist/highlighter.js +0 -2
  36. package/dist/image/ImgStateActive.js +13 -15
  37. package/dist/interactUtils.js +7 -8
  38. package/dist/itemButtonList/css/item-button-list.css +9 -3
  39. package/dist/itemButtonList/css/item-button-list.css.map +1 -1
  40. package/dist/itemButtonList.js +1 -2
  41. package/dist/keyNavigation/navigableDomElement.js +3 -4
  42. package/dist/keyNavigation/navigator.js +1 -2
  43. package/dist/listbox/css/listbox.css +1 -1
  44. package/dist/listbox/css/listbox.css.map +1 -1
  45. package/dist/maths/calculator/core/board.js +58 -127
  46. package/dist/maths/calculator/core/labels.js +1 -6
  47. package/dist/maths/calculator/css/calculator.css +18 -18
  48. package/dist/maths/calculator/css/calculator.css.map +1 -1
  49. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +1 -6
  50. package/dist/mediaplayer/css/player.css +7 -7
  51. package/dist/mediaplayer/css/player.css.map +1 -1
  52. package/dist/mediaplayer/players/html5.js +3 -14
  53. package/dist/mediaplayer/players/youtube.js +3 -12
  54. package/dist/mediaplayer/utils/crossOrigin.js +1 -1
  55. package/dist/mediaplayer/utils/timeObserver.js +1 -2
  56. package/dist/mediaplayer/youtubeManager.js +1 -2
  57. package/dist/mediaplayer.js +2 -8
  58. package/dist/mediasizer.js +0 -1
  59. package/dist/resizeObserver.js +1 -3
  60. package/dist/resource/css/selector.css +31 -23
  61. package/dist/resource/css/selector.css.map +1 -1
  62. package/dist/resource/list.js +239 -203
  63. package/dist/resource/selector.js +0 -1
  64. package/dist/resource/tree.js +239 -203
  65. package/dist/resourcemgr/assetSearch.js +20 -18
  66. package/dist/resourcemgr/assetSearchContract.js +67 -12
  67. package/dist/resourcemgr/css/resourcemgr.css +17 -18
  68. package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
  69. package/dist/resourcemgr/fileBrowser.js +3 -5
  70. package/dist/resourcemgr/fileSelector.js +3 -0
  71. package/dist/searchModal/advancedSearch.js +3 -4
  72. package/dist/searchModal/css/searchModal.css +14 -14
  73. package/dist/searchModal/css/searchModal.css.map +1 -1
  74. package/dist/searchModal.js +42 -53
  75. package/dist/switch/css/switch.css +2 -2
  76. package/dist/switch/css/switch.css.map +1 -1
  77. package/dist/tabs/css/tabs.css +2 -2
  78. package/dist/tabs/css/tabs.css.map +1 -1
  79. package/dist/taskQueue/css/taskQueue.css +4 -4
  80. package/dist/taskQueue/css/taskQueue.css.map +1 -1
  81. package/dist/taskQueue/taskQueueModel.js +1 -2
  82. package/dist/taskQueueButton/taskable.js +1 -2
  83. package/dist/validator/validators.js +0 -1
  84. package/dist/waitingDialog/css/waitingDialog.css +2 -2
  85. package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
  86. package/package.json +1 -1
  87. package/src/autocomplete/css/autocomplete.css +1 -1
  88. package/src/autocomplete/css/autocomplete.css.map +1 -1
  89. package/src/badge/css/badge.css +6 -6
  90. package/src/badge/css/badge.css.map +1 -1
  91. package/src/breadcrumbs/css/breadcrumbs.css +2 -2
  92. package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
  93. package/src/calculator/css/calculator.css +8 -6
  94. package/src/calculator/css/calculator.css.map +1 -1
  95. package/src/class/css/selector.css +4 -4
  96. package/src/class/css/selector.css.map +1 -1
  97. package/src/component/css/components.css +5 -5
  98. package/src/component/css/components.css.map +1 -1
  99. package/src/component/css/windowComponent.css +1 -1
  100. package/src/component/css/windowComponent.css.map +1 -1
  101. package/src/contextualPopup/css/contextualPopup.css +1 -1
  102. package/src/contextualPopup/css/contextualPopup.css.map +1 -1
  103. package/src/css/basic.css +123 -113
  104. package/src/css/basic.css.map +1 -1
  105. package/src/datatable/css/datatable.css +3 -3
  106. package/src/datatable/css/datatable.css.map +1 -1
  107. package/src/datetime/css/picker.css +13 -13
  108. package/src/datetime/css/picker.css.map +1 -1
  109. package/src/documentViewer/css/documentViewer.css +10 -10
  110. package/src/documentViewer/css/documentViewer.css.map +1 -1
  111. package/src/dynamicComponent/css/dynamicComponent.css +1 -1
  112. package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
  113. package/src/form/css/dropdownForm.css +1 -1
  114. package/src/form/css/dropdownForm.css.map +1 -1
  115. package/src/itemButtonList/css/item-button-list.css +9 -3
  116. package/src/itemButtonList/css/item-button-list.css.map +1 -1
  117. package/src/listbox/css/listbox.css +1 -1
  118. package/src/listbox/css/listbox.css.map +1 -1
  119. package/src/maths/calculator/css/calculator.css +18 -18
  120. package/src/maths/calculator/css/calculator.css.map +1 -1
  121. package/src/mediaplayer/css/player.css +7 -7
  122. package/src/mediaplayer/css/player.css.map +1 -1
  123. package/src/resource/css/selector.css +31 -23
  124. package/src/resource/css/selector.css.map +1 -1
  125. package/src/resourcemgr/assetSearch.js +27 -19
  126. package/src/resourcemgr/assetSearchContract.js +67 -18
  127. package/src/resourcemgr/css/resourcemgr.css +17 -18
  128. package/src/resourcemgr/css/resourcemgr.css.map +1 -1
  129. package/src/resourcemgr/fileBrowser.js +9 -9
  130. package/src/resourcemgr/fileSelector.js +4 -0
  131. package/src/searchModal/css/searchModal.css +14 -14
  132. package/src/searchModal/css/searchModal.css.map +1 -1
  133. package/src/switch/css/switch.css +2 -2
  134. package/src/switch/css/switch.css.map +1 -1
  135. package/src/tabs/css/tabs.css +2 -2
  136. package/src/tabs/css/tabs.css.map +1 -1
  137. package/src/taskQueue/css/taskQueue.css +4 -4
  138. package/src/taskQueue/css/taskQueue.css.map +1 -1
  139. package/src/waitingDialog/css/waitingDialog.css +2 -2
  140. package/src/waitingDialog/css/waitingDialog.css.map +1 -1
@@ -240,10 +240,7 @@ define(['lodash', 'i18n', 'handlebars', 'core/providerRegistry', 'ui/component',
240
240
  * @param {...} args - Extra parameters
241
241
  * @returns {*}
242
242
  */
243
- const delegate = function (method) {
244
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
245
- args[_key - 1] = arguments[_key];
246
- }
243
+ const delegate = (method, ...args) => {
247
244
  if (_.isFunction(provider[method])) {
248
245
  return provider[method].apply(widget, args);
249
246
  }
@@ -886,7 +886,6 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
886
886
  if (!currentModel.path || !currentModel.path.length) {
887
887
  continue; //something went wrong
888
888
  }
889
-
890
889
  for (let m = 0; m < currentModel.path.length; m++) {
891
890
  //path was counted among non-empty nodes
892
891
  childNodes = Array.from(currentParentNode.childNodes).filter(node => !(isText(node) && !node.textContent.length));
@@ -916,7 +915,6 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
916
915
  if (!nodeBefore || !isText(nodeBefore) || nodeBefore.textContent.length <= currentModel.offsetBefore || isBlacklisted(nodeBefore)) {
917
916
  continue; //something went wrong
918
917
  }
919
-
920
918
  nodeAtIndex = nodeBefore.splitText(currentModel.offsetBefore);
921
919
  }
922
920
  //cut off its end
@@ -383,13 +383,12 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
383
383
  active: true
384
384
  }
385
385
  };
386
- const formCallbacks = _ref => {
387
- let {
388
- widget,
389
- formElement,
390
- mediaEditor,
391
- togglePlaceholder
392
- } = _ref;
386
+ const formCallbacks = ({
387
+ widget,
388
+ formElement,
389
+ mediaEditor,
390
+ togglePlaceholder
391
+ }) => {
393
392
  const $img = widget.$original;
394
393
  return {
395
394
  src: _.throttle(function (img, value) {
@@ -413,14 +412,13 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
413
412
  longdesc: formElement.getAttributeChangeCallback()
414
413
  };
415
414
  };
416
- const initForm = _ref2 => {
417
- let {
418
- widget,
419
- formElement,
420
- formTpl,
421
- mediaEditor,
422
- togglePlaceholder
423
- } = _ref2;
415
+ const initForm = ({
416
+ widget,
417
+ formElement,
418
+ formTpl,
419
+ mediaEditor,
420
+ togglePlaceholder
421
+ }) => {
424
422
  widget.$form.html(formTpl({
425
423
  baseUrl: widget.options.baseUrl || '',
426
424
  src: widget.element.attr('src'),
@@ -307,14 +307,13 @@ define(['jquery', 'lodash', 'interact', 'core/mouseEvent'], function ($, _, inte
307
307
  * @param {Number} [options.duration]
308
308
  * @returns {JQuery} $clone - use to adjust styles of the clone
309
309
  */
310
- animateMoveElement: function animateMoveElement(_ref) {
311
- let {
312
- $appendTo,
313
- $fromElement,
314
- $toElement,
315
- endCallback,
316
- duration
317
- } = _ref;
310
+ animateMoveElement: function animateMoveElement({
311
+ $appendTo,
312
+ $fromElement,
313
+ $toElement,
314
+ endCallback,
315
+ duration
316
+ }) {
318
317
  const appendToOffset = $appendTo.offset();
319
318
  const fromOffset = $fromElement.offset();
320
319
  const toOffset = $toElement.offset();
@@ -35,9 +35,6 @@ Usage:
35
35
  justify-content: start;
36
36
  padding: 0;
37
37
  /****** base styles *******/
38
- /****** step state styles *******/
39
- /* disabling is applied at buttonlist-item or buttonlist-items level */
40
- /****** keyboard focus styles *******/
41
38
  }
42
39
  .buttonlist-items .buttonlist-item {
43
40
  height: 6.25rem;
@@ -127,6 +124,9 @@ Usage:
127
124
  .buttonlist-items .icon-score-partial::before {
128
125
  content: "\e91a";
129
126
  }
127
+ .buttonlist-items {
128
+ /****** step state styles *******/
129
+ }
130
130
  .buttonlist-items .buttonlist-item {
131
131
  -webkit-user-select: none;
132
132
  -o-user-select: none;
@@ -169,6 +169,9 @@ Usage:
169
169
  .buttonlist-items .buttonlist-item.score-partial .buttonlist-score-badge {
170
170
  background-color: #AD5700;
171
171
  }
172
+ .buttonlist-items {
173
+ /* disabling is applied at buttonlist-item or buttonlist-items level */
174
+ }
172
175
  .buttonlist-items:not(.disabled) .buttonlist-item:not(.disabled) .buttonlist-btn:hover {
173
176
  background-color: hsl(208, 100%, 95%);
174
177
  color: hsl(208, 100%, 32%);
@@ -187,6 +190,9 @@ Usage:
187
190
  /* reset global styles */
188
191
  text-shadow: none;
189
192
  }
193
+ .buttonlist-items {
194
+ /****** keyboard focus styles *******/
195
+ }
190
196
  .buttonlist-items .buttonlist-item.key-navigation-highlight .buttonlist-btn::before,
191
197
  .buttonlist-items .buttonlist-item .buttonlist-btn.buttonlist-btn-focus:focus::before {
192
198
  content: "";
@@ -1 +1 @@
1
- {"version":3,"sources":["../scss/item-button-list.scss%23sass","../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../scss/item-button-list.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAAA;ACaA;;;;;;CAAA;AAwQA,oEAAA;AAWA;;;;EAAA;AChSA,gBAAA;AF+BA;EACI,aAAA;EACA,eAAA;EACA,sBAAA;EACA,UAAA;EAEA,2BAAA;EAgGA,iCAAA;EA6DA,sEAAA;EAuBA,qCAAA;AGjLJ;AHFI;EACI,eAAA;EACA,cAAA;EACA,aAAA;EACA,uBAAA,EAAA,gEAAA;EACA,mBAAA;EACA,wBAAA;EACA,UAAA;EACA,YAAA;AGIR;AHDI;EACI,kBAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,YAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;EACA,sBAAA;EACA,6BIXoB;EJYpB,mCAAA;EACA,UAAA,EAAA,6BAAA;EACA,iBAAA;EACA,iBAAA;EACA,oCInCa;EJoCb,sBIjBoB;EJkBpB,iBAAA;EACA,eAAA;AGGR;AHAI;EACI,gEAAA;EACA,kBAAA;EACA,gBAAA;EACA,mBAAA;EACA,oBAAA;AGER;AHAI;EACI,UAAA;EACA,MAAA;EACA,OAAA;AGER;AHAI;EACI,aAAA;AGER;AHAI;EACI,aAAA;AGER;AHCI;EACI,aAAA;AGCR;AHEI;EACI,kBAAA;EACA,YAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,yBIvEa;EJwEb,uCAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;AGAR;AHEI;EACI,iBAAA;EACA,UAAA;EACA,MAAA;EACA,OAAA;AGAR;AHGI;EEhFoB,gBAAA;ACgFxB;AHGI;EEjFmB,gBAAA;ACiFvB;AHGI;EEwGoB,gBAAA;ACxGxB;AHGI;EEoGqB,gBAAA;ACpGzB;AHGI;EEZe,gBAAA;ACYnB;AHGI;EElGwB,gBAAA;ACkG5B;AHMI;EC9EQ,yBAAA;EAAA,oBAAA;EAAA,iBAAA;AE+EZ;AHGY;EACI,qBAAA;EACA,sBI3FW;EJ4FX,6BI5FW;AD2F3B;AHKY;EACI,qBAAA;EACA,iCAAA;EACA,yBAAA;EACA,6BAAA;AGHhB;AHOY;EACI,kBAAA;EACA,cAAA;EACA,UAAA;EACA,sBAAA;EACA,cAAA;EACA,iBAAA;EACA,UAAA;EACA,eAAA;EACA,UAAA;EACA,2BAAA;EACA,SAAA;EACA,2BAAA;AGLhB;AHUY;EACI,kCI1KN;ADkKV;AHaY;EACI,kCAAA;AGXhB;AHgBY;EACI,yBAjKD;AGmJf;AHmBY;EACI,yBAAA;AGjBhB;AHwBQ;EACI,qCAhLG;EAiLH,0BAAA;EACA,iCAAA;AGtBZ;AHyBI;;EAEK,wBAAA;EACA,kCAAA;EACA,qBAAA;EACA,4BAAA;AGvBT;AHyBQ;;EACI,mBAAA;EACA,wBAAA;EACA,iBAAA;AGtBZ;AH6BQ;;EAEI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,aAAA;EACA,cAAA;EACA,SAAA;EACA,QAAA;EACA,gCAAA;EACA,qBAAA;EACA,iCAAA;EACA,oBAAA;EACA,kBAAA;AG3BZ;AH8BQ;EAGI,0BI3LoB;AD6JhC;AHiCQ;EAEI,oCItNS;EJuNT,0BIjMoB;EJkMpB,iCIlMoB;ADkKhC;AHmCQ;EAEI,qCIvMoB;EJwMpB,yBI9NS;EJ+NT,iCAAA;AGlCZ","file":"item-button-list.css","sourcesContent":["/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2022 Open Assessment Technologies SA ;\n */\n@import \"inc/bootstrap\";\n\n$correctColor: $success;\n$incorrectColor: $error;\n$hoverBgColor: hsl(208, 100%, 95%);\n$pendingColor: #6E6E6E;\n$partialColor: #AD5700;\n\n$radiusCircular: 50%;\n$sizeDefault: 4rem;\n$hitboxSize: 6.25rem;\n$borderThin: 0.125rem;\n$borderMedium: 0.25rem;\n\n.buttonlist-items {\n display: flex;\n flex-wrap: wrap;\n justify-content: start;\n padding: 0;\n\n /****** base styles *******/\n .buttonlist-item {\n height: $hitboxSize;\n width: $hitboxSize;\n display: flex;\n justify-content: center; /* aligning left - cut focusing board for keyboard interacting */\n align-items: center;\n /* reset parent styles */\n padding: 0;\n border: none;\n }\n\n .buttonlist-btn {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: $sizeDefault;\n width: $sizeDefault;\n border-style: solid;\n border-radius: $radiusCircular;\n border-width: $borderThin;\n border-color: $uiReviewPanelTextDisabled;\n margin: 1.3rem 0.75rem 1rem 0.75rem;\n padding: 0; /*Fixes firefox button jumps*/\n font-weight: bold;\n font-size: 1.6rem;\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelTextDisabled;\n text-shadow: none;\n cursor: pointer;\n }\n\n .buttonlist-label {\n font-family: 'Nunito Sans', 'Source Sans Pro', Arial, sans-serif;\n max-width: 3.75rem;\n overflow: hidden;\n white-space: nowrap;\n line-height: initial;\n }\n .buttonlist-icon {\n padding: 0;\n top: 0;\n left: 0;\n }\n .buttonlist-icon:not([class*=\"icon-\"]) {\n display: none;\n }\n .buttonlist-icon[class*=\"icon-\"] ~ .buttonlist-label {\n display: none;\n }\n\n .indicator {\n display: none;\n }\n\n .buttonlist-score-badge {\n position: absolute;\n top: -0.9rem;\n right: -0.9rem;\n width: 2rem;\n height: 2rem;\n border-radius: 100%;\n color: $uiReviewPanelTextInverted;\n border: 0.1rem solid $uiReviewPanelTextInverted;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonlist-score-icon {\n font-size: 1.2rem;\n padding: 0;\n top: 0;\n left: 0;\n }\n\n .icon-info::before {\n @include icon-info-bare;\n }\n .icon-flagged::before {\n @include icon-bookmark;\n }\n .icon-correct::before {\n @include icon-result-ok;\n }\n .icon-incorrect::before {\n @include icon-result-nok;\n }\n .icon-score-pending::before {\n @include icon-time;\n }\n .icon-score-partial::before {\n @include icon-score-partial;\n }\n\n\n /****** step state styles *******/\n .buttonlist-item {\n @include disableSelect();\n\n &.viewed {\n .buttonlist-btn {\n border-width: $borderMedium;\n color: $uiReviewPanelTextDefault;\n border-color: $uiReviewPanelTextDefault;\n }\n }\n &.answered {\n .buttonlist-btn {\n border-width: $borderMedium;\n background-color: $uiReviewPanelBgInverted;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelBgInverted;\n }\n }\n &.buttonlist-item-active {\n .indicator {\n position: absolute;\n display: block;\n z-index: 1;\n color: $uiReviewPanelTextDefault;\n height: 1.4rem;\n min-width: 1.6rem;\n top: unset;\n bottom: -1.7rem;\n padding: 0;\n /* centering horizontally */\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &.correct {\n .buttonlist-score-badge {\n background-color: $correctColor;\n }\n }\n\n &.incorrect {\n .buttonlist-score-badge {\n background-color: $incorrectColor;\n }\n }\n\n &.score-pending {\n .buttonlist-score-badge {\n background-color: $pendingColor;\n }\n }\n\n &.score-partial {\n .buttonlist-score-badge {\n background-color: $partialColor;\n }\n }\n }\n\n /* disabling is applied at buttonlist-item or buttonlist-items level */\n &:not(.disabled) .buttonlist-item:not(.disabled) {\n .buttonlist-btn:hover {\n background-color: $hoverBgColor;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n &.disabled,\n .buttonlist-item.disabled {\n /* reset global styles */\n background-color: unset !important;\n opacity: 1 !important;\n text-shadow: none !important;\n\n .buttonlist-btn {\n cursor: not-allowed;\n /* reset global styles */\n text-shadow: none;\n }\n }\n\n\n /****** keyboard focus styles *******/\n .buttonlist-item {\n &.key-navigation-highlight .buttonlist-btn::before,\n .buttonlist-btn.buttonlist-btn-focus:focus::before {\n content: '';\n display: block;\n position: absolute;\n width: 5.2rem;\n height: 5.2rem;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border-width: $borderMedium;\n border-color: $uiReviewPanelPrimaryHighlight;\n border-style: dotted;\n border-radius: $radiusCircular;\n }\n\n &.key-navigation-highlight.buttonlist-item-active .buttonlist-btn .indicator,\n &.buttonlist-item-active .buttonlist-btn.buttonlist-btn-focus:focus .indicator,\n &.buttonlist-item-active .buttonlist-btn:focus-visible .indicator {\n color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.viewed .buttonlist-btn,\n &.viewed .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.answered .buttonlist-btn,\n &.answered .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelPrimaryHighlight;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n}\n","@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix: '') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: calc(100 / ($count - 1));\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient(#{$css});\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: calc((($gridPx - ($numCols * $gutter)) / $numCols));\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-inline-start: $marginPercent;\n inline-size: $spanPercent;\n}\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n } @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction: row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n } @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n } @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, 0.2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return calc(($colWidth * 100 / $context) * 1%);\n}\n\n@function remDist($fontSizePx) {\n @return calc(($fontSizePx / 10) * 1rem);\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha));\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha));\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: calc(($remPx) * 1px) !important;\n font-size: calc(($remPx / 10) * 1rem) !important;\n } @else {\n font-size: calc(($remPx) * 1px);\n font-size: calc(($remPx / 10) * 1rem);\n }\n}\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} {\n @content;\n }\n @-moz-keyframes #{$name} {\n @content;\n }\n @-webkit-keyframes #{$name} {\n @content;\n }\n @keyframes #{$name} {\n @content;\n }\n}\n\n@mixin animation($value, $type: '') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type: all, $duration: 0.5s, $effect: ease-out, $delay: 0s) {\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s) {\n @include keyframes(fade) {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat() {\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n\n/*\n * Every style defined here must be mirrored with `writing-mode-horizontal-tb` mixin.\n Because writing-mode can be defined on 2 levels: a) item, b) text block or interaction;\n so if there's a horizontal block inside vertical item, vertical styles should *not* be used for it.\n */\n@mixin writing-mode-vertical-rl {\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl\")} {\n @content;\n }\n }\n}\n@mixin writing-mode-horizontal-tb {\n & {\n @content;\n }\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl .writing-mode-horizontal-tb\")} {\n @content;\n }\n }\n}\n","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-restricted { content: \"\\e92c\"; }\n@mixin icon-blocked { content: \"\\e92d\"; }\n@mixin icon-copy { content: \"\\e92b\"; }\n@mixin icon-align-center { content: \"\\e92a\"; }\n@mixin icon-multiple-magicwand { content: \"\\e929\"; }\n@mixin icon-sd-import { content: \"\\e91f\"; }\n@mixin icon-sd-export { content: \"\\e924\"; }\n@mixin icon-browse { content: \"\\e925\"; }\n@mixin icon-minus { content: \"\\e926\"; }\n@mixin icon-plus { content: \"\\e927\"; }\n@mixin icon-sd-save { content: \"\\e928\"; }\n@mixin icon-back-button { content: \"\\e91e\"; }\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\n@mixin icon-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-duplicate { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2022 Open Assessment Technologies SA ;\n */\n@import \"inc/bootstrap\";\n\n$correctColor: $success;\n$incorrectColor: $error;\n$hoverBgColor: hsl(208, 100%, 95%);\n$pendingColor: #6E6E6E;\n$partialColor: #AD5700;\n\n$radiusCircular: 50%;\n$sizeDefault: 4rem;\n$hitboxSize: 6.25rem;\n$borderThin: 0.125rem;\n$borderMedium: 0.25rem;\n\n.buttonlist-items {\n display: flex;\n flex-wrap: wrap;\n justify-content: start;\n padding: 0;\n\n /****** base styles *******/\n .buttonlist-item {\n height: $hitboxSize;\n width: $hitboxSize;\n display: flex;\n justify-content: center; /* aligning left - cut focusing board for keyboard interacting */\n align-items: center;\n /* reset parent styles */\n padding: 0;\n border: none;\n }\n\n .buttonlist-btn {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: $sizeDefault;\n width: $sizeDefault;\n border-style: solid;\n border-radius: $radiusCircular;\n border-width: $borderThin;\n border-color: $uiReviewPanelTextDisabled;\n margin: 1.3rem 0.75rem 1rem 0.75rem;\n padding: 0; /*Fixes firefox button jumps*/\n font-weight: bold;\n font-size: 1.6rem;\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelTextDisabled;\n text-shadow: none;\n cursor: pointer;\n }\n\n .buttonlist-label {\n font-family: 'Nunito Sans', 'Source Sans Pro', Arial, sans-serif;\n max-width: 3.75rem;\n overflow: hidden;\n white-space: nowrap;\n line-height: initial;\n }\n .buttonlist-icon {\n padding: 0;\n top: 0;\n left: 0;\n }\n .buttonlist-icon:not([class*=\"icon-\"]) {\n display: none;\n }\n .buttonlist-icon[class*=\"icon-\"] ~ .buttonlist-label {\n display: none;\n }\n\n .indicator {\n display: none;\n }\n\n .buttonlist-score-badge {\n position: absolute;\n top: -0.9rem;\n right: -0.9rem;\n width: 2rem;\n height: 2rem;\n border-radius: 100%;\n color: $uiReviewPanelTextInverted;\n border: 0.1rem solid $uiReviewPanelTextInverted;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonlist-score-icon {\n font-size: 1.2rem;\n padding: 0;\n top: 0;\n left: 0;\n }\n\n .icon-info::before {\n @include icon-info-bare;\n }\n .icon-flagged::before {\n @include icon-bookmark;\n }\n .icon-correct::before {\n @include icon-result-ok;\n }\n .icon-incorrect::before {\n @include icon-result-nok;\n }\n .icon-score-pending::before {\n @include icon-time;\n }\n .icon-score-partial::before {\n @include icon-score-partial;\n }\n\n\n /****** step state styles *******/\n .buttonlist-item {\n @include disableSelect();\n\n &.viewed {\n .buttonlist-btn {\n border-width: $borderMedium;\n color: $uiReviewPanelTextDefault;\n border-color: $uiReviewPanelTextDefault;\n }\n }\n &.answered {\n .buttonlist-btn {\n border-width: $borderMedium;\n background-color: $uiReviewPanelBgInverted;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelBgInverted;\n }\n }\n &.buttonlist-item-active {\n .indicator {\n position: absolute;\n display: block;\n z-index: 1;\n color: $uiReviewPanelTextDefault;\n height: 1.4rem;\n min-width: 1.6rem;\n top: unset;\n bottom: -1.7rem;\n padding: 0;\n /* centering horizontally */\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &.correct {\n .buttonlist-score-badge {\n background-color: $correctColor;\n }\n }\n\n &.incorrect {\n .buttonlist-score-badge {\n background-color: $incorrectColor;\n }\n }\n\n &.score-pending {\n .buttonlist-score-badge {\n background-color: $pendingColor;\n }\n }\n\n &.score-partial {\n .buttonlist-score-badge {\n background-color: $partialColor;\n }\n }\n }\n\n /* disabling is applied at buttonlist-item or buttonlist-items level */\n &:not(.disabled) .buttonlist-item:not(.disabled) {\n .buttonlist-btn:hover {\n background-color: $hoverBgColor;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n &.disabled,\n .buttonlist-item.disabled {\n /* reset global styles */\n background-color: unset !important;\n opacity: 1 !important;\n text-shadow: none !important;\n\n .buttonlist-btn {\n cursor: not-allowed;\n /* reset global styles */\n text-shadow: none;\n }\n }\n\n\n /****** keyboard focus styles *******/\n .buttonlist-item {\n &.key-navigation-highlight .buttonlist-btn::before,\n .buttonlist-btn.buttonlist-btn-focus:focus::before {\n content: '';\n display: block;\n position: absolute;\n width: 5.2rem;\n height: 5.2rem;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border-width: $borderMedium;\n border-color: $uiReviewPanelPrimaryHighlight;\n border-style: dotted;\n border-radius: $radiusCircular;\n }\n\n &.key-navigation-highlight.buttonlist-item-active .buttonlist-btn .indicator,\n &.buttonlist-item-active .buttonlist-btn.buttonlist-btn-focus:focus .indicator,\n &.buttonlist-item-active .buttonlist-btn:focus-visible .indicator {\n color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.viewed .buttonlist-btn,\n &.viewed .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.answered .buttonlist-btn,\n &.answered .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelPrimaryHighlight;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n}\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\n\n$darkBar: rgb(51, 51, 51);\n$darkBarTxt: rgb(230, 230, 230);\n$darkBarIcon: rgb(220, 220, 220);\n\n$actionLinkColor: #276d9b;\n$actionLinkHoverColor: #4f83a7;\n\n$colorBrand: #266d9c;\n$colorBrandLight: #e4ecef;\n$colorGsDark: #121212; //color ported from nextgen TAO design system\n\n$colorWheel-01: #c3ba13;\n$colorWheel-02: #84a610;\n$colorWheel-03: #2b8e0e;\n$colorWheel-04: #0f9787;\n$colorWheel-05: #0e5d91;\n$colorWheel-06: #0d2689;\n$colorWheel-07: #400d83;\n$colorWheel-08: #960e7d;\n$colorWheel-09: #ba122b;\n$colorWheel-10: #c34713;\n$colorWheel-11: #c36f13;\n$colorWheel-12: #c39413;\n"]}
1
+ {"version":3,"sources":["../scss/item-button-list.scss%23sass","../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../scss/item-button-list.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;EAAA;ACaA;;;;;;CAAA;AAwQA,oEAAA;AAWA;;;;EAAA;AChSA,gBAAA;AF+BA;EACI,aAAA;EACA,eAAA;EACA,sBAAA;EACA,UAAA;EAEA,2BAAA;AGAJ;AHCI;EACI,eAAA;EACA,cAAA;EACA,aAAA;EACA,uBAAA,EAAA,gEAAA;EACA,mBAAA;EACA,wBAAA;EACA,UAAA;EACA,YAAA;AGCR;AHEI;EACI,kBAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,YAAA;EACA,WAAA;EACA,mBAAA;EACA,kBAAA;EACA,sBAAA;EACA,6BAAA;EACA,mCAAA;EACA,UAAA,EAAA,6BAAA;EACA,iBAAA;EACA,iBAAA;EACA,oCInCa;EJoCb,sBAAA;EACA,iBAAA;EACA,eAAA;AGAR;AHGI;EACI,gEAAA;EACA,kBAAA;EACA,gBAAA;EACA,mBAAA;EACA,oBAAA;AGDR;AHGI;EACI,UAAA;EACA,MAAA;EACA,OAAA;AGDR;AHGI;EACI,aAAA;AGDR;AHGI;EACI,aAAA;AGDR;AHII;EACI,aAAA;AGFR;AHKI;EACI,kBAAA;EACA,YAAA;EACA,cAAA;EACA,WAAA;EACA,YAAA;EACA,mBAAA;EACA,yBIvEa;EJwEb,uCAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;AGHR;AHKI;EACI,iBAAA;EACA,UAAA;EACA,MAAA;EACA,OAAA;AGHR;AHMI;EEhFoB,gBAAA;AC6ExB;AHMI;EEjFmB,gBAAA;AC8EvB;AHMI;EEwGoB,gBAAA;AC3GxB;AHMI;EEoGqB,gBAAA;ACvGzB;AHMI;EEZe,gBAAA;ACSnB;AHMI;EElGwB,gBAAA;AC+F5B;AH9FA;EAsGI,iCAAA;AGLJ;AHMI;EC9EQ,yBAAA;EAAA,oBAAA;EAAA,iBAAA;AE+EZ;AHGY;EACI,qBAAA;EACA,sBI3FW;EJ4FX,6BI5FW;AD2F3B;AHKY;EACI,qBAAA;EACA,iCAAA;EACA,yBAAA;EACA,6BAAA;AGHhB;AHOY;EACI,kBAAA;EACA,cAAA;EACA,UAAA;EACA,sBAAA;EACA,cAAA;EACA,iBAAA;EACA,UAAA;EACA,eAAA;EACA,UAAA;EACA,2BAAA;EACA,SAAA;EACA,2BAAA;AGLhB;AHUY;EACI,kCI1KN;ADkKV;AHaY;EACI,kCAAA;AGXhB;AHgBY;EACI,yBAjKD;AGmJf;AHmBY;EACI,yBAAA;AGjBhB;AH7IA;EAmKI,sEAAA;AGnBJ;AHqBQ;EACI,qCAAA;EACA,0BInJoB;EJoJpB,iCAAA;AGnBZ;AHsBI;;EAEK,wBAAA;EACA,kCAAA;EACA,qBAAA;EACA,4BAAA;AGpBT;AHsBQ;;EACI,mBAAA;EACA,wBAAA;EACA,iBAAA;AGnBZ;AHlKA;EA0LI,qCAAA;AGrBJ;AHuBQ;;EAEI,WAAA;EACA,cAAA;EACA,kBAAA;EACA,aAAA;EACA,cAAA;EACA,SAAA;EACA,QAAA;EACA,gCAAA;EACA,qBAAA;EACA,iCInLoB;EJoLpB,oBAAA;EACA,kBAAA;AGrBZ;AHwBQ;EAGI,0BAAA;AGxBZ;AH2BQ;EAEI,oCItNS;EJuNT,0BAAA;EACA,iCAAA;AG1BZ;AH6BQ;EAEI,qCIvMoB;EJwMpB,yBI9NS;EJ+NT,iCIzMoB;AD6KhC","file":"item-button-list.css","sourcesContent":["/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2022 Open Assessment Technologies SA ;\n */\n@import \"inc/bootstrap\";\n\n$correctColor: $success;\n$incorrectColor: $error;\n$hoverBgColor: hsl(208, 100%, 95%);\n$pendingColor: #6E6E6E;\n$partialColor: #AD5700;\n\n$radiusCircular: 50%;\n$sizeDefault: 4rem;\n$hitboxSize: 6.25rem;\n$borderThin: 0.125rem;\n$borderMedium: 0.25rem;\n\n.buttonlist-items {\n display: flex;\n flex-wrap: wrap;\n justify-content: start;\n padding: 0;\n\n /****** base styles *******/\n .buttonlist-item {\n height: $hitboxSize;\n width: $hitboxSize;\n display: flex;\n justify-content: center; /* aligning left - cut focusing board for keyboard interacting */\n align-items: center;\n /* reset parent styles */\n padding: 0;\n border: none;\n }\n\n .buttonlist-btn {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: $sizeDefault;\n width: $sizeDefault;\n border-style: solid;\n border-radius: $radiusCircular;\n border-width: $borderThin;\n border-color: $uiReviewPanelTextDisabled;\n margin: 1.3rem 0.75rem 1rem 0.75rem;\n padding: 0; /*Fixes firefox button jumps*/\n font-weight: bold;\n font-size: 1.6rem;\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelTextDisabled;\n text-shadow: none;\n cursor: pointer;\n }\n\n .buttonlist-label {\n font-family: 'Nunito Sans', 'Source Sans Pro', Arial, sans-serif;\n max-width: 3.75rem;\n overflow: hidden;\n white-space: nowrap;\n line-height: initial;\n }\n .buttonlist-icon {\n padding: 0;\n top: 0;\n left: 0;\n }\n .buttonlist-icon:not([class*=\"icon-\"]) {\n display: none;\n }\n .buttonlist-icon[class*=\"icon-\"] ~ .buttonlist-label {\n display: none;\n }\n\n .indicator {\n display: none;\n }\n\n .buttonlist-score-badge {\n position: absolute;\n top: -0.9rem;\n right: -0.9rem;\n width: 2rem;\n height: 2rem;\n border-radius: 100%;\n color: $uiReviewPanelTextInverted;\n border: 0.1rem solid $uiReviewPanelTextInverted;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonlist-score-icon {\n font-size: 1.2rem;\n padding: 0;\n top: 0;\n left: 0;\n }\n\n .icon-info::before {\n @include icon-info-bare;\n }\n .icon-flagged::before {\n @include icon-bookmark;\n }\n .icon-correct::before {\n @include icon-result-ok;\n }\n .icon-incorrect::before {\n @include icon-result-nok;\n }\n .icon-score-pending::before {\n @include icon-time;\n }\n .icon-score-partial::before {\n @include icon-score-partial;\n }\n\n\n /****** step state styles *******/\n .buttonlist-item {\n @include disableSelect();\n\n &.viewed {\n .buttonlist-btn {\n border-width: $borderMedium;\n color: $uiReviewPanelTextDefault;\n border-color: $uiReviewPanelTextDefault;\n }\n }\n &.answered {\n .buttonlist-btn {\n border-width: $borderMedium;\n background-color: $uiReviewPanelBgInverted;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelBgInverted;\n }\n }\n &.buttonlist-item-active {\n .indicator {\n position: absolute;\n display: block;\n z-index: 1;\n color: $uiReviewPanelTextDefault;\n height: 1.4rem;\n min-width: 1.6rem;\n top: unset;\n bottom: -1.7rem;\n padding: 0;\n /* centering horizontally */\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &.correct {\n .buttonlist-score-badge {\n background-color: $correctColor;\n }\n }\n\n &.incorrect {\n .buttonlist-score-badge {\n background-color: $incorrectColor;\n }\n }\n\n &.score-pending {\n .buttonlist-score-badge {\n background-color: $pendingColor;\n }\n }\n\n &.score-partial {\n .buttonlist-score-badge {\n background-color: $partialColor;\n }\n }\n }\n\n /* disabling is applied at buttonlist-item or buttonlist-items level */\n &:not(.disabled) .buttonlist-item:not(.disabled) {\n .buttonlist-btn:hover {\n background-color: $hoverBgColor;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n &.disabled,\n .buttonlist-item.disabled {\n /* reset global styles */\n background-color: unset !important;\n opacity: 1 !important;\n text-shadow: none !important;\n\n .buttonlist-btn {\n cursor: not-allowed;\n /* reset global styles */\n text-shadow: none;\n }\n }\n\n\n /****** keyboard focus styles *******/\n .buttonlist-item {\n &.key-navigation-highlight .buttonlist-btn::before,\n .buttonlist-btn.buttonlist-btn-focus:focus::before {\n content: '';\n display: block;\n position: absolute;\n width: 5.2rem;\n height: 5.2rem;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border-width: $borderMedium;\n border-color: $uiReviewPanelPrimaryHighlight;\n border-style: dotted;\n border-radius: $radiusCircular;\n }\n\n &.key-navigation-highlight.buttonlist-item-active .buttonlist-btn .indicator,\n &.buttonlist-item-active .buttonlist-btn.buttonlist-btn-focus:focus .indicator,\n &.buttonlist-item-active .buttonlist-btn:focus-visible .indicator {\n color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.viewed .buttonlist-btn,\n &.viewed .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.answered .buttonlist-btn,\n &.answered .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelPrimaryHighlight;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n}\n","@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix: '') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: calc(100 / ($count - 1));\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient(#{$css});\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: calc((($gridPx - ($numCols * $gutter)) / $numCols));\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-inline-start: $marginPercent;\n inline-size: $spanPercent;\n}\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n } @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction: row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n } @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n } @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, 0.2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return calc(($colWidth * 100 / $context) * 1%);\n}\n\n@function remDist($fontSizePx) {\n @return calc(($fontSizePx / 10) * 1rem);\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha));\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha));\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: calc(($remPx) * 1px) !important;\n font-size: calc(($remPx / 10) * 1rem) !important;\n } @else {\n font-size: calc(($remPx) * 1px);\n font-size: calc(($remPx / 10) * 1rem);\n }\n}\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} {\n @content;\n }\n @-moz-keyframes #{$name} {\n @content;\n }\n @-webkit-keyframes #{$name} {\n @content;\n }\n @keyframes #{$name} {\n @content;\n }\n}\n\n@mixin animation($value, $type: '') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type: all, $duration: 0.5s, $effect: ease-out, $delay: 0s) {\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s) {\n @include keyframes(fade) {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat() {\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n\n/*\n * Every style defined here must be mirrored with `writing-mode-horizontal-tb` mixin.\n Because writing-mode can be defined on 2 levels: a) item, b) text block or interaction;\n so if there's a horizontal block inside vertical item, vertical styles should *not* be used for it.\n */\n@mixin writing-mode-vertical-rl {\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl\")} {\n @content;\n }\n }\n}\n@mixin writing-mode-horizontal-tb {\n & {\n @content;\n }\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl .writing-mode-horizontal-tb\")} {\n @content;\n }\n }\n}\n","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-restricted { content: \"\\e92c\"; }\n@mixin icon-blocked { content: \"\\e92d\"; }\n@mixin icon-copy { content: \"\\e92b\"; }\n@mixin icon-align-center { content: \"\\e92a\"; }\n@mixin icon-multiple-magicwand { content: \"\\e929\"; }\n@mixin icon-sd-import { content: \"\\e91f\"; }\n@mixin icon-sd-export { content: \"\\e924\"; }\n@mixin icon-browse { content: \"\\e925\"; }\n@mixin icon-minus { content: \"\\e926\"; }\n@mixin icon-plus { content: \"\\e927\"; }\n@mixin icon-sd-save { content: \"\\e928\"; }\n@mixin icon-back-button { content: \"\\e91e\"; }\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\n@mixin icon-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-duplicate { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","/**\n * This program is free software; you can redistribute it and/or\n * modify it under the terms of the GNU General Public License\n * as published by the Free Software Foundation; under version 2\n * of the License (non-upgradable).\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n *\n * Copyright (c) 2022 Open Assessment Technologies SA ;\n */\n@import \"inc/bootstrap\";\n\n$correctColor: $success;\n$incorrectColor: $error;\n$hoverBgColor: hsl(208, 100%, 95%);\n$pendingColor: #6E6E6E;\n$partialColor: #AD5700;\n\n$radiusCircular: 50%;\n$sizeDefault: 4rem;\n$hitboxSize: 6.25rem;\n$borderThin: 0.125rem;\n$borderMedium: 0.25rem;\n\n.buttonlist-items {\n display: flex;\n flex-wrap: wrap;\n justify-content: start;\n padding: 0;\n\n /****** base styles *******/\n .buttonlist-item {\n height: $hitboxSize;\n width: $hitboxSize;\n display: flex;\n justify-content: center; /* aligning left - cut focusing board for keyboard interacting */\n align-items: center;\n /* reset parent styles */\n padding: 0;\n border: none;\n }\n\n .buttonlist-btn {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n height: $sizeDefault;\n width: $sizeDefault;\n border-style: solid;\n border-radius: $radiusCircular;\n border-width: $borderThin;\n border-color: $uiReviewPanelTextDisabled;\n margin: 1.3rem 0.75rem 1rem 0.75rem;\n padding: 0; /*Fixes firefox button jumps*/\n font-weight: bold;\n font-size: 1.6rem;\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelTextDisabled;\n text-shadow: none;\n cursor: pointer;\n }\n\n .buttonlist-label {\n font-family: 'Nunito Sans', 'Source Sans Pro', Arial, sans-serif;\n max-width: 3.75rem;\n overflow: hidden;\n white-space: nowrap;\n line-height: initial;\n }\n .buttonlist-icon {\n padding: 0;\n top: 0;\n left: 0;\n }\n .buttonlist-icon:not([class*=\"icon-\"]) {\n display: none;\n }\n .buttonlist-icon[class*=\"icon-\"] ~ .buttonlist-label {\n display: none;\n }\n\n .indicator {\n display: none;\n }\n\n .buttonlist-score-badge {\n position: absolute;\n top: -0.9rem;\n right: -0.9rem;\n width: 2rem;\n height: 2rem;\n border-radius: 100%;\n color: $uiReviewPanelTextInverted;\n border: 0.1rem solid $uiReviewPanelTextInverted;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n .buttonlist-score-icon {\n font-size: 1.2rem;\n padding: 0;\n top: 0;\n left: 0;\n }\n\n .icon-info::before {\n @include icon-info-bare;\n }\n .icon-flagged::before {\n @include icon-bookmark;\n }\n .icon-correct::before {\n @include icon-result-ok;\n }\n .icon-incorrect::before {\n @include icon-result-nok;\n }\n .icon-score-pending::before {\n @include icon-time;\n }\n .icon-score-partial::before {\n @include icon-score-partial;\n }\n\n\n /****** step state styles *******/\n .buttonlist-item {\n @include disableSelect();\n\n &.viewed {\n .buttonlist-btn {\n border-width: $borderMedium;\n color: $uiReviewPanelTextDefault;\n border-color: $uiReviewPanelTextDefault;\n }\n }\n &.answered {\n .buttonlist-btn {\n border-width: $borderMedium;\n background-color: $uiReviewPanelBgInverted;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelBgInverted;\n }\n }\n &.buttonlist-item-active {\n .indicator {\n position: absolute;\n display: block;\n z-index: 1;\n color: $uiReviewPanelTextDefault;\n height: 1.4rem;\n min-width: 1.6rem;\n top: unset;\n bottom: -1.7rem;\n padding: 0;\n /* centering horizontally */\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n &.correct {\n .buttonlist-score-badge {\n background-color: $correctColor;\n }\n }\n\n &.incorrect {\n .buttonlist-score-badge {\n background-color: $incorrectColor;\n }\n }\n\n &.score-pending {\n .buttonlist-score-badge {\n background-color: $pendingColor;\n }\n }\n\n &.score-partial {\n .buttonlist-score-badge {\n background-color: $partialColor;\n }\n }\n }\n\n /* disabling is applied at buttonlist-item or buttonlist-items level */\n &:not(.disabled) .buttonlist-item:not(.disabled) {\n .buttonlist-btn:hover {\n background-color: $hoverBgColor;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n &.disabled,\n .buttonlist-item.disabled {\n /* reset global styles */\n background-color: unset !important;\n opacity: 1 !important;\n text-shadow: none !important;\n\n .buttonlist-btn {\n cursor: not-allowed;\n /* reset global styles */\n text-shadow: none;\n }\n }\n\n\n /****** keyboard focus styles *******/\n .buttonlist-item {\n &.key-navigation-highlight .buttonlist-btn::before,\n .buttonlist-btn.buttonlist-btn-focus:focus::before {\n content: '';\n display: block;\n position: absolute;\n width: 5.2rem;\n height: 5.2rem;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n border-width: $borderMedium;\n border-color: $uiReviewPanelPrimaryHighlight;\n border-style: dotted;\n border-radius: $radiusCircular;\n }\n\n &.key-navigation-highlight.buttonlist-item-active .buttonlist-btn .indicator,\n &.buttonlist-item-active .buttonlist-btn.buttonlist-btn-focus:focus .indicator,\n &.buttonlist-item-active .buttonlist-btn:focus-visible .indicator {\n color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.viewed .buttonlist-btn,\n &.viewed .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelBgDefault;\n color: $uiReviewPanelPrimaryHighlight;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n\n &.key-navigation-highlight.answered .buttonlist-btn,\n &.answered .buttonlist-btn.buttonlist-btn-focus:focus {\n background-color: $uiReviewPanelPrimaryHighlight;\n color: $uiReviewPanelTextInverted;\n border-color: $uiReviewPanelPrimaryHighlight;\n }\n }\n}\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\n\n$darkBar: rgb(51, 51, 51);\n$darkBarTxt: rgb(230, 230, 230);\n$darkBarIcon: rgb(220, 220, 220);\n\n$actionLinkColor: #276d9b;\n$actionLinkHoverColor: #4f83a7;\n\n$colorBrand: #266d9c;\n$colorBrandLight: #e4ecef;\n$colorGsDark: #121212; //color ported from nextgen TAO design system\n\n$colorWheel-01: #c3ba13;\n$colorWheel-02: #84a610;\n$colorWheel-03: #2b8e0e;\n$colorWheel-04: #0f9787;\n$colorWheel-05: #0e5d91;\n$colorWheel-06: #0d2689;\n$colorWheel-07: #400d83;\n$colorWheel-08: #960e7d;\n$colorWheel-09: #ba122b;\n$colorWheel-10: #c34713;\n$colorWheel-11: #c36f13;\n$colorWheel-12: #c39413;\n"]}
@@ -192,8 +192,7 @@ define(['jquery', 'ui/autoscroll', 'ui/component', 'handlebars', 'lib/handlebars
192
192
  * @fires ready - When the component is ready to work
193
193
  * @fires click When an item is selected by the user
194
194
  */
195
- function itemButtonListFactory() {
196
- let config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
195
+ function itemButtonListFactory(config = {}) {
197
196
  let component;
198
197
  let activeItemId = null;
199
198
 
@@ -54,10 +54,9 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
54
54
  * @param {Boolean} propagateTab - allows the key event to propagate when the Tab key is pressed.
55
55
  * @returns {navigableDomElement}
56
56
  */
57
- init() {
58
- let {
59
- propagateTab = false
60
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
57
+ init({
58
+ propagateTab = false
59
+ } = {}) {
61
60
  const keyboard = (key, el) => {
62
61
  /**
63
62
  * @event key
@@ -433,8 +433,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
433
433
  * A negative direction will lead to the last focusable element.
434
434
  * @returns {keyNavigator}
435
435
  */
436
- focus() {
437
- let direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
436
+ focus(direction = 1) {
438
437
  let position = -1;
439
438
 
440
439
  // try to get the default position
@@ -55,7 +55,7 @@ Usage:
55
55
  text-align: right;
56
56
  min-width: 100px;
57
57
  border-bottom: 3px solid;
58
- color: #3e7da7;
58
+ color: rgb(24.3921568627%, 49.1764705882%, 65.4901960784%);
59
59
  outline: 0;
60
60
  }
61
61
  .listbox .list-box .text-link:hover {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../scss/listbox.scss%23sass","../scss/listbox.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"AAaA;;;;;;CAAA;AAwQA,oEAAA;AAWA;;;;EAAA;AChSA,gBAAA;ACMA;EACE,iBAAA;EACA,YAAA;ACSF;ADPE;EACE,0CAAA;EFsMI,eAAA;EACA,iBAAA;EErMJ,mBAAA;ACUJ;ADRE;EACE,0CAAA;EFiMI,eAAA;EACA,iBAAA;EEhMJ,mBAAA;ACWJ;ADRE;EACE,WAAA;ACUJ;ADPE;EF8EE,sBAAA;EACA,kBAAA;EACA,0BAAA;EE9EA,mBEOmB;EFNnB,mBAAA;EACA,aAAA;EACA,kBAAA;ACWJ;ADPI;EF+KI,eAAA;EACA,eAAA;EE9KF,kBAAA;EACA,uBEnCC;EFoCD,6BAAA;ACUN;ADRI;EACE,kBAAA;EACA,WAAA;EACA,YAAA;EACA,2BAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,cAAA;EACA,UAAA;ACUN;ADTM;EACE,uBEjDD;AD4DP;ADTM;EACI,kBAAA;ACWV;ADRI;EACE,iBAAA;ACUN;ADRI;EACE,kBAAA;ACUN;ADRM;EACE,WAAA;EACA,cAAA;EACA,yBAAA;EACA,yBAAA;EACA,4BAAA;EACA,kBAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;ACUR;ADPM;EACE,uBAAA;EACA,WAAA;EACA,wBAAA;EACA,uBAAA;EACA,SAAA;ACSR;ADNM;EACE,wBAAA;EACA,WAAA;EACA,wBAAA;EACA,uBAAA;ACQR;ADFI;EACE,qBAAA;ACIN;ADFI;EACE,aAAA;ACIN;ADAI;EACE,qBAAA;ACEN;ADAI;EACE,aAAA;ACEN;ADEI;EACE,qBAAA;ACAN;ADEI;EACE,aAAA;ACAN","file":"listbox.css","sourcesContent":["@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix: '') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: calc(100 / ($count - 1));\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient(#{$css});\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: calc((($gridPx - ($numCols * $gutter)) / $numCols));\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-inline-start: $marginPercent;\n inline-size: $spanPercent;\n}\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n } @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction: row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n } @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n } @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, 0.2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return calc(($colWidth * 100 / $context) * 1%);\n}\n\n@function remDist($fontSizePx) {\n @return calc(($fontSizePx / 10) * 1rem);\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha));\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha));\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: calc(($remPx) * 1px) !important;\n font-size: calc(($remPx / 10) * 1rem) !important;\n } @else {\n font-size: calc(($remPx) * 1px);\n font-size: calc(($remPx / 10) * 1rem);\n }\n}\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} {\n @content;\n }\n @-moz-keyframes #{$name} {\n @content;\n }\n @-webkit-keyframes #{$name} {\n @content;\n }\n @keyframes #{$name} {\n @content;\n }\n}\n\n@mixin animation($value, $type: '') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type: all, $duration: 0.5s, $effect: ease-out, $delay: 0s) {\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s) {\n @include keyframes(fade) {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat() {\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n\n/*\n * Every style defined here must be mirrored with `writing-mode-horizontal-tb` mixin.\n Because writing-mode can be defined on 2 levels: a) item, b) text block or interaction;\n so if there's a horizontal block inside vertical item, vertical styles should *not* be used for it.\n */\n@mixin writing-mode-vertical-rl {\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl\")} {\n @content;\n }\n }\n}\n@mixin writing-mode-horizontal-tb {\n & {\n @content;\n }\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl .writing-mode-horizontal-tb\")} {\n @content;\n }\n }\n}\n","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-restricted { content: \"\\e92c\"; }\n@mixin icon-blocked { content: \"\\e92d\"; }\n@mixin icon-copy { content: \"\\e92b\"; }\n@mixin icon-align-center { content: \"\\e92a\"; }\n@mixin icon-multiple-magicwand { content: \"\\e929\"; }\n@mixin icon-sd-import { content: \"\\e91f\"; }\n@mixin icon-sd-export { content: \"\\e924\"; }\n@mixin icon-browse { content: \"\\e925\"; }\n@mixin icon-minus { content: \"\\e926\"; }\n@mixin icon-plus { content: \"\\e927\"; }\n@mixin icon-sd-save { content: \"\\e928\"; }\n@mixin icon-back-button { content: \"\\e91e\"; }\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\n@mixin icon-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-duplicate { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","@import \"inc/bootstrap\";\n\n$entryArrowWidthBefore: 20;\n$entryArrowWidthAfter: 20;\n$entryArrowHeight: 150;\n\n.listbox {\n max-width: 1024px;\n margin: auto;\n\n h1 {\n font-family: $headingFont;\n @include font-size(22);\n font-weight: normal;\n }\n h2 {\n font-family: $headingFont;\n @include font-size(18);\n margin: 30px 0 10px;\n }\n\n .list {\n width: 100%;\n }\n\n .box {\n @include simple-border();\n background: $uiClickableDefaultBg;\n margin-bottom: 20px;\n padding: 20px;\n position: relative;\n }\n\n .list-box {\n h1, h3 {\n @include font-size(20);\n margin-bottom: 7px;\n color: $info;\n text-shadow: 1px 1px 1px #fff;\n }\n .text-link {\n position: absolute;\n right: -1px;\n bottom: -1px;\n padding: 20px 20px 8px 20px;\n text-align: right;\n min-width: 100px;\n border-bottom: 3px solid;\n color: $uiClickableHoverBg;\n outline: 0;\n &:hover {\n color: $info;\n }\n [class*=\" icon-\"], [class^=\"icon-\"] {\n margin-right: 10px;\n }\n }\n a {\n min-height: $entryArrowHeight * 1px;\n }\n .box {\n padding-left: 40px;\n\n &:before, &:after {\n content: '';\n height: calc(($entryArrowHeight / 4) * 1px);\n border: solid transparent;\n border-top-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n border-bottom-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n position: absolute;\n left: -1px;\n top: 54px;\n z-index: 2;\n }\n\n &:before {\n border-left-color: $uiGeneralContentBorder;\n width: $entryArrowWidthBefore * 1px;\n border-right-width: calc(($entryArrowWidthBefore / 2) * 1px);\n border-left-width: calc(($entryArrowWidthBefore / 2) * 1px);\n left: 0px;\n }\n\n &:after {\n border-left-color: white;\n width: $entryArrowWidthAfter * 1px;\n border-right-width: calc(($entryArrowWidthAfter / 2) * 1px);\n border-left-width: calc(($entryArrowWidthAfter / 2) * 1px);\n }\n }\n }\n\n &.loading {\n .loading {\n display: inline-block;\n }\n .list, .empty-list, .available-list {\n display: none;\n }\n }\n &.loaded {\n .list, .available-list {\n display: inline-block;\n }\n .loading, .empty-list {\n display: none;\n }\n }\n &.empty {\n .empty-list {\n display: inline-block;\n }\n .loading, .list, .available-list {\n display: none;\n }\n }\n}\n","@import \"inc/bootstrap\";\n\n$entryArrowWidthBefore: 20;\n$entryArrowWidthAfter: 20;\n$entryArrowHeight: 150;\n\n.listbox {\n max-width: 1024px;\n margin: auto;\n\n h1 {\n font-family: $headingFont;\n @include font-size(22);\n font-weight: normal;\n }\n h2 {\n font-family: $headingFont;\n @include font-size(18);\n margin: 30px 0 10px;\n }\n\n .list {\n width: 100%;\n }\n\n .box {\n @include simple-border();\n background: $uiClickableDefaultBg;\n margin-bottom: 20px;\n padding: 20px;\n position: relative;\n }\n\n .list-box {\n h1, h3 {\n @include font-size(20);\n margin-bottom: 7px;\n color: $info;\n text-shadow: 1px 1px 1px #fff;\n }\n .text-link {\n position: absolute;\n right: -1px;\n bottom: -1px;\n padding: 20px 20px 8px 20px;\n text-align: right;\n min-width: 100px;\n border-bottom: 3px solid;\n color: $uiClickableHoverBg;\n outline: 0;\n &:hover {\n color: $info;\n }\n [class*=\" icon-\"], [class^=\"icon-\"] {\n margin-right: 10px;\n }\n }\n a {\n min-height: $entryArrowHeight * 1px;\n }\n .box {\n padding-left: 40px;\n\n &:before, &:after {\n content: '';\n height: calc(($entryArrowHeight / 4) * 1px);\n border: solid transparent;\n border-top-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n border-bottom-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n position: absolute;\n left: -1px;\n top: 54px;\n z-index: 2;\n }\n\n &:before {\n border-left-color: $uiGeneralContentBorder;\n width: $entryArrowWidthBefore * 1px;\n border-right-width: calc(($entryArrowWidthBefore / 2) * 1px);\n border-left-width: calc(($entryArrowWidthBefore / 2) * 1px);\n left: 0px;\n }\n\n &:after {\n border-left-color: white;\n width: $entryArrowWidthAfter * 1px;\n border-right-width: calc(($entryArrowWidthAfter / 2) * 1px);\n border-left-width: calc(($entryArrowWidthAfter / 2) * 1px);\n }\n }\n }\n\n &.loading {\n .loading {\n display: inline-block;\n }\n .list, .empty-list, .available-list {\n display: none;\n }\n }\n &.loaded {\n .list, .available-list {\n display: inline-block;\n }\n .loading, .empty-list {\n display: none;\n }\n }\n &.empty {\n .empty-list {\n display: inline-block;\n }\n .loading, .list, .available-list {\n display: none;\n }\n }\n}\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\n\n$darkBar: rgb(51, 51, 51);\n$darkBarTxt: rgb(230, 230, 230);\n$darkBarIcon: rgb(220, 220, 220);\n\n$actionLinkColor: #276d9b;\n$actionLinkHoverColor: #4f83a7;\n\n$colorBrand: #266d9c;\n$colorBrandLight: #e4ecef;\n$colorGsDark: #121212; //color ported from nextgen TAO design system\n\n$colorWheel-01: #c3ba13;\n$colorWheel-02: #84a610;\n$colorWheel-03: #2b8e0e;\n$colorWheel-04: #0f9787;\n$colorWheel-05: #0e5d91;\n$colorWheel-06: #0d2689;\n$colorWheel-07: #400d83;\n$colorWheel-08: #960e7d;\n$colorWheel-09: #ba122b;\n$colorWheel-10: #c34713;\n$colorWheel-11: #c36f13;\n$colorWheel-12: #c39413;\n"]}
1
+ {"version":3,"sources":["../../../scss/inc/_functions.scss","../../../scss/inc/fonts/_tao-icon-vars.scss","../scss/listbox.scss%23sass","../scss/listbox.scss","../../../scss/inc/_colors.scss"],"names":[],"mappings":"AAaA;;;;;;CAAA;AAwQA,oEAAA;AAWA;;;;EAAA;AChSA,gBAAA;ACMA;EACE,iBAAA;EACA,YAAA;ACSF;ADPE;EACE,0CAAA;EFsMI,eAAA;EACA,iBAAA;EErMJ,mBAAA;ACUJ;ADRE;EACE,0CAAA;EFiMI,eAAA;EACA,iBAAA;EEhMJ,mBAAA;ACWJ;ADRE;EACE,WAAA;ACUJ;ADPE;EF8EE,sBAAA;EACA,kBAAA;EACA,0BAAA;EE9EA,mBEOmB;EFNnB,mBAAA;EACA,aAAA;EACA,kBAAA;ACWJ;ADPI;EF+KI,eAAA;EACA,eAAA;EE9KF,kBAAA;EACA,uBEnCC;EFoCD,6BAAA;ACUN;ADRI;EACE,kBAAA;EACA,WAAA;EACA,YAAA;EACA,2BAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,0DAAA;EACA,UAAA;ACUN;ADTM;EACE,uBEjDD;AD4DP;ADTM;EACI,kBAAA;ACWV;ADRI;EACE,iBAAA;ACUN;ADRI;EACE,kBAAA;ACUN;ADRM;EACE,WAAA;EACA,cAAA;EACA,yBAAA;EACA,yBAAA;EACA,4BAAA;EACA,kBAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;ACUR;ADPM;EACE,uBAAA;EACA,WAAA;EACA,wBAAA;EACA,uBAAA;EACA,SAAA;ACSR;ADNM;EACE,wBAAA;EACA,WAAA;EACA,wBAAA;EACA,uBAAA;ACQR;ADFI;EACE,qBAAA;ACIN;ADFI;EACE,aAAA;ACIN;ADAI;EACE,qBAAA;ACEN;ADAI;EACE,aAAA;ACEN;ADEI;EACE,qBAAA;ACAN;ADEI;EACE,aAAA;ACAN","file":"listbox.css","sourcesContent":["@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix: '') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: calc(100 / ($count - 1));\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient(#{$css});\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: calc((($gridPx - ($numCols * $gutter)) / $numCols));\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-inline-start: $marginPercent;\n inline-size: $spanPercent;\n}\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n } @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction: row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n } @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n } @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, 0.2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return calc(($colWidth * 100 / $context) * 1%);\n}\n\n@function remDist($fontSizePx) {\n @return calc(($fontSizePx / 10) * 1rem);\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha));\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha));\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: calc(($remPx) * 1px) !important;\n font-size: calc(($remPx / 10) * 1rem) !important;\n } @else {\n font-size: calc(($remPx) * 1px);\n font-size: calc(($remPx / 10) * 1rem);\n }\n}\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} {\n @content;\n }\n @-moz-keyframes #{$name} {\n @content;\n }\n @-webkit-keyframes #{$name} {\n @content;\n }\n @keyframes #{$name} {\n @content;\n }\n}\n\n@mixin animation($value, $type: '') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type: all, $duration: 0.5s, $effect: ease-out, $delay: 0s) {\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s) {\n @include keyframes(fade) {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat() {\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n\n/*\n * Every style defined here must be mirrored with `writing-mode-horizontal-tb` mixin.\n Because writing-mode can be defined on 2 levels: a) item, b) text block or interaction;\n so if there's a horizontal block inside vertical item, vertical styles should *not* be used for it.\n */\n@mixin writing-mode-vertical-rl {\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl\")} {\n @content;\n }\n }\n}\n@mixin writing-mode-horizontal-tb {\n & {\n @content;\n }\n @at-root {\n #{selector-replace(&, $mainContainer, $mainContainer + \" .writing-mode-vertical-rl .writing-mode-horizontal-tb\")} {\n @content;\n }\n }\n}\n","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-restricted { content: \"\\e92c\"; }\n@mixin icon-blocked { content: \"\\e92d\"; }\n@mixin icon-copy { content: \"\\e92b\"; }\n@mixin icon-align-center { content: \"\\e92a\"; }\n@mixin icon-multiple-magicwand { content: \"\\e929\"; }\n@mixin icon-sd-import { content: \"\\e91f\"; }\n@mixin icon-sd-export { content: \"\\e924\"; }\n@mixin icon-browse { content: \"\\e925\"; }\n@mixin icon-minus { content: \"\\e926\"; }\n@mixin icon-plus { content: \"\\e927\"; }\n@mixin icon-sd-save { content: \"\\e928\"; }\n@mixin icon-back-button { content: \"\\e91e\"; }\n@mixin icon-japan-incorrect { content: \"\\e91b\"; }\n@mixin icon-japan-correct { content: \"\\e91c\"; }\n@mixin icon-japan-partial { content: \"\\e91d\"; }\n@mixin icon-score-partial { content: \"\\e91a\"; }\n@mixin icon-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-duplicate { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","@import \"inc/bootstrap\";\n\n$entryArrowWidthBefore: 20;\n$entryArrowWidthAfter: 20;\n$entryArrowHeight: 150;\n\n.listbox {\n max-width: 1024px;\n margin: auto;\n\n h1 {\n font-family: $headingFont;\n @include font-size(22);\n font-weight: normal;\n }\n h2 {\n font-family: $headingFont;\n @include font-size(18);\n margin: 30px 0 10px;\n }\n\n .list {\n width: 100%;\n }\n\n .box {\n @include simple-border();\n background: $uiClickableDefaultBg;\n margin-bottom: 20px;\n padding: 20px;\n position: relative;\n }\n\n .list-box {\n h1, h3 {\n @include font-size(20);\n margin-bottom: 7px;\n color: $info;\n text-shadow: 1px 1px 1px #fff;\n }\n .text-link {\n position: absolute;\n right: -1px;\n bottom: -1px;\n padding: 20px 20px 8px 20px;\n text-align: right;\n min-width: 100px;\n border-bottom: 3px solid;\n color: $uiClickableHoverBg;\n outline: 0;\n &:hover {\n color: $info;\n }\n [class*=\" icon-\"], [class^=\"icon-\"] {\n margin-right: 10px;\n }\n }\n a {\n min-height: $entryArrowHeight * 1px;\n }\n .box {\n padding-left: 40px;\n\n &:before, &:after {\n content: '';\n height: calc(($entryArrowHeight / 4) * 1px);\n border: solid transparent;\n border-top-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n border-bottom-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n position: absolute;\n left: -1px;\n top: 54px;\n z-index: 2;\n }\n\n &:before {\n border-left-color: $uiGeneralContentBorder;\n width: $entryArrowWidthBefore * 1px;\n border-right-width: calc(($entryArrowWidthBefore / 2) * 1px);\n border-left-width: calc(($entryArrowWidthBefore / 2) * 1px);\n left: 0px;\n }\n\n &:after {\n border-left-color: white;\n width: $entryArrowWidthAfter * 1px;\n border-right-width: calc(($entryArrowWidthAfter / 2) * 1px);\n border-left-width: calc(($entryArrowWidthAfter / 2) * 1px);\n }\n }\n }\n\n &.loading {\n .loading {\n display: inline-block;\n }\n .list, .empty-list, .available-list {\n display: none;\n }\n }\n &.loaded {\n .list, .available-list {\n display: inline-block;\n }\n .loading, .empty-list {\n display: none;\n }\n }\n &.empty {\n .empty-list {\n display: inline-block;\n }\n .loading, .list, .available-list {\n display: none;\n }\n }\n}\n","@import \"inc/bootstrap\";\n\n$entryArrowWidthBefore: 20;\n$entryArrowWidthAfter: 20;\n$entryArrowHeight: 150;\n\n.listbox {\n max-width: 1024px;\n margin: auto;\n\n h1 {\n font-family: $headingFont;\n @include font-size(22);\n font-weight: normal;\n }\n h2 {\n font-family: $headingFont;\n @include font-size(18);\n margin: 30px 0 10px;\n }\n\n .list {\n width: 100%;\n }\n\n .box {\n @include simple-border();\n background: $uiClickableDefaultBg;\n margin-bottom: 20px;\n padding: 20px;\n position: relative;\n }\n\n .list-box {\n h1, h3 {\n @include font-size(20);\n margin-bottom: 7px;\n color: $info;\n text-shadow: 1px 1px 1px #fff;\n }\n .text-link {\n position: absolute;\n right: -1px;\n bottom: -1px;\n padding: 20px 20px 8px 20px;\n text-align: right;\n min-width: 100px;\n border-bottom: 3px solid;\n color: $uiClickableHoverBg;\n outline: 0;\n &:hover {\n color: $info;\n }\n [class*=\" icon-\"], [class^=\"icon-\"] {\n margin-right: 10px;\n }\n }\n a {\n min-height: $entryArrowHeight * 1px;\n }\n .box {\n padding-left: 40px;\n\n &:before, &:after {\n content: '';\n height: calc(($entryArrowHeight / 4) * 1px);\n border: solid transparent;\n border-top-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n border-bottom-width: calc((($entryArrowHeight / 4) / 2) * 1px);\n position: absolute;\n left: -1px;\n top: 54px;\n z-index: 2;\n }\n\n &:before {\n border-left-color: $uiGeneralContentBorder;\n width: $entryArrowWidthBefore * 1px;\n border-right-width: calc(($entryArrowWidthBefore / 2) * 1px);\n border-left-width: calc(($entryArrowWidthBefore / 2) * 1px);\n left: 0px;\n }\n\n &:after {\n border-left-color: white;\n width: $entryArrowWidthAfter * 1px;\n border-right-width: calc(($entryArrowWidthAfter / 2) * 1px);\n border-left-width: calc(($entryArrowWidthAfter / 2) * 1px);\n }\n }\n }\n\n &.loading {\n .loading {\n display: inline-block;\n }\n .list, .empty-list, .available-list {\n display: none;\n }\n }\n &.loaded {\n .list, .available-list {\n display: inline-block;\n }\n .loading, .empty-list {\n display: none;\n }\n }\n &.empty {\n .empty-list {\n display: inline-block;\n }\n .loading, .list, .available-list {\n display: none;\n }\n }\n}\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\n\n$darkBar: rgb(51, 51, 51);\n$darkBarTxt: rgb(230, 230, 230);\n$darkBarIcon: rgb(220, 220, 220);\n\n$actionLinkColor: #276d9b;\n$actionLinkHoverColor: #4f83a7;\n\n$colorBrand: #266d9c;\n$colorBrandLight: #e4ecef;\n$colorGsDark: #121212; //color ported from nextgen TAO design system\n\n$colorWheel-01: #c3ba13;\n$colorWheel-02: #84a610;\n$colorWheel-03: #2b8e0e;\n$colorWheel-04: #0f9787;\n$colorWheel-05: #0e5d91;\n$colorWheel-06: #0d2689;\n$colorWheel-07: #400d83;\n$colorWheel-08: #960e7d;\n$colorWheel-09: #ba122b;\n$colorWheel-10: #c34713;\n$colorWheel-11: #c36f13;\n$colorWheel-12: #c39413;\n"]}