UNPKG

react-native-uikit-colors

Version:

react native ui kit colors

150 lines (145 loc) 4.36 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // src/utils.ts import { Appearance, StyleSheet } from "react-native"; import { darkElements as darkElements2, darkPalette as darkPalette2, lightElements as lightElements2, lightPalette as lightPalette2 } from "apple-uikit-colors"; // src/colors.ts import { useColorScheme, vars } from "nativewind"; import { useMemo } from "react"; import { darkElements, darkPalette, lightElements, lightPalette } from "apple-uikit-colors"; var IS_DOM = typeof ReactNativeWebView !== "undefined"; var varPrefix = "--color"; var buildVars = (_vars) => { const cssVars = {}; for (const [key, value] of Object.entries(_vars)) { cssVars[`${varPrefix}-${key}`] = value; } return IS_DOM ? cssVars : vars(cssVars); }; var palette = { // iOS color palette https://developer.apple.com/design/human-interface-guidelines/color light: buildVars(lightPalette), dark: buildVars(darkPalette) }; var mergedLightColors = { ...lightElements, ...lightPalette }; var mergedDarkColors = { ...darkElements, ...darkPalette }; var mergedColors = { light: mergedLightColors, dark: mergedDarkColors }; var mergedColorsHex = { light: Object.fromEntries( Object.entries(mergedLightColors).map(([key, value]) => [ key, rgbStringToRgb(value) ]) ), dark: Object.fromEntries( Object.entries(mergedDarkColors).map(([key, value]) => [ key, rgbStringToRgb(value) ]) ) }; var colorVariants = { light: buildVars(lightElements), dark: buildVars(darkElements) }; var useColor = (color) => { const { colorScheme } = useColorScheme(); const colors = mergedColorsHex[colorScheme || "light"]; return useMemo(() => colors[color], [color, colors]); }; var useColorsVariants = () => { const { colorScheme } = useColorScheme(); return mergedColors[colorScheme || "light"]; }; var useColors = () => { const { colorScheme } = useColorScheme(); return mergedColorsHex[colorScheme || "light"]; }; var useCurrentColorsVariants = () => { useColorScheme(); return getCurrentColors(); }; // src/utils.ts var getCurrentColors = () => { const colorScheme = Appearance.getColorScheme() || "light"; return StyleSheet.compose( colorVariants[colorScheme], palette[colorScheme] ); }; var getSystemBackgroundColor = () => { return getColor("systemBackground"); }; var mergedColorsLight = { ...lightElements2, ...lightPalette2 }; var mergedColorsDark = { ...darkElements2, ...darkPalette2 }; var getColor = (color) => { const colorScheme = Appearance.getColorScheme() || "light"; const colors = colorScheme === "light" ? mergedColorsLight : mergedColorsDark; return rgbStringToRgb(colors[color]); }; var rgbStringToRgb = (hex) => { const [r, g, b, a] = hex.split(" ").map((s) => Number.parseFloat(s)); return `rgba(${r}, ${g}, ${b}, ${a || 1})`; }; export { __commonJS, __toESM, getCurrentColors, getSystemBackgroundColor, getColor, rgbStringToRgb, palette, colorVariants, useColor, useColorsVariants, useColors, useCurrentColorsVariants };