@blockle/blocks-core 0.21.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.
Files changed (65) hide show
  1. package/README.md +2 -0
  2. package/dist/config/componentThemes.d.ts +137 -0
  3. package/dist/config/themeTokens.d.ts +33 -0
  4. package/dist/css/breakpoint/breakpoint.cjs +15 -0
  5. package/dist/css/breakpoint/breakpoint.d.ts +9 -0
  6. package/dist/css/breakpoint/breakpoint.js +15 -0
  7. package/dist/css/breakpoint/breakpoint.test.d.ts +1 -0
  8. package/dist/css/layers.css.cjs +8 -0
  9. package/dist/css/layers.css.d.ts +1 -0
  10. package/dist/css/layers.css.js +8 -0
  11. package/dist/css/rem.cjs +6 -0
  12. package/dist/css/rem.d.ts +1 -0
  13. package/dist/css/rem.js +6 -0
  14. package/dist/css/tokens.cjs +82 -0
  15. package/dist/css/tokens.d.ts +2 -0
  16. package/dist/css/tokens.js +82 -0
  17. package/dist/css/vars.css.cjs +10 -0
  18. package/dist/css/vars.css.d.ts +75 -0
  19. package/dist/css/vars.css.js +10 -0
  20. package/dist/index.cjs +37 -0
  21. package/dist/index.d.ts +21 -0
  22. package/dist/index.js +37 -0
  23. package/dist/sprinkles/atomTypes.d.ts +36 -0
  24. package/dist/sprinkles/atomicProperties.cjs +91 -0
  25. package/dist/sprinkles/atomicProperties.d.ts +286 -0
  26. package/dist/sprinkles/atomicProperties.js +91 -0
  27. package/dist/sprinkles/getAtomsAndProps.cjs +16 -0
  28. package/dist/sprinkles/getAtomsAndProps.d.ts +2 -0
  29. package/dist/sprinkles/getAtomsAndProps.js +16 -0
  30. package/dist/sprinkles/sprinkles.css.cjs +52 -0
  31. package/dist/sprinkles/sprinkles.css.d.ts +234 -0
  32. package/dist/sprinkles/sprinkles.css.js +52 -0
  33. package/dist/theme/makeComponentTheme.cjs +6 -0
  34. package/dist/theme/makeComponentTheme.d.ts +29 -0
  35. package/dist/theme/makeComponentTheme.js +6 -0
  36. package/dist/theme/makeTheme.cjs +13 -0
  37. package/dist/theme/makeTheme.d.ts +14 -0
  38. package/dist/theme/makeTheme.js +13 -0
  39. package/dist/theme/makeVanillaTheme.cjs +20 -0
  40. package/dist/theme/makeVanillaTheme.d.ts +16 -0
  41. package/dist/theme/makeVanillaTheme.js +20 -0
  42. package/dist/theme/theme.d.ts +3 -0
  43. package/dist/utils/classnames/classnames.cjs +7 -0
  44. package/dist/utils/classnames/classnames.d.ts +3 -0
  45. package/dist/utils/classnames/classnames.js +7 -0
  46. package/dist/utils/classnames/classnames.test.d.ts +1 -0
  47. package/dist/utils/dom/hasAnimationDuration.cjs +13 -0
  48. package/dist/utils/dom/hasAnimationDuration.d.ts +4 -0
  49. package/dist/utils/dom/hasAnimationDuration.js +13 -0
  50. package/dist/utils/flexbox/flexbox.cjs +17 -0
  51. package/dist/utils/flexbox/flexbox.d.ts +15 -0
  52. package/dist/utils/flexbox/flexbox.js +17 -0
  53. package/dist/utils/math/math.cjs +13 -0
  54. package/dist/utils/math/math.d.ts +2 -0
  55. package/dist/utils/math/math.js +13 -0
  56. package/dist/utils/react/mergeProps.cjs +43 -0
  57. package/dist/utils/react/mergeProps.d.ts +4 -0
  58. package/dist/utils/react/mergeProps.js +43 -0
  59. package/dist/utils/react/refs.cjs +17 -0
  60. package/dist/utils/react/refs.d.ts +3 -0
  61. package/dist/utils/react/refs.js +17 -0
  62. package/dist/utils/typing/helpers.cjs +6 -0
  63. package/dist/utils/typing/helpers.d.ts +12 -0
  64. package/dist/utils/typing/helpers.js +6 -0
  65. package/package.json +45 -0
package/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # @blockle/theme
2
+
@@ -0,0 +1,137 @@
1
+ import { Sprinkles } from '../sprinkles/sprinkles.css';
2
+ import { RecordLike } from '../utils/typing/helpers';
3
+ /**
4
+ * Theming options for components.
5
+ */
6
+ export type ButtonTheme = {
7
+ base: string;
8
+ variants: {
9
+ variant: 'solid' | 'outline' | 'ghost';
10
+ intent: 'neutral' | 'danger';
11
+ size: 'small' | 'medium' | 'large';
12
+ loading: boolean;
13
+ disabled: boolean;
14
+ };
15
+ };
16
+ export type LinkTheme = {
17
+ base: string;
18
+ variants: {
19
+ variant: 'inherit' | 'primary' | 'secondary';
20
+ underline: boolean;
21
+ };
22
+ };
23
+ export type SpinnerTheme = {
24
+ base: string;
25
+ variants: {
26
+ size: 'small' | 'medium' | 'large';
27
+ color: Exclude<Sprinkles['color'], undefined>;
28
+ };
29
+ };
30
+ export type DividerTheme = {
31
+ base?: string;
32
+ variants: {
33
+ color: Exclude<Sprinkles['color'], undefined>;
34
+ };
35
+ };
36
+ export type DialogTheme = {
37
+ dialog: string;
38
+ variants: {
39
+ size: 'small' | 'medium' | 'large';
40
+ };
41
+ };
42
+ export type InputTheme = {
43
+ container: string;
44
+ input: string;
45
+ variants: {
46
+ variant: 'solid' | 'outline';
47
+ disabled: boolean;
48
+ required: boolean;
49
+ };
50
+ };
51
+ export type CheckboxTheme = {
52
+ base: string;
53
+ icon: string;
54
+ label: string;
55
+ variants: {
56
+ required: boolean;
57
+ };
58
+ };
59
+ export type RadioTheme = {
60
+ base: string;
61
+ icon: string;
62
+ label: string;
63
+ };
64
+ export type LabelTheme = {
65
+ base: string;
66
+ variants: {
67
+ size: 'small' | 'medium' | 'large';
68
+ required: boolean;
69
+ };
70
+ };
71
+ export type ProgressTheme = {
72
+ base: string;
73
+ bar: string;
74
+ variants: {
75
+ indeterminate: boolean;
76
+ };
77
+ };
78
+ export type SwitchTheme = {
79
+ base: string;
80
+ slider: string;
81
+ };
82
+ export type PopoverTheme = {
83
+ base: string;
84
+ };
85
+ export type SelectTheme = {
86
+ wrapper?: string;
87
+ select: string;
88
+ icon: string;
89
+ variants: {
90
+ variant: 'solid' | 'outline';
91
+ };
92
+ };
93
+ export type SliderTheme = {
94
+ base: string;
95
+ track: string;
96
+ filledTrack: string;
97
+ thumb: string;
98
+ variants: {
99
+ size: 'small' | 'medium' | 'large';
100
+ colorScheme: 'primary' | 'secondary';
101
+ disabled: boolean;
102
+ };
103
+ };
104
+ export type TooltipTheme = {
105
+ base: string;
106
+ variants: {
107
+ colorScheme: 'primary' | 'secondary';
108
+ };
109
+ };
110
+ export type ComponentThemes = {
111
+ button: ButtonTheme;
112
+ checkbox: CheckboxTheme;
113
+ dialog: DialogTheme;
114
+ divider: DividerTheme;
115
+ input: InputTheme;
116
+ label: LabelTheme;
117
+ link: LinkTheme;
118
+ popover: PopoverTheme;
119
+ progress: ProgressTheme;
120
+ radio: RadioTheme;
121
+ select: SelectTheme;
122
+ slider: SliderTheme;
123
+ spinner: SpinnerTheme;
124
+ switch: SwitchTheme;
125
+ tooltip: TooltipTheme;
126
+ };
127
+ /**
128
+ * ComponentThemeProps is a helper type to define the props passed to useComponentStyles.
129
+ */
130
+ export type ComponentThemeProps<T extends RecordLike> = Omit<{
131
+ [K in keyof T]?: Exclude<T[K], undefined> extends string ? boolean : never;
132
+ }, 'variants'> & {
133
+ variants?: T['variants'] extends RecordLike ? Partial<T['variants']> : never;
134
+ };
135
+ export type ComponentThemesProps = {
136
+ [K in keyof ComponentThemes]: ComponentThemeProps<ComponentThemes[K]>;
137
+ };
@@ -0,0 +1,33 @@
1
+ type FontWeight = 'regular' | 'medium' | 'strong';
2
+ type Space = 'none' | 'gutter' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
3
+ type Transition = 'slow' | 'normal' | 'fast';
4
+ type BorderRadius = 'small' | 'medium' | 'large' | 'xlarge';
5
+ type BorderWidth = 'small' | 'medium' | 'large';
6
+ type BoxShadow = 'small' | 'medium' | 'large';
7
+ type FontSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
8
+ type LineHeight = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
9
+ type Color = 'white' | 'black' | 'body' | 'primaryLight' | 'primary' | 'primaryDark' | 'secondaryLight' | 'secondary' | 'secondaryDark' | 'text' | 'textLight' | 'textDark' | 'danger' | 'link';
10
+ export type ThemeTokens = {
11
+ typography: {
12
+ fontFamily: {
13
+ body?: string;
14
+ primary?: string;
15
+ secondary?: string;
16
+ };
17
+ fontSize: Record<FontSize, number | string>;
18
+ fontWeight: Record<FontWeight, 400 | 500 | 600 | 700 | 800>;
19
+ lineHeight: Record<LineHeight, number | string>;
20
+ };
21
+ spacing: Record<Space, number | string>;
22
+ transition: Record<Transition, string>;
23
+ border: {
24
+ radius: Record<BorderRadius, number | string>;
25
+ width: Record<BorderWidth, number | string>;
26
+ };
27
+ shadow: Record<BoxShadow, string>;
28
+ focus: {
29
+ boxShadow: string;
30
+ };
31
+ color: Record<Color, string>;
32
+ };
33
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const breakpointNames = ["mobile", "tablet", "desktop", "wide"];
4
+ const breakpoints = {
5
+ mobile: 0,
6
+ tablet: 740,
7
+ desktop: 992,
8
+ wide: 1200
9
+ };
10
+ function minMediaQuery(breakpoint) {
11
+ return `screen and (min-width: ${breakpoints[breakpoint]}px)`;
12
+ }
13
+ exports.breakpointNames = breakpointNames;
14
+ exports.breakpoints = breakpoints;
15
+ exports.minMediaQuery = minMediaQuery;
@@ -0,0 +1,9 @@
1
+ export declare const breakpointNames: readonly ["mobile", "tablet", "desktop", "wide"];
2
+ export declare const breakpoints: {
3
+ readonly mobile: 0;
4
+ readonly tablet: 740;
5
+ readonly desktop: 992;
6
+ readonly wide: 1200;
7
+ };
8
+ export type Breakpoint = keyof typeof breakpoints;
9
+ export declare function minMediaQuery(breakpoint: Exclude<Breakpoint, 'mobile'>): string;
@@ -0,0 +1,15 @@
1
+ const breakpointNames = ["mobile", "tablet", "desktop", "wide"];
2
+ const breakpoints = {
3
+ mobile: 0,
4
+ tablet: 740,
5
+ desktop: 992,
6
+ wide: 1200
7
+ };
8
+ function minMediaQuery(breakpoint) {
9
+ return `screen and (min-width: ${breakpoints[breakpoint]}px)`;
10
+ }
11
+ export {
12
+ breakpointNames,
13
+ breakpoints,
14
+ minMediaQuery
15
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fileScope = require("@vanilla-extract/css/fileScope");
4
+ const css = require("@vanilla-extract/css");
5
+ fileScope.setFileScope("src/css/layers.css.ts", "@blockle/blocks-core");
6
+ const blocksLayer = css.layer("blockle-blocks");
7
+ fileScope.endFileScope();
8
+ exports.blocksLayer = blocksLayer;
@@ -0,0 +1 @@
1
+ export declare const blocksLayer: string;
@@ -0,0 +1,8 @@
1
+ import { setFileScope, endFileScope } from "@vanilla-extract/css/fileScope";
2
+ import { layer } from "@vanilla-extract/css";
3
+ setFileScope("src/css/layers.css.ts", "@blockle/blocks-core");
4
+ const blocksLayer = layer("blockle-blocks");
5
+ endFileScope();
6
+ export {
7
+ blocksLayer
8
+ };
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function rem(value) {
4
+ return `${value / 16}rem`;
5
+ }
6
+ exports.rem = rem;
@@ -0,0 +1 @@
1
+ export declare function rem(value: number): `${number}rem`;
@@ -0,0 +1,6 @@
1
+ function rem(value) {
2
+ return `${value / 16}rem`;
3
+ }
4
+ export {
5
+ rem
6
+ };
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const tokens = {
4
+ typography: {
5
+ fontFamily: {
6
+ body: "Roboto, sans-serif",
7
+ primary: "Roboto, sans-serif",
8
+ secondary: "Roboto, sans-serif"
9
+ },
10
+ fontSize: {
11
+ xsmall: "0.75rem",
12
+ small: "0.875rem",
13
+ medium: "1rem",
14
+ large: "1.125rem",
15
+ xlarge: "1.25rem"
16
+ },
17
+ fontWeight: {
18
+ regular: 400,
19
+ medium: 500,
20
+ strong: 700
21
+ },
22
+ lineHeight: {
23
+ xsmall: "1rem",
24
+ small: "1.25rem",
25
+ medium: "1.5rem",
26
+ large: "1.75rem",
27
+ xlarge: "2rem"
28
+ }
29
+ },
30
+ spacing: {
31
+ none: 0,
32
+ gutter: "1rem",
33
+ xsmall: "0.25rem",
34
+ small: "0.5rem",
35
+ medium: "1rem",
36
+ large: "1.5rem",
37
+ xlarge: "2rem"
38
+ },
39
+ transition: {
40
+ slow: "500ms",
41
+ normal: "300ms",
42
+ fast: "100ms"
43
+ },
44
+ border: {
45
+ radius: {
46
+ small: "0.25rem",
47
+ medium: "0.5rem",
48
+ large: "1rem",
49
+ xlarge: "2rem"
50
+ },
51
+ width: {
52
+ small: "1px",
53
+ medium: "2px",
54
+ large: "4px"
55
+ }
56
+ },
57
+ shadow: {
58
+ small: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
59
+ medium: "0 2px 4px 0 rgba(0, 0, 0, 0.05)",
60
+ large: "0 4px 8px 0 rgba(0, 0, 0, 0.05)"
61
+ },
62
+ focus: {
63
+ boxShadow: "0 0 0 2px #AF8EFF"
64
+ },
65
+ color: {
66
+ black: "#000000",
67
+ white: "#ffffff",
68
+ body: "#ffffff",
69
+ primaryLight: "#f5f5f5",
70
+ primary: "#e0e0e0",
71
+ primaryDark: "#aeaeae",
72
+ secondaryLight: "#f5f5f5",
73
+ secondary: "#e0e0e0",
74
+ secondaryDark: "#aeaeae",
75
+ text: "#000000",
76
+ textLight: "#ffffff",
77
+ textDark: "#aeaeae",
78
+ danger: "#ff0000",
79
+ link: "#0000ff"
80
+ }
81
+ };
82
+ exports.tokens = tokens;
@@ -0,0 +1,2 @@
1
+ import { ThemeTokens } from '../config/themeTokens';
2
+ export declare const tokens: ThemeTokens;
@@ -0,0 +1,82 @@
1
+ const tokens = {
2
+ typography: {
3
+ fontFamily: {
4
+ body: "Roboto, sans-serif",
5
+ primary: "Roboto, sans-serif",
6
+ secondary: "Roboto, sans-serif"
7
+ },
8
+ fontSize: {
9
+ xsmall: "0.75rem",
10
+ small: "0.875rem",
11
+ medium: "1rem",
12
+ large: "1.125rem",
13
+ xlarge: "1.25rem"
14
+ },
15
+ fontWeight: {
16
+ regular: 400,
17
+ medium: 500,
18
+ strong: 700
19
+ },
20
+ lineHeight: {
21
+ xsmall: "1rem",
22
+ small: "1.25rem",
23
+ medium: "1.5rem",
24
+ large: "1.75rem",
25
+ xlarge: "2rem"
26
+ }
27
+ },
28
+ spacing: {
29
+ none: 0,
30
+ gutter: "1rem",
31
+ xsmall: "0.25rem",
32
+ small: "0.5rem",
33
+ medium: "1rem",
34
+ large: "1.5rem",
35
+ xlarge: "2rem"
36
+ },
37
+ transition: {
38
+ slow: "500ms",
39
+ normal: "300ms",
40
+ fast: "100ms"
41
+ },
42
+ border: {
43
+ radius: {
44
+ small: "0.25rem",
45
+ medium: "0.5rem",
46
+ large: "1rem",
47
+ xlarge: "2rem"
48
+ },
49
+ width: {
50
+ small: "1px",
51
+ medium: "2px",
52
+ large: "4px"
53
+ }
54
+ },
55
+ shadow: {
56
+ small: "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
57
+ medium: "0 2px 4px 0 rgba(0, 0, 0, 0.05)",
58
+ large: "0 4px 8px 0 rgba(0, 0, 0, 0.05)"
59
+ },
60
+ focus: {
61
+ boxShadow: "0 0 0 2px #AF8EFF"
62
+ },
63
+ color: {
64
+ black: "#000000",
65
+ white: "#ffffff",
66
+ body: "#ffffff",
67
+ primaryLight: "#f5f5f5",
68
+ primary: "#e0e0e0",
69
+ primaryDark: "#aeaeae",
70
+ secondaryLight: "#f5f5f5",
71
+ secondary: "#e0e0e0",
72
+ secondaryDark: "#aeaeae",
73
+ text: "#000000",
74
+ textLight: "#ffffff",
75
+ textDark: "#aeaeae",
76
+ danger: "#ff0000",
77
+ link: "#0000ff"
78
+ }
79
+ };
80
+ export {
81
+ tokens
82
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fileScope = require("@vanilla-extract/css/fileScope");
4
+ const css = require("@vanilla-extract/css");
5
+ const makeVanillaTheme = require("../theme/makeVanillaTheme.cjs");
6
+ const tokens = require("./tokens.cjs");
7
+ fileScope.setFileScope("src/css/vars.css.ts", "@blockle/blocks-core");
8
+ const vars = css.createThemeContract(makeVanillaTheme.makeVanillaTheme(tokens.tokens));
9
+ fileScope.endFileScope();
10
+ exports.vars = vars;
@@ -0,0 +1,75 @@
1
+ export declare const vars: {
2
+ space: {
3
+ medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
4
+ none: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
5
+ gutter: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
6
+ xsmall: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
7
+ small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
8
+ large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
9
+ xlarge: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
10
+ };
11
+ borderRadius: {
12
+ medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
13
+ small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
14
+ large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
15
+ xlarge: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
16
+ };
17
+ color: {
18
+ white: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
19
+ black: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
20
+ body: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
21
+ primaryLight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
22
+ primary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
23
+ primaryDark: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
24
+ secondaryLight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
25
+ secondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
26
+ secondaryDark: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
27
+ text: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
28
+ textLight: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
29
+ textDark: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
30
+ danger: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
31
+ link: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
32
+ };
33
+ borderWidth: {
34
+ medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
35
+ small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
36
+ large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
37
+ };
38
+ fontFamily: {
39
+ body: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
40
+ primary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
41
+ secondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
42
+ };
43
+ fontSize: {
44
+ medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
45
+ xsmall: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
46
+ small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
47
+ large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
48
+ xlarge: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
49
+ };
50
+ fontWeight: {
51
+ regular: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
52
+ medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
53
+ strong: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
54
+ };
55
+ lineHeight: {
56
+ medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
57
+ xsmall: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
58
+ small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
59
+ large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
60
+ xlarge: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
61
+ };
62
+ transition: {
63
+ slow: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
64
+ normal: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
65
+ fast: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
66
+ };
67
+ shadow: {
68
+ medium: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
69
+ small: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
70
+ large: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
71
+ };
72
+ focus: {
73
+ boxShadow: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
74
+ };
75
+ };
@@ -0,0 +1,10 @@
1
+ import { setFileScope, endFileScope } from "@vanilla-extract/css/fileScope";
2
+ import { createThemeContract } from "@vanilla-extract/css";
3
+ import { makeVanillaTheme } from "../theme/makeVanillaTheme.js";
4
+ import { tokens } from "./tokens.js";
5
+ setFileScope("src/css/vars.css.ts", "@blockle/blocks-core");
6
+ const vars = createThemeContract(makeVanillaTheme(tokens));
7
+ endFileScope();
8
+ export {
9
+ vars
10
+ };
package/dist/index.cjs ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const breakpoint = require("./css/breakpoint/breakpoint.cjs");
4
+ const layers_css = require("./css/layers.css.cjs");
5
+ const rem = require("./css/rem.cjs");
6
+ const vars_css = require("./css/vars.css.cjs");
7
+ const atomicProperties = require("./sprinkles/atomicProperties.cjs");
8
+ const getAtomsAndProps = require("./sprinkles/getAtomsAndProps.cjs");
9
+ const sprinkles_css = require("./sprinkles/sprinkles.css.cjs");
10
+ const makeComponentTheme = require("./theme/makeComponentTheme.cjs");
11
+ const makeTheme = require("./theme/makeTheme.cjs");
12
+ const classnames = require("./utils/classnames/classnames.cjs");
13
+ const hasAnimationDuration = require("./utils/dom/hasAnimationDuration.cjs");
14
+ const flexbox = require("./utils/flexbox/flexbox.cjs");
15
+ const math = require("./utils/math/math.cjs");
16
+ const mergeProps = require("./utils/react/mergeProps.cjs");
17
+ const refs = require("./utils/react/refs.cjs");
18
+ const helpers = require("./utils/typing/helpers.cjs");
19
+ exports.minMediaQuery = breakpoint.minMediaQuery;
20
+ exports.blocksLayer = layers_css.blocksLayer;
21
+ exports.rem = rem.rem;
22
+ exports.vars = vars_css.vars;
23
+ exports.responsiveProperties = atomicProperties.responsiveProperties;
24
+ exports.unresponsiveProperties = atomicProperties.unresponsiveProperties;
25
+ exports.getAtomsAndProps = getAtomsAndProps.getAtomsAndProps;
26
+ exports.sprinkles = sprinkles_css.sprinkles;
27
+ exports.makeComponentTheme = makeComponentTheme.makeComponentTheme;
28
+ exports.makeTheme = makeTheme.makeTheme;
29
+ exports.classnames = classnames.classnames;
30
+ exports.hasAnimationDuration = hasAnimationDuration.hasAnimationDuration;
31
+ exports.alignItemsMap = flexbox.alignItemsMap;
32
+ exports.justifyContentMap = flexbox.justifyContentMap;
33
+ exports.getBoundValue = math.getBoundValue;
34
+ exports.roundToPrecision = math.roundToPrecision;
35
+ exports.mergeProps = mergeProps.mergeProps;
36
+ exports.composeRefs = refs.composeRefs;
37
+ exports.isObjectLike = helpers.isObjectLike;
@@ -0,0 +1,21 @@
1
+ export type { ComponentThemes, ComponentThemesProps, } from './config/componentThemes';
2
+ export type { ThemeTokens } from './config/themeTokens';
3
+ export { minMediaQuery } from './css/breakpoint/breakpoint';
4
+ export { blocksLayer } from './css/layers.css';
5
+ export { rem } from './css/rem';
6
+ export { vars } from './css/vars.css';
7
+ export { responsiveProperties, unresponsiveProperties, } from './sprinkles/atomicProperties';
8
+ export type { MarginSprinkles, PaddingSprinkles, ResponsiveDisplayFlex, ResponsiveValue, TextSprinkles, } from './sprinkles/atomTypes';
9
+ export { getAtomsAndProps } from './sprinkles/getAtomsAndProps';
10
+ export { sprinkles, type Sprinkles } from './sprinkles/sprinkles.css';
11
+ export { makeComponentTheme } from './theme/makeComponentTheme';
12
+ export type { ComponentTheme, ThemeComponentsStyles, } from './theme/makeComponentTheme';
13
+ export { makeTheme } from './theme/makeTheme';
14
+ export type { Theme } from './theme/makeTheme';
15
+ export { classnames } from './utils/classnames/classnames';
16
+ export { hasAnimationDuration } from './utils/dom/hasAnimationDuration';
17
+ export { alignItemsMap, justifyContentMap, type AlignItemsMap, type JustifyContentMap, } from './utils/flexbox/flexbox';
18
+ export { getBoundValue, roundToPrecision } from './utils/math/math';
19
+ export { mergeProps } from './utils/react/mergeProps';
20
+ export { composeRefs } from './utils/react/refs';
21
+ export { isObjectLike, type AnyString, type HTMLElementProps, type IsNumberUnion, type IsStringUnion, type IsUnion, type OptionalLiteral, type RecordLike, } from './utils/typing/helpers';
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ import { minMediaQuery } from "./css/breakpoint/breakpoint.js";
2
+ import { blocksLayer } from "./css/layers.css.js";
3
+ import { rem } from "./css/rem.js";
4
+ import { vars } from "./css/vars.css.js";
5
+ import { responsiveProperties, unresponsiveProperties } from "./sprinkles/atomicProperties.js";
6
+ import { getAtomsAndProps } from "./sprinkles/getAtomsAndProps.js";
7
+ import { sprinkles } from "./sprinkles/sprinkles.css.js";
8
+ import { makeComponentTheme } from "./theme/makeComponentTheme.js";
9
+ import { makeTheme } from "./theme/makeTheme.js";
10
+ import { classnames } from "./utils/classnames/classnames.js";
11
+ import { hasAnimationDuration } from "./utils/dom/hasAnimationDuration.js";
12
+ import { alignItemsMap, justifyContentMap } from "./utils/flexbox/flexbox.js";
13
+ import { getBoundValue, roundToPrecision } from "./utils/math/math.js";
14
+ import { mergeProps } from "./utils/react/mergeProps.js";
15
+ import { composeRefs } from "./utils/react/refs.js";
16
+ import { isObjectLike } from "./utils/typing/helpers.js";
17
+ export {
18
+ alignItemsMap,
19
+ blocksLayer,
20
+ classnames,
21
+ composeRefs,
22
+ getAtomsAndProps,
23
+ getBoundValue,
24
+ hasAnimationDuration,
25
+ isObjectLike,
26
+ justifyContentMap,
27
+ makeComponentTheme,
28
+ makeTheme,
29
+ mergeProps,
30
+ minMediaQuery,
31
+ rem,
32
+ responsiveProperties,
33
+ roundToPrecision,
34
+ sprinkles,
35
+ unresponsiveProperties,
36
+ vars
37
+ };
@@ -0,0 +1,36 @@
1
+ import { Sprinkles } from './sprinkles.css';
2
+ export type ResponsiveValue<T> = T | [T] | [T, T] | [T, T, T] | [T, T, T, T];
3
+ export type ResponsiveDisplayFlex = ResponsiveValue<'none' | 'flex' | 'inline-flex'>;
4
+ export type MarginSprinkles = {
5
+ margin?: Sprinkles['margin'];
6
+ marginBlock?: Sprinkles['marginBlock'];
7
+ marginBlockStart?: Sprinkles['marginBlockStart'];
8
+ marginBlockEnd?: Sprinkles['marginBlockEnd'];
9
+ marginInline?: Sprinkles['marginInline'];
10
+ marginInlineStart?: Sprinkles['marginInlineStart'];
11
+ marginInlineEnd?: Sprinkles['marginInlineEnd'];
12
+ };
13
+ export type PaddingSprinkles = {
14
+ padding?: Sprinkles['padding'];
15
+ paddingBlock?: Sprinkles['paddingBlock'];
16
+ paddingBlockStart?: Sprinkles['paddingBlockStart'];
17
+ paddingBlockEnd?: Sprinkles['paddingBlockEnd'];
18
+ paddingInline?: Sprinkles['paddingInline'];
19
+ paddingInlineStart?: Sprinkles['paddingInlineStart'];
20
+ paddingInlineEnd?: Sprinkles['paddingInlineEnd'];
21
+ };
22
+ export type TextSprinkles = {
23
+ color?: Sprinkles['color'];
24
+ fontFamily?: Sprinkles['fontFamily'];
25
+ fontSize?: Sprinkles['fontSize'];
26
+ fontStyle?: Sprinkles['fontStyle'];
27
+ fontWeight?: Sprinkles['fontWeight'];
28
+ lineHeight?: Sprinkles['lineHeight'];
29
+ textAlign?: Sprinkles['textAlign'];
30
+ textDecoration?: Sprinkles['textDecoration'];
31
+ textTransform?: Sprinkles['textTransform'];
32
+ textWrap?: Sprinkles['textWrap'];
33
+ whiteSpace?: Sprinkles['whiteSpace'];
34
+ wordBreak?: Sprinkles['wordBreak'];
35
+ wordWrap?: Sprinkles['wordWrap'];
36
+ };