tailwindcss
Version:
A utility-first CSS framework for rapidly building custom user interfaces.
1,513 lines • 136 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
variantPlugins: function() {
return variantPlugins;
},
corePlugins: function() {
return corePlugins;
}
});
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
const _path = /*#__PURE__*/ _interop_require_wildcard(require("path"));
const _postcss = /*#__PURE__*/ _interop_require_default(require("postcss"));
const _createUtilityPlugin = /*#__PURE__*/ _interop_require_default(require("./util/createUtilityPlugin"));
const _buildMediaQuery = /*#__PURE__*/ _interop_require_default(require("./util/buildMediaQuery"));
const _escapeClassName = /*#__PURE__*/ _interop_require_default(require("./util/escapeClassName"));
const _parseAnimationValue = /*#__PURE__*/ _interop_require_default(require("./util/parseAnimationValue"));
const _flattenColorPalette = /*#__PURE__*/ _interop_require_default(require("./util/flattenColorPalette"));
const _withAlphaVariable = /*#__PURE__*/ _interop_require_wildcard(require("./util/withAlphaVariable"));
const _toColorValue = /*#__PURE__*/ _interop_require_default(require("./util/toColorValue"));
const _isPlainObject = /*#__PURE__*/ _interop_require_default(require("./util/isPlainObject"));
const _transformThemeValue = /*#__PURE__*/ _interop_require_default(require("./util/transformThemeValue"));
const _packagejson = require("../package.json");
const _log = /*#__PURE__*/ _interop_require_default(require("./util/log"));
const _normalizeScreens = require("./util/normalizeScreens");
const _parseBoxShadowValue = require("./util/parseBoxShadowValue");
const _removeAlphaVariables = require("./util/removeAlphaVariables");
const _featureFlags = require("./featureFlags");
const _dataTypes = require("./util/dataTypes");
const _setupContextUtils = require("./lib/setupContextUtils");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
let variantPlugins = {
childVariant: ({ addVariant })=>{
addVariant("*", "& > *");
},
pseudoElementVariants: ({ addVariant })=>{
addVariant("first-letter", "&::first-letter");
addVariant("first-line", "&::first-line");
addVariant("marker", [
({ container })=>{
(0, _removeAlphaVariables.removeAlphaVariables)(container, [
"--tw-text-opacity"
]);
return "& *::marker";
},
({ container })=>{
(0, _removeAlphaVariables.removeAlphaVariables)(container, [
"--tw-text-opacity"
]);
return "&::marker";
}
]);
addVariant("selection", [
"& *::selection",
"&::selection"
]);
addVariant("file", "&::file-selector-button");
addVariant("placeholder", "&::placeholder");
addVariant("backdrop", "&::backdrop");
addVariant("before", ({ container })=>{
container.walkRules((rule)=>{
let foundContent = false;
rule.walkDecls("content", ()=>{
foundContent = true;
});
if (!foundContent) {
rule.prepend(_postcss.default.decl({
prop: "content",
value: "var(--tw-content)"
}));
}
});
return "&::before";
});
addVariant("after", ({ container })=>{
container.walkRules((rule)=>{
let foundContent = false;
rule.walkDecls("content", ()=>{
foundContent = true;
});
if (!foundContent) {
rule.prepend(_postcss.default.decl({
prop: "content",
value: "var(--tw-content)"
}));
}
});
return "&::after";
});
},
pseudoClassVariants: ({ addVariant , matchVariant , config , prefix })=>{
let pseudoVariants = [
// Positional
[
"first",
"&:first-child"
],
[
"last",
"&:last-child"
],
[
"only",
"&:only-child"
],
[
"odd",
"&:nth-child(odd)"
],
[
"even",
"&:nth-child(even)"
],
"first-of-type",
"last-of-type",
"only-of-type",
// State
[
"visited",
({ container })=>{
(0, _removeAlphaVariables.removeAlphaVariables)(container, [
"--tw-text-opacity",
"--tw-border-opacity",
"--tw-bg-opacity"
]);
return "&:visited";
}
],
"target",
[
"open",
"&[open]"
],
// Forms
"default",
"checked",
"indeterminate",
"placeholder-shown",
"autofill",
"optional",
"required",
"valid",
"invalid",
"in-range",
"out-of-range",
"read-only",
// Content
"empty",
// Interactive
"focus-within",
[
"hover",
!(0, _featureFlags.flagEnabled)(config(), "hoverOnlyWhenSupported") ? "&:hover" : "@media (hover: hover) and (pointer: fine) { &:hover }"
],
"focus",
"focus-visible",
"active",
"enabled",
"disabled"
].map((variant)=>Array.isArray(variant) ? variant : [
variant,
`&:${variant}`
]);
for (let [variantName, state] of pseudoVariants){
addVariant(variantName, (ctx)=>{
let result = typeof state === "function" ? state(ctx) : state;
return result;
});
}
let variants = {
group: (_, { modifier })=>modifier ? [
`:merge(${prefix(".group")}\\/${(0, _escapeClassName.default)(modifier)})`,
" &"
] : [
`:merge(${prefix(".group")})`,
" &"
],
peer: (_, { modifier })=>modifier ? [
`:merge(${prefix(".peer")}\\/${(0, _escapeClassName.default)(modifier)})`,
" ~ &"
] : [
`:merge(${prefix(".peer")})`,
" ~ &"
]
};
for (let [name, fn] of Object.entries(variants)){
matchVariant(name, (value = "", extra)=>{
let result = (0, _dataTypes.normalize)(typeof value === "function" ? value(extra) : value);
if (!result.includes("&")) result = "&" + result;
let [a, b] = fn("", extra);
let start = null;
let end = null;
let quotes = 0;
for(let i = 0; i < result.length; ++i){
let c = result[i];
if (c === "&") {
start = i;
} else if (c === "'" || c === '"') {
quotes += 1;
} else if (start !== null && c === " " && !quotes) {
end = i;
}
}
if (start !== null && end === null) {
end = result.length;
}
// Basically this but can handle quotes:
// result.replace(/&(\S+)?/g, (_, pseudo = '') => a + pseudo + b)
return result.slice(0, start) + a + result.slice(start + 1, end) + b + result.slice(end);
}, {
values: Object.fromEntries(pseudoVariants),
[_setupContextUtils.INTERNAL_FEATURES]: {
respectPrefix: false
}
});
}
},
directionVariants: ({ addVariant })=>{
addVariant("ltr", '&:where([dir="ltr"], [dir="ltr"] *)');
addVariant("rtl", '&:where([dir="rtl"], [dir="rtl"] *)');
},
reducedMotionVariants: ({ addVariant })=>{
addVariant("motion-safe", "@media (prefers-reduced-motion: no-preference)");
addVariant("motion-reduce", "@media (prefers-reduced-motion: reduce)");
},
darkVariants: ({ config , addVariant })=>{
let [mode, selector = ".dark"] = [].concat(config("darkMode", "media"));
if (mode === false) {
mode = "media";
_log.default.warn("darkmode-false", [
"The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.",
"Change `darkMode` to `media` or remove it entirely.",
"https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"
]);
}
if (mode === "variant") {
let formats;
if (Array.isArray(selector)) {
formats = selector;
} else if (typeof selector === "function") {
formats = selector;
} else if (typeof selector === "string") {
formats = [
selector
];
}
// TODO: We could also add these warnings if the user passes a function that returns string | string[]
// But this is an advanced enough use case that it's probably not necessary
if (Array.isArray(formats)) {
for (let format of formats){
if (format === ".dark") {
mode = false;
_log.default.warn("darkmode-variant-without-selector", [
"When using `variant` for `darkMode`, you must provide a selector.",
'Example: `darkMode: ["variant", ".your-selector &"]`'
]);
} else if (!format.includes("&")) {
mode = false;
_log.default.warn("darkmode-variant-without-ampersand", [
"When using `variant` for `darkMode`, your selector must contain `&`.",
'Example `darkMode: ["variant", ".your-selector &"]`'
]);
}
}
}
selector = formats;
}
if (mode === "selector") {
// New preferred behavior
addVariant("dark", `&:where(${selector}, ${selector} *)`);
} else if (mode === "media") {
addVariant("dark", "@media (prefers-color-scheme: dark)");
} else if (mode === "variant") {
addVariant("dark", selector);
} else if (mode === "class") {
// Old behavior
addVariant("dark", `&:is(${selector} *)`);
}
},
printVariant: ({ addVariant })=>{
addVariant("print", "@media print");
},
screenVariants: ({ theme , addVariant , matchVariant })=>{
var _theme;
let rawScreens = (_theme = theme("screens")) !== null && _theme !== void 0 ? _theme : {};
let areSimpleScreens = Object.values(rawScreens).every((v)=>typeof v === "string");
let screens = (0, _normalizeScreens.normalizeScreens)(theme("screens"));
/** @type {Set<string>} */ let unitCache = new Set([]);
/** @param {string} value */ function units(value) {
var _value_match;
var _value_match_;
return (_value_match_ = (_value_match = value.match(/(\D+)$/)) === null || _value_match === void 0 ? void 0 : _value_match[1]) !== null && _value_match_ !== void 0 ? _value_match_ : "(none)";
}
/** @param {string} value */ function recordUnits(value) {
if (value !== undefined) {
unitCache.add(units(value));
}
}
/** @param {string} value */ function canUseUnits(value) {
recordUnits(value);
// If the cache was empty it'll become 1 because we've just added the current unit
// If the cache was not empty and the units are the same the size doesn't change
// Otherwise, if the units are different from what is already known the size will always be > 1
return unitCache.size === 1;
}
for (const screen of screens){
for (const value of screen.values){
recordUnits(value.min);
recordUnits(value.max);
}
}
let screensUseConsistentUnits = unitCache.size <= 1;
/**
* @typedef {import('./util/normalizeScreens').Screen} Screen
*/ /**
* @param {'min' | 'max'} type
* @returns {Record<string, Screen>}
*/ function buildScreenValues(type) {
return Object.fromEntries(screens.filter((screen)=>(0, _normalizeScreens.isScreenSortable)(screen).result).map((screen)=>{
let { min , max } = screen.values[0];
if (type === "min" && min !== undefined) {
return screen;
} else if (type === "min" && max !== undefined) {
return {
...screen,
not: !screen.not
};
} else if (type === "max" && max !== undefined) {
return screen;
} else if (type === "max" && min !== undefined) {
return {
...screen,
not: !screen.not
};
}
}).map((screen)=>[
screen.name,
screen
]));
}
/**
* @param {'min' | 'max'} type
* @returns {(a: { value: string | Screen }, z: { value: string | Screen }) => number}
*/ function buildSort(type) {
return (a, z)=>(0, _normalizeScreens.compareScreens)(type, a.value, z.value);
}
let maxSort = buildSort("max");
let minSort = buildSort("min");
/** @param {'min'|'max'} type */ function buildScreenVariant(type) {
return (value)=>{
if (!areSimpleScreens) {
_log.default.warn("complex-screen-config", [
"The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."
]);
return [];
} else if (!screensUseConsistentUnits) {
_log.default.warn("mixed-screen-units", [
"The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."
]);
return [];
} else if (typeof value === "string" && !canUseUnits(value)) {
_log.default.warn("minmax-have-mixed-units", [
"The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."
]);
return [];
}
return [
`@media ${(0, _buildMediaQuery.default)((0, _normalizeScreens.toScreen)(value, type))}`
];
};
}
matchVariant("max", buildScreenVariant("max"), {
sort: maxSort,
values: areSimpleScreens ? buildScreenValues("max") : {}
});
// screens and min-* are sorted together when they can be
let id = "min-screens";
for (let screen of screens){
addVariant(screen.name, `@media ${(0, _buildMediaQuery.default)(screen)}`, {
id,
sort: areSimpleScreens && screensUseConsistentUnits ? minSort : undefined,
value: screen
});
}
matchVariant("min", buildScreenVariant("min"), {
id,
sort: minSort
});
},
supportsVariants: ({ matchVariant , theme })=>{
var _theme;
matchVariant("supports", (value = "")=>{
let check = (0, _dataTypes.normalize)(value);
let isRaw = /^\w*\s*\(/.test(check);
// Chrome has a bug where `(condition1)or(condition2)` is not valid
// But `(condition1) or (condition2)` is supported.
check = isRaw ? check.replace(/\b(and|or|not)\b/g, " $1 ") : check;
if (isRaw) {
return `@supports ${check}`;
}
if (!check.includes(":")) {
check = `${check}: var(--tw)`;
}
if (!(check.startsWith("(") && check.endsWith(")"))) {
check = `(${check})`;
}
return `@supports ${check}`;
}, {
values: (_theme = theme("supports")) !== null && _theme !== void 0 ? _theme : {}
});
},
hasVariants: ({ matchVariant , prefix })=>{
matchVariant("has", (value)=>`&:has(${(0, _dataTypes.normalize)(value)})`, {
values: {},
[_setupContextUtils.INTERNAL_FEATURES]: {
respectPrefix: false
}
});
matchVariant("group-has", (value, { modifier })=>modifier ? `:merge(${prefix(".group")}\\/${modifier}):has(${(0, _dataTypes.normalize)(value)}) &` : `:merge(${prefix(".group")}):has(${(0, _dataTypes.normalize)(value)}) &`, {
values: {},
[_setupContextUtils.INTERNAL_FEATURES]: {
respectPrefix: false
}
});
matchVariant("peer-has", (value, { modifier })=>modifier ? `:merge(${prefix(".peer")}\\/${modifier}):has(${(0, _dataTypes.normalize)(value)}) ~ &` : `:merge(${prefix(".peer")}):has(${(0, _dataTypes.normalize)(value)}) ~ &`, {
values: {},
[_setupContextUtils.INTERNAL_FEATURES]: {
respectPrefix: false
}
});
},
ariaVariants: ({ matchVariant , theme })=>{
var _theme;
matchVariant("aria", (value)=>`&[aria-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}]`, {
values: (_theme = theme("aria")) !== null && _theme !== void 0 ? _theme : {}
});
var _theme1;
matchVariant("group-aria", (value, { modifier })=>modifier ? `:merge(.group\\/${modifier})[aria-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] &` : `:merge(.group)[aria-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] &`, {
values: (_theme1 = theme("aria")) !== null && _theme1 !== void 0 ? _theme1 : {}
});
var _theme2;
matchVariant("peer-aria", (value, { modifier })=>modifier ? `:merge(.peer\\/${modifier})[aria-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] ~ &` : `:merge(.peer)[aria-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] ~ &`, {
values: (_theme2 = theme("aria")) !== null && _theme2 !== void 0 ? _theme2 : {}
});
},
dataVariants: ({ matchVariant , theme })=>{
var _theme;
matchVariant("data", (value)=>`&[data-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}]`, {
values: (_theme = theme("data")) !== null && _theme !== void 0 ? _theme : {}
});
var _theme1;
matchVariant("group-data", (value, { modifier })=>modifier ? `:merge(.group\\/${modifier})[data-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] &` : `:merge(.group)[data-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] &`, {
values: (_theme1 = theme("data")) !== null && _theme1 !== void 0 ? _theme1 : {}
});
var _theme2;
matchVariant("peer-data", (value, { modifier })=>modifier ? `:merge(.peer\\/${modifier})[data-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] ~ &` : `:merge(.peer)[data-${(0, _dataTypes.normalizeAttributeSelectors)((0, _dataTypes.normalize)(value))}] ~ &`, {
values: (_theme2 = theme("data")) !== null && _theme2 !== void 0 ? _theme2 : {}
});
},
orientationVariants: ({ addVariant })=>{
addVariant("portrait", "@media (orientation: portrait)");
addVariant("landscape", "@media (orientation: landscape)");
},
prefersContrastVariants: ({ addVariant })=>{
addVariant("contrast-more", "@media (prefers-contrast: more)");
addVariant("contrast-less", "@media (prefers-contrast: less)");
},
forcedColorsVariants: ({ addVariant })=>{
addVariant("forced-colors", "@media (forced-colors: active)");
}
};
let cssTransformValue = [
"translate(var(--tw-translate-x), var(--tw-translate-y))",
"rotate(var(--tw-rotate))",
"skewX(var(--tw-skew-x))",
"skewY(var(--tw-skew-y))",
"scaleX(var(--tw-scale-x))",
"scaleY(var(--tw-scale-y))"
].join(" ");
let cssFilterValue = [
"var(--tw-blur)",
"var(--tw-brightness)",
"var(--tw-contrast)",
"var(--tw-grayscale)",
"var(--tw-hue-rotate)",
"var(--tw-invert)",
"var(--tw-saturate)",
"var(--tw-sepia)",
"var(--tw-drop-shadow)"
].join(" ");
let cssBackdropFilterValue = [
"var(--tw-backdrop-blur)",
"var(--tw-backdrop-brightness)",
"var(--tw-backdrop-contrast)",
"var(--tw-backdrop-grayscale)",
"var(--tw-backdrop-hue-rotate)",
"var(--tw-backdrop-invert)",
"var(--tw-backdrop-opacity)",
"var(--tw-backdrop-saturate)",
"var(--tw-backdrop-sepia)"
].join(" ");
let corePlugins = {
preflight: ({ addBase })=>{
let preflightStyles = _postcss.default.parse(_fs.default.readFileSync(_path.join(__dirname, "./css/preflight.css"), "utf8"));
addBase([
_postcss.default.comment({
text: `! tailwindcss v${_packagejson.version} | MIT License | https://tailwindcss.com`
}),
...preflightStyles.nodes
]);
},
container: (()=>{
function extractMinWidths(breakpoints = []) {
return breakpoints.flatMap((breakpoint)=>breakpoint.values.map((breakpoint)=>breakpoint.min)).filter((v)=>v !== undefined);
}
function mapMinWidthsToPadding(minWidths, screens, paddings) {
if (typeof paddings === "undefined") {
return [];
}
if (!(typeof paddings === "object" && paddings !== null)) {
return [
{
screen: "DEFAULT",
minWidth: 0,
padding: paddings
}
];
}
let mapping = [];
if (paddings.DEFAULT) {
mapping.push({
screen: "DEFAULT",
minWidth: 0,
padding: paddings.DEFAULT
});
}
for (let minWidth of minWidths){
for (let screen of screens){
for (let { min } of screen.values){
if (min === minWidth) {
mapping.push({
minWidth,
padding: paddings[screen.name]
});
}
}
}
}
return mapping;
}
return function({ addComponents , theme }) {
let screens = (0, _normalizeScreens.normalizeScreens)(theme("container.screens", theme("screens")));
let minWidths = extractMinWidths(screens);
let paddings = mapMinWidthsToPadding(minWidths, screens, theme("container.padding"));
let generatePaddingFor = (minWidth)=>{
let paddingConfig = paddings.find((padding)=>padding.minWidth === minWidth);
if (!paddingConfig) {
return {};
}
return {
paddingRight: paddingConfig.padding,
paddingLeft: paddingConfig.padding
};
};
let atRules = Array.from(new Set(minWidths.slice().sort((a, z)=>parseInt(a) - parseInt(z)))).map((minWidth)=>({
[`@media (min-width: ${minWidth})`]: {
".container": {
"max-width": minWidth,
...generatePaddingFor(minWidth)
}
}
}));
addComponents([
{
".container": Object.assign({
width: "100%"
}, theme("container.center", false) ? {
marginRight: "auto",
marginLeft: "auto"
} : {}, generatePaddingFor(0))
},
...atRules
]);
};
})(),
accessibility: ({ addUtilities })=>{
addUtilities({
".sr-only": {
position: "absolute",
width: "1px",
height: "1px",
padding: "0",
margin: "-1px",
overflow: "hidden",
clip: "rect(0, 0, 0, 0)",
whiteSpace: "nowrap",
borderWidth: "0"
},
".not-sr-only": {
position: "static",
width: "auto",
height: "auto",
padding: "0",
margin: "0",
overflow: "visible",
clip: "auto",
whiteSpace: "normal"
}
});
},
pointerEvents: ({ addUtilities })=>{
addUtilities({
".pointer-events-none": {
"pointer-events": "none"
},
".pointer-events-auto": {
"pointer-events": "auto"
}
});
},
visibility: ({ addUtilities })=>{
addUtilities({
".visible": {
visibility: "visible"
},
".invisible": {
visibility: "hidden"
},
".collapse": {
visibility: "collapse"
}
});
},
position: ({ addUtilities })=>{
addUtilities({
".static": {
position: "static"
},
".fixed": {
position: "fixed"
},
".absolute": {
position: "absolute"
},
".relative": {
position: "relative"
},
".sticky": {
position: "sticky"
}
});
},
inset: (0, _createUtilityPlugin.default)("inset", [
[
"inset",
[
"inset"
]
],
[
[
"inset-x",
[
"left",
"right"
]
],
[
"inset-y",
[
"top",
"bottom"
]
]
],
[
[
"start",
[
"inset-inline-start"
]
],
[
"end",
[
"inset-inline-end"
]
],
[
"top",
[
"top"
]
],
[
"right",
[
"right"
]
],
[
"bottom",
[
"bottom"
]
],
[
"left",
[
"left"
]
]
]
], {
supportsNegativeValues: true
}),
isolation: ({ addUtilities })=>{
addUtilities({
".isolate": {
isolation: "isolate"
},
".isolation-auto": {
isolation: "auto"
}
});
},
zIndex: (0, _createUtilityPlugin.default)("zIndex", [
[
"z",
[
"zIndex"
]
]
], {
supportsNegativeValues: true
}),
order: (0, _createUtilityPlugin.default)("order", undefined, {
supportsNegativeValues: true
}),
gridColumn: (0, _createUtilityPlugin.default)("gridColumn", [
[
"col",
[
"gridColumn"
]
]
]),
gridColumnStart: (0, _createUtilityPlugin.default)("gridColumnStart", [
[
"col-start",
[
"gridColumnStart"
]
]
], {
supportsNegativeValues: true
}),
gridColumnEnd: (0, _createUtilityPlugin.default)("gridColumnEnd", [
[
"col-end",
[
"gridColumnEnd"
]
]
], {
supportsNegativeValues: true
}),
gridRow: (0, _createUtilityPlugin.default)("gridRow", [
[
"row",
[
"gridRow"
]
]
]),
gridRowStart: (0, _createUtilityPlugin.default)("gridRowStart", [
[
"row-start",
[
"gridRowStart"
]
]
], {
supportsNegativeValues: true
}),
gridRowEnd: (0, _createUtilityPlugin.default)("gridRowEnd", [
[
"row-end",
[
"gridRowEnd"
]
]
], {
supportsNegativeValues: true
}),
float: ({ addUtilities })=>{
addUtilities({
".float-start": {
float: "inline-start"
},
".float-end": {
float: "inline-end"
},
".float-right": {
float: "right"
},
".float-left": {
float: "left"
},
".float-none": {
float: "none"
}
});
},
clear: ({ addUtilities })=>{
addUtilities({
".clear-start": {
clear: "inline-start"
},
".clear-end": {
clear: "inline-end"
},
".clear-left": {
clear: "left"
},
".clear-right": {
clear: "right"
},
".clear-both": {
clear: "both"
},
".clear-none": {
clear: "none"
}
});
},
margin: (0, _createUtilityPlugin.default)("margin", [
[
"m",
[
"margin"
]
],
[
[
"mx",
[
"margin-left",
"margin-right"
]
],
[
"my",
[
"margin-top",
"margin-bottom"
]
]
],
[
[
"ms",
[
"margin-inline-start"
]
],
[
"me",
[
"margin-inline-end"
]
],
[
"mt",
[
"margin-top"
]
],
[
"mr",
[
"margin-right"
]
],
[
"mb",
[
"margin-bottom"
]
],
[
"ml",
[
"margin-left"
]
]
]
], {
supportsNegativeValues: true
}),
boxSizing: ({ addUtilities })=>{
addUtilities({
".box-border": {
"box-sizing": "border-box"
},
".box-content": {
"box-sizing": "content-box"
}
});
},
lineClamp: ({ matchUtilities , addUtilities , theme })=>{
matchUtilities({
"line-clamp": (value)=>({
overflow: "hidden",
display: "-webkit-box",
"-webkit-box-orient": "vertical",
"-webkit-line-clamp": `${value}`
})
}, {
values: theme("lineClamp")
});
addUtilities({
".line-clamp-none": {
overflow: "visible",
display: "block",
"-webkit-box-orient": "horizontal",
"-webkit-line-clamp": "none"
}
});
},
display: ({ addUtilities })=>{
addUtilities({
".block": {
display: "block"
},
".inline-block": {
display: "inline-block"
},
".inline": {
display: "inline"
},
".flex": {
display: "flex"
},
".inline-flex": {
display: "inline-flex"
},
".table": {
display: "table"
},
".inline-table": {
display: "inline-table"
},
".table-caption": {
display: "table-caption"
},
".table-cell": {
display: "table-cell"
},
".table-column": {
display: "table-column"
},
".table-column-group": {
display: "table-column-group"
},
".table-footer-group": {
display: "table-footer-group"
},
".table-header-group": {
display: "table-header-group"
},
".table-row-group": {
display: "table-row-group"
},
".table-row": {
display: "table-row"
},
".flow-root": {
display: "flow-root"
},
".grid": {
display: "grid"
},
".inline-grid": {
display: "inline-grid"
},
".contents": {
display: "contents"
},
".list-item": {
display: "list-item"
},
".hidden": {
display: "none"
}
});
},
aspectRatio: (0, _createUtilityPlugin.default)("aspectRatio", [
[
"aspect",
[
"aspect-ratio"
]
]
]),
size: (0, _createUtilityPlugin.default)("size", [
[
"size",
[
"width",
"height"
]
]
]),
height: (0, _createUtilityPlugin.default)("height", [
[
"h",
[
"height"
]
]
]),
maxHeight: (0, _createUtilityPlugin.default)("maxHeight", [
[
"max-h",
[
"maxHeight"
]
]
]),
minHeight: (0, _createUtilityPlugin.default)("minHeight", [
[
"min-h",
[
"minHeight"
]
]
]),
width: (0, _createUtilityPlugin.default)("width", [
[
"w",
[
"width"
]
]
]),
minWidth: (0, _createUtilityPlugin.default)("minWidth", [
[
"min-w",
[
"minWidth"
]
]
]),
maxWidth: (0, _createUtilityPlugin.default)("maxWidth", [
[
"max-w",
[
"maxWidth"
]
]
]),
flex: (0, _createUtilityPlugin.default)("flex"),
flexShrink: (0, _createUtilityPlugin.default)("flexShrink", [
[
"flex-shrink",
[
"flex-shrink"
]
],
[
"shrink",
[
"flex-shrink"
]
]
]),
flexGrow: (0, _createUtilityPlugin.default)("flexGrow", [
[
"flex-grow",
[
"flex-grow"
]
],
[
"grow",
[
"flex-grow"
]
]
]),
flexBasis: (0, _createUtilityPlugin.default)("flexBasis", [
[
"basis",
[
"flex-basis"
]
]
]),
tableLayout: ({ addUtilities })=>{
addUtilities({
".table-auto": {
"table-layout": "auto"
},
".table-fixed": {
"table-layout": "fixed"
}
});
},
captionSide: ({ addUtilities })=>{
addUtilities({
".caption-top": {
"caption-side": "top"
},
".caption-bottom": {
"caption-side": "bottom"
}
});
},
borderCollapse: ({ addUtilities })=>{
addUtilities({
".border-collapse": {
"border-collapse": "collapse"
},
".border-separate": {
"border-collapse": "separate"
}
});
},
borderSpacing: ({ addDefaults , matchUtilities , theme })=>{
addDefaults("border-spacing", {
"--tw-border-spacing-x": 0,
"--tw-border-spacing-y": 0
});
matchUtilities({
"border-spacing": (value)=>{
return {
"--tw-border-spacing-x": value,
"--tw-border-spacing-y": value,
"@defaults border-spacing": {},
"border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)"
};
},
"border-spacing-x": (value)=>{
return {
"--tw-border-spacing-x": value,
"@defaults border-spacing": {},
"border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)"
};
},
"border-spacing-y": (value)=>{
return {
"--tw-border-spacing-y": value,
"@defaults border-spacing": {},
"border-spacing": "var(--tw-border-spacing-x) var(--tw-border-spacing-y)"
};
}
}, {
values: theme("borderSpacing")
});
},
transformOrigin: (0, _createUtilityPlugin.default)("transformOrigin", [
[
"origin",
[
"transformOrigin"
]
]
]),
translate: (0, _createUtilityPlugin.default)("translate", [
[
[
"translate-x",
[
[
"@defaults transform",
{}
],
"--tw-translate-x",
[
"transform",
cssTransformValue
]
]
],
[
"translate-y",
[
[
"@defaults transform",
{}
],
"--tw-translate-y",
[
"transform",
cssTransformValue
]
]
]
]
], {
supportsNegativeValues: true
}),
rotate: (0, _createUtilityPlugin.default)("rotate", [
[
"rotate",
[
[
"@defaults transform",
{}
],
"--tw-rotate",
[
"transform",
cssTransformValue
]
]
]
], {
supportsNegativeValues: true
}),
skew: (0, _createUtilityPlugin.default)("skew", [
[
[
"skew-x",
[
[
"@defaults transform",
{}
],
"--tw-skew-x",
[
"transform",
cssTransformValue
]
]
],
[
"skew-y",
[
[
"@defaults transform",
{}
],
"--tw-skew-y",
[
"transform",
cssTransformValue
]
]
]
]
], {
supportsNegativeValues: true
}),
scale: (0, _createUtilityPlugin.default)("scale", [
[
"scale",
[
[
"@defaults transform",
{}
],
"--tw-scale-x",
"--tw-scale-y",
[
"transform",
cssTransformValue
]
]
],
[
[
"scale-x",
[
[
"@defaults transform",
{}
],
"--tw-scale-x",
[
"transform",
cssTransformValue
]
]
],
[
"scale-y",
[
[
"@defaults transform",
{}
],
"--tw-scale-y",
[
"transform",
cssTransformValue
]
]
]
]
], {
supportsNegativeValues: true
}),
transform: ({ addDefaults , addUtilities })=>{
addDefaults("transform", {
"--tw-translate-x": "0",
"--tw-translate-y": "0",
"--tw-rotate": "0",
"--tw-skew-x": "0",
"--tw-skew-y": "0",
"--tw-scale-x": "1",
"--tw-scale-y": "1"
});
addUtilities({
".transform": {
"@defaults transform": {},
transform: cssTransformValue
},
".transform-cpu": {
transform: cssTransformValue
},
".transform-gpu": {
transform: cssTransformValue.replace("translate(var(--tw-translate-x), var(--tw-translate-y))", "translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")
},
".transform-none": {
transform: "none"
}
});
},
animation: ({ matchUtilities , theme , config })=>{
let prefixName = (name)=>(0, _escapeClassName.default)(config("prefix") + name);
var _theme;
let keyframes = Object.fromEntries(Object.entries((_theme = theme("keyframes")) !== null && _theme !== void 0 ? _theme : {}).map(([key, value])=>{
return [
key,
{
[`@keyframes ${prefixName(key)}`]: value
}
];
}));
matchUtilities({
animate: (value)=>{
let animations = (0, _parseAnimationValue.default)(value);
return [
...animations.flatMap((animation)=>keyframes[animation.name]),
{
animation: animations.map(({ name , value })=>{
if (name === undefined || keyframes[name] === undefined) {
return value;
}
return value.replace(name, prefixName(name));
}).join(", ")
}
];
}
}, {
values: theme("animation")
});
},
cursor: (0, _createUtilityPlugin.default)("cursor"),
touchAction: ({ addDefaults , addUtilities })=>{
addDefaults("touch-action", {
"--tw-pan-x": " ",
"--tw-pan-y": " ",
"--tw-pinch-zoom": " "
});
let cssTouchActionValue = "var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";
addUtilities({
".touch-auto": {
"touch-action": "auto"
},
".touch-none": {
"touch-action": "none"
},
".touch-pan-x": {
"@defaults touch-action": {},
"--tw-pan-x": "pan-x",
"touch-action": cssTouchActionValue
},
".touch-pan-left": {
"@defaults touch-action": {},
"--tw-pan-x": "pan-left",
"touch-action": cssTouchActionValue
},
".touch-pan-right": {
"@defaults touch-action": {},
"--tw-pan-x": "pan-right",
"touch-action": cssTouchActionValue
},
".touch-pan-y": {
"@defaults touch-action": {},
"--tw-pan-y": "pan-y",
"touch-action": cssTouchActionValue
},
".touch-pan-up": {
"@defaults touch-action": {},
"--tw-pan-y": "pan-up",
"touch-action": cssTouchActionValue
},
".touch-pan-down": {
"@defaults touch-action": {},
"--tw-pan-y": "pan-down",
"touch-action": cssTouchActionValue
},
".touch-pinch-zoom": {
"@defaults touch-action": {},
"--tw-pinch-zoom": "pinch-zoom",
"touch-action": cssTouchActionValue
},
".touch-manipulation": {
"touch-action": "manipulation"
}
});
},
userSelect: ({ addUtilities })=>{
addUtilities({
".select-none": {
"user-select": "none"
},
".select-text": {
"user-select": "text"
},
".select-all": {
"user-select": "all"
},
".select-auto": {
"user-select": "auto"
}
});
},
resize: ({ addUtilities })=>{
addUtilities({
".resize-none": {
resize: "none"
},
".resize-y": {
resize: "vertical"
},
".resize-x": {
resize: "horizontal"
},
".resize": {
resize: "both"
}
});
},
scrollSnapType: ({ addDefaults , addUtilities })=>{
addDefaults("scroll-snap-type", {
"--tw-scroll-snap-strictness": "proximity"
});
addUtilities({
".snap-none": {
"scroll-snap-type": "none"
},
".snap-x": {
"@defaults scroll-snap-type": {},
"scroll-snap-type": "x var(--tw-scroll-snap-strictness)"
},
".snap-y": {
"@defaults scroll-snap-type": {},
"scroll-snap-type": "y va