@mapcss/preset-typography
Version:
Typography preset for MapCSS
337 lines (336 loc) • 18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.border = void 0;
const _utils_js_1 = require("./_utils.js");
const resolve_js_1 = require("../../core/resolve.js");
const deps_js_1 = require("../../deps.js");
const regexp_js_1 = require("../../core/utils/regexp.js");
const monad_js_1 = require("../../core/utils/monad.js");
const format_js_1 = require("../../core/utils/format.js");
const BORDER_WIDTH = "border-width";
exports.border = [
["DEFAULT", { [BORDER_WIDTH]: "1px" }],
["solid", { "border-style": "solid" }],
["dashed", { "border-style": "dashed" }],
["dotted", { "border-style": "dotted" }],
["double", { "border-style": "double" }],
["hidden", { "border-style": "hidden" }],
["none", { "border-style": "none" }],
["collapse", { "border-collapse": "collapse" }],
["separate", { "border-collapse": "separate" }],
["x", [
["DEFAULT", {
"border-left-width": "1px",
"border-right-width": "1px",
}],
[
regexp_js_1.re$Numeric,
([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)(["border-left-width", "border-right-width"])),
],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, numeric], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(numeric).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => (0, deps_js_1.associateWith)(["border-right-color", "border-left-color"], () => color),
none: undefined,
}),
none: undefined,
});
}],
[regexp_js_1.re$AllPerBracket_$, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map(({ r, g, b }) => ({ r, g, b, a: alpha }))
.map(format_js_1.rgbFn).match({
some: (color) => (0, deps_js_1.associateWith)(["border-right-color", "border-left-color"], () => color),
none: undefined,
});
}],
[
regexp_js_1.re$All,
([body], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)(1, true))
.map(format_js_1.rgbFn)
.match({
some: (color) => (0, deps_js_1.associateWith)(["border-right-color", "border-left-color"], () => color),
none: () => (0, deps_js_1.associateWith)(["border-right-color", "border-left-color"], () => color),
});
},
],
]],
["y", [
["DEFAULT", {
"border-top-width": "1px",
"border-bottom-width": "1px",
}],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(alpha).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => (0, deps_js_1.associateWith)(["border-top-color", "border-bottom-color"], () => color),
none: undefined,
}),
none: undefined,
});
}],
[
regexp_js_1.re$Numeric,
([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)(["border-top-width", "border-bottom-width"])),
],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, numeric], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(numeric).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => (0, deps_js_1.associateWith)(["border-top-color", "border-bottom-color"], () => color),
none: undefined,
}),
none: undefined,
});
}],
[regexp_js_1.re$AllPerBracket_$, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map(({ r, g, b }) => ({ r, g, b, a: alpha }))
.map(format_js_1.rgbFn).match({
some: (color) => (0, deps_js_1.associateWith)(["border-top-color", "border-bottom-color"], () => color),
none: undefined,
});
}],
[
regexp_js_1.re$All,
([body], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)(1, true))
.map(format_js_1.rgbFn)
.match({
some: (color) => (0, deps_js_1.associateWith)(["border-top-color", "border-bottom-color"], () => color),
none: () => (0, deps_js_1.associateWith)(["border-top-color", "border-bottom-color"], () => color),
});
},
],
]],
["t", [
["DEFAULT", { "border-top-width": "1px" }],
[
regexp_js_1.re$Numeric,
([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)("border-top-width")),
],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, numeric], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(numeric).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => ({ "border-top-color": color }),
none: undefined,
}),
none: undefined,
});
}],
[regexp_js_1.re$AllPerBracket_$, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map(({ r, g, b }) => ({ r, g, b, a: alpha }))
.map(format_js_1.rgbFn).match({
some: (color) => ({ "border-top-color": color }),
none: undefined,
});
}],
[
regexp_js_1.re$All,
([body], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)(1, true))
.map(format_js_1.rgbFn)
.match({
some: (color) => ({ "border-top-color": color }),
none: ({ "border-top-color": color }),
});
},
],
]],
["r", [
["DEFAULT", { "border-right-width": "1px" }],
[
regexp_js_1.re$Numeric,
([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)("border-right-width")),
],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, numeric], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(numeric).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => ({ "border-right-color": color }),
none: undefined,
}),
none: undefined,
});
}],
[regexp_js_1.re$AllPerBracket_$, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map(({ r, g, b }) => ({ r, g, b, a: alpha }))
.map(format_js_1.rgbFn).match({
some: (color) => ({ "border-right-color": color }),
none: undefined,
});
}],
[
regexp_js_1.re$All,
([body], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)(1, true))
.map(format_js_1.rgbFn)
.match({
some: (color) => ({ "border-right-color": color }),
none: ({ "border-right-color": color }),
});
},
],
]],
["b", [
["DEFAULT", { "border-bottom-width": "1px" }],
[
regexp_js_1.re$Numeric,
([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)("border-bottom-width")),
],
[regexp_js_1.re$AllPerBracket_$, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map(({ r, g, b }) => ({ r, g, b, a: alpha }))
.map(format_js_1.rgbFn).match({
some: (color) => ({ "border-bottom-color": color }),
none: undefined,
});
}],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, numeric], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(numeric).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => ({ "border-bottom-color": color }),
none: undefined,
}),
none: undefined,
});
}],
[
regexp_js_1.re$All,
([body], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)(1, true))
.map(format_js_1.rgbFn)
.match({
some: (color) => ({ "border-bottom-color": color }),
none: ({ "border-bottom-color": color }),
});
},
],
]],
["l", [
["DEFAULT", { "border-left-width": "1px" }],
[
regexp_js_1.re$Numeric,
([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)("border-left-width")),
],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, numeric], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(numeric).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => ({ "border-left-color": color }),
none: undefined,
}),
none: undefined,
});
}],
[regexp_js_1.re$AllPerBracket_$, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map(({ r, g, b }) => ({ r, g, b, a: alpha }))
.map(format_js_1.rgbFn).match({
some: (color) => ({ "border-left-color": color }),
none: undefined,
});
}],
[
regexp_js_1.re$All,
([body], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)(1, true))
.map(format_js_1.rgbFn)
.match({
some: (color) => ({ "border-left-color": color }),
none: ({ "border-left-color": color }),
});
},
],
]],
[
regexp_js_1.re$Numeric,
([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(format_js_1.shortDecimal).map((0, format_js_1.unit)("px")).match((0, _utils_js_1.matcher)(BORDER_WIDTH)),
],
[regexp_js_1.re$AllPer$PositiveNumber, ([, body, numeric], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseNumeric)(numeric).match({
some: (number) => (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)((0, format_js_1.ratio)(number))).map(format_js_1.rgbFn).match({
some: (color) => ({ "border-color": color }),
none: undefined,
}),
none: undefined,
});
}],
[regexp_js_1.re$AllPerBracket_$, ([, body, alpha], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map(({ r, g, b }) => ({ r, g, b, a: alpha })).map(format_js_1.rgbFn).match({
some: (color) => ({ "border-color": color }),
none: undefined,
});
}],
[
regexp_js_1.re$All,
([body], context) => {
const color = (0, resolve_js_1.resolveTheme)(body, "color", context);
if ((0, deps_js_1.isUndefined)(color))
return;
return (0, monad_js_1.parseColor)(color).map((0, format_js_1.completionRGBA)(1, true))
.map(format_js_1.rgbFn)
.match({
some: (color) => ({ "border-color": color }),
none: ({ "border-color": color }),
});
},
],
];