@stylexjs/shared 0.5.0-alpha.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
package/lib/index.d.ts CHANGED
@@ -26,6 +26,11 @@ import hash from './hash';
26
26
  import genFileBasedIdentifier from './utils/file-based-identifier';
27
27
  import * as m from './messages';
28
28
  export * as types from './types';
29
+ import {
30
+ PSEUDO_CLASS_PRIORITIES as _PSEUDO_CLASS_PRIORITIES,
31
+ AT_RULE_PRIORITIES as _AT_RULE_PRIORITIES,
32
+ PSEUDO_ELEMENT_PRIORITY as _PSEUDO_ELEMENT_PRIORITY,
33
+ } from './utils/property-priorities';
29
34
  import type {
30
35
  InjectableStyle as _InjectableStyle,
31
36
  CompiledNamespaces as _CompiledNamespaces,
@@ -44,6 +49,9 @@ export declare const utils: {
44
49
  export declare const messages: typeof m;
45
50
  export declare const IncludedStyles: typeof _IncludedStyles;
46
51
  export declare const firstThatWorks: typeof stylexFirstThatWorks;
52
+ export declare const PSEUDO_CLASS_PRIORITIES: typeof _PSEUDO_CLASS_PRIORITIES;
53
+ export declare const AT_RULE_PRIORITIES: typeof _AT_RULE_PRIORITIES;
54
+ export declare const PSEUDO_ELEMENT_PRIORITY: typeof _PSEUDO_ELEMENT_PRIORITY;
47
55
  export type InjectableStyle = _InjectableStyle;
48
56
  export type CompiledNamespaces = _CompiledNamespaces;
49
57
  export type MutableCompiledNamespaces = _MutableCompiledNamespaces;
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.utils = exports.types = exports.messages = exports.keyframes = exports.include = exports.firstThatWorks = exports.defineVars = exports.createTheme = exports.create = exports.IncludedStyles = void 0;
6
+ exports.utils = exports.types = exports.messages = exports.keyframes = exports.include = exports.firstThatWorks = exports.defineVars = exports.createTheme = exports.create = exports.PSEUDO_ELEMENT_PRIORITY = exports.PSEUDO_CLASS_PRIORITIES = exports.IncludedStyles = exports.AT_RULE_PRIORITIES = void 0;
7
7
  var _stylexCreate = _interopRequireDefault(require("./stylex-create"));
8
8
  var _stylexDefineVars = _interopRequireDefault(require("./stylex-define-vars"));
9
9
  var _stylexCreateTheme = _interopRequireDefault(require("./stylex-create-theme"));
@@ -15,6 +15,7 @@ var _fileBasedIdentifier = _interopRequireDefault(require("./utils/file-based-id
15
15
  var m = _interopRequireWildcard(require("./messages"));
16
16
  var _types = _interopRequireWildcard(require("./types"));
17
17
  exports.types = _types;
18
+ var _propertyPriorities = require("./utils/property-priorities");
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
21
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -29,4 +30,7 @@ const utils = exports.utils = {
29
30
  };
30
31
  const messages = exports.messages = m;
31
32
  const IncludedStyles = exports.IncludedStyles = _stylexInclude.IncludedStyles;
32
- const firstThatWorks = exports.firstThatWorks = _stylexFirstThatWorks.default;
33
+ const firstThatWorks = exports.firstThatWorks = _stylexFirstThatWorks.default;
34
+ const PSEUDO_CLASS_PRIORITIES = exports.PSEUDO_CLASS_PRIORITIES = _propertyPriorities.PSEUDO_CLASS_PRIORITIES;
35
+ const AT_RULE_PRIORITIES = exports.AT_RULE_PRIORITIES = _propertyPriorities.AT_RULE_PRIORITIES;
36
+ const PSEUDO_ELEMENT_PRIORITY = exports.PSEUDO_ELEMENT_PRIORITY = _propertyPriorities.PSEUDO_ELEMENT_PRIORITY;
package/lib/index.js.flow CHANGED
@@ -32,6 +32,11 @@ import hash from './hash';
32
32
  import genFileBasedIdentifier from './utils/file-based-identifier';
33
33
  import * as m from './messages';
34
34
  export * as types from './types';
35
+ import {
36
+ PSEUDO_CLASS_PRIORITIES as _PSEUDO_CLASS_PRIORITIES,
37
+ AT_RULE_PRIORITIES as _AT_RULE_PRIORITIES,
38
+ PSEUDO_ELEMENT_PRIORITY as _PSEUDO_ELEMENT_PRIORITY,
39
+ } from './utils/property-priorities';
35
40
 
36
41
  import type {
37
42
  InjectableStyle as _InjectableStyle,
@@ -52,6 +57,9 @@ declare export const utils: {
52
57
  declare export const messages: typeof m;
53
58
  declare export const IncludedStyles: typeof _IncludedStyles;
54
59
  declare export const firstThatWorks: typeof stylexFirstThatWorks;
60
+ declare export const PSEUDO_CLASS_PRIORITIES: typeof _PSEUDO_CLASS_PRIORITIES;
61
+ declare export const AT_RULE_PRIORITIES: typeof _AT_RULE_PRIORITIES;
62
+ declare export const PSEUDO_ELEMENT_PRIORITY: typeof _PSEUDO_ELEMENT_PRIORITY;
55
63
 
56
64
  export type InjectableStyle = _InjectableStyle;
57
65
  export type CompiledNamespaces = _CompiledNamespaces;
@@ -18,7 +18,10 @@ function getExpandedKeys(options) {
18
18
  return Object.keys(expansions[options.styleResolution ?? 'application-order']);
19
19
  }
20
20
  function flatMapExpandedShorthands(objEntry, options) {
21
- const [key, value] = objEntry;
21
+ let [key, value] = objEntry;
22
+ if (key.startsWith('var(') && key.endsWith(')')) {
23
+ key = key.slice(4, -1);
24
+ }
22
25
  const expansion = expansions[options.styleResolution ?? 'application-order'][key];
23
26
  if (expansion) {
24
27
  if (Array.isArray(value)) {
@@ -19,6 +19,16 @@ function normalizeWhitespace(ast, _) {
19
19
  break;
20
20
  }
21
21
  case 'div':
22
+ {
23
+ if (node.value === ',') {
24
+ node.before = '';
25
+ node.after = '';
26
+ } else {
27
+ node.before = ' ';
28
+ node.after = ' ';
29
+ }
30
+ break;
31
+ }
22
32
  case 'function':
23
33
  {
24
34
  node.before = '';
@@ -9,7 +9,14 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
9
9
  const angles = ['deg', 'grad', 'turn', 'rad'];
10
10
  const timings = ['ms', 's'];
11
11
  function normalizeZeroDimensions(ast, _) {
12
+ let endFunction = 0;
12
13
  ast.walk(node => {
14
+ if (node.type === 'function' && !endFunction) {
15
+ endFunction = node.sourceEndIndex ?? 0;
16
+ }
17
+ if (endFunction > 0 && node.sourceIndex > endFunction) {
18
+ endFunction = 0;
19
+ }
13
20
  if (node.type !== 'word') {
14
21
  return;
15
22
  }
@@ -21,7 +28,7 @@ function normalizeZeroDimensions(ast, _) {
21
28
  node.value = '0deg';
22
29
  } else if (timings.indexOf(dimension.unit) !== -1) {
23
30
  node.value = '0s';
24
- } else {
31
+ } else if (!endFunction) {
25
32
  node.value = '0';
26
33
  }
27
34
  });
@@ -7,5 +7,64 @@
7
7
  *
8
8
  */
9
9
 
10
+ type PseudoClassPriorities = {
11
+ ':is': 40;
12
+ ':where': 40;
13
+ ':not': 40;
14
+ ':has': 45;
15
+ ':dir': 50;
16
+ ':lang': 51;
17
+ ':first-child': 52;
18
+ ':first-of-type': 53;
19
+ ':last-child': 54;
20
+ ':last-of-type': 55;
21
+ ':only-child': 56;
22
+ ':only-of-type': 57;
23
+ ':nth-child': 60;
24
+ ':nth-last-child': 61;
25
+ ':nth-of-type': 62;
26
+ ':nth-last-of-type': 63;
27
+ ':empty': 70;
28
+ ':link': 80;
29
+ ':any-link': 81;
30
+ ':local-link': 82;
31
+ ':target-within': 83;
32
+ ':target': 84;
33
+ ':visited': 85;
34
+ ':enabled': 91;
35
+ ':disabled': 92;
36
+ ':required': 93;
37
+ ':optional': 94;
38
+ ':read-only': 95;
39
+ ':read-write': 96;
40
+ ':placeholder-shown': 97;
41
+ ':in-range': 98;
42
+ ':out-of-range': 99;
43
+ ':default': 100;
44
+ ':checked': 101;
45
+ ':indeterminate': 101;
46
+ ':blank': 102;
47
+ ':valid': 103;
48
+ ':invalid': 104;
49
+ ':user-invalid': 105;
50
+ ':autofill': 110;
51
+ ':picture-in-picture': 120;
52
+ ':modal': 121;
53
+ ':fullscreen': 122;
54
+ ':paused': 123;
55
+ ':playing': 124;
56
+ ':current': 125;
57
+ ':past': 126;
58
+ ':future': 127;
59
+ ':hover': 130;
60
+ ':focusWithin': 140;
61
+ ':focus': 150;
62
+ ':focusVisible': 160;
63
+ ':active': 170;
64
+ };
65
+ export declare const PSEUDO_CLASS_PRIORITIES: Readonly<PseudoClassPriorities>;
66
+ type AtRulePriorities = { '@supports': 30; '@media': 200; '@container': 300 };
67
+ export declare const AT_RULE_PRIORITIES: Readonly<AtRulePriorities>;
68
+ export declare const PSEUDO_ELEMENT_PRIORITY: number;
10
69
  declare function getPriority(key: string): number;
11
70
  export default getPriority;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.PSEUDO_ELEMENT_PRIORITY = exports.PSEUDO_CLASS_PRIORITIES = exports.AT_RULE_PRIORITIES = void 0;
6
7
  exports.default = getPriority;
7
8
  const longHandPhysical = new Set();
8
9
  const longHandLogical = new Set();
@@ -440,7 +441,7 @@ longHandLogical.add('math-depth');
440
441
  longHandLogical.add('math-shift');
441
442
  longHandLogical.add('math-style');
442
443
  longHandLogical.add('touch-action');
443
- const PRIORITIES = {
444
+ const PSEUDO_CLASS_PRIORITIES = exports.PSEUDO_CLASS_PRIORITIES = {
444
445
  ':is': 40,
445
446
  ':where': 40,
446
447
  ':not': 40,
@@ -495,25 +496,31 @@ const PRIORITIES = {
495
496
  ':focusVisible': 160,
496
497
  ':active': 170
497
498
  };
499
+ const AT_RULE_PRIORITIES = exports.AT_RULE_PRIORITIES = {
500
+ '@supports': 30,
501
+ '@media': 200,
502
+ '@container': 300
503
+ };
504
+ const PSEUDO_ELEMENT_PRIORITY = exports.PSEUDO_ELEMENT_PRIORITY = 5000;
498
505
  function getPriority(key) {
499
506
  if (key.startsWith('--')) {
500
507
  return 1;
501
508
  }
502
509
  if (key.startsWith('@supports')) {
503
- return 30;
510
+ return AT_RULE_PRIORITIES['@supports'];
504
511
  }
505
512
  if (key.startsWith('@media')) {
506
- return 200;
513
+ return AT_RULE_PRIORITIES['@media'];
507
514
  }
508
515
  if (key.startsWith('@container')) {
509
- return 300;
516
+ return AT_RULE_PRIORITIES['@container'];
510
517
  }
511
518
  if (key.startsWith('::')) {
512
- return 5000;
519
+ return PSEUDO_ELEMENT_PRIORITY;
513
520
  }
514
521
  if (key.startsWith(':')) {
515
522
  const prop = key.startsWith(':') && key.includes('(') ? key.slice(0, key.indexOf('(')) : key;
516
- return PRIORITIES[prop] ?? 40;
523
+ return PSEUDO_CLASS_PRIORITIES[prop] ?? 40;
517
524
  }
518
525
  if (longHandPhysical.has(key)) {
519
526
  return 4000;
@@ -7,4 +7,72 @@
7
7
  * @flow strict
8
8
  */
9
9
 
10
+ type PseudoClassPriorities = {
11
+ ':is': 40,
12
+ ':where': 40,
13
+ ':not': 40,
14
+ ':has': 45,
15
+ ':dir': 50,
16
+ ':lang': 51,
17
+ ':first-child': 52,
18
+ ':first-of-type': 53,
19
+ ':last-child': 54,
20
+ ':last-of-type': 55,
21
+ ':only-child': 56,
22
+ ':only-of-type': 57,
23
+ ':nth-child': 60,
24
+ ':nth-last-child': 61,
25
+ ':nth-of-type': 62,
26
+ ':nth-last-of-type': 63, // 'nth-last-of-type' is the same priority as 'nth-of-type
27
+ ':empty': 70,
28
+ ':link': 80,
29
+ ':any-link': 81,
30
+ ':local-link': 82,
31
+ ':target-within': 83,
32
+ ':target': 84,
33
+ ':visited': 85,
34
+ ':enabled': 91,
35
+ ':disabled': 92,
36
+ ':required': 93,
37
+ ':optional': 94,
38
+ ':read-only': 95,
39
+ ':read-write': 96,
40
+ ':placeholder-shown': 97,
41
+ ':in-range': 98,
42
+ ':out-of-range': 99,
43
+ ':default': 100,
44
+ ':checked': 101,
45
+ ':indeterminate': 101,
46
+ ':blank': 102,
47
+ ':valid': 103,
48
+ ':invalid': 104,
49
+ ':user-invalid': 105,
50
+ ':autofill': 110,
51
+ ':picture-in-picture': 120,
52
+ ':modal': 121,
53
+ ':fullscreen': 122,
54
+ ':paused': 123,
55
+ ':playing': 124,
56
+ ':current': 125,
57
+ ':past': 126,
58
+ ':future': 127,
59
+ ':hover': 130,
60
+ ':focusWithin': 140,
61
+ ':focus': 150,
62
+ ':focusVisible': 160,
63
+ ':active': 170,
64
+ };
65
+
66
+ declare export const PSEUDO_CLASS_PRIORITIES: $ReadOnly<PseudoClassPriorities>;
67
+
68
+ type AtRulePriorities = {
69
+ '@supports': 30,
70
+ '@media': 200,
71
+ '@container': 300,
72
+ };
73
+
74
+ declare export const AT_RULE_PRIORITIES: $ReadOnly<AtRulePriorities>;
75
+
76
+ declare export const PSEUDO_ELEMENT_PRIORITY: number;
77
+
10
78
  declare export default function getPriority(key: string): number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stylexjs/shared",
3
- "version": "0.5.0-alpha.3",
3
+ "version": "0.5.0",
4
4
  "main": "lib/index.js",
5
5
  "repository": "https://www.github.com/facebook/stylex",
6
6
  "license": "MIT",
@@ -13,7 +13,7 @@
13
13
  "postcss-value-parser": "^4.1.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@stylexjs/scripts": "0.5.0-alpha.3"
16
+ "@stylexjs/scripts": "0.5.0"
17
17
  },
18
18
  "jest": {
19
19
  "snapshotFormat": {