@tamagui/normalize-css-color 1.1.11 → 1.1.13

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/dist/cjs/index.js CHANGED
@@ -19,13 +19,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var src_exports = {};
20
20
  __export(src_exports, {
21
21
  default: () => src_default,
22
+ names: () => import_names2.names,
22
23
  normalizeCSSColor: () => normalizeCSSColor,
23
24
  rgba: () => rgba
24
25
  });
25
26
  module.exports = __toCommonJS(src_exports);
26
27
  var import_names = require("./names");
28
+ var import_names2 = require("./names");
27
29
  function normalizeCSSColor(color) {
28
30
  let match = null;
31
+ if (color in import_names.names) {
32
+ return import_names.names[color];
33
+ }
29
34
  if (typeof color === "number") {
30
35
  if (color >>> 0 === color && color >= 0 && color <= 4294967295) {
31
36
  return color;
@@ -35,9 +40,6 @@ function normalizeCSSColor(color) {
35
40
  if (match = matchers.hex6.exec(color)) {
36
41
  return parseInt(match[1] + "ff", 16) >>> 0;
37
42
  }
38
- if (color in import_names.names) {
39
- return import_names.names[color];
40
- }
41
43
  if (match = matchers.rgb.exec(color)) {
42
44
  return (parse255(match[1]) << 24 | // r
43
45
  parse255(match[2]) << 16 | // g
@@ -189,6 +191,7 @@ function rgba(colorInt) {
189
191
  var src_default = normalizeCSSColor;
190
192
  // Annotate the CommonJS export names for ESM import in node:
191
193
  0 && (module.exports = {
194
+ names,
192
195
  normalizeCSSColor,
193
196
  rgba
194
197
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nimport { names } from './names'\n\nexport function normalizeCSSColor(color: string): number | null {\n let match: RegExpExecArray | null = null\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color\n }\n return null\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0\n }\n\n if (color in names) {\n return names[color]\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n )\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n )\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n return null\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1\n }\n if (t > 1) {\n t -= 1\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t\n }\n if (t < 1 / 2) {\n return q\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6\n }\n return p\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s\n var p = 2 * l - q\n var r = hue2rgb(p, q, h + 1 / 3)\n var g = hue2rgb(p, q, h)\n var b = hue2rgb(p, q, h - 1 / 3)\n\n return (\n (Math.round(r * 255) << 24) | (Math.round(g * 255) << 16) | (Math.round(b * 255) << 8)\n )\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+'\nvar PERCENTAGE = NUMBER + '%'\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)'\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n}\n\nfunction parse255(str) {\n var int = parseInt(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 255) {\n return 255\n }\n return int\n}\n\nfunction parse360(str) {\n var int = parseFloat(str)\n return (((int % 360) + 360) % 360) / 360\n}\n\nfunction parse1(str) {\n var num = parseFloat(str)\n if (num < 0) {\n return 0\n }\n if (num > 1) {\n return 255\n }\n return Math.round(num * 255)\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n // @ts-ignore\n const int = parseFloat(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 100) {\n return 1\n }\n return int / 100\n}\n\nexport function rgba(colorInt: number) {\n var r = Math.round((colorInt & 0xff000000) >>> 24)\n var g = Math.round((colorInt & 0x00ff0000) >>> 16)\n var b = Math.round((colorInt & 0x0000ff00) >>> 8)\n var a = ((colorInt & 0x000000ff) >>> 0) / 255\n return {\n r,\n g,\n b,\n a,\n }\n}\n\nexport default normalizeCSSColor\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nimport { names } from './names'\nexport { names } from './names'\n\nexport function normalizeCSSColor(color: string): number | null {\n let match: RegExpExecArray | null = null\n\n if (color in names) {\n return names[color]\n }\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color\n }\n return null\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n )\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n )\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n return null\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1\n }\n if (t > 1) {\n t -= 1\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t\n }\n if (t < 1 / 2) {\n return q\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6\n }\n return p\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s\n var p = 2 * l - q\n var r = hue2rgb(p, q, h + 1 / 3)\n var g = hue2rgb(p, q, h)\n var b = hue2rgb(p, q, h - 1 / 3)\n\n return (\n (Math.round(r * 255) << 24) | (Math.round(g * 255) << 16) | (Math.round(b * 255) << 8)\n )\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+'\nvar PERCENTAGE = NUMBER + '%'\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)'\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n}\n\nfunction parse255(str) {\n var int = parseInt(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 255) {\n return 255\n }\n return int\n}\n\nfunction parse360(str) {\n var int = parseFloat(str)\n return (((int % 360) + 360) % 360) / 360\n}\n\nfunction parse1(str) {\n var num = parseFloat(str)\n if (num < 0) {\n return 0\n }\n if (num > 1) {\n return 255\n }\n return Math.round(num * 255)\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n // @ts-ignore\n const int = parseFloat(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 100) {\n return 1\n }\n return int / 100\n}\n\nexport function rgba(colorInt: number) {\n var r = Math.round((colorInt & 0xff000000) >>> 24)\n var g = Math.round((colorInt & 0x00ff0000) >>> 16)\n var b = Math.round((colorInt & 0x0000ff00) >>> 8)\n var a = ((colorInt & 0x000000ff) >>> 0) / 255\n return {\n r,\n g,\n b,\n a,\n }\n}\n\nexport default normalizeCSSColor\n"],
5
+ "mappings": "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",
6
+ "names": ["import_names"]
7
7
  }
package/dist/cjs/names.js CHANGED
@@ -22,9 +22,12 @@ __export(names_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(names_exports);
24
24
  const names = {
25
- transparent: 0
25
+ // keep the basics
26
+ transparent: 0,
27
+ white: 4294967295,
28
+ black: 255
26
29
  };
27
- if (process.env.INCLUDE_CSS_COLOR_NAMES) {
30
+ if (process.env.INCLUDE_CSS_COLOR_NAMES || process.env.TAMAGUI_TARGET === "native") {
28
31
  const allNames = require("./names.native").names;
29
32
  Object.assign(names, allNames);
30
33
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/names.ts"],
4
- "sourcesContent": ["export const names = {\n transparent: 0x00000000,\n}\n\nif (process.env.INCLUDE_CSS_COLOR_NAMES) {\n const allNames = require('./names.native').names\n Object.assign(names, allNames)\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,QAAQ;AAAA,EACnB,aAAa;AACf;AAEA,IAAI,QAAQ,IAAI,yBAAyB;AACvC,QAAM,WAAW,QAAQ,gBAAgB,EAAE;AAC3C,SAAO,OAAO,OAAO,QAAQ;AAC/B;",
4
+ "sourcesContent": ["export const names = {\n // keep the basics\n transparent: 0x00000000,\n white: 0xffffffff,\n black: 0x000000ff,\n}\n\nif (\n process.env.INCLUDE_CSS_COLOR_NAMES ||\n process.env.TAMAGUI_TARGET === 'native'\n) {\n const allNames = require('./names.native').names\n Object.assign(names, allNames)\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,QAAQ;AAAA;AAAA,EAEnB,aAAa;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AACT;AAEA,IACE,QAAQ,IAAI,2BACZ,QAAQ,IAAI,mBAAmB,UAC/B;AACA,QAAM,WAAW,QAAQ,gBAAgB,EAAE;AAC3C,SAAO,OAAO,OAAO,QAAQ;AAC/B;",
6
6
  "names": []
7
7
  }
package/dist/esm/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import { names } from "./names";
2
+ import { names as names2 } from "./names";
2
3
  function normalizeCSSColor(color) {
3
4
  let match = null;
5
+ if (color in names) {
6
+ return names[color];
7
+ }
4
8
  if (typeof color === "number") {
5
9
  if (color >>> 0 === color && color >= 0 && color <= 4294967295) {
6
10
  return color;
@@ -10,9 +14,6 @@ function normalizeCSSColor(color) {
10
14
  if (match = matchers.hex6.exec(color)) {
11
15
  return parseInt(match[1] + "ff", 16) >>> 0;
12
16
  }
13
- if (color in names) {
14
- return names[color];
15
- }
16
17
  if (match = matchers.rgb.exec(color)) {
17
18
  return (parse255(match[1]) << 24 | // r
18
19
  parse255(match[2]) << 16 | // g
@@ -164,6 +165,7 @@ function rgba(colorInt) {
164
165
  var src_default = normalizeCSSColor;
165
166
  export {
166
167
  src_default as default,
168
+ names2 as names,
167
169
  normalizeCSSColor,
168
170
  rgba
169
171
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nimport { names } from './names'\n\nexport function normalizeCSSColor(color: string): number | null {\n let match: RegExpExecArray | null = null\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color\n }\n return null\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0\n }\n\n if (color in names) {\n return names[color]\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n )\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n )\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n return null\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1\n }\n if (t > 1) {\n t -= 1\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t\n }\n if (t < 1 / 2) {\n return q\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6\n }\n return p\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s\n var p = 2 * l - q\n var r = hue2rgb(p, q, h + 1 / 3)\n var g = hue2rgb(p, q, h)\n var b = hue2rgb(p, q, h - 1 / 3)\n\n return (\n (Math.round(r * 255) << 24) | (Math.round(g * 255) << 16) | (Math.round(b * 255) << 8)\n )\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+'\nvar PERCENTAGE = NUMBER + '%'\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)'\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n}\n\nfunction parse255(str) {\n var int = parseInt(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 255) {\n return 255\n }\n return int\n}\n\nfunction parse360(str) {\n var int = parseFloat(str)\n return (((int % 360) + 360) % 360) / 360\n}\n\nfunction parse1(str) {\n var num = parseFloat(str)\n if (num < 0) {\n return 0\n }\n if (num > 1) {\n return 255\n }\n return Math.round(num * 255)\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n // @ts-ignore\n const int = parseFloat(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 100) {\n return 1\n }\n return int / 100\n}\n\nexport function rgba(colorInt: number) {\n var r = Math.round((colorInt & 0xff000000) >>> 24)\n var g = Math.round((colorInt & 0x00ff0000) >>> 16)\n var b = Math.round((colorInt & 0x0000ff00) >>> 8)\n var a = ((colorInt & 0x000000ff) >>> 0) / 255\n return {\n r,\n g,\n b,\n a,\n }\n}\n\nexport default normalizeCSSColor\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\nimport { names } from './names'\nexport { names } from './names'\n\nexport function normalizeCSSColor(color: string): number | null {\n let match: RegExpExecArray | null = null\n\n if (color in names) {\n return names[color]\n }\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color\n }\n return null\n }\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers.hex6.exec(color))) {\n return parseInt(match[1] + 'ff', 16) >>> 0\n }\n\n if ((match = matchers.rgb.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.rgba.exec(color))) {\n return (\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) | // b\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hex3.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n )\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers.hex8.exec(color))) {\n return parseInt(match[1], 16) >>> 0\n }\n\n if ((match = matchers.hex4.exec(color))) {\n return (\n parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n )\n }\n\n if ((match = matchers.hsl.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n )\n }\n\n if ((match = matchers.hsla.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n )\n }\n\n return null\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1\n }\n if (t > 1) {\n t -= 1\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t\n }\n if (t < 1 / 2) {\n return q\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6\n }\n return p\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s\n var p = 2 * l - q\n var r = hue2rgb(p, q, h + 1 / 3)\n var g = hue2rgb(p, q, h)\n var b = hue2rgb(p, q, h - 1 / 3)\n\n return (\n (Math.round(r * 255) << 24) | (Math.round(g * 255) << 16) | (Math.round(b * 255) << 8)\n )\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+'\nvar PERCENTAGE = NUMBER + '%'\n\nfunction call(...args) {\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)'\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/,\n}\n\nfunction parse255(str) {\n var int = parseInt(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 255) {\n return 255\n }\n return int\n}\n\nfunction parse360(str) {\n var int = parseFloat(str)\n return (((int % 360) + 360) % 360) / 360\n}\n\nfunction parse1(str) {\n var num = parseFloat(str)\n if (num < 0) {\n return 0\n }\n if (num > 1) {\n return 255\n }\n return Math.round(num * 255)\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n // @ts-ignore\n const int = parseFloat(str, 10)\n if (int < 0) {\n return 0\n }\n if (int > 100) {\n return 1\n }\n return int / 100\n}\n\nexport function rgba(colorInt: number) {\n var r = Math.round((colorInt & 0xff000000) >>> 24)\n var g = Math.round((colorInt & 0x00ff0000) >>> 16)\n var b = Math.round((colorInt & 0x0000ff00) >>> 8)\n var a = ((colorInt & 0x000000ff) >>> 0) / 255\n return {\n r,\n g,\n b,\n a,\n }\n}\n\nexport default normalizeCSSColor\n"],
5
+ "mappings": "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",
6
+ "names": ["names"]
7
7
  }
package/dist/esm/names.js CHANGED
@@ -1,7 +1,10 @@
1
1
  const names = {
2
- transparent: 0
2
+ // keep the basics
3
+ transparent: 0,
4
+ white: 4294967295,
5
+ black: 255
3
6
  };
4
- if (process.env.INCLUDE_CSS_COLOR_NAMES) {
7
+ if (process.env.INCLUDE_CSS_COLOR_NAMES || process.env.TAMAGUI_TARGET === "native") {
5
8
  const allNames = require("./names.native").names;
6
9
  Object.assign(names, allNames);
7
10
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/names.ts"],
4
- "sourcesContent": ["export const names = {\n transparent: 0x00000000,\n}\n\nif (process.env.INCLUDE_CSS_COLOR_NAMES) {\n const allNames = require('./names.native').names\n Object.assign(names, allNames)\n}\n"],
5
- "mappings": "AAAO,MAAM,QAAQ;AAAA,EACnB,aAAa;AACf;AAEA,IAAI,QAAQ,IAAI,yBAAyB;AACvC,QAAM,WAAW,QAAQ,gBAAgB,EAAE;AAC3C,SAAO,OAAO,OAAO,QAAQ;AAC/B;",
4
+ "sourcesContent": ["export const names = {\n // keep the basics\n transparent: 0x00000000,\n white: 0xffffffff,\n black: 0x000000ff,\n}\n\nif (\n process.env.INCLUDE_CSS_COLOR_NAMES ||\n process.env.TAMAGUI_TARGET === 'native'\n) {\n const allNames = require('./names.native').names\n Object.assign(names, allNames)\n}\n"],
5
+ "mappings": "AAAO,MAAM,QAAQ;AAAA;AAAA,EAEnB,aAAa;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AACT;AAEA,IACE,QAAQ,IAAI,2BACZ,QAAQ,IAAI,mBAAmB,UAC/B;AACA,QAAM,WAAW,QAAQ,gBAAgB,EAAE;AAC3C,SAAO,OAAO,OAAO,QAAQ;AAC/B;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/normalize-css-color",
3
- "version": "1.1.11",
3
+ "version": "1.1.13",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -22,7 +22,7 @@
22
22
  "clean:build": "tamagui-build clean:build"
23
23
  },
24
24
  "devDependencies": {
25
- "@tamagui/build": "^1.1.11"
25
+ "@tamagui/build": "^1.1.13"
26
26
  },
27
27
  "exports": {
28
28
  "./package.json": "./package.json",
package/src/index.ts CHANGED
@@ -9,10 +9,15 @@
9
9
  */
10
10
 
11
11
  import { names } from './names'
12
+ export { names } from './names'
12
13
 
13
14
  export function normalizeCSSColor(color: string): number | null {
14
15
  let match: RegExpExecArray | null = null
15
16
 
17
+ if (color in names) {
18
+ return names[color]
19
+ }
20
+
16
21
  if (typeof color === 'number') {
17
22
  if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {
18
23
  return color
@@ -25,10 +30,6 @@ export function normalizeCSSColor(color: string): number | null {
25
30
  return parseInt(match[1] + 'ff', 16) >>> 0
26
31
  }
27
32
 
28
- if (color in names) {
29
- return names[color]
30
- }
31
-
32
33
  if ((match = matchers.rgb.exec(color))) {
33
34
  return (
34
35
  ((parse255(match[1]) << 24) | // r
package/src/names.ts CHANGED
@@ -1,8 +1,14 @@
1
1
  export const names = {
2
+ // keep the basics
2
3
  transparent: 0x00000000,
4
+ white: 0xffffffff,
5
+ black: 0x000000ff,
3
6
  }
4
7
 
5
- if (process.env.INCLUDE_CSS_COLOR_NAMES) {
8
+ if (
9
+ process.env.INCLUDE_CSS_COLOR_NAMES ||
10
+ process.env.TAMAGUI_TARGET === 'native'
11
+ ) {
6
12
  const allNames = require('./names.native').names
7
13
  Object.assign(names, allNames)
8
14
  }
package/types/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { names } from './names';
1
2
  export declare function normalizeCSSColor(color: string): number | null;
2
3
  export declare function rgba(colorInt: number): {
3
4
  r: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoG9D;AA4FD,wBAAgB,IAAI,CAAC,QAAQ,EAAE,MAAM;;;;;EAWpC;AAED,eAAe,iBAAiB,CAAA"}
package/types/names.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export declare const names: {
2
2
  transparent: number;
3
+ white: number;
4
+ black: number;
3
5
  };
4
6
  //# sourceMappingURL=names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../src/names.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;CAKjB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.native.d.ts","sourceRoot":"","sources":["../src/names.native.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwJjB,CAAA"}