@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,92 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const checkboxSlotRecipe = defineSlotRecipe({
4
+ className: 'checkbox',
5
+ jsx: ['MpCheckbox', 'mp-checkbox'],
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-checkbox__control': {
19
+ marginTop: '1'
20
+ }
21
+ },
22
+ '& .mp-shared__hidden': {
23
+ '&:focus + .mp-checkbox__control': {
24
+ borderColor: 'blue.400',
25
+ boxShadow: 'focus'
26
+ }
27
+ },
28
+ _hover: {
29
+ '& .mp-checkbox__control': {
30
+ borderColor: 'gray.400'
31
+ }
32
+ },
33
+ _disabled: {
34
+ cursor: 'not-allowed',
35
+ '& .mp-checkbox__control': {
36
+ borderColor: 'gray.100 !important',
37
+ background: 'gray.50 !important',
38
+ boxShadow: 'none !important'
39
+ }
40
+ },
41
+ _invalid: {
42
+ '& .mp-checkbox__control': {
43
+ borderColor: 'red.400',
44
+ background: 'white'
45
+ }
46
+ },
47
+ _checked: {
48
+ '& .mp-checkbox__control': {
49
+ borderColor: 'blue.400',
50
+ background: 'blue.400'
51
+ },
52
+ _hover: {
53
+ '& .mp-checkbox__control': {
54
+ borderColor: 'blue.400'
55
+ }
56
+ }
57
+ },
58
+ _indeterminate: {
59
+ '& .mp-checkbox__control': {
60
+ borderColor: 'blue.400',
61
+ background: 'blue.400'
62
+ },
63
+ _hover: {
64
+ '& .mp-checkbox__control': {
65
+ borderColor: 'blue.400'
66
+ }
67
+ }
68
+ }
69
+ },
70
+ control: {
71
+ flex: 'none',
72
+ transitionDuration: '250ms',
73
+ transitionProperty: 'background, border-color, box-shadow',
74
+ transitionTimingFunction: 'linear',
75
+ position: 'relative',
76
+ display: 'inline-flex',
77
+ alignItems: 'center',
78
+ justifyContent: 'center',
79
+ width: '18px',
80
+ height: '18px',
81
+ borderWidth: '2px',
82
+ borderColor: 'gray.100',
83
+ borderRadius: 'md',
84
+ background: 'white'
85
+ },
86
+ label: {
87
+ background: 'transparent'
88
+ }
89
+ }
90
+ })
91
+
92
+ export { checkboxSlotRecipe }
@@ -0,0 +1,31 @@
1
+ import { defineRecipe } from '@pandacss/dev'
2
+
3
+ const dividerRecipe = defineRecipe({
4
+ className: 'divider',
5
+ jsx: ['MpDivider', 'mp-divider'],
6
+ base: {
7
+ border: 0,
8
+ opacity: 0.6,
9
+ color: 'rgb(208, 214, 221)'
10
+ },
11
+ variants: {
12
+ orientation: {
13
+ horizontal: {
14
+ borderBottom: '0.0625rem solid',
15
+ height: 'auto',
16
+ marginY: 2
17
+ },
18
+ vertical: {
19
+ borderLeft: '0.0625rem solid',
20
+ height: 'auto',
21
+ marginX: 2
22
+ }
23
+ }
24
+ },
25
+ compoundVariants: [],
26
+ defaultVariants: {
27
+ orientation: 'horizontal'
28
+ }
29
+ })
30
+
31
+ export { dividerRecipe }
@@ -0,0 +1,40 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const formControlSlotRecipe = defineSlotRecipe({
4
+ className: 'form-control',
5
+ jsx: ['MpFormControl', 'mp-form-control'],
6
+ slots: ['root', 'label', 'required', 'helpText', 'errorMessage'],
7
+ base: {
8
+ root: {},
9
+ label: {
10
+ fontSize: 'md',
11
+ fontWeight: 'semiBold',
12
+ marginBottom: '1',
13
+ textAlign: 'left',
14
+ verticalAlign: 'middle',
15
+ display: 'flex'
16
+ },
17
+ required: {
18
+ color: 'red.400',
19
+ marginLeft: '1'
20
+ },
21
+ helpText: {
22
+ color: 'gray.600',
23
+ fontSize: 'sm',
24
+ marginTop: '1'
25
+ },
26
+ errorMessage: {
27
+ color: 'red.400',
28
+ fontSize: 'sm',
29
+ marginTop: '1',
30
+ textAlign: 'left',
31
+ verticalAlign: 'middle',
32
+ display: 'flex'
33
+ }
34
+ },
35
+ variants: {},
36
+ compoundVariants: [],
37
+ defaultVariants: {}
38
+ })
39
+
40
+ export { formControlSlotRecipe }
@@ -0,0 +1,31 @@
1
+ import { defineRecipe } from '@pandacss/dev'
2
+
3
+ export const iconRecipe = defineRecipe({
4
+ className: 'icon',
5
+ jsx: ['MpIcon', 'mp-icon'],
6
+ base: {
7
+ color: 'var(--mp-icon-color)',
8
+ display: 'inline-block',
9
+ verticalAlign: 'middle',
10
+ backfaceVisibility: 'hidden',
11
+ flexShrink: 0,
12
+ '&:not(:root)': {
13
+ overflow: 'hidden'
14
+ }
15
+ },
16
+ variants: {
17
+ size: {
18
+ sm: {
19
+ width: '5',
20
+ height: '5'
21
+ },
22
+ md: {
23
+ width: '6',
24
+ height: '6'
25
+ }
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ size: 'md'
30
+ }
31
+ })
@@ -0,0 +1,61 @@
1
+ import { tagSlotRecipe } from './tag'
2
+ import { avatarSlotRecipe, avatarGroupSlotRecipe } from './avatar'
3
+ import { buttonRecipe, buttonGroupRecipe } from './button'
4
+ import { inputSlotRecipe, inputGroupSlotRecipe, inputAddonSlotRecipe } from './input'
5
+ import { selectSlotRecipe } from './select'
6
+ import { textRecipe } from './text'
7
+ import { iconRecipe } from './icon'
8
+ import { spinnerRecipe } from './spinner'
9
+ import { accordion } from './accordion'
10
+ import { popoverContentRecipe, popoverListRecipe, popoverListItemRecipe } from './popover'
11
+ import { badgeRecipe } from './badge'
12
+ import { textareaRecipe } from './textarea'
13
+ import { tooltipRecipe } from './tooltip'
14
+ import { tabListRecipe, tabRecipe, selectedBorderRecipe } from './tabs'
15
+ import { checkboxSlotRecipe } from './checkbox'
16
+ import { radioSlotRecipe } from './radio'
17
+ import { sharedSlotRecipe } from './shared'
18
+ import { toggleSlotRecipe } from './toggle'
19
+ import { tableRecipe, tableContainerRecipe } from './table'
20
+ import { progressSlotRecipe } from './progress'
21
+ import { formControlSlotRecipe } from './form-control'
22
+ import { inputTagSlotRecipe } from './input-tag'
23
+ import { dividerRecipe } from './divider'
24
+
25
+ export const recipes = {
26
+ buttonRecipe,
27
+ buttonGroupRecipe,
28
+ textRecipe,
29
+ iconRecipe,
30
+ spinnerRecipe,
31
+ popoverContentRecipe,
32
+ popoverListRecipe,
33
+ popoverListItemRecipe,
34
+ badgeRecipe,
35
+ textareaRecipe,
36
+ tooltipRecipe,
37
+ tabListRecipe,
38
+ tabRecipe,
39
+ selectedBorderRecipe,
40
+ tableRecipe,
41
+ tableContainerRecipe,
42
+ dividerRecipe
43
+ }
44
+
45
+ export const slotRecipes = {
46
+ accordion,
47
+ checkboxSlotRecipe,
48
+ radioSlotRecipe,
49
+ sharedSlotRecipe,
50
+ progressSlotRecipe,
51
+ toggleSlotRecipe,
52
+ tagSlotRecipe,
53
+ inputSlotRecipe,
54
+ inputGroupSlotRecipe,
55
+ inputAddonSlotRecipe,
56
+ avatarSlotRecipe,
57
+ avatarGroupSlotRecipe,
58
+ selectSlotRecipe,
59
+ formControlSlotRecipe,
60
+ inputTagSlotRecipe
61
+ }
@@ -0,0 +1,119 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const inputTagSlotRecipe = defineSlotRecipe({
4
+ className: 'input-tag',
5
+ jsx: ['MpInputTag', 'mp-input-tag'],
6
+ slots: [
7
+ 'root',
8
+ 'trigger',
9
+ 'input',
10
+ 'content',
11
+ 'resetButton',
12
+ 'dropdownButton',
13
+ 'addButton',
14
+ 'loading',
15
+ 'empty',
16
+ 'suggestionWrapper',
17
+ 'suggestionLoading'
18
+ ],
19
+ base: {
20
+ root: {
21
+ position: 'relative',
22
+ width: 'full'
23
+ },
24
+ trigger: {
25
+ overflowY: 'auto',
26
+ position: 'relative',
27
+ display: 'flex',
28
+ alignItems: 'center',
29
+ flexWrap: 'wrap',
30
+ gap: '2',
31
+ borderWidth: '1px',
32
+ borderColor: 'gray.100',
33
+ borderRadius: 'md',
34
+ paddingTop: '2',
35
+ paddingBottom: '2',
36
+ paddingLeft: '3',
37
+ paddingRight: '8',
38
+ backgroundColor: 'white',
39
+ transition: 'all 250ms',
40
+ _hover: {
41
+ borderColor: 'gray.400'
42
+ },
43
+ _focusVisible: {
44
+ boxShadow: 'focus',
45
+ borderColor: 'blue.400',
46
+ _hover: {
47
+ borderColor: 'blue.400'
48
+ }
49
+ },
50
+ _disabled: {
51
+ cursor: 'not-allowed',
52
+ background: 'gray.50'
53
+ },
54
+ _invalid: {
55
+ borderColor: 'red.400',
56
+ _hover: {
57
+ borderColor: 'red.400'
58
+ }
59
+ },
60
+ _hasIcon: {
61
+ paddingRight: '52px'
62
+ }
63
+ },
64
+ input: {
65
+ padding: '0 !important',
66
+ margin: '0 !important',
67
+ },
68
+ content: {
69
+ maxHeight: '300px',
70
+ overflowY: 'auto'
71
+ },
72
+ resetButton: {
73
+ cursor: 'pointer',
74
+ position: 'absolute',
75
+ top: '2'
76
+ },
77
+ dropdownButton: {
78
+ cursor: 'pointer',
79
+ position: 'absolute',
80
+ top: '2',
81
+ right: '3'
82
+ },
83
+ addButton: {
84
+ cursor: 'pointer',
85
+ width: 'full',
86
+ px: '3',
87
+ py: '2',
88
+ wordBreak: 'break-all',
89
+ textAlign: 'center'
90
+ },
91
+ loading: {
92
+ position: 'absolute',
93
+ top: '2',
94
+ right: '3'
95
+ },
96
+ empty: {
97
+ px: '3',
98
+ py: '2',
99
+ width: 'full',
100
+ textAlign: 'left'
101
+ },
102
+ suggestionWrapper: {
103
+ display: 'flex',
104
+ flexDirection: 'column',
105
+ width: '100%'
106
+ },
107
+ suggestionLoading: {
108
+ display: 'flex',
109
+ justifyContent: 'flex-start',
110
+ gap: '3',
111
+ width: 'full',
112
+ height: '9',
113
+ py: '2',
114
+ px: '3',
115
+ }
116
+ }
117
+ })
118
+
119
+ export { inputTagSlotRecipe }
@@ -0,0 +1,204 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const inputSlotRecipe = defineSlotRecipe({
4
+ className: 'input',
5
+ jsx: ['MpInput', 'mp-input'],
6
+ slots: ['root', 'control', 'clear'],
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: 'dark',
21
+ position: 'relative',
22
+ display: 'flex',
23
+ alignItems: 'center',
24
+ outline: '0',
25
+ borderWidth: '1px',
26
+ borderColor: 'inherit',
27
+ borderRadius: 'sm',
28
+ paddingRight: 'var(--mp-input--padding-right)',
29
+ paddingLeft: 'var(--mp-input--padding-left)',
30
+ appearance: 'none',
31
+ transition: 'all 250ms',
32
+ _isFullWidth: {
33
+ width: 'full'
34
+ }
35
+ },
36
+ clear: {
37
+ position: 'absolute!',
38
+ color: 'gray.600',
39
+ border: 'none',
40
+ top: '9px',
41
+ right: 'var(--mp-input--right)',
42
+ width: '5',
43
+ height: '5',
44
+ minWidth: '5',
45
+ padding: '0',
46
+ transition: 'all 250ms!',
47
+ visibility: 'hidden',
48
+ opacity: '0',
49
+ _groupHover: {
50
+ visibility: 'var(--mp-input--visibility)',
51
+ opacity: 'var(--mp-input--opacity)'
52
+ }
53
+ }
54
+ },
55
+ variants: {
56
+ variant: {
57
+ unstyled: {
58
+ control: {
59
+ backgroundColor: 'transparent',
60
+ borderWidth: '0',
61
+ borderRadius: 'none'
62
+ }
63
+ },
64
+ outline: {
65
+ control: {
66
+ backgroundColor: 'white',
67
+ borderColor: 'gray.100',
68
+ _hover: {
69
+ borderColor: 'gray.400'
70
+ },
71
+ _focus: {
72
+ borderColor: 'blue.500',
73
+ boxShadow: 'outer',
74
+ _hover: {
75
+ borderColor: 'blue.500'
76
+ },
77
+ _invalid: {
78
+ borderColor: 'red.400'
79
+ }
80
+ },
81
+ _disabled: {
82
+ color: 'gray.400',
83
+ backgroundColor: 'gray.50',
84
+ borderColor: 'gray.100',
85
+ cursor: 'not-allowed'
86
+ },
87
+ _invalid: {
88
+ borderColor: 'red.400'
89
+ },
90
+ _readOnly: {
91
+ boxShadow: 'none',
92
+ userSelect: 'all'
93
+ }
94
+ }
95
+ }
96
+ },
97
+ size: {
98
+ sm: {
99
+ control: {
100
+ height: '7.5',
101
+ fontSize: 'sm',
102
+ borderRadius: 'sm',
103
+ paddingY: '1'
104
+ }
105
+ },
106
+ md: {
107
+ control: {
108
+ height: '9.5',
109
+ fontSize: 'md',
110
+ borderRadius: 'md',
111
+ paddingY: '2'
112
+ }
113
+ }
114
+ }
115
+ },
116
+ compoundVariants: [],
117
+ defaultVariants: {
118
+ size: 'md',
119
+ variant: 'outline'
120
+ }
121
+ })
122
+
123
+ const inputGroupSlotRecipe = defineSlotRecipe({
124
+ className: 'input-group',
125
+ jsx: ['MpInputGroup', 'mp-input-group'],
126
+ slots: ['root'],
127
+ base: {
128
+ root: {
129
+ position: 'relative',
130
+ display: 'inline-flex',
131
+ alignItems: 'center',
132
+ width: 'full'
133
+ }
134
+ },
135
+ variants: {},
136
+ compoundVariants: [],
137
+ defaultVariants: {}
138
+ })
139
+
140
+ const inputAddonSlotRecipe = defineSlotRecipe({
141
+ className: 'input-addon',
142
+ jsx: ['MpInputAddon', 'mp-input-addon'],
143
+ slots: ['root'],
144
+ base: {
145
+ root: {
146
+ position: 'absolute',
147
+ display: 'flex',
148
+ alignItems: 'center',
149
+ paddingX: '0',
150
+ whiteSpace: 'nowrap',
151
+ zIndex: '2',
152
+ _hasBackground: {
153
+ backgroundColor: 'gray.50'
154
+ }
155
+ }
156
+ },
157
+ variants: {
158
+ placement: {
159
+ left: {
160
+ root: {
161
+ left: '3',
162
+ borderTopRightRadius: 'none!',
163
+ borderBottomRightRadius: 'none!'
164
+ }
165
+ },
166
+ right: {
167
+ root: {
168
+ right: '3',
169
+ borderTopLeftRadius: 'none!',
170
+ borderBottomLeftRadius: 'none!'
171
+ }
172
+ }
173
+ },
174
+ size: {
175
+ sm: {
176
+ root: {
177
+ height: '6.5',
178
+ borderRadius: '2xs',
179
+ _hasBackground: {
180
+ _placementLeft: { left: '0.5' },
181
+ _placementRight: { right: '0.5' }
182
+ }
183
+ }
184
+ },
185
+ md: {
186
+ root: {
187
+ height: '7.5',
188
+ borderRadius: 'sm',
189
+ _hasBackground: {
190
+ _placementLeft: { left: '1' },
191
+ _placementRight: { right: '1' }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ },
197
+ compoundVariants: [],
198
+ defaultVariants: {
199
+ size: 'md',
200
+ placement: 'left'
201
+ }
202
+ })
203
+
204
+ export { inputSlotRecipe, inputGroupSlotRecipe, inputAddonSlotRecipe }
@@ -0,0 +1,82 @@
1
+ import { defineRecipe } from '@pandacss/dev'
2
+
3
+ const popoverContentRecipe = defineRecipe({
4
+ className: 'popover',
5
+ jsx: ['MpPopover', 'mp-popover'],
6
+ base: {},
7
+ variants: {
8
+ isUnstyled: {
9
+ true: {},
10
+ false: {
11
+ rounded: 'md',
12
+ shadow: 'lg',
13
+ borderWidth: '1px',
14
+ borderColor: 'gray.400',
15
+ zIndex: 'popover'
16
+ }
17
+ },
18
+ isDark: {
19
+ true: {
20
+ background: 'overlay',
21
+ color: 'white'
22
+ },
23
+ false: {
24
+ background: 'white'
25
+ }
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ isDark: false,
30
+ isUnstyled: false
31
+ }
32
+ })
33
+
34
+ const popoverListRecipe = defineRecipe({
35
+ className: 'popover-list',
36
+ jsx: ['MpPopoverList', 'mp-popover-list'],
37
+ base: {
38
+ pt: 3,
39
+ pb: 2,
40
+ alignItems: 'center',
41
+ display: 'flex',
42
+ flexDirection: 'column'
43
+ }
44
+ })
45
+
46
+ const popoverListItemRecipe = defineRecipe({
47
+ className: 'popover-list-item',
48
+ jsx: ['MpPopoverListItem', 'mp-popover-list-item'],
49
+ base: {
50
+ px: 3,
51
+ py: 2,
52
+ width: 'full',
53
+ textDecoration: 'none',
54
+ alignItems: 'center',
55
+ textAlign: 'left',
56
+ outline: 'none',
57
+ fontSize: 'md',
58
+ flex: ' 0 0 auto',
59
+ userSelect: 'none',
60
+ cursor: 'pointer',
61
+ color: 'dark',
62
+ _disabled: {
63
+ color: 'gray.400',
64
+ bg: 'white',
65
+ cursor: 'not-allowed'
66
+ },
67
+ _highlight: {
68
+ background: 'white',
69
+ bg: 'gray.50',
70
+ color: 'dark',
71
+ outline: 0
72
+ },
73
+ _active: {
74
+ background: 'ice.50',
75
+ bg: 'ice.50',
76
+ color: 'dark',
77
+ outline: 0
78
+ }
79
+ }
80
+ })
81
+
82
+ export { popoverContentRecipe, popoverListRecipe, popoverListItemRecipe }