@tamagui/create-theme 1.52.5 → 1.52.7

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/masks.js CHANGED
@@ -33,14 +33,27 @@ var import_isMinusZero = require("./isMinusZero");
33
33
  const createMask = (createMask2) => typeof createMask2 === "function" ? { name: createMask2.name || "unnamed", mask: createMask2 } : createMask2;
34
34
  const skipMask = {
35
35
  name: "skip-mask",
36
- mask: (template, { skip }) => {
37
- if (!skip)
38
- return template;
39
- return Object.fromEntries(
40
- Object.entries(template).filter(([k]) => !(k in skip))
36
+ mask: (template, opts) => {
37
+ const { skip } = opts;
38
+ const result = Object.fromEntries(
39
+ Object.entries(template).filter(([k]) => !skip || !(k in skip)).map(([k, v]) => [k, applyOverrides(k, v, opts)])
41
40
  );
41
+ return result;
42
42
  }
43
43
  };
44
+ function applyOverrides(key, value, opts) {
45
+ if (!opts.override)
46
+ return value;
47
+ const override = opts.override[key];
48
+ if (typeof override === "undefined")
49
+ return value;
50
+ if (typeof override === "string")
51
+ return value;
52
+ if (opts.overrideStrategy === "swap") {
53
+ return override;
54
+ }
55
+ return value;
56
+ }
44
57
  const createIdentityMask = () => ({
45
58
  name: "identity-mask",
46
59
  mask: (template) => template
@@ -63,6 +76,7 @@ const createShiftMask = ({ inverse } = {}, defaultOptions) => {
63
76
  mask: (template, opts) => {
64
77
  const {
65
78
  override,
79
+ overrideStrategy = "shift",
66
80
  max: maxIn,
67
81
  palette,
68
82
  min = 0,
@@ -75,8 +89,8 @@ const createShiftMask = ({ inverse } = {}, defaultOptions) => {
75
89
  if (typeof value === "string")
76
90
  continue;
77
91
  if (typeof (override == null ? void 0 : override[key]) === "number") {
78
- const overrideShift = override[key];
79
- out[key] = value + overrideShift;
92
+ const overrideVal = override[key];
93
+ out[key] = overrideStrategy === "shift" ? value + overrideVal : overrideVal;
80
94
  continue;
81
95
  } else if (typeof (override == null ? void 0 : override[key]) === "string") {
82
96
  out[key] = override[key];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/masks.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAiD;AACjD,yBAA4B;AAErB,MAAM,aAAa,CACxBA,gBAEA,OAAOA,gBAAe,aAClB,EAAE,MAAMA,YAAW,QAAQ,WAAW,MAAMA,YAAW,IACvDA;AAEC,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,MAAM,CAAC,UAAU,EAAE,KAAK,MAAM;AAC5B,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO,OAAO;AAAA,MACZ,OAAO,QAAQ,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK;AAAA,IACvD;AAAA,EACF;AACF;AAEO,MAAM,qBAAqB,OAAmB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM,CAAC,aAAa;AACtB;AAEO,MAAM,oBAAoB,MAAM;AACrC,QAAM,OAAmB;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,CAAC,UAAU,SAAS;AACxB,YAAM,eAAW;AAAA,YACf,8BAAc,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,MACjD;AACA,aAAO,SAAS,KAAK,UAAU,IAAI;AAAA,IACrC;AAAA,EACF;AACA,SAAO;AACT;AAIO,MAAM,kBAAkB,CAC7B,EAAE,QAAQ,IAAsB,CAAC,GACjC,mBACG;AACH,QAAM,OAAmB;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,CAAC,UAAU,SAAS;AACxB,YAAM;AAAA,QACJ;AAAA,QACA,KAAK;AAAA,QACL;AAAA,QACA,MAAM;AAAA,QACN,WAAW;AAAA,MACb,IAAI,EAAE,GAAG,gBAAgB,GAAG,KAAK;AACjC,YAAM,SAAS,OAAO,QAAQ,QAAQ;AACtC,YAAM,MAAM,UAAU,UAAU,OAAO,OAAO,OAAO,EAAE,SAAS,IAAI;AACpE,YAAM,MAAM,CAAC;AACb,iBAAW,CAAC,KAAK,KAAK,KAAK,QAAQ;AACjC,YAAI,OAAO,UAAU;AAAU;AAC/B,YAAI,QAAO,qCAAW,UAAS,UAAU;AACvC,gBAAM,gBAAgB,SAAS,GAAG;AAClC,cAAI,GAAG,IAAI,QAAQ;AACnB;AAAA,QACF,WAAW,QAAO,qCAAW,UAAS,UAAU;AAC9C,cAAI,GAAG,IAAI,SAAS,GAAG;AACvB;AAAA,QACF;AACA,cAAM,aAAa,UAAU,IAAI,KAAC,gCAAY,KAAK,IAAI,SAAS;AAChE,cAAM,YAAY,aAAa,IAAI;AACnC,cAAM,SAAS,UAAU,KAAK;AAC9B,cAAM,OAAO,QAAQ,WAAW,YAAY;AAC5C,cAAM,UAAU,aACZ,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,IACjC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAEvC,YAAI,GAAG,IAAI;AAAA,MACb;AAEA,YAAM,UAAU,SAAS,KAAK,KAAK,IAAI;AACvC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,mBAAmB,CAAC,oBAA8C;AAAA,EAC7E,MAAM;AAAA,EACN,MAAM,gBAAgB,CAAC,GAAG,cAAc,EAAE;AAC5C;AAEO,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB,CAAC,oBAA8C;AAAA,EACjF,MAAM;AAAA,EACN,MAAM,gBAAgB,EAAE,SAAS,KAAK,GAAG,cAAc,EAAE;AAC3D;",
4
+ "mappings": "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",
5
5
  "names": ["createMask"]
6
6
  }
package/dist/esm/masks.js CHANGED
@@ -3,14 +3,27 @@ import { isMinusZero } from "./isMinusZero";
3
3
  const createMask = (createMask2) => typeof createMask2 === "function" ? { name: createMask2.name || "unnamed", mask: createMask2 } : createMask2;
4
4
  const skipMask = {
5
5
  name: "skip-mask",
6
- mask: (template, { skip }) => {
7
- if (!skip)
8
- return template;
9
- return Object.fromEntries(
10
- Object.entries(template).filter(([k]) => !(k in skip))
6
+ mask: (template, opts) => {
7
+ const { skip } = opts;
8
+ const result = Object.fromEntries(
9
+ Object.entries(template).filter(([k]) => !skip || !(k in skip)).map(([k, v]) => [k, applyOverrides(k, v, opts)])
11
10
  );
11
+ return result;
12
12
  }
13
13
  };
14
+ function applyOverrides(key, value, opts) {
15
+ if (!opts.override)
16
+ return value;
17
+ const override = opts.override[key];
18
+ if (typeof override === "undefined")
19
+ return value;
20
+ if (typeof override === "string")
21
+ return value;
22
+ if (opts.overrideStrategy === "swap") {
23
+ return override;
24
+ }
25
+ return value;
26
+ }
14
27
  const createIdentityMask = () => ({
15
28
  name: "identity-mask",
16
29
  mask: (template) => template
@@ -33,6 +46,7 @@ const createShiftMask = ({ inverse } = {}, defaultOptions) => {
33
46
  mask: (template, opts) => {
34
47
  const {
35
48
  override,
49
+ overrideStrategy = "shift",
36
50
  max: maxIn,
37
51
  palette,
38
52
  min = 0,
@@ -45,8 +59,8 @@ const createShiftMask = ({ inverse } = {}, defaultOptions) => {
45
59
  if (typeof value === "string")
46
60
  continue;
47
61
  if (typeof (override == null ? void 0 : override[key]) === "number") {
48
- const overrideShift = override[key];
49
- out[key] = value + overrideShift;
62
+ const overrideVal = override[key];
63
+ out[key] = overrideStrategy === "shift" ? value + overrideVal : overrideVal;
50
64
  continue;
51
65
  } else if (typeof (override == null ? void 0 : override[key]) === "string") {
52
66
  out[key] = override[key];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/masks.tsx"],
4
- "mappings": "AACA,SAAS,eAAe,yBAAyB;AACjD,SAAS,mBAAmB;AAErB,MAAM,aAAa,CACxBA,gBAEA,OAAOA,gBAAe,aAClB,EAAE,MAAMA,YAAW,QAAQ,WAAW,MAAMA,YAAW,IACvDA;AAEC,MAAM,WAAuB;AAAA,EAClC,MAAM;AAAA,EACN,MAAM,CAAC,UAAU,EAAE,KAAK,MAAM;AAC5B,QAAI,CAAC;AAAM,aAAO;AAClB,WAAO,OAAO;AAAA,MACZ,OAAO,QAAQ,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK;AAAA,IACvD;AAAA,EACF;AACF;AAEO,MAAM,qBAAqB,OAAmB;AAAA,EACnD,MAAM;AAAA,EACN,MAAM,CAAC,aAAa;AACtB;AAEO,MAAM,oBAAoB,MAAM;AACrC,QAAM,OAAmB;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,CAAC,UAAU,SAAS;AACxB,YAAM,WAAW;AAAA,QACf,cAAc,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,MACjD;AACA,aAAO,SAAS,KAAK,UAAU,IAAI;AAAA,IACrC;AAAA,EACF;AACA,SAAO;AACT;AAIO,MAAM,kBAAkB,CAC7B,EAAE,QAAQ,IAAsB,CAAC,GACjC,mBACG;AACH,QAAM,OAAmB;AAAA,IACvB,MAAM;AAAA,IACN,MAAM,CAAC,UAAU,SAAS;AACxB,YAAM;AAAA,QACJ;AAAA,QACA,KAAK;AAAA,QACL;AAAA,QACA,MAAM;AAAA,QACN,WAAW;AAAA,MACb,IAAI,EAAE,GAAG,gBAAgB,GAAG,KAAK;AACjC,YAAM,SAAS,OAAO,QAAQ,QAAQ;AACtC,YAAM,MAAM,UAAU,UAAU,OAAO,OAAO,OAAO,EAAE,SAAS,IAAI;AACpE,YAAM,MAAM,CAAC;AACb,iBAAW,CAAC,KAAK,KAAK,KAAK,QAAQ;AACjC,YAAI,OAAO,UAAU;AAAU;AAC/B,YAAI,QAAO,qCAAW,UAAS,UAAU;AACvC,gBAAM,gBAAgB,SAAS,GAAG;AAClC,cAAI,GAAG,IAAI,QAAQ;AACnB;AAAA,QACF,WAAW,QAAO,qCAAW,UAAS,UAAU;AAC9C,cAAI,GAAG,IAAI,SAAS,GAAG;AACvB;AAAA,QACF;AACA,cAAM,aAAa,UAAU,IAAI,CAAC,YAAY,KAAK,IAAI,SAAS;AAChE,cAAM,YAAY,aAAa,IAAI;AACnC,cAAM,SAAS,UAAU,KAAK;AAC9B,cAAM,OAAO,QAAQ,WAAW,YAAY;AAC5C,cAAM,UAAU,aACZ,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,CAAC,IACjC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC;AAEvC,YAAI,GAAG,IAAI;AAAA,MACb;AAEA,YAAM,UAAU,SAAS,KAAK,KAAK,IAAI;AACvC,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,mBAAmB,CAAC,oBAA8C;AAAA,EAC7E,MAAM;AAAA,EACN,MAAM,gBAAgB,CAAC,GAAG,cAAc,EAAE;AAC5C;AAEO,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB,CAAC,oBAA8C;AAAA,EACjF,MAAM;AAAA,EACN,MAAM,gBAAgB,EAAE,SAAS,KAAK,GAAG,cAAc,EAAE;AAC3D;",
4
+ "mappings": "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",
5
5
  "names": ["createMask"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/create-theme",
3
- "version": "1.52.5",
3
+ "version": "1.52.7",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -28,10 +28,10 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@tamagui/web": "1.52.5"
31
+ "@tamagui/web": "1.52.7"
32
32
  },
33
33
  "devDependencies": {
34
- "@tamagui/build": "1.52.5"
34
+ "@tamagui/build": "1.52.7"
35
35
  },
36
36
  "publishConfig": {
37
37
  "access": "public"
@@ -7,6 +7,7 @@ export type ThemeMask = Record<string, string | number>
7
7
  export type MaskOptions = {
8
8
  palette?: CreateThemePalette
9
9
  override?: Partial<ThemeMask>
10
+ overrideStrategy?: 'shift' | 'swap'
10
11
  skip?: Partial<ThemeMask>
11
12
  strength?: number
12
13
  max?: number
@@ -35,6 +36,9 @@ export type Template = {
35
36
 
36
37
  export type ThemeUsingMask<Masks = string> = MaskOptions & {
37
38
  mask: Masks
39
+ childOptions?: MaskOptions & {
40
+ mask?: Masks
41
+ }
38
42
  }
39
43
 
40
44
  export type ThemeUsingTemplate = CreateThemeOptions & {
package/src/masks.tsx CHANGED
@@ -11,14 +11,29 @@ export const createMask = <C extends CreateMask | MaskFunction>(
11
11
 
12
12
  export const skipMask: CreateMask = {
13
13
  name: 'skip-mask',
14
- mask: (template, { skip }) => {
15
- if (!skip) return template
16
- return Object.fromEntries(
17
- Object.entries(template).filter(([k]) => !(k in skip))
14
+ mask: (template, opts) => {
15
+ const { skip } = opts
16
+ const result = Object.fromEntries(
17
+ Object.entries(template)
18
+ .filter(([k]) => !skip || !(k in skip))
19
+ .map(([k, v]) => [k, applyOverrides(k, v, opts)])
18
20
  ) as typeof template
21
+
22
+ return result
19
23
  },
20
24
  }
21
25
 
26
+ function applyOverrides(key: string, value: number | string, opts: MaskOptions) {
27
+ if (!opts.override) return value
28
+ const override = opts.override[key]
29
+ if (typeof override === 'undefined') return value
30
+ if (typeof override === 'string') return value
31
+ if (opts.overrideStrategy === 'swap') {
32
+ return override
33
+ }
34
+ return value
35
+ }
36
+
22
37
  export const createIdentityMask = (): CreateMask => ({
23
38
  name: 'identity-mask',
24
39
  mask: (template) => template,
@@ -48,6 +63,7 @@ export const createShiftMask = (
48
63
  mask: (template, opts) => {
49
64
  const {
50
65
  override,
66
+ overrideStrategy = 'shift',
51
67
  max: maxIn,
52
68
  palette,
53
69
  min = 0,
@@ -59,8 +75,8 @@ export const createShiftMask = (
59
75
  for (const [key, value] of values) {
60
76
  if (typeof value === 'string') continue
61
77
  if (typeof override?.[key] === 'number') {
62
- const overrideShift = override[key] as number
63
- out[key] = value + overrideShift
78
+ const overrideVal = override[key] as number
79
+ out[key] = overrideStrategy === 'shift' ? value + overrideVal : overrideVal
64
80
  continue
65
81
  } else if (typeof override?.[key] === 'string') {
66
82
  out[key] = override[key]
@@ -4,6 +4,7 @@ export type ThemeMask = Record<string, string | number>;
4
4
  export type MaskOptions = {
5
5
  palette?: CreateThemePalette;
6
6
  override?: Partial<ThemeMask>;
7
+ overrideStrategy?: 'shift' | 'swap';
7
8
  skip?: Partial<ThemeMask>;
8
9
  strength?: number;
9
10
  max?: number;
@@ -27,6 +28,9 @@ export type Template = {
27
28
  };
28
29
  export type ThemeUsingMask<Masks = string> = MaskOptions & {
29
30
  mask: Masks;
31
+ childOptions?: MaskOptions & {
32
+ mask?: Masks;
33
+ };
30
34
  };
31
35
  export type ThemeUsingTemplate = CreateThemeOptions & {
32
36
  palette: string;
@@ -1 +1 @@
1
- {"version":3,"file":"createThemeTypes.d.ts","sourceRoot":"","sources":["../src/createThemeTypes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,MAAM,MAAM,kBAAkB,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAA;AAEtD,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;AAEvD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;CAAE,CAAA;AAE/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,KAAK,CAAC,CAAA;AAExF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB,CAAC,EAAE,YAAY,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;AAE9B,MAAM,MAAM,QAAQ,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,KAAK,GAAG,MAAM,IAAI,WAAW,GAAG;IACzD,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,KAAK,CAAC,KAAK,GAAG,MAAM,IAC5B,eAAe,GACf,kBAAkB,GAClB,cAAc,CAAC,KAAK,CAAC,CAAA;AAEzB,MAAM,MAAM,eAAe,CAAC,KAAK,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG;IAC3D,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IACrD,KAAK,CAAC,KAAK,CAAC,GACZ,eAAe,CAAC,KAAK,CAAC,EAAE,CAAA;AAE5B,KAAK,eAAe,GAAG,MAAM,GAAG,EAAE,CAAA;AAElC,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,IAAI;IAC5D,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC,KAAK,GAAG,eAAe,CAAC,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA;CAC/C,CAAA"}
1
+ {"version":3,"file":"createThemeTypes.d.ts","sourceRoot":"","sources":["../src/createThemeTypes.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"masks.d.ts","sourceRoot":"","sources":["../src/masks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAI1E,eAAO,MAAM,UAAU,0DAEpB,UAGa,CAAA;AAEhB,eAAO,MAAM,QAAQ,EAAE,UAQtB,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAO,UAGpC,CAAA;AAEF,eAAO,MAAM,iBAAiB,kBAW7B,CAAA;AAED,KAAK,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7C,eAAO,MAAM,eAAe,iBACb,gBAAgB,mBACZ,WAAW,eAyC7B,CAAA;AAED,eAAO,MAAM,gBAAgB,oBAAqB,WAAW,KAAG,UAG9D,CAAA;AAEF,eAAO,MAAM,gBAAgB,oBALqB,WAAW,KAAG,UAKhB,CAAA;AAEhD,eAAO,MAAM,oBAAoB,oBAAqB,WAAW,KAAG,UAGlE,CAAA"}
1
+ {"version":3,"file":"masks.d.ts","sourceRoot":"","sources":["../src/masks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAI1E,eAAO,MAAM,UAAU,0DAEpB,UAGa,CAAA;AAEhB,eAAO,MAAM,QAAQ,EAAE,UAYtB,CAAA;AAaD,eAAO,MAAM,kBAAkB,QAAO,UAGpC,CAAA;AAEF,eAAO,MAAM,iBAAiB,kBAW7B,CAAA;AAED,KAAK,gBAAgB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7C,eAAO,MAAM,eAAe,iBACb,gBAAgB,mBACZ,WAAW,eA0C7B,CAAA;AAED,eAAO,MAAM,gBAAgB,oBAAqB,WAAW,KAAG,UAG9D,CAAA;AAEF,eAAO,MAAM,gBAAgB,oBALqB,WAAW,KAAG,UAKhB,CAAA;AAEhD,eAAO,MAAM,oBAAoB,oBAAqB,WAAW,KAAG,UAGlE,CAAA"}