@mekari/pixel3-theme 0.0.1-alpha.0 → 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 (56) hide show
  1. package/dist/index.js +201 -16
  2. package/dist/index.mjs +195 -8
  3. package/dist/recipes/divider.d.mts +5 -0
  4. package/dist/recipes/divider.d.ts +5 -0
  5. package/dist/recipes/form-control.d.mts +5 -0
  6. package/dist/recipes/form-control.d.ts +5 -0
  7. package/dist/recipes/index.d.mts +3 -0
  8. package/dist/recipes/index.d.ts +3 -0
  9. package/dist/recipes/input-tag.d.mts +5 -0
  10. package/dist/recipes/input-tag.d.ts +5 -0
  11. package/dist/tokens/index.d.mts +4 -0
  12. package/dist/tokens/index.d.ts +4 -0
  13. package/dist/tokens/sizes.d.mts +4 -0
  14. package/dist/tokens/sizes.d.ts +4 -0
  15. package/package.json +5 -4
  16. package/src/breakpoints.ts +6 -0
  17. package/src/conditions.ts +22 -0
  18. package/src/global-css.ts +23 -0
  19. package/src/index.ts +26 -0
  20. package/src/keyframes.ts +15 -0
  21. package/src/recipes/accordion.ts +57 -0
  22. package/src/recipes/avatar.ts +179 -0
  23. package/src/recipes/badge.ts +166 -0
  24. package/src/recipes/button.ts +224 -0
  25. package/src/recipes/checkbox.ts +92 -0
  26. package/src/recipes/divider.ts +31 -0
  27. package/src/recipes/form-control.ts +40 -0
  28. package/src/recipes/icon.ts +31 -0
  29. package/src/recipes/index.ts +61 -0
  30. package/src/recipes/input-tag.ts +119 -0
  31. package/src/recipes/input.ts +204 -0
  32. package/src/recipes/popover.ts +82 -0
  33. package/src/recipes/progress.ts +76 -0
  34. package/src/recipes/radio.ts +103 -0
  35. package/src/recipes/select.ts +114 -0
  36. package/src/recipes/shared.ts +19 -0
  37. package/src/recipes/spinner.ts +25 -0
  38. package/src/recipes/table.ts +113 -0
  39. package/src/recipes/tabs.ts +204 -0
  40. package/src/recipes/tag.ts +98 -0
  41. package/src/recipes/text.ts +56 -0
  42. package/src/recipes/textarea.ts +60 -0
  43. package/src/recipes/toggle.ts +99 -0
  44. package/src/recipes/tooltip.ts +24 -0
  45. package/src/text-styles.ts +34 -0
  46. package/src/tokens/borders.ts +8 -0
  47. package/src/tokens/colors.ts +130 -0
  48. package/src/tokens/durations.ts +7 -0
  49. package/src/tokens/index.ts +28 -0
  50. package/src/tokens/opacity.ts +8 -0
  51. package/src/tokens/radii.ts +11 -0
  52. package/src/tokens/shadows.ts +40 -0
  53. package/src/tokens/sizes.ts +28 -0
  54. package/src/tokens/spacing.ts +21 -0
  55. package/src/tokens/typography.ts +45 -0
  56. package/src/tokens/z-index.ts +12 -0
@@ -0,0 +1,76 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const progressSlotRecipe = defineSlotRecipe({
4
+ className: 'progress',
5
+ jsx: ['MpProgress', 'mp-progress'],
6
+ slots: ['root', 'linear', 'circularBase', 'circularTrack'],
7
+ base: {
8
+ root: {
9
+ position: 'relative',
10
+ width: 'full',
11
+ borderRadius: '100px',
12
+ background: 'gray.100',
13
+ transition: 'all 250ms linear'
14
+ },
15
+ linear: {
16
+ transition: 'all 250ms linear',
17
+ height: 'full',
18
+ borderRadius: '100px',
19
+ background: 'var(--mp-progress-color)',
20
+ width: 'var(--mp-progress-width)'
21
+ },
22
+ circularBase: {
23
+ width: 'full',
24
+ height: 'full',
25
+ borderRadius: 'full',
26
+ background:
27
+ 'conic-gradient(var(--mp-progress-color) var(--mp-progress-width), var(--mp-colors-gray-100) 0deg)'
28
+ },
29
+ circularTrack: {
30
+ width: 'calc(100% - 6px)',
31
+ height: 'calc(100% - 6px)',
32
+ position: 'absolute',
33
+ top: '50%',
34
+ left: '50%',
35
+ transform: 'translate(-50%, -50%)',
36
+ backgroundColor: 'white',
37
+ borderRadius: 'full'
38
+ }
39
+ },
40
+ variants: {
41
+ size: {
42
+ md: {
43
+ linear: {
44
+ height: '3'
45
+ }
46
+ },
47
+ sm: {
48
+ linear: {
49
+ height: '2'
50
+ }
51
+ }
52
+ },
53
+ variant: {
54
+ linear: {
55
+ root: {
56
+ borderRadius: '100px'
57
+ }
58
+ },
59
+ circular: {
60
+ root: {
61
+ borderRadius: 'full',
62
+ width: '22px',
63
+ height: '22px',
64
+ background: 'transparent',
65
+ alignSelf: 'start'
66
+ }
67
+ }
68
+ }
69
+ },
70
+ defaultVariants: {
71
+ variant: 'linear',
72
+ size: 'md'
73
+ }
74
+ })
75
+
76
+ export { progressSlotRecipe }
@@ -0,0 +1,103 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const radioSlotRecipe = defineSlotRecipe({
4
+ className: 'radio',
5
+ jsx: ['MpRadio', 'mp-radio'],
6
+ slots: ['root', 'control', 'label'],
7
+ base: {
8
+ root: {
9
+ position: 'relative',
10
+ display: 'inline-flex',
11
+ alignItems: 'center',
12
+ justifyContent: 'center',
13
+ gap: '2',
14
+ cursor: 'pointer',
15
+ outline: 'none',
16
+ '&[data-has-description=true]': {
17
+ alignItems: 'flex-start',
18
+ '& .mp-radio__control': {
19
+ marginTop: '1'
20
+ }
21
+ },
22
+ '& .mp-shared__hidden': {
23
+ '&:focus + .mp-radio__control': {
24
+ borderColor: 'blue.400',
25
+ boxShadow: 'focus'
26
+ }
27
+ },
28
+ _hover: {
29
+ '& .mp-radio__control': {
30
+ borderColor: 'gray.400'
31
+ }
32
+ },
33
+ _disabled: {
34
+ cursor: 'not-allowed',
35
+ '& .mp-radio__control': {
36
+ borderColor: 'gray.100 !important',
37
+ background: 'gray.50 !important',
38
+ boxShadow: 'none !important',
39
+
40
+ '& div': {
41
+ background: 'gray.400'
42
+ }
43
+ }
44
+ },
45
+ _invalid: {
46
+ '& .mp-radio__control': {
47
+ borderColor: 'red.400',
48
+ background: 'white'
49
+ }
50
+ },
51
+ _checked: {
52
+ '& .mp-radio__control': {
53
+ borderColor: 'blue.400',
54
+ background: 'blue.400'
55
+ },
56
+ _hover: {
57
+ '& .mp-radio__control': {
58
+ borderColor: 'blue.400'
59
+ }
60
+ }
61
+ },
62
+ _indeterminate: {
63
+ '& .mp-radio__control': {
64
+ borderColor: 'blue.400',
65
+ background: 'blue.400'
66
+ },
67
+ _hover: {
68
+ '& .mp-radio__control': {
69
+ borderColor: 'blue.400'
70
+ }
71
+ }
72
+ }
73
+ },
74
+ control: {
75
+ flex: 'none',
76
+ transitionDuration: '250ms',
77
+ transitionProperty: 'background, border-color, box-shadow',
78
+ transitionTimingFunction: 'linear',
79
+ position: 'relative',
80
+ display: 'inline-flex',
81
+ alignItems: 'center',
82
+ justifyContent: 'center',
83
+ width: '18px',
84
+ height: '18px',
85
+ borderWidth: '2px',
86
+ borderColor: 'gray.100',
87
+ borderRadius: 'full',
88
+ background: 'white',
89
+
90
+ '& div': {
91
+ width: '2.5',
92
+ height: '2.5',
93
+ background: 'white',
94
+ borderRadius: 'full'
95
+ }
96
+ },
97
+ label: {
98
+ background: 'transparent'
99
+ }
100
+ }
101
+ })
102
+
103
+ export { radioSlotRecipe }
@@ -0,0 +1,114 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const selectSlotRecipe = defineSlotRecipe({
4
+ className: 'select',
5
+ jsx: ['MpSelect', 'mp-select'],
6
+ slots: ['root', 'control', 'clear', 'arrow'],
7
+ base: {
8
+ root: {
9
+ position: 'relative',
10
+ display: 'flex',
11
+ alignItems: 'center',
12
+ _isFullWidth: {
13
+ width: 'full'
14
+ }
15
+ },
16
+ control: {
17
+ minWidth: '22',
18
+ fontWeight: 'regular',
19
+ lineHeight: 'md',
20
+ color: 'var(--mp-select--color)',
21
+ position: 'relative',
22
+ display: 'flex',
23
+ alignItems: 'center',
24
+ outline: '0',
25
+ borderWidth: '1px',
26
+ borderRadius: 'sm',
27
+ paddingLeft: '3',
28
+ paddingRight: 'var(--mp-select--padding-right)',
29
+ appearance: 'none',
30
+ transition: 'all 250ms',
31
+ backgroundColor: 'white',
32
+ borderColor: 'gray.100',
33
+ _hover: {
34
+ borderColor: 'gray.400'
35
+ },
36
+ _focus: {
37
+ borderColor: 'blue.500',
38
+ boxShadow: 'outer',
39
+ _hover: {
40
+ borderColor: 'blue.500'
41
+ },
42
+ _invalid: {
43
+ borderColor: 'red.400'
44
+ }
45
+ },
46
+ _disabled: {
47
+ color: 'gray.400',
48
+ backgroundColor: 'gray.50',
49
+ borderColor: 'gray.100',
50
+ cursor: 'not-allowed'
51
+ },
52
+ _invalid: {
53
+ borderColor: 'red.400'
54
+ },
55
+ _isFullWidth: {
56
+ width: 'full'
57
+ }
58
+ },
59
+ clear: {
60
+ position: 'absolute!',
61
+ color: 'gray.600',
62
+ border: 'none',
63
+ top: '9px',
64
+ right: '40px',
65
+ width: '5',
66
+ height: '5',
67
+ minWidth: '5',
68
+ padding: '0',
69
+ transition: 'all 250ms!',
70
+ visibility: 'hidden',
71
+ opacity: '0',
72
+ _groupHover: {
73
+ visibility: 'var(--mp-select--visibility)',
74
+ opacity: 'var(--mp-select--opacity)'
75
+ }
76
+ },
77
+ arrow: {
78
+ position: 'absolute!',
79
+ display: 'inline-flex',
80
+ alignItems: 'center',
81
+ width: '6',
82
+ height: '6',
83
+ right: '2',
84
+ whiteSpace: 'nowrap',
85
+ pointerEvents: 'none'
86
+ }
87
+ },
88
+ variants: {
89
+ size: {
90
+ sm: {
91
+ control: {
92
+ height: '7.5',
93
+ fontSize: 'sm',
94
+ borderRadius: 'sm',
95
+ paddingY: '1'
96
+ }
97
+ },
98
+ md: {
99
+ control: {
100
+ height: '9.5',
101
+ fontSize: 'md',
102
+ borderRadius: 'md',
103
+ paddingY: '2'
104
+ }
105
+ }
106
+ }
107
+ },
108
+ compoundVariants: [],
109
+ defaultVariants: {
110
+ size: 'md'
111
+ }
112
+ })
113
+
114
+ export { selectSlotRecipe }
@@ -0,0 +1,19 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const sharedSlotRecipe = defineSlotRecipe({
4
+ className: 'shared',
5
+ jsx: ['MpCheckbox', 'mp-checkbox', 'MpRadio', 'mp-radio'],
6
+ slots: ['hidden'],
7
+ base: {
8
+ hidden: {
9
+ clip: 'rect(0px, 0px, 0px, 0px)',
10
+ height: '1px',
11
+ width: '1px',
12
+ overflow: 'hidden',
13
+ whiteSpace: 'nowrap',
14
+ position: 'absolute'
15
+ }
16
+ }
17
+ })
18
+
19
+ export { sharedSlotRecipe }
@@ -0,0 +1,25 @@
1
+ import { defineRecipe } from '@pandacss/dev'
2
+
3
+ export const spinnerRecipe = defineRecipe({
4
+ className: 'spinner',
5
+ jsx: ['MpSpinner', 'mp-spinner'],
6
+ base: {
7
+ display: 'inline-flex',
8
+ animation: '0.45s linear 0s infinite normal none running spin'
9
+ },
10
+ variants: {
11
+ size: {
12
+ sm: {
13
+ width: '5',
14
+ height: '5'
15
+ },
16
+ md: {
17
+ width: '6',
18
+ height: '6'
19
+ }
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ size: 'sm'
24
+ }
25
+ })
@@ -0,0 +1,113 @@
1
+ import { defineRecipe } from '@pandacss/dev'
2
+
3
+ const tableRecipe = defineRecipe({
4
+ className: 'table',
5
+ jsx: ['MpTable', 'mp-table'],
6
+ base: {
7
+ position: 'relative',
8
+ width: 'full',
9
+ display: 'table',
10
+ borderCollapse: 'collapse',
11
+ borderSpacing: '0px',
12
+ whiteSpace: 'nowrap',
13
+ '&[data-table-hoverable=true]': {
14
+ '& tr': {
15
+ _hover: {
16
+ '& > td': {
17
+ backgroundColor: 'gray.50'
18
+ }
19
+ }
20
+ }
21
+ },
22
+ thead: {
23
+ width: 'full',
24
+ backgroundColor: 'gray.25',
25
+ '&[data-table-head-fixed=true]': {
26
+ position: 'sticky',
27
+ zIndex: 'sticky',
28
+ top: '0',
29
+ boxShadow: '0px 2px var(--mp-colors-gray-100)'
30
+ }
31
+ },
32
+ tbody: {
33
+ width: 'full'
34
+ },
35
+ tr: {
36
+ width: 'full',
37
+ boxSizing: 'border-box',
38
+ whiteSpace: 'nowrap'
39
+ },
40
+ 'th, td': {
41
+ cursor: 'default',
42
+ paddingLeft: '2',
43
+ paddingRight: '4',
44
+ paddingY: '2',
45
+ height: '12',
46
+ textStyle: 'label.md',
47
+ textAlign: 'left',
48
+ borderBottom: 'sm',
49
+ borderStyle: 'solid',
50
+ borderColor: 'gray.100',
51
+ transition: 'background linear 120ms'
52
+ },
53
+ th: {
54
+ fontWeight: 'semiBold',
55
+ backgroundColor: 'gray.25'
56
+ },
57
+ td: {
58
+ fontWeight: 'regular',
59
+ backgroundColor: 'white'
60
+ },
61
+ 'th[data-table-cell-fixed=true], td[data-table-cell-fixed=true]': {
62
+ position: 'sticky',
63
+ zIndex: 'docked',
64
+ left: '0',
65
+ right: '0'
66
+ }
67
+ }
68
+ })
69
+
70
+ const tableContainerRecipe = defineRecipe({
71
+ className: 'table-container',
72
+ jsx: ['MpTableContainer', 'mp-table-container'],
73
+ base: {
74
+ position: 'relative',
75
+ overflow: 'auto',
76
+ '&[data-table-has-left-shadow=true]': {
77
+ _before: {
78
+ boxShadow: 'inset 10px 0 8px -8px rgba(5, 5, 5, 0.08)'
79
+ }
80
+ },
81
+ '&[data-table-has-right-shadow=true]': {
82
+ _after: {
83
+ boxShadow: 'inset -10px 0 8px -8px rgba(5, 5, 5, 0.08)'
84
+ }
85
+ },
86
+ _before: {
87
+ content: '""',
88
+ position: 'absolute',
89
+ zIndex: 'docked',
90
+ boxShadow: 'none',
91
+ transition: 'box-shadow 300ms',
92
+ insetInlineStart: 0,
93
+ width: '30px',
94
+ top: 0,
95
+ bottom: 0,
96
+ pointerEvents: 'none'
97
+ },
98
+ _after: {
99
+ content: '""',
100
+ position: 'absolute',
101
+ zIndex: 'docked',
102
+ boxShadow: 'none',
103
+ transition: 'box-shadow linear 300ms',
104
+ insetInlineEnd: 0,
105
+ width: '30px',
106
+ top: 0,
107
+ bottom: 0,
108
+ pointerEvents: 'none'
109
+ }
110
+ }
111
+ })
112
+
113
+ export { tableRecipe, tableContainerRecipe }
@@ -0,0 +1,204 @@
1
+ import { defineRecipe } from '@pandacss/dev'
2
+
3
+ const tabListRecipe = defineRecipe({
4
+ className: 'tab-list',
5
+ jsx: ['MpTabList', 'mp-tab-list'],
6
+ base: {
7
+ display: 'flex',
8
+ overflow: 'auto',
9
+ gap: '1.5rem',
10
+ fontSize: 'md',
11
+ color: 'gray.600',
12
+ marginBottom: 6,
13
+ padding: 0.5,
14
+ alignItems: 'center',
15
+ justifyContent: 'flex-start',
16
+ maxWidth: 'full'
17
+ }
18
+ })
19
+
20
+ const tabRecipe = defineRecipe({
21
+ className: 'tab',
22
+ jsx: ['MpTab', 'mp-tab'],
23
+ base: {
24
+ display: 'flex',
25
+ cursor: 'pointer',
26
+ alignItems: 'center',
27
+ justifyContent: 'center',
28
+ transition: 'all 0.2s',
29
+ position: 'relative',
30
+ mb: '1px',
31
+ pt: '3',
32
+ pb: '4',
33
+ px: '1',
34
+ color: 'gray.600',
35
+ _hover: {
36
+ color: 'dark'
37
+ },
38
+ _disabled: {
39
+ opacity: 0.4,
40
+ cursor: 'not-allowed'
41
+ },
42
+ _focus: {
43
+ shadow: '0 0 0 2px #E0EEFF',
44
+ borderRadius: 'sm'
45
+ }
46
+ },
47
+ variants: {
48
+ variantColor: {
49
+ blue: {},
50
+ green: {},
51
+ orange: {},
52
+ red: {},
53
+ gray: {}
54
+ },
55
+ isSelected: {
56
+ true: {}
57
+ }
58
+ },
59
+ compoundVariants: [
60
+ {
61
+ variantColor: 'blue',
62
+ isSelected: true,
63
+ css: {
64
+ color: 'blue.400',
65
+ _hover: {
66
+ color: 'blue.500'
67
+ }
68
+ }
69
+ },
70
+ {
71
+ variantColor: 'green',
72
+ isSelected: true,
73
+ css: {
74
+ color: 'green.400',
75
+ _hover: {
76
+ color: 'green.500'
77
+ }
78
+ }
79
+ },
80
+ {
81
+ variantColor: 'orange',
82
+ isSelected: true,
83
+ css: {
84
+ color: 'orange.400',
85
+ _hover: {
86
+ color: 'orange.500'
87
+ }
88
+ }
89
+ },
90
+ {
91
+ variantColor: 'red',
92
+ isSelected: true,
93
+ css: {
94
+ color: 'red.400',
95
+ _hover: {
96
+ color: 'red.500'
97
+ }
98
+ }
99
+ },
100
+ {
101
+ variantColor: 'gray',
102
+ isSelected: true,
103
+ css: {
104
+ color: 'gray.400',
105
+ _hover: {
106
+ color: 'gray.500'
107
+ }
108
+ }
109
+ }
110
+ ],
111
+
112
+ defaultVariants: {
113
+ variantColor: 'blue',
114
+ isSelected: false
115
+ }
116
+ })
117
+
118
+ const selectedBorderRecipe = defineRecipe({
119
+ className: 'selected-border',
120
+ jsx: ['MpSelectedBorder', 'mp-selected-border'],
121
+ base: {
122
+ position: 'absolute',
123
+ bottom: '-2px',
124
+ width: 'calc(100% - 8px)',
125
+ height: '0.5'
126
+ },
127
+ variants: {
128
+ variantColor: {
129
+ blue: {},
130
+ green: {},
131
+ orange: {},
132
+ red: {},
133
+ gray: {}
134
+ },
135
+ isSelected: {
136
+ false: {
137
+ background: 'transparent',
138
+ _groupHover: {
139
+ background: 'gray.400'
140
+ }
141
+ },
142
+ true: {}
143
+ }
144
+ },
145
+ compoundVariants: [
146
+ {
147
+ variantColor: 'blue',
148
+ isSelected: true,
149
+ css: {
150
+ background: 'blue.400',
151
+ _groupHover: {
152
+ background: 'blue.500'
153
+ }
154
+ }
155
+ },
156
+ {
157
+ variantColor: 'green',
158
+ isSelected: true,
159
+ css: {
160
+ background: 'green.400',
161
+ _groupHover: {
162
+ background: 'green.500'
163
+ }
164
+ }
165
+ },
166
+ {
167
+ variantColor: 'orange',
168
+ isSelected: true,
169
+ css: {
170
+ background: 'orange.400',
171
+ _groupHover: {
172
+ background: 'orange.500'
173
+ }
174
+ }
175
+ },
176
+ {
177
+ variantColor: 'red',
178
+ isSelected: true,
179
+ css: {
180
+ background: 'red.400',
181
+ _groupHover: {
182
+ background: 'red.500'
183
+ }
184
+ }
185
+ },
186
+ {
187
+ variantColor: 'gray',
188
+ isSelected: true,
189
+ css: {
190
+ background: 'gray.400',
191
+ _groupHover: {
192
+ background: 'gray.500'
193
+ }
194
+ }
195
+ }
196
+ ],
197
+
198
+ defaultVariants: {
199
+ variantColor: 'blue',
200
+ isSelected: false
201
+ }
202
+ })
203
+
204
+ export { tabListRecipe, tabRecipe, selectedBorderRecipe }