@mekari/pixel3-theme 0.2.1 → 0.2.2-dev.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 (94) hide show
  1. package/dist/conditions.d.mts +4 -1
  2. package/dist/conditions.d.ts +4 -1
  3. package/dist/index.js +3423 -606
  4. package/dist/index.mjs +3382 -565
  5. package/dist/recipes/airene-button.d.mts +5 -0
  6. package/dist/recipes/airene-button.d.ts +5 -0
  7. package/dist/recipes/index.d.mts +1 -0
  8. package/dist/recipes/index.d.ts +1 -0
  9. package/dist/semanticTokens/colors.d.mts +892 -0
  10. package/dist/semanticTokens/colors.d.ts +892 -0
  11. package/dist/semanticTokens/index.d.mts +951 -0
  12. package/dist/semanticTokens/index.d.ts +951 -0
  13. package/dist/semanticTokens/spacing.d.mts +59 -0
  14. package/dist/semanticTokens/spacing.d.ts +59 -0
  15. package/dist/tokens/borders.d.mts +2 -2
  16. package/dist/tokens/borders.d.ts +2 -2
  17. package/dist/tokens/colors.d.mts +40 -34
  18. package/dist/tokens/colors.d.ts +40 -34
  19. package/dist/tokens/index.d.mts +62 -35
  20. package/dist/tokens/index.d.ts +62 -35
  21. package/dist/tokens/radii.d.mts +5 -0
  22. package/dist/tokens/radii.d.ts +5 -0
  23. package/dist/tokens/spacing.d.mts +16 -0
  24. package/dist/tokens/spacing.d.ts +16 -0
  25. package/dist/tokens-next/borders.d.mts +22 -0
  26. package/dist/tokens-next/borders.d.ts +22 -0
  27. package/dist/tokens-next/colors.d.mts +444 -0
  28. package/dist/tokens-next/colors.d.ts +444 -0
  29. package/dist/tokens-next/index.d.mts +775 -0
  30. package/dist/tokens-next/index.d.ts +775 -0
  31. package/dist/tokens-next/radii.d.mts +26 -0
  32. package/dist/tokens-next/radii.d.ts +26 -0
  33. package/dist/tokens-next/shadows.d.mts +28 -0
  34. package/dist/tokens-next/shadows.d.ts +28 -0
  35. package/dist/tokens-next/spacing.d.mts +51 -0
  36. package/dist/tokens-next/spacing.d.ts +51 -0
  37. package/package.json +3 -2
  38. package/src/conditions.ts +6 -4
  39. package/src/global-css.ts +4 -0
  40. package/src/index.ts +15 -2
  41. package/src/keyframes.ts +5 -0
  42. package/src/recipes/accordion.ts +60 -10
  43. package/src/recipes/airene-button.ts +120 -0
  44. package/src/recipes/autocomplete.ts +6 -1
  45. package/src/recipes/avatar.ts +101 -24
  46. package/src/recipes/badge.ts +174 -50
  47. package/src/recipes/banner.ts +36 -12
  48. package/src/recipes/broadcast.ts +78 -12
  49. package/src/recipes/button.ts +239 -11
  50. package/src/recipes/carousel.ts +5 -0
  51. package/src/recipes/chart.ts +10 -5
  52. package/src/recipes/checkbox.ts +72 -15
  53. package/src/recipes/color-picker.ts +74 -23
  54. package/src/recipes/date-picker.ts +165 -31
  55. package/src/recipes/divider.ts +5 -1
  56. package/src/recipes/dropzone.ts +80 -8
  57. package/src/recipes/form-control.ts +12 -3
  58. package/src/recipes/icon.ts +3 -1
  59. package/src/recipes/index.ts +3 -1
  60. package/src/recipes/input-tag.ts +48 -8
  61. package/src/recipes/input.ts +105 -18
  62. package/src/recipes/modal.ts +38 -10
  63. package/src/recipes/popover.ts +28 -9
  64. package/src/recipes/progress.ts +9 -2
  65. package/src/recipes/radio.ts +56 -23
  66. package/src/recipes/rich-text-editor.ts +32 -6
  67. package/src/recipes/segmented-control.ts +48 -8
  68. package/src/recipes/select.ts +42 -0
  69. package/src/recipes/slider.ts +46 -6
  70. package/src/recipes/table.ts +26 -11
  71. package/src/recipes/tabs.ts +36 -4
  72. package/src/recipes/tag.ts +44 -14
  73. package/src/recipes/text.ts +0 -1
  74. package/src/recipes/textarea.ts +0 -46
  75. package/src/recipes/timeline.ts +42 -8
  76. package/src/recipes/toast.ts +21 -5
  77. package/src/recipes/toggle.ts +63 -13
  78. package/src/recipes/tooltip.ts +6 -1
  79. package/src/recipes/upload.ts +51 -16
  80. package/src/semanticTokens/colors.ts +893 -0
  81. package/src/semanticTokens/index.ts +8 -0
  82. package/src/semanticTokens/spacing.ts +59 -0
  83. package/src/text-styles.ts +1 -1
  84. package/src/tokens/borders.ts +1 -1
  85. package/src/tokens/colors.ts +19 -23
  86. package/src/tokens/index.ts +2 -2
  87. package/src/tokens/radii.ts +5 -5
  88. package/src/tokens/spacing.ts +17 -17
  89. package/src/tokens-next/borders.ts +10 -0
  90. package/src/tokens-next/colors.ts +172 -0
  91. package/src/tokens-next/index.ts +32 -0
  92. package/src/tokens-next/radii.ts +10 -0
  93. package/src/tokens-next/shadows.ts +28 -0
  94. package/src/tokens-next/spacing.ts +16 -0
@@ -0,0 +1,26 @@
1
+ declare const radii: {
2
+ none: {
3
+ value: string;
4
+ };
5
+ sm: {
6
+ value: string;
7
+ description: string;
8
+ };
9
+ md: {
10
+ value: string;
11
+ description: string;
12
+ };
13
+ lg: {
14
+ value: string;
15
+ description: string;
16
+ };
17
+ xl: {
18
+ value: string;
19
+ description: string;
20
+ };
21
+ full: {
22
+ value: string;
23
+ };
24
+ };
25
+
26
+ export { radii };
@@ -0,0 +1,26 @@
1
+ declare const radii: {
2
+ none: {
3
+ value: string;
4
+ };
5
+ sm: {
6
+ value: string;
7
+ description: string;
8
+ };
9
+ md: {
10
+ value: string;
11
+ description: string;
12
+ };
13
+ lg: {
14
+ value: string;
15
+ description: string;
16
+ };
17
+ xl: {
18
+ value: string;
19
+ description: string;
20
+ };
21
+ full: {
22
+ value: string;
23
+ };
24
+ };
25
+
26
+ export { radii };
@@ -0,0 +1,28 @@
1
+ declare const shadows: {
2
+ xs: {
3
+ value: string[];
4
+ };
5
+ sm: {
6
+ value: string[];
7
+ };
8
+ md: {
9
+ value: string[];
10
+ };
11
+ lg: {
12
+ value: string[];
13
+ };
14
+ focus: {
15
+ value: string;
16
+ };
17
+ outline: {
18
+ value: string;
19
+ };
20
+ outer: {
21
+ value: string;
22
+ };
23
+ none: {
24
+ value: string;
25
+ };
26
+ };
27
+
28
+ export { shadows };
@@ -0,0 +1,28 @@
1
+ declare const shadows: {
2
+ xs: {
3
+ value: string[];
4
+ };
5
+ sm: {
6
+ value: string[];
7
+ };
8
+ md: {
9
+ value: string[];
10
+ };
11
+ lg: {
12
+ value: string[];
13
+ };
14
+ focus: {
15
+ value: string;
16
+ };
17
+ outline: {
18
+ value: string;
19
+ };
20
+ outer: {
21
+ value: string;
22
+ };
23
+ none: {
24
+ value: string;
25
+ };
26
+ };
27
+
28
+ export { shadows };
@@ -0,0 +1,51 @@
1
+ declare const spacing: {
2
+ 0: {
3
+ value: string;
4
+ };
5
+ 0.5: {
6
+ value: string;
7
+ description: string;
8
+ };
9
+ 1: {
10
+ value: string;
11
+ description: string;
12
+ };
13
+ 1.5: {
14
+ value: string;
15
+ description: string;
16
+ };
17
+ 2: {
18
+ value: string;
19
+ description: string;
20
+ };
21
+ 3: {
22
+ value: string;
23
+ description: string;
24
+ };
25
+ 4: {
26
+ value: string;
27
+ description: string;
28
+ };
29
+ 5: {
30
+ value: string;
31
+ description: string;
32
+ };
33
+ 6: {
34
+ value: string;
35
+ description: string;
36
+ };
37
+ 8: {
38
+ value: string;
39
+ description: string;
40
+ };
41
+ 10: {
42
+ value: string;
43
+ description: string;
44
+ };
45
+ 20: {
46
+ value: string;
47
+ description: string;
48
+ };
49
+ };
50
+
51
+ export { spacing };
@@ -0,0 +1,51 @@
1
+ declare const spacing: {
2
+ 0: {
3
+ value: string;
4
+ };
5
+ 0.5: {
6
+ value: string;
7
+ description: string;
8
+ };
9
+ 1: {
10
+ value: string;
11
+ description: string;
12
+ };
13
+ 1.5: {
14
+ value: string;
15
+ description: string;
16
+ };
17
+ 2: {
18
+ value: string;
19
+ description: string;
20
+ };
21
+ 3: {
22
+ value: string;
23
+ description: string;
24
+ };
25
+ 4: {
26
+ value: string;
27
+ description: string;
28
+ };
29
+ 5: {
30
+ value: string;
31
+ description: string;
32
+ };
33
+ 6: {
34
+ value: string;
35
+ description: string;
36
+ };
37
+ 8: {
38
+ value: string;
39
+ description: string;
40
+ };
41
+ 10: {
42
+ value: string;
43
+ description: string;
44
+ };
45
+ 20: {
46
+ value: string;
47
+ description: string;
48
+ };
49
+ };
50
+
51
+ export { spacing };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mekari/pixel3-theme",
3
3
  "description": "Theme for mekari pixel 3",
4
- "version": "0.2.1",
4
+ "version": "0.2.2-dev.1",
5
5
  "main": "dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
@@ -37,6 +37,7 @@
37
37
  "build:types": "tsup src --dts-only",
38
38
  "types:check": "tsc --noEmit",
39
39
  "replace-config": "clean-package",
40
- "restore-config": "clean-package restore"
40
+ "restore-config": "clean-package restore",
41
+ "types:vue": "vue-tsc --noEmit"
41
42
  }
42
43
  }
package/src/conditions.ts CHANGED
@@ -2,9 +2,9 @@ export const conditions = {
2
2
  extend: {
3
3
  disabled: '&:is(:disabled, [disabled], [aria-disabled=true], [data-disabled])',
4
4
  invalid: '&:is([aria-invalid=true], [data-invalid])',
5
+ active: '&:is(:active, [data-active=true])',
5
6
  checked: '&:is(:checked, [data-checked], [aria-checked=true], [data-state=checked])',
6
- indeterminate:
7
- '&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed], [data-state=indeterminate])',
7
+ indeterminate: '&:is(:indeterminate, [data-indeterminate], [aria-checked=mixed], [data-state=indeterminate])',
8
8
  closed: '&:is([data-state=closed])',
9
9
  open: '&:is([open], [data-state=open])',
10
10
  hidden: '&:is([hidden])',
@@ -12,12 +12,14 @@ export const conditions = {
12
12
  loading: '& > [data-loading=true], &:is([data-loading], [aria-busy=true])',
13
13
  hasIcon: '&[data-has-icon=true]',
14
14
  hasLabel: '&[data-has-label=true]',
15
- active: '&[data-active=true], [data-active]',
16
15
  highlight: '&[data-highlight=true], [data-highlight]',
17
16
  hasBorder: '&[data-has-border=true]',
18
17
  hasBackground: '&[data-has-background=true]',
19
18
  isFullWidth: '&[data-is-full-width=true]',
20
19
  placementLeft: '&[data-placement=left]',
21
- placementRight: '&[data-placement=right]'
20
+ placementRight: '&[data-placement=right]',
21
+ nextTheme: '[data-panda-theme=next] &',
22
+ light: '.light &',
23
+ dark: '.dark &',
22
24
  }
23
25
  }
package/src/global-css.ts CHANGED
@@ -16,6 +16,10 @@ export const globalCss = defineGlobalStyles({
16
16
  lineHeight: 'var(--mp-line-heights-lg)',
17
17
  _dark: {
18
18
  colorScheme: 'dark'
19
+ },
20
+ _nextTheme: {
21
+ background: 'var(--mp-colors-background-neutral)',
22
+ color: 'var(--mp-colors-text-default)',
19
23
  }
20
24
  },
21
25
  '*, *::before, *::after': {
package/src/index.ts CHANGED
@@ -7,23 +7,36 @@ import { keyframes } from './keyframes'
7
7
  import { recipes, slotRecipes } from './recipes'
8
8
  import { textStyles } from './text-styles'
9
9
  import { tokens } from './tokens'
10
+ import { tokensNext } from './tokens-next'
11
+ import { semanticTokens } from './semanticTokens'
10
12
  import { globalFontface } from './fonts'
11
13
 
12
14
  const preset: Preset = definePreset({
13
15
  name: '@mekari/pixel3-theme',
16
+ // Main Theme
14
17
  theme: {
15
18
  extend: {
19
+ tokens,
16
20
  breakpoints,
17
21
  keyframes,
18
22
  textStyles,
19
- tokens,
20
23
  recipes,
21
24
  slotRecipes
22
25
  }
23
26
  },
27
+ // Alternate Theme
28
+ themes: {
29
+ next: {
30
+ tokens: tokensNext,
31
+ semanticTokens
32
+ },
33
+ },
24
34
  conditions,
25
- globalFontface,
26
35
  globalCss,
36
+ staticCss: {
37
+ themes: ['next']
38
+ },
39
+ globalFontface,
27
40
  globalVars: {
28
41
  '--font-inter': 'Inter, sans-serif'
29
42
  }
package/src/keyframes.ts CHANGED
@@ -11,5 +11,10 @@ export const keyframes = defineKeyframes({
11
11
  },
12
12
  spin: {
13
13
  '100%': { transform: 'rotate(1turn)' }
14
+ },
15
+ 'border-shine': {
16
+ '0%': { backgroundPosition: '0% 20%' },
17
+ '50%': { backgroundPosition: '100% 50%' },
18
+ '100%': { backgroundPosition: '0% 100%' }
14
19
  }
15
20
  })
@@ -2,7 +2,7 @@ import { defineSlotRecipe } from '@pandacss/dev'
2
2
 
3
3
  export const accordionSlotRecipe = defineSlotRecipe({
4
4
  className: 'accordion',
5
- slots: ['header', 'item', 'panel'],
5
+ slots: ['header', 'headerTitle', 'headerDescription', 'item', 'panel'],
6
6
  jsx: [
7
7
  'MpAccordionHeader',
8
8
  'MpAccordionItem',
@@ -13,25 +13,52 @@ export const accordionSlotRecipe = defineSlotRecipe({
13
13
  ],
14
14
  base: {
15
15
  header: {
16
+ display: 'flex',
17
+ flexDirection: 'column',
18
+ alignItems: 'flex-start',
19
+ pt: 3,
20
+ _disabled: { opacity: '0.4', cursor: 'not-allowed' }
21
+ },
22
+ headerTitle: {
16
23
  display: 'flex',
17
24
  alignItems: 'center',
25
+ gap: 2,
18
26
  width: '100%',
19
27
  outline: 0,
20
- gap: 4,
21
- transition: 'all 0.2s',
22
- py: 3,
23
28
  fontWeight: 'semiBold',
24
- fontSize: 'md',
29
+ fontSize: 'xl',
25
30
  color: 'dark',
26
- _disabled: { opacity: '0.4', cursor: 'not-allowed' }
31
+ transition: 'all 0.2s',
32
+ _nextTheme: {
33
+ color: 'text.default'
34
+ }
35
+ },
36
+ headerDescription: {
37
+ color: 'gray.600',
38
+ lineHeight: 'md',
39
+ _nextTheme: {
40
+ color: 'text.secondary'
41
+ }
27
42
  },
28
43
  item: {
29
44
  borderBottomWidth: '1px',
30
45
  borderColor: 'gray.100',
31
- _last: { borderBottomWidth: '1px', borderColor: 'gray.100' }
46
+ pb: 3,
47
+ _last: {
48
+ borderBottomWidth: '1px',
49
+ borderColor: 'gray.100',
50
+ _nextTheme: { borderColor: 'transparent' }
51
+ },
52
+ _nextTheme: {
53
+ borderColor: 'border.default'
54
+ }
32
55
  },
33
56
  panel: {
34
- py: 3
57
+ pt: 2,
58
+ color: 'gray.600',
59
+ _nextTheme: {
60
+ color: 'text.secondary'
61
+ }
35
62
  }
36
63
  },
37
64
  variants: {
@@ -46,9 +73,32 @@ export const accordionSlotRecipe = defineSlotRecipe({
46
73
  cursor: 'default'
47
74
  }
48
75
  }
76
+ },
77
+ iconPosition: {
78
+ start: {
79
+ headerDescription: {
80
+ pl: 8
81
+ },
82
+ panel: {
83
+ pl: 8
84
+ }
85
+ },
86
+ end: {
87
+ headerDescription: {
88
+ pl: 0
89
+ },
90
+ panel: {
91
+ pl: 0
92
+ }
93
+ }
49
94
  }
50
95
  },
51
96
  defaultVariants: {
52
- isClickable: true
53
- }
97
+ isClickable: true,
98
+ iconPosition: 'end'
99
+ },
100
+ staticCss: [
101
+ // Need to generate statically as `start` and `end` values are runtime-determined.
102
+ { iconPosition: ['*'] }
103
+ ]
54
104
  })
@@ -0,0 +1,120 @@
1
+ import { defineSlotRecipe } from '@pandacss/dev'
2
+
3
+ const aireneButtonSlotRecipe = defineSlotRecipe({
4
+ className: 'airene-button',
5
+ jsx: ['MpAireneButton', 'mp-airene-button'],
6
+ slots: ['root', 'badge'],
7
+ base: {
8
+ root: {
9
+ display: 'inline-flex!',
10
+ justifyContent: 'center',
11
+ alignItems: 'center',
12
+ position: 'relative',
13
+ backgroundColor: 'white',
14
+ color: 'blue.400!',
15
+ borderRadius: '25px!',
16
+ fontSize: 'md',
17
+ fontWeight: 'semiBold',
18
+ paddingLeft: '0.625rem!',
19
+ paddingRight: '0.625rem!',
20
+ overflow: 'hidden',
21
+ paddingTop: '7.5px!',
22
+ paddingBottom: '7.5px!',
23
+ height: 'auto',
24
+ zIndex: '1',
25
+ gap: '0!',
26
+ transition: 'color 0.3s ease, background-color 0.3s ease',
27
+ _nextTheme: {
28
+ backgroundColor: 'background.neutral',
29
+ color: 'text.link!',
30
+ },
31
+ _before: {
32
+ content: '\'\'',
33
+ position: 'absolute',
34
+ top: '-2px',
35
+ left: '-2px',
36
+ right: '-2px',
37
+ bottom: '-2px',
38
+ borderRadius: '23px',
39
+ background: 'vibrantPurple',
40
+ backgroundSize: '200% 200%',
41
+ animation: 'border-shine 4s linear infinite',
42
+ transition: 'background-color 0.3s ease',
43
+ zIndex: '-1',
44
+ },
45
+ _after: {
46
+ content: '\'\'',
47
+ position: 'absolute',
48
+ top: '2px',
49
+ left: '2px',
50
+ right: '2px',
51
+ bottom: '2px',
52
+ borderRadius: '999px',
53
+ backgroundColor: 'white',
54
+ zIndex: '-1',
55
+ _nextTheme: {
56
+ backgroundColor: 'background.neutral',
57
+ },
58
+ },
59
+ _hover: {
60
+ _before: {
61
+ background: 'linear-gradient(90deg, var(--mp-colors-blue-400), var(--mp-colors-blue-400), var(--mp-colors-blue-400))',
62
+ _nextTheme: {
63
+ background: 'linear-gradient(90deg, var(--mp-colors-background-brand-bold), var(--mp-colors-background-brand-bold), var(--mp-colors-background-brand-bold))',
64
+ }
65
+ }
66
+ },
67
+ _active: {
68
+ _before: {
69
+ background: 'linear-gradient(90deg, var(--mp-colors-blue-400), var(--mp-colors-blue-400), var(--mp-colors-blue-400))',
70
+ },
71
+ _after: {
72
+ background: 'blue.50',
73
+ }
74
+ },
75
+ _disabled: {
76
+ color: 'gray.400!',
77
+ cursor: 'not-allowed',
78
+ _nextTheme: {
79
+ color: 'text.placeholder!',
80
+ },
81
+ _before: {
82
+ background: 'gray.50!',
83
+ },
84
+ _after: {
85
+ background: 'gray.50!',
86
+ _nextTheme: {
87
+ bacground: '#F0F1F3!',
88
+ }
89
+ }
90
+ }
91
+ },
92
+ badge: {
93
+ display: 'flex',
94
+ backgroundColor: 'var(--mp-airene-button-badge-background)',
95
+ borderRadius: '999px',
96
+ paddingRight: '1',
97
+ paddingLeft: '0.5',
98
+ paddingY: '0.5',
99
+ height: '4',
100
+ marginLeft: '1',
101
+ '& > [data-pixel-component=MpIcon]': {
102
+ width: '3!',
103
+ height: '3!',
104
+ '& > path': {
105
+ fill: 'var(--mp-airene-button-badge-icon)',
106
+ }
107
+ },
108
+ '& > [data-pixel-component=MpText]': {
109
+ fontSize: '0.625rem!',
110
+ fontWeight: 'semiBold!',
111
+ color: 'var(--mp-airene-button-badge-text)'
112
+ }
113
+ }
114
+ },
115
+ variants: {},
116
+ compoundVariants: [],
117
+ defaultVariants: {}
118
+ })
119
+
120
+ export { aireneButtonSlotRecipe }
@@ -28,7 +28,12 @@ const autocompleteSlotRecipe = defineSlotRecipe({
28
28
  zIndex: '999',
29
29
  py: 2,
30
30
  height: '9.5',
31
- _hover: { color: 'blue.500' }
31
+ _hover: { color: 'blue.500', _nextTheme: { color: 'text.link' } },
32
+ _nextTheme: {
33
+ background: 'background.stage',
34
+ borderColor: 'border.default',
35
+ color: 'text.link',
36
+ }
32
37
  },
33
38
  emptyText: {
34
39
  px: 3,