simplestyle-js 5.2.1 → 5.3.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.
@@ -43,7 +43,7 @@ function formatCSSRuleName(rule) {
43
43
  return rule.replaceAll(/([A-Z])/g, (p1)=>`-${p1.toLowerCase()}`);
44
44
  }
45
45
  function formatCSSRules(cssRules) {
46
- return Object.entries(cssRules).reduce((prev, [cssProp, cssVal])=>`${prev}${formatCSSRuleName(cssProp)}:${String(cssVal)};`, '');
46
+ return Object.entries(cssRules).reduce((prev, [cssProp, cssVal])=>`${prev}${formatCSSRuleName(cssProp)}:${String(cssVal)}${typeof cssVal === 'number' ? 'px' : ''};`, '');
47
47
  }
48
48
  function execCreateStyles(ruleId, rules, options, parentSelector, noGenerateClassName = false) {
49
49
  const out = {};
@@ -1,6 +1,5 @@
1
- import type { Properties } from 'csstype';
2
1
  import type { SimpleStyleRegistry } from './simpleStyleRegistry.js';
3
- import type { ImportStringType, SimpleStyleRules } from './types.js';
2
+ import type { ImportStringType, Properties, SimpleStyleRules } from './types.js';
4
3
  export type CreateStylesOptions = Partial<{
5
4
  /**
6
5
  * If true, automatically renders generated styles
@@ -29,6 +29,7 @@ const _createStyles = /*#__PURE__*/ _interop_require_wildcard(require("./createS
29
29
  const _generateClassName = require("./generateClassName.cjs");
30
30
  _export_star(require("./makeStyles.cjs"), exports);
31
31
  const _plugins = require("./plugins.cjs");
32
+ _export_star(require("./types.cjs"), exports);
32
33
  function _export_star(from, to) {
33
34
  Object.keys(from).forEach(function(k) {
34
35
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -4,4 +4,4 @@ export { setSeed } from './generateClassName.js';
4
4
  export * from './makeStyles.js';
5
5
  export type { PosthookPlugin } from './plugins.js';
6
6
  export { registerPosthook } from './plugins.js';
7
- export type { ImportStringType, SimpleStyleRules } from './types.js';
7
+ export * from './types.js';
@@ -11,25 +11,33 @@ Object.defineProperty(exports, "makeCssFuncs", {
11
11
  const _createStyles = require("./createStyles.cjs");
12
12
  function makeCssFuncs(opts) {
13
13
  function wrappedCreateStyles(ruleId, rulesFnc, overrides) {
14
- return (0, _createStyles.createStyles)(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
14
+ return (0, _createStyles.createStyles)(ruleId, // @ts-expect-error - we've gotten the consumption types this far
15
+ // so TSC can pound sand, because we know this operation is safe
16
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
15
17
  ...overrides,
16
18
  registry: 'registry' in opts ? opts.registry : overrides?.registry
17
19
  });
18
20
  }
19
21
  function wrappedCreateKeyframes(ruleId, rulesFnc, overrides) {
20
- return (0, _createStyles.keyframes)(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
22
+ return (0, _createStyles.keyframes)(ruleId, // @ts-expect-error - we've gotten the consumption types this far
23
+ // so TSC can pound sand, because we know this operation is safe
24
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
21
25
  ...overrides,
22
26
  registry: 'registry' in opts ? opts.registry : overrides?.registry
23
27
  });
24
28
  }
25
29
  function wrappedRawStyles(ruleId, rulesFnc, overrides) {
26
- return (0, _createStyles.rawStyles)(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
30
+ return (0, _createStyles.rawStyles)(ruleId, // @ts-expect-error - we've gotten the consumption types this far
31
+ // so TSC can pound sand, because we know this operation is safe
32
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
27
33
  ...overrides,
28
34
  registry: 'registry' in opts ? opts.registry : overrides?.registry
29
35
  });
30
36
  }
31
37
  function wrappedImports(ruleId, rulesFnc, overrides) {
32
- return (0, _createStyles.imports)(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
38
+ return (0, _createStyles.imports)(ruleId, // @ts-expect-error - we've gotten the consumption types this far
39
+ // so TSC can pound sand, because we know this operation is safe
40
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
33
41
  ...overrides,
34
42
  registry: 'registry' in opts ? opts.registry : overrides?.registry
35
43
  });
@@ -1,14 +1,10 @@
1
1
  import type { Properties } from 'csstype';
2
2
  import { type CreateStylesOptions } from './createStyles.js';
3
3
  import type { SimpleStyleRegistry } from './simpleStyleRegistry.js';
4
- import type { ImportStringType, SimpleStyleRules } from './types.js';
5
- type MakeCssFuncsOpts<T extends object> = {} | {
6
- registry: SimpleStyleRegistry;
7
- } | {
8
- variables: T;
9
- } | {
10
- registry: SimpleStyleRegistry;
11
- variables: T;
4
+ import type { SimpleStyleRules } from './types.js';
5
+ type MakeCssFuncsOpts<T extends object | undefined | null> = {
6
+ registry?: SimpleStyleRegistry;
7
+ variables?: T;
12
8
  };
13
9
  /**
14
10
  * Creates all of your CSS functions, createStyles, keframes and rawStyles,
@@ -17,8 +13,8 @@ type MakeCssFuncsOpts<T extends object> = {} | {
17
13
  * they accept a function as the 2nd parameter, instead of the usual object.
18
14
  * The function will be provided with your variables
19
15
  */
20
- export declare function makeCssFuncs<V extends object>(opts: MakeCssFuncsOpts<V>): {
21
- createStyles: <T extends SimpleStyleRules, K extends keyof T, O extends Record<K, string>>(ruleId: string, rulesFnc: (vars?: V) => T, overrides?: CreateStylesOptions) => {
16
+ export declare function makeCssFuncs<V extends object | undefined | null | never = never>(opts: MakeCssFuncsOpts<V>): {
17
+ createStyles: <T extends SimpleStyleRules, K extends keyof T, O extends Record<K, string>>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overrides?: CreateStylesOptions) => {
22
18
  classes: O;
23
19
  stylesheet: string;
24
20
  updateSheet: <T2 extends SimpleStyleRules>(updatedRulesFnc: () => Partial<T2>) => {
@@ -26,11 +22,11 @@ export declare function makeCssFuncs<V extends object>(opts: MakeCssFuncsOpts<V>
26
22
  stylesheet: string;
27
23
  } | null;
28
24
  };
29
- imports: (ruleId: string, rulesFnc: (vars?: V) => ImportStringType[], overrides?: CreateStylesOptions) => void;
30
- keyframes: <T extends Record<string, Properties>>(ruleId: string, rulesFnc: (vars?: V) => T, overrides?: CreateStylesOptions) => {
25
+ imports: (ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => `@import ${string}`[], overrides?: CreateStylesOptions) => void;
26
+ keyframes: <T extends Record<string, Properties>>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overrides?: CreateStylesOptions) => {
31
27
  keyframe: string;
32
28
  stylesheet: string;
33
29
  };
34
- rawStyles: <T extends SimpleStyleRules>(ruleId: string, rulesFnc: (vars?: V) => T, overrides?: CreateStylesOptions) => string;
30
+ rawStyles: <T extends SimpleStyleRules>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overrides?: CreateStylesOptions) => string;
35
31
  };
36
32
  export {};
@@ -5,3 +5,4 @@ export type SimpleStyleRules = {
5
5
  export type RenderableSimpleStyleRules = SimpleStyleRules & Record<string, Properties[]>;
6
6
  export type HasProperty<T, K extends keyof T> = T extends Record<K, any> ? true : false;
7
7
  export type ImportStringType = `@import ${string}`;
8
+ export type { Properties };
@@ -1,6 +1,5 @@
1
- import type { Properties } from 'csstype';
2
1
  import type { SimpleStyleRegistry } from './simpleStyleRegistry.js';
3
- import type { ImportStringType, SimpleStyleRules } from './types.js';
2
+ import type { ImportStringType, Properties, SimpleStyleRules } from './types.js';
4
3
  export type CreateStylesOptions = Partial<{
5
4
  /**
6
5
  * If true, automatically renders generated styles
@@ -11,7 +11,7 @@ function formatCSSRuleName(rule) {
11
11
  return rule.replaceAll(/([A-Z])/g, (p1)=>`-${p1.toLowerCase()}`);
12
12
  }
13
13
  function formatCSSRules(cssRules) {
14
- return Object.entries(cssRules).reduce((prev, [cssProp, cssVal])=>`${prev}${formatCSSRuleName(cssProp)}:${String(cssVal)};`, '');
14
+ return Object.entries(cssRules).reduce((prev, [cssProp, cssVal])=>`${prev}${formatCSSRuleName(cssProp)}:${String(cssVal)}${typeof cssVal === 'number' ? 'px' : ''};`, '');
15
15
  }
16
16
  function execCreateStyles(ruleId, rules, options, parentSelector, noGenerateClassName = false) {
17
17
  const out = {};
@@ -4,4 +4,4 @@ export { setSeed } from './generateClassName.js';
4
4
  export * from './makeStyles.js';
5
5
  export type { PosthookPlugin } from './plugins.js';
6
6
  export { registerPosthook } from './plugins.js';
7
- export type { ImportStringType, SimpleStyleRules } from './types.js';
7
+ export * from './types.js';
@@ -2,3 +2,4 @@ export { default as createStyles, keyframes, rawStyles } from './createStyles.mj
2
2
  export { setSeed } from './generateClassName.mjs';
3
3
  export * from './makeStyles.mjs';
4
4
  export { registerPosthook } from './plugins.mjs';
5
+ export * from './types.mjs';
@@ -1,14 +1,10 @@
1
1
  import type { Properties } from 'csstype';
2
2
  import { type CreateStylesOptions } from './createStyles.js';
3
3
  import type { SimpleStyleRegistry } from './simpleStyleRegistry.js';
4
- import type { ImportStringType, SimpleStyleRules } from './types.js';
5
- type MakeCssFuncsOpts<T extends object> = {} | {
6
- registry: SimpleStyleRegistry;
7
- } | {
8
- variables: T;
9
- } | {
10
- registry: SimpleStyleRegistry;
11
- variables: T;
4
+ import type { SimpleStyleRules } from './types.js';
5
+ type MakeCssFuncsOpts<T extends object | undefined | null> = {
6
+ registry?: SimpleStyleRegistry;
7
+ variables?: T;
12
8
  };
13
9
  /**
14
10
  * Creates all of your CSS functions, createStyles, keframes and rawStyles,
@@ -17,8 +13,8 @@ type MakeCssFuncsOpts<T extends object> = {} | {
17
13
  * they accept a function as the 2nd parameter, instead of the usual object.
18
14
  * The function will be provided with your variables
19
15
  */
20
- export declare function makeCssFuncs<V extends object>(opts: MakeCssFuncsOpts<V>): {
21
- createStyles: <T extends SimpleStyleRules, K extends keyof T, O extends Record<K, string>>(ruleId: string, rulesFnc: (vars?: V) => T, overrides?: CreateStylesOptions) => {
16
+ export declare function makeCssFuncs<V extends object | undefined | null | never = never>(opts: MakeCssFuncsOpts<V>): {
17
+ createStyles: <T extends SimpleStyleRules, K extends keyof T, O extends Record<K, string>>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overrides?: CreateStylesOptions) => {
22
18
  classes: O;
23
19
  stylesheet: string;
24
20
  updateSheet: <T2 extends SimpleStyleRules>(updatedRulesFnc: () => Partial<T2>) => {
@@ -26,11 +22,11 @@ export declare function makeCssFuncs<V extends object>(opts: MakeCssFuncsOpts<V>
26
22
  stylesheet: string;
27
23
  } | null;
28
24
  };
29
- imports: (ruleId: string, rulesFnc: (vars?: V) => ImportStringType[], overrides?: CreateStylesOptions) => void;
30
- keyframes: <T extends Record<string, Properties>>(ruleId: string, rulesFnc: (vars?: V) => T, overrides?: CreateStylesOptions) => {
25
+ imports: (ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => `@import ${string}`[], overrides?: CreateStylesOptions) => void;
26
+ keyframes: <T extends Record<string, Properties>>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overrides?: CreateStylesOptions) => {
31
27
  keyframe: string;
32
28
  stylesheet: string;
33
29
  };
34
- rawStyles: <T extends SimpleStyleRules>(ruleId: string, rulesFnc: (vars?: V) => T, overrides?: CreateStylesOptions) => string;
30
+ rawStyles: <T extends SimpleStyleRules>(ruleId: string, rulesFnc: (vars: V extends undefined | null | never ? never : V) => T, overrides?: CreateStylesOptions) => string;
35
31
  };
36
32
  export {};
@@ -7,25 +7,33 @@ import { createStyles, imports, keyframes, rawStyles } from './createStyles.mjs'
7
7
  * The function will be provided with your variables
8
8
  */ export function makeCssFuncs(opts) {
9
9
  function wrappedCreateStyles(ruleId, rulesFnc, overrides) {
10
- return createStyles(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
10
+ return createStyles(ruleId, // @ts-expect-error - we've gotten the consumption types this far
11
+ // so TSC can pound sand, because we know this operation is safe
12
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
11
13
  ...overrides,
12
14
  registry: 'registry' in opts ? opts.registry : overrides?.registry
13
15
  });
14
16
  }
15
17
  function wrappedCreateKeyframes(ruleId, rulesFnc, overrides) {
16
- return keyframes(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
18
+ return keyframes(ruleId, // @ts-expect-error - we've gotten the consumption types this far
19
+ // so TSC can pound sand, because we know this operation is safe
20
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
17
21
  ...overrides,
18
22
  registry: 'registry' in opts ? opts.registry : overrides?.registry
19
23
  });
20
24
  }
21
25
  function wrappedRawStyles(ruleId, rulesFnc, overrides) {
22
- return rawStyles(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
26
+ return rawStyles(ruleId, // @ts-expect-error - we've gotten the consumption types this far
27
+ // so TSC can pound sand, because we know this operation is safe
28
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
23
29
  ...overrides,
24
30
  registry: 'registry' in opts ? opts.registry : overrides?.registry
25
31
  });
26
32
  }
27
33
  function wrappedImports(ruleId, rulesFnc, overrides) {
28
- return imports(ruleId, ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
34
+ return imports(ruleId, // @ts-expect-error - we've gotten the consumption types this far
35
+ // so TSC can pound sand, because we know this operation is safe
36
+ ()=>rulesFnc('variables' in opts ? opts.variables : undefined), {
29
37
  ...overrides,
30
38
  registry: 'registry' in opts ? opts.registry : overrides?.registry
31
39
  });
@@ -5,3 +5,4 @@ export type SimpleStyleRules = {
5
5
  export type RenderableSimpleStyleRules = SimpleStyleRules & Record<string, Properties[]>;
6
6
  export type HasProperty<T, K extends keyof T> = T extends Record<K, any> ? true : false;
7
7
  export type ImportStringType = `@import ${string}`;
8
+ export type { Properties };
@@ -1 +1,2 @@
1
+ // re-export this type so we don't run into portability issues here
1
2
  export { };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simplestyle-js",
3
- "version": "5.2.1",
3
+ "version": "5.3.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": {