0.2.0 - Mid migration

This commit is contained in:
Daniel Mason 2022-04-25 14:47:15 +12:00
parent 139e6a915e
commit 7e38fdbd7d
42393 changed files with 5358157 additions and 62 deletions

View file

@ -0,0 +1,9 @@
import { GenerateId } from 'jss';
export interface GenerateClassNameOptions {
disableGlobal?: boolean;
productionPrefix?: string;
seed?: string;
}
export default function createGenerateClassName(options?: GenerateClassNameOptions): GenerateId;

View file

@ -0,0 +1,81 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createGenerateClassName;
var _nested = _interopRequireDefault(require("../ThemeProvider/nested"));
/**
* This is the list of the style rule name we use as drop in replacement for the built-in
* pseudo classes (:checked, :disabled, :focused, etc.).
*
* Why do they exist in the first place?
* These classes are used at a specificity of 2.
* It allows them to override previously definied styles as well as
* being untouched by simple user overrides.
*/
var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.
// When new generator function is created, rule counter is reset.
// We need to reset the rule counter for SSR for each request.
//
// It's inspired by
// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js
function createGenerateClassName() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _options$disableGloba = options.disableGlobal,
disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,
_options$productionPr = options.productionPrefix,
productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,
_options$seed = options.seed,
seed = _options$seed === void 0 ? '' : _options$seed;
var seedPrefix = seed === '' ? '' : "".concat(seed, "-");
var ruleCounter = 0;
var getNextCounterId = function getNextCounterId() {
ruleCounter += 1;
if (process.env.NODE_ENV !== 'production') {
if (ruleCounter >= 1e10) {
console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));
}
}
return ruleCounter;
};
return function (rule, styleSheet) {
var name = styleSheet.options.name; // Is a global static MUI style?
if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {
// We can use a shorthand class name, we never use the keys to style the components.
if (pseudoClasses.indexOf(rule.key) !== -1) {
return "Mui-".concat(rule.key);
}
var prefix = "".concat(seedPrefix).concat(name, "-").concat(rule.key);
if (!styleSheet.options.theme[_nested.default] || seed !== '') {
return prefix;
}
return "".concat(prefix, "-").concat(getNextCounterId());
}
if (process.env.NODE_ENV === 'production') {
return "".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());
}
var suffix = "".concat(rule.key, "-").concat(getNextCounterId()); // Help with debuggability.
if (styleSheet.options.classNamePrefix) {
return "".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, "-").concat(suffix);
}
return "".concat(seedPrefix).concat(suffix);
};
}

View file

@ -0,0 +1,86 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createGenerateClassNameHash;
var _hash = _interopRequireDefault(require("@emotion/hash"));
function safePrefix(classNamePrefix) {
var prefix = String(classNamePrefix);
if (process.env.NODE_ENV !== 'production') {
if (prefix.length >= 256) {
console.error("Material-UI: The class name prefix is too long: ".concat(prefix, "."));
}
}
return prefix;
}
var themeHashCache = {};
/**
* Beta feature.
*
* This is an alternative to createGenerateClassName.js.
* Instead of using a index counter, it hash the style sheets to generate the class name.
* The class name call order invariant. With this property, we can cache the style sheets on the server.
*/
function createGenerateClassNameHash() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var _options$dangerouslyU = options.dangerouslyUseGlobalCSS,
dangerouslyUseGlobalCSS = _options$dangerouslyU === void 0 ? false : _options$dangerouslyU,
_options$productionPr = options.productionPrefix,
productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,
_options$seed = options.seed,
seed = _options$seed === void 0 ? '' : _options$seed;
var ruleCounter = 0;
return function (rule, styleSheet) {
var isStatic = !styleSheet.options.link;
if (dangerouslyUseGlobalCSS && styleSheet && styleSheet.options.name && isStatic) {
return "".concat(safePrefix(styleSheet.options.name), "-").concat(rule.key);
}
var suffix; // It's a static rule.
if (isStatic) {
var themeHash = themeHashCache[styleSheet.options.theme];
if (!themeHash) {
themeHash = (0, _hash.default)(JSON.stringify(styleSheet.options.theme));
themeHashCache[styleSheet.theme] = themeHash;
}
var raw = styleSheet.rules.raw[rule.key];
suffix = (0, _hash.default)("".concat(themeHash).concat(rule.key).concat(JSON.stringify(raw)));
}
if (!suffix) {
ruleCounter += 1;
if (process.env.NODE_ENV !== 'production') {
if (ruleCounter >= 1e10) {
console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));
}
}
suffix = ruleCounter;
}
if (process.env.NODE_ENV === 'production') {
return "".concat(productionPrefix).concat(seed).concat(suffix);
} // Help with debuggability.
if (styleSheet.options.classNamePrefix) {
return "".concat(safePrefix(styleSheet.options.classNamePrefix), "-").concat(rule.key, "-").concat(seed).concat(suffix);
}
return "".concat(rule.key, "-").concat(seed).concat(suffix);
};
}

View file

@ -0,0 +1,2 @@
export { default } from './createGenerateClassName';
export * from './createGenerateClassName';

View file

@ -0,0 +1,15 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function get() {
return _createGenerateClassName.default;
}
});
var _createGenerateClassName = _interopRequireDefault(require("./createGenerateClassName"));

View file

@ -0,0 +1,5 @@
{
"sideEffects": false,
"module": "../esm/createGenerateClassName/index.js",
"typings": "./index.d.ts"
}