react-native-uikit-colors
Version:
react native ui kit colors
147 lines (142 loc) • 4.77 kB
JavaScript
;
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
});