@stylexjs/shared 0.2.0-beta.21 → 0.2.0-beta.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. package/lib/convert-to-className.js +6 -6
  2. package/lib/generate-css-rule.js +3 -3
  3. package/lib/hash.js +10 -11
  4. package/lib/index.d.ts +4 -4
  5. package/lib/index.js +12 -21
  6. package/lib/index.js.flow +4 -4
  7. package/lib/messages.d.ts +2 -1
  8. package/lib/messages.js +29 -54
  9. package/lib/messages.js.flow +2 -1
  10. package/lib/physical-rtl/generate-ltr.js +39 -39
  11. package/lib/physical-rtl/generate-rtl.js +57 -57
  12. package/lib/preprocess-rules/PreRule.js +2 -2
  13. package/lib/preprocess-rules/application-order.d.ts +36 -8
  14. package/lib/preprocess-rules/application-order.js +149 -164
  15. package/lib/preprocess-rules/application-order.js.flow +35 -7
  16. package/lib/preprocess-rules/basic-validation.js +6 -6
  17. package/lib/preprocess-rules/flatten-raw-style-obj.js +10 -10
  18. package/lib/preprocess-rules/index.js +6 -6
  19. package/lib/preprocess-rules/legacy-expand-shorthands.d.ts +22 -2
  20. package/lib/preprocess-rules/legacy-expand-shorthands.js +81 -65
  21. package/lib/preprocess-rules/legacy-expand-shorthands.js.flow +22 -2
  22. package/lib/preprocess-rules/property-specificity.d.ts +29 -25
  23. package/lib/preprocess-rules/property-specificity.js +63 -75
  24. package/lib/preprocess-rules/property-specificity.js.flow +28 -24
  25. package/lib/properties/CSS Animations.json +445 -0
  26. package/lib/properties/CSS Backgrounds and Borders.json +1085 -0
  27. package/lib/properties/CSS Basic User Interface.json +365 -0
  28. package/lib/properties/CSS Box Alignment.json +245 -0
  29. package/lib/properties/CSS Box Model.json +501 -0
  30. package/lib/properties/CSS Color.json +100 -0
  31. package/lib/properties/CSS Columns.json +185 -0
  32. package/lib/properties/CSS Containment.json +203 -0
  33. package/lib/properties/CSS Counter Styles.json +56 -0
  34. package/lib/properties/CSS Display.json +20 -0
  35. package/lib/properties/CSS Flexible Box Layout.json +167 -0
  36. package/lib/properties/CSS Fonts.json +684 -0
  37. package/lib/properties/CSS Fragmentation.json +110 -0
  38. package/lib/properties/CSS Generated Content.json +38 -0
  39. package/lib/properties/CSS Grid Layout.json +500 -0
  40. package/lib/properties/CSS Images.json +91 -0
  41. package/lib/properties/CSS Inline.json +38 -0
  42. package/lib/properties/CSS Lists and Counters.json +86 -0
  43. package/lib/properties/CSS Logical Properties.json +1086 -0
  44. package/lib/properties/CSS Masking.json +399 -0
  45. package/lib/properties/CSS Miscellaneous.json +38 -0
  46. package/lib/properties/CSS Motion Path.json +132 -0
  47. package/lib/properties/CSS Overflow.json +216 -0
  48. package/lib/properties/CSS Pages.json +83 -0
  49. package/lib/properties/CSS Positioning.json +166 -0
  50. package/lib/properties/CSS Ruby.json +55 -0
  51. package/lib/properties/CSS Scroll Anchoring.json +19 -0
  52. package/lib/properties/CSS Scroll Snap.json +604 -0
  53. package/lib/properties/CSS Scrollbars.json +38 -0
  54. package/lib/properties/CSS Shapes.json +56 -0
  55. package/lib/properties/CSS Speech.json +20 -0
  56. package/lib/properties/CSS Table.json +115 -0
  57. package/lib/properties/CSS Text Decoration.json +312 -0
  58. package/lib/properties/CSS Text.json +415 -0
  59. package/lib/properties/CSS Transforms.json +188 -0
  60. package/lib/properties/CSS Transitions.json +122 -0
  61. package/lib/properties/CSS Variables.json +20 -0
  62. package/lib/properties/CSS View Transitions.json +20 -0
  63. package/lib/properties/CSS Will Change.json +20 -0
  64. package/lib/properties/CSS Writing Modes.json +92 -0
  65. package/lib/properties/Compositing and Blending.json +62 -0
  66. package/lib/properties/Filter Effects.json +38 -0
  67. package/lib/properties/MathML.json +56 -0
  68. package/lib/properties/Microsoft Extensions.json +885 -0
  69. package/lib/properties/Mozilla Extensions.json +607 -0
  70. package/lib/properties/Pointer Events.json +20 -0
  71. package/lib/properties/WebKit Extensions.json +707 -0
  72. package/lib/properties.json +10122 -0
  73. package/lib/{stylex-override-vars.d.ts → stylex-create-theme.d.ts} +2 -2
  74. package/lib/{stylex-override-vars.js → stylex-create-theme.js} +13 -13
  75. package/lib/{stylex-override-vars.js.flow → stylex-create-theme.js.flow} +1 -1
  76. package/lib/stylex-create.js +1 -1
  77. package/lib/{stylex-create-vars.d.ts → stylex-define-vars.d.ts} +2 -2
  78. package/lib/{stylex-create-vars.js → stylex-define-vars.js} +9 -9
  79. package/lib/{stylex-create-vars.js.flow → stylex-define-vars.js.flow} +1 -1
  80. package/lib/stylex-keyframes.js +6 -6
  81. package/lib/transform-value.js +13 -15
  82. package/lib/types/index.js +33 -46
  83. package/lib/utils/dashify.js +1 -1
  84. package/lib/utils/default-options.js +4 -5
  85. package/lib/utils/file-based-identifier.js +1 -1
  86. package/lib/utils/genCSSRule.js +6 -6
  87. package/lib/utils/normalize-value.js +3 -2
  88. package/lib/utils/normalizers/convert-camel-case-transition-props.d.ts +14 -0
  89. package/lib/utils/normalizers/convert-camel-case-transition-props.js +23 -0
  90. package/lib/utils/normalizers/convert-camel-case-transition-props.js.flow +13 -0
  91. package/lib/utils/normalizers/convert-camel-case-values.d.ts +14 -0
  92. package/lib/utils/normalizers/convert-camel-case-values.js +23 -0
  93. package/lib/utils/normalizers/convert-camel-case-values.js.flow +13 -0
  94. package/lib/utils/normalizers/detect-unclosed-fns.js +2 -2
  95. package/lib/utils/normalizers/font-size-px-to-rem.js +4 -4
  96. package/lib/utils/normalizers/leading-zero.js +3 -3
  97. package/lib/utils/normalizers/quotes.js +4 -4
  98. package/lib/utils/normalizers/timings.js +4 -4
  99. package/lib/utils/normalizers/whitespace.js +12 -12
  100. package/lib/utils/normalizers/zero-dimensions.js +8 -8
  101. package/lib/utils/object-utils.d.ts +3 -6
  102. package/lib/utils/object-utils.js +2 -2
  103. package/lib/utils/property-priorities.js +527 -88
  104. package/lib/utils/split-css-value.js +8 -8
  105. package/lib/validate.js +2 -2
  106. package/package.json +2 -2
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  import type { InjectableStyle, StyleXOptions } from './common-types';
11
- declare function styleXOverrideVars(
11
+ declare function styleXCreateTheme(
12
12
  themeVars: {
13
13
  readonly __themeName__: string;
14
14
  readonly [$$Key$$: string]: string;
@@ -23,4 +23,4 @@ declare function styleXOverrideVars(
23
23
  { $$css: true; readonly [$$Key$$: string]: string },
24
24
  { [$$Key$$: string]: InjectableStyle },
25
25
  ];
26
- export default styleXOverrideVars;
26
+ export default styleXCreateTheme;
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = styleXOverrideVars;
6
+ exports.default = styleXCreateTheme;
7
7
  var _hash = _interopRequireDefault(require("./hash"));
8
8
  var _defaultOptions = require("./utils/default-options");
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- function styleXOverrideVars(themeVars, variables, options) {
11
- if (typeof themeVars.__themeName__ !== "string") {
12
- throw new Error("Can only override variables theme created with stylex.unstable_createVars().");
10
+ function styleXCreateTheme(themeVars, variables, options) {
11
+ if (typeof themeVars.__themeName__ !== 'string') {
12
+ throw new Error('Can only override variables theme created with stylex.defineVars().');
13
13
  }
14
14
  const {
15
15
  classNamePrefix
@@ -22,13 +22,13 @@ function styleXOverrideVars(themeVars, variables, options) {
22
22
  const cssVariablesOverrideString = sortedKeys.map(key => {
23
23
  const varNameHash = themeVars[key].slice(4, -1);
24
24
  const value = variables[key];
25
- if (varNameHash != null && value !== null && typeof value === "object") {
25
+ if (varNameHash != null && value !== null && typeof value === 'object') {
26
26
  if (value.default === undefined) {
27
- throw new Error("Default value is not defined for " + key + " variable.");
27
+ throw new Error('Default value is not defined for ' + key + ' variable.');
28
28
  }
29
29
  const definedVarString = `${varNameHash}:${value.default};`;
30
30
  Object.keys(value).forEach(key => {
31
- if (key.startsWith("@")) {
31
+ if (key.startsWith('@')) {
32
32
  const definedVarStringForAtRule = `${varNameHash}:${value[key]};`;
33
33
  if (atRules[key] == null) {
34
34
  atRules[key] = [definedVarStringForAtRule];
@@ -39,16 +39,16 @@ function styleXOverrideVars(themeVars, variables, options) {
39
39
  });
40
40
  return definedVarString;
41
41
  }
42
- return varNameHash != null && typeof value !== "object" ? `${varNameHash}:${value};` : "";
43
- }).join("");
42
+ return varNameHash != null && typeof value !== 'object' ? `${varNameHash}:${value};` : '';
43
+ }).join('');
44
44
  const sortedAtRules = Object.keys(atRules).sort();
45
45
  const atRulesStringForHash = sortedAtRules.map(atRule => {
46
- return `${atRule}{${atRules[atRule].sort().join("")}}`;
47
- }).join("");
46
+ return `${atRule}{${atRules[atRule].sort().join('')}}`;
47
+ }).join('');
48
48
  const overrideClassName = classNamePrefix + (0, _hash.default)(cssVariablesOverrideString + atRulesStringForHash);
49
49
  const atRulesCss = sortedAtRules.map(atRule => {
50
- return `${atRule}{.${overrideClassName}{${atRules[atRule].join("")}}}`;
51
- }).join("");
50
+ return `${atRule}{.${overrideClassName}{${atRules[atRule].join('')}}}`;
51
+ }).join('');
52
52
  return [{
53
53
  $$css: true,
54
54
  [themeVars.__themeName__]: overrideClassName
@@ -12,7 +12,7 @@ import type { InjectableStyle, StyleXOptions } from './common-types';
12
12
  // It takes an object of variables with their values and the original set of variables to override
13
13
  // and returns a hashed className with variables overrides.
14
14
  //
15
- declare export default function styleXOverrideVars(
15
+ declare export default function styleXCreateTheme(
16
16
  themeVars: { +__themeName__: string, +[string]: string },
17
17
  variables: { +[string]: string | { default: string, +[string]: string } },
18
18
  options?: StyleXOptions,
@@ -32,7 +32,7 @@ function styleXCreateSet(namespaces) {
32
32
  const className = classNameTuples.map(_ref2 => {
33
33
  let [className] = _ref2;
34
34
  return className;
35
- }).join(" ") || null;
35
+ }).join(' ') || null;
36
36
  namespaceObj[key] = className;
37
37
  for (const [className, injectable] of classNameTuples) {
38
38
  if (injectedStyles[className] == null) {
@@ -19,7 +19,7 @@ type VarsObject<
19
19
  * | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Unsupported feature: Translating "object types with complex spreads" is currently not supported.
20
20
  **/
21
21
  any>;
22
- declare function styleXCreateVars<
22
+ declare function styleXDefineVars<
23
23
  Vars extends {
24
24
  readonly [$$Key$$: string]:
25
25
  | string
@@ -33,4 +33,4 @@ declare function styleXCreateVars<
33
33
  }
34
34
  >,
35
35
  ): [VarsObject<Vars>, { css: string }];
36
- export default styleXCreateVars;
36
+ export default styleXDefineVars;
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = styleXCreateVars;
6
+ exports.default = styleXDefineVars;
7
7
  var _hash = _interopRequireDefault(require("./hash"));
8
8
  var _objectUtils = require("./utils/object-utils");
9
9
  var _defaultOptions = require("./utils/default-options");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- function styleXCreateVars(variables, options) {
11
+ function styleXDefineVars(variables, options) {
12
12
  const {
13
13
  classNamePrefix,
14
14
  themeName
@@ -45,13 +45,13 @@ function constructCssVariablesString(variables) {
45
45
  nameHash,
46
46
  value
47
47
  }] = _ref2;
48
- if (value !== null && typeof value === "object") {
48
+ if (value !== null && typeof value === 'object') {
49
49
  if (value.default === undefined) {
50
- throw new Error("Default value is not defined for " + key + " variable.");
50
+ throw new Error('Default value is not defined for ' + key + ' variable.');
51
51
  }
52
52
  const definedVarString = `--${nameHash}:${value.default};`;
53
53
  Object.keys(value).forEach(key => {
54
- if (key.startsWith("@")) {
54
+ if (key.startsWith('@')) {
55
55
  const definedVarStringForAtRule = `--${nameHash}:${value[key]};`;
56
56
  if (atRules[key] == null) {
57
57
  atRules[key] = [definedVarStringForAtRule];
@@ -63,10 +63,10 @@ function constructCssVariablesString(variables) {
63
63
  return definedVarString;
64
64
  }
65
65
  return `--${nameHash}:${value};`;
66
- }).join("");
66
+ }).join('');
67
67
  const atRulesString = (0, _objectUtils.objEntries)(atRules).map(_ref3 => {
68
68
  let [atRule, varsArr] = _ref3;
69
- return `${atRule}{:root{${varsArr.join("")}}}`;
70
- }).join("");
71
- return `:root{${varsString}}${atRulesString || ""}`;
69
+ return `${atRule}{:root{${varsArr.join('')}}}`;
70
+ }).join('');
71
+ return `:root{${varsString}}${atRulesString || ''}`;
72
72
  }
@@ -18,7 +18,7 @@ type VarsObject<
18
18
 
19
19
  // Similar to `stylex.create` it takes an object of variables with their values
20
20
  // and returns a string after hashing it.
21
- declare export default function styleXCreateVars<
21
+ declare export default function styleXDefineVars<
22
22
  Vars: {
23
23
  +[string]: string | { +default: string, +[string]: string },
24
24
  },
@@ -16,15 +16,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
16
16
  function styleXKeyframes(frames) {
17
17
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _defaultOptions.defaultOptions;
18
18
  const {
19
- stylexSheetName = "<>",
20
- classNamePrefix = "x"
19
+ stylexSheetName = '<>',
20
+ classNamePrefix = 'x'
21
21
  } = options;
22
22
  const expandedObject = (0, _objectUtils.objMap)(frames, frame => _objectUtils.Pipe.create(frame).pipe(frame => expandFrameShorthands(frame, options)).pipe(x => (0, _objectUtils.objMapKeys)(x, _dashify.default)).pipe(x => (0, _objectUtils.objMap)(x, (value, key) => (0, _transformValue.default)(key, value))).done());
23
23
  const ltrStyles = (0, _objectUtils.objMap)(expandedObject, frame => (0, _objectUtils.objMapEntry)(frame, _generateLtr.default));
24
24
  const rtlStyles = (0, _objectUtils.objMap)(expandedObject, frame => (0, _objectUtils.objMapEntry)(frame, entry => (0, _generateRtl.default)(entry) ?? entry));
25
25
  const ltrString = constructKeyframesObj(ltrStyles);
26
26
  const rtlString = constructKeyframesObj(rtlStyles);
27
- const animationName = classNamePrefix + (0, _hash.default)(stylexSheetName + ltrString) + "-B";
27
+ const animationName = classNamePrefix + (0, _hash.default)(stylexSheetName + ltrString) + '-B';
28
28
  const ltr = `@keyframes ${animationName}{${ltrString}}`;
29
29
  const rtl = ltrString === rtlString ? null : `@keyframes ${animationName}{${rtlString}}`;
30
30
  return [animationName, {
@@ -36,7 +36,7 @@ function styleXKeyframes(frames) {
36
36
  function expandFrameShorthands(frame, options) {
37
37
  return (0, _objectUtils.objFromEntries)((0, _objectUtils.objEntries)(frame).flatMap(pair => (0, _index.default)(pair, options).map(_ref => {
38
38
  let [key, value] = _ref;
39
- if (typeof value === "string" || typeof value === "number") {
39
+ if (typeof value === 'string' || typeof value === 'number') {
40
40
  return [key, value];
41
41
  }
42
42
  return null;
@@ -51,6 +51,6 @@ function constructKeyframesObj(frames) {
51
51
  return `${key}{${(0, _objectUtils.objEntries)(value).map(_ref4 => {
52
52
  let [k, v] = _ref4;
53
53
  return `${k}:${v};`;
54
- }).join("")}}`;
55
- }).join("");
54
+ }).join('')}}`;
55
+ }).join('');
56
56
  }
@@ -9,13 +9,13 @@ exports.timeUnits = exports.lengthUnits = void 0;
9
9
  var _normalizeValue = _interopRequireDefault(require("./utils/normalize-value"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  function transformValue(key, rawValue) {
12
- const value = typeof rawValue === "number" ? String(Math.round(rawValue * 10000) / 10000) + getNumberSuffix(key) : rawValue;
13
- if (key === "content" && typeof value === "string") {
12
+ const value = typeof rawValue === 'number' ? String(Math.round(rawValue * 10000) / 10000) + getNumberSuffix(key) : rawValue;
13
+ if (key === 'content' && typeof value === 'string') {
14
14
  const val = value.trim();
15
15
  if (val.match(/^attr\([a-zA-Z0-9-]+\)$/)) {
16
16
  return val;
17
17
  }
18
- if (!(val.startsWith("\"") && val.endsWith("\"") || val.startsWith("'") && val.endsWith("'"))) {
18
+ if (!(val.startsWith('"') && val.endsWith('"') || val.startsWith("'") && val.endsWith("'"))) {
19
19
  return `"${val}"`;
20
20
  }
21
21
  }
@@ -23,24 +23,22 @@ function transformValue(key, rawValue) {
23
23
  }
24
24
  function getNumberSuffix(key) {
25
25
  if (unitlessNumberProperties.has(key)) {
26
- return "";
26
+ return '';
27
27
  }
28
28
  const suffix = numberPropertySuffixes[key];
29
29
  if (suffix == null) {
30
- return "px";
30
+ return 'px';
31
31
  } else {
32
32
  return suffix;
33
33
  }
34
34
  }
35
- const unitlessNumberProperties = new Set(["animationIterationCount", "aspectRatio", "borderImageOutset", "borderImageSlice", "borderImageWidth", "columnCount", "flex", "flexGrow", "flexPositive", "flexShrink", "flexOrder", "gridRow", "gridColumn", "fontWeight", "lineClamp", "lineHeight", "opacity", "order", "orphans", "tabSize", "widows", "zIndex", "fillOpacity", "floodOpacity", "stopOpacity", "strokeDasharray", "strokeDashoffset", "strokeMiterlimit", "strokeOpacity", "strokeWidth"]);
35
+ const unitlessNumberProperties = new Set(['animationIterationCount', 'aspectRatio', 'borderImageOutset', 'borderImageSlice', 'borderImageWidth', 'columnCount', 'flex', 'flexGrow', 'flexPositive', 'flexShrink', 'flexOrder', 'gridRow', 'gridColumn', 'fontWeight', 'lineClamp', 'lineHeight', 'opacity', 'order', 'orphans', 'tabSize', 'widows', 'zIndex', 'fillOpacity', 'floodOpacity', 'stopOpacity', 'strokeDasharray', 'strokeDashoffset', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'scale']);
36
36
  const numberPropertySuffixes = {
37
- animationDelay: "ms",
38
- animationDuration: "ms",
39
- transitionDelay: "ms",
40
- transitionDuration: "ms",
41
- voiceDuration: "ms"
37
+ animationDelay: 'ms',
38
+ animationDuration: 'ms',
39
+ transitionDelay: 'ms',
40
+ transitionDuration: 'ms',
41
+ voiceDuration: 'ms'
42
42
  };
43
- const timeUnits = new Set(Object.keys(numberPropertySuffixes));
44
- exports.timeUnits = timeUnits;
45
- const lengthUnits = new Set(["backgroundPositionX", "backgroundPositionY", "blockSize", "borderBlockEndWidth", "borderBlockStartWidth", "borderBlockWidth", "borderVerticalWidth", "borderVerticalWidth", "borderBottomLeftRadius", "borderBottomRightRadius", "borderBottomWidth", "borderEndEndRadius", "borderEndStartRadius", "borderImageWidth", "borderInlineEndWidth", "borderEndWidth", "borderInlineStartWidth", "borderStartWidth", "borderInlineWidth", "borderHorizontalWidth", "borderLeftWidth", "borderRightWidth", "borderSpacing", "borderStartEndRadius", "borderStartStartRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderTopWidth", "bottom", "columnGap", "columnRuleWidth", "columnWidth", "containIntrinsicBlockSize", "containIntrinsicHeight", "containIntrinsicInlineSize", "containIntrinsicWidth", "flexBasis", "fontSize", "fontSmooth", "height", "inlineSize", "insetBlockEnd", "insetBlockStart", "insetInlineEnd", "insetInlineStart", "left", "letterSpacing", "marginBlockEnd", "marginBlockStart", "marginBottom", "marginInlineEnd", "marginEnd", "marginInlineStart", "marginStart", "marginLeft", "marginRight", "marginTop", "maskBorderOutset", "maskBorderWidth", "maxBlockSize", "maxHeight", "maxInlineSize", "maxWidth", "minBlockSize", "minHeight", "minInlineSize", "minWidth", "offsetDistance", "outlineOffset", "outlineWidth", "overflowClipMargin", "paddingBlockEnd", "paddingBlockStart", "paddingBottom", "paddingInlineEnd", "paddingEnd", "paddingInlineStart", "paddingStart", "paddingLeft", "paddingRight", "paddingTop", "perspective", "right", "rowGap", "scrollMarginBlockEnd", "scrollMarginBlockStart", "scrollMarginBottom", "scrollMarginInlineEnd", "scrollMarginInlineStart", "scrollMarginLeft", "scrollMarginRight", "scrollMarginTop", "scrollPaddingBlockEnd", "scrollPaddingBlockStart", "scrollPaddingBottom", "scrollPaddingInlineEnd", "scrollPaddingInlineStart", "scrollPaddingLeft", "scrollPaddingRight", "scrollPaddingTop", "scrollSnapMarginBottom", "scrollSnapMarginLeft", "scrollSnapMarginRight", "scrollSnapMarginTop", "shapeMargin", "tabSize", "textDecorationThickness", "textIndent", "textUnderlineOffset", "top", "transformOrigin", "translate", "verticalAlign", "width", "wordSpacing", "border", "borderBlock", "borderBlockEnd", "borderBlockStart", "borderBottom", "borderLeft", "borderRadius", "borderRight", "borderTop", "borderWidth", "columnRule", "containIntrinsicSize", "gap", "inset", "insetBlock", "insetInline", "margin", "marginBlock", "marginVertical", "marginInline", "marginHorizontal", "offset", "outline", "padding", "paddingBlock", "paddingVertical", "paddingInline", "paddingHorizontal", "scrollMargin", "scrollMarginBlock", "scrollMarginInline", "scrollPadding", "scrollPaddingBlock", "scrollPaddingInline", "scrollSnapMargin"]);
46
- exports.lengthUnits = lengthUnits;
43
+ const timeUnits = exports.timeUnits = new Set(Object.keys(numberPropertySuffixes));
44
+ const lengthUnits = exports.lengthUnits = new Set(['backgroundPositionX', 'backgroundPositionY', 'blockSize', 'borderBlockEndWidth', 'borderBlockStartWidth', 'borderBlockWidth', 'borderVerticalWidth', 'borderVerticalWidth', 'borderBottomLeftRadius', 'borderBottomRightRadius', 'borderBottomWidth', 'borderEndEndRadius', 'borderEndStartRadius', 'borderImageWidth', 'borderInlineEndWidth', 'borderEndWidth', 'borderInlineStartWidth', 'borderStartWidth', 'borderInlineWidth', 'borderHorizontalWidth', 'borderLeftWidth', 'borderRightWidth', 'borderSpacing', 'borderStartEndRadius', 'borderStartStartRadius', 'borderTopLeftRadius', 'borderTopRightRadius', 'borderTopWidth', 'bottom', 'columnGap', 'columnRuleWidth', 'columnWidth', 'containIntrinsicBlockSize', 'containIntrinsicHeight', 'containIntrinsicInlineSize', 'containIntrinsicWidth', 'flexBasis', 'fontSize', 'fontSmooth', 'height', 'inlineSize', 'insetBlockEnd', 'insetBlockStart', 'insetInlineEnd', 'insetInlineStart', 'left', 'letterSpacing', 'marginBlockEnd', 'marginBlockStart', 'marginBottom', 'marginInlineEnd', 'marginEnd', 'marginInlineStart', 'marginStart', 'marginLeft', 'marginRight', 'marginTop', 'maskBorderOutset', 'maskBorderWidth', 'maxBlockSize', 'maxHeight', 'maxInlineSize', 'maxWidth', 'minBlockSize', 'minHeight', 'minInlineSize', 'minWidth', 'offsetDistance', 'outlineOffset', 'outlineWidth', 'overflowClipMargin', 'paddingBlockEnd', 'paddingBlockStart', 'paddingBottom', 'paddingInlineEnd', 'paddingEnd', 'paddingInlineStart', 'paddingStart', 'paddingLeft', 'paddingRight', 'paddingTop', 'perspective', 'right', 'rowGap', 'scrollMarginBlockEnd', 'scrollMarginBlockStart', 'scrollMarginBottom', 'scrollMarginInlineEnd', 'scrollMarginInlineStart', 'scrollMarginLeft', 'scrollMarginRight', 'scrollMarginTop', 'scrollPaddingBlockEnd', 'scrollPaddingBlockStart', 'scrollPaddingBottom', 'scrollPaddingInlineEnd', 'scrollPaddingInlineStart', 'scrollPaddingLeft', 'scrollPaddingRight', 'scrollPaddingTop', 'scrollSnapMarginBottom', 'scrollSnapMarginLeft', 'scrollSnapMarginRight', 'scrollSnapMarginTop', 'shapeMargin', 'tabSize', 'textDecorationThickness', 'textIndent', 'textUnderlineOffset', 'top', 'transformOrigin', 'translate', 'verticalAlign', 'width', 'wordSpacing', 'border', 'borderBlock', 'borderBlockEnd', 'borderBlockStart', 'borderBottom', 'borderLeft', 'borderRadius', 'borderRight', 'borderTop', 'borderWidth', 'columnRule', 'containIntrinsicSize', 'gap', 'inset', 'insetBlock', 'insetInline', 'margin', 'marginBlock', 'marginVertical', 'marginInline', 'marginHorizontal', 'offset', 'outline', 'padding', 'paddingBlock', 'paddingVertical', 'paddingInline', 'paddingHorizontal', 'scrollMargin', 'scrollMarginBlock', 'scrollMarginInline', 'scrollPadding', 'scrollPaddingBlock', 'scrollPaddingInline', 'scrollSnapMargin']);
@@ -7,8 +7,8 @@ exports.url = exports.transformList = exports.transformFunction = exports.time =
7
7
  class CSSType {}
8
8
  exports.CSSType = CSSType;
9
9
  class Angle extends CSSType {
10
- syntax = "<angle>";
11
- static syntax = "<angle>";
10
+ syntax = '<angle>';
11
+ static syntax = '<angle>';
12
12
  constructor(value) {
13
13
  super();
14
14
  this.value = value;
@@ -18,10 +18,9 @@ class Angle extends CSSType {
18
18
  }
19
19
  }
20
20
  exports.Angle = Angle;
21
- const angle = Angle.create;
22
- exports.angle = angle;
21
+ const angle = exports.angle = Angle.create;
23
22
  class Color extends CSSType {
24
- syntax = "<color>";
23
+ syntax = '<color>';
25
24
  constructor(value) {
26
25
  super();
27
26
  this.value = value;
@@ -31,10 +30,9 @@ class Color extends CSSType {
31
30
  }
32
31
  }
33
32
  exports.Color = Color;
34
- const color = Color.create;
35
- exports.color = color;
33
+ const color = exports.color = Color.create;
36
34
  class Url extends CSSType {
37
- syntax = "<url>";
35
+ syntax = '<url>';
38
36
  constructor(value) {
39
37
  super();
40
38
  this.value = value;
@@ -44,10 +42,9 @@ class Url extends CSSType {
44
42
  }
45
43
  }
46
44
  exports.Url = Url;
47
- const url = Url.create;
48
- exports.url = url;
45
+ const url = exports.url = Url.create;
49
46
  class Image extends Url {
50
- syntax = "<image>";
47
+ syntax = '<image>';
51
48
  constructor(value) {
52
49
  super(value);
53
50
  this.value = value;
@@ -57,10 +54,9 @@ class Image extends Url {
57
54
  }
58
55
  }
59
56
  exports.Image = Image;
60
- const image = Image.create;
61
- exports.image = image;
57
+ const image = exports.image = Image.create;
62
58
  class Integer extends CSSType {
63
- syntax = "<integer>";
59
+ syntax = '<integer>';
64
60
  constructor(value) {
65
61
  super();
66
62
  this.value = value;
@@ -70,10 +66,9 @@ class Integer extends CSSType {
70
66
  }
71
67
  }
72
68
  exports.Integer = Integer;
73
- const integer = Integer.create;
74
- exports.integer = integer;
69
+ const integer = exports.integer = Integer.create;
75
70
  class LengthPercentage extends CSSType {
76
- syntax = "<length-percentage>";
71
+ syntax = '<length-percentage>';
77
72
  constructor(value) {
78
73
  super();
79
74
  this.value = value;
@@ -86,10 +81,9 @@ class LengthPercentage extends CSSType {
86
81
  }
87
82
  }
88
83
  exports.LengthPercentage = LengthPercentage;
89
- const lengthPercentage = LengthPercentage.createLength;
90
- exports.lengthPercentage = lengthPercentage;
84
+ const lengthPercentage = exports.lengthPercentage = LengthPercentage.createLength;
91
85
  class Length extends LengthPercentage {
92
- syntax = "<length>";
86
+ syntax = '<length>';
93
87
  constructor(value) {
94
88
  super(convertNumberToLength(value));
95
89
  }
@@ -98,10 +92,9 @@ class Length extends LengthPercentage {
98
92
  }
99
93
  }
100
94
  exports.Length = Length;
101
- const length = Length.create;
102
- exports.length = length;
95
+ const length = exports.length = Length.create;
103
96
  class Percentage extends LengthPercentage {
104
- syntax = "<percentage>";
97
+ syntax = '<percentage>';
105
98
  constructor(value) {
106
99
  super(convertNumberToPercentage(value));
107
100
  }
@@ -110,10 +103,9 @@ class Percentage extends LengthPercentage {
110
103
  }
111
104
  }
112
105
  exports.Percentage = Percentage;
113
- const percentage = Percentage.create;
114
- exports.percentage = percentage;
106
+ const percentage = exports.percentage = Percentage.create;
115
107
  class Num extends CSSType {
116
- syntax = "<number>";
108
+ syntax = '<number>';
117
109
  constructor(value) {
118
110
  super();
119
111
  this.value = value;
@@ -123,10 +115,9 @@ class Num extends CSSType {
123
115
  }
124
116
  }
125
117
  exports.Num = Num;
126
- const number = Num.create;
127
- exports.number = number;
118
+ const number = exports.number = Num.create;
128
119
  class Resolution extends CSSType {
129
- syntax = "<resolution>";
120
+ syntax = '<resolution>';
130
121
  constructor(value) {
131
122
  super();
132
123
  this.value = value;
@@ -136,10 +127,9 @@ class Resolution extends CSSType {
136
127
  }
137
128
  }
138
129
  exports.Resolution = Resolution;
139
- const resolution = Resolution.create;
140
- exports.resolution = resolution;
130
+ const resolution = exports.resolution = Resolution.create;
141
131
  class Time extends CSSType {
142
- syntax = "<time>";
132
+ syntax = '<time>';
143
133
  constructor(value) {
144
134
  super();
145
135
  this.value = value;
@@ -149,10 +139,9 @@ class Time extends CSSType {
149
139
  }
150
140
  }
151
141
  exports.Time = Time;
152
- const time = Time.create;
153
- exports.time = time;
142
+ const time = exports.time = Time.create;
154
143
  class TransformFunction extends CSSType {
155
- syntax = "<transform-function>";
144
+ syntax = '<transform-function>';
156
145
  constructor(value) {
157
146
  super();
158
147
  this.value = value;
@@ -162,10 +151,9 @@ class TransformFunction extends CSSType {
162
151
  }
163
152
  }
164
153
  exports.TransformFunction = TransformFunction;
165
- const transformFunction = TransformFunction.create;
166
- exports.transformFunction = transformFunction;
154
+ const transformFunction = exports.transformFunction = TransformFunction.create;
167
155
  class TransformList extends CSSType {
168
- syntax = "<transform-list>";
156
+ syntax = '<transform-list>';
169
157
  constructor(value) {
170
158
  super();
171
159
  this.value = value;
@@ -175,23 +163,22 @@ class TransformList extends CSSType {
175
163
  }
176
164
  }
177
165
  exports.TransformList = TransformList;
178
- const transformList = TransformList.create;
179
- exports.transformList = transformList;
166
+ const transformList = exports.transformList = TransformList.create;
180
167
  const convertNumberToStringUsing = (transformNumber, defaultStr) => value => {
181
- if (typeof value === "number") {
168
+ if (typeof value === 'number') {
182
169
  return transformNumber(value);
183
170
  }
184
- if (typeof value === "string") {
171
+ if (typeof value === 'string') {
185
172
  return value;
186
173
  }
187
- if (typeof value === "object") {
174
+ if (typeof value === 'object') {
188
175
  const {
189
176
  default: defaultValue,
190
177
  ...rest
191
178
  } = value;
192
179
  const defaultResult = convertNumberToLength(defaultValue);
193
180
  const result = {
194
- default: typeof defaultResult === "string" ? defaultResult : defaultStr
181
+ default: typeof defaultResult === 'string' ? defaultResult : defaultStr
195
182
  };
196
183
  for (const [key, value] of Object.entries(rest)) {
197
184
  result[key] = convertNumberToLength(value);
@@ -200,5 +187,5 @@ const convertNumberToStringUsing = (transformNumber, defaultStr) => value => {
200
187
  }
201
188
  return value;
202
189
  };
203
- const convertNumberToLength = convertNumberToStringUsing(value => value === 0 ? "0" : `${value}px`, "0px");
204
- const convertNumberToPercentage = convertNumberToStringUsing(value => value === 0 ? "0" : `${value * 100}%`, "0");
190
+ const convertNumberToLength = convertNumberToStringUsing(value => value === 0 ? '0' : `${value}px`, '0px');
191
+ const convertNumberToPercentage = convertNumberToStringUsing(value => value === 0 ? '0' : `${value * 100}%`, '0');
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = dashify;
7
7
  function dashify(str) {
8
- return str.replace(/(^|[a-z])([A-Z])/g, "$1-$2").toLowerCase();
8
+ return str.replace(/(^|[a-z])([A-Z])/g, '$1-$2').toLowerCase();
9
9
  }
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.defaultOptions = void 0;
7
- const defaultOptions = {
7
+ const defaultOptions = exports.defaultOptions = {
8
8
  dev: false,
9
9
  test: false,
10
- classNamePrefix: "x",
11
- styleResolution: "application-order"
12
- };
13
- exports.defaultOptions = defaultOptions;
10
+ classNamePrefix: 'x',
11
+ styleResolution: 'application-order'
12
+ };
@@ -10,5 +10,5 @@ function genFileBasedIdentifier(_ref) {
10
10
  exportName,
11
11
  key
12
12
  } = _ref;
13
- return `${fileName}//${exportName}${key != null ? `.${key}` : ""}`;
13
+ return `${fileName}//${exportName}${key != null ? `.${key}` : ''}`;
14
14
  }
@@ -1,15 +1,15 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.genCSSRule = genCSSRule;
7
- const THUMB_VARIANTS = ["::-webkit-slider-thumb", "::-moz-range-thumb", "::-ms-thumb"];
7
+ const THUMB_VARIANTS = ['::-webkit-slider-thumb', '::-moz-range-thumb', '::-ms-thumb'];
8
8
  function genCSSRule(className, decls, pseudos, atRules) {
9
- const pseudo = pseudos.filter(p => p !== "::thumb").join("");
10
- let selectorForAtRules = `.${className}` + atRules.map(() => `.${className}`).join("") + pseudo;
11
- if (pseudos.includes("::thumb")) {
12
- selectorForAtRules = THUMB_VARIANTS.map(suffix => selectorForAtRules + suffix).join(", ");
9
+ const pseudo = pseudos.filter(p => p !== '::thumb').join('');
10
+ let selectorForAtRules = `.${className}` + atRules.map(() => `.${className}`).join('') + pseudo;
11
+ if (pseudos.includes('::thumb')) {
12
+ selectorForAtRules = THUMB_VARIANTS.map(suffix => selectorForAtRules + suffix).join(', ');
13
13
  }
14
14
  return atRules.reduce((acc, atRule) => `${atRule}{${acc}}`, `${selectorForAtRules}{${decls}}`);
15
15
  }
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ 'use strict';
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
@@ -12,8 +12,9 @@ var _whitespace = _interopRequireDefault(require("./normalizers/whitespace"));
12
12
  var _zeroDimensions = _interopRequireDefault(require("./normalizers/zero-dimensions"));
13
13
  var _detectUnclosedFns = _interopRequireDefault(require("./normalizers/detect-unclosed-fns"));
14
14
  var _postcssValueParser = _interopRequireDefault(require("postcss-value-parser"));
15
+ var _convertCamelCaseValues = _interopRequireDefault(require("./normalizers/convert-camel-case-values"));
15
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
- const normalizers = [_detectUnclosedFns.default, _whitespace.default, _timings.default, _zeroDimensions.default, _leadingZero.default, _quotes.default, _fontSizePxToRem.default];
17
+ const normalizers = [_detectUnclosedFns.default, _whitespace.default, _timings.default, _zeroDimensions.default, _leadingZero.default, _quotes.default, _fontSizePxToRem.default, _convertCamelCaseValues.default];
17
18
  function normalizeValue(value, key) {
18
19
  if (value == null) {
19
20
  return value;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ */
9
+
10
+ declare function convertCamelCasedTransitionProps(
11
+ ast: PostCSSValueAST,
12
+ key: string,
13
+ ): PostCSSValueAST;
14
+ export default convertCamelCasedTransitionProps;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = convertCamelCasedTransitionProps;
7
+ var _dashify = _interopRequireDefault(require("../dashify"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function convertCamelCasedTransitionProps(ast, key) {
10
+ if (key !== 'transitionProperty') {
11
+ return ast;
12
+ }
13
+ const nodes = ast.nodes;
14
+ if (!nodes) {
15
+ return ast;
16
+ }
17
+ nodes.forEach(node => {
18
+ if (node.type === 'word' && !node.value.startsWith('--')) {
19
+ node.value = (0, _dashify.default)(node.value);
20
+ }
21
+ });
22
+ return ast;
23
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ */
9
+
10
+ declare export default function convertCamelCasedTransitionProps(
11
+ ast: PostCSSValueAST,
12
+ key: string,
13
+ ): PostCSSValueAST;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ */
9
+
10
+ declare function convertCamelCasedValues(
11
+ ast: PostCSSValueAST,
12
+ key: string,
13
+ ): PostCSSValueAST;
14
+ export default convertCamelCasedValues;
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = convertCamelCasedValues;
7
+ var _dashify = _interopRequireDefault(require("../dashify"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function convertCamelCasedValues(ast, key) {
10
+ if (key !== 'transitionProperty' && key !== 'willChange') {
11
+ return ast;
12
+ }
13
+ const nodes = ast.nodes;
14
+ if (!nodes) {
15
+ return ast;
16
+ }
17
+ nodes.forEach(node => {
18
+ if (node.type === 'word' && !node.value.startsWith('--')) {
19
+ node.value = (0, _dashify.default)(node.value);
20
+ }
21
+ });
22
+ return ast;
23
+ }