UNPKG

react-native-uikit-colors

Version:

react native ui kit colors

147 lines (142 loc) 4.77 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; 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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { colorVariants: () => colorVariants, getColor: () => getColor, getCurrentColors: () => getCurrentColors, getSystemBackgroundColor: () => getSystemBackgroundColor, palette: () => palette, rgbStringToRgb: () => rgbStringToRgb, useColor: () => useColor, useColors: () => useColors, useColorsVariants: () => useColorsVariants, useCurrentColorsVariants: () => useCurrentColorsVariants }); module.exports = __toCommonJS(index_exports); // src/colors.ts var import_nativewind = require("nativewind"); var import_react = require("react"); // src/utils.ts var import_react_native = require("react-native"); var import_apple_uikit_colors = require("apple-uikit-colors"); var getCurrentColors = () => { const colorScheme = import_react_native.Appearance.getColorScheme() || "light"; return import_react_native.StyleSheet.compose( colorVariants[colorScheme], palette[colorScheme] ); }; var getSystemBackgroundColor = () => { return getColor("systemBackground"); }; var mergedColorsLight = { ...import_apple_uikit_colors.lightElements, ...import_apple_uikit_colors.lightPalette }; var mergedColorsDark = { ...import_apple_uikit_colors.darkElements, ...import_apple_uikit_colors.darkPalette }; var getColor = (color) => { const colorScheme = import_react_native.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})`; }; // src/colors.ts var import_apple_uikit_colors2 = require("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 : (0, import_nativewind.vars)(cssVars); }; var palette = { // iOS color palette https://developer.apple.com/design/human-interface-guidelines/color light: buildVars(import_apple_uikit_colors2.lightPalette), dark: buildVars(import_apple_uikit_colors2.darkPalette) }; var mergedLightColors = { ...import_apple_uikit_colors2.lightElements, ...import_apple_uikit_colors2.lightPalette }; var mergedDarkColors = { ...import_apple_uikit_colors2.darkElements, ...import_apple_uikit_colors2.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(import_apple_uikit_colors2.lightElements), dark: buildVars(import_apple_uikit_colors2.darkElements) }; var useColor = (color) => { const { colorScheme } = (0, import_nativewind.useColorScheme)(); const colors = mergedColorsHex[colorScheme || "light"]; return (0, import_react.useMemo)(() => colors[color], [color, colors]); }; var useColorsVariants = () => { const { colorScheme } = (0, import_nativewind.useColorScheme)(); return mergedColors[colorScheme || "light"]; }; var useColors = () => { const { colorScheme } = (0, import_nativewind.useColorScheme)(); return mergedColorsHex[colorScheme || "light"]; }; var useCurrentColorsVariants = () => { (0, import_nativewind.useColorScheme)(); return getCurrentColors(); }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { colorVariants, getColor, getCurrentColors, getSystemBackgroundColor, palette, rgbStringToRgb, useColor, useColors, useColorsVariants, useCurrentColorsVariants });