@decidables/accumulable-elements 0.3.7 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4580,18 +4580,6 @@
4580
4580
  getComputedStyleValue(property) {
4581
4581
  return getComputedStyle(this).getPropertyValue(property).trim();
4582
4582
  }
4583
- firstUpdated(changedProperties) {
4584
- super.firstUpdated(changedProperties);
4585
-
4586
- // Use focus highlighting if keyboard is used at all
4587
- select(this.renderRoot.host).classed('keyboard', true).on('mousemove.keyboard touchstart.keyboard', event => {
4588
- const element = event.currentTarget;
4589
- select(element.renderRoot.host).classed('keyboard', false).on('mousemove.keyboard touchstart.keyboard', null);
4590
- }).on('keydown.keyboard', event => {
4591
- const element = event.currentTarget;
4592
- select(element.renderRoot.host).classed('keyboard', true).on('keydown.keyboard mousemove.keyboard touchstart.keyboard', null);
4593
- });
4594
- }
4595
4583
  static get greys() {
4596
4584
  const grey = '#999999';
4597
4585
  const greys = {};
@@ -4727,7 +4715,7 @@
4727
4715
  };
4728
4716
  /* eslint-enable key-spacing, object-curly-newline */
4729
4717
  }
4730
- static cssBoxShadow(elevation, rotate = false, inverse = false) {
4718
+ static cssBoxShadow(elevation, inverse = false) {
4731
4719
  const umbraO = this.shadows.opacityUmbra + this.shadows.opacityBoost;
4732
4720
  const penumbraO = this.shadows.opacityPenumbra + this.shadows.opacityBoost;
4733
4721
  const ambientO = this.shadows.opacityAmbient + this.shadows.opacityBoost;
@@ -4737,9 +4725,9 @@
4737
4725
  const umbraM = this.shadows.mapUmbra[elevation];
4738
4726
  const penumbraM = this.shadows.mapPenumbra[elevation];
4739
4727
  const ambientM = this.shadows.mapAmbient[elevation];
4740
- const umbraS = rotate ? `${-umbraM.y}px ${umbraM.y / 2}px ${umbraM.b}px ${umbraM.s}px` : `${umbraM.y / 2}px ${umbraM.y}px ${umbraM.b}px ${umbraM.s}px`;
4741
- const penumbraS = rotate ? `${-penumbraM.y}px ${penumbraM.y / 2}px ${penumbraM.b}px ${penumbraM.s}px` : `${penumbraM.y / 2}px ${penumbraM.y}px ${penumbraM.b}px ${penumbraM.s}px`;
4742
- const ambientS = rotate ? `${-ambientM.y}px ${ambientM.y / 2}px ${ambientM.b}px ${ambientM.s}px` : `${ambientM.y / 2}px ${ambientM.y}px ${ambientM.b}px ${ambientM.s}px`;
4728
+ const umbraS = `${umbraM.y / 2}px ${umbraM.y}px ${umbraM.b}px ${umbraM.s}px`;
4729
+ const penumbraS = `${penumbraM.y / 2}px ${penumbraM.y}px ${penumbraM.b}px ${penumbraM.s}px`;
4730
+ const ambientS = `${ambientM.y / 2}px ${ambientM.y}px ${ambientM.b}px ${ambientM.s}px`;
4743
4731
  return `${umbraS} ${umbraC}, ${penumbraS} ${penumbraC}, ${ambientS} ${ambientC}`;
4744
4732
  }
4745
4733
  static get svgFilters() {
@@ -4875,49 +4863,58 @@
4875
4863
  button {
4876
4864
  width: 100%;
4877
4865
  height: 100%;
4866
+
4878
4867
  padding: 0.375rem 0.75rem;
4879
4868
 
4880
4869
  font-family: var(---font-family-base);
4881
4870
  font-size: 1.125rem;
4871
+
4882
4872
  line-height: 1.5;
4873
+
4883
4874
  color: var(---color-text-inverse);
4884
4875
 
4876
+ outline: none;
4877
+
4885
4878
  border: 0;
4886
4879
  border-radius: var(---border-radius);
4887
- outline: none;
4888
4880
  }
4889
4881
 
4890
4882
  button:disabled {
4891
- background-color: var(---decidables-button-background-color-disabled);
4892
4883
  outline: none;
4884
+
4885
+ background-color: var(---decidables-button-background-color-disabled);
4893
4886
  box-shadow: none;
4894
4887
  }
4895
4888
 
4896
4889
  button:enabled {
4897
4890
  cursor: pointer;
4891
+ outline: none;
4898
4892
 
4899
4893
  background-color: var(---decidables-button-background-color-enabled);
4900
- outline: none;
4901
4894
  box-shadow: var(---shadow-2);
4902
4895
  }
4903
4896
 
4904
4897
  button:enabled:hover {
4905
4898
  outline: none;
4899
+
4906
4900
  box-shadow: var(---shadow-4);
4907
4901
  }
4908
4902
 
4909
4903
  button:enabled:active {
4910
4904
  outline: none;
4905
+
4911
4906
  box-shadow: var(---shadow-8);
4912
4907
  }
4913
4908
 
4914
- :host(.keyboard) button:enabled:focus {
4909
+ button:enabled:focus-visible {
4915
4910
  outline: none;
4911
+
4916
4912
  box-shadow: var(---shadow-4);
4917
4913
  }
4918
4914
 
4919
- :host(.keyboard) button:enabled:focus:active {
4915
+ button:enabled:focus-visible:active {
4920
4916
  outline: none;
4917
+
4921
4918
  box-shadow: var(---shadow-8);
4922
4919
  }
4923
4920
  `];
@@ -5034,10 +5031,6 @@
5034
5031
  ---decidables-slider-color: var(--decidables-slider-color, var(---color-element-enabled));
5035
5032
  ---decidables-spinner-background-color: var(--decidables-slider-background-color, none);
5036
5033
 
5037
- ---shadow-2-rotate: var(--shadow-2-rotate, ${r$2(this.cssBoxShadow(2, true, false))});
5038
- ---shadow-4-rotate: var(--shadow-4-rotate, ${r$2(this.cssBoxShadow(4, true, false))});
5039
- ---shadow-8-rotate: var(--shadow-8-rotate, ${r$2(this.cssBoxShadow(8, true, false))});
5040
-
5041
5034
  display: flex;
5042
5035
 
5043
5036
  flex-direction: column;
@@ -5052,12 +5045,14 @@
5052
5045
 
5053
5046
  .range {
5054
5047
  position: relative;
5048
+
5055
5049
  display: flex;
5056
5050
 
5057
5051
  flex-direction: row;
5058
5052
 
5059
5053
  width: 3.5rem;
5060
5054
  height: 4.75rem;
5055
+
5061
5056
  margin: 0 0.25rem 0.25rem;
5062
5057
  }
5063
5058
 
@@ -5069,21 +5064,20 @@
5069
5064
  background: var(---decidables-spinner-background-color);
5070
5065
  }
5071
5066
 
5072
- /* Adapted from http://danielstern.ca/range.css/#/ */
5073
5067
  /* Overall */
5074
5068
  input[type=range] {
5075
- width: 4.75rem;
5076
- height: 3.5rem;
5069
+ width: 3.5rem;
5070
+ height: 4.75rem;
5071
+
5077
5072
  padding: 0;
5078
5073
  margin: 0;
5074
+
5075
+ appearance: none;
5079
5076
 
5080
5077
  background-color: unset;
5081
5078
 
5082
- transform: rotate(-90deg);
5083
- transform-origin: 2.375rem 2.375rem;
5084
-
5085
- /* stylelint-disable-next-line property-no-vendor-prefix */
5086
- -webkit-appearance: none;
5079
+ direction: rtl;
5080
+ writing-mode: vertical-lr;
5087
5081
  }
5088
5082
 
5089
5083
  input[type=range]:enabled {
@@ -5094,16 +5088,10 @@
5094
5088
  outline: none;
5095
5089
  }
5096
5090
 
5097
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5098
- input[type=range]::-ms-tooltip {
5099
- display: none;
5100
- }
5101
-
5102
5091
  /* Track */
5103
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5104
5092
  input[type=range]::-webkit-slider-runnable-track {
5105
- width: 100%;
5106
- height: 4px;
5093
+ width: 4px;
5094
+ height: 100%;
5107
5095
 
5108
5096
  background: var(---decidables-slider-background-color);
5109
5097
  border: 0;
@@ -5115,10 +5103,9 @@
5115
5103
  background: var(---decidables-slider-background-color);
5116
5104
  }
5117
5105
 
5118
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5119
5106
  input[type=range]::-moz-range-track {
5120
- width: 100%;
5121
- height: 4px;
5107
+ width: 4px;
5108
+ height: 100%;
5122
5109
 
5123
5110
  background: var(---decidables-slider-background-color);
5124
5111
  border: 0;
@@ -5126,57 +5113,17 @@
5126
5113
  box-shadow: none;
5127
5114
  }
5128
5115
 
5129
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5130
- input[type=range]::-ms-track {
5131
- width: 100%;
5132
- height: 4px;
5133
-
5134
- color: transparent;
5135
-
5136
- background: transparent;
5137
- border-color: transparent;
5138
- }
5139
-
5140
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5141
- input[type=range]::-ms-fill-lower {
5142
- background: #cccccc;
5143
- /* background: var(---decidables-slider-background-color); */
5144
- border: 0;
5145
- border-radius: 2px;
5146
- box-shadow: none;
5147
- }
5148
-
5149
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5150
- input[type=range]::-ms-fill-upper {
5151
- background: #cccccc;
5152
- /* background: var(---decidables-slider-background-color); */
5153
- border: 0;
5154
- border-radius: 2px;
5155
- box-shadow: none;
5156
- }
5157
-
5158
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5159
- input[type=range]:focus::-ms-fill-lower {
5160
- background: var(---decidables-slider-background-color);
5161
- }
5162
-
5163
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5164
- input[type=range]:focus::-ms-fill-upper {
5165
- background: var(---decidables-slider-background-color);
5166
- }
5167
-
5168
5116
  /* Thumb */
5169
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5170
5117
  input[type=range]::-webkit-slider-thumb {
5171
- width: 10px;
5172
- height: 20px;
5173
- margin-top: -8px;
5118
+ width: 20px;
5119
+ height: 10px;
5120
+
5121
+ margin-left: -8px;
5122
+
5123
+ appearance: none;
5174
5124
 
5175
5125
  border: 0;
5176
5126
  border-radius: 4px;
5177
-
5178
- /* stylelint-disable-next-line property-no-vendor-prefix */
5179
- -webkit-appearance: none;
5180
5127
  }
5181
5128
 
5182
5129
  input[type=range]:disabled::-webkit-slider-thumb {
@@ -5186,112 +5133,65 @@
5186
5133
 
5187
5134
  input[type=range]:enabled::-webkit-slider-thumb {
5188
5135
  background: var(---decidables-slider-color);
5189
- box-shadow: var(---shadow-2-rotate);
5136
+ box-shadow: var(---shadow-2);
5190
5137
  }
5191
5138
 
5192
5139
  input[type=range]:enabled:hover::-webkit-slider-thumb {
5193
- box-shadow: var(---shadow-4-rotate);
5140
+ box-shadow: var(---shadow-4);
5194
5141
  }
5195
5142
 
5196
5143
  input[type=range]:enabled:active::-webkit-slider-thumb {
5197
- box-shadow: var(---shadow-8-rotate);
5144
+ box-shadow: var(---shadow-8);
5198
5145
  }
5199
5146
 
5200
- :host(.keyboard) input[type=range]:enabled:focus::-webkit-slider-thumb {
5201
- box-shadow: var(---shadow-4-rotate);
5147
+ input[type=range]:enabled:focus-visible::-webkit-slider-thumb {
5148
+ box-shadow: var(---shadow-4);
5202
5149
  }
5203
5150
 
5204
- :host(.keyboard) input[type=range]:focus:active::-webkit-slider-thumb {
5205
- box-shadow: var(---shadow-8-rotate);
5151
+ input[type=range]:enabled:focus-visible:active::-webkit-slider-thumb {
5152
+ box-shadow: var(---shadow-8);
5206
5153
  }
5207
5154
 
5208
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5209
5155
  input[type=range]::-moz-range-thumb {
5210
- width: 10px;
5211
- height: 20px;
5156
+ width: 20px;
5157
+ height: 10px;
5212
5158
 
5213
5159
  border: 0;
5214
5160
  border-radius: 4px;
5215
5161
  }
5216
5162
 
5217
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5218
5163
  input[type=range]:disabled::-moz-range-thumb {
5219
5164
  background: var(---decidables-slider-background-color);
5220
5165
  box-shadow: none;
5221
5166
  }
5222
5167
 
5223
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5224
5168
  input[type=range]:enabled::-moz-range-thumb {
5225
5169
  background: var(---decidables-slider-color);
5226
- box-shadow: var(---shadow-2-rotate);
5170
+ box-shadow: var(---shadow-2);
5227
5171
  }
5228
5172
 
5229
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5230
5173
  input[type=range]:enabled:hover::-moz-range-thumb {
5231
- box-shadow: var(---shadow-4-rotate);
5174
+ box-shadow: var(---shadow-4);
5232
5175
  }
5233
5176
 
5234
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5235
5177
  input[type=range]:enabled:active::-moz-range-thumb {
5236
- box-shadow: var(---shadow-8-rotate);
5237
- }
5238
-
5239
- :host(.keyboard) input[type=range]:enabled:focus::-moz-range-thumb {
5240
- box-shadow: var(---shadow-4-rotate);
5241
- }
5242
-
5243
- :host(.keyboard) input[type=range]:enabled:focus:active::-moz-range-thumb {
5244
- box-shadow: var(---shadow-8-rotate);
5245
- }
5246
-
5247
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5248
- input[type=range]::-ms-thumb {
5249
- width: 10px;
5250
- height: 20px;
5251
- margin-top: 0;
5252
-
5253
- background: #999999;
5254
- /* background: var(---color-element-enabled); */
5255
- border: 0;
5256
- border-radius: 4px;
5257
- box-shadow: var(---shadow-2-rotate);
5258
- }
5259
-
5260
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5261
- input[type=range]:disabled::-ms-thumb {
5262
- background: var(---decidables-slider-background-color);
5263
- box-shadow: none;
5264
- }
5265
-
5266
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5267
- input[type=range]:enabled::-ms-thumb {
5268
- background: var(---decidables-slider-color);
5269
- box-shadow: var(---shadow-2-rotate);
5270
- }
5271
-
5272
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5273
- input[type=range]:enabled:hover::-ms-thumb {
5274
- box-shadow: var(---shadow-4-rotate);
5275
- }
5276
-
5277
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5278
- input[type=range]:enabled:active::-ms-thumb {
5279
- box-shadow: var(---shadow-8-rotate);
5178
+ box-shadow: var(---shadow-8);
5280
5179
  }
5281
5180
 
5282
- /* stylelint-disable-next-line no-descending-specificity */ /* stylelint ERROR */
5283
- :host(.keyboard) input[type=range]:enabled:focus::-ms-thumb {
5284
- box-shadow: var(---shadow-4-rotate);
5181
+ input[type=range]:enabled:focus-visible::-moz-range-thumb {
5182
+ box-shadow: var(---shadow-4);
5285
5183
  }
5286
5184
 
5287
- :host(.keyboard) input[type=range]:enabled:focus:active::-ms-thumb {
5288
- box-shadow: var(---shadow-8-rotate);
5185
+ input[type=range]:enabled:focus-visible:active::-moz-range-thumb {
5186
+ box-shadow: var(---shadow-8);
5289
5187
  }
5290
5188
 
5291
- datalist {
5189
+ /* Tick marks */
5190
+ .datalist {
5292
5191
  position: absolute;
5293
5192
  left: 2rem;
5294
5193
  z-index: -1;
5194
+
5295
5195
  display: flex;
5296
5196
 
5297
5197
  flex-direction: column;
@@ -5304,14 +5204,13 @@
5304
5204
  font-size: 0.75rem;
5305
5205
  }
5306
5206
 
5307
- option {
5308
- padding: 0;
5309
-
5207
+ .option {
5310
5208
  line-height: 0.8;
5311
- min-block-size: 0;
5209
+
5210
+ white-space: nowrap;
5312
5211
  }
5313
5212
 
5314
- option::before {
5213
+ .option::before {
5315
5214
  content: "– ";
5316
5215
  }
5317
5216
  `];
@@ -5324,10 +5223,10 @@
5324
5223
  <div class="range">
5325
5224
  <input ?disabled=${this.disabled} type="range" id="slider" min=${o(this.rangeMin)} max=${o(this.rangeMax)} step=${o(this.rangeStep)} .value=${this.rangeValue} @change=${this.rangeChanged.bind(this)} @input=${this.rangeInputted.bind(this)}>
5326
5225
  ${this.scale ? x$1`
5327
- <datalist id="ticks">
5328
- <option value=${o(this.rangeMax)} label=${o(this.max)}></option>
5329
- <option value=${o(this.rangeMin)} label=${o(this.min)}></option>
5330
- </datalist>
5226
+ <div class="datalist">
5227
+ <div class="option">${o(this.max)}</div>
5228
+ <div class="option">${o(this.min)}</div>
5229
+ </div>
5331
5230
  ` : x$1``}
5332
5231
  </div>
5333
5232
  <decidables-spinner ?disabled=${this.disabled} min=${o(this.min)} max=${o(this.max)} step=${o(this.step)} .value=${this.value} @input=${this.spinnerInputted.bind(this)}></decidables-spinner>
@@ -5387,13 +5286,14 @@
5387
5286
  ---decidables-spinner-prefix: var(--decidables-spinner-prefix, "");
5388
5287
 
5389
5288
  ---decidables-spinner-postfix: var(--decidables-spinner-postfix, "");
5390
- ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0);
5289
+ ---decidables-spinner-postfix-padding: var(--decidables-spinner-postfix-padding, 0rem);
5391
5290
 
5392
5291
  display: block;
5393
5292
  }
5394
5293
 
5395
5294
  label {
5396
5295
  position: relative;
5296
+
5397
5297
  display: flex;
5398
5298
 
5399
5299
  flex-direction: column;
@@ -5411,6 +5311,7 @@
5411
5311
  left: calc(50% - var(---decidables-spinner-input-width) / 2 + 0.25rem);
5412
5312
 
5413
5313
  font-size: var(---decidables-spinner-font-size);
5314
+
5414
5315
  line-height: normal;
5415
5316
 
5416
5317
  content: var(---decidables-spinner-prefix);
@@ -5422,6 +5323,7 @@
5422
5323
  bottom: 1px;
5423
5324
 
5424
5325
  font-size: var(---decidables-spinner-font-size);
5326
+
5425
5327
  line-height: normal;
5426
5328
 
5427
5329
  content: var(---decidables-spinner-postfix);
@@ -5429,20 +5331,24 @@
5429
5331
 
5430
5332
  input[type=number] {
5431
5333
  width: var(---decidables-spinner-input-width);
5432
- padding-right: var(---decidables-spinner-postfix-padding);
5334
+
5335
+ padding: 1px var(---decidables-spinner-postfix-padding) 1px 2px;
5336
+ margin: 0;
5433
5337
 
5434
5338
  font-family: var(---font-family-base);
5435
5339
  font-size: var(---decidables-spinner-font-size);
5340
+
5436
5341
  color: inherit;
5342
+
5437
5343
  text-align: right;
5438
5344
 
5345
+ appearance: none;
5346
+ outline: none;
5347
+
5439
5348
  background: none;
5440
5349
  border: 0;
5441
5350
  border-radius: 0;
5442
- outline: none;
5443
5351
  box-shadow: var(---shadow-2);
5444
-
5445
- -webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */
5446
5352
  }
5447
5353
 
5448
5354
  input[type=number]:hover {
@@ -5459,20 +5365,54 @@
5459
5365
 
5460
5366
  border: 0;
5461
5367
  box-shadow: none;
5368
+ }
5369
+
5370
+ /* HACK: Manage spinners in Firefox */
5371
+ @supports (-moz-appearance: textfield) {
5372
+ input[type=number] {
5373
+ padding-right: calc(18px + var(---decidables-spinner-postfix-padding));
5374
+
5375
+ appearance: textfield;
5376
+ }
5377
+
5378
+ input[type=number]:hover,
5379
+ input[type=number]:focus,
5380
+ input[type=number]:active {
5381
+ padding-right: var(---decidables-spinner-postfix-padding);
5382
+
5383
+ appearance: none;
5384
+ }
5385
+
5386
+ input[type=number]:disabled {
5387
+ padding-right: calc(18px + var(---decidables-spinner-postfix-padding));
5462
5388
 
5463
- /* HACK: Use correct text color in Safari */
5464
- -webkit-opacity: 1;
5465
- /* HACK: Hide spinners in disabled input for Firefox and Safari */
5466
- -moz-appearance: textfield; /* stylelint-disable-line property-no-vendor-prefix */
5467
- /* HACK: Use correct text color in Safari */
5468
- -webkit-text-fill-color: var(---color-text);
5389
+ appearance: textfield;
5390
+ }
5391
+ }
5392
+
5393
+ /* HACK: Manage spinners in Chrome/Edge/Safari */
5394
+ input[type=number]::-webkit-inner-spin-button {
5395
+ /* Avoid oversized spinners in Safari */
5396
+ font-size: 1.125rem;
5397
+
5398
+ opacity: 0;
5399
+ }
5400
+
5401
+ input[type=number]:hover::-webkit-inner-spin-button,
5402
+ input[type=number]:focus::-webkit-inner-spin-button,
5403
+ input[type=number]:active::-webkit-inner-spin-button {
5404
+ opacity: 1;
5469
5405
  }
5470
5406
 
5471
- /* HACK: Hide spinners in disabled input for Firefox and Safari */
5472
- input[type=number]:disabled::-webkit-outer-spin-button,
5473
5407
  input[type=number]:disabled::-webkit-inner-spin-button {
5474
- margin: 0;
5475
- -webkit-appearance: none; /* stylelint-disable-line property-no-vendor-prefix */
5408
+ opacity: 0;
5409
+ }
5410
+
5411
+ /* HACK: Adjust padding on mobile w/o spinners */
5412
+ @media only screen and (hover: none) and (pointer: coarse) {
5413
+ input[type=number] {
5414
+ padding-right: calc(1.125rem + var(---decidables-spinner-postfix-padding));
5415
+ }
5476
5416
  }
5477
5417
  `];
5478
5418
  }
@@ -5536,13 +5476,16 @@
5536
5476
 
5537
5477
  width: 1px;
5538
5478
  height: 1px;
5479
+
5539
5480
  padding: 0;
5540
5481
  margin: -1px;
5482
+
5541
5483
  overflow: hidden;
5542
5484
 
5543
5485
  white-space: nowrap;
5544
5486
 
5545
5487
  border: 0;
5488
+
5546
5489
  clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */
5547
5490
  }
5548
5491
 
@@ -5558,6 +5501,7 @@
5558
5501
  position: relative;
5559
5502
 
5560
5503
  min-width: 24px;
5504
+
5561
5505
  padding: 0 0 36px;
5562
5506
  margin: 0.25rem 0.25rem 0;
5563
5507
 
@@ -5569,17 +5513,17 @@
5569
5513
  input[type=checkbox] + label + label::before,
5570
5514
  input[type=checkbox] + label + label::after {
5571
5515
  position: absolute;
5572
-
5573
5516
  left: 50%;
5574
5517
 
5575
5518
  margin: 0;
5576
5519
 
5577
- content: "";
5578
-
5579
5520
  outline: 0;
5580
5521
 
5581
- transition: all var(---transition-duration) ease;
5522
+ content: "";
5523
+
5582
5524
  transform: translate(-50%, 0);
5525
+
5526
+ transition: all var(---transition-duration) ease;
5583
5527
  }
5584
5528
 
5585
5529
  input[type=checkbox] + label + label::before {
@@ -5627,17 +5571,14 @@
5627
5571
  box-shadow: var(---shadow-8);
5628
5572
  }
5629
5573
 
5630
- /* stylelint-disable-next-line selector-max-compound-selectors */
5631
- :host(.keyboard) input[type=checkbox]:enabled:focus + label + label::after {
5574
+ input[type=checkbox]:enabled:focus-visible + label + label::after {
5632
5575
  box-shadow: var(---shadow-4);
5633
5576
  }
5634
5577
 
5635
- /* stylelint-disable selector-max-compound-selectors */
5636
- :host(.keyboard) input[type=checkbox]:enabled:focus + label + label:active::after,
5637
- :host(.keyboard) input[type=checkbox]:enabled:focus:active + label + label::after {
5578
+ input[type=checkbox]:enabled:focus-visible + label + label:active::after,
5579
+ input[type=checkbox]:enabled:focus-visible:active + label + label::after {
5638
5580
  box-shadow: var(---shadow-8);
5639
5581
  }
5640
- /* stylelint-enable selector-max-compound-selectors */
5641
5582
  `];
5642
5583
  }
5643
5584
  render() {
@@ -5757,39 +5698,46 @@
5757
5698
 
5758
5699
  width: 1px;
5759
5700
  height: 1px;
5701
+
5760
5702
  padding: 0;
5761
5703
  margin: -1px;
5704
+
5762
5705
  overflow: hidden;
5763
5706
 
5764
5707
  white-space: nowrap;
5765
5708
 
5766
5709
  border: 0;
5710
+
5767
5711
  clip-path: inset(100%); /* May cause a performance issue: https://github.com/h5bp/html5-boilerplate/issues/2021 */
5768
5712
  }
5769
5713
 
5770
5714
  input[type=radio] + label {
5771
5715
  width: 100%;
5716
+
5772
5717
  padding: 0.375rem 0.75rem;
5773
5718
 
5774
5719
  font-family: var(---font-family-base);
5775
5720
  font-size: 1.125rem;
5721
+
5776
5722
  line-height: 1.5;
5723
+
5777
5724
  color: var(---color-text-inverse);
5725
+
5778
5726
  text-align: center;
5779
5727
 
5780
5728
  cursor: pointer;
5729
+ outline: none;
5781
5730
 
5782
5731
  background-color: var(---color-element-enabled);
5783
5732
  border: 0;
5784
5733
  border-radius: 0;
5785
- outline: none;
5786
-
5787
5734
  box-shadow: var(---shadow-2);
5788
5735
  }
5789
5736
 
5790
5737
  input[type=radio]:checked + label {
5791
- background-color: var(---color-element-selected);
5792
5738
  outline: none;
5739
+
5740
+ background-color: var(---color-element-selected);
5793
5741
  box-shadow: var(---shadow-2);
5794
5742
  }
5795
5743
 
@@ -5797,6 +5745,7 @@
5797
5745
  z-index: 1;
5798
5746
 
5799
5747
  outline: none;
5748
+
5800
5749
  box-shadow: var(---shadow-4);
5801
5750
  }
5802
5751
 
@@ -5804,6 +5753,7 @@
5804
5753
  z-index: 2;
5805
5754
 
5806
5755
  outline: none;
5756
+
5807
5757
  box-shadow: var(---shadow-8);
5808
5758
  }
5809
5759
 
@@ -5817,25 +5767,28 @@
5817
5767
  border-bottom-left-radius: 0.25rem;
5818
5768
  }
5819
5769
 
5820
- :host(.keyboard) input[type=radio]:focus + label {
5770
+ input[type=radio]:focus-visible + label {
5821
5771
  z-index: 1;
5822
5772
 
5823
5773
  outline: none;
5774
+
5824
5775
  box-shadow: var(---shadow-4);
5825
5776
  }
5826
5777
 
5827
- :host(.keyboard) input[type=radio]:focus:checked + label {
5778
+ input[type=radio]:focus-visible:checked + label {
5828
5779
  z-index: 1;
5829
5780
 
5830
- background-color: var(---color-element-selected);
5831
5781
  outline: none;
5782
+
5783
+ background-color: var(---color-element-selected);
5832
5784
  box-shadow: var(---shadow-4);
5833
5785
  }
5834
5786
 
5835
- :host(.keyboard) input[type=radio]:focus + label:active {
5787
+ input[type=radio]:focus-visible + label:active {
5836
5788
  z-index: 2;
5837
5789
 
5838
5790
  outline: none;
5791
+
5839
5792
  box-shadow: var(---shadow-8);
5840
5793
  }
5841
5794
  `];
@@ -6688,6 +6641,7 @@
6688
6641
 
6689
6642
  width: 6rem;
6690
6643
  height: 3.5rem;
6644
+
6691
6645
  padding: 0.375rem 0.75rem;
6692
6646
  margin: 0.25rem;
6693
6647
 
@@ -6716,6 +6670,7 @@
6716
6670
 
6717
6671
  .feedback .outcome {
6718
6672
  font-weight: 600;
6673
+
6719
6674
  line-height: 1.15;
6720
6675
  }
6721
6676
 
@@ -6998,6 +6953,7 @@
6998
6953
  /* Labels */
6999
6954
  .payoff {
7000
6955
  font-weight: 600;
6956
+
7001
6957
  line-height: 0.75rem;
7002
6958
  }
7003
6959
 
@@ -7486,6 +7442,7 @@
7486
7442
 
7487
7443
  decidables-slider {
7488
7444
  line-height: 1;
7445
+
7489
7446
  text-align: center;
7490
7447
  }
7491
7448
 
@@ -7931,8 +7888,9 @@
7931
7888
  }
7932
7889
 
7933
7890
  .path.highlight .curve {
7934
- filter: url("#shadow-2");
7935
7891
  opacity: 1;
7892
+
7893
+ filter: url("#shadow-2");
7936
7894
  }
7937
7895
 
7938
7896
  .path.correct .curve {
@@ -8008,8 +7966,9 @@
8008
7966
 
8009
7967
  .boundary.interactive,
8010
7968
  .t0z.interactive {
8011
- filter: url("#shadow-2");
8012
7969
  outline: none;
7970
+
7971
+ filter: url("#shadow-2");
8013
7972
  }
8014
7973
 
8015
7974
  .boundary.interactive:hover,
@@ -8029,8 +7988,8 @@
8029
7988
  transform: translateY(0);
8030
7989
  }
8031
7990
 
8032
- :host(.keyboard) .boundary.interactive:focus,
8033
- :host(.keyboard) .t0z.interactive:focus {
7991
+ .boundary.interactive:focus-visible,
7992
+ .t0z.interactive:focus-visible {
8034
7993
  filter: url("#shadow-8");
8035
7994
 
8036
7995
  /* HACK: This gets Safari to correctly apply the filter! */
@@ -8049,15 +8008,15 @@
8049
8008
 
8050
8009
  fill: none;
8051
8010
  stroke: var(---color-element-emphasis);
8052
- stroke-dasharray: 8 4;
8053
8011
  stroke-width: 2;
8012
+ stroke-dasharray: 8 4;
8054
8013
  }
8055
8014
 
8056
8015
  .drift.interactive {
8057
8016
  cursor: ns-resize;
8017
+ outline: none;
8058
8018
 
8059
8019
  filter: url("#shadow-2");
8060
- outline: none;
8061
8020
 
8062
8021
  /* HACK: This gets Safari to correctly apply the filter! */
8063
8022
  fill: #000000;
@@ -8078,7 +8037,7 @@
8078
8037
  fill: #00ff00;
8079
8038
  }
8080
8039
 
8081
- :host(.keyboard) .drift.interactive:focus {
8040
+ .drift.interactive:focus-visible {
8082
8041
  filter: url("#shadow-8");
8083
8042
 
8084
8043
  /* HACK: This gets Safari to correctly apply the filter! */
@@ -8092,14 +8051,14 @@
8092
8051
  /* Make larger targets for touch users */
8093
8052
  .interactive .touch {
8094
8053
  stroke: #000000;
8095
- stroke-dasharray: none;
8096
8054
  stroke-opacity: 0;
8055
+ stroke-dasharray: none;
8097
8056
  }
8098
8057
 
8099
8058
  @media (pointer: coarse) {
8100
8059
  .interactive .touch {
8101
- stroke-linecap: round;
8102
8060
  stroke-width: 12;
8061
+ stroke-linecap: round;
8103
8062
  }
8104
8063
  }
8105
8064
 
@@ -8124,6 +8083,7 @@
8124
8083
 
8125
8084
  .measure.a .label {
8126
8085
  dominant-baseline: auto;
8086
+
8127
8087
  text-anchor: end;
8128
8088
  }
8129
8089
 
@@ -8135,6 +8095,7 @@
8135
8095
  /* Hack to avoid Safari weirdness */
8136
8096
  .measure.z .label tspan {
8137
8097
  dominant-baseline: hanging;
8098
+
8138
8099
  text-anchor: start;
8139
8100
  }
8140
8101
 
@@ -8144,6 +8105,7 @@
8144
8105
 
8145
8106
  .measure.v .label {
8146
8107
  dominant-baseline: auto;
8108
+
8147
8109
  text-anchor: start;
8148
8110
  }
8149
8111
 
@@ -8153,6 +8115,7 @@
8153
8115
 
8154
8116
  .measure.t0 .label {
8155
8117
  dominant-baseline: auto;
8118
+
8156
8119
  text-anchor: middle;
8157
8120
  }
8158
8121
 
@@ -9845,11 +9808,13 @@
9845
9808
 
9846
9809
  .addend {
9847
9810
  position: relative;
9811
+
9848
9812
  display: inline-block;
9849
9813
  }
9850
9814
 
9851
9815
  .comparison {
9852
9816
  position: relative;
9817
+
9853
9818
  display: inline-block;
9854
9819
 
9855
9820
  font-size: 125%;