simplestyle-js 5.4.4 → 5.4.5-beta.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.
@@ -9,47 +9,61 @@ Object.defineProperty(exports, "makeCssFuncs", {
9
9
  }
10
10
  });
11
11
  const _createStyles = require("./createStyles.cjs");
12
- function extractOverridesAndOpts(optsOrCallback, overridesOrCallback) {
12
+ function extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback) {
13
13
  const opts = typeof optsOrCallback === 'function' ? optsOrCallback() : optsOrCallback;
14
14
  const overrides = typeof overridesOrCallback === 'function' ? overridesOrCallback() : overridesOrCallback;
15
- return {
15
+ const out = {
16
16
  ...opts,
17
17
  ...overrides
18
18
  };
19
+ if (localRegistryOverride) out.registry = localRegistryOverride;
20
+ return out;
19
21
  }
20
22
  function makeCssFuncs(optsOrCallback) {
23
+ let localRegistryOverride = null;
21
24
  function wrappedCreateStyles(ruleId, rulesFnc, overridesOrCallback) {
22
25
  return (0, _createStyles.createStyles)(ruleId, ()=>{
23
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
26
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
24
27
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
25
28
  'variables' in opts ? opts.variables : undefined);
26
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
29
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
27
30
  }
28
31
  function wrappedCreateKeyframes(ruleId, rulesFnc, overridesOrCallback) {
29
32
  return (0, _createStyles.keyframes)(ruleId, ()=>{
30
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
33
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
31
34
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
32
35
  'variables' in opts ? opts.variables : undefined);
33
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
36
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
34
37
  }
35
38
  function wrappedRawStyles(ruleId, rulesFnc, overridesOrCallback) {
36
39
  return (0, _createStyles.rawStyles)(ruleId, ()=>{
37
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
40
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
38
41
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
39
42
  'variables' in opts ? opts.variables : undefined);
40
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
43
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
41
44
  }
42
45
  function wrappedImports(ruleId, rulesFnc, overridesOrCallback) {
43
46
  return (0, _createStyles.imports)(ruleId, ()=>{
44
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
47
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
45
48
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
46
49
  'variables' in opts ? opts.variables : undefined);
47
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
50
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
48
51
  }
52
+ /**
53
+ * this is a useful function to use if you are building a component library
54
+ * that is installed / shared in other packages, and these packages that
55
+ * use your component library are server-side rendered.
56
+ * this function should be called as the very first thing before any of your
57
+ * other component code is loaded, as this will ensure your CSS registry
58
+ * is clamped to the instance you need
59
+ */ const setRegistryOverride = (registry)=>{
60
+ localRegistryOverride = registry;
61
+ };
49
62
  return {
50
63
  createStyles: wrappedCreateStyles,
51
64
  imports: wrappedImports,
52
65
  keyframes: wrappedCreateKeyframes,
53
- rawStyles: wrappedRawStyles
66
+ rawStyles: wrappedRawStyles,
67
+ setRegistryOverride
54
68
  };
55
69
  }
@@ -31,5 +31,6 @@ export declare function makeCssFuncs<V extends object | undefined | null | never
31
31
  stylesheet: string;
32
32
  };
33
33
  rawStyles: <T extends SimpleStyleRules>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overridesOrCallback?: CreateStylesOptions) => string;
34
+ setRegistryOverride: (registry: Nullish<SimpleStyleRegistry>) => void;
34
35
  };
35
36
  export {};
@@ -31,5 +31,6 @@ export declare function makeCssFuncs<V extends object | undefined | null | never
31
31
  stylesheet: string;
32
32
  };
33
33
  rawStyles: <T extends SimpleStyleRules>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overridesOrCallback?: CreateStylesOptions) => string;
34
+ setRegistryOverride: (registry: Nullish<SimpleStyleRegistry>) => void;
34
35
  };
35
36
  export {};
@@ -1,11 +1,13 @@
1
1
  import { createStyles, imports, keyframes, rawStyles } from './createStyles.mjs';
2
- function extractOverridesAndOpts(optsOrCallback, overridesOrCallback) {
2
+ function extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback) {
3
3
  const opts = typeof optsOrCallback === 'function' ? optsOrCallback() : optsOrCallback;
4
4
  const overrides = typeof overridesOrCallback === 'function' ? overridesOrCallback() : overridesOrCallback;
5
- return {
5
+ const out = {
6
6
  ...opts,
7
7
  ...overrides
8
8
  };
9
+ if (localRegistryOverride) out.registry = localRegistryOverride;
10
+ return out;
9
11
  }
10
12
  /**
11
13
  * Creates all of your CSS functions, createStyles, keframes and rawStyles,
@@ -14,38 +16,50 @@ function extractOverridesAndOpts(optsOrCallback, overridesOrCallback) {
14
16
  * they accept a function as the 2nd parameter, instead of the usual object.
15
17
  * The function will be provided with your variables
16
18
  */ export function makeCssFuncs(optsOrCallback) {
19
+ let localRegistryOverride = null;
17
20
  function wrappedCreateStyles(ruleId, rulesFnc, overridesOrCallback) {
18
21
  return createStyles(ruleId, ()=>{
19
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
22
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
20
23
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
21
24
  'variables' in opts ? opts.variables : undefined);
22
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
25
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
23
26
  }
24
27
  function wrappedCreateKeyframes(ruleId, rulesFnc, overridesOrCallback) {
25
28
  return keyframes(ruleId, ()=>{
26
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
29
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
27
30
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
28
31
  'variables' in opts ? opts.variables : undefined);
29
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
32
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
30
33
  }
31
34
  function wrappedRawStyles(ruleId, rulesFnc, overridesOrCallback) {
32
35
  return rawStyles(ruleId, ()=>{
33
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
36
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
34
37
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
35
38
  'variables' in opts ? opts.variables : undefined);
36
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
39
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
37
40
  }
38
41
  function wrappedImports(ruleId, rulesFnc, overridesOrCallback) {
39
42
  return imports(ruleId, ()=>{
40
- const opts = extractOverridesAndOpts(optsOrCallback, overridesOrCallback);
43
+ const opts = extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback);
41
44
  return rulesFnc(// @ts-expect-error - this is a safe operation, even if tsc gets confused right here
42
45
  'variables' in opts ? opts.variables : undefined);
43
- }, ()=>extractOverridesAndOpts(optsOrCallback, overridesOrCallback));
46
+ }, ()=>extractOverridesAndOpts(optsOrCallback, localRegistryOverride, overridesOrCallback));
44
47
  }
48
+ /**
49
+ * this is a useful function to use if you are building a component library
50
+ * that is installed / shared in other packages, and these packages that
51
+ * use your component library are server-side rendered.
52
+ * this function should be called as the very first thing before any of your
53
+ * other component code is loaded, as this will ensure your CSS registry
54
+ * is clamped to the instance you need
55
+ */ const setRegistryOverride = (registry)=>{
56
+ localRegistryOverride = registry;
57
+ };
45
58
  return {
46
59
  createStyles: wrappedCreateStyles,
47
60
  imports: wrappedImports,
48
61
  keyframes: wrappedCreateKeyframes,
49
- rawStyles: wrappedRawStyles
62
+ rawStyles: wrappedRawStyles,
63
+ setRegistryOverride
50
64
  };
51
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simplestyle-js",
3
- "version": "5.4.4",
3
+ "version": "5.4.5-beta.0",
4
4
  "description": "An incredibly straightforward and simple CSS-in-JS solution with zero runtime dependencies, and out-of-the-box TypeScript support",
5
5
  "type": "module",
6
6
  "repository": {