@doenet/doenetml 0.7.21-dev.415 → 0.7.21-dev.417
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.
- package/{AnswerResponseButton-CsMwAC3t.js → AnswerResponseButton-DRQPLlOM.js} +2 -2
- package/{Description-B_KGuyjX.js → Description-DzHJcqCq.js} +1 -1
- package/{GraphFrame-BCe-sXyY.js → GraphFrame-BrgLBP-l.js} +2 -2
- package/{JSXGraphRenderer-CTbAGksr.js → JSXGraphRenderer-3rMxl-PD.js} +3 -2
- package/{NonInlineMediaWrapper-DqUh14n5.js → NonInlineMediaWrapper-CTSA5ztb.js} +1 -1
- package/Viewer/DocViewer.d.ts.map +1 -1
- package/Viewer/renderers/JSXGraphRenderer.d.ts.map +1 -1
- package/Viewer/renderers/_error.d.ts.map +1 -1
- package/Viewer/renderers/cell.d.ts.map +1 -1
- package/Viewer/renderers/feedback.d.ts.map +1 -1
- package/Viewer/renderers/fractionInput.d.ts.map +1 -1
- package/Viewer/renderers/hint.d.ts.map +1 -1
- package/Viewer/renderers/lineSegment.d.ts.map +1 -1
- package/Viewer/renderers/mathInput.d.ts.map +1 -1
- package/Viewer/renderers/mathquill/EditableMathField.d.ts.map +1 -1
- package/Viewer/renderers/matrixInput.d.ts.map +1 -1
- package/Viewer/renderers/orbitalDiagram.d.ts.map +1 -1
- package/Viewer/renderers/orbitalDiagramInput.d.ts.map +1 -1
- package/Viewer/renderers/polyline.d.ts.map +1 -1
- package/Viewer/renderers/prefigure.d.ts.map +1 -1
- package/Viewer/renderers/pretzel.d.ts.map +1 -1
- package/Viewer/renderers/row.d.ts.map +1 -1
- package/Viewer/renderers/section.d.ts.map +1 -1
- package/Viewer/renderers/sideBySide.d.ts.map +1 -1
- package/Viewer/renderers/slider.d.ts.map +1 -1
- package/Viewer/renderers/solution.d.ts.map +1 -1
- package/Viewer/renderers/spreadsheet.d.ts.map +1 -1
- package/Viewer/renderers/subsetOfRealsInput.d.ts.map +1 -1
- package/Viewer/renderers/summaryStatistics.d.ts.map +1 -1
- package/Viewer/renderers/textInput.d.ts.map +1 -1
- package/Viewer/renderers/utils/buildGraphicalAttributes.d.ts +28 -0
- package/Viewer/renderers/utils/buildGraphicalAttributes.d.ts.map +1 -1
- package/Viewer/renderers/utils/buildGraphicalAttributes.test.d.ts +2 -0
- package/Viewer/renderers/utils/buildGraphicalAttributes.test.d.ts.map +1 -0
- package/Viewer/renderers/utils/direction.d.ts +39 -0
- package/Viewer/renderers/utils/direction.d.ts.map +1 -0
- package/Viewer/renderers/vector.d.ts.map +1 -1
- package/{_error-8CVqZvs9.js → _error-BIkDYkum.js} +4 -3
- package/{alert-CnVNVwp0.js → alert-40qlFB8j.js} +3 -3
- package/{angle-DtykfDvk.js → angle-BOqYrXfU.js} +6 -6
- package/{answer-D8_55NUB.js → answer-Dgwe0dei.js} +6 -6
- package/{asList-Cvb4HFYc.js → asList-B1sJDQs3.js} +2 -2
- package/{blockQuote-CD7LAibH.js → blockQuote-BsG2geQs.js} +3 -3
- package/{boolean-i9xt_Fyy.js → boolean-N29Fwify.js} +2 -2
- package/{booleanInput-DxN2aj4D.js → booleanInput-CcgJltzp.js} +7 -7
- package/{br-Ch6INIwC.js → br-BQAkKbws.js} +2 -2
- package/{buildGraphicalAttributes-C7PtyKL7.js → buildGraphicalAttributes-0RNcbd2S.js} +22 -2
- package/{button-B5SnRU2e.js → button-D3QT17Wd.js} +4 -4
- package/{c-DArDpN4A.js → c-Daf8CQwR.js} +3 -3
- package/{cell-BFX6fxf0.js → cell-BNmEKrA0.js} +3 -3
- package/{choiceInput-DXKjyCqp.js → choiceInput-DWcLPKV7.js} +8 -8
- package/{circle-AbQzXEA5.js → circle-L-xmtaHy.js} +7 -7
- package/{cobwebPolyline-CB6cVyKX.js → cobwebPolyline-BVdEUH2r.js} +4 -4
- package/{codeEditor-D0vhTs3g.js → codeEditor-D0xuKEXG.js} +2 -2
- package/{composites-BY7-JuTc.js → composites-Dxl9i1nS.js} +1 -1
- package/{containerBlock-Cm-kBh3q.js → containerBlock-CdpPaxoi.js} +4 -4
- package/{containerInline-CcOaOhs8.js → containerInline-DHFXTqAT.js} +4 -4
- package/{curve-CdVn_xI2.js → curve-5OW8O5t-.js} +4 -4
- package/direction-BwrU7jHk.js +9 -0
- package/{doenetml-RwjW6x7w.js → doenetml-DynV7ZDD.js} +341 -102
- package/doenetml-external-worker.js +2 -2
- package/doenetml-inline-worker.js +2 -2
- package/doenetml.d.ts.map +1 -1
- package/{ellipsis-DVinv6-1.js → ellipsis-BJoPJy0v.js} +2 -2
- package/{em-B8Bn3iQ8.js → em-C4h-YkRj.js} +3 -3
- package/{embed-CCP_3Jzm.js → embed-CjlH0jbC.js} +2 -2
- package/{feedback-C7b_K-S3.js → feedback-EFnq4fTf.js} +6 -5
- package/{figure-vxfnUy1i.js → figure-BiAWioqb.js} +3 -3
- package/{fillPatterns-Cwsbhubm.js → fillPatterns-DmAM78RG.js} +1 -1
- package/{footnote-DniX_WDV.js → footnote-U6eszrz5.js} +3 -3
- package/{fractionInput-Byd4TDY-.js → fractionInput-Xkm2Vb3z.js} +7 -7
- package/{graph-BpbjUn8w.js → graph-BShdY7M2.js} +6 -6
- package/{hint-BSyMGzDu.js → hint-BJlVCHDc.js} +6 -5
- package/{hr-Dv_52Wxd.js → hr-D15XJLML.js} +2 -2
- package/{image-CDzqgIV7.js → image-unzIQyP1.js} +7 -7
- package/{index-Ci4K0tDE.js → index-D-0t5xCk.js} +1 -1
- package/{index.es-BCeR6l3D.js → index.es-B8Vdrw0-.js} +1 -1
- package/index.js +1 -1
- package/{label-BpLxA1Ur.js → label-D8LiLGZ0.js} +6 -6
- package/{labelWithLatex-CsOmIYzz.js → labelWithLatex-VCThzoHG.js} +1 -1
- package/{legend-ZPzJ1SLv.js → legend-wHw8PHjz.js} +4 -4
- package/{line-B1QiilgT.js → line-BcmltQzB.js} +7 -7
- package/{lineFamilyDragHandlers-DVSxZbFk.js → lineFamilyDragHandlers-HSo2HwSH.js} +1 -1
- package/{lineSegment-CT3KASYT.js → lineSegment-BYs7yPxL.js} +14 -18
- package/{list-CseGxUq-.js → list-79YU2kl7.js} +4 -4
- package/{lq-CAAidAOg.js → lq-PHOAGpAp.js} +2 -2
- package/{lsq-B28Z8bv3.js → lsq-DAA0vTFL.js} +2 -2
- package/{markupRenderer-BtKUERzJ.js → markupRenderer-BJWUpWkE.js} +1 -1
- package/{math-BREIxh-E.js → math-BVfjIEHd.js} +6 -6
- package/{mathInput-BkKkb63g.js → mathInput-BtcN3WJR.js} +36 -19
- package/{matrixInput-BNWpketN.js → matrixInput-lugF0Kwk.js} +8 -8
- package/{mdash-9jp_u7Un.js → mdash-DB7_sXiL.js} +2 -2
- package/{nbsp-C8hCQ6TS.js → nbsp-j9m7y0-y.js} +2 -2
- package/{ndash-CmJAVnNq.js → ndash-COenOscW.js} +2 -2
- package/{number-r1umcD9p.js → number-C5IDajKV.js} +6 -6
- package/{orbitalDiagram-CaNwebaQ.js → orbitalDiagram-LpaATJ7G.js} +10 -3
- package/{orbitalDiagramInput-B5JhTAdB.js → orbitalDiagramInput-CYnhgICY.js} +13 -6
- package/{p-DP7YNDfx.js → p-COajOvYn.js} +4 -4
- package/package.json +1 -1
- package/{paginatorControls-B-qNFkKU.js → paginatorControls-DzpHO-mO.js} +2 -2
- package/{pegboard-D7nAJ6RY.js → pegboard-BdfertiY.js} +4 -4
- package/{point-C59ja3n2.js → point-BLFxaE8O.js} +6 -6
- package/{polygon-CT-ARozK.js → polygon-DSoochqM.js} +7 -7
- package/{polyline-DeGq7WP0.js → polyline-CTIot66d.js} +9 -15
- package/{pre-BHH6fa9U.js → pre-xCSl5oZL.js} +3 -3
- package/{prefigure-BnSkAPHE.js → prefigure-FCWzkIVy.js} +2 -1
- package/{pretzel-CC5NgapN.js → pretzel-RAJStYo8.js} +9 -6
- package/{q-CcNznZUD.js → q-DRh3HpI-.js} +3 -3
- package/{ray-D1b2GIcp.js → ray-CG-m02gI.js} +6 -6
- package/{ref-OLToqdQ5.js → ref-C2DexbxV.js} +2 -2
- package/{regionBetweenCurveXAxis-PPEOPw8t.js → regionBetweenCurveXAxis-C1iatjqu.js} +5 -5
- package/{regionBetweenCurves-DOtEzJak.js → regionBetweenCurves-Cv-DJCUB.js} +5 -5
- package/{row-D42z_svT.js → row-DUzsOO4i.js} +2 -2
- package/{rq-DdecWWBG.js → rq-DBf5-NZS.js} +2 -2
- package/{rsq-D2qKFBXV.js → rsq-CRwgd5gN.js} +2 -2
- package/{section-AwW9I9a-.js → section-CEh-TNeP.js} +47 -50
- package/{sha256-Bzrm4-tO-BHq68al3.js → sha256-Bzrm4-tO-D5VzcQ6q.js} +1 -1
- package/{sideBySide-BE1-5d7U.js → sideBySide-C_9_ghNz.js} +8 -2
- package/{slider-B92oejpK.js → slider-DOgzk4EE.js} +34 -25
- package/{solution-DuvHYP7q.js → solution-CKUSv0BJ.js} +6 -5
- package/{spreadsheet-CYi5VTRB.js → spreadsheet-P7U0r_qV.js} +3 -2
- package/{sq-CGmtbJG8.js → sq-CTORexcM.js} +3 -3
- package/style.css +240 -176
- package/{subsetOfRealsInput-Dof9pDQJ.js → subsetOfRealsInput-CsAQMYD4.js} +71 -61
- package/{summaryStatistics-CHLmwy4B.js → summaryStatistics-BBREeWvh.js} +4 -3
- package/{table-Ds4FsDXG.js → table-Bhb19es1.js} +2 -2
- package/{tabular-D93ZooVU.js → tabular-DBI3KqQP.js} +2 -2
- package/{tag-CQG7jGLX.js → tag-BtGckMpT.js} +2 -2
- package/{text-Cs4GBrRa.js → text-7k2wXfRf.js} +6 -6
- package/{textInput-D08eVSJy.js → textInput-lbnI_I3U.js} +8 -8
- package/{tooltip-provider-mEVAI_oo.js → tooltip-provider-C8VlkKT9.js} +1 -1
- package/{useAnchoredGraphDragHandler-CE3goik5.js → useAnchoredGraphDragHandler-CRPtaTJZ.js} +1 -1
- package/useDoenetRenderer-By1VsaDX.js +114 -0
- package/{useSubmitActionWithDelay-Bl1nM1Rc.js → useSubmitActionWithDelay-DBCED73A.js} +2 -2
- package/utils/diagnostics.d.ts +7 -0
- package/utils/diagnostics.d.ts.map +1 -1
- package/utils/i18n.d.ts +67 -1
- package/utils/i18n.d.ts.map +1 -1
- package/{vector-DTjqdT0D.js → vector-lV5ajE68.js} +10 -16
- package/{video-Bj4ChYgg.js → video-C-iSvsQk.js} +4 -4
- package/useDoenetRenderer-BUPvEAwn.js +0 -114
package/style.css
CHANGED
|
@@ -276,6 +276,10 @@ div.jxgbox input[type="checkbox"] {
|
|
|
276
276
|
|
|
277
277
|
/* CSS rules for the navigation bar */
|
|
278
278
|
|
|
279
|
+
/*
|
|
280
|
+
* Physical `right`, because the board this sits in is pinned to `dir="ltr"` in
|
|
281
|
+
* `JSXGraphRenderer.tsx` — a graph is coordinate space and does not mirror.
|
|
282
|
+
*/
|
|
279
283
|
.JXG_navigation {
|
|
280
284
|
position: absolute;
|
|
281
285
|
right: 5px;
|
|
@@ -465,159 +469,178 @@ div.jxgbox input[type="checkbox"] {
|
|
|
465
469
|
End JSXGraph styles
|
|
466
470
|
**************************************************/
|
|
467
471
|
.inline {
|
|
468
|
-
|
|
472
|
+
display: inline;
|
|
469
473
|
}
|
|
470
474
|
|
|
471
475
|
.overline {
|
|
472
|
-
|
|
476
|
+
text-decoration-line: overline;
|
|
473
477
|
}
|
|
474
478
|
|
|
475
479
|
.blur {
|
|
476
|
-
|
|
477
|
-
|
|
480
|
+
--tw-blur: blur(8px);
|
|
481
|
+
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
478
482
|
}
|
|
479
483
|
|
|
480
484
|
.filter {
|
|
481
|
-
|
|
485
|
+
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
482
486
|
}
|
|
483
487
|
|
|
484
488
|
.keyboard-button {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
489
|
+
display: inline-flex;
|
|
490
|
+
height: 2.5rem;
|
|
491
|
+
max-width: 4em;
|
|
492
|
+
flex-grow: 1;
|
|
493
|
+
flex-basis: 1rem;
|
|
494
|
+
justify-content: center;
|
|
495
|
+
align-items: center;
|
|
496
|
+
border-radius: 0.375rem;
|
|
497
|
+
border-width: 1px;
|
|
498
|
+
--tw-border-opacity: 1;
|
|
499
|
+
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
|
|
496
500
|
}
|
|
497
501
|
|
|
498
502
|
.keyboard-button:hover {
|
|
499
|
-
|
|
500
|
-
|
|
503
|
+
--tw-bg-opacity: 1;
|
|
504
|
+
background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
|
|
501
505
|
}
|
|
502
506
|
|
|
503
507
|
.keyboard-button:active {
|
|
504
|
-
|
|
505
|
-
|
|
508
|
+
--tw-bg-opacity: 1;
|
|
509
|
+
background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
|
|
506
510
|
}
|
|
507
511
|
|
|
508
512
|
.special-button {
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
+
--tw-border-opacity: 1;
|
|
514
|
+
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
|
|
515
|
+
--tw-bg-opacity: 1;
|
|
516
|
+
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
|
|
513
517
|
}
|
|
514
518
|
|
|
515
519
|
.special-button:hover {
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
+
--tw-border-opacity: 1;
|
|
521
|
+
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
|
|
522
|
+
--tw-bg-opacity: 1;
|
|
523
|
+
background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
|
|
520
524
|
}
|
|
521
525
|
|
|
522
526
|
.special-button:active {
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
527
|
+
--tw-border-opacity: 1;
|
|
528
|
+
border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
|
|
529
|
+
--tw-bg-opacity: 1;
|
|
530
|
+
background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1));
|
|
531
|
+
--tw-text-opacity: 1;
|
|
532
|
+
color: rgb(248 250 252 / var(--tw-text-opacity, 1));
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
/*
|
|
536
|
+
* The keys are mathematical notation, so they stay left-to-right even when the
|
|
537
|
+
* tray around them is right-to-left. Every row is a flex row and every region a
|
|
538
|
+
* grid, both of which reverse under `rtl`, so an Arabic reader would otherwise
|
|
539
|
+
* get a mirrored QWERTY and a numeric pad running 3-2-1. The cursor keys are
|
|
540
|
+
* the sharpest case: `.key-left` sends MathQuill a `Left` keystroke whatever
|
|
541
|
+
* the CSS says, so a reversed row would leave the `←` key sitting on the right
|
|
542
|
+
* and moving the caret the other way.
|
|
543
|
+
*
|
|
544
|
+
* Stated here rather than as a `dir` attribute because `Keyboard` returns a
|
|
545
|
+
* different element per style; one rule covers all of them. The tab strip is
|
|
546
|
+
* included: its labels are `123`, `f(x)`, `ABC`, `αβγ` and `$%∞`, none of which
|
|
547
|
+
* is prose.
|
|
548
|
+
*/
|
|
549
|
+
.virtual-keyboard,
|
|
550
|
+
.virtual-keyboard-tab-list {
|
|
551
|
+
direction: ltr;
|
|
529
552
|
}
|
|
530
553
|
|
|
531
554
|
.virtual-keyboard {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
555
|
+
display: flex;
|
|
556
|
+
max-width: 42rem;
|
|
557
|
+
justify-content: center;
|
|
558
|
+
row-gap: 0.25rem;
|
|
559
|
+
-moz-column-gap: 0.75rem;
|
|
560
|
+
column-gap: 0.75rem;
|
|
538
561
|
}
|
|
539
562
|
|
|
540
563
|
@media (min-width: 640px) {
|
|
541
564
|
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
565
|
+
.virtual-keyboard {
|
|
566
|
+
row-gap: 0.5rem;
|
|
567
|
+
}
|
|
545
568
|
}
|
|
546
569
|
|
|
547
570
|
.virtual-keyboard {
|
|
548
|
-
|
|
571
|
+
flex-wrap: wrap;
|
|
549
572
|
}
|
|
550
573
|
|
|
551
574
|
@media (min-width: 640px) {
|
|
552
575
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
576
|
+
.virtual-keyboard {
|
|
577
|
+
flex-wrap: nowrap;
|
|
578
|
+
}
|
|
556
579
|
}
|
|
557
580
|
|
|
558
581
|
.virtual-keyboard .row {
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
582
|
+
display: flex;
|
|
583
|
+
flex-basis: 100%;
|
|
584
|
+
justify-content: center;
|
|
585
|
+
-moz-column-gap: 0.25rem;
|
|
586
|
+
column-gap: 0.25rem;
|
|
564
587
|
}
|
|
565
588
|
|
|
566
589
|
@media (min-width: 640px) {
|
|
567
590
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
591
|
+
.virtual-keyboard .row {
|
|
592
|
+
-moz-column-gap: 0.5rem;
|
|
593
|
+
column-gap: 0.5rem;
|
|
594
|
+
}
|
|
572
595
|
}
|
|
573
596
|
|
|
574
597
|
.virtual-keyboard .keyboard-region {
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
598
|
+
display: grid;
|
|
599
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
600
|
+
-moz-column-gap: 0.25rem;
|
|
601
|
+
column-gap: 0.25rem;
|
|
602
|
+
row-gap: 0.25rem;
|
|
580
603
|
}
|
|
581
604
|
|
|
582
605
|
@media (min-width: 640px) {
|
|
583
606
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
607
|
+
.virtual-keyboard .keyboard-region {
|
|
608
|
+
-moz-column-gap: 0.5rem;
|
|
609
|
+
column-gap: 0.5rem;
|
|
610
|
+
row-gap: 0.5rem;
|
|
611
|
+
}
|
|
589
612
|
}
|
|
590
613
|
|
|
591
614
|
.virtual-keyboard .keyboard-region .key {
|
|
592
|
-
|
|
593
|
-
|
|
615
|
+
padding-left: 0.5rem;
|
|
616
|
+
padding-right: 0.5rem;
|
|
594
617
|
}
|
|
595
618
|
|
|
596
619
|
@media (min-width: 640px) {
|
|
597
620
|
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
621
|
+
.virtual-keyboard .keyboard-region .key {
|
|
622
|
+
padding-left: 1rem;
|
|
623
|
+
padding-right: 1rem;
|
|
624
|
+
}
|
|
602
625
|
}
|
|
603
626
|
|
|
604
627
|
.virtual-keyboard .sub-keyboard {
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
628
|
+
display: flex;
|
|
629
|
+
max-width: 42rem;
|
|
630
|
+
flex-wrap: wrap;
|
|
631
|
+
justify-content: center;
|
|
632
|
+
row-gap: 0.25rem;
|
|
610
633
|
}
|
|
611
634
|
|
|
612
635
|
@media (min-width: 640px) {
|
|
613
636
|
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
637
|
+
.virtual-keyboard .sub-keyboard {
|
|
638
|
+
row-gap: 0.5rem;
|
|
639
|
+
}
|
|
617
640
|
}
|
|
618
641
|
|
|
619
642
|
.virtual-keyboard .sub-keyboard {
|
|
620
|
-
|
|
643
|
+
height: 100%;
|
|
621
644
|
}
|
|
622
645
|
|
|
623
646
|
.virtual-keyboard button {
|
|
@@ -636,26 +659,26 @@ div.jxgbox input[type="checkbox"] {
|
|
|
636
659
|
}
|
|
637
660
|
|
|
638
661
|
.virtual-keyboard button:hover {
|
|
639
|
-
|
|
640
|
-
|
|
662
|
+
--tw-bg-opacity: 1;
|
|
663
|
+
background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
|
|
641
664
|
}
|
|
642
665
|
|
|
643
666
|
.virtual-keyboard button:active {
|
|
644
|
-
|
|
645
|
-
|
|
667
|
+
--tw-bg-opacity: 1;
|
|
668
|
+
background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
|
|
646
669
|
}
|
|
647
670
|
|
|
648
671
|
.virtual-keyboard .break {
|
|
649
|
-
|
|
650
|
-
|
|
672
|
+
height: 0px;
|
|
673
|
+
flex-basis: 100%;
|
|
651
674
|
}
|
|
652
675
|
|
|
653
676
|
.virtual-keyboard .key {
|
|
654
|
-
|
|
677
|
+
font-weight: 700;
|
|
655
678
|
}
|
|
656
679
|
|
|
657
680
|
.virtual-keyboard .key.math {
|
|
658
|
-
|
|
681
|
+
font-weight: 400;
|
|
659
682
|
}
|
|
660
683
|
|
|
661
684
|
.virtual-keyboard .key-space,
|
|
@@ -664,10 +687,10 @@ div.jxgbox input[type="checkbox"] {
|
|
|
664
687
|
.virtual-keyboard .key-right,
|
|
665
688
|
.virtual-keyboard .key-shift,
|
|
666
689
|
.virtual-keyboard .key-enter {
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
690
|
+
--tw-border-opacity: 1;
|
|
691
|
+
border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
|
|
692
|
+
--tw-bg-opacity: 1;
|
|
693
|
+
background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));
|
|
671
694
|
}
|
|
672
695
|
|
|
673
696
|
.virtual-keyboard .key-space:hover,
|
|
@@ -676,10 +699,10 @@ div.jxgbox input[type="checkbox"] {
|
|
|
676
699
|
.virtual-keyboard .key-right:hover,
|
|
677
700
|
.virtual-keyboard .key-shift:hover,
|
|
678
701
|
.virtual-keyboard .key-enter:hover {
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
702
|
+
--tw-border-opacity: 1;
|
|
703
|
+
border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
|
|
704
|
+
--tw-bg-opacity: 1;
|
|
705
|
+
background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
|
|
683
706
|
}
|
|
684
707
|
|
|
685
708
|
.virtual-keyboard .key-space:active,
|
|
@@ -688,23 +711,23 @@ div.jxgbox input[type="checkbox"] {
|
|
|
688
711
|
.virtual-keyboard .key-right:active,
|
|
689
712
|
.virtual-keyboard .key-shift:active,
|
|
690
713
|
.virtual-keyboard .key-enter:active {
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
714
|
+
--tw-border-opacity: 1;
|
|
715
|
+
border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
|
|
716
|
+
--tw-bg-opacity: 1;
|
|
717
|
+
background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1));
|
|
718
|
+
--tw-text-opacity: 1;
|
|
719
|
+
color: rgb(248 250 252 / var(--tw-text-opacity, 1));
|
|
697
720
|
}
|
|
698
721
|
|
|
699
722
|
.virtual-keyboard .key-shift,
|
|
700
723
|
.virtual-keyboard .key-backspace {
|
|
701
|
-
|
|
702
|
-
|
|
724
|
+
max-width: none;
|
|
725
|
+
flex-grow: 1;
|
|
703
726
|
}
|
|
704
727
|
|
|
705
728
|
.virtual-keyboard .key-space {
|
|
706
|
-
|
|
707
|
-
|
|
729
|
+
max-width: none;
|
|
730
|
+
flex-grow: 1;
|
|
708
731
|
}
|
|
709
732
|
|
|
710
733
|
.virtual-keyboard .svg-inline--fa {
|
|
@@ -713,37 +736,37 @@ div.jxgbox input[type="checkbox"] {
|
|
|
713
736
|
}
|
|
714
737
|
|
|
715
738
|
.virtual-keyboard.numeric .key-backspace {
|
|
716
|
-
|
|
739
|
+
max-width: 4em;
|
|
717
740
|
}
|
|
718
741
|
.virtual-keyboard.alpha,
|
|
719
742
|
.virtual-keyboard.greek {
|
|
720
|
-
|
|
743
|
+
flex-wrap: wrap;
|
|
721
744
|
}
|
|
722
745
|
.virtual-keyboard.symbol .keyboard-region {
|
|
723
|
-
|
|
746
|
+
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
724
747
|
}
|
|
725
748
|
|
|
726
749
|
.virtual-keyboard-tab-list {
|
|
727
|
-
|
|
728
|
-
|
|
750
|
+
display: flex;
|
|
751
|
+
flex-wrap: nowrap;
|
|
729
752
|
}
|
|
730
753
|
|
|
731
754
|
.virtual-keyboard-tab-list button {
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
755
|
+
margin-bottom: 0.75rem;
|
|
756
|
+
border-bottom-width: 2px;
|
|
757
|
+
padding: 0.25rem;
|
|
758
|
+
padding-left: 0.25rem;
|
|
759
|
+
padding-right: 0.25rem;
|
|
760
|
+
padding-bottom: 0.25rem;
|
|
738
761
|
}
|
|
739
762
|
|
|
740
763
|
@media (min-width: 640px) {
|
|
741
764
|
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
765
|
+
.virtual-keyboard-tab-list button {
|
|
766
|
+
padding: 0.5rem;
|
|
767
|
+
padding-left: 0.75rem;
|
|
768
|
+
padding-right: 0.75rem;
|
|
769
|
+
}
|
|
747
770
|
}
|
|
748
771
|
|
|
749
772
|
.virtual-keyboard-tab-list button {
|
|
@@ -755,10 +778,10 @@ div.jxgbox input[type="checkbox"] {
|
|
|
755
778
|
}
|
|
756
779
|
|
|
757
780
|
.virtual-keyboard-tab-list button[aria-selected="true"] {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
781
|
+
--tw-border-opacity: 1;
|
|
782
|
+
border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
|
|
783
|
+
--tw-text-opacity: 1;
|
|
784
|
+
color: rgb(37 99 235 / var(--tw-text-opacity, 1));
|
|
762
785
|
}
|
|
763
786
|
/*
|
|
764
787
|
Tailwind base is purposely not included because we want all styles to be prefixed. We manually copy in whatever is needed from tailwind preflight.
|
|
@@ -855,7 +878,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
855
878
|
#virtual-keyboard-tray .close-keyboard-button {
|
|
856
879
|
position: absolute;
|
|
857
880
|
top: 0px;
|
|
858
|
-
|
|
881
|
+
inset-inline-end: 0px;
|
|
859
882
|
margin: 0.5rem;
|
|
860
883
|
border-radius: 0.25rem;
|
|
861
884
|
}
|
|
@@ -881,17 +904,20 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
881
904
|
}
|
|
882
905
|
|
|
883
906
|
/*
|
|
884
|
-
*
|
|
907
|
+
* Inline-end footprint of this button (w-12 + me-4 = 4rem) is mirrored
|
|
885
908
|
* by `--keyboard-tab-reserve-width` in
|
|
886
909
|
* `packages/doenetml/src/EditorViewer/editor-viewer.css` so the editor
|
|
887
|
-
* footer can shift its
|
|
888
|
-
*
|
|
910
|
+
* footer can shift its last element inward to clear it. Keep the two
|
|
911
|
+
* values in sync — and keep both on the *same* axis. `end-0` here pairs
|
|
912
|
+
* with `margin-inline-end` there; making one logical and leaving the
|
|
913
|
+
* other physical would send the tab and the space reserved for it to
|
|
914
|
+
* opposite edges under `rtl`, which is worse than either alone.
|
|
889
915
|
*/
|
|
890
916
|
|
|
891
917
|
#virtual-keyboard-tray .open-keyboard-button {
|
|
892
918
|
position: absolute;
|
|
893
919
|
top: -1.5rem;
|
|
894
|
-
|
|
920
|
+
inset-inline-end: 0px;
|
|
895
921
|
margin-inline-end: 1rem;
|
|
896
922
|
border-top-left-radius: 0.25rem;
|
|
897
923
|
border-top-right-radius: 0.25rem;
|
|
@@ -1130,19 +1156,18 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
1130
1156
|
&:not(.vertical) {
|
|
1131
1157
|
flex-direction: row;
|
|
1132
1158
|
.doenet-button {
|
|
1133
|
-
margin-
|
|
1134
|
-
margin-right: 0;
|
|
1159
|
+
margin-inline: 0;
|
|
1135
1160
|
/* Remove border radius on all but the first and last buttons */
|
|
1136
1161
|
&:not(:first-child):not(:last-child) {
|
|
1137
1162
|
border-radius: 0;
|
|
1138
1163
|
}
|
|
1139
1164
|
&:first-child {
|
|
1140
|
-
border-
|
|
1141
|
-
border-
|
|
1165
|
+
border-start-end-radius: 0;
|
|
1166
|
+
border-end-end-radius: 0;
|
|
1142
1167
|
}
|
|
1143
1168
|
&:last-child {
|
|
1144
|
-
border-
|
|
1145
|
-
border-
|
|
1169
|
+
border-start-start-radius: 0;
|
|
1170
|
+
border-end-start-radius: 0;
|
|
1146
1171
|
}
|
|
1147
1172
|
}
|
|
1148
1173
|
}
|
|
@@ -1157,12 +1182,12 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
1157
1182
|
border-radius: 0;
|
|
1158
1183
|
}
|
|
1159
1184
|
&:first-child {
|
|
1160
|
-
border-
|
|
1161
|
-
border-
|
|
1185
|
+
border-end-start-radius: 0;
|
|
1186
|
+
border-end-end-radius: 0;
|
|
1162
1187
|
}
|
|
1163
1188
|
&:last-child {
|
|
1164
|
-
border-
|
|
1165
|
-
border-
|
|
1189
|
+
border-start-start-radius: 0;
|
|
1190
|
+
border-start-end-radius: 0;
|
|
1166
1191
|
}
|
|
1167
1192
|
}
|
|
1168
1193
|
}
|
|
@@ -1255,14 +1280,14 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
1255
1280
|
|
|
1256
1281
|
svg {
|
|
1257
1282
|
flex-shrink: 0;
|
|
1258
|
-
margin-
|
|
1283
|
+
margin-inline-start: 1px;
|
|
1259
1284
|
}
|
|
1260
1285
|
|
|
1261
1286
|
&.vertical {
|
|
1262
1287
|
width: 100%;
|
|
1263
1288
|
height: 10px;
|
|
1264
1289
|
svg {
|
|
1265
|
-
margin-
|
|
1290
|
+
margin-inline-start: 0;
|
|
1266
1291
|
margin-top: 0.5px;
|
|
1267
1292
|
}
|
|
1268
1293
|
}
|
|
@@ -1377,6 +1402,13 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
1377
1402
|
text-decoration-color: #9061d1;
|
|
1378
1403
|
}
|
|
1379
1404
|
|
|
1405
|
+
/*
|
|
1406
|
+
* The `border-left-color` rules below stay physical for two reasons: they
|
|
1407
|
+
* recolor an accent bar CodeMirror itself declares as `border-left`, and
|
|
1408
|
+
* mixing a logical override onto a physical declaration leaves the cascade
|
|
1409
|
+
* deciding between two properties that mean the same thing; and the editor
|
|
1410
|
+
* they sit in is pinned to `dir="ltr"` anyway, because it renders source.
|
|
1411
|
+
*/
|
|
1380
1412
|
.cm-tooltip-lint
|
|
1381
1413
|
.cm-diagnostic.cm-diagnostic-warning:has(
|
|
1382
1414
|
.cm-lint-tooltip .heading.accessibility-level-1
|
|
@@ -1853,7 +1885,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
1853
1885
|
}
|
|
1854
1886
|
.variant-select {
|
|
1855
1887
|
display: flex;
|
|
1856
|
-
margin-
|
|
1888
|
+
margin-inline-start: 0.5rem;
|
|
1857
1889
|
|
|
1858
1890
|
* {
|
|
1859
1891
|
box-sizing: border-box;
|
|
@@ -1871,19 +1903,19 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
1871
1903
|
.select-button {
|
|
1872
1904
|
width: 12em;
|
|
1873
1905
|
justify-content: space-between;
|
|
1874
|
-
border-
|
|
1875
|
-
border-
|
|
1876
|
-
margin-
|
|
1906
|
+
border-start-end-radius: 0;
|
|
1907
|
+
border-end-end-radius: 0;
|
|
1908
|
+
margin-inline-end: 0;
|
|
1877
1909
|
}
|
|
1878
1910
|
.prev-next-button {
|
|
1879
|
-
border-
|
|
1880
|
-
border-
|
|
1881
|
-
margin-
|
|
1911
|
+
border-start-start-radius: 0;
|
|
1912
|
+
border-end-start-radius: 0;
|
|
1913
|
+
margin-inline-start: 0;
|
|
1882
1914
|
}
|
|
1883
1915
|
/* Make all .prev-next-button buttons except for the last one have zero border radius */
|
|
1884
1916
|
.prev-next-button:not(:last-child) {
|
|
1885
|
-
border-
|
|
1886
|
-
border-
|
|
1917
|
+
border-start-end-radius: 0;
|
|
1918
|
+
border-end-end-radius: 0;
|
|
1887
1919
|
}
|
|
1888
1920
|
|
|
1889
1921
|
.wrapper {
|
|
@@ -1990,8 +2022,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
1990
2022
|
border-radius: 0.25rem;
|
|
1991
2023
|
border-style: none;
|
|
1992
2024
|
background-color: hsl(204 20% 94%);
|
|
1993
|
-
padding-
|
|
1994
|
-
padding-right: 1rem;
|
|
2025
|
+
padding-inline: 1rem;
|
|
1995
2026
|
font-size: 1rem;
|
|
1996
2027
|
line-height: 1.5rem;
|
|
1997
2028
|
color: black;
|
|
@@ -2039,7 +2070,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2039
2070
|
|
|
2040
2071
|
.editor-panel .footer-menu-button {
|
|
2041
2072
|
all: unset;
|
|
2042
|
-
margin-
|
|
2073
|
+
margin-inline-start: auto;
|
|
2043
2074
|
display: inline-flex;
|
|
2044
2075
|
align-items: center;
|
|
2045
2076
|
justify-content: center;
|
|
@@ -2057,25 +2088,29 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2057
2088
|
}
|
|
2058
2089
|
|
|
2059
2090
|
/*
|
|
2060
|
-
* When the footer's
|
|
2091
|
+
* When the footer's trailing edge meets the virtual keyboard's open-keyboard
|
|
2061
2092
|
* tab (showViewer={false} or viewerLocation in {"left","top"} with the
|
|
2062
|
-
* keyboard enabled), push the
|
|
2063
|
-
*
|
|
2093
|
+
* keyboard enabled), push the last footer element inward so the icons stay
|
|
2094
|
+
* clickable. The reservation must match the keyboard tab's inline-end
|
|
2064
2095
|
* footprint (`w-12` + `me-4` = 3rem + 1rem) defined in
|
|
2065
2096
|
* `packages/virtual-keyboard/src/virtual-keyboard/keyboard-tray.css`. Keep
|
|
2066
2097
|
* this value in sync if that footprint changes. Very narrow viewports may
|
|
2067
2098
|
* still let the tab and the icons collide; that's accepted.
|
|
2099
|
+
*
|
|
2100
|
+
* Logical, and it has to stay paired with the tab's own `end-0`: the tab is
|
|
2101
|
+
* portaled to `document.body`, so nothing but this axis agreement keeps the
|
|
2102
|
+
* space and the thing it is reserved for on the same side of the screen.
|
|
2068
2103
|
*/
|
|
2069
2104
|
.editor-panel .editor-footer.reserve-keyboard-button-space {
|
|
2070
2105
|
--keyboard-tab-reserve-width: 4rem;
|
|
2071
2106
|
}
|
|
2072
2107
|
.editor-panel .editor-footer.reserve-keyboard-button-space .footer-menu-button {
|
|
2073
|
-
margin-
|
|
2108
|
+
margin-inline-end: var(--keyboard-tab-reserve-width);
|
|
2074
2109
|
}
|
|
2075
2110
|
.editor-panel
|
|
2076
2111
|
.editor-footer.reserve-keyboard-button-space:not(:has(.footer-menu-button))
|
|
2077
2112
|
.footer-icons {
|
|
2078
|
-
margin-
|
|
2113
|
+
margin-inline-end: var(--keyboard-tab-reserve-width);
|
|
2079
2114
|
}
|
|
2080
2115
|
|
|
2081
2116
|
.editor-panel .footer-menu {
|
|
@@ -2168,7 +2203,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2168
2203
|
|
|
2169
2204
|
.editor-panel .diagnostic-tab-count {
|
|
2170
2205
|
min-width: 1.5ch;
|
|
2171
|
-
text-align:
|
|
2206
|
+
text-align: end;
|
|
2172
2207
|
font-variant-numeric: tabular-nums;
|
|
2173
2208
|
}
|
|
2174
2209
|
|
|
@@ -2246,7 +2281,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2246
2281
|
|
|
2247
2282
|
.editor-panel .diagnostic-entry-location {
|
|
2248
2283
|
font-weight: 600;
|
|
2249
|
-
margin-
|
|
2284
|
+
margin-inline-end: 0.35rem;
|
|
2250
2285
|
}
|
|
2251
2286
|
|
|
2252
2287
|
/* Dark mode overrides for .diagnostic-entry-message code — see [data-theme="dark"] block below. */
|
|
@@ -2522,6 +2557,8 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2522
2557
|
* Active-line gutter: CodeMirror base theme uses #e2f2ff (light blue), which
|
|
2523
2558
|
* is garish on a dark gutter. Use a barely-lighter #363636 instead.
|
|
2524
2559
|
*/
|
|
2560
|
+
/* Physical, matching CodeMirror's own gutter rule; the editor renders source
|
|
2561
|
+
and is pinned to `dir="ltr"` in `CodeMirror.tsx`. */
|
|
2525
2562
|
[data-theme="dark"] .editor-panel .cm-gutters {
|
|
2526
2563
|
background-color: #1e1e1e;
|
|
2527
2564
|
color: #8b949e;
|
|
@@ -2830,7 +2867,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2830
2867
|
.doenet-viewer .radio-container {
|
|
2831
2868
|
display: block;
|
|
2832
2869
|
position: relative;
|
|
2833
|
-
padding-
|
|
2870
|
+
padding-inline-start: 24px;
|
|
2834
2871
|
margin-bottom: 4px;
|
|
2835
2872
|
min-height: 24px;
|
|
2836
2873
|
cursor: pointer;
|
|
@@ -2871,7 +2908,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2871
2908
|
.doenet-viewer .radio-checkmark {
|
|
2872
2909
|
position: absolute;
|
|
2873
2910
|
top: 0;
|
|
2874
|
-
|
|
2911
|
+
inset-inline-start: 0;
|
|
2875
2912
|
height: 18px;
|
|
2876
2913
|
width: 18px;
|
|
2877
2914
|
background-color: var(--mainGray);
|
|
@@ -2934,7 +2971,14 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2934
2971
|
display: block;
|
|
2935
2972
|
}
|
|
2936
2973
|
|
|
2937
|
-
/*
|
|
2974
|
+
/*
|
|
2975
|
+
* Style the indicator (dot/circle).
|
|
2976
|
+
*
|
|
2977
|
+
* Physical `left` on purpose: this centers a 6px dot in the 18px marker box
|
|
2978
|
+
* above, whose own position is what follows the direction. Inside a
|
|
2979
|
+
* fixed-size box the two are the same offset, and keeping it physical says
|
|
2980
|
+
* that the glyph itself is not what mirrors.
|
|
2981
|
+
*/
|
|
2938
2982
|
.doenet-viewer .radio-container .radio-checkmark:after {
|
|
2939
2983
|
top: 6px;
|
|
2940
2984
|
left: 6px;
|
|
@@ -2950,7 +2994,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2950
2994
|
.doenet-viewer .checkbox-container {
|
|
2951
2995
|
display: block;
|
|
2952
2996
|
position: relative;
|
|
2953
|
-
padding-
|
|
2997
|
+
padding-inline-start: 24px;
|
|
2954
2998
|
margin-bottom: 4px;
|
|
2955
2999
|
min-height: 24px;
|
|
2956
3000
|
cursor: pointer;
|
|
@@ -2993,7 +3037,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
2993
3037
|
.doenet-viewer .checkbox-checkmark {
|
|
2994
3038
|
position: absolute;
|
|
2995
3039
|
top: 0;
|
|
2996
|
-
|
|
3040
|
+
inset-inline-start: 0;
|
|
2997
3041
|
height: 18px;
|
|
2998
3042
|
width: 18px;
|
|
2999
3043
|
background-color: var(--mainGray);
|
|
@@ -3056,7 +3100,14 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
3056
3100
|
display: block;
|
|
3057
3101
|
}
|
|
3058
3102
|
|
|
3059
|
-
/*
|
|
3103
|
+
/*
|
|
3104
|
+
* Style the checkmark/indicator.
|
|
3105
|
+
*
|
|
3106
|
+
* Physical `left` on purpose: the tick is two borders of a rotated box, and a
|
|
3107
|
+
* check mark is the same shape and sits at the same offset within its own box
|
|
3108
|
+
* in every language. The marker box around it is what follows the direction.
|
|
3109
|
+
* Same rule, same reason, as `booleanInput.css`.
|
|
3110
|
+
*/
|
|
3060
3111
|
.doenet-viewer .checkbox-container .checkbox-checkmark:after {
|
|
3061
3112
|
left: 5px;
|
|
3062
3113
|
top: 1px;
|
|
@@ -3141,10 +3192,10 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
3141
3192
|
/* `display: inline-block` and `vertical-align` are set inline in
|
|
3142
3193
|
booleanInput.tsx so the checkbox flows beside a wrapping label (#1245). */
|
|
3143
3194
|
position: relative;
|
|
3144
|
-
padding-
|
|
3195
|
+
padding-inline-start: 24px;
|
|
3145
3196
|
margin-bottom: 4px;
|
|
3146
|
-
margin-
|
|
3147
|
-
margin-
|
|
3197
|
+
margin-inline-end: 2px; /* 2px less than other components (6px inline-end margin) due to the 2px inline-start margin on label */
|
|
3198
|
+
margin-inline-start: 4px;
|
|
3148
3199
|
cursor: pointer;
|
|
3149
3200
|
-webkit-user-select: none;
|
|
3150
3201
|
-moz-user-select: none;
|
|
@@ -3181,7 +3232,7 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
3181
3232
|
.doenet-viewer .checkmark {
|
|
3182
3233
|
position: absolute;
|
|
3183
3234
|
top: 0;
|
|
3184
|
-
|
|
3235
|
+
inset-inline-start: 0;
|
|
3185
3236
|
height: 18px;
|
|
3186
3237
|
width: 18px;
|
|
3187
3238
|
background-color: var(--mainGray);
|
|
@@ -3239,7 +3290,13 @@ Tailwind base is purposely not included because we want all styles to be prefixe
|
|
|
3239
3290
|
display: block;
|
|
3240
3291
|
}
|
|
3241
3292
|
|
|
3242
|
-
/*
|
|
3293
|
+
/*
|
|
3294
|
+
* Style the checkmark/indicator.
|
|
3295
|
+
*
|
|
3296
|
+
* Physical `left` on purpose: the tick is two borders of a rotated box, and a
|
|
3297
|
+
* check mark is the same shape and sits at the same offset within its own box
|
|
3298
|
+
* in every language. The marker box around it is what follows the direction.
|
|
3299
|
+
*/
|
|
3243
3300
|
.doenet-viewer .boolean-container .checkmark:after {
|
|
3244
3301
|
left: 5px;
|
|
3245
3302
|
top: 1px;
|
|
@@ -3968,6 +4025,13 @@ html body .mq-editable-field .mq-selection .mq-nthroot-container * {
|
|
|
3968
4025
|
height: 1px;
|
|
3969
4026
|
box-sizing: content-box;
|
|
3970
4027
|
}
|
|
4028
|
+
/*
|
|
4029
|
+
* The brackets stay physical, and deliberately so: `matrixInput.tsx` pins this
|
|
4030
|
+
* element to `dir="ltr"`, because a matrix is notation and does not mirror.
|
|
4031
|
+
* There is no direction here for a logical property to follow, and writing one
|
|
4032
|
+
* would suggest the brackets could swap ends — which would leave the opening
|
|
4033
|
+
* bracket closing and the closing one opening.
|
|
4034
|
+
*/
|
|
3971
4035
|
.doenet-viewer .matrix-input {
|
|
3972
4036
|
position: relative;
|
|
3973
4037
|
margin: 6px;
|
|
@@ -4058,8 +4122,8 @@ html body .mq-editable-field .mq-selection .mq-nthroot-container * {
|
|
|
4058
4122
|
.pretzelWrapper {
|
|
4059
4123
|
display: grid;
|
|
4060
4124
|
gap: 0px;
|
|
4061
|
-
|
|
4062
|
-
border-
|
|
4125
|
+
/* Both sides, so the pair is the same either way round. */
|
|
4126
|
+
border-inline: 1px solid var(--canvasText);
|
|
4063
4127
|
}
|
|
4064
4128
|
|
|
4065
4129
|
.pretzelWrapperTop {
|