tailwind-clamp 2.2.3 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/index.js +699 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.cjs +6 -0
- package/dist/index.umd.cjs.map +1 -0
- package/package.json +19 -12
- package/src/clamp.js +0 -84
- package/src/index.js +0 -108
- package/src/log.js +0 -16
- package/src/parse-value.js +0 -71
- package/src/resolve-property.js +0 -302
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/util/createPlugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/public/create-plugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/plugin.js","../lib/resolve-property.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/supports-color/browser.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/utilities.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/index.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction createPlugin(plugin, config) {\n return {\n handler: plugin,\n config\n };\n}\ncreatePlugin.withOptions = function(pluginFunction, configFunction = ()=>({})) {\n const optionsFunction = function(options) {\n return {\n __options: options,\n handler: pluginFunction(options),\n config: configFunction(options)\n };\n };\n optionsFunction.__isOptionsFunction = true;\n // Expose plugin dependencies so that `object-hash` returns a different\n // value if anything here changes, to ensure a rebuild is triggered.\n optionsFunction.__pluginFunction = pluginFunction;\n optionsFunction.__configFunction = configFunction;\n return optionsFunction;\n};\nconst _default = createPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _createPlugin = /*#__PURE__*/ _interop_require_default(require(\"../util/createPlugin\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst _default = _createPlugin.default;\n","let createPlugin = require('./lib/public/create-plugin')\nmodule.exports = (createPlugin.__esModule ? createPlugin : { default: createPlugin }).default\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n case 'p':\n return {\n key: 'padding',\n props: ['padding'],\n };\n case 'pt':\n return {\n key: 'padding',\n props: ['paddingTop'],\n };\n case 'pb':\n return {\n key: 'padding',\n props: ['paddingBottom'],\n };\n case 'pl':\n return {\n key: 'padding',\n props: ['paddingLeft'],\n };\n case 'pr':\n return {\n key: 'padding',\n props: ['paddingRight'],\n };\n case 'px':\n return {\n key: 'padding',\n props: ['paddingLeft', 'paddingRight'],\n };\n case 'py':\n return {\n key: 'padding',\n props: ['paddingTop', 'paddingBottom'],\n };\n case 'm':\n return {\n key: 'margin',\n props: ['margin'],\n };\n case 'mt':\n return {\n key: 'margin',\n props: ['marginTop'],\n };\n case 'mb':\n return {\n key: 'margin',\n props: ['marginBottom'],\n };\n case 'ml':\n return {\n key: 'margin',\n props: ['marginLeft'],\n };\n case 'mr':\n return {\n key: 'margin',\n props: ['marginRight'],\n };\n case 'mx':\n return {\n key: 'margin',\n props: ['marginLeft', 'marginRight'],\n };\n case 'my':\n return {\n key: 'margin',\n props: ['marginTop', 'marginBottom'],\n };\n case 'inset':\n return {\n key: 'inset',\n props: ['top', 'left', 'right', 'bottom'],\n };\n case 'top':\n return {\n key: 'inset',\n props: ['top'],\n };\n\n case 'left':\n return {\n key: 'inset',\n props: ['left'],\n };\n case 'right':\n return {\n key: 'inset',\n props: ['right'],\n };\n case 'bottom':\n return {\n key: 'inset',\n props: ['bottom'],\n };\n case 'text':\n return {\n key: 'fontSize',\n props: ['fontSize'],\n };\n case 'gap':\n return {\n key: 'gap',\n props: ['gap'],\n };\n case 'gap-x':\n return {\n key: 'gap',\n props: ['columnGap'],\n };\n case 'gap-y':\n return {\n key: 'gap',\n props: ['rowGap'],\n };\n case 'w':\n return {\n key: 'width',\n props: ['width'],\n };\n case 'h':\n return {\n key: 'height',\n props: ['height'],\n };\n case 'size':\n return {\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'rounded':\n return {\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-t':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'translate-x':\n return {\n key: 'translate',\n props: [\n '--tw-translate-x',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n\n case 'translate-y':\n return {\n key: 'translate',\n props: [\n '--tw-translate-y',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n case 'stroke':\n return {\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'leading':\n return {\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'border':\n return {\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n case 'border-t':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n case 'border-b':\n return {\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n\n case 'border-r':\n return {\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n\n case 'border-x':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth', 'borderRightWidth'],\n };\n\n case 'border-y':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth', 'borderBottomWidth'],\n };\n\n case 'scroll-m':\n return {\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n default:\n return null;\n }\n};\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","import chalk from 'chalk';\n\nexport const log = {\n error() {\n console.log(chalk.red(...arguments));\n },\n warn() {\n console.log(chalk.yellow(...arguments));\n },\n info() {\n console.log(chalk.blue(...arguments));\n },\n log() {\n console.log(chalk.gray(...arguments));\n },\n};\n","import { log } from './log.js';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n if (/^\\d+$/.test(value) && number !== 0) {\n unit = 'px';\n }\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0) {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n values.lineHeight = parseValue(value[1].lineHeight);\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const checkValues = (start, end, value, prop = null) => {\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 375, unit: 'px' },\n _maxvw = { number: 1440, unit: 'px' }\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}vw`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n\nconst defaultOptions = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = (\n start,\n end,\n options = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n }\n) => {\n const o = { ...defaultOptions, ...options };\n\n const convert = (val) => (o.unit === 'rem' ? val / 16 : val);\n\n return clamp(\n { number: convert(start), unit: o.unit },\n { number: convert(end), unit: o.unit },\n { number: convert(o.minViewportWidth), unit: o.unit },\n { number: convert(o.maxViewportWidth), unit: o.unit }\n );\n};\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport { parseValue, parseFontSizeValue, checkValues } from './parse-value.js';\nimport { clamp, clampValue as cv } from './clamp.js';\n\nconst defaultOptions = {\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = cv;\n\nexport const tailwindClamp = plugin.withOptions(function (\n options = defaultOptions\n) {\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n const minvw = parseValue(\n config().theme.screens[args[3]] ||\n args[3] ||\n options.minViewportWidth ||\n defaultOptions.minViewportWidth\n );\n\n const maxvw = parseValue(\n config().theme.screens[args[4]] ||\n args[4] ||\n options.maxViewportWidth ||\n defaultOptions.maxViewportWidth\n );\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n const { key, props } = resolvedProp;\n\n // handle fontSize separately\n if (key === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end && checkValues(start[k], end[k], value, k)) {\n const val = clamp(start[k], end[k], minvw, maxvw);\n css[k] = val;\n }\n });\n\n return Object.keys(css).length > 0 ? css : null;\n }\n\n // handle other properties\n const startNegative = args[1].startsWith('-');\n const endNegative = args[2].startsWith('-');\n\n const startVal = startNegative ? args[1].slice(1) : args[1];\n const endVal = endNegative ? args[2].slice(1) : args[2];\n\n const start = parseValue(config().theme[key][startVal] || startVal);\n const end = parseValue(config().theme[key][endVal] || endVal);\n\n if (startNegative) start.number = start.number * -1;\n if (endNegative) end.number = end.number * -1;\n\n if (!checkValues(start, end, value)) {\n return null;\n }\n\n const val = clamp(start, end, minvw, maxvw);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') }\n );\n };\n});\n"],"names":["exports","_default","createPlugin","plugin","config","pluginFunction","configFunction","optionsFunction","options","_createPlugin","_interop_require_default","require$$0","obj","cssTransformValue","resolveProperty","name","ANSI_BACKGROUND_OFFSET","wrapAnsi16","offset","code","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","foregroundColorNames","backgroundColorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","character","integer","remainder","value","result","ansiStyles","level","brand","colorSupport","supportsColor","stringReplaceAll","string","substring","replacer","index","substringLength","endIndex","returnValue","stringEncaseCRLFWithFirstIndex","prefix","postfix","gotCR","stdoutColor","stderrColor","GENERATOR","STYLER","IS_EMPTY","levelMapping","applyOptions","object","colorLevel","chalkFactory","chalk","strings","createChalk","builder","createBuilder","createStyler","getModelAnsi","model","type","arguments_","usedModels","styler","bgModel","proto","open","close","parent","openAll","closeAll","self","_styler","_isEmpty","applyStyle","lfIndex","log","parseValue","v","number","unit","match","parseFontSizeValue","values","checkValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","isPx","negative","minvw","maxvw","slope","calc","defaultOptions","clampValue","o","convert","val","cv","tailwindClamp","matchUtilities","theme","args","resolvedProp","key","props","css","k","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0,1,2,4,5,6,7]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(function(h,k){typeof exports=="object"&&typeof module<"u"?k(exports):typeof define=="function"&&define.amd?define(["exports"],k):(h=typeof globalThis<"u"?globalThis:h||self,k(h["tailwind-clamp"]={}))})(this,function(h){"use strict";function k(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var z={},_={};(function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});function e(r,o){return{handler:r,config:o}}e.withOptions=function(r,o=()=>({})){const s=function(i){return{__options:i,handler:r(i),config:o(i)}};return s.__isOptionsFunction=!0,s.__pluginFunction=r,s.__configFunction=o,s};const n=e})(_),function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r}});const e=n(_);function n(o){return o&&o.__esModule?o:{default:o}}const r=e.default}(z);let S=z;var Z=(S.__esModule?S:{default:S}).default;const ee=k(Z),H=["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(" "),te=t=>{switch(t){case"p":return{key:"padding",props:["padding"]};case"pt":return{key:"padding",props:["paddingTop"]};case"pb":return{key:"padding",props:["paddingBottom"]};case"pl":return{key:"padding",props:["paddingLeft"]};case"pr":return{key:"padding",props:["paddingRight"]};case"px":return{key:"padding",props:["paddingLeft","paddingRight"]};case"py":return{key:"padding",props:["paddingTop","paddingBottom"]};case"m":return{key:"margin",props:["margin"]};case"mt":return{key:"margin",props:["marginTop"]};case"mb":return{key:"margin",props:["marginBottom"]};case"ml":return{key:"margin",props:["marginLeft"]};case"mr":return{key:"margin",props:["marginRight"]};case"mx":return{key:"margin",props:["marginLeft","marginRight"]};case"my":return{key:"margin",props:["marginTop","marginBottom"]};case"inset":return{key:"inset",props:["top","left","right","bottom"]};case"top":return{key:"inset",props:["top"]};case"left":return{key:"inset",props:["left"]};case"right":return{key:"inset",props:["right"]};case"bottom":return{key:"inset",props:["bottom"]};case"text":return{key:"fontSize",props:["fontSize"]};case"gap":return{key:"gap",props:["gap"]};case"gap-x":return{key:"gap",props:["columnGap"]};case"gap-y":return{key:"gap",props:["rowGap"]};case"w":return{key:"width",props:["width"]};case"h":return{key:"height",props:["height"]};case"size":return{key:"size",props:["width","height"]};case"min-w":return{key:"minWidth",props:["minWidth"]};case"min-h":return{key:"minHeight",props:["minHeight"]};case"max-w":return{key:"maxWidth",props:["maxWidth"]};case"max-h":return{key:"maxHeight",props:["maxHeight"]};case"rounded":return{key:"borderRadius",props:["borderRadius"]};case"rounded-t":return{key:"borderRadius",props:["borderTopLeftRadius","borderTopRightRadius"]};case"rounded-r":return{key:"borderRadius",props:["borderTopRightRadius","borderBottomRightRadius"]};case"rounded-b":return{key:"borderRadius",props:["borderBottomLeftRadius","borderBottomRightRadius"]};case"rounded-l":return{key:"borderRadius",props:["borderTopLeftRadius","borderBottomLeftRadius"]};case"rounded-tl":return{key:"borderRadius",props:["borderTopLeftRadius"]};case"rounded-tr":return{key:"borderRadius",props:["borderTopRightRadius"]};case"rounded-bl":return{key:"borderRadius",props:["borderBottomLeftRadius"]};case"rounded-br":return{key:"borderRadius",props:["borderBottomRightRadius"]};case"translate-x":return{key:"translate",props:["--tw-translate-x",{"@defaults transform":{}},{transform:H}]};case"translate-y":return{key:"translate",props:["--tw-translate-y",{"@defaults transform":{}},{transform:H}]};case"stroke":return{key:"strokeWidth",props:["strokeWidth"]};case"leading":return{key:"lineHeight",props:["lineHeight"]};case"border":return{key:"borderWidth",props:["borderWidth"]};case"border-t":return{key:"borderWidth",props:["borderTopWidth"]};case"border-b":return{key:"borderWidth",props:["borderBottomWidth"]};case"border-l":return{key:"borderWidth",props:["borderLeftWidth"]};case"border-r":return{key:"borderWidth",props:["borderRightWidth"]};case"border-x":return{key:"borderWidth",props:["borderLeftWidth","borderRightWidth"]};case"border-y":return{key:"borderWidth",props:["borderTopWidth","borderBottomWidth"]};case"scroll-m":return{key:"scrollMargin",props:["scrollMargin"]};default:return null}},P=10,G=(t=0)=>e=>`\x1B[${e+t}m`,I=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,Y=(t=0)=>(e,n,r)=>`\x1B[${38+t};2;${e};${n};${r}m`,a={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(a.modifier);const re=Object.keys(a.color),ne=Object.keys(a.bgColor);[...re,...ne];function oe(){const t=new Map;for(const[e,n]of Object.entries(a)){for(const[r,o]of Object.entries(n))a[r]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},n[r]=a[r],t.set(o[0],o[1]);Object.defineProperty(a,e,{value:n,enumerable:!1})}return Object.defineProperty(a,"codes",{value:t,enumerable:!1}),a.color.close="\x1B[39m",a.bgColor.close="\x1B[49m",a.color.ansi=G(),a.color.ansi256=I(),a.color.ansi16m=Y(),a.bgColor.ansi=G(P),a.bgColor.ansi256=I(P),a.bgColor.ansi16m=Y(P),Object.defineProperties(a,{rgbToAnsi256:{value(e,n,r){return e===n&&n===r?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},enumerable:!1},hexToRgb:{value(e){const n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!n)return[0,0,0];let[r]=n;r.length===3&&(r=[...r].map(s=>s+s).join(""));const o=Number.parseInt(r,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:e=>a.rgbToAnsi256(...a.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let n,r,o;if(e>=232)n=((e-232)*10+8)/255,r=n,o=n;else{e-=16;const u=e%36;n=Math.floor(e/36)/5,r=Math.floor(u/6)/5,o=u%6/5}const s=Math.max(n,r,o)*2;if(s===0)return 30;let i=30+(Math.round(o)<<2|Math.round(r)<<1|Math.round(n));return s===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,n,r)=>a.ansi256ToAnsi(a.rgbToAnsi256(e,n,r)),enumerable:!1},hexToAnsi:{value:e=>a.ansi256ToAnsi(a.hexToAnsi256(e)),enumerable:!1}}),a}const l=oe(),T=(()=>{if(navigator.userAgentData){const t=navigator.userAgentData.brands.find(({brand:e})=>e==="Chromium");if(t&&t.version>93)return 3}return/\b(Chrome|Chromium)\//.test(navigator.userAgent)?1:0})(),D=T!==0&&{level:T,hasBasic:!0,has256:T>=2,has16m:T>=3},se={stdout:D,stderr:D};function ie(t,e,n){let r=t.indexOf(e);if(r===-1)return t;const o=e.length;let s=0,i="";do i+=t.slice(s,r)+e+n,s=r+o,r=t.indexOf(e,s);while(r!==-1);return i+=t.slice(s),i}function ae(t,e,n,r){let o=0,s="";do{const i=t[r-1]==="\r";s+=t.slice(o,i?r-1:r)+e+(i?`\r
|
|
2
|
+
`:`
|
|
3
|
+
`)+n,o=r+1,r=t.indexOf(`
|
|
4
|
+
`,o)}while(r!==-1);return s+=t.slice(o),s}const{stdout:U,stderr:q}=se,C=Symbol("GENERATOR"),g=Symbol("STYLER"),w=Symbol("IS_EMPTY"),X=["ansi","ansi","ansi256","ansi16m"],y=Object.create(null),ue=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const n=U?U.level:0;t.level=e.level===void 0?n:e.level},le=t=>{const e=(...n)=>n.join(" ");return ue(e,t),Object.setPrototypeOf(e,R.prototype),e};function R(t){return le(t)}Object.setPrototypeOf(R.prototype,Function.prototype);for(const[t,e]of Object.entries(l))y[t]={get(){const n=W(this,F(e.open,e.close,this[g]),this[w]);return Object.defineProperty(this,t,{value:n}),n}};y.visible={get(){const t=W(this,this[g],!0);return Object.defineProperty(this,"visible",{value:t}),t}};const V=(t,e,n,...r)=>t==="rgb"?e==="ansi16m"?l[n].ansi16m(...r):e==="ansi256"?l[n].ansi256(l.rgbToAnsi256(...r)):l[n].ansi(l.rgbToAnsi(...r)):t==="hex"?V("rgb",e,n,...l.hexToRgb(...r)):l[n][t](...r),ce=["rgb","hex","ansi256"];for(const t of ce){y[t]={get(){const{level:n}=this;return function(...r){const o=F(V(t,X[n],"color",...r),l.color.close,this[g]);return W(this,o,this[w])}}};const e="bg"+t[0].toUpperCase()+t.slice(1);y[e]={get(){const{level:n}=this;return function(...r){const o=F(V(t,X[n],"bgColor",...r),l.bgColor.close,this[g]);return W(this,o,this[w])}}}}const de=Object.defineProperties(()=>{},{...y,level:{enumerable:!0,get(){return this[C].level},set(t){this[C].level=t}}}),F=(t,e,n)=>{let r,o;return n===void 0?(r=t,o=e):(r=n.openAll+t,o=e+n.closeAll),{open:t,close:e,openAll:r,closeAll:o,parent:n}},W=(t,e,n)=>{const r=(...o)=>pe(r,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(r,de),r[C]=t,r[g]=e,r[w]=n,r},pe=(t,e)=>{if(t.level<=0||!e)return t[w]?"":e;let n=t[g];if(n===void 0)return e;const{openAll:r,closeAll:o}=n;if(e.includes("\x1B"))for(;n!==void 0;)e=ie(e,n.close,n.open),n=n.parent;const s=e.indexOf(`
|
|
5
|
+
`);return s!==-1&&(e=ae(e,o,r,s)),r+e+o};Object.defineProperties(R.prototype,y);const $=R();R({level:q?q.level:0});const x={error(){console.log($.red(...arguments))},warn(){console.log($.yellow(...arguments))},info(){console.log($.blue(...arguments))},log(){console.log($.gray(...arguments))}},d=t=>{const e=`${t}`,n=parseFloat(e);let r="unsupported";/^\d+$/.test(e)&&n!==0&&(r="px");const o=e.match(/px|rem|em/);return o&&(r=o[0]),n===0&&(r="zero"),{number:n,unit:r}},K=t=>{const e={};return typeof t=="string"?e.fontSize=d(t):Array.isArray(t)&&(e.fontSize=d(t[0]),typeof t[1]=="string"?e.lineHeight=d(t[1]):typeof t[1]=="object"&&("lineHeight"in t[1]&&(e.lineHeight=d(t[1].lineHeight)),"letterSpacing"in t[1]&&(e.letterSpacing=d(t[1].letterSpacing)))),e},J=(t,e,n,r=null)=>t.number===e.number?(x.error(`Same value for start an end${r?` (${r})`:""}: "clamp-[${n}]".`),null):t.unit!==e.unit&&t.unit!=="zero"&&e.unit!=="zero"?(x.error(`Units need to match${r?` (${r})`:""}: "clamp-[${n}]".`),null):t.unit==="unsupported"||e.unit==="unsupported"?(x.error(`Only px, rem and em units are supported${r?` (${r})`:""}: "clamp-[${n}]".`),null):!0,L=(t,e,n={number:375,unit:"px"},r={number:1440,unit:"px"})=>{const o=t.unit==="zero"?e.unit:t.unit,s=o==="px";let i=t.number,u=e.number,b=!1,c=n.number,O=r.number;n.unit!=="px"&&s&&(c=n.number*16),n.unit==="px"&&!s&&(c=n.number/16),r.unit!=="px"&&s&&(O=r.number*16),r.unit==="px"&&!s&&(O=r.number/16),u<i&&i<0&&u<0?(i=Math.abs(i),u=Math.abs(u),b=!0):u<i&&i>0&&u>0?(i=i*-1,u=u*-1,b=!0):u<i&&(i=Math.abs(i)*-1,u=Math.abs(u),b=!0);const v=(u-i)/(O-c),A=`${(i-c*v).toFixed(6)}${o} + ${(100*v).toFixed(6)}vw`,B=`clamp(${i}${o}, ${A}, ${u}${o})`;return b?`calc(${B} * -1)`:B},he={unit:"rem",minViewportWidth:375,maxViewportWidth:1440},be=(t,e,n={unit:"rem",minViewportWidth:375,maxViewportWidth:1440})=>{const r={...he,...n},o=s=>r.unit==="rem"?s/16:s;return L({number:o(t),unit:r.unit},{number:o(e),unit:r.unit},{number:o(r.minViewportWidth),unit:r.unit},{number:o(r.maxViewportWidth),unit:r.unit})},E={minViewportWidth:375,maxViewportWidth:1440},fe=be,me=ee.withOptions(function(t=E){return function({matchUtilities:e,theme:n,config:r}){e({clamp:o=>{const s=o.split(","),i=d(r().theme.screens[s[3]]||s[3]||t.minViewportWidth||E.minViewportWidth),u=d(r().theme.screens[s[4]]||s[4]||t.maxViewportWidth||E.maxViewportWidth);if(s.length<3)return x.error(`The clamp utility requires at least 3 arguments: "clamp-[${o}]".`),null;const b=te(s[0]);if(!b)return x.error(`Property "${s[0]}" is not supported: "clamp-[${o}]".`),null;const{key:c,props:O}=b;if(c==="fontSize"){const p=K(r().theme[c][s[1]]||s[1]),f=K(r().theme[c][s[2]]||s[2]),N={};return Object.keys(p).forEach(m=>{if(m in f&&J(p[m],f[m],o,m)){const ye=L(p[m],f[m],i,u);N[m]=ye}}),Object.keys(N).length>0?N:null}const v=s[1].startsWith("-"),A=s[2].startsWith("-"),B=v?s[1].slice(1):s[1],Q=A?s[2].slice(1):s[2],M=d(r().theme[c][B]||B),j=d(r().theme[c][Q]||Q);if(v&&(M.number=M.number*-1),A&&(j.number=j.number*-1),!J(M,j,o))return null;const ge=L(M,j,i,u);return O.reduce((p,f)=>(typeof f=="string"?p[f]=ge:p={...p,...f},p),{})}},{values:n("clamp")})}});h.clampValue=fe,h.tailwindClamp=me,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|
|
6
|
+
//# sourceMappingURL=index.umd.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.cjs","sources":["../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/util/createPlugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/lib/public/create-plugin.js","../node_modules/.pnpm/tailwindcss@3.4.14/node_modules/tailwindcss/plugin.js","../lib/resolve-property.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/ansi-styles/index.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/supports-color/browser.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/utilities.js","../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/index.js","../lib/log.js","../lib/parse-value.js","../lib/clamp.js","../lib/index.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nfunction createPlugin(plugin, config) {\n return {\n handler: plugin,\n config\n };\n}\ncreatePlugin.withOptions = function(pluginFunction, configFunction = ()=>({})) {\n const optionsFunction = function(options) {\n return {\n __options: options,\n handler: pluginFunction(options),\n config: configFunction(options)\n };\n };\n optionsFunction.__isOptionsFunction = true;\n // Expose plugin dependencies so that `object-hash` returns a different\n // value if anything here changes, to ensure a rebuild is triggered.\n optionsFunction.__pluginFunction = pluginFunction;\n optionsFunction.__configFunction = configFunction;\n return optionsFunction;\n};\nconst _default = createPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function() {\n return _default;\n }\n});\nconst _createPlugin = /*#__PURE__*/ _interop_require_default(require(\"../util/createPlugin\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nconst _default = _createPlugin.default;\n","let createPlugin = require('./lib/public/create-plugin')\nmodule.exports = (createPlugin.__esModule ? createPlugin : { default: createPlugin }).default\n","const cssTransformValue = [\n 'translate(var(--tw-translate-x), var(--tw-translate-y))',\n 'rotate(var(--tw-rotate))',\n 'skewX(var(--tw-skew-x))',\n 'skewY(var(--tw-skew-y))',\n 'scaleX(var(--tw-scale-x))',\n 'scaleY(var(--tw-scale-y))',\n].join(' ');\n\nexport const resolveProperty = (name) => {\n switch (name) {\n case 'p':\n return {\n key: 'padding',\n props: ['padding'],\n };\n case 'pt':\n return {\n key: 'padding',\n props: ['paddingTop'],\n };\n case 'pb':\n return {\n key: 'padding',\n props: ['paddingBottom'],\n };\n case 'pl':\n return {\n key: 'padding',\n props: ['paddingLeft'],\n };\n case 'pr':\n return {\n key: 'padding',\n props: ['paddingRight'],\n };\n case 'px':\n return {\n key: 'padding',\n props: ['paddingLeft', 'paddingRight'],\n };\n case 'py':\n return {\n key: 'padding',\n props: ['paddingTop', 'paddingBottom'],\n };\n case 'm':\n return {\n key: 'margin',\n props: ['margin'],\n };\n case 'mt':\n return {\n key: 'margin',\n props: ['marginTop'],\n };\n case 'mb':\n return {\n key: 'margin',\n props: ['marginBottom'],\n };\n case 'ml':\n return {\n key: 'margin',\n props: ['marginLeft'],\n };\n case 'mr':\n return {\n key: 'margin',\n props: ['marginRight'],\n };\n case 'mx':\n return {\n key: 'margin',\n props: ['marginLeft', 'marginRight'],\n };\n case 'my':\n return {\n key: 'margin',\n props: ['marginTop', 'marginBottom'],\n };\n case 'inset':\n return {\n key: 'inset',\n props: ['top', 'left', 'right', 'bottom'],\n };\n case 'top':\n return {\n key: 'inset',\n props: ['top'],\n };\n\n case 'left':\n return {\n key: 'inset',\n props: ['left'],\n };\n case 'right':\n return {\n key: 'inset',\n props: ['right'],\n };\n case 'bottom':\n return {\n key: 'inset',\n props: ['bottom'],\n };\n case 'text':\n return {\n key: 'fontSize',\n props: ['fontSize'],\n };\n case 'gap':\n return {\n key: 'gap',\n props: ['gap'],\n };\n case 'gap-x':\n return {\n key: 'gap',\n props: ['columnGap'],\n };\n case 'gap-y':\n return {\n key: 'gap',\n props: ['rowGap'],\n };\n case 'w':\n return {\n key: 'width',\n props: ['width'],\n };\n case 'h':\n return {\n key: 'height',\n props: ['height'],\n };\n case 'size':\n return {\n key: 'size',\n props: ['width', 'height'],\n };\n\n case 'min-w':\n return {\n key: 'minWidth',\n props: ['minWidth'],\n };\n\n case 'min-h':\n return {\n key: 'minHeight',\n props: ['minHeight'],\n };\n\n case 'max-w':\n return {\n key: 'maxWidth',\n props: ['maxWidth'],\n };\n\n case 'max-h':\n return {\n key: 'maxHeight',\n props: ['maxHeight'],\n };\n\n case 'rounded':\n return {\n key: 'borderRadius',\n props: ['borderRadius'],\n };\n\n case 'rounded-t':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderTopRightRadius'],\n };\n\n case 'rounded-r':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-b':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius', 'borderBottomRightRadius'],\n };\n\n case 'rounded-l':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius', 'borderBottomLeftRadius'],\n };\n\n case 'rounded-tl':\n return {\n key: 'borderRadius',\n props: ['borderTopLeftRadius'],\n };\n\n case 'rounded-tr':\n return {\n key: 'borderRadius',\n props: ['borderTopRightRadius'],\n };\n\n case 'rounded-bl':\n return {\n key: 'borderRadius',\n props: ['borderBottomLeftRadius'],\n };\n\n case 'rounded-br':\n return {\n key: 'borderRadius',\n props: ['borderBottomRightRadius'],\n };\n\n case 'translate-x':\n return {\n key: 'translate',\n props: [\n '--tw-translate-x',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n\n case 'translate-y':\n return {\n key: 'translate',\n props: [\n '--tw-translate-y',\n { '@defaults transform': {} },\n { transform: cssTransformValue },\n ],\n };\n case 'stroke':\n return {\n key: 'strokeWidth',\n props: ['strokeWidth'],\n };\n\n case 'leading':\n return {\n key: 'lineHeight',\n props: ['lineHeight'],\n };\n\n case 'border':\n return {\n key: 'borderWidth',\n props: ['borderWidth'],\n };\n case 'border-t':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth'],\n };\n case 'border-b':\n return {\n key: 'borderWidth',\n props: ['borderBottomWidth'],\n };\n\n case 'border-l':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth'],\n };\n\n case 'border-r':\n return {\n key: 'borderWidth',\n props: ['borderRightWidth'],\n };\n\n case 'border-x':\n return {\n key: 'borderWidth',\n props: ['borderLeftWidth', 'borderRightWidth'],\n };\n\n case 'border-y':\n return {\n key: 'borderWidth',\n props: ['borderTopWidth', 'borderBottomWidth'],\n };\n\n case 'scroll-m':\n return {\n key: 'scrollMargin',\n props: ['scrollMargin'],\n };\n\n default:\n return null;\n }\n};\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","/* eslint-env browser */\n\nconst level = (() => {\n\tif (navigator.userAgentData) {\n\t\tconst brand = navigator.userAgentData.brands.find(({brand}) => brand === 'Chromium');\n\t\tif (brand && brand.version > 93) {\n\t\t\treturn 3;\n\t\t}\n\t}\n\n\tif (/\\b(Chrome|Chromium)\\//.test(navigator.userAgent)) {\n\t\treturn 1;\n\t}\n\n\treturn 0;\n})();\n\nconst colorSupport = level !== 0 && {\n\tlevel,\n\thasBasic: true,\n\thas256: level >= 2,\n\thas16m: level >= 3,\n};\n\nconst supportsColor = {\n\tstdout: colorSupport,\n\tstderr: colorSupport,\n};\n\nexport default supportsColor;\n","// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n","import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n","import chalk from 'chalk';\n\nexport const log = {\n error() {\n console.log(chalk.red(...arguments));\n },\n warn() {\n console.log(chalk.yellow(...arguments));\n },\n info() {\n console.log(chalk.blue(...arguments));\n },\n log() {\n console.log(chalk.gray(...arguments));\n },\n};\n","import { log } from './log.js';\n\nexport const parseValue = (v) => {\n const value = `${v}`;\n const number = parseFloat(value);\n let unit = 'unsupported';\n\n if (/^\\d+$/.test(value) && number !== 0) {\n unit = 'px';\n }\n\n const match = value.match(/px|rem|em/);\n if (match) {\n unit = match[0];\n }\n\n if (number === 0) {\n unit = 'zero';\n }\n\n return { number, unit };\n};\n\nexport const parseFontSizeValue = (value) => {\n const values = {};\n if (typeof value === 'string') {\n values.fontSize = parseValue(value);\n } else if (Array.isArray(value)) {\n values.fontSize = parseValue(value[0]);\n if (typeof value[1] === 'string') {\n values.lineHeight = parseValue(value[1]);\n } else if (typeof value[1] === 'object') {\n if ('lineHeight' in value[1]) {\n values.lineHeight = parseValue(value[1].lineHeight);\n }\n if ('letterSpacing' in value[1]) {\n values.letterSpacing = parseValue(value[1].letterSpacing);\n }\n }\n }\n return values;\n};\n\nexport const checkValues = (start, end, value, prop = null) => {\n if (start.number === end.number) {\n log.error(\n `Same value for start an end${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {\n log.error(\n `Units need to match${prop ? ` (${prop})` : ''}: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n if (start.unit === 'unsupported' || end.unit === 'unsupported') {\n log.error(\n `Only px, rem and em units are supported${\n prop ? ` (${prop})` : ''\n }: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n return true;\n};\n","// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/\n\nexport const clamp = (\n _start,\n _end,\n _minvw = { number: 375, unit: 'px' },\n _maxvw = { number: 1440, unit: 'px' }\n) => {\n const unit = _start.unit === 'zero' ? _end.unit : _start.unit;\n const isPx = unit === 'px';\n\n let start = _start.number;\n let end = _end.number;\n let negative = false;\n\n let minvw = _minvw.number;\n let maxvw = _maxvw.number;\n\n if (_minvw.unit !== 'px' && isPx) {\n minvw = _minvw.number * 16;\n }\n\n if (_minvw.unit === 'px' && !isPx) {\n minvw = _minvw.number / 16;\n }\n\n if (_maxvw.unit !== 'px' && isPx) {\n maxvw = _maxvw.number * 16;\n }\n\n if (_maxvw.unit === 'px' && !isPx) {\n maxvw = _maxvw.number / 16;\n }\n\n if (end < start && start < 0 && end < 0) {\n start = Math.abs(start);\n end = Math.abs(end);\n negative = true;\n } else if (end < start && start > 0 && end > 0) {\n start = start * -1;\n end = end * -1;\n negative = true;\n } else if (end < start) {\n start = Math.abs(start) * -1;\n end = Math.abs(end);\n negative = true;\n }\n\n const slope = (end - start) / (maxvw - minvw);\n const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(\n 100 * slope\n ).toFixed(6)}vw`;\n\n const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;\n\n return negative ? `calc(${value} * -1)` : value;\n};\n\nconst defaultOptions = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = (\n start,\n end,\n options = {\n unit: 'rem',\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n }\n) => {\n const o = { ...defaultOptions, ...options };\n\n const convert = (val) => (o.unit === 'rem' ? val / 16 : val);\n\n return clamp(\n { number: convert(start), unit: o.unit },\n { number: convert(end), unit: o.unit },\n { number: convert(o.minViewportWidth), unit: o.unit },\n { number: convert(o.maxViewportWidth), unit: o.unit }\n );\n};\n","import plugin from 'tailwindcss/plugin';\nimport { resolveProperty } from './resolve-property.js';\nimport { log } from './log.js';\nimport { parseValue, parseFontSizeValue, checkValues } from './parse-value.js';\nimport { clamp, clampValue as cv } from './clamp.js';\n\nconst defaultOptions = {\n minViewportWidth: 375,\n maxViewportWidth: 1440,\n};\n\nexport const clampValue = cv;\n\nexport const tailwindClamp = plugin.withOptions(function (\n options = defaultOptions\n) {\n return function ({ matchUtilities, theme, config }) {\n matchUtilities(\n {\n clamp: (value) => {\n const args = value.split(',');\n\n const minvw = parseValue(\n config().theme.screens[args[3]] ||\n args[3] ||\n options.minViewportWidth ||\n defaultOptions.minViewportWidth\n );\n\n const maxvw = parseValue(\n config().theme.screens[args[4]] ||\n args[4] ||\n options.maxViewportWidth ||\n defaultOptions.maxViewportWidth\n );\n\n if (args.length < 3) {\n log.error(\n `The clamp utility requires at least 3 arguments: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n const resolvedProp = resolveProperty(args[0]);\n\n if (!resolvedProp) {\n log.error(\n `Property \"${args[0]}\" is not supported: \"clamp-[${value}]\".`\n );\n return null;\n }\n\n const { key, props } = resolvedProp;\n\n // handle fontSize separately\n if (key === 'fontSize') {\n const start = parseFontSizeValue(\n config().theme[key][args[1]] || args[1]\n );\n const end = parseFontSizeValue(\n config().theme[key][args[2]] || args[2]\n );\n\n const css = {};\n\n Object.keys(start).forEach((k) => {\n if (k in end && checkValues(start[k], end[k], value, k)) {\n const val = clamp(start[k], end[k], minvw, maxvw);\n css[k] = val;\n }\n });\n\n return Object.keys(css).length > 0 ? css : null;\n }\n\n // handle other properties\n const startNegative = args[1].startsWith('-');\n const endNegative = args[2].startsWith('-');\n\n const startVal = startNegative ? args[1].slice(1) : args[1];\n const endVal = endNegative ? args[2].slice(1) : args[2];\n\n const start = parseValue(config().theme[key][startVal] || startVal);\n const end = parseValue(config().theme[key][endVal] || endVal);\n\n if (startNegative) start.number = start.number * -1;\n if (endNegative) end.number = end.number * -1;\n\n if (!checkValues(start, end, value)) {\n return null;\n }\n\n const val = clamp(start, end, minvw, maxvw);\n\n const css = props.reduce((acc, prop) => {\n if (typeof prop === 'string') {\n acc[prop] = val;\n } else {\n acc = { ...acc, ...prop };\n }\n return acc;\n }, {});\n\n return css;\n },\n },\n { values: theme('clamp') }\n );\n };\n});\n"],"names":["exports","_default","createPlugin","plugin","config","pluginFunction","configFunction","optionsFunction","options","_createPlugin","_interop_require_default","require$$0","obj","cssTransformValue","resolveProperty","name","ANSI_BACKGROUND_OFFSET","wrapAnsi16","offset","code","wrapAnsi256","wrapAnsi16m","red","green","blue","styles","foregroundColorNames","backgroundColorNames","assembleStyles","codes","groupName","group","styleName","style","hex","matches","colorString","character","integer","remainder","value","result","ansiStyles","level","brand","colorSupport","supportsColor","stringReplaceAll","string","substring","replacer","index","substringLength","endIndex","returnValue","stringEncaseCRLFWithFirstIndex","prefix","postfix","gotCR","stdoutColor","stderrColor","GENERATOR","STYLER","IS_EMPTY","levelMapping","applyOptions","object","colorLevel","chalkFactory","chalk","strings","createChalk","builder","createBuilder","createStyler","getModelAnsi","model","type","arguments_","usedModels","styler","bgModel","proto","open","close","parent","openAll","closeAll","self","_styler","_isEmpty","applyStyle","lfIndex","log","parseValue","v","number","unit","match","parseFontSizeValue","values","checkValues","start","end","prop","clamp","_start","_end","_minvw","_maxvw","isPx","negative","minvw","maxvw","slope","calc","defaultOptions","clampValue","o","convert","val","cv","tailwindClamp","matchUtilities","theme","args","resolvedProp","key","props","css","k","startNegative","endNegative","startVal","endVal","acc"],"mappings":"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","x_google_ignoreList":[0,1,2,4,5,6,7]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tailwind-clamp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Tailwind CSS plugin to use CSS clamp in your projects",
|
|
5
|
-
"main": "
|
|
5
|
+
"main": "dist/index.umd.cjs",
|
|
6
|
+
"module": "dist/index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"require": "./dist/index.umd.cjs"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"/dist"
|
|
15
|
+
],
|
|
6
16
|
"type": "module",
|
|
7
17
|
"scripts": {
|
|
8
|
-
"dev": "
|
|
9
|
-
"build": "
|
|
10
|
-
"
|
|
11
|
-
"lint": "next lint demo"
|
|
18
|
+
"dev": "vite",
|
|
19
|
+
"build": "vite build",
|
|
20
|
+
"preview": "vite preview"
|
|
12
21
|
},
|
|
13
22
|
"repository": {
|
|
14
23
|
"type": "git",
|
|
@@ -27,13 +36,11 @@
|
|
|
27
36
|
"homepage": "https://github.com/nicolas-cusan/tailwind-clamp#readme",
|
|
28
37
|
"dependencies": {
|
|
29
38
|
"chalk": "^5.3.0",
|
|
30
|
-
"tailwindcss": "^3.4.
|
|
39
|
+
"tailwindcss": "^3.4.14"
|
|
31
40
|
},
|
|
32
41
|
"devDependencies": {
|
|
33
|
-
"autoprefixer": "^10.4.
|
|
34
|
-
"postcss": "^8",
|
|
35
|
-
"
|
|
36
|
-
"react": "^18",
|
|
37
|
-
"react-dom": "^18"
|
|
42
|
+
"autoprefixer": "^10.4.20",
|
|
43
|
+
"postcss": "^8.4.47",
|
|
44
|
+
"vite": "^5.4.10"
|
|
38
45
|
}
|
|
39
46
|
}
|
package/src/clamp.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
// https://chriskirknielsen.com/blog/modern-fluid-typography-with-clamp/
|
|
2
|
-
|
|
3
|
-
export const clamp = (
|
|
4
|
-
_start,
|
|
5
|
-
_end,
|
|
6
|
-
_minvw = { number: 375, unit: 'px' },
|
|
7
|
-
_maxvw = { number: 1440, unit: 'px' }
|
|
8
|
-
) => {
|
|
9
|
-
const unit = _start.unit === 'zero' ? _end.unit : _start.unit;
|
|
10
|
-
const isPx = unit === 'px';
|
|
11
|
-
|
|
12
|
-
let start = _start.number;
|
|
13
|
-
let end = _end.number;
|
|
14
|
-
let negative = false;
|
|
15
|
-
|
|
16
|
-
let minvw = _minvw.number;
|
|
17
|
-
let maxvw = _maxvw.number;
|
|
18
|
-
|
|
19
|
-
if (_minvw.unit !== 'px' && isPx) {
|
|
20
|
-
minvw = _minvw.number * 16;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (_minvw.unit === 'px' && !isPx) {
|
|
24
|
-
minvw = _minvw.number / 16;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (_maxvw.unit !== 'px' && isPx) {
|
|
28
|
-
maxvw = _maxvw.number * 16;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (_maxvw.unit === 'px' && !isPx) {
|
|
32
|
-
maxvw = _maxvw.number / 16;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (end < start && start < 0 && end < 0) {
|
|
36
|
-
start = Math.abs(start);
|
|
37
|
-
end = Math.abs(end);
|
|
38
|
-
negative = true;
|
|
39
|
-
} else if (end < start && start > 0 && end > 0) {
|
|
40
|
-
start = start * -1;
|
|
41
|
-
end = end * -1;
|
|
42
|
-
negative = true;
|
|
43
|
-
} else if (end < start) {
|
|
44
|
-
start = Math.abs(start) * -1;
|
|
45
|
-
end = Math.abs(end);
|
|
46
|
-
negative = true;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const slope = (end - start) / (maxvw - minvw);
|
|
50
|
-
const calc = `${(start - minvw * slope).toFixed(6)}${unit} + ${(
|
|
51
|
-
100 * slope
|
|
52
|
-
).toFixed(6)}vw`;
|
|
53
|
-
|
|
54
|
-
const value = `clamp(${start}${unit}, ${calc}, ${end}${unit})`;
|
|
55
|
-
|
|
56
|
-
return negative ? `calc(${value} * -1)` : value;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const defaultOptions = {
|
|
60
|
-
unit: 'rem',
|
|
61
|
-
minViewportWidth: 375,
|
|
62
|
-
maxViewportWidth: 1440,
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
export const clampValue = (
|
|
66
|
-
start,
|
|
67
|
-
end,
|
|
68
|
-
options = {
|
|
69
|
-
unit: 'rem',
|
|
70
|
-
minViewportWidth: 375,
|
|
71
|
-
maxViewportWidth: 1440,
|
|
72
|
-
}
|
|
73
|
-
) => {
|
|
74
|
-
const o = { ...defaultOptions, ...options };
|
|
75
|
-
|
|
76
|
-
const convert = (val) => (o.unit === 'rem' ? val / 16 : val);
|
|
77
|
-
|
|
78
|
-
return clamp(
|
|
79
|
-
{ number: convert(start), unit: o.unit },
|
|
80
|
-
{ number: convert(end), unit: o.unit },
|
|
81
|
-
{ number: convert(o.minViewportWidth), unit: o.unit },
|
|
82
|
-
{ number: convert(o.maxViewportWidth), unit: o.unit }
|
|
83
|
-
);
|
|
84
|
-
};
|
package/src/index.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import plugin from 'tailwindcss/plugin';
|
|
2
|
-
import { resolveProperty } from './resolve-property.js';
|
|
3
|
-
import { log } from './log.js';
|
|
4
|
-
import { parseValue, parseFontSizeValue, checkValues } from './parse-value.js';
|
|
5
|
-
import { clamp, clampValue as cv } from './clamp.js';
|
|
6
|
-
|
|
7
|
-
const defaultOptions = {
|
|
8
|
-
minViewportWidth: 375,
|
|
9
|
-
maxViewportWidth: 1440,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export const clampValue = cv;
|
|
13
|
-
|
|
14
|
-
export default plugin.withOptions(function (options = defaultOptions) {
|
|
15
|
-
return function ({ matchUtilities, theme, config }) {
|
|
16
|
-
matchUtilities(
|
|
17
|
-
{
|
|
18
|
-
clamp: (value) => {
|
|
19
|
-
const args = value.split(',');
|
|
20
|
-
|
|
21
|
-
const minvw = parseValue(
|
|
22
|
-
config().theme.screens[args[3]] ||
|
|
23
|
-
args[3] ||
|
|
24
|
-
options.minViewportWidth ||
|
|
25
|
-
defaultOptions.minViewportWidth
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
const maxvw = parseValue(
|
|
29
|
-
config().theme.screens[args[4]] ||
|
|
30
|
-
args[4] ||
|
|
31
|
-
options.maxViewportWidth ||
|
|
32
|
-
defaultOptions.maxViewportWidth
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
if (args.length < 3) {
|
|
36
|
-
log.error(
|
|
37
|
-
`The clamp utility requires at least 3 arguments: "clamp-[${value}]".`
|
|
38
|
-
);
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const resolvedProp = resolveProperty(args[0]);
|
|
43
|
-
|
|
44
|
-
if (!resolvedProp) {
|
|
45
|
-
log.error(
|
|
46
|
-
`Property "${args[0]}" is not supported: "clamp-[${value}]".`
|
|
47
|
-
);
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const { key, props } = resolvedProp;
|
|
52
|
-
|
|
53
|
-
// handle fontSize separately
|
|
54
|
-
if (key === 'fontSize') {
|
|
55
|
-
const start = parseFontSizeValue(
|
|
56
|
-
config().theme[key][args[1]] || args[1]
|
|
57
|
-
);
|
|
58
|
-
const end = parseFontSizeValue(
|
|
59
|
-
config().theme[key][args[2]] || args[2]
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
const css = {};
|
|
63
|
-
|
|
64
|
-
Object.keys(start).forEach((k) => {
|
|
65
|
-
if (k in end && checkValues(start[k], end[k], value, k)) {
|
|
66
|
-
const val = clamp(start[k], end[k], minvw, maxvw);
|
|
67
|
-
css[k] = val;
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
return Object.keys(css).length > 0 ? css : null;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// handle other properties
|
|
75
|
-
const startNegative = args[1].startsWith('-');
|
|
76
|
-
const endNegative = args[2].startsWith('-');
|
|
77
|
-
|
|
78
|
-
const startVal = startNegative ? args[1].slice(1) : args[1];
|
|
79
|
-
const endVal = endNegative ? args[2].slice(1) : args[2];
|
|
80
|
-
|
|
81
|
-
const start = parseValue(config().theme[key][startVal] || startVal);
|
|
82
|
-
const end = parseValue(config().theme[key][endVal] || endVal);
|
|
83
|
-
|
|
84
|
-
if (startNegative) start.number = start.number * -1;
|
|
85
|
-
if (endNegative) end.number = end.number * -1;
|
|
86
|
-
|
|
87
|
-
if (!checkValues(start, end, value)) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const val = clamp(start, end, minvw, maxvw);
|
|
92
|
-
|
|
93
|
-
const css = props.reduce((acc, prop) => {
|
|
94
|
-
if (typeof prop === 'string') {
|
|
95
|
-
acc[prop] = val;
|
|
96
|
-
} else {
|
|
97
|
-
acc = { ...acc, ...prop };
|
|
98
|
-
}
|
|
99
|
-
return acc;
|
|
100
|
-
}, {});
|
|
101
|
-
|
|
102
|
-
return css;
|
|
103
|
-
},
|
|
104
|
-
},
|
|
105
|
-
{ values: theme('clamp') }
|
|
106
|
-
);
|
|
107
|
-
};
|
|
108
|
-
});
|
package/src/log.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
|
|
3
|
-
export const log = {
|
|
4
|
-
error() {
|
|
5
|
-
console.log(chalk.red(...arguments));
|
|
6
|
-
},
|
|
7
|
-
warn() {
|
|
8
|
-
console.log(chalk.yellow(...arguments));
|
|
9
|
-
},
|
|
10
|
-
info() {
|
|
11
|
-
console.log(chalk.blue(...arguments));
|
|
12
|
-
},
|
|
13
|
-
log() {
|
|
14
|
-
console.log(chalk.gray(...arguments));
|
|
15
|
-
},
|
|
16
|
-
};
|
package/src/parse-value.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { log } from './log.js';
|
|
2
|
-
|
|
3
|
-
export const parseValue = (v) => {
|
|
4
|
-
const value = `${v}`;
|
|
5
|
-
const number = parseFloat(value);
|
|
6
|
-
let unit = 'unsupported';
|
|
7
|
-
|
|
8
|
-
if (/^\d+$/.test(value) && number !== 0) {
|
|
9
|
-
unit = 'px';
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const match = value.match(/px|rem|em/);
|
|
13
|
-
if (match) {
|
|
14
|
-
unit = match[0];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
if (number === 0) {
|
|
18
|
-
unit = 'zero';
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return { number, unit };
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const parseFontSizeValue = (value) => {
|
|
25
|
-
const values = {};
|
|
26
|
-
if (typeof value === 'string') {
|
|
27
|
-
values.fontSize = parseValue(value);
|
|
28
|
-
} else if (Array.isArray(value)) {
|
|
29
|
-
values.fontSize = parseValue(value[0]);
|
|
30
|
-
if (typeof value[1] === 'string') {
|
|
31
|
-
values.lineHeight = parseValue(value[1]);
|
|
32
|
-
} else if (typeof value[1] === 'object') {
|
|
33
|
-
if ('lineHeight' in value[1]) {
|
|
34
|
-
values.lineHeight = parseValue(value[1].lineHeight);
|
|
35
|
-
}
|
|
36
|
-
if ('letterSpacing' in value[1]) {
|
|
37
|
-
values.letterSpacing = parseValue(value[1].letterSpacing);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
return values;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
export const checkValues = (start, end, value, prop = null) => {
|
|
45
|
-
if (start.number === end.number) {
|
|
46
|
-
log.error(
|
|
47
|
-
`Same value for start an end${
|
|
48
|
-
prop ? ` (${prop})` : ''
|
|
49
|
-
}: "clamp-[${value}]".`
|
|
50
|
-
);
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (start.unit !== end.unit && start.unit !== 'zero' && end.unit !== 'zero') {
|
|
55
|
-
log.error(
|
|
56
|
-
`Units need to match${prop ? ` (${prop})` : ''}: "clamp-[${value}]".`
|
|
57
|
-
);
|
|
58
|
-
return null;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (start.unit === 'unsupported' || end.unit === 'unsupported') {
|
|
62
|
-
log.error(
|
|
63
|
-
`Only px, rem and em units are supported${
|
|
64
|
-
prop ? ` (${prop})` : ''
|
|
65
|
-
}: "clamp-[${value}]".`
|
|
66
|
-
);
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return true;
|
|
71
|
-
};
|