UNPKG

@mapcss/preset-typography

Version:

Typography preset for MapCSS

64 lines (63 loc) 2.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.outline = 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"); function toOutlineColor(color) { return { "outline-color": color }; } exports.outline = [ ["DEFAULT", { "outline-style": "solid" }], ["none", { outline: "2px solid transparent", "outline-offset": "2px" }], ["dashed", { "outline-style": "dashed" }], ["dotted", { "outline-style": "dotted" }], ["double", { "outline-style": "double" }], ["hidden", { "outline-style": "hidden" }], ["offset", [[ regexp_js_1.re$Numeric, ([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)("outline-offset")), ]]], [ regexp_js_1.re$Numeric, ([, numeric]) => (0, monad_js_1.parseNumeric)(numeric).map(_utils_js_1.pxify).match((0, _utils_js_1.matcher)("outline-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: toOutlineColor, 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: toOutlineColor, 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: toOutlineColor, none: () => ({ "outline-color": color }), }); }, ], ];