@multiplatform.one/theme 9.0.2 → 9.0.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.
- package/dist/cjs/theme/createThemes.cjs +151 -106
- package/dist/cjs/theme/createThemes.native.js +256 -197
- package/dist/cjs/theme/createThemes.native.js.map +1 -1
- package/dist/esm/audit/constraintAudit.native.js.map +1 -1
- package/dist/esm/audit/designTokens.native.js.map +1 -1
- package/dist/esm/audit/diffReport.native.js.map +1 -1
- package/dist/esm/audit/index.native.js.map +1 -1
- package/dist/esm/audit/themeMatrix.native.js.map +1 -1
- package/dist/esm/dates.native.js.map +1 -1
- package/dist/esm/devWarn.native.js.map +1 -1
- package/dist/esm/expo.native.js.map +1 -1
- package/dist/esm/figma/figmaTokens.native.js.map +1 -1
- package/dist/esm/font.native.js.map +1 -1
- package/dist/esm/fonts/createFontLoader.native.js.map +1 -1
- package/dist/esm/fonts/index.native.js.map +1 -1
- package/dist/esm/fonts/interFaces.native.js.map +1 -1
- package/dist/esm/fonts/types.native.js.map +1 -1
- package/dist/esm/index.gnome.native.js.map +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/keyboardFocusRing.native.js.map +1 -1
- package/dist/esm/menuRow.native.js.map +1 -1
- package/dist/esm/nativeTwins.native.js.map +1 -1
- package/dist/esm/numbers.native.js.map +1 -1
- package/dist/esm/theme/Heading.native.js.map +1 -1
- package/dist/esm/theme/IconSlot.native.js.map +1 -1
- package/dist/esm/theme/Intent.native.js.map +1 -1
- package/dist/esm/theme/Preset.native.js.map +1 -1
- package/dist/esm/theme/PresetContext.native.js.map +1 -1
- package/dist/esm/theme/Surface.native.js.map +1 -1
- package/dist/esm/theme/Text.native.js.map +1 -1
- package/dist/esm/theme/Tint.native.js.map +1 -1
- package/dist/esm/theme/accentInk.native.js.map +1 -1
- package/dist/esm/theme/activateThemeConfig.native.js.map +1 -1
- package/dist/esm/theme/animations/css.native.js.map +1 -1
- package/dist/esm/theme/animations/index.native.js.map +1 -1
- package/dist/esm/theme/animations/reactNative.native.js.map +1 -1
- package/dist/esm/theme/chartPalette.native.js.map +1 -1
- package/dist/esm/theme/colorRules.native.js.map +1 -1
- package/dist/esm/theme/controlTiers.native.js.map +1 -1
- package/dist/esm/theme/cookies.native.js.map +1 -1
- package/dist/esm/theme/createDefaultThemeConfig.native.js.map +1 -1
- package/dist/esm/theme/createThemes.mjs +151 -106
- package/dist/esm/theme/createThemes.mjs.map +1 -1
- package/dist/esm/theme/createThemes.native.js +256 -197
- package/dist/esm/theme/createThemes.native.js.map +1 -1
- package/dist/esm/theme/dedupeInherited.native.js.map +1 -1
- package/dist/esm/theme/defaults/accent.native.js.map +1 -1
- package/dist/esm/theme/defaults/base.native.js.map +1 -1
- package/dist/esm/theme/defaults/builderOptions.native.js.map +1 -1
- package/dist/esm/theme/defaults/categoryFonts.native.js.map +1 -1
- package/dist/esm/theme/defaults/fonts.native.js.map +1 -1
- package/dist/esm/theme/defaults/house.native.js.map +1 -1
- package/dist/esm/theme/defaults/index.native.js.map +1 -1
- package/dist/esm/theme/devtools/animationOptions.native.js.map +1 -1
- package/dist/esm/theme/devtools/buildSnapshot.native.js.map +1 -1
- package/dist/esm/theme/devtools/index.native.js.map +1 -1
- package/dist/esm/theme/devtools/knobIcons.native.js.map +1 -1
- package/dist/esm/theme/devtools/vizConstants.native.js.map +1 -1
- package/dist/esm/theme/dynamicType.native.js.map +1 -1
- package/dist/esm/theme/fieldFocus.native.js.map +1 -1
- package/dist/esm/theme/fillContrast.native.js.map +1 -1
- package/dist/esm/theme/focusState.native.js.map +1 -1
- package/dist/esm/theme/fontCategoryMetrics.native.js.map +1 -1
- package/dist/esm/theme/fontCategoryStacks.native.js.map +1 -1
- package/dist/esm/theme/glyphPaint.native.js.map +1 -1
- package/dist/esm/theme/glyphTint.native.js.map +1 -1
- package/dist/esm/theme/groupGeometry.native.js.map +1 -1
- package/dist/esm/theme/index.native.js.map +1 -1
- package/dist/esm/theme/intents.native.js.map +1 -1
- package/dist/esm/theme/knobs.native.js.map +1 -1
- package/dist/esm/theme/layoutTokens.native.js.map +1 -1
- package/dist/esm/theme/listRows.native.js.map +1 -1
- package/dist/esm/theme/mergedTokens.native.js.map +1 -1
- package/dist/esm/theme/motion.native.js.map +1 -1
- package/dist/esm/theme/motionStops.native.js.map +1 -1
- package/dist/esm/theme/motionTiming.native.js.map +1 -1
- package/dist/esm/theme/nativeMonoFamily.native.js.map +1 -1
- package/dist/esm/theme/nativePresetSwitch.native.js.map +1 -1
- package/dist/esm/theme/nativeSchemePreference.native.js.map +1 -1
- package/dist/esm/theme/nativeTheme.native.js.map +1 -1
- package/dist/esm/theme/nativeTransitionProps.native.js.map +1 -1
- package/dist/esm/theme/overlaySurfaces.native.js.map +1 -1
- package/dist/esm/theme/pageGutter.native.js.map +1 -1
- package/dist/esm/theme/preset.types.native.js.map +1 -1
- package/dist/esm/theme/presetPreview.native.js.map +1 -1
- package/dist/esm/theme/presetStore.native.js.map +1 -1
- package/dist/esm/theme/presetUserSync.native.js.map +1 -1
- package/dist/esm/theme/presets.native.js.map +1 -1
- package/dist/esm/theme/radiusClass.native.js.map +1 -1
- package/dist/esm/theme/radiusClassTable.generated.native.js.map +1 -1
- package/dist/esm/theme/ramps.native.js.map +1 -1
- package/dist/esm/theme/readableColor.native.js.map +1 -1
- package/dist/esm/theme/recipeInputs.native.js.map +1 -1
- package/dist/esm/theme/recipes.native.js.map +1 -1
- package/dist/esm/theme/resolveKnobs.native.js.map +1 -1
- package/dist/esm/theme/scale/activeScale.native.js.map +1 -1
- package/dist/esm/theme/scale/deriveRecipeInputs.native.js.map +1 -1
- package/dist/esm/theme/scale/index.native.js.map +1 -1
- package/dist/esm/theme/scale/scaleAttribute.native.js.map +1 -1
- package/dist/esm/theme/scale/scaleCss.native.js.map +1 -1
- package/dist/esm/theme/scale/scaleFonts.native.js.map +1 -1
- package/dist/esm/theme/scale/scaleInputs.native.js.map +1 -1
- package/dist/esm/theme/scale/themeScales.native.js.map +1 -1
- package/dist/esm/theme/scale/useActiveScale.native.js.map +1 -1
- package/dist/esm/theme/schemeStore.native.js.map +1 -1
- package/dist/esm/theme/shared.native.js.map +1 -1
- package/dist/esm/theme/sizeRecipes.native.js.map +1 -1
- package/dist/esm/theme/subsetThemes.native.js.map +1 -1
- package/dist/esm/theme/themeValue.native.js.map +1 -1
- package/dist/esm/theme/tileSizes.native.js.map +1 -1
- package/dist/esm/theme/tintHues.native.js.map +1 -1
- package/dist/esm/theme/tokenNumber.native.js.map +1 -1
- package/dist/esm/theme/touchManipulation.native.js.map +1 -1
- package/dist/esm/theme/useResolvedKnobs.native.js.map +1 -1
- package/dist/esm/theme/useTouchSurface.native.js.map +1 -1
- package/dist/esm/theme/v3TokenRoles.native.js.map +1 -1
- package/package.json +5 -5
- package/src/theme/createThemes.ts +229 -135
- package/types/theme/createThemes.d.ts.map +1 -1
|
@@ -464,91 +464,122 @@ function holdSelectionSurface(themes) {
|
|
|
464
464
|
}
|
|
465
465
|
return out;
|
|
466
466
|
}
|
|
467
|
+
function ownerScope(scopes, name) {
|
|
468
|
+
return scopes.filter(function (scope) {
|
|
469
|
+
return name === scope || name.startsWith(`${scope}_`);
|
|
470
|
+
}).reduce(function (longest, scope) {
|
|
471
|
+
return scope.length > longest.length ? scope : longest;
|
|
472
|
+
}, "");
|
|
473
|
+
}
|
|
474
|
+
function clearsDarkGrounds(color, grounds) {
|
|
475
|
+
var brightest = Math.max(...grounds);
|
|
476
|
+
var luminance = luminanceOf(color);
|
|
477
|
+
return luminance !== null && luminance > brightest && grounds.every(function (ground) {
|
|
478
|
+
return contrastRatio(luminance, ground) >= darkHairlineContrast;
|
|
479
|
+
});
|
|
480
|
+
}
|
|
481
|
+
function darkHairlineOf(scope) {
|
|
482
|
+
var ramp = Array.from({
|
|
483
|
+
length: 12
|
|
484
|
+
}, function (_, index) {
|
|
485
|
+
return scope[`color${index + 1}`];
|
|
486
|
+
});
|
|
487
|
+
var grounds = [scope.background, scope.color4].map(function (color) {
|
|
488
|
+
return luminanceOf(color);
|
|
489
|
+
});
|
|
490
|
+
if (grounds.some(function (ground) {
|
|
491
|
+
return ground === null;
|
|
492
|
+
})) return void 0;
|
|
493
|
+
var hairline = ramp.findIndex(function (color, index) {
|
|
494
|
+
return index < 11 && clearsDarkGrounds(color, grounds);
|
|
495
|
+
});
|
|
496
|
+
return hairline < 0 ? void 0 : {
|
|
497
|
+
ramp,
|
|
498
|
+
hairline
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
var darkEdgeStateKeys = ["borderColor", "borderColorHover", "borderColorFocus", "borderColorPress"];
|
|
502
|
+
function darkEdgesOf(name, theme, scopeName, scope, param) {
|
|
503
|
+
var {
|
|
504
|
+
ramp,
|
|
505
|
+
hairline
|
|
506
|
+
} = param;
|
|
507
|
+
var medium = hairline + 1;
|
|
508
|
+
var surface = name === scopeName || theme.background === scope.color4;
|
|
509
|
+
var step = ramp.indexOf(theme.borderColor);
|
|
510
|
+
var shift = surface && step >= 0 ? medium - step : 0;
|
|
511
|
+
var moved = {};
|
|
512
|
+
if ("borderColorHairline" in theme || name === scopeName) moved.borderColorHairline = ramp[hairline];
|
|
513
|
+
if (shift <= 0) return moved;
|
|
514
|
+
var _iteratorNormalCompletion = true,
|
|
515
|
+
_didIteratorError = false,
|
|
516
|
+
_iteratorError = void 0;
|
|
517
|
+
try {
|
|
518
|
+
for (var _iterator = darkEdgeStateKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
519
|
+
var key = _step.value;
|
|
520
|
+
var at = ramp.indexOf(theme[key]);
|
|
521
|
+
if (at >= 0) moved[key] = ramp[Math.min(11, at + shift)];
|
|
522
|
+
}
|
|
523
|
+
} catch (err) {
|
|
524
|
+
_didIteratorError = true;
|
|
525
|
+
_iteratorError = err;
|
|
526
|
+
} finally {
|
|
527
|
+
try {
|
|
528
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
529
|
+
_iterator.return();
|
|
530
|
+
}
|
|
531
|
+
} finally {
|
|
532
|
+
if (_didIteratorError) {
|
|
533
|
+
throw _iteratorError;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
return moved;
|
|
538
|
+
}
|
|
467
539
|
function holdDarkEdges(themes) {
|
|
468
540
|
var out = {
|
|
469
541
|
...themes
|
|
470
542
|
};
|
|
471
|
-
var scopes = Object.keys(themes).filter(function (
|
|
472
|
-
return /^dark(_[a-z]+)?$/.test(
|
|
543
|
+
var scopes = Object.keys(themes).filter(function (name2) {
|
|
544
|
+
return /^dark(_[a-z]+)?$/.test(name2);
|
|
473
545
|
});
|
|
474
|
-
var ownerOf = function ownerOf2(name) {
|
|
475
|
-
return scopes.filter(function (scope) {
|
|
476
|
-
return name === scope || name.startsWith(`${scope}_`);
|
|
477
|
-
}).reduce(function (longest, scope) {
|
|
478
|
-
return scope.length > longest.length ? scope : longest;
|
|
479
|
-
}, "");
|
|
480
|
-
};
|
|
481
546
|
var _iteratorNormalCompletion = true,
|
|
482
547
|
_didIteratorError = false,
|
|
483
548
|
_iteratorError = void 0;
|
|
484
549
|
try {
|
|
485
|
-
var
|
|
550
|
+
for (var _iterator = scopes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
486
551
|
var scopeName = _step.value;
|
|
487
|
-
if (/_(accent|active)$/.test(scopeName))
|
|
552
|
+
if (/_(accent|active)$/.test(scopeName)) continue;
|
|
488
553
|
var scope = themes[scopeName];
|
|
489
|
-
var
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
var grounds = [scope.background, scope.color4].map(function (color) {
|
|
495
|
-
return luminanceOf(color);
|
|
496
|
-
});
|
|
497
|
-
if (grounds.some(function (ground) {
|
|
498
|
-
return ground === null;
|
|
499
|
-
})) return "continue";
|
|
500
|
-
var brightest = Math.max(...grounds);
|
|
501
|
-
var clears = function clears2(color) {
|
|
502
|
-
var luminance = luminanceOf(color);
|
|
503
|
-
return luminance !== null && luminance > brightest && grounds.every(function (ground) {
|
|
504
|
-
return contrastRatio(luminance, ground) >= darkHairlineContrast;
|
|
505
|
-
});
|
|
506
|
-
};
|
|
507
|
-
var hairline = ramp.findIndex(function (color, index) {
|
|
508
|
-
return index < 11 && clears(color);
|
|
509
|
-
});
|
|
510
|
-
if (hairline < 0) return "continue";
|
|
511
|
-
var medium = hairline + 1;
|
|
512
|
-
var _iteratorNormalCompletion2 = true,
|
|
513
|
-
_didIteratorError2 = false,
|
|
514
|
-
_iteratorError2 = void 0;
|
|
554
|
+
var pick = darkHairlineOf(scope);
|
|
555
|
+
if (!pick) continue;
|
|
556
|
+
var _iteratorNormalCompletion1 = true,
|
|
557
|
+
_didIteratorError1 = false,
|
|
558
|
+
_iteratorError1 = void 0;
|
|
515
559
|
try {
|
|
516
|
-
for (var
|
|
560
|
+
for (var _iterator1 = Object.entries(themes)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
|
|
517
561
|
var [name, theme] = _step1.value;
|
|
518
|
-
if (
|
|
519
|
-
var surface = name === scopeName || theme.background === scope.color4;
|
|
520
|
-
var step = ramp.indexOf(theme.borderColor);
|
|
521
|
-
var shift = surface && step >= 0 ? medium - step : 0;
|
|
522
|
-
var moved = {};
|
|
523
|
-
if ("borderColorHairline" in theme || name === scopeName) moved.borderColorHairline = ramp[hairline];
|
|
524
|
-
if (shift > 0) {
|
|
525
|
-
for (var _i = 0, _iter = ["borderColor", "borderColorHover", "borderColorFocus", "borderColorPress"]; _i < _iter.length; _i++) {
|
|
526
|
-
var key = _iter[_i];
|
|
527
|
-
var at = ramp.indexOf(theme[key]);
|
|
528
|
-
if (at >= 0) moved[key] = ramp[Math.min(11, at + shift)];
|
|
529
|
-
}
|
|
530
|
-
}
|
|
562
|
+
if (ownerScope(scopes, name) !== scopeName) continue;
|
|
531
563
|
out[name] = {
|
|
532
564
|
...out[name],
|
|
533
|
-
...
|
|
565
|
+
...darkEdgesOf(name, theme, scopeName, scope, pick)
|
|
534
566
|
};
|
|
535
567
|
}
|
|
536
568
|
} catch (err) {
|
|
537
|
-
|
|
538
|
-
|
|
569
|
+
_didIteratorError1 = true;
|
|
570
|
+
_iteratorError1 = err;
|
|
539
571
|
} finally {
|
|
540
572
|
try {
|
|
541
|
-
if (!
|
|
542
|
-
|
|
573
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
574
|
+
_iterator1.return();
|
|
543
575
|
}
|
|
544
576
|
} finally {
|
|
545
|
-
if (
|
|
546
|
-
throw
|
|
577
|
+
if (_didIteratorError1) {
|
|
578
|
+
throw _iteratorError1;
|
|
547
579
|
}
|
|
548
580
|
}
|
|
549
581
|
}
|
|
550
|
-
}
|
|
551
|
-
for (var _iterator = scopes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
|
|
582
|
+
}
|
|
552
583
|
} catch (err) {
|
|
553
584
|
_didIteratorError = true;
|
|
554
585
|
_iteratorError = err;
|
|
@@ -565,6 +596,117 @@ function holdDarkEdges(themes) {
|
|
|
565
596
|
}
|
|
566
597
|
return out;
|
|
567
598
|
}
|
|
599
|
+
function firstClearing(neutral, grounds) {
|
|
600
|
+
var lums = grounds.map(function (ground) {
|
|
601
|
+
return luminanceOf(ground);
|
|
602
|
+
});
|
|
603
|
+
if (lums.some(function (lum) {
|
|
604
|
+
return lum === null;
|
|
605
|
+
})) return -1;
|
|
606
|
+
var darkest = Math.min(...lums);
|
|
607
|
+
var brightest = Math.max(...lums);
|
|
608
|
+
var light = isLightGround(grounds[0]);
|
|
609
|
+
return neutral.findIndex(function (color) {
|
|
610
|
+
var lum = luminanceOf(color);
|
|
611
|
+
return lum !== null && (light ? lum < darkest : lum > brightest) && lums.every(function (ground) {
|
|
612
|
+
return contrastRatio(lum, ground) >= minContrastRatio;
|
|
613
|
+
});
|
|
614
|
+
});
|
|
615
|
+
}
|
|
616
|
+
function inheritedValue(out, themes, name, key) {
|
|
617
|
+
for (var at = name; at; at = at.slice(0, Math.max(0, at.lastIndexOf("_")))) {
|
|
618
|
+
var _out_at;
|
|
619
|
+
var _this;
|
|
620
|
+
var value = (_this = (_out_at = out[at]) !== null && _out_at !== void 0 ? _out_at : themes[at]) === null || _this === void 0 ? void 0 : _this[key];
|
|
621
|
+
if (value !== void 0) return value;
|
|
622
|
+
if (!at.includes("_")) break;
|
|
623
|
+
}
|
|
624
|
+
return void 0;
|
|
625
|
+
}
|
|
626
|
+
function nearestStep(ramp, color) {
|
|
627
|
+
var lum = luminanceOf(color);
|
|
628
|
+
if (lum === null) return -1;
|
|
629
|
+
return ramp.reduce(function (best, step, index) {
|
|
630
|
+
var _luminanceOf, _luminanceOf1;
|
|
631
|
+
return Math.abs(((_luminanceOf = luminanceOf(step)) !== null && _luminanceOf !== void 0 ? _luminanceOf : 2) - lum) < Math.abs(((_luminanceOf1 = luminanceOf(ramp[best])) !== null && _luminanceOf1 !== void 0 ? _luminanceOf1 : 2) - lum) ? index : best;
|
|
632
|
+
}, 0);
|
|
633
|
+
}
|
|
634
|
+
function fieldEdgesOf(themes, out, neutral, scopeName) {
|
|
635
|
+
var scope = themes[scopeName];
|
|
636
|
+
var field = `${scopeName}_Input`;
|
|
637
|
+
var edge = firstClearing(neutral, [scope.background, inheritedValue(out, themes, field, "background")]);
|
|
638
|
+
if (edge < 0) return void 0;
|
|
639
|
+
var ramp = Array.from({
|
|
640
|
+
length: 12
|
|
641
|
+
}, function (_, index) {
|
|
642
|
+
return scope[`color${index + 1}`];
|
|
643
|
+
});
|
|
644
|
+
var rest = nearestStep(ramp, inheritedValue(out, themes, field, "borderColor"));
|
|
645
|
+
var hover = nearestStep(ramp, inheritedValue(out, themes, field, "borderColorHover"));
|
|
646
|
+
return {
|
|
647
|
+
borderColorField: neutral[edge],
|
|
648
|
+
borderColorFieldHover: neutral[Math.min(11, Math.max(edge, edge + hover - rest))]
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
function intentFieldEdges(themes, out, scopeName, pages) {
|
|
652
|
+
var scope = themes[scopeName];
|
|
653
|
+
var field = `${scopeName}_Input`;
|
|
654
|
+
var ramp = Array.from({
|
|
655
|
+
length: 12
|
|
656
|
+
}, function (_, index) {
|
|
657
|
+
return scope[`color${index + 1}`];
|
|
658
|
+
});
|
|
659
|
+
var edge = firstClearing(ramp, [...pages, inheritedValue(out, themes, field, "background")]);
|
|
660
|
+
if (edge < 0) return {
|
|
661
|
+
borderColorField: inheritedValue(out, themes, field, "borderColor"),
|
|
662
|
+
borderColorFieldHover: inheritedValue(out, themes, field, "borderColorHover")
|
|
663
|
+
};
|
|
664
|
+
return {
|
|
665
|
+
borderColorField: ramp[edge],
|
|
666
|
+
borderColorFieldHover: ramp[Math.min(11, edge + 1)]
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
function controlEdgePatch(themes, out, scopeName, param) {
|
|
670
|
+
var {
|
|
671
|
+
scheme,
|
|
672
|
+
neutral,
|
|
673
|
+
pages,
|
|
674
|
+
rootFields,
|
|
675
|
+
rootControl
|
|
676
|
+
} = param;
|
|
677
|
+
var scope = themes[scopeName];
|
|
678
|
+
var patch = {};
|
|
679
|
+
if (scheme === "dark" && "switchTrackOff" in scope) patch.switchTrackOffBorder = scope.switchTrackOff;
|
|
680
|
+
if (semanticIntentNames.has(scopeName.slice(scheme.length + 1))) return Object.assign(patch, intentFieldEdges(themes, out, scopeName, pages));
|
|
681
|
+
var fields = fieldEdgesOf(themes, out, neutral, scopeName);
|
|
682
|
+
if (fields) {
|
|
683
|
+
var _iteratorNormalCompletion = true,
|
|
684
|
+
_didIteratorError = false,
|
|
685
|
+
_iteratorError = void 0;
|
|
686
|
+
try {
|
|
687
|
+
for (var _iterator = Object.entries(fields)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
688
|
+
var [key, value] = _step.value;
|
|
689
|
+
if (value !== rootFields[key]) patch[key] = value;
|
|
690
|
+
}
|
|
691
|
+
} catch (err) {
|
|
692
|
+
_didIteratorError = true;
|
|
693
|
+
_iteratorError = err;
|
|
694
|
+
} finally {
|
|
695
|
+
try {
|
|
696
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
697
|
+
_iterator.return();
|
|
698
|
+
}
|
|
699
|
+
} finally {
|
|
700
|
+
if (_didIteratorError) {
|
|
701
|
+
throw _iteratorError;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
var control = firstClearing(neutral, [scope.background]);
|
|
707
|
+
if (control >= 0 && control !== rootControl) patch.borderColorControl = neutral[control];
|
|
708
|
+
return patch;
|
|
709
|
+
}
|
|
568
710
|
function holdControlEdges(themes) {
|
|
569
711
|
var _loop = function (_i2, _iter2) {
|
|
570
712
|
var scheme = _iter2[_i2];
|
|
@@ -575,32 +717,7 @@ function holdControlEdges(themes) {
|
|
|
575
717
|
}, function (_, index) {
|
|
576
718
|
return root[`color${index + 1}`];
|
|
577
719
|
});
|
|
578
|
-
var
|
|
579
|
-
var scope = themes[scopeName];
|
|
580
|
-
var field = `${scopeName}_Input`;
|
|
581
|
-
var edge = firstClearing(neutral, [scope.background, resolved(field, "background")]);
|
|
582
|
-
if (edge < 0) return void 0;
|
|
583
|
-
var ramp = Array.from({
|
|
584
|
-
length: 12
|
|
585
|
-
}, function (_, index) {
|
|
586
|
-
return scope[`color${index + 1}`];
|
|
587
|
-
});
|
|
588
|
-
var stepOf = function stepOf2(color) {
|
|
589
|
-
var lum = luminanceOf(color);
|
|
590
|
-
if (lum === null) return -1;
|
|
591
|
-
return ramp.reduce(function (best, step, index) {
|
|
592
|
-
var _luminanceOf, _luminanceOf1;
|
|
593
|
-
return Math.abs(((_luminanceOf = luminanceOf(step)) !== null && _luminanceOf !== void 0 ? _luminanceOf : 2) - lum) < Math.abs(((_luminanceOf1 = luminanceOf(ramp[best])) !== null && _luminanceOf1 !== void 0 ? _luminanceOf1 : 2) - lum) ? index : best;
|
|
594
|
-
}, 0);
|
|
595
|
-
};
|
|
596
|
-
var rest = stepOf(resolved(field, "borderColor"));
|
|
597
|
-
var hover = stepOf(resolved(field, "borderColorHover"));
|
|
598
|
-
return {
|
|
599
|
-
borderColorField: neutral[edge],
|
|
600
|
-
borderColorFieldHover: neutral[Math.min(11, Math.max(edge, edge + hover - rest))]
|
|
601
|
-
};
|
|
602
|
-
};
|
|
603
|
-
var rootFields = fieldEdges(scheme);
|
|
720
|
+
var rootFields = fieldEdgesOf(themes, out, neutral, scheme);
|
|
604
721
|
var rootControl = firstClearing(neutral, [root.background]);
|
|
605
722
|
if (!rootFields || rootControl < 0) return "continue";
|
|
606
723
|
out[scheme] = {
|
|
@@ -617,60 +734,25 @@ function holdControlEdges(themes) {
|
|
|
617
734
|
}).map(function (name) {
|
|
618
735
|
return themes[name].background;
|
|
619
736
|
})];
|
|
737
|
+
var context = {
|
|
738
|
+
scheme,
|
|
739
|
+
neutral,
|
|
740
|
+
pages,
|
|
741
|
+
rootFields,
|
|
742
|
+
rootControl
|
|
743
|
+
};
|
|
620
744
|
var _iteratorNormalCompletion = true,
|
|
621
745
|
_didIteratorError = false,
|
|
622
746
|
_iteratorError = void 0;
|
|
623
747
|
try {
|
|
624
|
-
var
|
|
748
|
+
for (var _iterator = scopes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
625
749
|
var scopeName = _step.value;
|
|
626
|
-
var
|
|
627
|
-
var patch = {};
|
|
628
|
-
if (scheme === "dark" && "switchTrackOff" in scope) patch.switchTrackOffBorder = scope.switchTrackOff;
|
|
629
|
-
if (semanticIntentNames.has(scopeName.slice(scheme.length + 1))) {
|
|
630
|
-
var field = `${scopeName}_Input`;
|
|
631
|
-
var ramp = Array.from({
|
|
632
|
-
length: 12
|
|
633
|
-
}, function (_, index) {
|
|
634
|
-
return scope[`color${index + 1}`];
|
|
635
|
-
});
|
|
636
|
-
var edge = firstClearing(ramp, [...pages, resolved(field, "background")]);
|
|
637
|
-
patch.borderColorField = edge < 0 ? resolved(field, "borderColor") : ramp[edge];
|
|
638
|
-
patch.borderColorFieldHover = edge < 0 ? resolved(field, "borderColorHover") : ramp[Math.min(11, edge + 1)];
|
|
639
|
-
} else {
|
|
640
|
-
var fields = fieldEdges(scopeName);
|
|
641
|
-
if (fields) {
|
|
642
|
-
var _iteratorNormalCompletion2 = true,
|
|
643
|
-
_didIteratorError2 = false,
|
|
644
|
-
_iteratorError2 = void 0;
|
|
645
|
-
try {
|
|
646
|
-
for (var _iterator2 = Object.entries(fields)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion2 = (_step1 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
647
|
-
var [key, value] = _step1.value;
|
|
648
|
-
if (value !== rootFields[key]) patch[key] = value;
|
|
649
|
-
}
|
|
650
|
-
} catch (err) {
|
|
651
|
-
_didIteratorError2 = true;
|
|
652
|
-
_iteratorError2 = err;
|
|
653
|
-
} finally {
|
|
654
|
-
try {
|
|
655
|
-
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
656
|
-
_iterator2.return();
|
|
657
|
-
}
|
|
658
|
-
} finally {
|
|
659
|
-
if (_didIteratorError2) {
|
|
660
|
-
throw _iteratorError2;
|
|
661
|
-
}
|
|
662
|
-
}
|
|
663
|
-
}
|
|
664
|
-
}
|
|
665
|
-
var control = firstClearing(neutral, [scope.background]);
|
|
666
|
-
if (control >= 0 && control !== rootControl) patch.borderColorControl = neutral[control];
|
|
667
|
-
}
|
|
750
|
+
var patch = controlEdgePatch(themes, out, scopeName, context);
|
|
668
751
|
if (Object.keys(patch).length > 0) out[scopeName] = {
|
|
669
752
|
...out[scopeName],
|
|
670
753
|
...patch
|
|
671
754
|
};
|
|
672
|
-
}
|
|
673
|
-
for (var _iterator = scopes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop2();
|
|
755
|
+
}
|
|
674
756
|
} catch (err) {
|
|
675
757
|
_didIteratorError = true;
|
|
676
758
|
_iteratorError = err;
|
|
@@ -689,33 +771,6 @@ function holdControlEdges(themes) {
|
|
|
689
771
|
var out = {
|
|
690
772
|
...themes
|
|
691
773
|
};
|
|
692
|
-
var firstClearing = function firstClearing2(neutral, grounds) {
|
|
693
|
-
var lums = grounds.map(function (ground) {
|
|
694
|
-
return luminanceOf(ground);
|
|
695
|
-
});
|
|
696
|
-
if (lums.some(function (lum) {
|
|
697
|
-
return lum === null;
|
|
698
|
-
})) return -1;
|
|
699
|
-
var darkest = Math.min(...lums);
|
|
700
|
-
var brightest = Math.max(...lums);
|
|
701
|
-
var light = isLightGround(grounds[0]);
|
|
702
|
-
return neutral.findIndex(function (color) {
|
|
703
|
-
var lum = luminanceOf(color);
|
|
704
|
-
return lum !== null && (light ? lum < darkest : lum > brightest) && lums.every(function (ground) {
|
|
705
|
-
return contrastRatio(lum, ground) >= minContrastRatio;
|
|
706
|
-
});
|
|
707
|
-
});
|
|
708
|
-
};
|
|
709
|
-
var resolved = function resolved2(name, key) {
|
|
710
|
-
for (var at = name; at; at = at.slice(0, Math.max(0, at.lastIndexOf("_")))) {
|
|
711
|
-
var _out_at;
|
|
712
|
-
var _this;
|
|
713
|
-
var value = (_this = (_out_at = out[at]) !== null && _out_at !== void 0 ? _out_at : themes[at]) === null || _this === void 0 ? void 0 : _this[key];
|
|
714
|
-
if (value !== void 0) return value;
|
|
715
|
-
if (!at.includes("_")) break;
|
|
716
|
-
}
|
|
717
|
-
return void 0;
|
|
718
|
-
};
|
|
719
774
|
for (var _i = 0, _iter = ["light", "dark"]; _i < _iter.length; _i++) _loop(_i, _iter);
|
|
720
775
|
return out;
|
|
721
776
|
}
|
|
@@ -848,24 +903,15 @@ function holdSwitchTrack(themes) {
|
|
|
848
903
|
_didIteratorError = false,
|
|
849
904
|
_iteratorError = void 0;
|
|
850
905
|
try {
|
|
851
|
-
var
|
|
906
|
+
for (var _iterator = semanticIntentNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
852
907
|
var intent = _step.value;
|
|
853
|
-
var _scope_accentBackground;
|
|
854
908
|
var scope = themes[`${scheme}_${intent}`];
|
|
855
|
-
var
|
|
856
|
-
if (!(scope === null || scope === void 0 ? void 0 : scope.color4) || !scope.color5 || off === null) return "continue";
|
|
857
|
-
var holds = inSwitchOffBand(paint.switchTrackOff, scope.color4) && [scope.color4, scope.color5].every(function (ground) {
|
|
858
|
-
var _luminanceOf;
|
|
859
|
-
return contrastRatio(off, (_luminanceOf = luminanceOf(ground)) !== null && _luminanceOf !== void 0 ? _luminanceOf : off) >= plateContrastRatio;
|
|
860
|
-
});
|
|
861
|
-
if (holds) return "continue";
|
|
862
|
-
var track = switchTrackPaint(base, (_scope_accentBackground = scope.accentBackground) !== null && _scope_accentBackground !== void 0 ? _scope_accentBackground : base.accentBackground, scope.color4, [base.color4, scope.color4, scope.color5]);
|
|
909
|
+
var track = intentSwitchTrack(base, scope, paint);
|
|
863
910
|
if (track) out[`${scheme}_${intent}`] = {
|
|
864
911
|
...scope,
|
|
865
912
|
...track
|
|
866
913
|
};
|
|
867
|
-
}
|
|
868
|
-
for (var _iterator = semanticIntentNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
|
|
914
|
+
}
|
|
869
915
|
} catch (err) {
|
|
870
916
|
_didIteratorError = true;
|
|
871
917
|
_iteratorError = err;
|
|
@@ -883,6 +929,17 @@ function holdSwitchTrack(themes) {
|
|
|
883
929
|
}
|
|
884
930
|
return out;
|
|
885
931
|
}
|
|
932
|
+
function intentSwitchTrack(base, scope, paint) {
|
|
933
|
+
var _scope_accentBackground;
|
|
934
|
+
var off = luminanceOf(paint.switchTrackOff);
|
|
935
|
+
if (!(scope === null || scope === void 0 ? void 0 : scope.color4) || !scope.color5 || off === null) return void 0;
|
|
936
|
+
var holds = inSwitchOffBand(paint.switchTrackOff, scope.color4) && [scope.color4, scope.color5].every(function (ground) {
|
|
937
|
+
var _luminanceOf;
|
|
938
|
+
return contrastRatio(off, (_luminanceOf = luminanceOf(ground)) !== null && _luminanceOf !== void 0 ? _luminanceOf : off) >= plateContrastRatio;
|
|
939
|
+
});
|
|
940
|
+
if (holds) return void 0;
|
|
941
|
+
return switchTrackPaint(base, (_scope_accentBackground = scope.accentBackground) !== null && _scope_accentBackground !== void 0 ? _scope_accentBackground : base.accentBackground, scope.color4, [base.color4, scope.color4, scope.color5]);
|
|
942
|
+
}
|
|
886
943
|
function switchTrackPaint(base, onFill, ground) {
|
|
887
944
|
var raised = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : [];
|
|
888
945
|
var _ref, _inBand_find;
|
|
@@ -1393,37 +1450,26 @@ function holdHouseAccent(themes) {
|
|
|
1393
1450
|
return out;
|
|
1394
1451
|
}
|
|
1395
1452
|
function holdHouseIdentityInk(themes) {
|
|
1396
|
-
var
|
|
1397
|
-
|
|
1453
|
+
var out = {
|
|
1454
|
+
...themes
|
|
1455
|
+
};
|
|
1456
|
+
for (var _i = 0, _iter = ["light", "dark"]; _i < _iter.length; _i++) {
|
|
1457
|
+
var scheme = _iter[_i];
|
|
1398
1458
|
var _themes_;
|
|
1399
1459
|
var base = themes[scheme];
|
|
1400
1460
|
var blueInk = (_themes_ = themes[`${scheme}_blue`]) === null || _themes_ === void 0 ? void 0 : _themes_.identityInk;
|
|
1401
|
-
if (!(base === null || base === void 0 ? void 0 : base.identityInk) || !blueInk || base.identityInk === blueInk)
|
|
1402
|
-
|
|
1403
|
-
length: 12
|
|
1404
|
-
}, function (_, index) {
|
|
1405
|
-
return index + 1;
|
|
1406
|
-
}).every(function (step) {
|
|
1407
|
-
return base[`accent${step}`] !== void 0 && base[`accent${step}`] === base[`blue${step}`];
|
|
1408
|
-
});
|
|
1409
|
-
if (!held) return "continue";
|
|
1461
|
+
if (!(base === null || base === void 0 ? void 0 : base.identityInk) || !blueInk || base.identityInk === blueInk) continue;
|
|
1462
|
+
if (!accentIsBlue(base)) continue;
|
|
1410
1463
|
var _iteratorNormalCompletion = true,
|
|
1411
1464
|
_didIteratorError = false,
|
|
1412
1465
|
_iteratorError = void 0;
|
|
1413
1466
|
try {
|
|
1414
1467
|
for (var _iterator = Object.entries(themes)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
1415
1468
|
var [name, theme] = _step.value;
|
|
1416
|
-
if (name
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
var values = resolveThemeThroughParents(themes, name);
|
|
1421
|
-
if (pickIdentityInk([blueInk], pageSurfaces(name, values)) === blueInk) {
|
|
1422
|
-
out[name] = {
|
|
1423
|
-
...theme,
|
|
1424
|
-
identityInk: blueInk
|
|
1425
|
-
};
|
|
1426
|
-
}
|
|
1469
|
+
if (takesBlueInk(themes, scheme, name, theme, base, blueInk)) out[name] = {
|
|
1470
|
+
...theme,
|
|
1471
|
+
identityInk: blueInk
|
|
1472
|
+
};
|
|
1427
1473
|
}
|
|
1428
1474
|
} catch (err) {
|
|
1429
1475
|
_didIteratorError = true;
|
|
@@ -1439,13 +1485,26 @@ function holdHouseIdentityInk(themes) {
|
|
|
1439
1485
|
}
|
|
1440
1486
|
}
|
|
1441
1487
|
}
|
|
1442
|
-
}
|
|
1443
|
-
var out = {
|
|
1444
|
-
...themes
|
|
1445
|
-
};
|
|
1446
|
-
for (var _i = 0, _iter = ["light", "dark"]; _i < _iter.length; _i++) _loop(_i, _iter);
|
|
1488
|
+
}
|
|
1447
1489
|
return out;
|
|
1448
1490
|
}
|
|
1491
|
+
function accentIsBlue(base) {
|
|
1492
|
+
return Array.from({
|
|
1493
|
+
length: 12
|
|
1494
|
+
}, function (_, index) {
|
|
1495
|
+
return index + 1;
|
|
1496
|
+
}).every(function (step) {
|
|
1497
|
+
return base[`accent${step}`] !== void 0 && base[`accent${step}`] === base[`blue${step}`];
|
|
1498
|
+
});
|
|
1499
|
+
}
|
|
1500
|
+
function takesBlueInk(themes, scheme, name, theme, base, blueInk) {
|
|
1501
|
+
if (name !== scheme && !name.startsWith(`${scheme}_`)) return false;
|
|
1502
|
+
var scope = name.split("_")[1];
|
|
1503
|
+
if (scope === "accent" || childrenHues.includes(scope)) return false;
|
|
1504
|
+
if (theme.identityInk !== base.identityInk) return false;
|
|
1505
|
+
var values = resolveThemeThroughParents(themes, name);
|
|
1506
|
+
return pickIdentityInk([blueInk], pageSurfaces(name, values)) === blueInk;
|
|
1507
|
+
}
|
|
1449
1508
|
var defaultLightShadows = {
|
|
1450
1509
|
shadow1: "rgba(0,0,0,0.04)",
|
|
1451
1510
|
shadow2: "rgba(0,0,0,0.08)",
|