@tamagui/helpers 1.0.0-alpha.37 → 1.0.0-alpha.38

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.
Files changed (50) hide show
  1. package/dist/.buildinfo +1 -0
  2. package/dist/concatClassName.js +60 -0
  3. package/dist/concatClassName.js.map +7 -0
  4. package/dist/getNiceKey.js +16 -0
  5. package/dist/getNiceKey.js.map +7 -0
  6. package/dist/getStylesAtomic.js +101 -0
  7. package/dist/getStylesAtomic.js.map +7 -0
  8. package/dist/index.cjs +379 -0
  9. package/dist/index.cjs.map +7 -0
  10. package/dist/{esm/index.js → index.js} +3 -1
  11. package/dist/index.js.map +7 -0
  12. package/dist/{esm/simpleHash.js → simpleHash.js} +0 -0
  13. package/dist/{esm/simpleHash.js.map → simpleHash.js.map} +1 -1
  14. package/dist/{esm/types.js → types.js} +0 -0
  15. package/dist/{esm/types.js.map → types.js.map} +0 -0
  16. package/dist/uniqueStyleKeys.js +33 -0
  17. package/dist/uniqueStyleKeys.js.map +7 -0
  18. package/dist/{esm/validStyleProps.js → validStyleProps.js} +14 -26
  19. package/dist/validStyleProps.js.map +7 -0
  20. package/package.json +3 -3
  21. package/dist/cjs/allRules.js +0 -15
  22. package/dist/cjs/allRules.js.map +0 -7
  23. package/dist/cjs/concatClassName.js +0 -78
  24. package/dist/cjs/concatClassName.js.map +0 -7
  25. package/dist/cjs/index.js +0 -24
  26. package/dist/cjs/index.js.map +0 -7
  27. package/dist/cjs/simpleHash.js +0 -21
  28. package/dist/cjs/simpleHash.js.map +0 -7
  29. package/dist/cjs/types.js +0 -4
  30. package/dist/cjs/types.js.map +0 -7
  31. package/dist/cjs/validStyleProps.js +0 -163
  32. package/dist/cjs/validStyleProps.js.map +0 -7
  33. package/dist/esm/allRules.js +0 -9
  34. package/dist/esm/allRules.js.map +0 -7
  35. package/dist/esm/concatClassName.js +0 -72
  36. package/dist/esm/concatClassName.js.map +0 -7
  37. package/dist/esm/index.js.map +0 -7
  38. package/dist/esm/validStyleProps.js.map +0 -7
  39. package/dist/jsx/allRules.js +0 -8
  40. package/dist/jsx/concatClassName.js +0 -71
  41. package/dist/jsx/index.js +0 -4
  42. package/dist/jsx/simpleHash.js +0 -14
  43. package/dist/jsx/types.js +0 -0
  44. package/dist/jsx/validStyleProps.js +0 -149
  45. package/types/allRules.d.ts.map +0 -1
  46. package/types/concatClassName.d.ts.map +0 -1
  47. package/types/index.d.ts.map +0 -1
  48. package/types/simpleHash.d.ts.map +0 -1
  49. package/types/types.d.ts.map +0 -1
  50. package/types/validStyleProps.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"at":1636517189907}
@@ -0,0 +1,60 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { uniqueKeyToStyleName } from "./uniqueStyleKeys";
4
+ const pseudoInvert = {
5
+ hover: "hoverStyle",
6
+ focus: "focusStyle",
7
+ press: "pressStyle"
8
+ };
9
+ function concatClassName(className, ...propObjects) {
10
+ const usedPrefixes = new Set();
11
+ const final = [];
12
+ const names = className.split(" ");
13
+ const hasPropObjects = propObjects.length;
14
+ for (let i = names.length - 1; i >= 0; i--) {
15
+ const name = names[i];
16
+ if (!name || name === " ")
17
+ continue;
18
+ if (name[0] !== "_") {
19
+ final.push(name);
20
+ continue;
21
+ }
22
+ const splitIndex = name.indexOf("-");
23
+ if (splitIndex < 1) {
24
+ final.push(name);
25
+ continue;
26
+ }
27
+ const nextChar = name[splitIndex + 1];
28
+ const isMediaQuery = nextChar === "_";
29
+ const isPsuedoQuery = nextChar === "-";
30
+ const styleKey = name.slice(1, splitIndex);
31
+ const mediaKey = isMediaQuery || isPsuedoQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null;
32
+ const uid = mediaKey ? styleKey + mediaKey : styleKey;
33
+ if (!isMediaQuery && !isPsuedoQuery) {
34
+ if (usedPrefixes.has(uid)) {
35
+ continue;
36
+ }
37
+ usedPrefixes.add(uid);
38
+ }
39
+ const propName = uniqueKeyToStyleName[styleKey];
40
+ if (propName && hasPropObjects) {
41
+ if (propObjects.some((po) => {
42
+ if (mediaKey) {
43
+ const propKey = pseudoInvert[mediaKey];
44
+ return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;
45
+ }
46
+ const res = po && propName in po && po[propName] !== null;
47
+ return res;
48
+ })) {
49
+ continue;
50
+ }
51
+ }
52
+ final.push(name);
53
+ }
54
+ return final.join(" ");
55
+ }
56
+ __name(concatClassName, "concatClassName");
57
+ export {
58
+ concatClassName
59
+ };
60
+ //# sourceMappingURL=concatClassName.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/concatClassName.ts"],
4
+ "sourcesContent": ["import { uniqueKeyToStyleName } from './uniqueStyleKeys'\n\nconst pseudoInvert = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\nexport function concatClassName(className: string, ...propObjects: any[]) {\n const usedPrefixes = new Set<string>()\n const final: string[] = []\n const names = className.split(' ')\n const hasPropObjects = propObjects.length\n // const shouldLog = className.includes('_col-varzzzcolor3z')\n // shouldLog && console.log('>>>>>>>>>>', className)\n\n for (let i = names.length - 1; i >= 0; i--) {\n const name = names[i]\n if (!name || name === ' ') continue\n if (name[0] !== '_') {\n // not snack style (todo slightly stronger heuristic)\n final.push(name)\n continue\n }\n const splitIndex = name.indexOf('-')\n if (splitIndex < 1) {\n final.push(name)\n continue\n }\n const nextChar = name[splitIndex + 1]\n // synced to static-ui constants\n // MEDIA_SEP\n const isMediaQuery = nextChar === '_'\n // PSEUDO_SEP\n const isPsuedoQuery = nextChar === '-'\n const styleKey = name.slice(1, splitIndex)\n const mediaKey =\n isMediaQuery || isPsuedoQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null\n const uid = mediaKey ? styleKey + mediaKey : styleKey\n // shouldLog && console.log('uid', uid)\n if (!isMediaQuery && !isPsuedoQuery) {\n if (usedPrefixes.has(uid)) {\n // shouldLog && console.log('used', uid)\n continue\n }\n usedPrefixes.add(uid)\n }\n const propName = uniqueKeyToStyleName[styleKey]\n // shouldLog && console.log('propName', propName)\n if (propName && hasPropObjects) {\n if (\n propObjects.some((po) => {\n if (mediaKey) {\n const propKey = pseudoInvert[mediaKey]\n return po && po[propKey] && propName in po[propKey] && po[propKey] !== null\n }\n const res = po && propName in po && po[propName] !== null\n // shouldLog && res && console.log('SKIP BECAUSE', propName, po)\n return res\n })\n ) {\n // shouldLog && console.log('SKIP PROP')\n continue\n }\n }\n // shouldLog && console.log('push', name)\n final.push(name)\n }\n\n // shouldLog && console.log(' in:', className, 'out:', final)\n\n return final.join(' ')\n}\n"],
5
+ "mappings": ";;AAAA;AAEA,MAAM,eAAe;AAAA,EACnB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA;AAGF,yBAAyB,cAAsB,aAAoB;AACxE,QAAM,eAAe,IAAI;AACzB,QAAM,QAAkB;AACxB,QAAM,QAAQ,UAAU,MAAM;AAC9B,QAAM,iBAAiB,YAAY;AAInC,WAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK;AAC1C,UAAM,OAAO,MAAM;AACnB,QAAI,CAAC,QAAQ,SAAS;AAAK;AAC3B,QAAI,KAAK,OAAO,KAAK;AAEnB,YAAM,KAAK;AACX;AAAA;AAEF,UAAM,aAAa,KAAK,QAAQ;AAChC,QAAI,aAAa,GAAG;AAClB,YAAM,KAAK;AACX;AAAA;AAEF,UAAM,WAAW,KAAK,aAAa;AAGnC,UAAM,eAAe,aAAa;AAElC,UAAM,gBAAgB,aAAa;AACnC,UAAM,WAAW,KAAK,MAAM,GAAG;AAC/B,UAAM,WACJ,gBAAgB,gBAAgB,KAAK,MAAM,aAAa,GAAG,aAAa,KAAK;AAC/E,UAAM,MAAM,WAAW,WAAW,WAAW;AAE7C,QAAI,CAAC,gBAAgB,CAAC,eAAe;AACnC,UAAI,aAAa,IAAI,MAAM;AAEzB;AAAA;AAEF,mBAAa,IAAI;AAAA;AAEnB,UAAM,WAAW,qBAAqB;AAEtC,QAAI,YAAY,gBAAgB;AAC9B,UACE,YAAY,KAAK,CAAC,OAAO;AACvB,YAAI,UAAU;AACZ,gBAAM,UAAU,aAAa;AAC7B,iBAAO,MAAM,GAAG,YAAY,YAAY,GAAG,YAAY,GAAG,aAAa;AAAA;AAEzE,cAAM,MAAM,MAAM,YAAY,MAAM,GAAG,cAAc;AAErD,eAAO;AAAA,UAET;AAEA;AAAA;AAAA;AAIJ,UAAM,KAAK;AAAA;AAKb,SAAO,MAAM,KAAK;AAAA;AA/DJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,16 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ function getNiceKey(name, len = 2) {
4
+ let key = "";
5
+ for (const [index, char] of name.split("").entries()) {
6
+ if (index === 0 || char.toUpperCase() === char) {
7
+ key += name.slice(index, index + len);
8
+ }
9
+ }
10
+ return key;
11
+ }
12
+ __name(getNiceKey, "getNiceKey");
13
+ export {
14
+ getNiceKey
15
+ };
16
+ //# sourceMappingURL=getNiceKey.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/getNiceKey.ts"],
4
+ "sourcesContent": ["export function getNiceKey(name: string, len = 2) {\n let key = ''\n for (const [index, char] of name.split('').entries()) {\n if (index === 0 || char.toUpperCase() === char) {\n key += name.slice(index, index + len)\n }\n }\n return key\n}\n"],
5
+ "mappings": ";;AAAO,oBAAoB,MAAc,MAAM,GAAG;AAChD,MAAI,MAAM;AACV,aAAW,CAAC,OAAO,SAAS,KAAK,MAAM,IAAI,WAAW;AACpD,QAAI,UAAU,KAAK,KAAK,kBAAkB,MAAM;AAC9C,aAAO,KAAK,MAAM,OAAO,QAAQ;AAAA;AAAA;AAGrC,SAAO;AAAA;AAPO;",
6
+ "names": []
7
+ }
@@ -0,0 +1,101 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { atomic } from "react-native-web/dist/cjs/exports/StyleSheet/compile";
4
+ import createCompileableStyle from "react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle";
5
+ import createReactDOMStyle from "react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle";
6
+ import i18Style from "react-native-web/dist/cjs/exports/StyleSheet/i18nStyle";
7
+ import { simpleHash } from "./simpleHash";
8
+ import { getOrCreateStylePrefix } from "./uniqueStyleKeys";
9
+ const pseudos = {
10
+ focusWithinStyle: {
11
+ name: "focus-within",
12
+ priority: 4
13
+ },
14
+ focusStyle: {
15
+ name: "focus",
16
+ priority: 3
17
+ },
18
+ pressStyle: {
19
+ name: "active",
20
+ priority: 2
21
+ },
22
+ hoverStyle: {
23
+ name: "hover",
24
+ priority: 1
25
+ }
26
+ };
27
+ const borderDefaults = {
28
+ borderWidth: "borderStyle",
29
+ borderBottomWidth: "borderBottomStyle",
30
+ borderTopWidth: "borderTopStyle",
31
+ borderLeftWidth: "borderLeftStyle",
32
+ borderRightWidth: "borderRightStyle"
33
+ };
34
+ function getStylesAtomic(style) {
35
+ const styles = {
36
+ base: {}
37
+ };
38
+ for (const key in style) {
39
+ if (!!pseudos[key]) {
40
+ styles[key] = style[key];
41
+ } else {
42
+ styles.base[key] = style[key];
43
+ }
44
+ }
45
+ return Object.keys(styles).map((key) => {
46
+ return getAtomicStyle(styles[key], pseudos[key]);
47
+ }).flat();
48
+ }
49
+ __name(getStylesAtomic, "getStylesAtomic");
50
+ const importantRegex = /\!important*/g;
51
+ function getAtomicStyle(style, pseudo) {
52
+ if (style == null || typeof style !== "object") {
53
+ throw new Error(`Wrong style type: "${typeof style}": ${style}`);
54
+ }
55
+ for (const key in borderDefaults) {
56
+ if (key in style) {
57
+ style[borderDefaults[key]] = style[borderDefaults[key]] ?? "solid";
58
+ }
59
+ }
60
+ const all = {
61
+ ...atomic(createCompileableStyle(createReactDOMStyle(i18Style(style))))
62
+ };
63
+ return Object.keys(all).map((key) => {
64
+ const val = all[key];
65
+ const prefix = `_${getOrCreateStylePrefix(val.property)}`;
66
+ const hash = (() => {
67
+ let s = `${val.value}`.replace(/[%]/g, "pct").replace(/[^a-z0-9]/gi, "z").replace(/\s/, "-");
68
+ if (s.length < 16)
69
+ return s;
70
+ return simpleHash(val.identifier);
71
+ })();
72
+ const psuedoPrefix = pseudo ? `-${pseudo.name}-` : "";
73
+ const identifier = `${prefix}-${psuedoPrefix}${hash}`;
74
+ const className = `.${identifier}`;
75
+ const rules = val.rules.map((rule) => {
76
+ if (pseudo) {
77
+ const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ":root").join("") + " ";
78
+ let res = rule.replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`).replace("{", `:${pseudo.name}{`);
79
+ if (pseudo.name === "hover") {
80
+ res = `@media not all and (hover: none) { ${res} }`;
81
+ }
82
+ return res;
83
+ }
84
+ return rule.replace(`.${val.identifier}`, className).replace(importantRegex, "");
85
+ });
86
+ const result = {
87
+ property: val.property,
88
+ value: val.value,
89
+ identifier,
90
+ className,
91
+ rules
92
+ };
93
+ return result;
94
+ });
95
+ }
96
+ __name(getAtomicStyle, "getAtomicStyle");
97
+ export {
98
+ getStylesAtomic,
99
+ pseudos
100
+ };
101
+ //# sourceMappingURL=getStylesAtomic.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/getStylesAtomic.ts"],
4
+ "sourcesContent": ["import type { ViewStyle } from 'react-native'\nimport { atomic } from 'react-native-web/dist/cjs/exports/StyleSheet/compile'\nimport createCompileableStyle from 'react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle'\nimport createReactDOMStyle from 'react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle'\nimport i18Style from 'react-native-web/dist/cjs/exports/StyleSheet/i18nStyle'\n\nimport { simpleHash } from './simpleHash'\nimport { StyleObject } from './types'\nimport { getOrCreateStylePrefix } from './uniqueStyleKeys'\n\nexport const pseudos = {\n focusWithinStyle: {\n name: 'focus-within',\n priority: 4,\n },\n focusStyle: {\n name: 'focus',\n priority: 3,\n },\n pressStyle: {\n name: 'active',\n priority: 2,\n },\n hoverStyle: {\n name: 'hover',\n priority: 1,\n },\n}\n\nconst borderDefaults = {\n borderWidth: 'borderStyle',\n borderBottomWidth: 'borderBottomStyle',\n borderTopWidth: 'borderTopStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n}\n\nexport function getStylesAtomic(style: any) {\n const styles: { [key: string]: ViewStyle } = {\n base: {},\n }\n // split psuedos\n for (const key in style) {\n if (!!pseudos[key]) {\n styles[key] = style[key]\n } else {\n styles.base[key] = style[key]\n }\n }\n return Object.keys(styles)\n .map((key) => {\n return getAtomicStyle(styles[key], pseudos[key])\n })\n .flat()\n}\n\nconst importantRegex = /\\!important*/g\n\nfunction getAtomicStyle(style: ViewStyle, pseudo?: { name: string; priority: number }): StyleObject[] {\n if (style == null || typeof style !== 'object') {\n throw new Error(`Wrong style type: \"${typeof style}\": ${style}`)\n }\n\n // why is this diff from react-native-web!? need to figure out\n for (const key in borderDefaults) {\n if (key in style) {\n style[borderDefaults[key]] = style[borderDefaults[key]] ?? 'solid'\n }\n }\n\n const all = {\n ...atomic(createCompileableStyle(createReactDOMStyle(i18Style(style)))),\n }\n\n return Object.keys(all).map((key) => {\n const val = all[key]\n const prefix = `_${getOrCreateStylePrefix(val.property)}`\n const hash = (() => {\n let s = `${val.value}`\n .replace(/[%]/g, 'pct')\n .replace(/[^a-z0-9]/gi, 'z')\n .replace(/\\s/, '-')\n if (s.length < 16) return s\n return simpleHash(val.identifier)\n })()\n\n // pseudos have a `--` to be easier to find with concatClassNames\n const psuedoPrefix = pseudo ? `-${pseudo.name}-` : ''\n const identifier = `${prefix}-${psuedoPrefix}${hash}`\n const className = `.${identifier}`\n const rules = val.rules.map((rule) => {\n if (pseudo) {\n const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '\n let res = rule\n .replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`)\n .replace('{', `:${pseudo.name}{`)\n\n if (pseudo.name === 'hover') {\n // hover styles need to be conditional\n // perhaps this can be generalized but for now lets just shortcut\n // and hardcode for hover styles, if we need to later we can\n // WEIRD SYNTAX, SEE:\n // https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover\n res = `@media not all and (hover: none) { ${res} }`\n }\n return res\n }\n return rule.replace(`.${val.identifier}`, className).replace(importantRegex, '')\n })\n const result: StyleObject = {\n property: val.property,\n value: val.value,\n identifier,\n className,\n rules,\n }\n return result\n })\n}\n"],
5
+ "mappings": ";;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEO,MAAM,UAAU;AAAA,EACrB,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,UAAU;AAAA;AAAA;AAId,MAAM,iBAAiB;AAAA,EACrB,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA;AAGb,yBAAyB,OAAY;AAC1C,QAAM,SAAuC;AAAA,IAC3C,MAAM;AAAA;AAGR,aAAW,OAAO,OAAO;AACvB,QAAI,CAAC,CAAC,QAAQ,MAAM;AAClB,aAAO,OAAO,MAAM;AAAA,WACf;AACL,aAAO,KAAK,OAAO,MAAM;AAAA;AAAA;AAG7B,SAAO,OAAO,KAAK,QAChB,IAAI,CAAC,QAAQ;AACZ,WAAO,eAAe,OAAO,MAAM,QAAQ;AAAA,KAE5C;AAAA;AAhBW;AAmBhB,MAAM,iBAAiB;AAEvB,wBAAwB,OAAkB,QAA4D;AACpG,MAAI,SAAS,QAAQ,OAAO,UAAU,UAAU;AAC9C,UAAM,IAAI,MAAM,sBAAsB,OAAO,WAAW;AAAA;AAI1D,aAAW,OAAO,gBAAgB;AAChC,QAAI,OAAO,OAAO;AAChB,YAAM,eAAe,QAAQ,MAAM,eAAe,SAAS;AAAA;AAAA;AAI/D,QAAM,MAAM;AAAA,OACP,OAAO,uBAAuB,oBAAoB,SAAS;AAAA;AAGhE,SAAO,OAAO,KAAK,KAAK,IAAI,CAAC,QAAQ;AACnC,UAAM,MAAM,IAAI;AAChB,UAAM,SAAS,IAAI,uBAAuB,IAAI;AAC9C,UAAM,OAAQ,OAAM;AAClB,UAAI,IAAI,GAAG,IAAI,QACZ,QAAQ,QAAQ,OAChB,QAAQ,eAAe,KACvB,QAAQ,MAAM;AACjB,UAAI,EAAE,SAAS;AAAI,eAAO;AAC1B,aAAO,WAAW,IAAI;AAAA;AAIxB,UAAM,eAAe,SAAS,IAAI,OAAO,UAAU;AACnD,UAAM,aAAa,GAAG,UAAU,eAAe;AAC/C,UAAM,YAAY,IAAI;AACtB,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC,SAAS;AACpC,UAAI,QAAQ;AACV,cAAM,qBAAqB,CAAC,GAAG,MAAM,OAAO,WAAW,IAAI,MAAM,SAAS,KAAK,MAAM;AACrF,YAAI,MAAM,KACP,QAAQ,IAAI,IAAI,cAAc,GAAG,sBAAsB,aACvD,QAAQ,KAAK,IAAI,OAAO;AAE3B,YAAI,OAAO,SAAS,SAAS;AAM3B,gBAAM,sCAAsC;AAAA;AAE9C,eAAO;AAAA;AAET,aAAO,KAAK,QAAQ,IAAI,IAAI,cAAc,WAAW,QAAQ,gBAAgB;AAAA;AAE/E,UAAM,SAAsB;AAAA,MAC1B,UAAU,IAAI;AAAA,MACd,OAAO,IAAI;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA;AAEF,WAAO;AAAA;AAAA;AA1DF;",
6
+ "names": []
7
+ }
package/dist/index.cjs ADDED
@@ -0,0 +1,379 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
22
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
23
+ var __export = (target, all) => {
24
+ __markAsModule(target);
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __reExport = (target, module2, desc) => {
29
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
30
+ for (let key of __getOwnPropNames(module2))
31
+ if (!__hasOwnProp.call(target, key) && key !== "default")
32
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
33
+ }
34
+ return target;
35
+ };
36
+ var __toModule = (module2) => {
37
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
38
+ };
39
+
40
+ // src/index.ts
41
+ __export(exports, {
42
+ concatClassName: () => concatClassName,
43
+ getNiceKey: () => getNiceKey,
44
+ getOrCreateStylePrefix: () => getOrCreateStylePrefix,
45
+ getStylesAtomic: () => getStylesAtomic,
46
+ pseudos: () => pseudos,
47
+ stylePropsAll: () => stylePropsAll,
48
+ stylePropsText: () => stylePropsText,
49
+ stylePropsTextOnly: () => stylePropsTextOnly,
50
+ stylePropsTransform: () => stylePropsTransform,
51
+ stylePropsView: () => stylePropsView,
52
+ uniqueKeyToStyleName: () => uniqueKeyToStyleName,
53
+ uniqueStyleKeys: () => uniqueStyleKeys,
54
+ validStyles: () => validStyles
55
+ });
56
+
57
+ // src/getNiceKey.ts
58
+ function getNiceKey(name, len = 2) {
59
+ let key = "";
60
+ for (const [index, char] of name.split("").entries()) {
61
+ if (index === 0 || char.toUpperCase() === char) {
62
+ key += name.slice(index, index + len);
63
+ }
64
+ }
65
+ return key;
66
+ }
67
+ __name(getNiceKey, "getNiceKey");
68
+
69
+ // src/validStyleProps.ts
70
+ var stylePropsTransform = {
71
+ x: true,
72
+ y: true,
73
+ perspective: true,
74
+ scale: true,
75
+ scaleX: true,
76
+ scaleY: true,
77
+ skewX: true,
78
+ skewY: true,
79
+ matrix: true,
80
+ rotate: true,
81
+ rotateY: true,
82
+ rotateX: true,
83
+ rotateZ: true
84
+ };
85
+ var stylePropsView = Object.freeze(__spreadValues({
86
+ pointerEvents: true,
87
+ userSelect: true,
88
+ cursor: true,
89
+ backfaceVisibility: true,
90
+ backgroundColor: true,
91
+ boxSizing: true,
92
+ borderBottomColor: true,
93
+ borderBottomEndRadius: true,
94
+ borderBottomLeftRadius: true,
95
+ borderBottomRightRadius: true,
96
+ borderBottomStartRadius: true,
97
+ borderBottomWidth: true,
98
+ borderColor: true,
99
+ borderEndColor: true,
100
+ borderLeftColor: true,
101
+ borderLeftWidth: true,
102
+ borderRadius: true,
103
+ borderRightColor: true,
104
+ borderRightWidth: true,
105
+ borderStartColor: true,
106
+ borderStyle: true,
107
+ borderTopColor: true,
108
+ borderTopEndRadius: true,
109
+ borderTopLeftRadius: true,
110
+ borderTopRightRadius: true,
111
+ borderTopStartRadius: true,
112
+ borderTopWidth: true,
113
+ borderWidth: true,
114
+ opacity: true,
115
+ transform: true,
116
+ alignContent: true,
117
+ alignItems: true,
118
+ alignSelf: true,
119
+ aspectRatio: true,
120
+ borderEndWidth: true,
121
+ borderStartWidth: true,
122
+ bottom: true,
123
+ display: true,
124
+ end: true,
125
+ flex: true,
126
+ flexBasis: true,
127
+ flexDirection: true,
128
+ flexGrow: true,
129
+ flexShrink: true,
130
+ flexWrap: true,
131
+ height: true,
132
+ justifyContent: true,
133
+ left: true,
134
+ margin: true,
135
+ marginBottom: true,
136
+ marginEnd: true,
137
+ marginHorizontal: true,
138
+ marginLeft: true,
139
+ marginRight: true,
140
+ marginStart: true,
141
+ marginTop: true,
142
+ marginVertical: true,
143
+ maxHeight: true,
144
+ maxWidth: true,
145
+ minHeight: true,
146
+ minWidth: true,
147
+ overflow: true,
148
+ padding: true,
149
+ paddingBottom: true,
150
+ paddingEnd: true,
151
+ paddingHorizontal: true,
152
+ paddingLeft: true,
153
+ paddingRight: true,
154
+ paddingStart: true,
155
+ paddingTop: true,
156
+ paddingVertical: true,
157
+ position: true,
158
+ right: true,
159
+ start: true,
160
+ top: true,
161
+ width: true,
162
+ zIndex: true,
163
+ direction: true,
164
+ shadowColor: true,
165
+ shadowOffset: true,
166
+ shadowOpacity: true,
167
+ shadowRadius: true,
168
+ contain: true
169
+ }, stylePropsTransform));
170
+ var stylePropsTextOnly = Object.freeze({
171
+ color: true,
172
+ fontFamily: true,
173
+ fontSize: true,
174
+ fontStyle: true,
175
+ fontWeight: true,
176
+ letterSpacing: true,
177
+ lineHeight: true,
178
+ textAlign: true,
179
+ textDecorationLine: true,
180
+ textDecorationStyle: true,
181
+ textDecorationColor: true,
182
+ textShadowColor: true,
183
+ textShadowOffset: true,
184
+ textShadowRadius: true,
185
+ textTransform: true
186
+ });
187
+ var stylePropsText = Object.freeze(__spreadValues(__spreadValues({}, stylePropsView), stylePropsTextOnly));
188
+ var stylePropsAll = stylePropsText;
189
+ var validStyles = __spreadValues({
190
+ hoverStyle: true,
191
+ pressStyle: true,
192
+ focusStyle: true
193
+ }, stylePropsView);
194
+
195
+ // src/uniqueStyleKeys.ts
196
+ var existing = new Set();
197
+ var uniqueStyleKeys = {};
198
+ var uniqueKeyToStyleName = {};
199
+ for (const name in stylePropsAll) {
200
+ addStylePrefix(name);
201
+ }
202
+ function getOrCreateStylePrefix(name) {
203
+ return uniqueStyleKeys[name] ?? addStylePrefix(name);
204
+ }
205
+ __name(getOrCreateStylePrefix, "getOrCreateStylePrefix");
206
+ function addStylePrefix(name) {
207
+ let len = 1;
208
+ let key = getNiceKey(name);
209
+ while (existing.has(key)) {
210
+ len++;
211
+ key = getNiceKey(name, len);
212
+ }
213
+ existing.add(key);
214
+ uniqueStyleKeys[name] = key;
215
+ uniqueKeyToStyleName[key] = name;
216
+ return key;
217
+ }
218
+ __name(addStylePrefix, "addStylePrefix");
219
+
220
+ // src/concatClassName.ts
221
+ var pseudoInvert = {
222
+ hover: "hoverStyle",
223
+ focus: "focusStyle",
224
+ press: "pressStyle"
225
+ };
226
+ function concatClassName(className, ...propObjects) {
227
+ const usedPrefixes = new Set();
228
+ const final = [];
229
+ const names = className.split(" ");
230
+ const hasPropObjects = propObjects.length;
231
+ for (let i = names.length - 1; i >= 0; i--) {
232
+ const name = names[i];
233
+ if (!name || name === " ")
234
+ continue;
235
+ if (name[0] !== "_") {
236
+ final.push(name);
237
+ continue;
238
+ }
239
+ const splitIndex = name.indexOf("-");
240
+ if (splitIndex < 1) {
241
+ final.push(name);
242
+ continue;
243
+ }
244
+ const nextChar = name[splitIndex + 1];
245
+ const isMediaQuery = nextChar === "_";
246
+ const isPsuedoQuery = nextChar === "-";
247
+ const styleKey = name.slice(1, splitIndex);
248
+ const mediaKey = isMediaQuery || isPsuedoQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null;
249
+ const uid = mediaKey ? styleKey + mediaKey : styleKey;
250
+ if (!isMediaQuery && !isPsuedoQuery) {
251
+ if (usedPrefixes.has(uid)) {
252
+ continue;
253
+ }
254
+ usedPrefixes.add(uid);
255
+ }
256
+ const propName = uniqueKeyToStyleName[styleKey];
257
+ if (propName && hasPropObjects) {
258
+ if (propObjects.some((po) => {
259
+ if (mediaKey) {
260
+ const propKey = pseudoInvert[mediaKey];
261
+ return po && po[propKey] && propName in po[propKey] && po[propKey] !== null;
262
+ }
263
+ const res = po && propName in po && po[propName] !== null;
264
+ return res;
265
+ })) {
266
+ continue;
267
+ }
268
+ }
269
+ final.push(name);
270
+ }
271
+ return final.join(" ");
272
+ }
273
+ __name(concatClassName, "concatClassName");
274
+
275
+ // src/getStylesAtomic.ts
276
+ var import_compile = __toModule(require("react-native-web/dist/cjs/exports/StyleSheet/compile"));
277
+ var import_createCompileableStyle = __toModule(require("react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle"));
278
+ var import_createReactDOMStyle = __toModule(require("react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle"));
279
+ var import_i18nStyle = __toModule(require("react-native-web/dist/cjs/exports/StyleSheet/i18nStyle"));
280
+
281
+ // src/simpleHash.ts
282
+ var simpleHash = /* @__PURE__ */ __name((str) => {
283
+ let hash = 0;
284
+ for (let i = 0; i < str.length; i++) {
285
+ const char = str.charCodeAt(i);
286
+ hash = (hash << 5) - hash + char;
287
+ hash &= hash;
288
+ }
289
+ return new Uint32Array([hash])[0].toString(36);
290
+ }, "simpleHash");
291
+
292
+ // src/getStylesAtomic.ts
293
+ var pseudos = {
294
+ focusWithinStyle: {
295
+ name: "focus-within",
296
+ priority: 4
297
+ },
298
+ focusStyle: {
299
+ name: "focus",
300
+ priority: 3
301
+ },
302
+ pressStyle: {
303
+ name: "active",
304
+ priority: 2
305
+ },
306
+ hoverStyle: {
307
+ name: "hover",
308
+ priority: 1
309
+ }
310
+ };
311
+ var borderDefaults = {
312
+ borderWidth: "borderStyle",
313
+ borderBottomWidth: "borderBottomStyle",
314
+ borderTopWidth: "borderTopStyle",
315
+ borderLeftWidth: "borderLeftStyle",
316
+ borderRightWidth: "borderRightStyle"
317
+ };
318
+ function getStylesAtomic(style) {
319
+ const styles = {
320
+ base: {}
321
+ };
322
+ for (const key in style) {
323
+ if (!!pseudos[key]) {
324
+ styles[key] = style[key];
325
+ } else {
326
+ styles.base[key] = style[key];
327
+ }
328
+ }
329
+ return Object.keys(styles).map((key) => {
330
+ return getAtomicStyle(styles[key], pseudos[key]);
331
+ }).flat();
332
+ }
333
+ __name(getStylesAtomic, "getStylesAtomic");
334
+ var importantRegex = /\!important*/g;
335
+ function getAtomicStyle(style, pseudo) {
336
+ if (style == null || typeof style !== "object") {
337
+ throw new Error(`Wrong style type: "${typeof style}": ${style}`);
338
+ }
339
+ for (const key in borderDefaults) {
340
+ if (key in style) {
341
+ style[borderDefaults[key]] = style[borderDefaults[key]] ?? "solid";
342
+ }
343
+ }
344
+ const all = __spreadValues({}, (0, import_compile.atomic)((0, import_createCompileableStyle.default)((0, import_createReactDOMStyle.default)((0, import_i18nStyle.default)(style)))));
345
+ return Object.keys(all).map((key) => {
346
+ const val = all[key];
347
+ const prefix = `_${getOrCreateStylePrefix(val.property)}`;
348
+ const hash = (() => {
349
+ let s = `${val.value}`.replace(/[%]/g, "pct").replace(/[^a-z0-9]/gi, "z").replace(/\s/, "-");
350
+ if (s.length < 16)
351
+ return s;
352
+ return simpleHash(val.identifier);
353
+ })();
354
+ const psuedoPrefix = pseudo ? `-${pseudo.name}-` : "";
355
+ const identifier = `${prefix}-${psuedoPrefix}${hash}`;
356
+ const className = `.${identifier}`;
357
+ const rules = val.rules.map((rule) => {
358
+ if (pseudo) {
359
+ const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ":root").join("") + " ";
360
+ let res = rule.replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`).replace("{", `:${pseudo.name}{`);
361
+ if (pseudo.name === "hover") {
362
+ res = `@media not all and (hover: none) { ${res} }`;
363
+ }
364
+ return res;
365
+ }
366
+ return rule.replace(`.${val.identifier}`, className).replace(importantRegex, "");
367
+ });
368
+ const result = {
369
+ property: val.property,
370
+ value: val.value,
371
+ identifier,
372
+ className,
373
+ rules
374
+ };
375
+ return result;
376
+ });
377
+ }
378
+ __name(getAtomicStyle, "getAtomicStyle");
379
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/getNiceKey.ts", "../src/validStyleProps.ts", "../src/uniqueStyleKeys.ts", "../src/concatClassName.ts", "../src/getStylesAtomic.ts", "../src/simpleHash.ts"],
4
+ "sourcesContent": ["export * from './concatClassName'\nexport * from './validStyleProps'\nexport * from './uniqueStyleKeys'\nexport * from './getNiceKey'\nexport * from './getStylesAtomic'\nexport * from './types'\n", "export function getNiceKey(name: string, len = 2) {\n let key = ''\n for (const [index, char] of name.split('').entries()) {\n if (index === 0 || char.toUpperCase() === char) {\n key += name.slice(index, index + len)\n }\n }\n return key\n}\n", "// flat transform props\nexport const stylePropsTransform = {\n x: true,\n y: true,\n perspective: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n skewX: true,\n skewY: true,\n matrix: true,\n rotate: true,\n rotateY: true,\n rotateX: true,\n rotateZ: true,\n}\n\nexport const stylePropsView = Object.freeze({\n pointerEvents: true,\n userSelect: true,\n cursor: true,\n backfaceVisibility: true,\n backgroundColor: true,\n boxSizing: true,\n borderBottomColor: true,\n borderBottomEndRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderBottomStartRadius: true,\n borderBottomWidth: true,\n borderColor: true,\n borderEndColor: true,\n borderLeftColor: true,\n borderLeftWidth: true,\n borderRadius: true,\n borderRightColor: true,\n borderRightWidth: true,\n borderStartColor: true,\n borderStyle: true,\n borderTopColor: true,\n borderTopEndRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderTopStartRadius: true,\n borderTopWidth: true,\n borderWidth: true,\n opacity: true,\n transform: true,\n alignContent: true,\n alignItems: true,\n alignSelf: true,\n aspectRatio: true,\n borderEndWidth: true,\n borderStartWidth: true,\n bottom: true,\n display: true,\n end: true,\n flex: true,\n flexBasis: true,\n flexDirection: true,\n flexGrow: true,\n flexShrink: true,\n flexWrap: true,\n height: true,\n justifyContent: true,\n left: true,\n margin: true,\n marginBottom: true,\n marginEnd: true,\n marginHorizontal: true,\n marginLeft: true,\n marginRight: true,\n marginStart: true,\n marginTop: true,\n marginVertical: true,\n maxHeight: true,\n maxWidth: true,\n minHeight: true,\n minWidth: true,\n overflow: true,\n padding: true,\n paddingBottom: true,\n paddingEnd: true,\n paddingHorizontal: true,\n paddingLeft: true,\n paddingRight: true,\n paddingStart: true,\n paddingTop: true,\n paddingVertical: true,\n position: true,\n right: true,\n start: true,\n top: true,\n width: true,\n zIndex: true,\n direction: true,\n shadowColor: true,\n shadowOffset: true,\n shadowOpacity: true,\n shadowRadius: true,\n contain: true,\n ...stylePropsTransform,\n})\n\nexport const stylePropsTextOnly = Object.freeze({\n color: true,\n fontFamily: true,\n fontSize: true,\n fontStyle: true,\n fontWeight: true,\n letterSpacing: true,\n lineHeight: true,\n textAlign: true,\n textDecorationLine: true,\n textDecorationStyle: true,\n textDecorationColor: true,\n textShadowColor: true,\n textShadowOffset: true,\n textShadowRadius: true,\n textTransform: true,\n})\n\nexport const stylePropsText = Object.freeze({\n ...stylePropsView,\n ...stylePropsTextOnly,\n})\n\nexport const stylePropsAll = stylePropsText\n\nexport const validStyles = {\n hoverStyle: true,\n pressStyle: true,\n focusStyle: true,\n ...stylePropsView,\n}\n", "import { getNiceKey } from './getNiceKey'\nimport { stylePropsAll } from './validStyleProps'\n\nconst existing = new Set<string>()\n\n// unique shortkey for each style key\n// for atomic styles prefixing and collision dedupe\nexport const uniqueStyleKeys: { [key: string]: string } = {}\nexport const uniqueKeyToStyleName: { [key: string]: string } = {}\n\nfor (const name in stylePropsAll) {\n addStylePrefix(name)\n}\n\nexport function getOrCreateStylePrefix(name: string) {\n return uniqueStyleKeys[name] ?? addStylePrefix(name)\n}\n\nfunction addStylePrefix(name: string) {\n let len = 1\n let key = getNiceKey(name)\n while (existing.has(key)) {\n len++\n key = getNiceKey(name, len)\n }\n existing.add(key)\n uniqueStyleKeys[name] = key\n uniqueKeyToStyleName[key] = name\n return key\n}\n", "import { uniqueKeyToStyleName } from './uniqueStyleKeys'\n\nconst pseudoInvert = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\nexport function concatClassName(className: string, ...propObjects: any[]) {\n const usedPrefixes = new Set<string>()\n const final: string[] = []\n const names = className.split(' ')\n const hasPropObjects = propObjects.length\n // const shouldLog = className.includes('_col-varzzzcolor3z')\n // shouldLog && console.log('>>>>>>>>>>', className)\n\n for (let i = names.length - 1; i >= 0; i--) {\n const name = names[i]\n if (!name || name === ' ') continue\n if (name[0] !== '_') {\n // not snack style (todo slightly stronger heuristic)\n final.push(name)\n continue\n }\n const splitIndex = name.indexOf('-')\n if (splitIndex < 1) {\n final.push(name)\n continue\n }\n const nextChar = name[splitIndex + 1]\n // synced to static-ui constants\n // MEDIA_SEP\n const isMediaQuery = nextChar === '_'\n // PSEUDO_SEP\n const isPsuedoQuery = nextChar === '-'\n const styleKey = name.slice(1, splitIndex)\n const mediaKey =\n isMediaQuery || isPsuedoQuery ? name.slice(splitIndex + 2, splitIndex + 7) : null\n const uid = mediaKey ? styleKey + mediaKey : styleKey\n // shouldLog && console.log('uid', uid)\n if (!isMediaQuery && !isPsuedoQuery) {\n if (usedPrefixes.has(uid)) {\n // shouldLog && console.log('used', uid)\n continue\n }\n usedPrefixes.add(uid)\n }\n const propName = uniqueKeyToStyleName[styleKey]\n // shouldLog && console.log('propName', propName)\n if (propName && hasPropObjects) {\n if (\n propObjects.some((po) => {\n if (mediaKey) {\n const propKey = pseudoInvert[mediaKey]\n return po && po[propKey] && propName in po[propKey] && po[propKey] !== null\n }\n const res = po && propName in po && po[propName] !== null\n // shouldLog && res && console.log('SKIP BECAUSE', propName, po)\n return res\n })\n ) {\n // shouldLog && console.log('SKIP PROP')\n continue\n }\n }\n // shouldLog && console.log('push', name)\n final.push(name)\n }\n\n // shouldLog && console.log(' in:', className, 'out:', final)\n\n return final.join(' ')\n}\n", "import type { ViewStyle } from 'react-native'\nimport { atomic } from 'react-native-web/dist/cjs/exports/StyleSheet/compile'\nimport createCompileableStyle from 'react-native-web/dist/cjs/exports/StyleSheet/createCompileableStyle'\nimport createReactDOMStyle from 'react-native-web/dist/cjs/exports/StyleSheet/createReactDOMStyle'\nimport i18Style from 'react-native-web/dist/cjs/exports/StyleSheet/i18nStyle'\n\nimport { simpleHash } from './simpleHash'\nimport { StyleObject } from './types'\nimport { getOrCreateStylePrefix } from './uniqueStyleKeys'\n\nexport const pseudos = {\n focusWithinStyle: {\n name: 'focus-within',\n priority: 4,\n },\n focusStyle: {\n name: 'focus',\n priority: 3,\n },\n pressStyle: {\n name: 'active',\n priority: 2,\n },\n hoverStyle: {\n name: 'hover',\n priority: 1,\n },\n}\n\nconst borderDefaults = {\n borderWidth: 'borderStyle',\n borderBottomWidth: 'borderBottomStyle',\n borderTopWidth: 'borderTopStyle',\n borderLeftWidth: 'borderLeftStyle',\n borderRightWidth: 'borderRightStyle',\n}\n\nexport function getStylesAtomic(style: any) {\n const styles: { [key: string]: ViewStyle } = {\n base: {},\n }\n // split psuedos\n for (const key in style) {\n if (!!pseudos[key]) {\n styles[key] = style[key]\n } else {\n styles.base[key] = style[key]\n }\n }\n return Object.keys(styles)\n .map((key) => {\n return getAtomicStyle(styles[key], pseudos[key])\n })\n .flat()\n}\n\nconst importantRegex = /\\!important*/g\n\nfunction getAtomicStyle(style: ViewStyle, pseudo?: { name: string; priority: number }): StyleObject[] {\n if (style == null || typeof style !== 'object') {\n throw new Error(`Wrong style type: \"${typeof style}\": ${style}`)\n }\n\n // why is this diff from react-native-web!? need to figure out\n for (const key in borderDefaults) {\n if (key in style) {\n style[borderDefaults[key]] = style[borderDefaults[key]] ?? 'solid'\n }\n }\n\n const all = {\n ...atomic(createCompileableStyle(createReactDOMStyle(i18Style(style)))),\n }\n\n return Object.keys(all).map((key) => {\n const val = all[key]\n const prefix = `_${getOrCreateStylePrefix(val.property)}`\n const hash = (() => {\n let s = `${val.value}`\n .replace(/[%]/g, 'pct')\n .replace(/[^a-z0-9]/gi, 'z')\n .replace(/\\s/, '-')\n if (s.length < 16) return s\n return simpleHash(val.identifier)\n })()\n\n // pseudos have a `--` to be easier to find with concatClassNames\n const psuedoPrefix = pseudo ? `-${pseudo.name}-` : ''\n const identifier = `${prefix}-${psuedoPrefix}${hash}`\n const className = `.${identifier}`\n const rules = val.rules.map((rule) => {\n if (pseudo) {\n const psuedoPrefixSelect = [...Array(pseudo.priority)].map(() => ':root').join('') + ' '\n let res = rule\n .replace(`.${val.identifier}`, `${psuedoPrefixSelect} ${className}`)\n .replace('{', `:${pseudo.name}{`)\n\n if (pseudo.name === 'hover') {\n // hover styles need to be conditional\n // perhaps this can be generalized but for now lets just shortcut\n // and hardcode for hover styles, if we need to later we can\n // WEIRD SYNTAX, SEE:\n // https://stackoverflow.com/questions/40532204/media-query-for-devices-supporting-hover\n res = `@media not all and (hover: none) { ${res} }`\n }\n return res\n }\n return rule.replace(`.${val.identifier}`, className).replace(importantRegex, '')\n })\n const result: StyleObject = {\n property: val.property,\n value: val.value,\n identifier,\n className,\n rules,\n }\n return result\n })\n}\n", "export const simpleHash = (str: string) => {\n let hash = 0\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash &= hash // Convert to 32bit integer\n }\n return new Uint32Array([hash])[0].toString(36)\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,5 +1,7 @@
1
1
  export * from "./concatClassName";
2
2
  export * from "./validStyleProps";
3
+ export * from "./uniqueStyleKeys";
4
+ export * from "./getNiceKey";
5
+ export * from "./getStylesAtomic";
3
6
  export * from "./types";
4
- export * from "./allRules";
5
7
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["export * from './concatClassName'\nexport * from './validStyleProps'\nexport * from './uniqueStyleKeys'\nexport * from './getNiceKey'\nexport * from './getStylesAtomic'\nexport * from './types'\n"],
5
+ "mappings": "AAAA;AACA;AACA;AACA;AACA;AACA;",
6
+ "names": []
7
+ }
File without changes