@voxel51/voodo 0.0.1

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 (70) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +108 -0
  3. package/dist/components/Badge/Badge.d.ts +11 -0
  4. package/dist/components/Badge/Badge.d.ts.map +1 -0
  5. package/dist/components/Badge/index.d.ts +2 -0
  6. package/dist/components/Badge/index.d.ts.map +1 -0
  7. package/dist/components/Button/Button.d.ts +11 -0
  8. package/dist/components/Button/Button.d.ts.map +1 -0
  9. package/dist/components/Button/index.d.ts +2 -0
  10. package/dist/components/Button/index.d.ts.map +1 -0
  11. package/dist/components/Heading/Heading.d.ts +7 -0
  12. package/dist/components/Heading/Heading.d.ts.map +1 -0
  13. package/dist/components/Heading/index.d.ts +2 -0
  14. package/dist/components/Heading/index.d.ts.map +1 -0
  15. package/dist/components/Text/Text.d.ts +8 -0
  16. package/dist/components/Text/Text.d.ts.map +1 -0
  17. package/dist/components/Text/index.d.ts +2 -0
  18. package/dist/components/Text/index.d.ts.map +1 -0
  19. package/dist/components/index.d.ts +5 -0
  20. package/dist/components/index.d.ts.map +1 -0
  21. package/dist/index.cjs +2 -0
  22. package/dist/index.cjs.map +1 -0
  23. package/dist/index.d.ts +4 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +3195 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/styles/radius.d.ts +4 -0
  28. package/dist/styles/radius.d.ts.map +1 -0
  29. package/dist/styles/shadow.d.ts +4 -0
  30. package/dist/styles/shadow.d.ts.map +1 -0
  31. package/dist/styles/tailwind.d.ts +18 -0
  32. package/dist/styles/tailwind.d.ts.map +1 -0
  33. package/dist/styles/text.d.ts +4 -0
  34. package/dist/styles/text.d.ts.map +1 -0
  35. package/dist/theme/index.d.ts +3 -0
  36. package/dist/theme/index.d.ts.map +1 -0
  37. package/dist/theme/mui/components.d.ts +9 -0
  38. package/dist/theme/mui/components.d.ts.map +1 -0
  39. package/dist/theme/mui/index.d.ts +3 -0
  40. package/dist/theme/mui/index.d.ts.map +1 -0
  41. package/dist/theme/mui/theme-config.d.ts +31 -0
  42. package/dist/theme/mui/theme-config.d.ts.map +1 -0
  43. package/dist/theme/tokens/colors.d.ts +127 -0
  44. package/dist/theme/tokens/colors.d.ts.map +1 -0
  45. package/dist/theme/tokens/index.d.ts +158 -0
  46. package/dist/theme/tokens/index.d.ts.map +1 -0
  47. package/dist/theme/tokens/spacing.d.ts +8 -0
  48. package/dist/theme/tokens/spacing.d.ts.map +1 -0
  49. package/dist/theme/tokens/typography.d.ts +22 -0
  50. package/dist/theme/tokens/typography.d.ts.map +1 -0
  51. package/dist/types/color.d.ts +25 -0
  52. package/dist/types/color.d.ts.map +1 -0
  53. package/dist/types/heading.d.ts +8 -0
  54. package/dist/types/heading.d.ts.map +1 -0
  55. package/dist/types/index.d.ts +8 -0
  56. package/dist/types/index.d.ts.map +1 -0
  57. package/dist/types/radius.d.ts +11 -0
  58. package/dist/types/radius.d.ts.map +1 -0
  59. package/dist/types/shadow.d.ts +9 -0
  60. package/dist/types/shadow.d.ts.map +1 -0
  61. package/dist/types/size.d.ts +7 -0
  62. package/dist/types/size.d.ts.map +1 -0
  63. package/dist/types/text.d.ts +13 -0
  64. package/dist/types/text.d.ts.map +1 -0
  65. package/dist/types/variant.d.ts +8 -0
  66. package/dist/types/variant.d.ts.map +1 -0
  67. package/dist/util/classes.d.ts +21 -0
  68. package/dist/util/classes.d.ts.map +1 -0
  69. package/dist/voodo.css +1 -0
  70. package/package.json +81 -0
@@ -0,0 +1,31 @@
1
+ import { ThemeOptions, PaletteMode } from '@mui/material';
2
+ /**
3
+ * Create a theme configuration object compatible with Material UI's createTheme.
4
+ * This is a plain object, not a Theme instance.
5
+ *
6
+ * @param mode Light or dark mode
7
+ * @param overrides Optional theme overrides
8
+ *
9
+ * @returns ThemeOptions configuration object
10
+ */
11
+ export declare const createMUIThemeConfig: ({ mode, overrides, }?: {
12
+ mode?: PaletteMode;
13
+ overrides?: ThemeOptions;
14
+ }) => ThemeOptions;
15
+ /**
16
+ * Default theme configuration (dark mode)
17
+ *
18
+ * Usage:
19
+ * ```tsx
20
+ * import { createTheme } from '@mui/material/styles';
21
+ * import { defaultMUIThemeConfig } from '@voxel51/design-system';
22
+ *
23
+ * const theme = createTheme(defaultMUIThemeConfig);
24
+ * ```
25
+ */
26
+ export declare const defaultMUIThemeConfig: ThemeOptions;
27
+ /**
28
+ * Light mode theme configuration
29
+ */
30
+ export declare const lightMUIThemeConfig: ThemeOptions;
31
+ //# sourceMappingURL=theme-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../../src/theme/mui/theme-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK/D;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,uBAGlC;IACD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,CAAC;CACrB,KAAG,YA0ER,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,cAAyC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,mBAAmB,cAA0C,CAAC"}
@@ -0,0 +1,127 @@
1
+ export declare const colors: {
2
+ common: {
3
+ brand: {
4
+ primary: string;
5
+ accent: string;
6
+ };
7
+ semantic: {
8
+ success: string;
9
+ destructive: string;
10
+ info: string;
11
+ warning: string;
12
+ };
13
+ };
14
+ dark: {
15
+ content: {
16
+ bg: {
17
+ background: string;
18
+ card: {
19
+ 1: string;
20
+ 2: string;
21
+ elevated: string;
22
+ };
23
+ muted: string;
24
+ popover: string;
25
+ secondary: string;
26
+ };
27
+ text: {
28
+ fg: string;
29
+ primary: string;
30
+ secondary: string;
31
+ tertiary: string;
32
+ muted: string;
33
+ };
34
+ border: {
35
+ secondary: {
36
+ primary: string;
37
+ secondary: string;
38
+ tertiary: string;
39
+ disabled: string;
40
+ };
41
+ };
42
+ };
43
+ action: {
44
+ primary: {
45
+ primary: string;
46
+ secondary: string;
47
+ tertiary: string;
48
+ text: string;
49
+ };
50
+ secondary: {
51
+ primary: string;
52
+ secondary: string;
53
+ tertiary: string;
54
+ text: string;
55
+ };
56
+ success: {
57
+ primary: string;
58
+ secondary: string;
59
+ tertiary: string;
60
+ text: string;
61
+ };
62
+ danger: {
63
+ primary: string;
64
+ secondary: string;
65
+ tertiary: string;
66
+ text: string;
67
+ };
68
+ };
69
+ };
70
+ light: {
71
+ content: {
72
+ bg: {
73
+ background: string;
74
+ card: {
75
+ 1: string;
76
+ 2: string;
77
+ elevated: string;
78
+ };
79
+ muted: string;
80
+ popover: string;
81
+ secondary: string;
82
+ };
83
+ text: {
84
+ fg: string;
85
+ primary: string;
86
+ secondary: string;
87
+ tertiary: string;
88
+ muted: string;
89
+ };
90
+ border: {
91
+ secondary: {
92
+ primary: string;
93
+ secondary: string;
94
+ tertiary: string;
95
+ disabled: string;
96
+ };
97
+ };
98
+ };
99
+ action: {
100
+ primary: {
101
+ primary: string;
102
+ secondary: string;
103
+ tertiary: string;
104
+ text: string;
105
+ };
106
+ secondary: {
107
+ primary: string;
108
+ secondary: string;
109
+ tertiary: string;
110
+ text: string;
111
+ };
112
+ success: {
113
+ primary: string;
114
+ secondary: string;
115
+ tertiary: string;
116
+ text: string;
117
+ };
118
+ danger: {
119
+ primary: string;
120
+ secondary: string;
121
+ tertiary: string;
122
+ text: string;
123
+ };
124
+ };
125
+ };
126
+ };
127
+ //# sourceMappingURL=colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/theme/tokens/colors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6HlB,CAAC"}
@@ -0,0 +1,158 @@
1
+ declare const _default: {
2
+ colors: {
3
+ common: {
4
+ brand: {
5
+ primary: string;
6
+ accent: string;
7
+ };
8
+ semantic: {
9
+ success: string;
10
+ destructive: string;
11
+ info: string;
12
+ warning: string;
13
+ };
14
+ };
15
+ dark: {
16
+ content: {
17
+ bg: {
18
+ background: string;
19
+ card: {
20
+ 1: string;
21
+ 2: string;
22
+ elevated: string;
23
+ };
24
+ muted: string;
25
+ popover: string;
26
+ secondary: string;
27
+ };
28
+ text: {
29
+ fg: string;
30
+ primary: string;
31
+ secondary: string;
32
+ tertiary: string;
33
+ muted: string;
34
+ };
35
+ border: {
36
+ secondary: {
37
+ primary: string;
38
+ secondary: string;
39
+ tertiary: string;
40
+ disabled: string;
41
+ };
42
+ };
43
+ };
44
+ action: {
45
+ primary: {
46
+ primary: string;
47
+ secondary: string;
48
+ tertiary: string;
49
+ text: string;
50
+ };
51
+ secondary: {
52
+ primary: string;
53
+ secondary: string;
54
+ tertiary: string;
55
+ text: string;
56
+ };
57
+ success: {
58
+ primary: string;
59
+ secondary: string;
60
+ tertiary: string;
61
+ text: string;
62
+ };
63
+ danger: {
64
+ primary: string;
65
+ secondary: string;
66
+ tertiary: string;
67
+ text: string;
68
+ };
69
+ };
70
+ };
71
+ light: {
72
+ content: {
73
+ bg: {
74
+ background: string;
75
+ card: {
76
+ 1: string;
77
+ 2: string;
78
+ elevated: string;
79
+ };
80
+ muted: string;
81
+ popover: string;
82
+ secondary: string;
83
+ };
84
+ text: {
85
+ fg: string;
86
+ primary: string;
87
+ secondary: string;
88
+ tertiary: string;
89
+ muted: string;
90
+ };
91
+ border: {
92
+ secondary: {
93
+ primary: string;
94
+ secondary: string;
95
+ tertiary: string;
96
+ disabled: string;
97
+ };
98
+ };
99
+ };
100
+ action: {
101
+ primary: {
102
+ primary: string;
103
+ secondary: string;
104
+ tertiary: string;
105
+ text: string;
106
+ };
107
+ secondary: {
108
+ primary: string;
109
+ secondary: string;
110
+ tertiary: string;
111
+ text: string;
112
+ };
113
+ success: {
114
+ primary: string;
115
+ secondary: string;
116
+ tertiary: string;
117
+ text: string;
118
+ };
119
+ danger: {
120
+ primary: string;
121
+ secondary: string;
122
+ tertiary: string;
123
+ text: string;
124
+ };
125
+ };
126
+ };
127
+ };
128
+ spacing: {
129
+ readonly xs: "0.25rem";
130
+ readonly sm: "0.5rem";
131
+ readonly md: "1rem";
132
+ readonly lg: "1.5rem";
133
+ readonly xl: "2rem";
134
+ };
135
+ typography: {
136
+ readonly fontFamily: {
137
+ readonly sans: readonly ["Palanquin", "sans-serif"];
138
+ readonly mono: readonly ["monospace"];
139
+ };
140
+ readonly fontSize: {
141
+ readonly xxs: "0.5625rem";
142
+ readonly xs: "0.6875rem";
143
+ readonly sm: "0.75rem";
144
+ readonly md: "0.8125rem";
145
+ readonly lg: "0.9375rem";
146
+ readonly xl: "1.125rem";
147
+ readonly xxl: "1.4375rem";
148
+ };
149
+ readonly fontWeight: {
150
+ readonly light: 300;
151
+ readonly normal: 400;
152
+ readonly semibold: 500;
153
+ readonly bold: 600;
154
+ };
155
+ };
156
+ };
157
+ export default _default;
158
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/theme/tokens/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,wBAIE"}
@@ -0,0 +1,8 @@
1
+ export declare const spacing: {
2
+ readonly xs: "0.25rem";
3
+ readonly sm: "0.5rem";
4
+ readonly md: "1rem";
5
+ readonly lg: "1.5rem";
6
+ readonly xl: "2rem";
7
+ };
8
+ //# sourceMappingURL=spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing.d.ts","sourceRoot":"","sources":["../../../src/theme/tokens/spacing.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;CAMV,CAAC"}
@@ -0,0 +1,22 @@
1
+ export declare const typography: {
2
+ readonly fontFamily: {
3
+ readonly sans: readonly ["Palanquin", "sans-serif"];
4
+ readonly mono: readonly ["monospace"];
5
+ };
6
+ readonly fontSize: {
7
+ readonly xxs: "0.5625rem";
8
+ readonly xs: "0.6875rem";
9
+ readonly sm: "0.75rem";
10
+ readonly md: "0.8125rem";
11
+ readonly lg: "0.9375rem";
12
+ readonly xl: "1.125rem";
13
+ readonly xxl: "1.4375rem";
14
+ };
15
+ readonly fontWeight: {
16
+ readonly light: 300;
17
+ readonly normal: 400;
18
+ readonly semibold: 500;
19
+ readonly bold: 600;
20
+ };
21
+ };
22
+ //# sourceMappingURL=typography.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../../src/theme/tokens/typography.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Tailwind classes for text colors
3
+ */
4
+ export declare enum TextColor {
5
+ Fg = "text-content-text-fg",
6
+ Primary = "text-content-text-primary",
7
+ Secondary = "text-content-text-secondary",
8
+ Tertiary = "text-content-text-tertiary",
9
+ Muted = "text-content-text-muted"
10
+ }
11
+ export type TextColorProp = TextColor | string;
12
+ /**
13
+ * Tailwind classes for background colors
14
+ */
15
+ export declare enum BackgroundColor {
16
+ Background = "bg-content-bg-background",
17
+ Card1 = "bg-content-bg-card-1",
18
+ Card2 = "bg-content-bg-card-2",
19
+ CardElevated = "bg-content-bg-card-elevated",
20
+ Muted = "bg-content-bg-muted",
21
+ Popover = "bg-content-bg-popover",
22
+ Secondary = "bg-content-bg-secondary"
23
+ }
24
+ export type BackgroundColorProp = BackgroundColor | string;
25
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/types/color.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,SAAS;IACnB,EAAE,yBAAyB;IAC3B,OAAO,8BAA8B;IACrC,SAAS,gCAAgC;IACzC,QAAQ,+BAA+B;IACvC,KAAK,4BAA4B;CAClC;AAGD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/C;;GAEG;AACH,oBAAY,eAAe;IACzB,UAAU,6BAA6B;IACvC,KAAK,yBAAyB;IAC9B,KAAK,yBAAyB;IAC9B,YAAY,gCAAgC;IAC5C,KAAK,wBAAwB;IAC7B,OAAO,0BAA0B;IACjC,SAAS,4BAA4B;CACtC;AAGD,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,MAAM,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare enum HeadingLevel {
2
+ H1 = "h1",
3
+ H2 = "h2",
4
+ H3 = "h3",
5
+ H4 = "h4"
6
+ }
7
+ export default HeadingLevel;
8
+ //# sourceMappingURL=heading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/types/heading.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './color';
2
+ export * from './heading';
3
+ export * from './radius';
4
+ export * from './shadow';
5
+ export * from './size';
6
+ export * from './text';
7
+ export * from './variant';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare enum Radius {
2
+ Full = "full",
3
+ Xl = "xl",
4
+ Lg = "lg",
5
+ Md = "md",
6
+ Sm = "sm",
7
+ Xs = "xs",
8
+ None = "none"
9
+ }
10
+ export default Radius;
11
+ //# sourceMappingURL=radius.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radius.d.ts","sourceRoot":"","sources":["../../src/types/radius.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,IAAI,SAAS;CACd;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare enum Shadow {
2
+ Xl = "xl",
3
+ Lg = "lg",
4
+ Md = "md",
5
+ Sm = "sm",
6
+ Xs = "xs"
7
+ }
8
+ export default Shadow;
9
+ //# sourceMappingURL=shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/types/shadow.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM;IAChB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare enum Size {
2
+ Xs = "xs",
3
+ Sm = "sm",
4
+ Md = "md"
5
+ }
6
+ export default Size;
7
+ //# sourceMappingURL=size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"size.d.ts","sourceRoot":"","sources":["../../src/types/size.ts"],"names":[],"mappings":"AAAA,oBAAY,IAAI;IACd,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CACV;AAED,eAAe,IAAI,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare enum TextVariant {
2
+ Xxs = "xxs",
3
+ Xs = "xs",
4
+ Sm = "sm",
5
+ Md = "md",
6
+ Lg = "lg",
7
+ Xl = "xl",
8
+ Xxl = "xxl",
9
+ Label = "label",
10
+ Caption = "caption"
11
+ }
12
+ export default TextVariant;
13
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/types/text.ts"],"names":[],"mappings":"AAAA,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare enum Variant {
2
+ Primary = "primary",
3
+ Secondary = "secondary",
4
+ Success = "success",
5
+ Danger = "danger"
6
+ }
7
+ export default Variant;
8
+ //# sourceMappingURL=variant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant.d.ts","sourceRoot":"","sources":["../../src/types/variant.ts"],"names":[],"mappings":"AAAA,oBAAY,OAAO;IACjB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Helper function which aggregates and deduplicates class names.
3
+ *
4
+ * This method supports the same syntax as {@link clsx}; each
5
+ * argument can be a single class or a space-delimited list of classes.
6
+ *
7
+ * Deduplication is handled left-to-right, so later entries will always
8
+ * take precedence over earlier entries. TL;DR - put your overrides at the end.
9
+ *
10
+ * @example
11
+ * ```typescript jsx
12
+ * <Button className={cn("border-1 rounded-sm", "border-0 bg-red")}>
13
+ * Click me
14
+ * </Button>
15
+ * // resolves to className="rounded-sm border-0 bg-red"
16
+ * ```
17
+ *
18
+ * @param classes Classes to apply
19
+ */
20
+ export declare const cn: (...classes: (string | boolean | null | undefined)[]) => string;
21
+ //# sourceMappingURL=classes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/util/classes.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,EAAE,GACb,GAAG,SAAS,CAAC,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,KAClD,MAEF,CAAC"}
package/dist/voodo.css ADDED
@@ -0,0 +1 @@
1
+ @layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:Palanquin,sans-serif;--font-mono:monospace;--spacing:.25rem;--text-xs:.6875rem;--text-sm:.75rem;--text-lg:.9375rem;--text-xl:1.125rem;--font-weight-medium:500;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-content-bg-background:#f8f8f8;--color-content-bg-card-1:#fff;--color-content-bg-card-2:#f5f5f5;--color-content-bg-card-elevated:#fafafa;--color-content-bg-muted:#f0f0f0;--color-content-bg-popover:#fff;--color-content-bg-secondary:#f0f0f0;--color-content-text-fg:#000;--color-content-text-primary:#111;--color-content-text-secondary:#555;--color-content-text-tertiary:#777;--color-content-text-muted:#999;--color-content-border-secondary-primary:#333;--color-content-border-secondary-secondary:#555;--color-content-border-secondary-tertiary:#333;--color-content-border-secondary-disabled:#444;--color-action-primary-primary:#ff6d05;--color-action-primary-secondary:#d05700;--color-action-primary-tertiary:#9c4100;--color-action-primary-text:#fff;--color-action-secondary-primary:#fff;--color-action-secondary-secondary:#ff6d05;--color-action-secondary-tertiary:#9c4100;--color-action-secondary-text:#000;--color-action-success-primary:#047a48;--color-action-success-secondary:#276749;--color-action-success-tertiary:#1f563b;--color-action-success-text:#fff;--color-action-danger-primary:#c53030;--color-action-danger-secondary:#9b2c2c;--color-action-danger-tertiary:#822727;--color-action-danger-text:#fff;--color-brand-primary:#ff6d04;--color-brand-accent:#ff9950;--color-semantic-success:#047a48;--color-semantic-destructive:#c53030;--color-semantic-info:#2f5df5;--color-semantic-warning:#c27803;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--text-xxs:.5625rem;--text-md:.8125rem;--text-xxl:1.4375rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.mb-2{margin-bottom:calc(var(--spacing)*2)}.contents{display:contents}.flex{display:flex}.inline-flex{display:inline-flex}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-x-sm{-moz-column-gap:var(--spacing-sm);column-gap:var(--spacing-sm)}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-1{border-style:var(--tw-border-style);border-width:1px}.border-content-border-secondary-primary{border-color:var(--color-content-border-secondary-primary)}.bg-\[\#000000\]{background-color:#000}.bg-\[\#ffffff\]{background-color:#fff}.bg-\[red\]{background-color:red}.bg-\[var\(--color-primary\)\]{background-color:var(--color-primary)}.bg-action-danger-primary{background-color:var(--color-action-danger-primary)}.bg-action-primary-primary{background-color:var(--color-action-primary-primary)}.bg-action-secondary-primary{background-color:var(--color-action-secondary-primary)}.bg-action-success-primary{background-color:var(--color-action-success-primary)}.bg-content-bg-background{background-color:var(--color-content-bg-background)}.bg-content-bg-card-1{background-color:var(--color-content-bg-card-1)}.bg-content-bg-card-2{background-color:var(--color-content-bg-card-2)}.bg-content-bg-card-elevated{background-color:var(--color-content-bg-card-elevated)}.bg-content-bg-muted{background-color:var(--color-content-bg-muted)}.bg-content-bg-popover{background-color:var(--color-content-bg-popover)}.bg-content-bg-secondary{background-color:var(--color-content-bg-secondary)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3\.5{padding-inline:calc(var(--spacing)*3.5)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.py-0\.75{padding-block:calc(var(--spacing)*.75)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-5{padding-block:calc(var(--spacing)*5)}.text-lg\/9{font-size:var(--text-lg);line-height:calc(var(--spacing)*9)}.text-md\/5{font-size:var(--text-md);line-height:calc(var(--spacing)*5)}.text-md\/7{font-size:var(--text-md);line-height:calc(var(--spacing)*7)}.text-sm\/5{font-size:var(--text-sm);line-height:calc(var(--spacing)*5)}.text-sm\/6{font-size:var(--text-sm);line-height:calc(var(--spacing)*6)}.text-xl\/11{font-size:var(--text-xl);line-height:calc(var(--spacing)*11)}.text-xs\/5{font-size:var(--text-xs);line-height:calc(var(--spacing)*5)}.text-xxl\/13{font-size:var(--text-xxl);line-height:calc(var(--spacing)*13)}.text-xxs\/4{font-size:var(--text-xxs);line-height:calc(var(--spacing)*4)}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-\[\#ffffff\]{color:#fff}.text-\[red\]{color:red}.text-\[var\(--color-primary\)\]{color:var(--color-primary)}.text-action-danger-text{color:var(--color-action-danger-text)}.text-action-primary-text{color:var(--color-action-primary-text)}.text-action-secondary-text{color:var(--color-action-secondary-text)}.text-action-success-text{color:var(--color-action-success-text)}.text-content-text-fg{color:var(--color-content-text-fg)}.text-content-text-muted{color:var(--color-content-text-muted)}.text-content-text-primary{color:var(--color-content-text-primary)}.text-content-text-secondary{color:var(--color-content-text-secondary)}.text-content-text-tertiary{color:var(--color-content-text-tertiary)}.uppercase{text-transform:uppercase}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-content-border-secondary-secondary:hover{border-color:var(--color-content-border-secondary-secondary)}.hover\:bg-action-danger-secondary:hover{background-color:var(--color-action-danger-secondary)}.hover\:bg-action-primary-secondary:hover{background-color:var(--color-action-primary-secondary)}.hover\:bg-action-secondary-secondary:hover{background-color:var(--color-action-secondary-secondary)}.hover\:bg-action-success-secondary:hover{background-color:var(--color-action-success-secondary)}}.active\:border-content-border-secondary-tertiary:active{border-color:var(--color-content-border-secondary-tertiary)}.active\:bg-action-danger-tertiary:active{background-color:var(--color-action-danger-tertiary)}.active\:bg-action-primary-tertiary:active{background-color:var(--color-action-primary-tertiary)}.active\:bg-action-secondary-tertiary:active{background-color:var(--color-action-secondary-tertiary)}.active\:bg-action-success-tertiary:active{background-color:var(--color-action-success-tertiary)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:border-content-border-secondary-disabled:disabled{border-color:var(--color-content-border-secondary-disabled)}.disabled\:opacity-50:disabled{opacity:.5}}.dark{--color-content-bg-background:#1a1a1a;--color-content-bg-card-1:#1e1e1e;--color-content-bg-card-2:#232323;--color-content-bg-card-elevated:#2d2d2d;--color-content-bg-muted:#2a2a2a;--color-content-bg-popover:#181818;--color-content-bg-secondary:#2c2c2c;--color-content-text-fg:#fff;--color-content-text-primary:#fff;--color-content-text-secondary:#bbb;--color-content-text-tertiary:#888;--color-content-text-muted:#6e6e6e;--color-content-border-secondary-primary:#333;--color-content-border-secondary-secondary:#555;--color-content-border-secondary-tertiary:#333;--color-content-border-secondary-disabled:#444;--color-action-primary-primary:#ff6d05;--color-action-primary-secondary:#d05700;--color-action-primary-tertiary:#9c4100;--color-action-primary-text:#fff;--color-action-secondary-primary:transparent;--color-action-secondary-secondary:transparent;--color-action-secondary-tertiary:#222;--color-action-secondary-text:#ccc;--color-action-success-primary:#047a48;--color-action-success-secondary:#276749;--color-action-success-tertiary:#1f563b;--color-action-success-text:#fff;--color-action-danger-primary:#c53030;--color-action-danger-secondary:#9b2c2c;--color-action-danger-tertiary:#822727;--color-action-danger-text:#fff}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@voxel51/voodo",
3
+ "version": "0.0.1",
4
+ "description": "Voxel51's official design ontology (VOODO) system",
5
+ "type": "module",
6
+ "author": "Voxel Engineering <engineering@voxel51.com>",
7
+ "license": "Apache-2.0",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/voxel51/design-system.git"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "main": "./dist/index.cjs",
16
+ "module": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js",
22
+ "require": "./dist/index.cjs"
23
+ },
24
+ "./theme.css": "./dist/voodo.css"
25
+ },
26
+ "files": [
27
+ "dist"
28
+ ],
29
+ "scripts": {
30
+ "dev": "vite build --watch",
31
+ "build": "tsc && vite build",
32
+ "build:lib": "npm run prepublish && mkdir -p build/lib && npm pack --pack-destination build/lib/",
33
+ "format": "prettier --write '**/*.{ts,tsx}'",
34
+ "generate-tailwind-theme": "tsx utils/generate-tailwind-theme.ts",
35
+ "patch": "npm version --commit-hooks false --git-tag-version false patch",
36
+ "prebuild": "npm run generate-tailwind-theme",
37
+ "prepublishOnly": "npm run build",
38
+ "test": "jest"
39
+ },
40
+ "dependencies": {
41
+ "@headlessui/react": "^2.2.9",
42
+ "clsx": "^2.1.1",
43
+ "tailwind-merge": "^3.4.0"
44
+ },
45
+ "devDependencies": {
46
+ "@mui/material": "^5.0.0",
47
+ "@mui/utils": "^5.0.0",
48
+ "@tailwindcss/postcss": "^4.1.17",
49
+ "@testing-library/jest-dom": "^6.9.1",
50
+ "@testing-library/react": "^16.3.0",
51
+ "@testing-library/user-event": "^14.6.1",
52
+ "@tsconfig/recommended": "^1.0.7",
53
+ "@types/jest": "^29.5.14",
54
+ "@types/node": "^22.7.4",
55
+ "@types/react": "^19.2.7",
56
+ "@types/react-dom": "^19.2.3",
57
+ "@vitejs/plugin-react": "^5.1.1",
58
+ "autoprefixer": "^10.4.22",
59
+ "jest": "^29.7.0",
60
+ "jest-environment-jsdom": "^30.2.0",
61
+ "postcss": "^8.5.6",
62
+ "prettier": "^3.6.2",
63
+ "react": "^18.0.0",
64
+ "react-dom": "^18.0.0",
65
+ "react-is": "^18.0.0",
66
+ "tailwindcss": "^4.1.17",
67
+ "ts-jest": "^29.2.5",
68
+ "ts-node": "^10.9.2",
69
+ "tsx": "^4.20.6",
70
+ "typescript": "^5.6.2",
71
+ "vite": "^7.1.7",
72
+ "vite-plugin-dts": "^4.5.4"
73
+ },
74
+ "peerDependencies": {
75
+ "@emotion/react": "^11.0.0",
76
+ "@emotion/styled": "^11.0.0",
77
+ "react": "^18.0.0",
78
+ "react-dom": "^18.0.0",
79
+ "react-is": "^18.0.0"
80
+ }
81
+ }