@multiplatform.one/theme 7.83.1 → 7.84.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.
- package/dist/cjs/audit/constraintAudit.cjs +567 -0
- package/dist/cjs/audit/constraintAudit.native.js +948 -0
- package/dist/cjs/audit/constraintAudit.native.js.map +1 -0
- package/dist/cjs/audit/designTokens.cjs +53 -0
- package/dist/cjs/audit/designTokens.native.js +80 -0
- package/dist/cjs/audit/designTokens.native.js.map +1 -0
- package/dist/cjs/audit/diffReport.cjs +255 -0
- package/dist/cjs/audit/diffReport.native.js +519 -0
- package/dist/cjs/audit/diffReport.native.js.map +1 -0
- package/dist/cjs/audit/index.cjs +41 -0
- package/dist/cjs/audit/index.native.js +44 -0
- package/dist/cjs/audit/index.native.js.map +1 -0
- package/dist/cjs/audit/themeMatrix.cjs +924 -0
- package/dist/cjs/audit/themeMatrix.native.js +1552 -0
- package/dist/cjs/audit/themeMatrix.native.js.map +1 -0
- package/dist/cjs/dates.cjs +261 -0
- package/dist/cjs/dates.native.js +289 -0
- package/dist/cjs/dates.native.js.map +1 -0
- package/dist/cjs/devWarn.cjs +163 -0
- package/dist/cjs/devWarn.native.js +191 -0
- package/dist/cjs/devWarn.native.js.map +1 -0
- package/dist/cjs/expo.cjs +89 -0
- package/dist/cjs/expo.native.js +97 -0
- package/dist/cjs/expo.native.js.map +1 -0
- package/dist/cjs/figma/figmaTokens.cjs +350 -0
- package/dist/cjs/figma/figmaTokens.native.js +637 -0
- package/dist/cjs/figma/figmaTokens.native.js.map +1 -0
- package/dist/cjs/font.cjs +65 -0
- package/dist/cjs/font.native.js +74 -0
- package/dist/cjs/font.native.js.map +1 -0
- package/dist/cjs/fonts/createFontLoader.cjs +32 -0
- package/dist/cjs/fonts/createFontLoader.native.js +70 -0
- package/dist/cjs/fonts/createFontLoader.native.js.map +1 -0
- package/dist/cjs/fonts/index.cjs +22 -0
- package/dist/cjs/fonts/index.native.js +25 -0
- package/dist/cjs/fonts/index.native.js.map +1 -0
- package/dist/cjs/fonts/interFaces.cjs +38 -0
- package/dist/cjs/fonts/interFaces.native.js +41 -0
- package/dist/cjs/fonts/interFaces.native.js.map +1 -0
- package/dist/cjs/fonts/types.cjs +18 -0
- package/dist/cjs/fonts/types.native.js +21 -0
- package/dist/cjs/fonts/types.native.js.map +1 -0
- package/dist/cjs/index.cjs +39 -0
- package/dist/cjs/index.native.js +42 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/keyboardFocusRing.cjs +111 -0
- package/dist/cjs/keyboardFocusRing.native.js +116 -0
- package/dist/cjs/keyboardFocusRing.native.js.map +1 -0
- package/dist/cjs/menuRow.cjs +80 -0
- package/dist/cjs/menuRow.native.js +86 -0
- package/dist/cjs/menuRow.native.js.map +1 -0
- package/dist/cjs/numbers.cjs +161 -0
- package/dist/cjs/numbers.native.js +173 -0
- package/dist/cjs/numbers.native.js.map +1 -0
- package/dist/cjs/theme/FontKnobStyles.cjs +161 -0
- package/dist/cjs/theme/FontKnobStyles.native.js +41 -0
- package/dist/cjs/theme/FontKnobStyles.native.js.map +1 -0
- package/dist/cjs/theme/Heading.cjs +174 -0
- package/dist/cjs/theme/Heading.native.js +186 -0
- package/dist/cjs/theme/Heading.native.js.map +1 -0
- package/dist/cjs/theme/IconSlot.cjs +67 -0
- package/dist/cjs/theme/IconSlot.native.js +78 -0
- package/dist/cjs/theme/IconSlot.native.js.map +1 -0
- package/dist/cjs/theme/Intent.cjs +44 -0
- package/dist/cjs/theme/Intent.native.js +48 -0
- package/dist/cjs/theme/Intent.native.js.map +1 -0
- package/dist/cjs/theme/Preset.cjs +150 -0
- package/dist/cjs/theme/Preset.native.js +156 -0
- package/dist/cjs/theme/Preset.native.js.map +1 -0
- package/dist/cjs/theme/PresetContext.cjs +38 -0
- package/dist/cjs/theme/PresetContext.native.js +42 -0
- package/dist/cjs/theme/PresetContext.native.js.map +1 -0
- package/dist/cjs/theme/Surface.cjs +115 -0
- package/dist/cjs/theme/Surface.native.js +126 -0
- package/dist/cjs/theme/Surface.native.js.map +1 -0
- package/dist/cjs/theme/Text.cjs +147 -0
- package/dist/cjs/theme/Text.native.js +155 -0
- package/dist/cjs/theme/Text.native.js.map +1 -0
- package/dist/cjs/theme/Tint.cjs +55 -0
- package/dist/cjs/theme/Tint.native.js +59 -0
- package/dist/cjs/theme/Tint.native.js.map +1 -0
- package/dist/cjs/theme/activateThemeConfig.cjs +42 -0
- package/dist/cjs/theme/activateThemeConfig.native.js +45 -0
- package/dist/cjs/theme/activateThemeConfig.native.js.map +1 -0
- package/dist/cjs/theme/animations/css.cjs +36 -0
- package/dist/cjs/theme/animations/css.native.js +39 -0
- package/dist/cjs/theme/animations/css.native.js.map +1 -0
- package/dist/cjs/theme/animations/index.cjs +20 -0
- package/dist/cjs/theme/animations/index.native.js +23 -0
- package/dist/cjs/theme/animations/index.native.js.map +1 -0
- package/dist/cjs/theme/animations/reactNative.cjs +158 -0
- package/dist/cjs/theme/animations/reactNative.native.js +161 -0
- package/dist/cjs/theme/animations/reactNative.native.js.map +1 -0
- package/dist/cjs/theme/chartPalette.cjs +229 -0
- package/dist/cjs/theme/chartPalette.native.js +297 -0
- package/dist/cjs/theme/chartPalette.native.js.map +1 -0
- package/dist/cjs/theme/colorRules.cjs +323 -0
- package/dist/cjs/theme/colorRules.native.js +359 -0
- package/dist/cjs/theme/colorRules.native.js.map +1 -0
- package/dist/cjs/theme/controlTiers.cjs +67 -0
- package/dist/cjs/theme/controlTiers.native.js +72 -0
- package/dist/cjs/theme/controlTiers.native.js.map +1 -0
- package/dist/cjs/theme/cookies.cjs +183 -0
- package/dist/cjs/theme/cookies.native.js +309 -0
- package/dist/cjs/theme/cookies.native.js.map +1 -0
- package/dist/cjs/theme/cornerSmoothing.cjs +111 -0
- package/dist/cjs/theme/cornerSmoothing.native.js +71 -0
- package/dist/cjs/theme/cornerSmoothing.native.js.map +1 -0
- package/dist/cjs/theme/createDefaultThemeConfig.cjs +130 -0
- package/dist/cjs/theme/createDefaultThemeConfig.native.js +176 -0
- package/dist/cjs/theme/createDefaultThemeConfig.native.js.map +1 -0
- package/dist/cjs/theme/createThemes.cjs +737 -0
- package/dist/cjs/theme/createThemes.native.js +1183 -0
- package/dist/cjs/theme/createThemes.native.js.map +1 -0
- package/dist/cjs/theme/dedupeInherited.cjs +83 -0
- package/dist/cjs/theme/dedupeInherited.native.js +194 -0
- package/dist/cjs/theme/dedupeInherited.native.js.map +1 -0
- package/dist/cjs/theme/defaults/accent.cjs +32 -0
- package/dist/cjs/theme/defaults/accent.native.js +35 -0
- package/dist/cjs/theme/defaults/accent.native.js.map +1 -0
- package/dist/cjs/theme/defaults/base.cjs +48 -0
- package/dist/cjs/theme/defaults/base.native.js +51 -0
- package/dist/cjs/theme/defaults/base.native.js.map +1 -0
- package/dist/cjs/theme/defaults/builderOptions.cjs +192 -0
- package/dist/cjs/theme/defaults/builderOptions.native.js +263 -0
- package/dist/cjs/theme/defaults/builderOptions.native.js.map +1 -0
- package/dist/cjs/theme/defaults/categoryFonts.cjs +50 -0
- package/dist/cjs/theme/defaults/categoryFonts.native.js +53 -0
- package/dist/cjs/theme/defaults/categoryFonts.native.js.map +1 -0
- package/dist/cjs/theme/defaults/fonts.cjs +288 -0
- package/dist/cjs/theme/defaults/fonts.native.js +380 -0
- package/dist/cjs/theme/defaults/fonts.native.js.map +1 -0
- package/dist/cjs/theme/defaults/house.cjs +39 -0
- package/dist/cjs/theme/defaults/house.native.js +46 -0
- package/dist/cjs/theme/defaults/house.native.js.map +1 -0
- package/dist/cjs/theme/defaults/index.cjs +25 -0
- package/dist/cjs/theme/defaults/index.native.js +28 -0
- package/dist/cjs/theme/defaults/index.native.js.map +1 -0
- package/dist/cjs/theme/devtools/ColorLineVisualizer.cjs +243 -0
- package/dist/cjs/theme/devtools/ColorLineVisualizer.native.js +269 -0
- package/dist/cjs/theme/devtools/ColorLineVisualizer.native.js.map +1 -0
- package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.cjs +1350 -0
- package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.native.js +1814 -0
- package/dist/cjs/theme/devtools/ThemeDevtoolsPanel.native.js.map +1 -0
- package/dist/cjs/theme/devtools/animationOptions.cjs +36 -0
- package/dist/cjs/theme/devtools/animationOptions.native.js +46 -0
- package/dist/cjs/theme/devtools/animationOptions.native.js.map +1 -0
- package/dist/cjs/theme/devtools/buildSnapshot.cjs +92 -0
- package/dist/cjs/theme/devtools/buildSnapshot.native.js +174 -0
- package/dist/cjs/theme/devtools/buildSnapshot.native.js.map +1 -0
- package/dist/cjs/theme/devtools/knobIcons.cjs +498 -0
- package/dist/cjs/theme/devtools/knobIcons.native.js +520 -0
- package/dist/cjs/theme/devtools/knobIcons.native.js.map +1 -0
- package/dist/cjs/theme/devtools/vizConstants.cjs +54 -0
- package/dist/cjs/theme/devtools/vizConstants.native.js +57 -0
- package/dist/cjs/theme/devtools/vizConstants.native.js.map +1 -0
- package/dist/cjs/theme/dynamicType.cjs +52 -0
- package/dist/cjs/theme/dynamicType.native.js +55 -0
- package/dist/cjs/theme/dynamicType.native.js.map +1 -0
- package/dist/cjs/theme/fieldFocus.cjs +56 -0
- package/dist/cjs/theme/fieldFocus.native.js +62 -0
- package/dist/cjs/theme/fieldFocus.native.js.map +1 -0
- package/dist/cjs/theme/fillContrast.cjs +130 -0
- package/dist/cjs/theme/fillContrast.native.js +163 -0
- package/dist/cjs/theme/fillContrast.native.js.map +1 -0
- package/dist/cjs/theme/focusState.cjs +120 -0
- package/dist/cjs/theme/focusState.native.js +123 -0
- package/dist/cjs/theme/focusState.native.js.map +1 -0
- package/dist/cjs/theme/fontCategoryMetrics.cjs +91 -0
- package/dist/cjs/theme/fontCategoryMetrics.native.js +94 -0
- package/dist/cjs/theme/fontCategoryMetrics.native.js.map +1 -0
- package/dist/cjs/theme/fontCategoryStacks.cjs +40 -0
- package/dist/cjs/theme/fontCategoryStacks.native.js +43 -0
- package/dist/cjs/theme/fontCategoryStacks.native.js.map +1 -0
- package/dist/cjs/theme/glyphPaint.cjs +55 -0
- package/dist/cjs/theme/glyphPaint.native.js +81 -0
- package/dist/cjs/theme/glyphPaint.native.js.map +1 -0
- package/dist/cjs/theme/glyphTint.cjs +90 -0
- package/dist/cjs/theme/glyphTint.native.js +96 -0
- package/dist/cjs/theme/glyphTint.native.js.map +1 -0
- package/dist/cjs/theme/groupGeometry.cjs +67 -0
- package/dist/cjs/theme/groupGeometry.native.js +72 -0
- package/dist/cjs/theme/groupGeometry.native.js.map +1 -0
- package/dist/cjs/theme/hairline.cjs +119 -0
- package/dist/cjs/theme/hairline.native.js +73 -0
- package/dist/cjs/theme/hairline.native.js.map +1 -0
- package/dist/cjs/theme/index.cjs +95 -0
- package/dist/cjs/theme/index.native.js +98 -0
- package/dist/cjs/theme/index.native.js.map +1 -0
- package/dist/cjs/theme/intents.cjs +62 -0
- package/dist/cjs/theme/intents.native.js +65 -0
- package/dist/cjs/theme/intents.native.js.map +1 -0
- package/dist/cjs/theme/knobs.cjs +172 -0
- package/dist/cjs/theme/knobs.native.js +175 -0
- package/dist/cjs/theme/knobs.native.js.map +1 -0
- package/dist/cjs/theme/layoutTokens.cjs +172 -0
- package/dist/cjs/theme/layoutTokens.native.js +222 -0
- package/dist/cjs/theme/layoutTokens.native.js.map +1 -0
- package/dist/cjs/theme/listRows.cjs +44 -0
- package/dist/cjs/theme/listRows.native.js +49 -0
- package/dist/cjs/theme/listRows.native.js.map +1 -0
- package/dist/cjs/theme/mergedTokens.cjs +39 -0
- package/dist/cjs/theme/mergedTokens.native.js +61 -0
- package/dist/cjs/theme/mergedTokens.native.js.map +1 -0
- package/dist/cjs/theme/motion.cjs +72 -0
- package/dist/cjs/theme/motion.native.js +82 -0
- package/dist/cjs/theme/motion.native.js.map +1 -0
- package/dist/cjs/theme/motionStops.cjs +28 -0
- package/dist/cjs/theme/motionStops.native.js +31 -0
- package/dist/cjs/theme/motionStops.native.js.map +1 -0
- package/dist/cjs/theme/motionTiming.cjs +79 -0
- package/dist/cjs/theme/motionTiming.native.js +85 -0
- package/dist/cjs/theme/motionTiming.native.js.map +1 -0
- package/dist/cjs/theme/nativeFontFamily.cjs +30 -0
- package/dist/cjs/theme/nativeFontFamily.native.js +37 -0
- package/dist/cjs/theme/nativeFontFamily.native.js.map +1 -0
- package/dist/cjs/theme/nativeMonoFamily.cjs +44 -0
- package/dist/cjs/theme/nativeMonoFamily.native.js +47 -0
- package/dist/cjs/theme/nativeMonoFamily.native.js.map +1 -0
- package/dist/cjs/theme/overlaySurfaces.cjs +327 -0
- package/dist/cjs/theme/overlaySurfaces.native.js +351 -0
- package/dist/cjs/theme/overlaySurfaces.native.js.map +1 -0
- package/dist/cjs/theme/pageGutter.cjs +85 -0
- package/dist/cjs/theme/pageGutter.native.js +92 -0
- package/dist/cjs/theme/pageGutter.native.js.map +1 -0
- package/dist/cjs/theme/preset.types.cjs +18 -0
- package/dist/cjs/theme/preset.types.native.js +21 -0
- package/dist/cjs/theme/preset.types.native.js.map +1 -0
- package/dist/cjs/theme/presetPreview.cjs +42 -0
- package/dist/cjs/theme/presetPreview.native.js +46 -0
- package/dist/cjs/theme/presetPreview.native.js.map +1 -0
- package/dist/cjs/theme/presetStore.cjs +288 -0
- package/dist/cjs/theme/presetStore.native.js +344 -0
- package/dist/cjs/theme/presetStore.native.js.map +1 -0
- package/dist/cjs/theme/presetUserSync.cjs +70 -0
- package/dist/cjs/theme/presetUserSync.native.js +75 -0
- package/dist/cjs/theme/presetUserSync.native.js.map +1 -0
- package/dist/cjs/theme/presets.cjs +128 -0
- package/dist/cjs/theme/presets.native.js +131 -0
- package/dist/cjs/theme/presets.native.js.map +1 -0
- package/dist/cjs/theme/radiusClass.cjs +128 -0
- package/dist/cjs/theme/radiusClass.native.js +137 -0
- package/dist/cjs/theme/radiusClass.native.js.map +1 -0
- package/dist/cjs/theme/radiusClassTable.generated.cjs +164 -0
- package/dist/cjs/theme/radiusClassTable.generated.native.js +167 -0
- package/dist/cjs/theme/radiusClassTable.generated.native.js.map +1 -0
- package/dist/cjs/theme/ramps.cjs +75 -0
- package/dist/cjs/theme/ramps.native.js +79 -0
- package/dist/cjs/theme/ramps.native.js.map +1 -0
- package/dist/cjs/theme/readableColor.cjs +284 -0
- package/dist/cjs/theme/readableColor.native.js +393 -0
- package/dist/cjs/theme/readableColor.native.js.map +1 -0
- package/dist/cjs/theme/recipeInputs.cjs +352 -0
- package/dist/cjs/theme/recipeInputs.native.js +470 -0
- package/dist/cjs/theme/recipeInputs.native.js.map +1 -0
- package/dist/cjs/theme/recipes.cjs +18 -0
- package/dist/cjs/theme/recipes.native.js +21 -0
- package/dist/cjs/theme/recipes.native.js.map +1 -0
- package/dist/cjs/theme/resolveKnobs.cjs +866 -0
- package/dist/cjs/theme/resolveKnobs.native.js +884 -0
- package/dist/cjs/theme/resolveKnobs.native.js.map +1 -0
- package/dist/cjs/theme/scale/ScaleStyles.cjs +57 -0
- package/dist/cjs/theme/scale/ScaleStyles.native.js +41 -0
- package/dist/cjs/theme/scale/ScaleStyles.native.js.map +1 -0
- package/dist/cjs/theme/scale/activeScale.cjs +56 -0
- package/dist/cjs/theme/scale/activeScale.native.js +84 -0
- package/dist/cjs/theme/scale/activeScale.native.js.map +1 -0
- package/dist/cjs/theme/scale/deriveRecipeInputs.cjs +111 -0
- package/dist/cjs/theme/scale/deriveRecipeInputs.native.js +154 -0
- package/dist/cjs/theme/scale/deriveRecipeInputs.native.js.map +1 -0
- package/dist/cjs/theme/scale/generateScale.cjs +114 -0
- package/dist/cjs/theme/scale/generateScale.native.js +200 -0
- package/dist/cjs/theme/scale/generateScale.native.js.map +1 -0
- package/dist/cjs/theme/scale/index.cjs +78 -0
- package/dist/cjs/theme/scale/index.native.js +81 -0
- package/dist/cjs/theme/scale/index.native.js.map +1 -0
- package/dist/cjs/theme/scale/installScaleConfig.cjs +31 -0
- package/dist/cjs/theme/scale/installScaleConfig.native.js +65 -0
- package/dist/cjs/theme/scale/installScaleConfig.native.js.map +1 -0
- package/dist/cjs/theme/scale/scaleAttribute.cjs +39 -0
- package/dist/cjs/theme/scale/scaleAttribute.native.js +42 -0
- package/dist/cjs/theme/scale/scaleAttribute.native.js.map +1 -0
- package/dist/cjs/theme/scale/scaleCss.cjs +89 -0
- package/dist/cjs/theme/scale/scaleCss.native.js +201 -0
- package/dist/cjs/theme/scale/scaleCss.native.js.map +1 -0
- package/dist/cjs/theme/scale/scaleFonts.cjs +86 -0
- package/dist/cjs/theme/scale/scaleFonts.native.js +155 -0
- package/dist/cjs/theme/scale/scaleFonts.native.js.map +1 -0
- package/dist/cjs/theme/scale/scaleInputs.cjs +232 -0
- package/dist/cjs/theme/scale/scaleInputs.native.js +237 -0
- package/dist/cjs/theme/scale/scaleInputs.native.js.map +1 -0
- package/dist/cjs/theme/scale/themeScales.cjs +136 -0
- package/dist/cjs/theme/scale/themeScales.native.js +185 -0
- package/dist/cjs/theme/scale/themeScales.native.js.map +1 -0
- package/dist/cjs/theme/scale/useActiveScale.cjs +78 -0
- package/dist/cjs/theme/scale/useActiveScale.native.js +87 -0
- package/dist/cjs/theme/scale/useActiveScale.native.js.map +1 -0
- package/dist/cjs/theme/schemeStore.cjs +87 -0
- package/dist/cjs/theme/schemeStore.native.js +104 -0
- package/dist/cjs/theme/schemeStore.native.js.map +1 -0
- package/dist/cjs/theme/shared.cjs +125 -0
- package/dist/cjs/theme/shared.native.js +168 -0
- package/dist/cjs/theme/shared.native.js.map +1 -0
- package/dist/cjs/theme/sizeRecipes.cjs +176 -0
- package/dist/cjs/theme/sizeRecipes.native.js +251 -0
- package/dist/cjs/theme/sizeRecipes.native.js.map +1 -0
- package/dist/cjs/theme/subsetThemes.cjs +46 -0
- package/dist/cjs/theme/subsetThemes.native.js +76 -0
- package/dist/cjs/theme/subsetThemes.native.js.map +1 -0
- package/dist/cjs/theme/theme.cjs +189 -0
- package/dist/cjs/theme/theme.native.js +115 -0
- package/dist/cjs/theme/theme.native.js.map +1 -0
- package/dist/cjs/theme/themeValue.cjs +51 -0
- package/dist/cjs/theme/themeValue.native.js +73 -0
- package/dist/cjs/theme/themeValue.native.js.map +1 -0
- package/dist/cjs/theme/tileSizes.cjs +202 -0
- package/dist/cjs/theme/tileSizes.native.js +230 -0
- package/dist/cjs/theme/tileSizes.native.js.map +1 -0
- package/dist/cjs/theme/touchManipulation.cjs +33 -0
- package/dist/cjs/theme/touchManipulation.native.js +36 -0
- package/dist/cjs/theme/touchManipulation.native.js.map +1 -0
- package/dist/cjs/theme/transitionProps.cjs +50 -0
- package/dist/cjs/theme/transitionProps.native.js +81 -0
- package/dist/cjs/theme/transitionProps.native.js.map +1 -0
- package/dist/cjs/theme/useColorScale.cjs +47 -0
- package/dist/cjs/theme/useColorScale.native.js +33 -0
- package/dist/cjs/theme/useColorScale.native.js.map +1 -0
- package/dist/cjs/theme/usePresetSwitch.cjs +70 -0
- package/dist/cjs/theme/usePresetSwitch.native.js +50 -0
- package/dist/cjs/theme/usePresetSwitch.native.js.map +1 -0
- package/dist/cjs/theme/useResolvedKnobs.cjs +140 -0
- package/dist/cjs/theme/useResolvedKnobs.native.js +177 -0
- package/dist/cjs/theme/useResolvedKnobs.native.js.map +1 -0
- package/dist/cjs/theme/useSchemePreference.cjs +49 -0
- package/dist/cjs/theme/useSchemePreference.native.js +80 -0
- package/dist/cjs/theme/useSchemePreference.native.js.map +1 -0
- package/dist/cjs/theme/useTheme.cjs +152 -0
- package/dist/cjs/theme/useTheme.native.js +94 -0
- package/dist/cjs/theme/useTheme.native.js.map +1 -0
- package/dist/cjs/theme/useTouchSurface.cjs +33 -0
- package/dist/cjs/theme/useTouchSurface.native.js +36 -0
- package/dist/cjs/theme/useTouchSurface.native.js.map +1 -0
- package/dist/cjs/theme/v3TokenRoles.cjs +64 -0
- package/dist/cjs/theme/v3TokenRoles.native.js +67 -0
- package/dist/cjs/theme/v3TokenRoles.native.js.map +1 -0
- package/dist/esm/audit/constraintAudit.mjs +540 -0
- package/dist/esm/audit/constraintAudit.mjs.map +1 -0
- package/dist/esm/audit/constraintAudit.native.js +918 -0
- package/dist/esm/audit/constraintAudit.native.js.map +1 -0
- package/dist/esm/audit/designTokens.mjs +28 -0
- package/dist/esm/audit/designTokens.mjs.map +1 -0
- package/dist/esm/audit/designTokens.native.js +52 -0
- package/dist/esm/audit/designTokens.native.js.map +1 -0
- package/dist/esm/audit/diffReport.mjs +229 -0
- package/dist/esm/audit/diffReport.mjs.map +1 -0
- package/dist/esm/audit/diffReport.native.js +490 -0
- package/dist/esm/audit/diffReport.native.js.map +1 -0
- package/dist/esm/audit/index.mjs +5 -0
- package/dist/esm/audit/index.mjs.map +1 -0
- package/dist/esm/audit/index.native.js +5 -0
- package/dist/esm/audit/index.native.js.map +1 -0
- package/dist/esm/audit/themeMatrix.mjs +890 -0
- package/dist/esm/audit/themeMatrix.mjs.map +1 -0
- package/dist/esm/audit/themeMatrix.native.js +1515 -0
- package/dist/esm/audit/themeMatrix.native.js.map +1 -0
- package/dist/esm/dates.mjs +224 -0
- package/dist/esm/dates.mjs.map +1 -0
- package/dist/esm/dates.native.js +249 -0
- package/dist/esm/dates.native.js.map +1 -0
- package/dist/esm/devWarn.mjs +123 -0
- package/dist/esm/devWarn.mjs.map +1 -0
- package/dist/esm/devWarn.native.js +148 -0
- package/dist/esm/devWarn.native.js.map +1 -0
- package/dist/esm/expo.mjs +59 -0
- package/dist/esm/expo.mjs.map +1 -0
- package/dist/esm/expo.native.js +64 -0
- package/dist/esm/expo.native.js.map +1 -0
- package/dist/esm/figma/figmaTokens.mjs +322 -0
- package/dist/esm/figma/figmaTokens.mjs.map +1 -0
- package/dist/esm/figma/figmaTokens.native.js +606 -0
- package/dist/esm/figma/figmaTokens.native.js.map +1 -0
- package/dist/esm/font.mjs +40 -0
- package/dist/esm/font.mjs.map +1 -0
- package/dist/esm/font.native.js +46 -0
- package/dist/esm/font.native.js.map +1 -0
- package/dist/esm/fonts/createFontLoader.mjs +7 -0
- package/dist/esm/fonts/createFontLoader.mjs.map +1 -0
- package/dist/esm/fonts/createFontLoader.native.js +42 -0
- package/dist/esm/fonts/createFontLoader.native.js.map +1 -0
- package/dist/esm/fonts/index.mjs +4 -0
- package/dist/esm/fonts/index.mjs.map +1 -0
- package/dist/esm/fonts/index.native.js +4 -0
- package/dist/esm/fonts/index.native.js.map +1 -0
- package/dist/esm/fonts/interFaces.mjs +12 -0
- package/dist/esm/fonts/interFaces.mjs.map +1 -0
- package/dist/esm/fonts/interFaces.native.js +12 -0
- package/dist/esm/fonts/interFaces.native.js.map +1 -0
- package/dist/esm/fonts/types.mjs +2 -0
- package/dist/esm/fonts/types.mjs.map +1 -0
- package/dist/esm/fonts/types.native.js +2 -0
- package/dist/esm/fonts/types.native.js.map +1 -0
- package/dist/esm/index.mjs +11 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +11 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/keyboardFocusRing.mjs +81 -0
- package/dist/esm/keyboardFocusRing.mjs.map +1 -0
- package/dist/esm/keyboardFocusRing.native.js +83 -0
- package/dist/esm/keyboardFocusRing.native.js.map +1 -0
- package/dist/esm/menuRow.mjs +49 -0
- package/dist/esm/menuRow.mjs.map +1 -0
- package/dist/esm/menuRow.native.js +52 -0
- package/dist/esm/menuRow.native.js.map +1 -0
- package/dist/esm/numbers.mjs +132 -0
- package/dist/esm/numbers.mjs.map +1 -0
- package/dist/esm/numbers.native.js +141 -0
- package/dist/esm/numbers.native.js.map +1 -0
- package/dist/esm/theme/FontKnobStyles.mjs +131 -0
- package/dist/esm/theme/FontKnobStyles.mjs.map +1 -0
- package/dist/esm/theme/FontKnobStyles.native.js +11 -0
- package/dist/esm/theme/FontKnobStyles.native.js.map +1 -0
- package/dist/esm/theme/Heading.mjs +143 -0
- package/dist/esm/theme/Heading.mjs.map +1 -0
- package/dist/esm/theme/Heading.native.js +152 -0
- package/dist/esm/theme/Heading.native.js.map +1 -0
- package/dist/esm/theme/IconSlot.mjs +42 -0
- package/dist/esm/theme/IconSlot.mjs.map +1 -0
- package/dist/esm/theme/IconSlot.native.js +50 -0
- package/dist/esm/theme/IconSlot.native.js.map +1 -0
- package/dist/esm/theme/Intent.mjs +19 -0
- package/dist/esm/theme/Intent.mjs.map +1 -0
- package/dist/esm/theme/Intent.native.js +20 -0
- package/dist/esm/theme/Intent.native.js.map +1 -0
- package/dist/esm/theme/Preset.mjs +124 -0
- package/dist/esm/theme/Preset.mjs.map +1 -0
- package/dist/esm/theme/Preset.native.js +127 -0
- package/dist/esm/theme/Preset.native.js.map +1 -0
- package/dist/esm/theme/PresetContext.mjs +11 -0
- package/dist/esm/theme/PresetContext.mjs.map +1 -0
- package/dist/esm/theme/PresetContext.native.js +12 -0
- package/dist/esm/theme/PresetContext.native.js.map +1 -0
- package/dist/esm/theme/Surface.mjs +80 -0
- package/dist/esm/theme/Surface.mjs.map +1 -0
- package/dist/esm/theme/Surface.native.js +88 -0
- package/dist/esm/theme/Surface.native.js.map +1 -0
- package/dist/esm/theme/Text.mjs +119 -0
- package/dist/esm/theme/Text.mjs.map +1 -0
- package/dist/esm/theme/Text.native.js +124 -0
- package/dist/esm/theme/Text.native.js.map +1 -0
- package/dist/esm/theme/Tint.mjs +29 -0
- package/dist/esm/theme/Tint.mjs.map +1 -0
- package/dist/esm/theme/Tint.native.js +30 -0
- package/dist/esm/theme/Tint.native.js.map +1 -0
- package/dist/esm/theme/activateThemeConfig.mjs +17 -0
- package/dist/esm/theme/activateThemeConfig.mjs.map +1 -0
- package/dist/esm/theme/activateThemeConfig.native.js +17 -0
- package/dist/esm/theme/activateThemeConfig.native.js.map +1 -0
- package/dist/esm/theme/animations/css.mjs +7 -0
- package/dist/esm/theme/animations/css.mjs.map +1 -0
- package/dist/esm/theme/animations/css.native.js +7 -0
- package/dist/esm/theme/animations/css.native.js.map +1 -0
- package/dist/esm/theme/animations/index.mjs +2 -0
- package/dist/esm/theme/animations/index.mjs.map +1 -0
- package/dist/esm/theme/animations/index.native.js +2 -0
- package/dist/esm/theme/animations/index.native.js.map +1 -0
- package/dist/esm/theme/animations/reactNative.mjs +131 -0
- package/dist/esm/theme/animations/reactNative.mjs.map +1 -0
- package/dist/esm/theme/animations/reactNative.native.js +131 -0
- package/dist/esm/theme/animations/reactNative.native.js.map +1 -0
- package/dist/esm/theme/chartPalette.mjs +191 -0
- package/dist/esm/theme/chartPalette.mjs.map +1 -0
- package/dist/esm/theme/chartPalette.native.js +256 -0
- package/dist/esm/theme/chartPalette.native.js.map +1 -0
- package/dist/esm/theme/colorRules.mjs +273 -0
- package/dist/esm/theme/colorRules.mjs.map +1 -0
- package/dist/esm/theme/colorRules.native.js +306 -0
- package/dist/esm/theme/colorRules.native.js.map +1 -0
- package/dist/esm/theme/controlTiers.mjs +39 -0
- package/dist/esm/theme/controlTiers.mjs.map +1 -0
- package/dist/esm/theme/controlTiers.native.js +41 -0
- package/dist/esm/theme/controlTiers.native.js.map +1 -0
- package/dist/esm/theme/cookies.mjs +145 -0
- package/dist/esm/theme/cookies.mjs.map +1 -0
- package/dist/esm/theme/cookies.native.js +268 -0
- package/dist/esm/theme/cookies.native.js.map +1 -0
- package/dist/esm/theme/cornerSmoothing.mjs +71 -0
- package/dist/esm/theme/cornerSmoothing.mjs.map +1 -0
- package/dist/esm/theme/cornerSmoothing.native.js +28 -0
- package/dist/esm/theme/cornerSmoothing.native.js.map +1 -0
- package/dist/esm/theme/createDefaultThemeConfig.mjs +102 -0
- package/dist/esm/theme/createDefaultThemeConfig.mjs.map +1 -0
- package/dist/esm/theme/createDefaultThemeConfig.native.js +145 -0
- package/dist/esm/theme/createDefaultThemeConfig.native.js.map +1 -0
- package/dist/esm/theme/createThemes.mjs +697 -0
- package/dist/esm/theme/createThemes.mjs.map +1 -0
- package/dist/esm/theme/createThemes.native.js +1140 -0
- package/dist/esm/theme/createThemes.native.js.map +1 -0
- package/dist/esm/theme/dedupeInherited.mjs +55 -0
- package/dist/esm/theme/dedupeInherited.mjs.map +1 -0
- package/dist/esm/theme/dedupeInherited.native.js +163 -0
- package/dist/esm/theme/dedupeInherited.native.js.map +1 -0
- package/dist/esm/theme/defaults/accent.mjs +7 -0
- package/dist/esm/theme/defaults/accent.mjs.map +1 -0
- package/dist/esm/theme/defaults/accent.native.js +7 -0
- package/dist/esm/theme/defaults/accent.native.js.map +1 -0
- package/dist/esm/theme/defaults/base.mjs +23 -0
- package/dist/esm/theme/defaults/base.mjs.map +1 -0
- package/dist/esm/theme/defaults/base.native.js +23 -0
- package/dist/esm/theme/defaults/base.native.js.map +1 -0
- package/dist/esm/theme/defaults/builderOptions.mjs +165 -0
- package/dist/esm/theme/defaults/builderOptions.mjs.map +1 -0
- package/dist/esm/theme/defaults/builderOptions.native.js +233 -0
- package/dist/esm/theme/defaults/builderOptions.native.js.map +1 -0
- package/dist/esm/theme/defaults/categoryFonts.mjs +25 -0
- package/dist/esm/theme/defaults/categoryFonts.mjs.map +1 -0
- package/dist/esm/theme/defaults/categoryFonts.native.js +25 -0
- package/dist/esm/theme/defaults/categoryFonts.native.js.map +1 -0
- package/dist/esm/theme/defaults/fonts.mjs +227 -0
- package/dist/esm/theme/defaults/fonts.mjs.map +1 -0
- package/dist/esm/theme/defaults/fonts.native.js +316 -0
- package/dist/esm/theme/defaults/fonts.native.js.map +1 -0
- package/dist/esm/theme/defaults/house.mjs +13 -0
- package/dist/esm/theme/defaults/house.mjs.map +1 -0
- package/dist/esm/theme/defaults/house.native.js +17 -0
- package/dist/esm/theme/defaults/house.native.js.map +1 -0
- package/dist/esm/theme/defaults/index.mjs +7 -0
- package/dist/esm/theme/defaults/index.mjs.map +1 -0
- package/dist/esm/theme/defaults/index.native.js +7 -0
- package/dist/esm/theme/defaults/index.native.js.map +1 -0
- package/dist/esm/theme/devtools/ColorLineVisualizer.mjs +218 -0
- package/dist/esm/theme/devtools/ColorLineVisualizer.mjs.map +1 -0
- package/dist/esm/theme/devtools/ColorLineVisualizer.native.js +230 -0
- package/dist/esm/theme/devtools/ColorLineVisualizer.native.js.map +1 -0
- package/dist/esm/theme/devtools/ThemeDevtoolsPanel.mjs +1325 -0
- package/dist/esm/theme/devtools/ThemeDevtoolsPanel.mjs.map +1 -0
- package/dist/esm/theme/devtools/ThemeDevtoolsPanel.native.js +1786 -0
- package/dist/esm/theme/devtools/ThemeDevtoolsPanel.native.js.map +1 -0
- package/dist/esm/theme/devtools/animationOptions.mjs +11 -0
- package/dist/esm/theme/devtools/animationOptions.mjs.map +1 -0
- package/dist/esm/theme/devtools/animationOptions.native.js +18 -0
- package/dist/esm/theme/devtools/animationOptions.native.js.map +1 -0
- package/dist/esm/theme/devtools/buildSnapshot.mjs +67 -0
- package/dist/esm/theme/devtools/buildSnapshot.mjs.map +1 -0
- package/dist/esm/theme/devtools/buildSnapshot.native.js +146 -0
- package/dist/esm/theme/devtools/buildSnapshot.native.js.map +1 -0
- package/dist/esm/theme/devtools/knobIcons.mjs +456 -0
- package/dist/esm/theme/devtools/knobIcons.mjs.map +1 -0
- package/dist/esm/theme/devtools/knobIcons.native.js +464 -0
- package/dist/esm/theme/devtools/knobIcons.native.js.map +1 -0
- package/dist/esm/theme/devtools/vizConstants.mjs +26 -0
- package/dist/esm/theme/devtools/vizConstants.mjs.map +1 -0
- package/dist/esm/theme/devtools/vizConstants.native.js +26 -0
- package/dist/esm/theme/devtools/vizConstants.native.js.map +1 -0
- package/dist/esm/theme/dynamicType.mjs +24 -0
- package/dist/esm/theme/dynamicType.mjs.map +1 -0
- package/dist/esm/theme/dynamicType.native.js +24 -0
- package/dist/esm/theme/dynamicType.native.js.map +1 -0
- package/dist/esm/theme/fieldFocus.mjs +27 -0
- package/dist/esm/theme/fieldFocus.mjs.map +1 -0
- package/dist/esm/theme/fieldFocus.native.js +30 -0
- package/dist/esm/theme/fieldFocus.native.js.map +1 -0
- package/dist/esm/theme/fillContrast.mjs +98 -0
- package/dist/esm/theme/fillContrast.mjs.map +1 -0
- package/dist/esm/theme/fillContrast.native.js +128 -0
- package/dist/esm/theme/fillContrast.native.js.map +1 -0
- package/dist/esm/theme/focusState.mjs +81 -0
- package/dist/esm/theme/focusState.mjs.map +1 -0
- package/dist/esm/theme/focusState.native.js +81 -0
- package/dist/esm/theme/focusState.native.js.map +1 -0
- package/dist/esm/theme/fontCategoryMetrics.mjs +65 -0
- package/dist/esm/theme/fontCategoryMetrics.mjs.map +1 -0
- package/dist/esm/theme/fontCategoryMetrics.native.js +65 -0
- package/dist/esm/theme/fontCategoryMetrics.native.js.map +1 -0
- package/dist/esm/theme/fontCategoryStacks.mjs +15 -0
- package/dist/esm/theme/fontCategoryStacks.mjs.map +1 -0
- package/dist/esm/theme/fontCategoryStacks.native.js +15 -0
- package/dist/esm/theme/fontCategoryStacks.native.js.map +1 -0
- package/dist/esm/theme/glyphPaint.mjs +29 -0
- package/dist/esm/theme/glyphPaint.mjs.map +1 -0
- package/dist/esm/theme/glyphPaint.native.js +52 -0
- package/dist/esm/theme/glyphPaint.native.js.map +1 -0
- package/dist/esm/theme/glyphTint.mjs +60 -0
- package/dist/esm/theme/glyphTint.mjs.map +1 -0
- package/dist/esm/theme/glyphTint.native.js +63 -0
- package/dist/esm/theme/glyphTint.native.js.map +1 -0
- package/dist/esm/theme/groupGeometry.mjs +38 -0
- package/dist/esm/theme/groupGeometry.mjs.map +1 -0
- package/dist/esm/theme/groupGeometry.native.js +40 -0
- package/dist/esm/theme/groupGeometry.native.js.map +1 -0
- package/dist/esm/theme/hairline.mjs +89 -0
- package/dist/esm/theme/hairline.mjs.map +1 -0
- package/dist/esm/theme/hairline.native.js +41 -0
- package/dist/esm/theme/hairline.native.js.map +1 -0
- package/dist/esm/theme/index.mjs +66 -0
- package/dist/esm/theme/index.mjs.map +1 -0
- package/dist/esm/theme/index.native.js +66 -0
- package/dist/esm/theme/index.native.js.map +1 -0
- package/dist/esm/theme/intents.mjs +37 -0
- package/dist/esm/theme/intents.mjs.map +1 -0
- package/dist/esm/theme/intents.native.js +37 -0
- package/dist/esm/theme/intents.native.js.map +1 -0
- package/dist/esm/theme/knobs.mjs +125 -0
- package/dist/esm/theme/knobs.mjs.map +1 -0
- package/dist/esm/theme/knobs.native.js +125 -0
- package/dist/esm/theme/knobs.native.js.map +1 -0
- package/dist/esm/theme/layoutTokens.mjs +124 -0
- package/dist/esm/theme/layoutTokens.mjs.map +1 -0
- package/dist/esm/theme/layoutTokens.native.js +171 -0
- package/dist/esm/theme/layoutTokens.native.js.map +1 -0
- package/dist/esm/theme/listRows.mjs +17 -0
- package/dist/esm/theme/listRows.mjs.map +1 -0
- package/dist/esm/theme/listRows.native.js +19 -0
- package/dist/esm/theme/listRows.native.js.map +1 -0
- package/dist/esm/theme/mergedTokens.mjs +14 -0
- package/dist/esm/theme/mergedTokens.mjs.map +1 -0
- package/dist/esm/theme/mergedTokens.native.js +33 -0
- package/dist/esm/theme/mergedTokens.native.js.map +1 -0
- package/dist/esm/theme/motion.mjs +41 -0
- package/dist/esm/theme/motion.mjs.map +1 -0
- package/dist/esm/theme/motion.native.js +48 -0
- package/dist/esm/theme/motion.native.js.map +1 -0
- package/dist/esm/theme/motionStops.mjs +3 -0
- package/dist/esm/theme/motionStops.mjs.map +1 -0
- package/dist/esm/theme/motionStops.native.js +3 -0
- package/dist/esm/theme/motionStops.native.js.map +1 -0
- package/dist/esm/theme/motionTiming.mjs +48 -0
- package/dist/esm/theme/motionTiming.mjs.map +1 -0
- package/dist/esm/theme/motionTiming.native.js +51 -0
- package/dist/esm/theme/motionTiming.native.js.map +1 -0
- package/dist/esm/theme/nativeFontFamily.mjs +5 -0
- package/dist/esm/theme/nativeFontFamily.mjs.map +1 -0
- package/dist/esm/theme/nativeFontFamily.native.js +9 -0
- package/dist/esm/theme/nativeFontFamily.native.js.map +1 -0
- package/dist/esm/theme/nativeMonoFamily.mjs +18 -0
- package/dist/esm/theme/nativeMonoFamily.mjs.map +1 -0
- package/dist/esm/theme/nativeMonoFamily.native.js +18 -0
- package/dist/esm/theme/nativeMonoFamily.native.js.map +1 -0
- package/dist/esm/theme/overlaySurfaces.mjs +290 -0
- package/dist/esm/theme/overlaySurfaces.mjs.map +1 -0
- package/dist/esm/theme/overlaySurfaces.native.js +311 -0
- package/dist/esm/theme/overlaySurfaces.native.js.map +1 -0
- package/dist/esm/theme/pageGutter.mjs +55 -0
- package/dist/esm/theme/pageGutter.mjs.map +1 -0
- package/dist/esm/theme/pageGutter.native.js +59 -0
- package/dist/esm/theme/pageGutter.native.js.map +1 -0
- package/dist/esm/theme/preset.types.mjs +2 -0
- package/dist/esm/theme/preset.types.mjs.map +1 -0
- package/dist/esm/theme/preset.types.native.js +2 -0
- package/dist/esm/theme/preset.types.native.js.map +1 -0
- package/dist/esm/theme/presetPreview.mjs +17 -0
- package/dist/esm/theme/presetPreview.mjs.map +1 -0
- package/dist/esm/theme/presetPreview.native.js +18 -0
- package/dist/esm/theme/presetPreview.native.js.map +1 -0
- package/dist/esm/theme/presetStore.mjs +251 -0
- package/dist/esm/theme/presetStore.mjs.map +1 -0
- package/dist/esm/theme/presetStore.native.js +304 -0
- package/dist/esm/theme/presetStore.native.js.map +1 -0
- package/dist/esm/theme/presetUserSync.mjs +44 -0
- package/dist/esm/theme/presetUserSync.mjs.map +1 -0
- package/dist/esm/theme/presetUserSync.native.js +46 -0
- package/dist/esm/theme/presetUserSync.native.js.map +1 -0
- package/dist/esm/theme/presets.mjs +97 -0
- package/dist/esm/theme/presets.mjs.map +1 -0
- package/dist/esm/theme/presets.native.js +97 -0
- package/dist/esm/theme/presets.native.js.map +1 -0
- package/dist/esm/theme/radiusClass.mjs +99 -0
- package/dist/esm/theme/radiusClass.mjs.map +1 -0
- package/dist/esm/theme/radiusClass.native.js +105 -0
- package/dist/esm/theme/radiusClass.native.js.map +1 -0
- package/dist/esm/theme/radiusClassTable.generated.mjs +135 -0
- package/dist/esm/theme/radiusClassTable.generated.mjs.map +1 -0
- package/dist/esm/theme/radiusClassTable.generated.native.js +135 -0
- package/dist/esm/theme/radiusClassTable.generated.native.js.map +1 -0
- package/dist/esm/theme/ramps.mjs +48 -0
- package/dist/esm/theme/ramps.mjs.map +1 -0
- package/dist/esm/theme/ramps.native.js +49 -0
- package/dist/esm/theme/ramps.native.js.map +1 -0
- package/dist/esm/theme/readableColor.mjs +248 -0
- package/dist/esm/theme/readableColor.mjs.map +1 -0
- package/dist/esm/theme/readableColor.native.js +354 -0
- package/dist/esm/theme/readableColor.native.js.map +1 -0
- package/dist/esm/theme/recipeInputs.mjs +309 -0
- package/dist/esm/theme/recipeInputs.mjs.map +1 -0
- package/dist/esm/theme/recipeInputs.native.js +424 -0
- package/dist/esm/theme/recipeInputs.native.js.map +1 -0
- package/dist/esm/theme/recipes.mjs +2 -0
- package/dist/esm/theme/recipes.mjs.map +1 -0
- package/dist/esm/theme/recipes.native.js +2 -0
- package/dist/esm/theme/recipes.native.js.map +1 -0
- package/dist/esm/theme/resolveKnobs.mjs +818 -0
- package/dist/esm/theme/resolveKnobs.mjs.map +1 -0
- package/dist/esm/theme/resolveKnobs.native.js +833 -0
- package/dist/esm/theme/resolveKnobs.native.js.map +1 -0
- package/dist/esm/theme/scale/ScaleStyles.mjs +30 -0
- package/dist/esm/theme/scale/ScaleStyles.mjs.map +1 -0
- package/dist/esm/theme/scale/ScaleStyles.native.js +11 -0
- package/dist/esm/theme/scale/ScaleStyles.native.js.map +1 -0
- package/dist/esm/theme/scale/activeScale.mjs +28 -0
- package/dist/esm/theme/scale/activeScale.mjs.map +1 -0
- package/dist/esm/theme/scale/activeScale.native.js +53 -0
- package/dist/esm/theme/scale/activeScale.native.js.map +1 -0
- package/dist/esm/theme/scale/deriveRecipeInputs.mjs +86 -0
- package/dist/esm/theme/scale/deriveRecipeInputs.mjs.map +1 -0
- package/dist/esm/theme/scale/deriveRecipeInputs.native.js +126 -0
- package/dist/esm/theme/scale/deriveRecipeInputs.native.js.map +1 -0
- package/dist/esm/theme/scale/generateScale.mjs +85 -0
- package/dist/esm/theme/scale/generateScale.mjs.map +1 -0
- package/dist/esm/theme/scale/generateScale.native.js +168 -0
- package/dist/esm/theme/scale/generateScale.native.js.map +1 -0
- package/dist/esm/theme/scale/index.mjs +12 -0
- package/dist/esm/theme/scale/index.mjs.map +1 -0
- package/dist/esm/theme/scale/index.native.js +12 -0
- package/dist/esm/theme/scale/index.native.js.map +1 -0
- package/dist/esm/theme/scale/installScaleConfig.mjs +6 -0
- package/dist/esm/theme/scale/installScaleConfig.mjs.map +1 -0
- package/dist/esm/theme/scale/installScaleConfig.native.js +36 -0
- package/dist/esm/theme/scale/installScaleConfig.native.js.map +1 -0
- package/dist/esm/theme/scale/scaleAttribute.mjs +11 -0
- package/dist/esm/theme/scale/scaleAttribute.mjs.map +1 -0
- package/dist/esm/theme/scale/scaleAttribute.native.js +11 -0
- package/dist/esm/theme/scale/scaleAttribute.native.js.map +1 -0
- package/dist/esm/theme/scale/scaleCss.mjs +62 -0
- package/dist/esm/theme/scale/scaleCss.mjs.map +1 -0
- package/dist/esm/theme/scale/scaleCss.native.js +171 -0
- package/dist/esm/theme/scale/scaleCss.native.js.map +1 -0
- package/dist/esm/theme/scale/scaleFonts.mjs +60 -0
- package/dist/esm/theme/scale/scaleFonts.mjs.map +1 -0
- package/dist/esm/theme/scale/scaleFonts.native.js +126 -0
- package/dist/esm/theme/scale/scaleFonts.native.js.map +1 -0
- package/dist/esm/theme/scale/scaleInputs.mjs +189 -0
- package/dist/esm/theme/scale/scaleInputs.mjs.map +1 -0
- package/dist/esm/theme/scale/scaleInputs.native.js +191 -0
- package/dist/esm/theme/scale/scaleInputs.native.js.map +1 -0
- package/dist/esm/theme/scale/themeScales.mjs +109 -0
- package/dist/esm/theme/scale/themeScales.mjs.map +1 -0
- package/dist/esm/theme/scale/themeScales.native.js +155 -0
- package/dist/esm/theme/scale/themeScales.native.js.map +1 -0
- package/dist/esm/theme/scale/useActiveScale.mjs +51 -0
- package/dist/esm/theme/scale/useActiveScale.mjs.map +1 -0
- package/dist/esm/theme/scale/useActiveScale.native.js +57 -0
- package/dist/esm/theme/scale/useActiveScale.native.js.map +1 -0
- package/dist/esm/theme/schemeStore.mjs +59 -0
- package/dist/esm/theme/schemeStore.mjs.map +1 -0
- package/dist/esm/theme/schemeStore.native.js +73 -0
- package/dist/esm/theme/schemeStore.native.js.map +1 -0
- package/dist/esm/theme/shared.mjs +95 -0
- package/dist/esm/theme/shared.mjs.map +1 -0
- package/dist/esm/theme/shared.native.js +135 -0
- package/dist/esm/theme/shared.native.js.map +1 -0
- package/dist/esm/theme/sizeRecipes.mjs +112 -0
- package/dist/esm/theme/sizeRecipes.mjs.map +1 -0
- package/dist/esm/theme/sizeRecipes.native.js +184 -0
- package/dist/esm/theme/sizeRecipes.native.js.map +1 -0
- package/dist/esm/theme/subsetThemes.mjs +21 -0
- package/dist/esm/theme/subsetThemes.mjs.map +1 -0
- package/dist/esm/theme/subsetThemes.native.js +48 -0
- package/dist/esm/theme/subsetThemes.native.js.map +1 -0
- package/dist/esm/theme/theme.mjs +163 -0
- package/dist/esm/theme/theme.mjs.map +1 -0
- package/dist/esm/theme/theme.native.js +87 -0
- package/dist/esm/theme/theme.native.js.map +1 -0
- package/dist/esm/theme/themeValue.mjs +25 -0
- package/dist/esm/theme/themeValue.mjs.map +1 -0
- package/dist/esm/theme/themeValue.native.js +44 -0
- package/dist/esm/theme/themeValue.native.js.map +1 -0
- package/dist/esm/theme/tileSizes.mjs +167 -0
- package/dist/esm/theme/tileSizes.mjs.map +1 -0
- package/dist/esm/theme/tileSizes.native.js +192 -0
- package/dist/esm/theme/tileSizes.native.js.map +1 -0
- package/dist/esm/theme/touchManipulation.mjs +7 -0
- package/dist/esm/theme/touchManipulation.mjs.map +1 -0
- package/dist/esm/theme/touchManipulation.native.js +7 -0
- package/dist/esm/theme/touchManipulation.native.js.map +1 -0
- package/dist/esm/theme/transitionProps.mjs +25 -0
- package/dist/esm/theme/transitionProps.mjs.map +1 -0
- package/dist/esm/theme/transitionProps.native.js +53 -0
- package/dist/esm/theme/transitionProps.native.js.map +1 -0
- package/dist/esm/theme/useColorScale.mjs +22 -0
- package/dist/esm/theme/useColorScale.mjs.map +1 -0
- package/dist/esm/theme/useColorScale.native.js +5 -0
- package/dist/esm/theme/useColorScale.native.js.map +1 -0
- package/dist/esm/theme/usePresetSwitch.mjs +45 -0
- package/dist/esm/theme/usePresetSwitch.mjs.map +1 -0
- package/dist/esm/theme/usePresetSwitch.native.js +22 -0
- package/dist/esm/theme/usePresetSwitch.native.js.map +1 -0
- package/dist/esm/theme/useResolvedKnobs.mjs +111 -0
- package/dist/esm/theme/useResolvedKnobs.mjs.map +1 -0
- package/dist/esm/theme/useResolvedKnobs.native.js +145 -0
- package/dist/esm/theme/useResolvedKnobs.native.js.map +1 -0
- package/dist/esm/theme/useSchemePreference.mjs +24 -0
- package/dist/esm/theme/useSchemePreference.mjs.map +1 -0
- package/dist/esm/theme/useSchemePreference.native.js +52 -0
- package/dist/esm/theme/useSchemePreference.native.js.map +1 -0
- package/dist/esm/theme/useTheme.mjs +127 -0
- package/dist/esm/theme/useTheme.mjs.map +1 -0
- package/dist/esm/theme/useTheme.native.js +66 -0
- package/dist/esm/theme/useTheme.native.js.map +1 -0
- package/dist/esm/theme/useTouchSurface.mjs +8 -0
- package/dist/esm/theme/useTouchSurface.mjs.map +1 -0
- package/dist/esm/theme/useTouchSurface.native.js +8 -0
- package/dist/esm/theme/useTouchSurface.native.js.map +1 -0
- package/dist/esm/theme/v3TokenRoles.mjs +39 -0
- package/dist/esm/theme/v3TokenRoles.mjs.map +1 -0
- package/dist/esm/theme/v3TokenRoles.native.js +39 -0
- package/dist/esm/theme/v3TokenRoles.native.js.map +1 -0
- package/package.json +56 -12
- package/src/expo.ts +20 -0
- package/src/fonts/createFontLoader.ts +8 -4
- package/src/fonts/index.ts +1 -0
- package/src/fonts/interFaces.spec.ts +87 -0
- package/src/fonts/interFaces.ts +26 -0
- package/src/theme/accentButtonLabel.spec.ts +116 -0
- package/src/theme/colorRules.ts +41 -0
- package/src/theme/controlTiers.ts +6 -4
- package/src/theme/defaults/fonts.spec.ts +9 -2
- package/src/theme/defaults/fonts.ts +5 -8
- package/src/theme/glyphTint.spec.ts +30 -2
- package/src/theme/glyphTint.ts +1 -47
- package/src/theme/hairline.spec.ts +60 -3
- package/src/theme/hairline.ts +35 -5
- package/src/theme/readableColor.ts +49 -0
- package/src/theme/resolveKnobs.ts +172 -101
- package/src/theme/scale/activeScale.spec.ts +33 -0
- package/src/theme/scale/activeScale.ts +19 -0
- package/src/theme/scale/index.ts +6 -1
- package/src/theme/subsetThemes.spec.ts +81 -0
- package/src/theme/subsetThemes.ts +13 -1
- package/types/expo.d.ts +10 -0
- package/types/expo.d.ts.map +1 -1
- package/types/fonts/createFontLoader.d.ts.map +1 -1
- package/types/fonts/index.d.ts +1 -0
- package/types/fonts/index.d.ts.map +1 -1
- package/types/fonts/interFaces.d.ts +23 -0
- package/types/fonts/interFaces.d.ts.map +1 -0
- package/types/theme/colorRules.d.ts +6 -0
- package/types/theme/colorRules.d.ts.map +1 -1
- package/types/theme/controlTiers.d.ts +5 -3
- package/types/theme/controlTiers.d.ts.map +1 -1
- package/types/theme/defaults/fonts.d.ts +30 -30
- package/types/theme/defaults/fonts.d.ts.map +1 -1
- package/types/theme/glyphTint.d.ts +0 -6
- package/types/theme/glyphTint.d.ts.map +1 -1
- package/types/theme/hairline.d.ts +14 -3
- package/types/theme/hairline.d.ts.map +1 -1
- package/types/theme/readableColor.d.ts +19 -0
- package/types/theme/readableColor.d.ts.map +1 -1
- package/types/theme/resolveKnobs.d.ts.map +1 -1
- package/types/theme/scale/activeScale.d.ts +8 -0
- package/types/theme/scale/activeScale.d.ts.map +1 -1
- package/types/theme/scale/index.d.ts +1 -1
- package/types/theme/scale/index.d.ts.map +1 -1
- package/types/theme/subsetThemes.d.ts +10 -1
- package/types/theme/subsetThemes.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/theme",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.84.0",
|
|
4
4
|
"description": "Tamagui theme system for multiplatform.one",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"multiplatform",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"source": "src/index.ts",
|
|
19
19
|
"files": [
|
|
20
|
+
"dist",
|
|
20
21
|
"src",
|
|
21
22
|
"!src/**/__snapshots__",
|
|
22
23
|
"expo.cjs",
|
|
@@ -33,32 +34,74 @@
|
|
|
33
34
|
".": {
|
|
34
35
|
"source": "./src/index.ts",
|
|
35
36
|
"types": "./types/index.d.ts",
|
|
36
|
-
"
|
|
37
|
+
"react-native": {
|
|
38
|
+
"types": "./types/index.d.ts",
|
|
39
|
+
"import": "./dist/esm/index.native.js",
|
|
40
|
+
"require": "./dist/cjs/index.native.js"
|
|
41
|
+
},
|
|
42
|
+
"import": "./dist/esm/index.mjs",
|
|
43
|
+
"require": "./dist/cjs/index.cjs",
|
|
44
|
+
"default": "./dist/esm/index.mjs"
|
|
37
45
|
},
|
|
38
46
|
"./audit": {
|
|
39
47
|
"source": "./src/audit/index.ts",
|
|
40
48
|
"types": "./types/audit/index.d.ts",
|
|
41
|
-
"
|
|
49
|
+
"react-native": {
|
|
50
|
+
"types": "./types/audit/index.d.ts",
|
|
51
|
+
"import": "./dist/esm/audit/index.native.js",
|
|
52
|
+
"require": "./dist/cjs/audit/index.native.js"
|
|
53
|
+
},
|
|
54
|
+
"import": "./dist/esm/audit/index.mjs",
|
|
55
|
+
"require": "./dist/cjs/audit/index.cjs",
|
|
56
|
+
"default": "./dist/esm/audit/index.mjs"
|
|
42
57
|
},
|
|
43
58
|
"./scale-attribute": {
|
|
44
59
|
"source": "./src/theme/scale/scaleAttribute.ts",
|
|
45
60
|
"types": "./types/theme/scale/scaleAttribute.d.ts",
|
|
46
|
-
"
|
|
61
|
+
"react-native": {
|
|
62
|
+
"types": "./types/theme/scale/scaleAttribute.d.ts",
|
|
63
|
+
"import": "./dist/esm/theme/scale/scaleAttribute.native.js",
|
|
64
|
+
"require": "./dist/cjs/theme/scale/scaleAttribute.native.js"
|
|
65
|
+
},
|
|
66
|
+
"import": "./dist/esm/theme/scale/scaleAttribute.mjs",
|
|
67
|
+
"require": "./dist/cjs/theme/scale/scaleAttribute.cjs",
|
|
68
|
+
"default": "./dist/esm/theme/scale/scaleAttribute.mjs"
|
|
47
69
|
},
|
|
48
70
|
"./design-tokens": {
|
|
49
71
|
"source": "./src/audit/designTokens.ts",
|
|
50
72
|
"types": "./types/audit/designTokens.d.ts",
|
|
51
|
-
"
|
|
73
|
+
"react-native": {
|
|
74
|
+
"types": "./types/audit/designTokens.d.ts",
|
|
75
|
+
"import": "./dist/esm/audit/designTokens.native.js",
|
|
76
|
+
"require": "./dist/cjs/audit/designTokens.native.js"
|
|
77
|
+
},
|
|
78
|
+
"import": "./dist/esm/audit/designTokens.mjs",
|
|
79
|
+
"require": "./dist/cjs/audit/designTokens.cjs",
|
|
80
|
+
"default": "./dist/esm/audit/designTokens.mjs"
|
|
52
81
|
},
|
|
53
82
|
"./ramps": {
|
|
54
83
|
"source": "./src/theme/ramps.ts",
|
|
55
84
|
"types": "./types/theme/ramps.d.ts",
|
|
56
|
-
"
|
|
85
|
+
"react-native": {
|
|
86
|
+
"types": "./types/theme/ramps.d.ts",
|
|
87
|
+
"import": "./dist/esm/theme/ramps.native.js",
|
|
88
|
+
"require": "./dist/cjs/theme/ramps.native.js"
|
|
89
|
+
},
|
|
90
|
+
"import": "./dist/esm/theme/ramps.mjs",
|
|
91
|
+
"require": "./dist/cjs/theme/ramps.cjs",
|
|
92
|
+
"default": "./dist/esm/theme/ramps.mjs"
|
|
57
93
|
},
|
|
58
94
|
"./motion": {
|
|
59
95
|
"source": "./src/theme/motionTiming.ts",
|
|
60
96
|
"types": "./types/theme/motionTiming.d.ts",
|
|
61
|
-
"
|
|
97
|
+
"react-native": {
|
|
98
|
+
"types": "./types/theme/motionTiming.d.ts",
|
|
99
|
+
"import": "./dist/esm/theme/motionTiming.native.js",
|
|
100
|
+
"require": "./dist/cjs/theme/motionTiming.native.js"
|
|
101
|
+
},
|
|
102
|
+
"import": "./dist/esm/theme/motionTiming.mjs",
|
|
103
|
+
"require": "./dist/cjs/theme/motionTiming.cjs",
|
|
104
|
+
"default": "./dist/esm/theme/motionTiming.mjs"
|
|
62
105
|
},
|
|
63
106
|
"./expo": {
|
|
64
107
|
"source": "./src/expo.ts",
|
|
@@ -72,8 +115,8 @@
|
|
|
72
115
|
"access": "public"
|
|
73
116
|
},
|
|
74
117
|
"dependencies": {
|
|
75
|
-
"@multiplatform.one/platform": "^7.
|
|
76
|
-
"@multiplatform.one/store": "^7.
|
|
118
|
+
"@multiplatform.one/platform": "^7.84.0",
|
|
119
|
+
"@multiplatform.one/store": "^7.84.0",
|
|
77
120
|
"@tamagui/animations-react-native": "2.7.6",
|
|
78
121
|
"@tamagui/colors": "2.7.6",
|
|
79
122
|
"@tamagui/config": "2.7.6",
|
|
@@ -89,10 +132,11 @@
|
|
|
89
132
|
},
|
|
90
133
|
"devDependencies": {
|
|
91
134
|
"@expo/prebuild-config": "55.0.18",
|
|
92
|
-
"@multiplatform.one/config": "7.
|
|
93
|
-
"@multiplatform.one/test-utils": "7.
|
|
135
|
+
"@multiplatform.one/config": "7.84.0",
|
|
136
|
+
"@multiplatform.one/test-utils": "7.84.0",
|
|
94
137
|
"@tamagui/animations-css": "2.7.6",
|
|
95
138
|
"@tamagui/animations-reanimated": "2.7.6",
|
|
139
|
+
"@tamagui/build": "2.7.6",
|
|
96
140
|
"@tamagui/font-inter": "2.7.6",
|
|
97
141
|
"@testing-library/react": "^16.3.3",
|
|
98
142
|
"@vitejs/plugin-react": "^6.1.2",
|
|
@@ -128,6 +172,6 @@
|
|
|
128
172
|
"scripts": {
|
|
129
173
|
"test": "vitest run --coverage --coverage.provider=v8 --coverage.reporter=text --coverage.reporter=lcov --coverage.reporter=html",
|
|
130
174
|
"typecheck": "tsgo --noEmit",
|
|
131
|
-
"build": "
|
|
175
|
+
"build": "rm -rf dist types 2>/dev/null && tamagui-build --ts-project ./tsconfig.build.json --exclude '\\.spec\\.|\\.test\\.|\\.stories\\.'"
|
|
132
176
|
}
|
|
133
177
|
}
|
package/src/expo.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { normalizeCSSColor } from "@tamagui/normalize-css-color";
|
|
2
|
+
import { interFaceFile, interFaceNames } from "./fonts/interFaces";
|
|
2
3
|
import { createThemesBuilder } from "./theme/createThemes";
|
|
3
4
|
import { defaultAccentTheme } from "./theme/defaults/accent";
|
|
4
5
|
import { defaultBaseTheme } from "./theme/defaults/base";
|
|
@@ -65,3 +66,22 @@ export function createExpoThemeColors({
|
|
|
65
66
|
adaptiveIcon: { backgroundColor: adaptiveIconScheme === "dark" ? dark : light },
|
|
66
67
|
};
|
|
67
68
|
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* The expo-font config plugin entry that embeds MPO's Inter faces in the
|
|
72
|
+
* native binary (FZ-8572), plus any extra font files an app passes. A
|
|
73
|
+
* production vxrn bundle carries no .otf assets, so a face that is only
|
|
74
|
+
* loaded at runtime falls back to the system font. Embedding needs a
|
|
75
|
+
* prebuild and a new binary; an OTA cannot add it.
|
|
76
|
+
*/
|
|
77
|
+
export function interExpoFontPlugin(extraFonts: string[] = []): ["expo-font", { fonts: string[] }] {
|
|
78
|
+
return [
|
|
79
|
+
"expo-font",
|
|
80
|
+
{
|
|
81
|
+
fonts: [
|
|
82
|
+
...Object.values(interFaceNames).map((name) => require.resolve(interFaceFile(name))),
|
|
83
|
+
...extraFonts,
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
}
|
|
@@ -3,11 +3,15 @@ import type { FontLoader, FontLoaderConfig } from "./types";
|
|
|
3
3
|
export function createFontLoader(config: FontLoaderConfig): FontLoader {
|
|
4
4
|
const fontMap: Record<string, number> = {};
|
|
5
5
|
if (config.inter) {
|
|
6
|
+
// Keys are interFaceNames (./interFaces.ts); Metro needs literal paths.
|
|
7
|
+
// An app that embeds them through interExpoFontPlugin finds them already
|
|
8
|
+
// registered, and expo-font skips the load.
|
|
6
9
|
fontMap.Inter = require("@tamagui/font-inter/otf/Inter-Regular.otf");
|
|
7
|
-
fontMap
|
|
8
|
-
fontMap
|
|
9
|
-
fontMap
|
|
10
|
-
fontMap
|
|
10
|
+
fontMap["Inter-Regular"] = require("@tamagui/font-inter/otf/Inter-Regular.otf");
|
|
11
|
+
fontMap["Inter-Medium"] = require("@tamagui/font-inter/otf/Inter-Medium.otf");
|
|
12
|
+
fontMap["Inter-SemiBold"] = require("@tamagui/font-inter/otf/Inter-SemiBold.otf");
|
|
13
|
+
fontMap["Inter-Bold"] = require("@tamagui/font-inter/otf/Inter-Bold.otf");
|
|
14
|
+
fontMap["Inter-ExtraBold"] = require("@tamagui/font-inter/otf/Inter-ExtraBold.otf");
|
|
11
15
|
}
|
|
12
16
|
for (const font of config.fonts) {
|
|
13
17
|
if (font.nativeModule) {
|
package/src/fonts/index.ts
CHANGED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FZ-8572: every Inter face the native face map asks for is a font the app
|
|
3
|
+
* embeds (interExpoFontPlugin) and loads (createFontLoader), under the
|
|
4
|
+
* PostScript name iOS registers an embedded file by. The face map used to ask
|
|
5
|
+
* for "InterMedium" and friends, aliases that exist only when expo-font loads
|
|
6
|
+
* the OTFs at runtime; a production vxrn bundle carries no .otf assets, so
|
|
7
|
+
* 500 to 800 fell back to the system font.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { readFileSync } from "node:fs";
|
|
11
|
+
import { createRequire } from "node:module";
|
|
12
|
+
import { describe, expect, it } from "vitest";
|
|
13
|
+
import { interExpoFontPlugin } from "../expo";
|
|
14
|
+
import { defaultBodyFont, defaultHeadingFont } from "../theme/defaults/fonts";
|
|
15
|
+
import { createFontLoader } from "./createFontLoader.js";
|
|
16
|
+
import { interFaceFile, interFaceNames } from "./interFaces";
|
|
17
|
+
|
|
18
|
+
const require = createRequire(import.meta.url);
|
|
19
|
+
|
|
20
|
+
/** An OpenType font's PostScript name (name ID 6) and OS/2 weight class. */
|
|
21
|
+
function readFace(path: string): { postScript: string; weight: number } {
|
|
22
|
+
const data = readFileSync(path);
|
|
23
|
+
const tables = new Map<string, number>();
|
|
24
|
+
for (let i = 0; i < data.readUInt16BE(4); i++) {
|
|
25
|
+
const record = 12 + i * 16;
|
|
26
|
+
tables.set(data.toString("latin1", record, record + 4), data.readUInt32BE(record + 8));
|
|
27
|
+
}
|
|
28
|
+
const name = tables.get("name")!;
|
|
29
|
+
const strings = name + data.readUInt16BE(name + 4);
|
|
30
|
+
let postScript = "";
|
|
31
|
+
for (let i = 0; i < data.readUInt16BE(name + 2); i++) {
|
|
32
|
+
const record = name + 6 + i * 12;
|
|
33
|
+
if (data.readUInt16BE(record + 6) !== 6) continue;
|
|
34
|
+
const length = data.readUInt16BE(record + 8);
|
|
35
|
+
const start = strings + data.readUInt16BE(record + 10);
|
|
36
|
+
const raw = data.subarray(start, start + length);
|
|
37
|
+
postScript =
|
|
38
|
+
data.readUInt16BE(record) === 1 ? raw.toString("latin1") : raw.swap16().toString("utf16le");
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
return { postScript, weight: data.readUInt16BE(tables.get("OS/2")! + 4) };
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const faces = Object.entries(interFaceNames).map(
|
|
45
|
+
([weight, name]) => [Number(weight), name] as const,
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
describe("Inter faces are embedded and loaded under the names the face map uses (FZ-8572)", () => {
|
|
49
|
+
it.each(faces)("weight %i ships an OTF whose PostScript name is %s", (weight, name) => {
|
|
50
|
+
expect(readFace(require.resolve(interFaceFile(name)))).toEqual({ postScript: name, weight });
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("the expo-font plugin embeds exactly the face-map files", () => {
|
|
54
|
+
const [plugin, { fonts }] = interExpoFontPlugin();
|
|
55
|
+
expect(plugin).toBe("expo-font");
|
|
56
|
+
expect(fonts).toEqual(faces.map(([, name]) => require.resolve(interFaceFile(name))));
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("the plugin keeps an app's extra fonts after the Inter faces", () => {
|
|
60
|
+
expect(interExpoFontPlugin(["./fonts/Extra.otf"])[1].fonts.at(-1)).toBe("./fonts/Extra.otf");
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it("the native face map names only embedded faces, at every weight", () => {
|
|
64
|
+
const embedded = new Set<string>(Object.values(interFaceNames));
|
|
65
|
+
for (const font of [defaultHeadingFont, defaultBodyFont]) {
|
|
66
|
+
const face = font.face as Record<string, { normal?: string }>;
|
|
67
|
+
for (const [weight, name] of faces) expect(face[weight]?.normal).toBe(name);
|
|
68
|
+
for (const { normal } of Object.values(face)) {
|
|
69
|
+
if (normal !== font.family) expect(embedded).toContain(normal);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("the runtime loader registers every face-map name", () => {
|
|
75
|
+
const original = require.extensions[".otf"];
|
|
76
|
+
require.extensions[".otf"] = (module) => {
|
|
77
|
+
module.exports = 1;
|
|
78
|
+
};
|
|
79
|
+
try {
|
|
80
|
+
const fonts = createFontLoader({ inter: true, fonts: [] }).importFonts();
|
|
81
|
+
for (const [, name] of faces) expect(fonts).toHaveProperty([name]);
|
|
82
|
+
} finally {
|
|
83
|
+
if (original) require.extensions[".otf"] = original;
|
|
84
|
+
else delete require.extensions[".otf"];
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Inter faces MPO ships, by weight, named by each OTF's PostScript name
|
|
3
|
+
* (FZ-8572). One table feeds the native face map, the runtime font loader and
|
|
4
|
+
* the expo-font config plugin, so every name tamagui asks for on native is a
|
|
5
|
+
* font the app either embeds or loads.
|
|
6
|
+
*
|
|
7
|
+
* PostScript names, not aliases: the expo-font config plugin embeds a file
|
|
8
|
+
* and iOS registers it under its PostScript name, and Android resolves a
|
|
9
|
+
* family by the file's base name in assets/fonts. @tamagui/font-inter names
|
|
10
|
+
* each file after its PostScript name, so `Inter-SemiBold` is all three.
|
|
11
|
+
*/
|
|
12
|
+
export const interFaceNames = {
|
|
13
|
+
400: "Inter-Regular",
|
|
14
|
+
500: "Inter-Medium",
|
|
15
|
+
600: "Inter-SemiBold",
|
|
16
|
+
700: "Inter-Bold",
|
|
17
|
+
800: "Inter-ExtraBold",
|
|
18
|
+
} as const;
|
|
19
|
+
|
|
20
|
+
export type InterWeight = keyof typeof interFaceNames;
|
|
21
|
+
export type InterFaceName = (typeof interFaceNames)[InterWeight];
|
|
22
|
+
|
|
23
|
+
/** The OTF file in @tamagui/font-inter for a face. */
|
|
24
|
+
export function interFaceFile(name: InterFaceName): string {
|
|
25
|
+
return `@tamagui/font-inter/otf/${name}.otf`;
|
|
26
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LC-172 FILL-CONTRAST for the stock accent Button (FZ-7697). `<Button accent>`
|
|
3
|
+
* is `theme="accent"` on a `Button` frame, so it paints from whichever theme
|
|
4
|
+
* Tamagui's name walk lands on: the scope's segments from longest to shortest,
|
|
5
|
+
* `<base>_accent_Button` before `<base>_accent`. The house scope finds
|
|
6
|
+
* `<scheme>_accent_Button` (template surface2), a hue scope its
|
|
7
|
+
* `<scheme>_<hue>_accent` solid, and an intent scope falls back to the
|
|
8
|
+
* scheme's. Every scope a Button can render under (each scheme bare, every hue
|
|
9
|
+
* and intent scope) must give its accent Button and its bare accent sub-theme a
|
|
10
|
+
* label that clears WCAG AA 4.5:1 and APCA Lc 60 on its fill.
|
|
11
|
+
*/
|
|
12
|
+
import { describe, expect, it, vi } from "vitest";
|
|
13
|
+
|
|
14
|
+
vi.mock("tamagui", () => ({
|
|
15
|
+
createTamagui: vi.fn((config: Record<string, unknown>) => config),
|
|
16
|
+
}));
|
|
17
|
+
vi.mock("./animations/index", () => ({ animations: {} }));
|
|
18
|
+
|
|
19
|
+
import {
|
|
20
|
+
aaTextContrastRatio,
|
|
21
|
+
contrastRatio,
|
|
22
|
+
normalizeToHex,
|
|
23
|
+
relativeLuminance,
|
|
24
|
+
} from "./colorRules";
|
|
25
|
+
import { createDefaultThemeConfig } from "./createDefaultThemeConfig";
|
|
26
|
+
import { resolveAllThemes } from "./dedupeInherited";
|
|
27
|
+
import { apcaContrast, fillLabelLcFloor } from "./fillContrast";
|
|
28
|
+
import {
|
|
29
|
+
boldPreset,
|
|
30
|
+
consolePreset,
|
|
31
|
+
defaultPreset,
|
|
32
|
+
densePreset,
|
|
33
|
+
heroPreset,
|
|
34
|
+
roomyPreset,
|
|
35
|
+
storefrontPreset,
|
|
36
|
+
} from "./presets";
|
|
37
|
+
|
|
38
|
+
const resolved = resolveAllThemes(
|
|
39
|
+
createDefaultThemeConfig().tamagui.themes as unknown as Record<string, Record<string, unknown>>,
|
|
40
|
+
);
|
|
41
|
+
|
|
42
|
+
const scopes = Object.keys(resolved).filter(
|
|
43
|
+
(name) => /^(light|dark)(_[a-z]+)?$/.test(name) && !/_(accent|active)$/.test(name),
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
function accentThemeName(scope: string, componentName?: string) {
|
|
47
|
+
const parts = scope.split("_");
|
|
48
|
+
for (let end = parts.length; end > 0; end--) {
|
|
49
|
+
const base = parts.slice(0, end).join("_");
|
|
50
|
+
const candidates = componentName
|
|
51
|
+
? [`${base}_accent_${componentName}`, `${base}_accent`]
|
|
52
|
+
: [`${base}_accent`];
|
|
53
|
+
const found = candidates.find((name) => name in resolved);
|
|
54
|
+
if (found) return found;
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function measure(name: string) {
|
|
60
|
+
const theme = resolved[name];
|
|
61
|
+
expect(theme, name).toBeDefined();
|
|
62
|
+
const fill = normalizeToHex(String(theme?.background));
|
|
63
|
+
const label = normalizeToHex(String(theme?.color));
|
|
64
|
+
expect(
|
|
65
|
+
fill && label,
|
|
66
|
+
`${name}: ${String(theme?.color)} on ${String(theme?.background)}`,
|
|
67
|
+
).toBeTruthy();
|
|
68
|
+
return {
|
|
69
|
+
fill: fill as string,
|
|
70
|
+
label: label as string,
|
|
71
|
+
wcag: contrastRatio(relativeLuminance(fill as string), relativeLuminance(label as string)),
|
|
72
|
+
lc: Math.abs(apcaContrast(label as string, fill as string)),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
describe("LC-172: the stock accent Button's label is readable on its fill (FZ-7697)", () => {
|
|
77
|
+
it("covers both schemes, the hueless house scope and every hue", () => {
|
|
78
|
+
expect(scopes).toEqual(expect.arrayContaining(["light", "dark", "light_blue", "dark_purple"]));
|
|
79
|
+
expect(scopes.length).toBeGreaterThanOrEqual(18);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it("covers the scope every catalog preset renders under", () => {
|
|
83
|
+
for (const preset of [
|
|
84
|
+
defaultPreset,
|
|
85
|
+
heroPreset,
|
|
86
|
+
boldPreset,
|
|
87
|
+
densePreset,
|
|
88
|
+
roomyPreset,
|
|
89
|
+
consolePreset,
|
|
90
|
+
storefrontPreset,
|
|
91
|
+
]) {
|
|
92
|
+
for (const scheme of ["light", "dark"]) {
|
|
93
|
+
const scope = preset.theme ? `${scheme}_${preset.theme}` : scheme;
|
|
94
|
+
expect(scopes, scope).toContain(scope);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it("resolves the house scope's accent Button to its own component theme", () => {
|
|
100
|
+
expect(accentThemeName("light", "Button")).toBe("light_accent_Button");
|
|
101
|
+
expect(accentThemeName("dark", "Button")).toBe("dark_accent_Button");
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
for (const scope of scopes) {
|
|
105
|
+
for (const componentName of [undefined, "Button"]) {
|
|
106
|
+
const target = componentName ? `${scope} accent ${componentName}` : `${scope} accent`;
|
|
107
|
+
it(`${target}: the label clears WCAG AA 4.5 and APCA Lc 60 on the fill`, () => {
|
|
108
|
+
const name = accentThemeName(scope, componentName);
|
|
109
|
+
expect(name, `${target} resolves to no theme`).toBeDefined();
|
|
110
|
+
const { fill, label, wcag, lc } = measure(name as string);
|
|
111
|
+
expect(wcag, `${label} on ${fill}`).toBeGreaterThanOrEqual(aaTextContrastRatio);
|
|
112
|
+
expect(lc, `${label} on ${fill}`).toBeGreaterThanOrEqual(fillLabelLcFloor);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
});
|
package/src/theme/colorRules.ts
CHANGED
|
@@ -326,6 +326,47 @@ export function holdInkFloor(fill: string, ink: string, floor = aaTextContrastRa
|
|
|
326
326
|
return onWhite >= onBlack ? "#ffffff" : "#000000";
|
|
327
327
|
}
|
|
328
328
|
|
|
329
|
+
function mix(hex: string, pole: number, share: number): string {
|
|
330
|
+
return `#${[1, 3, 5]
|
|
331
|
+
.map((offset) => {
|
|
332
|
+
const channel = parseInt(hex.slice(offset, offset + 2), 16);
|
|
333
|
+
return Math.round(channel + (pole - channel) * share)
|
|
334
|
+
.toString(16)
|
|
335
|
+
.padStart(2, "0");
|
|
336
|
+
})
|
|
337
|
+
.join("")}`;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* `hue` moved toward the scheme's ink pole (black on a light page, white on a
|
|
342
|
+
* dark one) by the least amount that clears `floor` on every surface, so the
|
|
343
|
+
* hue survives and only its lightness gives.
|
|
344
|
+
*/
|
|
345
|
+
export function holdHueToFloor(
|
|
346
|
+
hue: string,
|
|
347
|
+
surfaces: readonly (string | undefined)[],
|
|
348
|
+
dark: boolean,
|
|
349
|
+
floor: number,
|
|
350
|
+
): string {
|
|
351
|
+
const hueHex = normalizeToHex(hue);
|
|
352
|
+
const lums = surfaces
|
|
353
|
+
.map((surface) => (surface ? normalizeToHex(surface) : null))
|
|
354
|
+
.filter((hex): hex is string => hex != null)
|
|
355
|
+
.map(relativeLuminance);
|
|
356
|
+
if (!hueHex || lums.length === 0) return hue;
|
|
357
|
+
const clears = (hex: string) => {
|
|
358
|
+
const lum = relativeLuminance(hex);
|
|
359
|
+
return lums.every((surface) => contrastRatio(lum, surface) >= floor);
|
|
360
|
+
};
|
|
361
|
+
if (clears(hueHex)) return hue;
|
|
362
|
+
const pole = dark ? 255 : 0;
|
|
363
|
+
for (let step = 1; step <= 50; step++) {
|
|
364
|
+
const candidate = mix(hueHex, pole, step * 0.02);
|
|
365
|
+
if (clears(candidate)) return candidate;
|
|
366
|
+
}
|
|
367
|
+
return dark ? "#ffffff" : "#000000";
|
|
368
|
+
}
|
|
369
|
+
|
|
329
370
|
/**
|
|
330
371
|
* Given a 12-color scale (hex strings), a background step, and a starting
|
|
331
372
|
* text step, scan towards `preferredDir` for the first step whose contrast
|
|
@@ -15,9 +15,11 @@
|
|
|
15
15
|
* wash on hover and press. The bar's position carries the affordance.
|
|
16
16
|
*
|
|
17
17
|
* Disabled, both tiers drain the fill to transparent and set the ink on
|
|
18
|
-
* `$
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* `$textMuted`, the secondary ink (LC-152), which clears 7:1 on the page in
|
|
19
|
+
* both schemes. Under a tint it stays neutral: a tint's `$color9` is its
|
|
20
|
+
* hue's solid step, the colour of a live action, so a disabled label inked
|
|
21
|
+
* with it read as available (FZ-8939, LC-40). The tinted tier keeps LC-40's
|
|
22
|
+
* `$color6` edge so the drained box still reads as a control.
|
|
21
23
|
*/
|
|
22
24
|
export type ControlTier = "tinted" | "plain";
|
|
23
25
|
|
|
@@ -60,7 +62,7 @@ export function controlTierDisabled(tier: ControlTier): {
|
|
|
60
62
|
return {
|
|
61
63
|
backgroundColor: "transparent",
|
|
62
64
|
borderColor: tier === "tinted" ? "$color6" : "transparent",
|
|
63
|
-
color: "$
|
|
65
|
+
color: "$textMuted",
|
|
64
66
|
};
|
|
65
67
|
}
|
|
66
68
|
|
|
@@ -304,10 +304,17 @@ describe("heading scope categories", () => {
|
|
|
304
304
|
try {
|
|
305
305
|
const fonts = createFontLoader({ inter: true, fonts: [] }).importFonts();
|
|
306
306
|
expect(Object.keys(fonts).sort()).toEqual(
|
|
307
|
-
[
|
|
307
|
+
[
|
|
308
|
+
"Inter",
|
|
309
|
+
"Inter-Regular",
|
|
310
|
+
"Inter-Medium",
|
|
311
|
+
"Inter-SemiBold",
|
|
312
|
+
"Inter-Bold",
|
|
313
|
+
"Inter-ExtraBold",
|
|
314
|
+
].sort(),
|
|
308
315
|
);
|
|
309
316
|
for (const font of [defaultHeadingFont, defaultBodyFont]) {
|
|
310
|
-
expect(font.face[500]?.normal).toBe("
|
|
317
|
+
expect(font.face[500]?.normal).toBe("Inter-Medium");
|
|
311
318
|
for (const face of Object.values(font.face)) {
|
|
312
319
|
expect(fonts).toHaveProperty(face.normal!.split(",")[0]!.trim());
|
|
313
320
|
}
|
|
@@ -4,6 +4,7 @@ import { createInterFont } from "@tamagui/font-inter";
|
|
|
4
4
|
// whole `tamagui` module down to `createTamagui`, and this module is on that
|
|
5
5
|
// spec's import graph.
|
|
6
6
|
import { createFont, type GenericFont } from "@tamagui/web";
|
|
7
|
+
import { interFaceNames } from "../../fonts/interFaces";
|
|
7
8
|
import { flooredLineHeight, fontCategoryMetrics } from "../fontCategoryMetrics";
|
|
8
9
|
import { fontCategoryStacks } from "../fontCategoryStacks";
|
|
9
10
|
import type { FontCategory } from "../knobs";
|
|
@@ -93,14 +94,10 @@ export const bodyFontLineHeights: Record<string, number> = {
|
|
|
93
94
|
...defaultTypeTables.bodyLineHeights,
|
|
94
95
|
};
|
|
95
96
|
|
|
96
|
-
/** Shipped Inter faces: 400/500/600/700/800. */
|
|
97
|
-
const interFaces =
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
600: { normal: "InterSemiBold" },
|
|
101
|
-
700: { normal: "InterBold" },
|
|
102
|
-
800: { normal: "InterExtraBold" },
|
|
103
|
-
} as const;
|
|
97
|
+
/** Shipped Inter faces: 400/500/600/700/800, by PostScript name (FZ-8572). */
|
|
98
|
+
const interFaces = Object.fromEntries(
|
|
99
|
+
Object.entries(interFaceNames).map(([weight, name]) => [weight, { normal: name }]),
|
|
100
|
+
) as { [W in keyof typeof interFaceNames]: { normal: (typeof interFaceNames)[W] } };
|
|
104
101
|
|
|
105
102
|
/**
|
|
106
103
|
* Concrete family stacks for each `headingFont`/`bodyFont` category. Alias of
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { contrastRatio, relativeLuminance } from "./colorRules";
|
|
2
|
+
import { contrastRatio, holdHueToFloor, relativeLuminance } from "./colorRules";
|
|
3
3
|
import {
|
|
4
4
|
GLYPH_CONTRAST_FLOOR,
|
|
5
5
|
glyphTintFallback,
|
|
6
|
-
holdHueToFloor,
|
|
7
6
|
platformSystemTint,
|
|
8
7
|
resolveGlyphTint,
|
|
9
8
|
} from "./glyphTint";
|
|
9
|
+
import { resolveActiveTabInk } from "./readableColor";
|
|
10
10
|
|
|
11
11
|
const ratio = (a: string, b: string) => contrastRatio(relativeLuminance(a), relativeLuminance(b));
|
|
12
12
|
|
|
@@ -51,3 +51,31 @@ describe("LC-176 glyph tint (FZ-8020 r4)", () => {
|
|
|
51
51
|
expect(parseInt(held.slice(5, 7), 16)).toBeGreaterThan(parseInt(held.slice(1, 3), 16));
|
|
52
52
|
});
|
|
53
53
|
});
|
|
54
|
+
|
|
55
|
+
describe("LC-150 active tab ink (FZ-7995 r3)", () => {
|
|
56
|
+
const light = { dark: false, surfaces: ["#f7f7f7", "#ffffff"], ink: "#111111" };
|
|
57
|
+
const dark = { dark: true, surfaces: ["#111111", "#191919"], ink: "#eeeeee" };
|
|
58
|
+
const chroma = (hex: string) => {
|
|
59
|
+
const rgb = [1, 3, 5].map((offset) => parseInt(hex.slice(offset, offset + 2), 16));
|
|
60
|
+
return Math.max(...rgb) - Math.min(...rgb);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
it("keeps a hued theme's identity hue", () => {
|
|
64
|
+
expect(resolveActiveTabInk({ ...light, hue: "#c2410c", solid: "#0090ff" })).toBe("#c2410c");
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
for (const cell of [light, dark]) {
|
|
68
|
+
const scheme = cell.dark ? "dark" : "light";
|
|
69
|
+
it(`${scheme}, no hue: takes the accent solid, held to AA on every page surface`, () => {
|
|
70
|
+
const ink = resolveActiveTabInk({ ...cell, hue: undefined, solid: "#0090ff" });
|
|
71
|
+
expect(ink).not.toBe(cell.ink);
|
|
72
|
+
expect(chroma(ink)).toBeGreaterThanOrEqual(0.1 * 255);
|
|
73
|
+
for (const surface of cell.surfaces) expect(ratio(ink, surface)).toBeGreaterThanOrEqual(4.5);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
it("falls back to the primary ink only when the solid has no hue", () => {
|
|
78
|
+
expect(resolveActiveTabInk({ ...light, hue: undefined, solid: "#6f6f6f" })).toBe("#111111");
|
|
79
|
+
expect(resolveActiveTabInk({ ...light, hue: undefined, solid: undefined })).toBe("#111111");
|
|
80
|
+
});
|
|
81
|
+
});
|
package/src/theme/glyphTint.ts
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { createContext, useContext, useMemo } from "react";
|
|
2
2
|
import { useThemeName } from "tamagui";
|
|
3
|
-
import {
|
|
4
|
-
aaTextContrastRatio,
|
|
5
|
-
contrastRatio,
|
|
6
|
-
normalizeToHex,
|
|
7
|
-
relativeLuminance,
|
|
8
|
-
} from "./colorRules";
|
|
3
|
+
import { aaTextContrastRatio, holdHueToFloor } from "./colorRules";
|
|
9
4
|
import { isDarkThemeName } from "./controlTiers";
|
|
10
5
|
import { useIdentityHue } from "./readableColor";
|
|
11
6
|
|
|
@@ -47,47 +42,6 @@ const GlyphTintFallbackContext = createContext<GlyphTintFallback>(glyphTintFallb
|
|
|
47
42
|
/** Renders a subtree under another fallback, so one Storybook build can compare them. */
|
|
48
43
|
export const GlyphTintFallbackProvider = GlyphTintFallbackContext.Provider;
|
|
49
44
|
|
|
50
|
-
function mix(hex: string, pole: number, share: number): string {
|
|
51
|
-
return `#${[1, 3, 5]
|
|
52
|
-
.map((offset) => {
|
|
53
|
-
const channel = parseInt(hex.slice(offset, offset + 2), 16);
|
|
54
|
-
return Math.round(channel + (pole - channel) * share)
|
|
55
|
-
.toString(16)
|
|
56
|
-
.padStart(2, "0");
|
|
57
|
-
})
|
|
58
|
-
.join("")}`;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* `hue` moved toward the scheme's ink pole (black on a light page, white on a
|
|
63
|
-
* dark one) by the least amount that clears `floor` on every surface, so the
|
|
64
|
-
* hue survives and only its lightness gives.
|
|
65
|
-
*/
|
|
66
|
-
export function holdHueToFloor(
|
|
67
|
-
hue: string,
|
|
68
|
-
surfaces: readonly (string | undefined)[],
|
|
69
|
-
dark: boolean,
|
|
70
|
-
floor: number,
|
|
71
|
-
): string {
|
|
72
|
-
const hueHex = normalizeToHex(hue);
|
|
73
|
-
const lums = surfaces
|
|
74
|
-
.map((surface) => (surface ? normalizeToHex(surface) : null))
|
|
75
|
-
.filter((hex): hex is string => hex != null)
|
|
76
|
-
.map(relativeLuminance);
|
|
77
|
-
if (!hueHex || lums.length === 0) return hue;
|
|
78
|
-
const clears = (hex: string) => {
|
|
79
|
-
const lum = relativeLuminance(hex);
|
|
80
|
-
return lums.every((surface) => contrastRatio(lum, surface) >= floor);
|
|
81
|
-
};
|
|
82
|
-
if (clears(hueHex)) return hue;
|
|
83
|
-
const pole = dark ? 255 : 0;
|
|
84
|
-
for (let step = 1; step <= 50; step++) {
|
|
85
|
-
const candidate = mix(hueHex, pole, step * 0.02);
|
|
86
|
-
if (clears(candidate)) return candidate;
|
|
87
|
-
}
|
|
88
|
-
return dark ? "#ffffff" : "#000000";
|
|
89
|
-
}
|
|
90
|
-
|
|
91
45
|
export interface ResolveGlyphTintInput {
|
|
92
46
|
/** The theme's own identity hue on the page, when it has one. */
|
|
93
47
|
hue: string | undefined;
|