@stylexjs/shared 0.5.0 → 0.6.0
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/lib/convert-to-className.d.ts +5 -1
 - package/lib/convert-to-className.js +33 -1
 - package/lib/convert-to-className.js.flow +5 -1
 - package/lib/messages.d.ts +1 -0
 - package/lib/messages.js +3 -2
 - package/lib/messages.js.flow +1 -0
 - package/lib/stylex-create-theme.js +30 -40
 - package/lib/stylex-define-vars.d.ts +2 -6
 - package/lib/stylex-define-vars.js +40 -21
 - package/lib/stylex-define-vars.js.flow +1 -4
 - package/lib/stylex-first-that-works.d.ts +1 -1
 - package/lib/stylex-first-that-works.js.flow +1 -1
 - package/lib/stylex-vars-utils.d.ts +27 -0
 - package/lib/stylex-vars-utils.js +69 -0
 - package/lib/stylex-vars-utils.js.flow +31 -0
 - package/lib/types/index.d.ts +79 -76
 - package/lib/types/index.js +28 -72
 - package/lib/types/index.js.flow +82 -82
 - package/lib/utils/normalize-value.js +1 -2
 - package/lib/utils/normalizers/zero-dimensions.d.ts +2 -2
 - package/lib/utils/normalizers/zero-dimensions.js +6 -0
 - package/lib/utils/normalizers/zero-dimensions.js.flow +2 -2
 - package/package.json +2 -2
 
| 
         @@ -9,8 +9,12 @@ 
     | 
|
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            import type { TRawValue, StyleRule, StyleXOptions } from './common-types';
         
     | 
| 
       11 
11 
     | 
    
         
             
            export declare function convertStyleToClassName(
         
     | 
| 
       12 
     | 
    
         
            -
              objEntry: [string, TRawValue] 
     | 
| 
      
 12 
     | 
    
         
            +
              objEntry: Readonly<[string, TRawValue]>,
         
     | 
| 
       13 
13 
     | 
    
         
             
              pseudos: ReadonlyArray<string>,
         
     | 
| 
       14 
14 
     | 
    
         
             
              atRules: ReadonlyArray<string>,
         
     | 
| 
       15 
15 
     | 
    
         
             
              options: StyleXOptions,
         
     | 
| 
       16 
16 
     | 
    
         
             
            ): StyleRule;
         
     | 
| 
      
 17 
     | 
    
         
            +
            declare function variableFallbacks(
         
     | 
| 
      
 18 
     | 
    
         
            +
              values: ReadonlyArray<string>,
         
     | 
| 
      
 19 
     | 
    
         
            +
            ): Array<string>;
         
     | 
| 
      
 20 
     | 
    
         
            +
            export default variableFallbacks;
         
     | 
| 
         @@ -4,12 +4,16 @@ Object.defineProperty(exports, "__esModule", { 
     | 
|
| 
       4 
4 
     | 
    
         
             
              value: true
         
     | 
| 
       5 
5 
     | 
    
         
             
            });
         
     | 
| 
       6 
6 
     | 
    
         
             
            exports.convertStyleToClassName = convertStyleToClassName;
         
     | 
| 
      
 7 
     | 
    
         
            +
            exports.default = variableFallbacks;
         
     | 
| 
       7 
8 
     | 
    
         
             
            var _hash = _interopRequireDefault(require("./hash"));
         
     | 
| 
       8 
9 
     | 
    
         
             
            var _dashify = _interopRequireDefault(require("./utils/dashify"));
         
     | 
| 
       9 
10 
     | 
    
         
             
            var _transformValue = _interopRequireDefault(require("./transform-value"));
         
     | 
| 
       10 
11 
     | 
    
         
             
            var _generateCssRule = require("./generate-css-rule");
         
     | 
| 
       11 
12 
     | 
    
         
             
            var _defaultOptions = require("./utils/default-options");
         
     | 
| 
       12 
13 
     | 
    
         
             
            var _objectUtils = require("./utils/object-utils");
         
     | 
| 
      
 14 
     | 
    
         
            +
            var messages = _interopRequireWildcard(require("./messages"));
         
     | 
| 
      
 15 
     | 
    
         
            +
            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); }
         
     | 
| 
      
 16 
     | 
    
         
            +
            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; }
         
     | 
| 
       13 
17 
     | 
    
         
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         
     | 
| 
       14 
18 
     | 
    
         
             
            function convertStyleToClassName(objEntry, pseudos, atRules) {
         
     | 
| 
       15 
19 
     | 
    
         
             
              let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _defaultOptions.defaultOptions;
         
     | 
| 
         @@ -18,7 +22,10 @@ function convertStyleToClassName(objEntry, pseudos, atRules) { 
     | 
|
| 
       18 
22 
     | 
    
         
             
              } = options;
         
     | 
| 
       19 
23 
     | 
    
         
             
              const [key, rawValue] = objEntry;
         
     | 
| 
       20 
24 
     | 
    
         
             
              const dashedKey = (0, _dashify.default)(key);
         
     | 
| 
       21 
     | 
    
         
            -
               
     | 
| 
      
 25 
     | 
    
         
            +
              let value = Array.isArray(rawValue) ? rawValue.map(eachValue => (0, _transformValue.default)(key, eachValue, options)) : (0, _transformValue.default)(key, rawValue, options);
         
     | 
| 
      
 26 
     | 
    
         
            +
              if (Array.isArray(value) && value.find(val => val.startsWith('var(') && val.endsWith(')'))) {
         
     | 
| 
      
 27 
     | 
    
         
            +
                value = variableFallbacks(value);
         
     | 
| 
      
 28 
     | 
    
         
            +
              }
         
     | 
| 
       22 
29 
     | 
    
         
             
              const sortedPseudos = (0, _objectUtils.arraySort)(pseudos ?? []);
         
     | 
| 
       23 
30 
     | 
    
         
             
              const sortedAtRules = (0, _objectUtils.arraySort)(atRules ?? []);
         
     | 
| 
       24 
31 
     | 
    
         
             
              const atRuleHashString = sortedPseudos.join('');
         
     | 
| 
         @@ -28,4 +35,29 @@ function convertStyleToClassName(objEntry, pseudos, atRules) { 
     | 
|
| 
       28 
35 
     | 
    
         
             
              const className = classNamePrefix + (0, _hash.default)('<>' + stringToHash);
         
     | 
| 
       29 
36 
     | 
    
         
             
              const cssRules = (0, _generateCssRule.generateRule)(className, dashedKey, value, pseudos, atRules);
         
     | 
| 
       30 
37 
     | 
    
         
             
              return [key, className, cssRules];
         
     | 
| 
      
 38 
     | 
    
         
            +
            }
         
     | 
| 
      
 39 
     | 
    
         
            +
            function variableFallbacks(values) {
         
     | 
| 
      
 40 
     | 
    
         
            +
              const firstVar = values.findIndex(val => val.startsWith('var(') && val.endsWith(')'));
         
     | 
| 
      
 41 
     | 
    
         
            +
              const lastVar = values.findLastIndex(val => val.startsWith('var(') && val.endsWith(')'));
         
     | 
| 
      
 42 
     | 
    
         
            +
              const valuesBeforeFirstVar = values.slice(0, firstVar);
         
     | 
| 
      
 43 
     | 
    
         
            +
              let varValues = values.slice(firstVar, lastVar + 1).reverse();
         
     | 
| 
      
 44 
     | 
    
         
            +
              const valuesAfterLastVar = values.slice(lastVar + 1);
         
     | 
| 
      
 45 
     | 
    
         
            +
              if (varValues.find(val => !val.startsWith('var(') || !val.endsWith(')'))) {
         
     | 
| 
      
 46 
     | 
    
         
            +
                throw new Error(messages.NON_CONTIGUOUS_VARS);
         
     | 
| 
      
 47 
     | 
    
         
            +
              }
         
     | 
| 
      
 48 
     | 
    
         
            +
              varValues = varValues.map(val => val.slice(4, -1));
         
     | 
| 
      
 49 
     | 
    
         
            +
              return [...(valuesBeforeFirstVar.length > 0 ? valuesBeforeFirstVar.map(val => composeVars(...varValues, val)) : composeVars(...varValues)), ...valuesAfterLastVar];
         
     | 
| 
      
 50 
     | 
    
         
            +
            }
         
     | 
| 
      
 51 
     | 
    
         
            +
            function composeVars() {
         
     | 
| 
      
 52 
     | 
    
         
            +
              for (var _len = arguments.length, vars = new Array(_len), _key = 0; _key < _len; _key++) {
         
     | 
| 
      
 53 
     | 
    
         
            +
                vars[_key] = arguments[_key];
         
     | 
| 
      
 54 
     | 
    
         
            +
              }
         
     | 
| 
      
 55 
     | 
    
         
            +
              const [first, ...rest] = vars;
         
     | 
| 
      
 56 
     | 
    
         
            +
              if (rest.length > 0) {
         
     | 
| 
      
 57 
     | 
    
         
            +
                return `var(${first},${composeVars(...rest)})`;
         
     | 
| 
      
 58 
     | 
    
         
            +
              } else if (first.startsWith('--')) {
         
     | 
| 
      
 59 
     | 
    
         
            +
                return `var(${first})`;
         
     | 
| 
      
 60 
     | 
    
         
            +
              } else {
         
     | 
| 
      
 61 
     | 
    
         
            +
                return first;
         
     | 
| 
      
 62 
     | 
    
         
            +
              }
         
     | 
| 
       31 
63 
     | 
    
         
             
            }
         
     | 
| 
         @@ -16,8 +16,12 @@ import type { TRawValue, StyleRule, StyleXOptions } from './common-types'; 
     | 
|
| 
       16 
16 
     | 
    
         
             
            // Hashes to get a className
         
     | 
| 
       17 
17 
     | 
    
         
             
            // Returns the final key, className a CSS Rule
         
     | 
| 
       18 
18 
     | 
    
         
             
            declare export function convertStyleToClassName(
         
     | 
| 
       19 
     | 
    
         
            -
              objEntry: [string, TRawValue] 
     | 
| 
      
 19 
     | 
    
         
            +
              objEntry: $ReadOnly<[string, TRawValue]>,
         
     | 
| 
       20 
20 
     | 
    
         
             
              pseudos: $ReadOnlyArray<string>,
         
     | 
| 
       21 
21 
     | 
    
         
             
              atRules: $ReadOnlyArray<string>,
         
     | 
| 
       22 
22 
     | 
    
         
             
              options: StyleXOptions,
         
     | 
| 
       23 
23 
     | 
    
         
             
            ): StyleRule;
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            declare export default function variableFallbacks(
         
     | 
| 
      
 26 
     | 
    
         
            +
              values: $ReadOnlyArray<string>,
         
     | 
| 
      
 27 
     | 
    
         
            +
            ): Array<string>;
         
     | 
    
        package/lib/messages.d.ts
    CHANGED
    
    | 
         @@ -39,3 +39,4 @@ export declare const NO_PROJECT_ROOT_DIRECTORY: 'The project root directory `roo 
     | 
|
| 
       39 
39 
     | 
    
         
             
            export declare const NON_EXPORT_NAMED_DECLARATION: 'The return value of stylex.defineVars() must be bound to a named export.';
         
     | 
| 
       40 
40 
     | 
    
         
             
            export declare const ANONYMOUS_THEME: 'stylex.createTheme() must be bound to a named constant.';
         
     | 
| 
       41 
41 
     | 
    
         
             
            export declare const ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS: 'Only named parameters are allowed in Dynamic Style functions. Destructuring, spreading or default values are not allowed.';
         
     | 
| 
      
 42 
     | 
    
         
            +
            export declare const NON_CONTIGUOUS_VARS: 'All variables passed to `stylex.firstThatWorks` must be contiguous.';
         
     | 
    
        package/lib/messages.js
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            Object.defineProperty(exports, "__esModule", {
         
     | 
| 
       4 
4 
     | 
    
         
             
              value: true
         
     | 
| 
       5 
5 
     | 
    
         
             
            });
         
     | 
| 
       6 
     | 
    
         
            -
            exports.UNKNOWN_PROP_KEY = exports.UNKNOWN_NAMESPACE = exports.UNEXPECTED_ARGUMENT = exports.UNBOUND_STYLEX_CALL_VALUE = exports.ONLY_TOP_LEVEL_INCLUDES = exports.ONLY_TOP_LEVEL = exports.ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS = exports.NO_PROJECT_ROOT_DIRECTORY = exports.NO_PARENT_PATH = exports.NO_CONDITIONAL_SHORTHAND = exports.NON_STATIC_VALUE = exports.NON_STATIC_KEYFRAME_VALUE = exports.NON_OBJECT_KEYFRAME = exports.NON_OBJECT_FOR_STYLEX_KEYFRAMES_CALL = exports.NON_OBJECT_FOR_STYLEX_CALL = exports.NON_EXPORT_NAMED_DECLARATION = exports.LOCAL_ONLY = exports.LINT_UNCLOSED_FUNCTION = exports.INVALID_SPREAD = exports.INVALID_PSEUDO_OR_AT_RULE = exports.INVALID_PSEUDO = exports.ILLEGAL_PROP_VALUE = exports.ILLEGAL_PROP_ARRAY_VALUE = exports.ILLEGAL_NESTED_PSEUDO = exports.ILLEGAL_NAMESPACE_VALUE = exports.ILLEGAL_NAMESPACE_TYPE = exports.ILLEGAL_ARG_LENGTH_FOR_KEYFRAMES = exports.ILLEGAL_ARGUMENT_LENGTH = exports.EXPECTED_FUNCTION_CALL = exports.ESCAPED_STYLEX_VALUE = exports.DUPLICATE_CONDITIONAL = exports.ANONYMOUS_THEME = void 0;
         
     | 
| 
      
 6 
     | 
    
         
            +
            exports.UNKNOWN_PROP_KEY = exports.UNKNOWN_NAMESPACE = exports.UNEXPECTED_ARGUMENT = exports.UNBOUND_STYLEX_CALL_VALUE = exports.ONLY_TOP_LEVEL_INCLUDES = exports.ONLY_TOP_LEVEL = exports.ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS = exports.NO_PROJECT_ROOT_DIRECTORY = exports.NO_PARENT_PATH = exports.NO_CONDITIONAL_SHORTHAND = exports.NON_STATIC_VALUE = exports.NON_STATIC_KEYFRAME_VALUE = exports.NON_OBJECT_KEYFRAME = exports.NON_OBJECT_FOR_STYLEX_KEYFRAMES_CALL = exports.NON_OBJECT_FOR_STYLEX_CALL = exports.NON_EXPORT_NAMED_DECLARATION = exports.NON_CONTIGUOUS_VARS = exports.LOCAL_ONLY = exports.LINT_UNCLOSED_FUNCTION = exports.INVALID_SPREAD = exports.INVALID_PSEUDO_OR_AT_RULE = exports.INVALID_PSEUDO = exports.ILLEGAL_PROP_VALUE = exports.ILLEGAL_PROP_ARRAY_VALUE = exports.ILLEGAL_NESTED_PSEUDO = exports.ILLEGAL_NAMESPACE_VALUE = exports.ILLEGAL_NAMESPACE_TYPE = exports.ILLEGAL_ARG_LENGTH_FOR_KEYFRAMES = exports.ILLEGAL_ARGUMENT_LENGTH = exports.EXPECTED_FUNCTION_CALL = exports.ESCAPED_STYLEX_VALUE = exports.DUPLICATE_CONDITIONAL = exports.ANONYMOUS_THEME = void 0;
         
     | 
| 
       7 
7 
     | 
    
         
             
            const ILLEGAL_ARGUMENT_LENGTH = exports.ILLEGAL_ARGUMENT_LENGTH = 'stylex.create() should have 1 argument.';
         
     | 
| 
       8 
8 
     | 
    
         
             
            const ILLEGAL_ARG_LENGTH_FOR_KEYFRAMES = exports.ILLEGAL_ARG_LENGTH_FOR_KEYFRAMES = 'stylex.keyframes() should have 1 argument.';
         
     | 
| 
       9 
9 
     | 
    
         
             
            const NON_STATIC_VALUE = exports.NON_STATIC_VALUE = 'Only static values are allowed inside of a stylex.create() call.';
         
     | 
| 
         @@ -35,4 +35,5 @@ const DUPLICATE_CONDITIONAL = exports.DUPLICATE_CONDITIONAL = 'The same pseudo s 
     | 
|
| 
       35 
35 
     | 
    
         
             
            const NO_PROJECT_ROOT_DIRECTORY = exports.NO_PROJECT_ROOT_DIRECTORY = 'The project root directory `rootDir` is not configured.';
         
     | 
| 
       36 
36 
     | 
    
         
             
            const NON_EXPORT_NAMED_DECLARATION = exports.NON_EXPORT_NAMED_DECLARATION = 'The return value of stylex.defineVars() must be bound to a named export.';
         
     | 
| 
       37 
37 
     | 
    
         
             
            const ANONYMOUS_THEME = exports.ANONYMOUS_THEME = 'stylex.createTheme() must be bound to a named constant.';
         
     | 
| 
       38 
     | 
    
         
            -
            const ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS = exports.ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS = 'Only named parameters are allowed in Dynamic Style functions. Destructuring, spreading or default values are not allowed.';
         
     | 
| 
      
 38 
     | 
    
         
            +
            const ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS = exports.ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS = 'Only named parameters are allowed in Dynamic Style functions. Destructuring, spreading or default values are not allowed.';
         
     | 
| 
      
 39 
     | 
    
         
            +
            const NON_CONTIGUOUS_VARS = exports.NON_CONTIGUOUS_VARS = 'All variables passed to `stylex.firstThatWorks` must be contiguous.';
         
     | 
    
        package/lib/messages.js.flow
    CHANGED
    
    | 
         @@ -42,3 +42,4 @@ declare export const NO_PROJECT_ROOT_DIRECTORY: 'The project root directory `roo 
     | 
|
| 
       42 
42 
     | 
    
         
             
            declare export const NON_EXPORT_NAMED_DECLARATION: 'The return value of stylex.defineVars() must be bound to a named export.';
         
     | 
| 
       43 
43 
     | 
    
         
             
            declare export const ANONYMOUS_THEME: 'stylex.createTheme() must be bound to a named constant.';
         
     | 
| 
       44 
44 
     | 
    
         
             
            declare export const ONLY_NAMED_PARAMETERS_IN_DYNAMIC_STYLE_FUNCTIONS: 'Only named parameters are allowed in Dynamic Style functions. Destructuring, spreading or default values are not allowed.';
         
     | 
| 
      
 45 
     | 
    
         
            +
            declare export const NON_CONTIGUOUS_VARS: 'All variables passed to `stylex.firstThatWorks` must be contiguous.';
         
     | 
| 
         @@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", { 
     | 
|
| 
       5 
5 
     | 
    
         
             
            });
         
     | 
| 
       6 
6 
     | 
    
         
             
            exports.default = styleXCreateTheme;
         
     | 
| 
       7 
7 
     | 
    
         
             
            var _hash = _interopRequireDefault(require("./hash"));
         
     | 
| 
      
 8 
     | 
    
         
            +
            var _stylexVarsUtils = require("./stylex-vars-utils");
         
     | 
| 
      
 9 
     | 
    
         
            +
            var _types = require("./types");
         
     | 
| 
       8 
10 
     | 
    
         
             
            var _defaultOptions = require("./utils/default-options");
         
     | 
| 
       9 
11 
     | 
    
         
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         
     | 
| 
       10 
12 
     | 
    
         
             
            function styleXCreateTheme(themeVars, variables, options) {
         
     | 
| 
         @@ -17,48 +19,36 @@ function styleXCreateTheme(themeVars, variables, options) { 
     | 
|
| 
       17 
19 
     | 
    
         
             
                ..._defaultOptions.defaultOptions,
         
     | 
| 
       18 
20 
     | 
    
         
             
                ...options
         
     | 
| 
       19 
21 
     | 
    
         
             
              };
         
     | 
| 
      
 22 
     | 
    
         
            +
              const rulesByAtRule = {};
         
     | 
| 
       20 
23 
     | 
    
         
             
              const sortedKeys = Object.keys(variables).sort();
         
     | 
| 
       21 
     | 
    
         
            -
              const  
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                const  
     | 
| 
       24 
     | 
    
         
            -
                 
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
                   
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                      if (atRules[key] == null) {
         
     | 
| 
       34 
     | 
    
         
            -
                        atRules[key] = [definedVarStringForAtRule];
         
     | 
| 
       35 
     | 
    
         
            -
                      } else {
         
     | 
| 
       36 
     | 
    
         
            -
                        atRules[key].push(definedVarStringForAtRule);
         
     | 
| 
       37 
     | 
    
         
            -
                      }
         
     | 
| 
       38 
     | 
    
         
            -
                    }
         
     | 
| 
       39 
     | 
    
         
            -
                  });
         
     | 
| 
       40 
     | 
    
         
            -
                  return definedVarString;
         
     | 
| 
       41 
     | 
    
         
            -
                }
         
     | 
| 
       42 
     | 
    
         
            -
                return varNameHash != null && typeof value !== 'object' ? `${varNameHash}:${value};` : '';
         
     | 
| 
       43 
     | 
    
         
            -
              }).join('');
         
     | 
| 
       44 
     | 
    
         
            -
              const sortedAtRules = Object.keys(atRules).sort();
         
     | 
| 
       45 
     | 
    
         
            -
              const atRulesStringForHash = sortedAtRules.map(atRule => {
         
     | 
| 
       46 
     | 
    
         
            -
                return `${atRule}{${atRules[atRule].sort().join('')}}`;
         
     | 
| 
       47 
     | 
    
         
            -
              }).join('');
         
     | 
| 
       48 
     | 
    
         
            -
              const overrideClassName = classNamePrefix + (0, _hash.default)(cssVariablesOverrideString + atRulesStringForHash);
         
     | 
| 
       49 
     | 
    
         
            -
              const stylesToInject = {
         
     | 
| 
       50 
     | 
    
         
            -
                [overrideClassName]: {
         
     | 
| 
       51 
     | 
    
         
            -
                  ltr: `.${overrideClassName}{${cssVariablesOverrideString}}`,
         
     | 
| 
       52 
     | 
    
         
            -
                  priority: 0.8,
         
     | 
| 
       53 
     | 
    
         
            -
                  rtl: undefined
         
     | 
| 
       54 
     | 
    
         
            -
                }
         
     | 
| 
       55 
     | 
    
         
            -
              };
         
     | 
| 
      
 24 
     | 
    
         
            +
              for (const key of sortedKeys) {
         
     | 
| 
      
 25 
     | 
    
         
            +
                const value = (0, _types.isCSSType)(variables[key]) ? variables[key].value : variables[key];
         
     | 
| 
      
 26 
     | 
    
         
            +
                const nameHash = themeVars[key].slice(6, -1);
         
     | 
| 
      
 27 
     | 
    
         
            +
                (0, _stylexVarsUtils.collectVarsByAtRule)(key, {
         
     | 
| 
      
 28 
     | 
    
         
            +
                  nameHash,
         
     | 
| 
      
 29 
     | 
    
         
            +
                  value
         
     | 
| 
      
 30 
     | 
    
         
            +
                }, rulesByAtRule);
         
     | 
| 
      
 31 
     | 
    
         
            +
              }
         
     | 
| 
      
 32 
     | 
    
         
            +
              const sortedAtRules = Object.keys(rulesByAtRule).sort((a, b) => a === 'default' ? -1 : b === 'default' ? 1 : a.localeCompare(b));
         
     | 
| 
      
 33 
     | 
    
         
            +
              const atRulesStringForHash = sortedAtRules.map(atRule => (0, _stylexVarsUtils.wrapWithAtRules)(rulesByAtRule[atRule].join(''), atRule)).join('');
         
     | 
| 
      
 34 
     | 
    
         
            +
              const overrideClassName = classNamePrefix + (0, _hash.default)(atRulesStringForHash);
         
     | 
| 
      
 35 
     | 
    
         
            +
              const stylesToInject = {};
         
     | 
| 
       56 
36 
     | 
    
         
             
              for (const atRule of sortedAtRules) {
         
     | 
| 
       57 
     | 
    
         
            -
                 
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                   
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
      
 37 
     | 
    
         
            +
                const decls = rulesByAtRule[atRule].join('');
         
     | 
| 
      
 38 
     | 
    
         
            +
                const rule = `.${overrideClassName}{${decls}}`;
         
     | 
| 
      
 39 
     | 
    
         
            +
                if (atRule === 'default') {
         
     | 
| 
      
 40 
     | 
    
         
            +
                  stylesToInject[overrideClassName] = {
         
     | 
| 
      
 41 
     | 
    
         
            +
                    ltr: rule,
         
     | 
| 
      
 42 
     | 
    
         
            +
                    priority: 0.5,
         
     | 
| 
      
 43 
     | 
    
         
            +
                    rtl: null
         
     | 
| 
      
 44 
     | 
    
         
            +
                  };
         
     | 
| 
      
 45 
     | 
    
         
            +
                } else {
         
     | 
| 
      
 46 
     | 
    
         
            +
                  stylesToInject[overrideClassName + '-' + (0, _hash.default)(atRule)] = {
         
     | 
| 
      
 47 
     | 
    
         
            +
                    ltr: (0, _stylexVarsUtils.wrapWithAtRules)(rule, atRule),
         
     | 
| 
      
 48 
     | 
    
         
            +
                    priority: 0.5 + 0.1 * (0, _stylexVarsUtils.priorityForAtRule)(atRule),
         
     | 
| 
      
 49 
     | 
    
         
            +
                    rtl: null
         
     | 
| 
      
 50 
     | 
    
         
            +
                  };
         
     | 
| 
      
 51 
     | 
    
         
            +
                }
         
     | 
| 
       62 
52 
     | 
    
         
             
              }
         
     | 
| 
       63 
53 
     | 
    
         
             
              return [{
         
     | 
| 
       64 
54 
     | 
    
         
             
                $$css: true,
         
     | 
| 
         @@ -8,13 +8,9 @@ 
     | 
|
| 
       8 
8 
     | 
    
         
             
             */
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            import type { InjectableStyle, StyleXOptions } from './common-types';
         
     | 
| 
       11 
     | 
    
         
            -
            type VarsConfig  
     | 
| 
       12 
     | 
    
         
            -
              [$$Key$$: string]:
         
     | 
| 
       13 
     | 
    
         
            -
                | string
         
     | 
| 
       14 
     | 
    
         
            -
                | Readonly<{ default: string; [$$Key$$: string]: string }>;
         
     | 
| 
       15 
     | 
    
         
            -
            }>;
         
     | 
| 
      
 11 
     | 
    
         
            +
            import type { VarsConfig } from './stylex-vars-utils';
         
     | 
| 
       16 
12 
     | 
    
         
             
            type VarsObject<Vars extends VarsConfig> = Readonly</**
         
     | 
| 
       17 
     | 
    
         
            -
             * >  
     | 
| 
      
 13 
     | 
    
         
            +
             * > 14 |   ...$ObjMapConst<Vars, string>,
         
     | 
| 
       18 
14 
     | 
    
         
             
             *      |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Unsupported feature: Translating "object types with complex spreads" is currently not supported.
         
     | 
| 
       19 
15 
     | 
    
         
             
             **/
         
     | 
| 
       20 
16 
     | 
    
         
             
            any>;
         
     | 
| 
         @@ -7,6 +7,8 @@ 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 
     | 
    
         
            +
            var _stylexVarsUtils = require("./stylex-vars-utils");
         
     | 
| 
      
 11 
     | 
    
         
            +
            var _types = require("./types");
         
     | 
| 
       10 
12 
     | 
    
         
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         
     | 
| 
       11 
13 
     | 
    
         
             
            function styleXDefineVars(variables, options) {
         
     | 
| 
       12 
14 
     | 
    
         
             
              const {
         
     | 
| 
         @@ -17,8 +19,20 @@ function styleXDefineVars(variables, options) { 
     | 
|
| 
       17 
19 
     | 
    
         
             
                ...options
         
     | 
| 
       18 
20 
     | 
    
         
             
              };
         
     | 
| 
       19 
21 
     | 
    
         
             
              const themeNameHash = classNamePrefix + (0, _hash.default)(themeName);
         
     | 
| 
      
 22 
     | 
    
         
            +
              const typedVariables = {};
         
     | 
| 
       20 
23 
     | 
    
         
             
              const variablesMap = (0, _objectUtils.objMap)(variables, (value, key) => {
         
     | 
| 
       21 
24 
     | 
    
         
             
                const nameHash = classNamePrefix + (0, _hash.default)(`${themeName}.${key}`);
         
     | 
| 
      
 25 
     | 
    
         
            +
                if ((0, _types.isCSSType)(value)) {
         
     | 
| 
      
 26 
     | 
    
         
            +
                  const v = value;
         
     | 
| 
      
 27 
     | 
    
         
            +
                  typedVariables[nameHash] = {
         
     | 
| 
      
 28 
     | 
    
         
            +
                    initialValue: (0, _stylexVarsUtils.getDefaultValue)(v.value),
         
     | 
| 
      
 29 
     | 
    
         
            +
                    syntax: v.syntax
         
     | 
| 
      
 30 
     | 
    
         
            +
                  };
         
     | 
| 
      
 31 
     | 
    
         
            +
                  return {
         
     | 
| 
      
 32 
     | 
    
         
            +
                    nameHash,
         
     | 
| 
      
 33 
     | 
    
         
            +
                    value: v.value
         
     | 
| 
      
 34 
     | 
    
         
            +
                  };
         
     | 
| 
      
 35 
     | 
    
         
            +
                }
         
     | 
| 
       22 
36 
     | 
    
         
             
                return {
         
     | 
| 
       23 
37 
     | 
    
         
             
                  nameHash,
         
     | 
| 
       24 
38 
     | 
    
         
             
                  value
         
     | 
| 
         @@ -31,42 +45,47 @@ function styleXDefineVars(variables, options) { 
     | 
|
| 
       31 
45 
     | 
    
         
             
                return `var(--${nameHash})`;
         
     | 
| 
       32 
46 
     | 
    
         
             
              });
         
     | 
| 
       33 
47 
     | 
    
         
             
              const injectableStyles = constructCssVariablesString(variablesMap, themeNameHash);
         
     | 
| 
      
 48 
     | 
    
         
            +
              const injectableTypes = (0, _objectUtils.objMap)(typedVariables, (_ref2, nameHash) => {
         
     | 
| 
      
 49 
     | 
    
         
            +
                let {
         
     | 
| 
      
 50 
     | 
    
         
            +
                  initialValue: iv,
         
     | 
| 
      
 51 
     | 
    
         
            +
                  syntax
         
     | 
| 
      
 52 
     | 
    
         
            +
                } = _ref2;
         
     | 
| 
      
 53 
     | 
    
         
            +
                return {
         
     | 
| 
      
 54 
     | 
    
         
            +
                  ltr: `@property --${nameHash} { syntax: "${syntax}"; inherits: true;${iv != null ? ` initial-value: ${iv}` : ''} }`,
         
     | 
| 
      
 55 
     | 
    
         
            +
                  rtl: null,
         
     | 
| 
      
 56 
     | 
    
         
            +
                  priority: 0
         
     | 
| 
      
 57 
     | 
    
         
            +
                };
         
     | 
| 
      
 58 
     | 
    
         
            +
              });
         
     | 
| 
       34 
59 
     | 
    
         
             
              return [{
         
     | 
| 
       35 
60 
     | 
    
         
             
                ...themeVariablesObject,
         
     | 
| 
       36 
61 
     | 
    
         
             
                __themeName__: themeNameHash
         
     | 
| 
       37 
     | 
    
         
            -
              },  
     | 
| 
      
 62 
     | 
    
         
            +
              }, {
         
     | 
| 
      
 63 
     | 
    
         
            +
                ...injectableTypes,
         
     | 
| 
      
 64 
     | 
    
         
            +
                ...injectableStyles
         
     | 
| 
      
 65 
     | 
    
         
            +
              }];
         
     | 
| 
       38 
66 
     | 
    
         
             
            }
         
     | 
| 
       39 
67 
     | 
    
         
             
            function constructCssVariablesString(variables, themeNameHash) {
         
     | 
| 
       40 
     | 
    
         
            -
              const  
     | 
| 
      
 68 
     | 
    
         
            +
              const rulesByAtRule = {};
         
     | 
| 
       41 
69 
     | 
    
         
             
              for (const [key, {
         
     | 
| 
       42 
70 
     | 
    
         
             
                nameHash,
         
     | 
| 
       43 
71 
     | 
    
         
             
                value
         
     | 
| 
       44 
     | 
    
         
            -
              }] of  
     | 
| 
       45 
     | 
    
         
            -
                 
     | 
| 
       46 
     | 
    
         
            -
                   
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                  const v = value;
         
     | 
| 
       50 
     | 
    
         
            -
                  for (const [key, value] of (0, _objectUtils.objEntries)(v)) {
         
     | 
| 
       51 
     | 
    
         
            -
                    ruleByAtRule[key] ??= [];
         
     | 
| 
       52 
     | 
    
         
            -
                    ruleByAtRule[key].push(`--${nameHash}:${value};`);
         
     | 
| 
       53 
     | 
    
         
            -
                  }
         
     | 
| 
       54 
     | 
    
         
            -
                } else {
         
     | 
| 
       55 
     | 
    
         
            -
                  ruleByAtRule.default ??= [];
         
     | 
| 
       56 
     | 
    
         
            -
                  ruleByAtRule.default.push(`--${nameHash}:${value};`);
         
     | 
| 
       57 
     | 
    
         
            -
                }
         
     | 
| 
      
 72 
     | 
    
         
            +
              }] of Object.entries(variables)) {
         
     | 
| 
      
 73 
     | 
    
         
            +
                (0, _stylexVarsUtils.collectVarsByAtRule)(key, {
         
     | 
| 
      
 74 
     | 
    
         
            +
                  nameHash,
         
     | 
| 
      
 75 
     | 
    
         
            +
                  value
         
     | 
| 
      
 76 
     | 
    
         
            +
                }, rulesByAtRule);
         
     | 
| 
       58 
77 
     | 
    
         
             
              }
         
     | 
| 
       59 
78 
     | 
    
         
             
              const result = {};
         
     | 
| 
       60 
     | 
    
         
            -
              for (const [ 
     | 
| 
       61 
     | 
    
         
            -
                const suffix =  
     | 
| 
      
 79 
     | 
    
         
            +
              for (const [atRule, value] of Object.entries(rulesByAtRule)) {
         
     | 
| 
      
 80 
     | 
    
         
            +
                const suffix = atRule === 'default' ? '' : `-${(0, _hash.default)(atRule)}`;
         
     | 
| 
       62 
81 
     | 
    
         
             
                let ltr = `:root{${value.join('')}}`;
         
     | 
| 
       63 
     | 
    
         
            -
                if ( 
     | 
| 
       64 
     | 
    
         
            -
                  ltr =  
     | 
| 
      
 82 
     | 
    
         
            +
                if (atRule !== 'default') {
         
     | 
| 
      
 83 
     | 
    
         
            +
                  ltr = (0, _stylexVarsUtils.wrapWithAtRules)(ltr, atRule);
         
     | 
| 
       65 
84 
     | 
    
         
             
                }
         
     | 
| 
       66 
85 
     | 
    
         
             
                result[themeNameHash + suffix] = {
         
     | 
| 
       67 
86 
     | 
    
         
             
                  ltr,
         
     | 
| 
       68 
87 
     | 
    
         
             
                  rtl: null,
         
     | 
| 
       69 
     | 
    
         
            -
                  priority:  
     | 
| 
      
 88 
     | 
    
         
            +
                  priority: (0, _stylexVarsUtils.priorityForAtRule)(atRule) * 0.1
         
     | 
| 
       70 
89 
     | 
    
         
             
                };
         
     | 
| 
       71 
90 
     | 
    
         
             
              }
         
     | 
| 
       72 
91 
     | 
    
         
             
              return result;
         
     | 
| 
         @@ -8,10 +8,7 @@ 
     | 
|
| 
       8 
8 
     | 
    
         
             
             */
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
            import type { InjectableStyle, StyleXOptions } from './common-types';
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            type VarsConfig = $ReadOnly<{
         
     | 
| 
       13 
     | 
    
         
            -
              [string]: string | $ReadOnly<{ default: string, [string]: string }>,
         
     | 
| 
       14 
     | 
    
         
            -
            }>;
         
     | 
| 
      
 11 
     | 
    
         
            +
            import type { VarsConfig } from './stylex-vars-utils';
         
     | 
| 
       15 
12 
     | 
    
         | 
| 
       16 
13 
     | 
    
         
             
            type VarsObject<Vars: VarsConfig> = $ReadOnly<{
         
     | 
| 
       17 
14 
     | 
    
         
             
              ...$ObjMapConst<Vars, string>,
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 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 
     | 
    
         
            +
            import type { CSSType } from './types';
         
     | 
| 
      
 11 
     | 
    
         
            +
            export type VarsConfigValue =
         
     | 
| 
      
 12 
     | 
    
         
            +
              | string
         
     | 
| 
      
 13 
     | 
    
         
            +
              | Readonly<{ default: VarsConfigValue; [$$Key$$: string]: VarsConfigValue }>;
         
     | 
| 
      
 14 
     | 
    
         
            +
            export type VarsConfig = Readonly<{
         
     | 
| 
      
 15 
     | 
    
         
            +
              [$$Key$$: string]: VarsConfigValue | CSSType;
         
     | 
| 
      
 16 
     | 
    
         
            +
            }>;
         
     | 
| 
      
 17 
     | 
    
         
            +
            export declare function collectVarsByAtRule(
         
     | 
| 
      
 18 
     | 
    
         
            +
              key: string,
         
     | 
| 
      
 19 
     | 
    
         
            +
              $$PARAM_1$$: { readonly nameHash: string; readonly value: VarsConfigValue },
         
     | 
| 
      
 20 
     | 
    
         
            +
              collection: { [$$Key$$: string]: Array<string> },
         
     | 
| 
      
 21 
     | 
    
         
            +
              atRules: Array<string>,
         
     | 
| 
      
 22 
     | 
    
         
            +
            ): void;
         
     | 
| 
      
 23 
     | 
    
         
            +
            export declare function wrapWithAtRules(ltr: string, atRule: string): string;
         
     | 
| 
      
 24 
     | 
    
         
            +
            export declare function priorityForAtRule(atRule: string): number;
         
     | 
| 
      
 25 
     | 
    
         
            +
            export declare function getDefaultValue(
         
     | 
| 
      
 26 
     | 
    
         
            +
              value: VarsConfigValue,
         
     | 
| 
      
 27 
     | 
    
         
            +
            ): null | undefined | string;
         
     | 
| 
         @@ -0,0 +1,69 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            "use strict";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Object.defineProperty(exports, "__esModule", {
         
     | 
| 
      
 4 
     | 
    
         
            +
              value: true
         
     | 
| 
      
 5 
     | 
    
         
            +
            });
         
     | 
| 
      
 6 
     | 
    
         
            +
            exports.collectVarsByAtRule = collectVarsByAtRule;
         
     | 
| 
      
 7 
     | 
    
         
            +
            exports.getDefaultValue = getDefaultValue;
         
     | 
| 
      
 8 
     | 
    
         
            +
            exports.priorityForAtRule = priorityForAtRule;
         
     | 
| 
      
 9 
     | 
    
         
            +
            exports.wrapWithAtRules = wrapWithAtRules;
         
     | 
| 
      
 10 
     | 
    
         
            +
            const SPLIT_TOKEN = '__$$__';
         
     | 
| 
      
 11 
     | 
    
         
            +
            function collectVarsByAtRule(key, _ref) {
         
     | 
| 
      
 12 
     | 
    
         
            +
              let {
         
     | 
| 
      
 13 
     | 
    
         
            +
                nameHash,
         
     | 
| 
      
 14 
     | 
    
         
            +
                value
         
     | 
| 
      
 15 
     | 
    
         
            +
              } = _ref;
         
     | 
| 
      
 16 
     | 
    
         
            +
              let collection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
         
     | 
| 
      
 17 
     | 
    
         
            +
              let atRules = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
         
     | 
| 
      
 18 
     | 
    
         
            +
              if (typeof value === 'string' || typeof value === 'number') {
         
     | 
| 
      
 19 
     | 
    
         
            +
                const val = typeof value === 'number' ? value.toString() : value;
         
     | 
| 
      
 20 
     | 
    
         
            +
                const key = atRules.length === 0 ? 'default' : [...atRules].sort().join(SPLIT_TOKEN);
         
     | 
| 
      
 21 
     | 
    
         
            +
                collection[key] ??= [];
         
     | 
| 
      
 22 
     | 
    
         
            +
                collection[key].push(`--${nameHash}:${val};`);
         
     | 
| 
      
 23 
     | 
    
         
            +
                return;
         
     | 
| 
      
 24 
     | 
    
         
            +
              }
         
     | 
| 
      
 25 
     | 
    
         
            +
              if (value === null) {
         
     | 
| 
      
 26 
     | 
    
         
            +
                return;
         
     | 
| 
      
 27 
     | 
    
         
            +
              }
         
     | 
| 
      
 28 
     | 
    
         
            +
              if (Array.isArray(value)) {
         
     | 
| 
      
 29 
     | 
    
         
            +
                throw new Error('Array is not supported in stylex.defineVars');
         
     | 
| 
      
 30 
     | 
    
         
            +
              }
         
     | 
| 
      
 31 
     | 
    
         
            +
              if (typeof value === 'object') {
         
     | 
| 
      
 32 
     | 
    
         
            +
                if (value.default === undefined) {
         
     | 
| 
      
 33 
     | 
    
         
            +
                  throw new Error('Default value is not defined for ' + key + ' variable.');
         
     | 
| 
      
 34 
     | 
    
         
            +
                }
         
     | 
| 
      
 35 
     | 
    
         
            +
                for (const atRule of Object.keys(value)) {
         
     | 
| 
      
 36 
     | 
    
         
            +
                  collectVarsByAtRule(key, {
         
     | 
| 
      
 37 
     | 
    
         
            +
                    nameHash,
         
     | 
| 
      
 38 
     | 
    
         
            +
                    value: value[atRule]
         
     | 
| 
      
 39 
     | 
    
         
            +
                  }, collection, atRule === 'default' ? atRules : [...atRules, atRule]);
         
     | 
| 
      
 40 
     | 
    
         
            +
                }
         
     | 
| 
      
 41 
     | 
    
         
            +
              }
         
     | 
| 
      
 42 
     | 
    
         
            +
            }
         
     | 
| 
      
 43 
     | 
    
         
            +
            function wrapWithAtRules(ltr, atRule) {
         
     | 
| 
      
 44 
     | 
    
         
            +
              return atRule.split(SPLIT_TOKEN).reduce((acc, atRule) => `${atRule}{${acc}}`, ltr);
         
     | 
| 
      
 45 
     | 
    
         
            +
            }
         
     | 
| 
      
 46 
     | 
    
         
            +
            function priorityForAtRule(atRule) {
         
     | 
| 
      
 47 
     | 
    
         
            +
              if (atRule === 'default') {
         
     | 
| 
      
 48 
     | 
    
         
            +
                return 0;
         
     | 
| 
      
 49 
     | 
    
         
            +
              }
         
     | 
| 
      
 50 
     | 
    
         
            +
              return atRule.split(SPLIT_TOKEN).length;
         
     | 
| 
      
 51 
     | 
    
         
            +
            }
         
     | 
| 
      
 52 
     | 
    
         
            +
            function getDefaultValue(value) {
         
     | 
| 
      
 53 
     | 
    
         
            +
              if (typeof value === 'string' || typeof value === 'number') {
         
     | 
| 
      
 54 
     | 
    
         
            +
                return value.toString();
         
     | 
| 
      
 55 
     | 
    
         
            +
              }
         
     | 
| 
      
 56 
     | 
    
         
            +
              if (value == null) {
         
     | 
| 
      
 57 
     | 
    
         
            +
                return null;
         
     | 
| 
      
 58 
     | 
    
         
            +
              }
         
     | 
| 
      
 59 
     | 
    
         
            +
              if (Array.isArray(value)) {
         
     | 
| 
      
 60 
     | 
    
         
            +
                throw new Error('Array is not supported in stylex.defineVars');
         
     | 
| 
      
 61 
     | 
    
         
            +
              }
         
     | 
| 
      
 62 
     | 
    
         
            +
              if (typeof value === 'object') {
         
     | 
| 
      
 63 
     | 
    
         
            +
                if (value.default === undefined) {
         
     | 
| 
      
 64 
     | 
    
         
            +
                  throw new Error('Default value is not defined for variable.');
         
     | 
| 
      
 65 
     | 
    
         
            +
                }
         
     | 
| 
      
 66 
     | 
    
         
            +
                return getDefaultValue(value.default);
         
     | 
| 
      
 67 
     | 
    
         
            +
              }
         
     | 
| 
      
 68 
     | 
    
         
            +
              throw new Error('Invalid value in stylex.defineVars');
         
     | 
| 
      
 69 
     | 
    
         
            +
            }
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 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 
     | 
    
         
            +
            import type { CSSType } from './types';
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            export type VarsConfigValue =
         
     | 
| 
      
 13 
     | 
    
         
            +
              | string
         
     | 
| 
      
 14 
     | 
    
         
            +
              | $ReadOnly<{ default: VarsConfigValue, [string]: VarsConfigValue }>;
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            export type VarsConfig = $ReadOnly<{
         
     | 
| 
      
 17 
     | 
    
         
            +
              [string]: VarsConfigValue | CSSType<>,
         
     | 
| 
      
 18 
     | 
    
         
            +
            }>;
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
            declare export function collectVarsByAtRule(
         
     | 
| 
      
 21 
     | 
    
         
            +
              key: string,
         
     | 
| 
      
 22 
     | 
    
         
            +
              { +nameHash: string, +value: VarsConfigValue },
         
     | 
| 
      
 23 
     | 
    
         
            +
              collection: { [string]: Array<string> },
         
     | 
| 
      
 24 
     | 
    
         
            +
              atRules: Array<string>,
         
     | 
| 
      
 25 
     | 
    
         
            +
            ): void;
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            declare export function wrapWithAtRules(ltr: string, atRule: string): string;
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            declare export function priorityForAtRule(atRule: string): number;
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            declare export function getDefaultValue(value: VarsConfigValue): ?string;
         
     |