UNPKG

nativewind

Version:

Use Tailwindcss in your cross-platform React Native applications

216 lines 7.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.safeArea = void 0; const plugin_1 = __importDefault(require("tailwindcss/plugin")); function generateVariantUtilities(utilities, variant, generateValue) { return Object.entries(utilities).reduce((acc, [selector, propertyValue]) => { const className = selector.slice(1); acc[`${className}-${variant}`] = (x) => Object.entries(propertyValue).reduce((result, [property, value]) => { if (Array.isArray(value)) { result[property] = value.map((v) => v === "-webkit-fill-available" ? v : generateValue(v, x)); } else { result[property] = generateValue(value, x); } return result; }, {}); return acc; }, {}); } const baseUtilities = { ".m-safe": { marginTop: "env(safe-area-inset-top)", marginRight: "env(safe-area-inset-right)", marginBottom: "env(safe-area-inset-bottom)", marginLeft: "env(safe-area-inset-left)", }, ".mx-safe": { marginRight: "env(safe-area-inset-right)", marginLeft: "env(safe-area-inset-left)", }, ".my-safe": { marginTop: "env(safe-area-inset-top)", marginBottom: "env(safe-area-inset-bottom)", }, ".ms-safe": { marginInlineStart: "env(safe-area-inset-left)", }, ".me-safe": { marginInlineEnd: "env(safe-area-inset-left)", }, ".mt-safe": { marginTop: "env(safe-area-inset-top)", }, ".mr-safe": { marginRight: "env(safe-area-inset-right)", }, ".mb-safe": { marginBottom: "env(safe-area-inset-bottom)", }, ".ml-safe": { marginLeft: "env(safe-area-inset-left)", }, ".p-safe": { paddingTop: "env(safe-area-inset-top)", paddingRight: "env(safe-area-inset-right)", paddingBottom: "env(safe-area-inset-bottom)", paddingLeft: "env(safe-area-inset-left)", }, ".px-safe": { paddingRight: "env(safe-area-inset-right)", paddingLeft: "env(safe-area-inset-left)", }, ".py-safe": { paddingTop: "env(safe-area-inset-top)", paddingBottom: "env(safe-area-inset-bottom)", }, ".ps-safe": { paddingInlineStart: "env(safe-area-inset-left)", }, ".pe-safe": { paddingInlineEnd: "env(safe-area-inset-left)", }, ".pt-safe": { paddingTop: "env(safe-area-inset-top)", }, ".pr-safe": { paddingRight: "env(safe-area-inset-right)", }, ".pb-safe": { paddingBottom: "env(safe-area-inset-bottom)", }, ".pl-safe": { paddingLeft: "env(safe-area-inset-left)", }, ".scroll-m-safe": { scrollMarginTop: "env(safe-area-inset-top)", scrollMarginRight: "env(safe-area-inset-right)", scrollMarginBottom: "env(safe-area-inset-bottom)", scrollMarginLeft: "env(safe-area-inset-left)", }, ".scroll-mx-safe": { scrollMarginRight: "env(safe-area-inset-right)", scrollMarginLeft: "env(safe-area-inset-left)", }, ".scroll-my-safe": { scrollMarginTop: "env(safe-area-inset-top)", scrollMarginBottom: "env(safe-area-inset-bottom)", }, ".scroll-ms-safe": { scrollMarginInlineStart: "env(safe-area-inset-left)", }, ".scroll-me-safe": { scrollMarginInlineEnd: "env(safe-area-inset-left)", }, ".scroll-mt-safe": { scrollMarginTop: "env(safe-area-inset-top)", }, ".scroll-mr-safe": { scrollMarginRight: "env(safe-area-inset-right)", }, ".scroll-mb-safe": { scrollMarginBottom: "env(safe-area-inset-bottom)", }, ".scroll-ml-safe": { scrollMarginLeft: "env(safe-area-inset-left)", }, ".scroll-p-safe": { scrollPaddingTop: "env(safe-area-inset-top)", scrollPaddingRight: "env(safe-area-inset-right)", scrollPaddingBottom: "env(safe-area-inset-bottom)", scrollPaddingLeft: "env(safe-area-inset-left)", }, ".scroll-px-safe": { scrollPaddingRight: "env(safe-area-inset-right)", scrollPaddingLeft: "env(safe-area-inset-left)", }, ".scroll-py-safe": { scrollPaddingTop: "env(safe-area-inset-top)", scrollPaddingBottom: "env(safe-area-inset-bottom)", }, ".scroll-ps-safe": { scrollPaddingInlineStart: "env(safe-area-inset-left)", }, ".scroll-pe-safe": { scrollPaddingInlineEnd: "env(safe-area-inset-left)", }, ".scroll-pt-safe": { scrollPaddingTop: "env(safe-area-inset-top)", }, ".scroll-pr-safe": { scrollPaddingRight: "env(safe-area-inset-right)", }, ".scroll-pb-safe": { scrollPaddingBottom: "env(safe-area-inset-bottom)", }, ".scroll-pl-safe": { scrollPaddingLeft: "env(safe-area-inset-left)", }, ".inset-safe": { top: "env(safe-area-inset-top)", right: "env(safe-area-inset-right)", bottom: "env(safe-area-inset-bottom)", left: "env(safe-area-inset-left)", }, ".inset-x-safe": { right: "env(safe-area-inset-right)", left: "env(safe-area-inset-left)", }, ".inset-y-safe": { top: "env(safe-area-inset-top)", bottom: "env(safe-area-inset-bottom)", }, ".start-safe": { insetInlineStart: "env(safe-area-inset-left)", }, ".end-safe": { insetInlineEnd: "env(safe-area-inset-left)", }, ".top-safe": { top: "env(safe-area-inset-top)", }, ".right-safe": { right: "env(safe-area-inset-right)", }, ".bottom-safe": { bottom: "env(safe-area-inset-bottom)", }, ".left-safe": { left: "env(safe-area-inset-left)", }, ".min-h-screen-safe": { minHeight: [ "calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))", "-webkit-fill-available", ], }, ".max-h-screen-safe": { maxHeight: [ "calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))", "-webkit-fill-available", ], }, ".h-screen-safe": { height: [ "calc(100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)))", "-webkit-fill-available", ], }, }; exports.safeArea = (0, plugin_1.default)(({ addUtilities, matchUtilities, theme }) => { addUtilities(baseUtilities); const offsetUtilities = generateVariantUtilities(baseUtilities, "offset", (v, x) => `calc(${v} + ${x})`); matchUtilities(offsetUtilities, { values: theme("spacing"), supportsNegativeValues: true, }); const orUtilities = generateVariantUtilities(baseUtilities, "or", (v, x) => `max(${v}, ${x})`); matchUtilities(orUtilities, { values: theme("spacing"), supportsNegativeValues: true, }); }); //# sourceMappingURL=safe-area.js.map