@charcoal-ui/react 6.0.0-beta.1 → 6.0.0-rc.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 (87) hide show
  1. package/dist/components/Icon/index.d.ts +14 -1
  2. package/dist/components/Icon/index.d.ts.map +1 -1
  3. package/dist/components/Pagination/index.d.ts.map +1 -1
  4. package/dist/index.cjs +2 -2
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.css +161 -155
  7. package/dist/index.js +2 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/layered.css +161 -155
  10. package/dist/layered.css.map +1 -1
  11. package/package.json +5 -5
  12. package/src/__tests__/css-output.test.ts +1 -2
  13. package/src/__tests__/css-variables.test.ts +66 -0
  14. package/src/components/Button/__snapshots__/index.css.snap +30 -30
  15. package/src/components/Button/index.css +30 -30
  16. package/src/components/Button/index.story.tsx +18 -0
  17. package/src/components/Checkbox/CheckboxInput/index.css +10 -10
  18. package/src/components/Checkbox/__snapshots__/index.css.snap +1 -1
  19. package/src/components/Checkbox/index.css +1 -1
  20. package/src/components/Checkbox/index.story.tsx +18 -0
  21. package/src/components/Clickable/index.story.tsx +14 -0
  22. package/src/components/DropdownSelector/DropdownMenuItem/index.css +3 -3
  23. package/src/components/DropdownSelector/ListItem/__snapshots__/index.story.storyshot +2 -0
  24. package/src/components/DropdownSelector/ListItem/index.css +1 -1
  25. package/src/components/DropdownSelector/MenuItemGroup/index.css +1 -1
  26. package/src/components/DropdownSelector/Popover/index.css +2 -2
  27. package/src/components/DropdownSelector/__snapshots__/index.css.snap +6 -6
  28. package/src/components/DropdownSelector/__snapshots__/index.story.storyshot +26 -13
  29. package/src/components/DropdownSelector/index.css +6 -6
  30. package/src/components/DropdownSelector/index.story.tsx +49 -0
  31. package/src/components/FieldLabel/__snapshots__/index.css.snap +3 -3
  32. package/src/components/FieldLabel/index.css +3 -3
  33. package/src/components/HintText/__snapshots__/index.css.snap +3 -3
  34. package/src/components/HintText/__snapshots__/index.story.storyshot +4 -0
  35. package/src/components/HintText/index.css +3 -3
  36. package/src/components/HintText/index.story.tsx +12 -0
  37. package/src/components/Icon/__snapshots__/index.story.storyshot +2 -0
  38. package/src/components/Icon/index.browser.test.tsx +280 -0
  39. package/src/components/Icon/index.test.tsx +94 -0
  40. package/src/components/Icon/index.tsx +49 -4
  41. package/src/components/IconButton/__snapshots__/index.css.snap +16 -16
  42. package/src/components/IconButton/__snapshots__/index.story.storyshot +6 -0
  43. package/src/components/IconButton/index.css +16 -16
  44. package/src/components/IconButton/index.story.tsx +15 -0
  45. package/src/components/LoadingSpinner/__snapshots__/index.css.snap +7 -7
  46. package/src/components/LoadingSpinner/index.css +7 -7
  47. package/src/components/LoadingSpinner/index.story.tsx +13 -0
  48. package/src/components/Modal/Dialog/index.css +1 -1
  49. package/src/components/Modal/ModalPlumbing.css +1 -1
  50. package/src/components/Modal/__snapshots__/index.css.snap +2 -2
  51. package/src/components/Modal/__snapshots__/index.story.storyshot +12 -2
  52. package/src/components/Modal/index.css +2 -2
  53. package/src/components/Modal/index.story.tsx +20 -0
  54. package/src/components/MultiSelect/__snapshots__/index.css.snap +10 -10
  55. package/src/components/MultiSelect/__snapshots__/index.story.storyshot +32 -0
  56. package/src/components/MultiSelect/index.css +10 -10
  57. package/src/components/MultiSelect/index.story.tsx +50 -0
  58. package/src/components/MultiSelect/index.tsx +1 -1
  59. package/src/components/Pagination/Pagination.story.tsx +11 -0
  60. package/src/components/Pagination/__snapshots__/index.css.snap +12 -15
  61. package/src/components/Pagination/index.css +12 -14
  62. package/src/components/Pagination/index.tsx +2 -1
  63. package/src/components/Radio/RadioInput/index.css +10 -10
  64. package/src/components/Radio/__snapshots__/index.css.snap +1 -1
  65. package/src/components/Radio/index.css +1 -1
  66. package/src/components/Radio/index.story.tsx +40 -0
  67. package/src/components/SegmentedControl/__snapshots__/index.css.snap +4 -4
  68. package/src/components/SegmentedControl/index.css +4 -4
  69. package/src/components/SegmentedControl/index.story.tsx +20 -0
  70. package/src/components/Switch/SwitchInput/index.css +9 -9
  71. package/src/components/Switch/__snapshots__/index.css.snap +1 -1
  72. package/src/components/Switch/index.css +1 -1
  73. package/src/components/Switch/index.story.tsx +19 -0
  74. package/src/components/TagItem/__snapshots__/index.css.snap +5 -4
  75. package/src/components/TagItem/__snapshots__/index.story.storyshot +2 -0
  76. package/src/components/TagItem/index.css +5 -4
  77. package/src/components/TagItem/index.story.tsx +17 -0
  78. package/src/components/TextArea/TextArea.story.tsx +30 -0
  79. package/src/components/TextArea/__snapshots__/index.css.snap +7 -5
  80. package/src/components/TextArea/index.css +8 -5
  81. package/src/components/TextEllipsis/__snapshots__/index.css.snap +3 -0
  82. package/src/components/TextEllipsis/index.css +4 -0
  83. package/src/components/TextField/AssistiveText/index.css +2 -2
  84. package/src/components/TextField/TextField.story.tsx +30 -0
  85. package/src/components/TextField/__snapshots__/TextField.story.storyshot +2 -0
  86. package/src/components/TextField/__snapshots__/index.css.snap +6 -6
  87. package/src/components/TextField/index.css +6 -6
@@ -24,8 +24,8 @@
24
24
  font-size: 14px;
25
25
  line-height: 22px;
26
26
  font-weight: bold;
27
- color: var(--charcoal-text2);
28
- background-color: var(--charcoal-surface3);
27
+ color: var(--charcoal-color-text-default);
28
+ background-color: var(--charcoal-color-container-secondary-default-a);
29
29
  transition:
30
30
  0.2s color,
31
31
  0.2s background-color,
@@ -46,86 +46,86 @@
46
46
 
47
47
  &:not(:disabled):not([aria-disabled]):hover,
48
48
  &[aria-disabled='false']:hover {
49
- color: var(--charcoal-text2-hover);
50
- background-color: var(--charcoal-surface3-hover);
49
+ color: var(--charcoal-color-text-hover);
50
+ background-color: var(--charcoal-color-container-secondary-hover-a);
51
51
  }
52
52
 
53
53
  &:not(:disabled):not([aria-disabled]):active,
54
54
  &[aria-disabled='false']:active,
55
55
  &[data-active='true'] {
56
- color: var(--charcoal-text2-press);
57
- background-color: var(--charcoal-surface3-press);
56
+ color: var(--charcoal-color-text-press);
57
+ background-color: var(--charcoal-color-container-secondary-press-a);
58
58
  }
59
59
 
60
60
  &[data-variant='Primary'] {
61
- color: var(--charcoal-text5);
62
- background-color: var(--charcoal-brand);
61
+ color: var(--charcoal-color-text-on-primary-default);
62
+ background-color: var(--charcoal-color-container-primary-default);
63
63
 
64
64
  &:hover:not(:disabled):not([aria-disabled]),
65
65
  &:hover[aria-disabled='false'] {
66
- color: var(--charcoal-text5-hover);
67
- background-color: var(--charcoal-brand-hover);
66
+ color: var(--charcoal-color-text-on-primary-hover);
67
+ background-color: var(--charcoal-color-container-primary-hover);
68
68
  }
69
69
 
70
70
  &:active:not(:disabled):not([aria-disabled]),
71
71
  &:active[aria-disabled='false'],
72
72
  &[data-active='true'] {
73
- color: var(--charcoal-text5-press);
74
- background-color: var(--charcoal-brand-press);
73
+ color: var(--charcoal-color-text-on-primary-press);
74
+ background-color: var(--charcoal-color-container-primary-press);
75
75
  }
76
76
  }
77
77
 
78
78
  &[data-variant='Overlay'] {
79
- color: var(--charcoal-text5);
80
- background-color: var(--charcoal-surface4);
79
+ color: var(--charcoal-color-text-on-on-img-default);
80
+ background-color: var(--charcoal-color-container-on-img-default);
81
81
 
82
82
  &:hover:not(:disabled):not([aria-disabled]),
83
83
  &:hover[aria-disabled='false'] {
84
- color: var(--charcoal-text5-hover);
85
- background-color: var(--charcoal-surface4-hover);
84
+ color: var(--charcoal-color-text-on-on-img-hover);
85
+ background-color: var(--charcoal-color-container-on-img-hover);
86
86
  }
87
87
 
88
88
  &:active:not(:disabled):not([aria-disabled]),
89
89
  &:active[aria-disabled='false'],
90
90
  &[data-active='true'] {
91
- color: var(--charcoal-text5-press);
92
- background-color: var(--charcoal-surface4-press);
91
+ color: var(--charcoal-color-text-on-on-img-press);
92
+ background-color: var(--charcoal-color-container-on-img-press);
93
93
  }
94
94
  }
95
95
 
96
96
  &[data-variant='Navigation'] {
97
- color: var(--charcoal-text5);
98
- background-color: var(--charcoal-surface6);
97
+ color: var(--charcoal-color-text-on-hud-default);
98
+ background-color: var(--charcoal-color-container-hud-default);
99
99
 
100
100
  &:hover:not(:disabled):not([aria-disabled]),
101
101
  &:hover[aria-disabled='false'] {
102
- color: var(--charcoal-text5-hover);
103
- background-color: var(--charcoal-surface6-hover);
102
+ color: var(--charcoal-color-text-on-hud-hover);
103
+ background-color: var(--charcoal-color-container-hud-hover);
104
104
  }
105
105
 
106
106
  &:active:not(:disabled):not([aria-disabled]),
107
107
  &:active[aria-disabled='false'],
108
108
  &[data-active='true'] {
109
- color: var(--charcoal-text5-press);
110
- background-color: var(--charcoal-surface6-press);
109
+ color: var(--charcoal-color-text-on-hud-press);
110
+ background-color: var(--charcoal-color-container-hud-press);
111
111
  }
112
112
  }
113
113
 
114
114
  &[data-variant='Danger'] {
115
- color: var(--charcoal-text5);
116
- background-color: var(--charcoal-assertive);
115
+ color: var(--charcoal-color-text-on-negative-default);
116
+ background-color: var(--charcoal-color-container-negative-default);
117
117
 
118
118
  &:hover:not(:disabled):not([aria-disabled]),
119
119
  &:hover[aria-disabled='false'] {
120
- color: var(--charcoal-text5-hover);
121
- background-color: var(--charcoal-assertive-hover);
120
+ color: var(--charcoal-color-text-on-negative-hover);
121
+ background-color: var(--charcoal-color-container-negative-hover);
122
122
  }
123
123
 
124
124
  &:active:not(:disabled):not([aria-disabled]),
125
125
  &:active[aria-disabled='false'],
126
126
  &[data-active='true'] {
127
- color: var(--charcoal-text5-press);
128
- background-color: var(--charcoal-assertive-press);
127
+ color: var(--charcoal-color-text-on-negative-press);
128
+ background-color: var(--charcoal-color-container-negative-press);
129
129
  }
130
130
  }
131
131
 
@@ -26,6 +26,24 @@ export const Danger: StoryObj<typeof Button> = {
26
26
  render: () => <Button variant="Danger">Danger</Button>,
27
27
  }
28
28
 
29
+ export const TokenV2: StoryObj<typeof Button> = {
30
+ parameters: {
31
+ tokenVersion: 'v2',
32
+ },
33
+ render: () => (
34
+ <div style={{ display: 'flex', flexWrap: 'wrap', gap: 8 }}>
35
+ <Button>Default</Button>
36
+ <Button variant="Primary">Primary</Button>
37
+ <Button variant="Navigation">Navigation</Button>
38
+ <Button variant="Overlay">Overlay</Button>
39
+ <Button variant="Danger">Danger</Button>
40
+ <Button isActive>Active</Button>
41
+ <Button disabled>Disabled</Button>
42
+ <Button size="S">Small</Button>
43
+ </div>
44
+ ),
45
+ }
46
+
29
47
  export const Small: StoryObj<typeof Button> = {
30
48
  render: () => <Button size="S">Small</Button>,
31
49
  }
@@ -20,7 +20,7 @@
20
20
  }
21
21
 
22
22
  .charcoal-checkbox-input:checked {
23
- background-color: var(--charcoal-brand);
23
+ background-color: var(--charcoal-color-container-primary-default);
24
24
  }
25
25
 
26
26
  .charcoal-checkbox-input:checked::after {
@@ -38,7 +38,7 @@
38
38
  .charcoal-checkbox-input:not(:checked) {
39
39
  border-width: 2px;
40
40
  border-style: solid;
41
- border-color: var(--charcoal-text4);
41
+ border-color: var(--charcoal-color-border-default);
42
42
  }
43
43
 
44
44
  .charcoal-checkbox-input:not(:disabled):focus {
@@ -53,10 +53,10 @@
53
53
  }
54
54
 
55
55
  .charcoal-checkbox-input:checked:not(:disabled):hover {
56
- background-color: var(--charcoal-brand-hover);
56
+ background-color: var(--charcoal-color-container-primary-hover);
57
57
  }
58
58
  .charcoal-checkbox-input:checked:not(:disabled):active {
59
- background-color: var(--charcoal-brand-press);
59
+ background-color: var(--charcoal-color-container-primary-press);
60
60
  }
61
61
 
62
62
  .charcoal-checkbox-input[aria-invalid='true'],
@@ -66,19 +66,19 @@
66
66
 
67
67
  .charcoal-checkbox-input[data-rounded='true'] {
68
68
  border-radius: 10px;
69
- background-color: var(--charcoal-surface3);
69
+ background-color: var(--charcoal-color-container-secondary-default);
70
70
  border: 2px solid transparent;
71
71
  }
72
72
 
73
73
  .charcoal-checkbox-input[data-rounded='true']:checked {
74
- background-color: var(--charcoal-brand);
74
+ background-color: var(--charcoal-color-container-primary-default);
75
75
  }
76
76
 
77
77
  .charcoal-checkbox-input[data-rounded='true']:not(:disabled):hover {
78
- background-color: var(--charcoal-surface3-hover);
78
+ background-color: var(--charcoal-color-container-secondary-hover);
79
79
  }
80
80
  .charcoal-checkbox-input[data-rounded='true']:not(:disabled):active {
81
- background-color: var(--charcoal-surface3-press);
81
+ background-color: var(--charcoal-color-container-secondary-press);
82
82
  }
83
83
 
84
84
  .charcoal-checkbox-input[data-rounded='true']:not(:disabled):focus-visible {
@@ -86,10 +86,10 @@
86
86
  }
87
87
 
88
88
  .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):hover {
89
- background-color: var(--charcoal-brand-hover);
89
+ background-color: var(--charcoal-color-container-primary-hover);
90
90
  }
91
91
  .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):active {
92
- background-color: var(--charcoal-brand-press);
92
+ background-color: var(--charcoal-color-container-primary-press);
93
93
  }
94
94
 
95
95
  .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true'],
@@ -16,7 +16,7 @@
16
16
 
17
17
  .charcoal-checkbox__label_div {
18
18
  flex: 1;
19
- color: var(--charcoal-text2);
19
+ color: var(--charcoal-color-text-default);
20
20
  font-size: 14px;
21
21
  line-height: 20px;
22
22
  }
@@ -16,7 +16,7 @@
16
16
 
17
17
  .charcoal-checkbox__label_div {
18
18
  flex: 1;
19
- color: var(--charcoal-text2);
19
+ color: var(--charcoal-color-text-default);
20
20
  font-size: 14px;
21
21
  line-height: 20px;
22
22
  }
@@ -71,3 +71,21 @@ export const Invalid: StoryObj<typeof Checkbox> = {
71
71
  )
72
72
  },
73
73
  }
74
+
75
+ export const TokenV2: StoryObj<typeof Checkbox> = {
76
+ parameters: {
77
+ tokenVersion: 'v2',
78
+ },
79
+ render: () => {
80
+ return (
81
+ <div style={{ display: 'grid', gap: 16 }}>
82
+ <Checkbox>Default</Checkbox>
83
+ <Checkbox checked>Checked</Checkbox>
84
+ <Checkbox invalid>Invalid</Checkbox>
85
+ <Checkbox checked disabled>
86
+ Disabled
87
+ </Checkbox>
88
+ </div>
89
+ )
90
+ },
91
+ }
@@ -18,3 +18,17 @@ export const Link: StoryObj = {
18
18
  </Clickable>
19
19
  ),
20
20
  }
21
+
22
+ export const TokenV2: StoryObj = {
23
+ parameters: {
24
+ tokenVersion: 'v2',
25
+ },
26
+ render: () => (
27
+ <div style={{ display: 'flex', gap: 16 }}>
28
+ <Clickable onClick={action('click')}>button</Clickable>
29
+ <Clickable component="a" href="#" onClick={action('click')}>
30
+ link
31
+ </Clickable>
32
+ </div>
33
+ ),
34
+ }
@@ -1,7 +1,7 @@
1
1
  .charcoal-dropdown-selector-menu-item {
2
2
  font-size: 14px;
3
3
  line-height: 22px;
4
- color: var(--charcoal-text2);
4
+ color: var(--charcoal-color-text-secondary-default);
5
5
  padding: 9px 0;
6
6
 
7
7
  display: flex;
@@ -15,7 +15,7 @@
15
15
  }
16
16
 
17
17
  .charcoal-dropdown-selector-menu-item-icon {
18
- color: var(--charcoal-text2);
18
+ color: var(--charcoal-color-text-secondary-default);
19
19
  padding-right: 4px;
20
20
  }
21
21
 
@@ -27,7 +27,7 @@
27
27
  .charcoal-dropdown-selector-menu-secondary {
28
28
  font-size: 12px;
29
29
  line-height: 20px;
30
- color: var(--charcoal-text3);
30
+ color: var(--charcoal-color-text-tertiary-default);
31
31
  padding-bottom: 9px;
32
32
 
33
33
  display: flex;
@@ -14,7 +14,9 @@ exports[`Storybook Tests > react/internals/ListItem > Basic 1`] = `
14
14
  class="charcoal-list-item"
15
15
  >
16
16
  <pixiv-icon
17
+ class="charcoal-icon"
17
18
  name="16/Add"
19
+ style="--charcoal-icon-size: 16px;"
18
20
  />
19
21
  Add
20
22
  </li>
@@ -15,7 +15,7 @@
15
15
  .charcoal-list-item:not([aria-disabled='true']):hover,
16
16
  .charcoal-list-item:not([aria-disabled='true']):focus,
17
17
  .charcoal-list-item:not([aria-disabled='true']):focus-within {
18
- background-color: var(--charcoal-surface3);
18
+ background-color: var(--charcoal-color-container-secondary-default);
19
19
  }
20
20
 
21
21
  .charcoal-list-item[aria-disabled='true'] {
@@ -4,7 +4,7 @@
4
4
 
5
5
  .charcoal-menu-item-group > span {
6
6
  display: block;
7
- color: var(--charcoal-text3);
7
+ color: var(--charcoal-color-text-tertiary-default);
8
8
  font-size: 12px;
9
9
  font-weight: bold;
10
10
  padding: 12px 0 8px 16px;
@@ -3,8 +3,8 @@
3
3
  list-style: none;
4
4
  overflow: auto;
5
5
  max-height: inherit;
6
- background-color: var(--charcoal-background1);
7
- border: solid 1px var(--charcoal-border-default);
6
+ background-color: var(--charcoal-color-background-default);
7
+ border: solid 1px var(--charcoal-color-border-secondary);
8
8
  border-radius: 8px;
9
9
  padding-top: 8px;
10
10
  padding-bottom: 8px;
@@ -23,7 +23,7 @@
23
23
  gap: 4px;
24
24
  padding-right: 8px;
25
25
  padding-left: 8px;
26
- background-color: var(--charcoal-surface3);
26
+ background-color: var(--charcoal-color-container-secondary-default-a);
27
27
  border-radius: 4px;
28
28
  transition: 0.2s box-shadow,
29
29
  0.2s background-color;
@@ -43,11 +43,11 @@
43
43
  }
44
44
 
45
45
  .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'], .charcoal-dropdown-selector-button:not(:disabled):active {
46
- background-color: var(--charcoal-surface3-press);
46
+ background-color: var(--charcoal-color-container-secondary-press-a);
47
47
  }
48
48
 
49
49
  .charcoal-dropdown-selector-button:not(:disabled):hover {
50
- background-color: var(--charcoal-surface3-hover);
50
+ background-color: var(--charcoal-color-container-secondary-hover-a);
51
51
  }
52
52
 
53
53
  .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
@@ -63,17 +63,17 @@
63
63
  font-size: 14px;
64
64
  line-height: 22px;
65
65
  display: flow-root;
66
- color: var(--charcoal-text2);
66
+ color: var(--charcoal-color-text-default);
67
67
  overflow: hidden;
68
68
  text-overflow: ellipsis;
69
69
  white-space: nowrap;
70
70
  }
71
71
 
72
72
  .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
73
- color: var(--charcoal-text3);
73
+ color: var(--charcoal-color-text-placeholder-default);
74
74
  }
75
75
 
76
76
  .charcoal-ui-dropdown-selector-icon {
77
- color: var(--charcoal-text2);
77
+ color: var(--charcoal-color-icon-secondary-default);
78
78
  }
79
79
 
@@ -65,8 +65,9 @@ exports[`Storybook Tests > react/DropdownSelector > AssistiveText 1`] = `
65
65
  Option 1
66
66
  </span>
67
67
  <pixiv-icon
68
- class="charcoal-ui-dropdown-selector-icon"
68
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
69
69
  name="16/Menu"
70
+ style="--charcoal-icon-size: 16px;"
70
71
  />
71
72
  </button>
72
73
  <div
@@ -150,8 +151,9 @@ exports[`Storybook Tests > react/DropdownSelector > CustomChildren 1`] = `
150
151
  </div>
151
152
  </span>
152
153
  <pixiv-icon
153
- class="charcoal-ui-dropdown-selector-icon"
154
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
154
155
  name="16/Menu"
156
+ style="--charcoal-icon-size: 16px;"
155
157
  />
156
158
  </button>
157
159
  </div>
@@ -220,8 +222,9 @@ exports[`Storybook Tests > react/DropdownSelector > Default 1`] = `
220
222
  data-placeholder="false"
221
223
  />
222
224
  <pixiv-icon
223
- class="charcoal-ui-dropdown-selector-icon"
225
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
224
226
  name="16/Menu"
227
+ style="--charcoal-icon-size: 16px;"
225
228
  />
226
229
  </button>
227
230
  </div>
@@ -296,8 +299,9 @@ exports[`Storybook Tests > react/DropdownSelector > Disabled 1`] = `
296
299
  Option 1
297
300
  </span>
298
301
  <pixiv-icon
299
- class="charcoal-ui-dropdown-selector-icon"
302
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
300
303
  name="16/Menu"
304
+ style="--charcoal-icon-size: 16px;"
301
305
  />
302
306
  </button>
303
307
  </div>
@@ -381,8 +385,9 @@ exports[`Storybook Tests > react/DropdownSelector > DisabledItem 1`] = `
381
385
  Option 2 (disabled)
382
386
  </span>
383
387
  <pixiv-icon
384
- class="charcoal-ui-dropdown-selector-icon"
388
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
385
389
  name="16/Menu"
390
+ style="--charcoal-icon-size: 16px;"
386
391
  />
387
392
  </button>
388
393
  </div>
@@ -456,8 +461,9 @@ exports[`Storybook Tests > react/DropdownSelector > InFormTag 1`] = `
456
461
  Option 1
457
462
  </span>
458
463
  <pixiv-icon
459
- class="charcoal-ui-dropdown-selector-icon"
464
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
460
465
  name="16/Menu"
466
+ style="--charcoal-icon-size: 16px;"
461
467
  />
462
468
  </button>
463
469
  </div>
@@ -555,8 +561,9 @@ exports[`Storybook Tests > react/DropdownSelector > Invalid 1`] = `
555
561
  Option 1
556
562
  </span>
557
563
  <pixiv-icon
558
- class="charcoal-ui-dropdown-selector-icon"
564
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
559
565
  name="16/Menu"
566
+ style="--charcoal-icon-size: 16px;"
560
567
  />
561
568
  </button>
562
569
  </div>
@@ -631,8 +638,9 @@ exports[`Storybook Tests > react/DropdownSelector > InvalidAssistiveText 1`] = `
631
638
  Option 1
632
639
  </span>
633
640
  <pixiv-icon
634
- class="charcoal-ui-dropdown-selector-icon"
641
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
635
642
  name="16/Menu"
643
+ style="--charcoal-icon-size: 16px;"
636
644
  />
637
645
  </button>
638
646
  <div
@@ -711,8 +719,9 @@ exports[`Storybook Tests > react/DropdownSelector > Label 1`] = `
711
719
  Option 1
712
720
  </span>
713
721
  <pixiv-icon
714
- class="charcoal-ui-dropdown-selector-icon"
722
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
715
723
  name="16/Menu"
724
+ style="--charcoal-icon-size: 16px;"
716
725
  />
717
726
  </button>
718
727
  </div>
@@ -785,8 +794,9 @@ exports[`Storybook Tests > react/DropdownSelector > LongNames 1`] = `
785
794
  Lorem ipsum dolor sit amet, consectetur adipisicing elit,
786
795
  </span>
787
796
  <pixiv-icon
788
- class="charcoal-ui-dropdown-selector-icon"
797
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
789
798
  name="16/Menu"
799
+ style="--charcoal-icon-size: 16px;"
790
800
  />
791
801
  </button>
792
802
  </div>
@@ -863,8 +873,9 @@ exports[`Storybook Tests > react/DropdownSelector > RequiredText 1`] = `
863
873
  Option 1
864
874
  </span>
865
875
  <pixiv-icon
866
- class="charcoal-ui-dropdown-selector-icon"
876
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
867
877
  name="16/Menu"
878
+ style="--charcoal-icon-size: 16px;"
868
879
  />
869
880
  </button>
870
881
  </div>
@@ -952,8 +963,9 @@ exports[`Storybook Tests > react/DropdownSelector > Section 1`] = `
952
963
  Banana
953
964
  </span>
954
965
  <pixiv-icon
955
- class="charcoal-ui-dropdown-selector-icon"
966
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
956
967
  name="16/Menu"
968
+ style="--charcoal-icon-size: 16px;"
957
969
  />
958
970
  </button>
959
971
  </div>
@@ -1027,8 +1039,9 @@ exports[`Storybook Tests > react/DropdownSelector > SubLabel 1`] = `
1027
1039
  Option 1
1028
1040
  </span>
1029
1041
  <pixiv-icon
1030
- class="charcoal-ui-dropdown-selector-icon"
1042
+ class="charcoal-icon charcoal-ui-dropdown-selector-icon"
1031
1043
  name="16/Menu"
1044
+ style="--charcoal-icon-size: 16px;"
1032
1045
  />
1033
1046
  </button>
1034
1047
  </div>
@@ -25,7 +25,7 @@
25
25
 
26
26
  padding-right: 8px;
27
27
  padding-left: 8px;
28
- background-color: var(--charcoal-surface3);
28
+ background-color: var(--charcoal-color-container-secondary-default-a);
29
29
  border-radius: 4px;
30
30
 
31
31
  transition:
@@ -48,11 +48,11 @@
48
48
 
49
49
  &[data-active='true'],
50
50
  &:active {
51
- background-color: var(--charcoal-surface3-press);
51
+ background-color: var(--charcoal-color-container-secondary-press-a);
52
52
  }
53
53
 
54
54
  &:hover {
55
- background-color: var(--charcoal-surface3-hover);
55
+ background-color: var(--charcoal-color-container-secondary-hover-a);
56
56
  }
57
57
 
58
58
  &:focus:not(:focus-visible) {
@@ -71,16 +71,16 @@
71
71
  font-size: 14px;
72
72
  line-height: 22px;
73
73
  display: flow-root;
74
- color: var(--charcoal-text2);
74
+ color: var(--charcoal-color-text-default);
75
75
  overflow: hidden;
76
76
  text-overflow: ellipsis;
77
77
  white-space: nowrap;
78
78
 
79
79
  &[data-placeholder='true'] {
80
- color: var(--charcoal-text3);
80
+ color: var(--charcoal-color-text-placeholder-default);
81
81
  }
82
82
  }
83
83
 
84
84
  .charcoal-ui-dropdown-selector-icon {
85
- color: var(--charcoal-text2);
85
+ color: var(--charcoal-color-icon-secondary-default);
86
86
  }
@@ -454,6 +454,55 @@ export const WithSeconday: StoryObj<typeof DropdownSelector> = {
454
454
  },
455
455
  }
456
456
 
457
+ export const TokenV2: StoryObj<typeof DropdownSelector> = {
458
+ parameters: {
459
+ tokenVersion: 'v2',
460
+ },
461
+ render: function Render(props) {
462
+ const [selected, setSelected] = useState('option-3')
463
+ const [invalidSelected, setInvalidSelected] = useState('option-1')
464
+
465
+ return (
466
+ <div style={{ display: 'grid', gap: 24, width: 288 }}>
467
+ <DropdownSelector
468
+ {...props}
469
+ value={selected}
470
+ onChange={setSelected}
471
+ label="Label"
472
+ showLabel
473
+ required
474
+ requiredText="required"
475
+ subLabel="SubLabel"
476
+ assistiveText="assistiveText"
477
+ >
478
+ <DropdownMenuItem value="option-1">Option 1</DropdownMenuItem>
479
+ <DropdownMenuItem value="option-2" disabled>
480
+ Option 2 (disabled)
481
+ </DropdownMenuItem>
482
+ <DropdownMenuItem
483
+ value="option-3"
484
+ secondary={<span>Option 3 Secondary</span>}
485
+ >
486
+ Option 3
487
+ </DropdownMenuItem>
488
+ </DropdownSelector>
489
+ <DropdownSelector
490
+ {...props}
491
+ value={invalidSelected}
492
+ onChange={setInvalidSelected}
493
+ label="Invalid"
494
+ invalid
495
+ assistiveText="エラーメッセージ"
496
+ >
497
+ <DropdownMenuItem value="option-1">Option 1</DropdownMenuItem>
498
+ <DropdownMenuItem value="option-2">Option 2</DropdownMenuItem>
499
+ <DropdownMenuItem value="option-3">Option 3</DropdownMenuItem>
500
+ </DropdownSelector>
501
+ </div>
502
+ )
503
+ },
504
+ }
505
+
457
506
  export const WithRef: StoryObj<typeof DropdownSelector> = {
458
507
  render: function Render(props) {
459
508
  const [selected, setSelected] = useState('1')
@@ -3,21 +3,21 @@
3
3
  line-height: 22px;
4
4
  font-weight: bold;
5
5
  display: flow-root;
6
- color: var(--charcoal-text1);
6
+ color: var(--charcoal-color-text-default);
7
7
  }
8
8
 
9
9
  .charcoal-field-label-required-text {
10
10
  font-size: 14px;
11
11
  line-height: 22px;
12
12
  display: flow-root;
13
- color: var(--charcoal-text2);
13
+ color: var(--charcoal-color-text-secondary-default);
14
14
  }
15
15
 
16
16
  .charcoal-field-label-sub-label {
17
17
  font-size: 14px;
18
18
  line-height: 22px;
19
19
  display: flow-root;
20
- color: var(--charcoal-text3);
20
+ color: var(--charcoal-color-text-tertiary-default);
21
21
  transition: 0.2s color,
22
22
  0.2s box-shadow;
23
23
  }