@charcoal-ui/react 6.0.0-rc.9 → 6.0.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 (265) hide show
  1. package/dist/_lib/compat.d.ts.map +1 -1
  2. package/dist/_lib/createDivComponent.cjs +0 -1
  3. package/dist/_lib/createDivComponent.cjs.map +1 -1
  4. package/dist/_lib/createDivComponent.d.ts +1 -1
  5. package/dist/_lib/createDivComponent.js.map +1 -1
  6. package/dist/_lib/index.cjs.map +1 -1
  7. package/dist/_lib/index.js.map +1 -1
  8. package/dist/_lib/useClassNames.cjs +0 -1
  9. package/dist/_lib/useClassNames.cjs.map +1 -1
  10. package/dist/_lib/useClassNames.js.map +1 -1
  11. package/dist/_lib/useForwardedRef.cjs +1 -1
  12. package/dist/_lib/useForwardedRef.cjs.map +1 -1
  13. package/dist/_lib/useForwardedRef.js.map +1 -1
  14. package/dist/_lib/useIsomorphicLayoutEffect.cjs +0 -1
  15. package/dist/_lib/useIsomorphicLayoutEffect.cjs.map +1 -1
  16. package/dist/_lib/useIsomorphicLayoutEffect.d.ts +2 -2
  17. package/dist/_lib/useIsomorphicLayoutEffect.d.ts.map +1 -1
  18. package/dist/_lib/useIsomorphicLayoutEffect.js.map +1 -1
  19. package/dist/components/Button/index.d.ts +1 -1
  20. package/dist/components/Button/index.d.ts.map +1 -1
  21. package/dist/components/Button/index2.cjs +1 -1
  22. package/dist/components/Button/index2.cjs.map +1 -1
  23. package/dist/components/Button/index2.js.map +1 -1
  24. package/dist/components/Carousel/CarouselItem.cjs +0 -1
  25. package/dist/components/Carousel/CarouselItem.cjs.map +1 -1
  26. package/dist/components/Carousel/CarouselItem.d.ts.map +1 -1
  27. package/dist/components/Carousel/CarouselItem.js.map +1 -1
  28. package/dist/components/Carousel/carouselStore.cjs.map +1 -1
  29. package/dist/components/Carousel/carouselStore.js.map +1 -1
  30. package/dist/components/Carousel/index.d.ts +1 -1
  31. package/dist/components/Carousel/index.d.ts.map +1 -1
  32. package/dist/components/Carousel/index2.cjs +0 -1
  33. package/dist/components/Carousel/index2.cjs.map +1 -1
  34. package/dist/components/Carousel/index2.js.map +1 -1
  35. package/dist/components/Carousel/intersectionObserver.cjs.map +1 -1
  36. package/dist/components/Carousel/intersectionObserver.js.map +1 -1
  37. package/dist/components/Carousel/resizeObserver.cjs.map +1 -1
  38. package/dist/components/Carousel/resizeObserver.js.map +1 -1
  39. package/dist/components/Carousel/store.cjs.map +1 -1
  40. package/dist/components/Carousel/store.js.map +1 -1
  41. package/dist/components/Carousel/useCarouselScroller.cjs +0 -1
  42. package/dist/components/Carousel/useCarouselScroller.cjs.map +1 -1
  43. package/dist/components/Carousel/useCarouselScroller.js.map +1 -1
  44. package/dist/components/Checkbox/CheckboxInput/index.d.ts.map +1 -1
  45. package/dist/components/Checkbox/CheckboxInput/index2.cjs +0 -1
  46. package/dist/components/Checkbox/CheckboxInput/index2.cjs.map +1 -1
  47. package/dist/components/Checkbox/CheckboxInput/index2.js.map +1 -1
  48. package/dist/components/Checkbox/CheckboxWithLabel.cjs +1 -1
  49. package/dist/components/Checkbox/CheckboxWithLabel.cjs.map +1 -1
  50. package/dist/components/Checkbox/CheckboxWithLabel.d.ts +2 -2
  51. package/dist/components/Checkbox/CheckboxWithLabel.d.ts.map +1 -1
  52. package/dist/components/Checkbox/CheckboxWithLabel.js.map +1 -1
  53. package/dist/components/Checkbox/index.d.ts.map +1 -1
  54. package/dist/components/Checkbox/index2.cjs +0 -1
  55. package/dist/components/Checkbox/index2.cjs.map +1 -1
  56. package/dist/components/Checkbox/index2.js.map +1 -1
  57. package/dist/components/Clickable/index.d.ts +1 -1
  58. package/dist/components/Clickable/index.d.ts.map +1 -1
  59. package/dist/components/Clickable/index2.cjs +1 -1
  60. package/dist/components/Clickable/index2.cjs.map +1 -1
  61. package/dist/components/Clickable/index2.js.map +1 -1
  62. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs +0 -1
  63. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs.map +1 -1
  64. package/dist/components/DropdownSelector/DropdownMenuItem/index2.js.map +1 -1
  65. package/dist/components/DropdownSelector/DropdownPopover.cjs +0 -1
  66. package/dist/components/DropdownSelector/DropdownPopover.cjs.map +1 -1
  67. package/dist/components/DropdownSelector/DropdownPopover.js.map +1 -1
  68. package/dist/components/DropdownSelector/ListItem/index.d.ts +1 -1
  69. package/dist/components/DropdownSelector/ListItem/index.d.ts.map +1 -1
  70. package/dist/components/DropdownSelector/ListItem/index2.cjs +0 -1
  71. package/dist/components/DropdownSelector/ListItem/index2.cjs.map +1 -1
  72. package/dist/components/DropdownSelector/ListItem/index2.js.map +1 -1
  73. package/dist/components/DropdownSelector/MenuItem/index.cjs +29 -2
  74. package/dist/components/DropdownSelector/MenuItem/index.cjs.map +1 -1
  75. package/dist/components/DropdownSelector/MenuItem/index.d.ts.map +1 -1
  76. package/dist/components/DropdownSelector/MenuItem/index.js +30 -2
  77. package/dist/components/DropdownSelector/MenuItem/index.js.map +1 -1
  78. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs.map +1 -1
  79. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js.map +1 -1
  80. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs +0 -1
  81. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs.map +1 -1
  82. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js.map +1 -1
  83. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs +0 -1
  84. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs.map +1 -1
  85. package/dist/components/DropdownSelector/MenuItemGroup/index2.js.map +1 -1
  86. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs +0 -1
  87. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs.map +1 -1
  88. package/dist/components/DropdownSelector/MenuList/MenuListContext.js.map +1 -1
  89. package/dist/components/DropdownSelector/MenuList/index2.cjs +0 -1
  90. package/dist/components/DropdownSelector/MenuList/index2.cjs.map +1 -1
  91. package/dist/components/DropdownSelector/MenuList/index2.js.map +1 -1
  92. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs +1 -1
  93. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs.map +1 -1
  94. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js.map +1 -1
  95. package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -1
  96. package/dist/components/DropdownSelector/Popover/index2.cjs +18 -1
  97. package/dist/components/DropdownSelector/Popover/index2.cjs.map +1 -1
  98. package/dist/components/DropdownSelector/Popover/index2.js +19 -1
  99. package/dist/components/DropdownSelector/Popover/index2.js.map +1 -1
  100. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs +0 -1
  101. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs.map +1 -1
  102. package/dist/components/DropdownSelector/Popover/usePreventScroll.js.map +1 -1
  103. package/dist/components/DropdownSelector/index.d.ts.map +1 -1
  104. package/dist/components/DropdownSelector/index2.cjs +27 -10
  105. package/dist/components/DropdownSelector/index2.cjs.map +1 -1
  106. package/dist/components/DropdownSelector/index2.js +26 -9
  107. package/dist/components/DropdownSelector/index2.js.map +1 -1
  108. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs +1 -1
  109. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs.map +1 -1
  110. package/dist/components/DropdownSelector/utils/findPreviewRecursive.js.map +1 -1
  111. package/dist/components/FieldLabel/index.d.ts.map +1 -1
  112. package/dist/components/FieldLabel/index2.cjs +1 -1
  113. package/dist/components/FieldLabel/index2.cjs.map +1 -1
  114. package/dist/components/FieldLabel/index2.js.map +1 -1
  115. package/dist/components/HintText/index2.cjs +0 -1
  116. package/dist/components/HintText/index2.cjs.map +1 -1
  117. package/dist/components/HintText/index2.js.map +1 -1
  118. package/dist/components/Icon/index.cjs +1 -1
  119. package/dist/components/Icon/index.cjs.map +1 -1
  120. package/dist/components/Icon/index.d.ts.map +1 -1
  121. package/dist/components/Icon/index.js.map +1 -1
  122. package/dist/components/IconButton/index.d.ts +1 -1
  123. package/dist/components/IconButton/index.d.ts.map +1 -1
  124. package/dist/components/IconButton/index2.cjs +1 -1
  125. package/dist/components/IconButton/index2.cjs.map +1 -1
  126. package/dist/components/IconButton/index2.js.map +1 -1
  127. package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
  128. package/dist/components/LoadingSpinner/index2.cjs +0 -1
  129. package/dist/components/LoadingSpinner/index2.cjs.map +1 -1
  130. package/dist/components/LoadingSpinner/index2.js.map +1 -1
  131. package/dist/components/Modal/Dialog/index2.cjs +1 -1
  132. package/dist/components/Modal/Dialog/index2.cjs.map +1 -1
  133. package/dist/components/Modal/Dialog/index2.js.map +1 -1
  134. package/dist/components/Modal/ModalBackgroundContext.cjs +1 -1
  135. package/dist/components/Modal/ModalBackgroundContext.cjs.map +1 -1
  136. package/dist/components/Modal/ModalBackgroundContext.js.map +1 -1
  137. package/dist/components/Modal/ModalPlumbing.d.ts +3 -3
  138. package/dist/components/Modal/ModalPlumbing2.cjs +0 -1
  139. package/dist/components/Modal/ModalPlumbing2.cjs.map +1 -1
  140. package/dist/components/Modal/ModalPlumbing2.js.map +1 -1
  141. package/dist/components/Modal/index.d.ts.map +1 -1
  142. package/dist/components/Modal/index2.cjs +1 -1
  143. package/dist/components/Modal/index2.cjs.map +1 -1
  144. package/dist/components/Modal/index2.js.map +1 -1
  145. package/dist/components/Modal/useCustomModalOverlay.cjs +1 -1
  146. package/dist/components/Modal/useCustomModalOverlay.cjs.map +1 -1
  147. package/dist/components/Modal/useCustomModalOverlay.js.map +1 -1
  148. package/dist/components/Modal/useTransitionPresence.cjs +1 -3
  149. package/dist/components/Modal/useTransitionPresence.cjs.map +1 -1
  150. package/dist/components/Modal/useTransitionPresence.js +1 -2
  151. package/dist/components/Modal/useTransitionPresence.js.map +1 -1
  152. package/dist/components/MultiSelect/context.cjs +0 -1
  153. package/dist/components/MultiSelect/context.cjs.map +1 -1
  154. package/dist/components/MultiSelect/context.js.map +1 -1
  155. package/dist/components/MultiSelect/index.d.ts +1 -1
  156. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  157. package/dist/components/MultiSelect/index2.cjs +2 -2
  158. package/dist/components/MultiSelect/index2.cjs.map +1 -1
  159. package/dist/components/MultiSelect/index2.js.map +1 -1
  160. package/dist/components/Pagination/PaginationContext.cjs +0 -1
  161. package/dist/components/Pagination/PaginationContext.cjs.map +1 -1
  162. package/dist/components/Pagination/PaginationContext.js.map +1 -1
  163. package/dist/components/Pagination/helper.cjs.map +1 -1
  164. package/dist/components/Pagination/helper.js.map +1 -1
  165. package/dist/components/Pagination/index2.cjs +26 -135
  166. package/dist/components/Pagination/index2.cjs.map +1 -1
  167. package/dist/components/Pagination/index2.js +86 -182
  168. package/dist/components/Pagination/index2.js.map +1 -1
  169. package/dist/components/Radio/RadioGroup/index2.cjs +1 -1
  170. package/dist/components/Radio/RadioGroup/index2.cjs.map +1 -1
  171. package/dist/components/Radio/RadioGroup/index2.js.map +1 -1
  172. package/dist/components/Radio/RadioGroupContext.cjs.map +1 -1
  173. package/dist/components/Radio/RadioGroupContext.js.map +1 -1
  174. package/dist/components/Radio/RadioInput/index.d.ts.map +1 -1
  175. package/dist/components/Radio/RadioInput/index2.cjs +0 -1
  176. package/dist/components/Radio/RadioInput/index2.cjs.map +1 -1
  177. package/dist/components/Radio/RadioInput/index2.js.map +1 -1
  178. package/dist/components/Radio/index.d.ts.map +1 -1
  179. package/dist/components/Radio/index2.cjs +2 -2
  180. package/dist/components/Radio/index2.cjs.map +1 -1
  181. package/dist/components/Radio/index2.js.map +1 -1
  182. package/dist/components/SegmentedControl/RadioGroupContext.cjs +1 -1
  183. package/dist/components/SegmentedControl/RadioGroupContext.cjs.map +1 -1
  184. package/dist/components/SegmentedControl/RadioGroupContext.js.map +1 -1
  185. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  186. package/dist/components/SegmentedControl/index2.cjs +1 -1
  187. package/dist/components/SegmentedControl/index2.cjs.map +1 -1
  188. package/dist/components/SegmentedControl/index2.js.map +1 -1
  189. package/dist/components/Switch/SwitchInput/index.d.ts.map +1 -1
  190. package/dist/components/Switch/SwitchInput/index2.cjs +0 -1
  191. package/dist/components/Switch/SwitchInput/index2.cjs.map +1 -1
  192. package/dist/components/Switch/SwitchInput/index2.js.map +1 -1
  193. package/dist/components/Switch/SwitchWithLabel.cjs +1 -1
  194. package/dist/components/Switch/SwitchWithLabel.cjs.map +1 -1
  195. package/dist/components/Switch/SwitchWithLabel.d.ts +2 -2
  196. package/dist/components/Switch/SwitchWithLabel.d.ts.map +1 -1
  197. package/dist/components/Switch/SwitchWithLabel.js.map +1 -1
  198. package/dist/components/Switch/index.d.ts +1 -1
  199. package/dist/components/Switch/index.d.ts.map +1 -1
  200. package/dist/components/Switch/index2.cjs +0 -1
  201. package/dist/components/Switch/index2.cjs.map +1 -1
  202. package/dist/components/Switch/index2.js.map +1 -1
  203. package/dist/components/TagItem/index.d.ts +1 -1
  204. package/dist/components/TagItem/index.d.ts.map +1 -1
  205. package/dist/components/TagItem/index2.cjs +1 -1
  206. package/dist/components/TagItem/index2.cjs.map +1 -1
  207. package/dist/components/TagItem/index2.js.map +1 -1
  208. package/dist/components/TextArea/index.d.ts.map +1 -1
  209. package/dist/components/TextArea/index2.cjs +0 -1
  210. package/dist/components/TextArea/index2.cjs.map +1 -1
  211. package/dist/components/TextArea/index2.js.map +1 -1
  212. package/dist/components/TextEllipsis/helper.cjs +2 -1
  213. package/dist/components/TextEllipsis/helper.cjs.map +1 -1
  214. package/dist/components/TextEllipsis/helper.d.ts.map +1 -1
  215. package/dist/components/TextEllipsis/helper.js +1 -1
  216. package/dist/components/TextEllipsis/helper.js.map +1 -1
  217. package/dist/components/TextEllipsis/index2.cjs +14 -98
  218. package/dist/components/TextEllipsis/index2.cjs.map +1 -1
  219. package/dist/components/TextEllipsis/index2.js +14 -93
  220. package/dist/components/TextEllipsis/index2.js.map +1 -1
  221. package/dist/components/TextField/AssistiveText/index.d.ts +1 -1
  222. package/dist/components/TextField/AssistiveText/index2.cjs.map +1 -1
  223. package/dist/components/TextField/AssistiveText/index2.js.map +1 -1
  224. package/dist/components/TextField/index.d.ts +1 -1
  225. package/dist/components/TextField/index.d.ts.map +1 -1
  226. package/dist/components/TextField/index2.cjs +1 -1
  227. package/dist/components/TextField/index2.cjs.map +1 -1
  228. package/dist/components/TextField/index2.js.map +1 -1
  229. package/dist/components/TextField/useFocusWithClick.cjs +0 -1
  230. package/dist/components/TextField/useFocusWithClick.cjs.map +1 -1
  231. package/dist/components/TextField/useFocusWithClick.js.map +1 -1
  232. package/dist/core/CharcoalProvider.cjs +1 -1
  233. package/dist/core/CharcoalProvider.cjs.map +1 -1
  234. package/dist/core/CharcoalProvider.js.map +1 -1
  235. package/dist/core/SSRProvider.cjs +1 -1
  236. package/dist/core/SSRProvider.cjs.map +1 -1
  237. package/dist/core/SSRProvider.js +1 -1
  238. package/dist/core/SSRProvider.js.map +1 -1
  239. package/dist/core/SetThemeScript.cjs +0 -1
  240. package/dist/core/SetThemeScript.cjs.map +1 -1
  241. package/dist/core/SetThemeScript.js.map +1 -1
  242. package/dist/core/themeHelper.cjs +0 -1
  243. package/dist/core/themeHelper.cjs.map +1 -1
  244. package/dist/core/themeHelper.d.ts +2 -2
  245. package/dist/core/themeHelper.d.ts.map +1 -1
  246. package/dist/core/themeHelper.js.map +1 -1
  247. package/dist/index.cjs +22 -23
  248. package/dist/index.css +1000 -1000
  249. package/dist/layered.css +1000 -1000
  250. package/dist/layered.css.map +1 -1
  251. package/package.json +10 -10
  252. package/src/_lib/compat.ts +1 -7
  253. package/src/components/Carousel/index.browser.test.tsx +1 -1
  254. package/src/components/Carousel/intersectionObserver.test.ts +12 -12
  255. package/src/components/Carousel/resizeObserver.test.ts +1 -1
  256. package/src/components/DropdownSelector/MenuItem/index.tsx +40 -2
  257. package/src/components/DropdownSelector/Popover/index.tsx +20 -1
  258. package/src/components/DropdownSelector/index.browser.test.tsx +94 -0
  259. package/src/components/DropdownSelector/index.test.tsx +57 -2
  260. package/src/components/DropdownSelector/index.tsx +37 -12
  261. package/src/components/FieldLabel/index.tsx +1 -2
  262. package/src/components/Icon/index.tsx +2 -1
  263. package/src/components/Modal/__snapshots__/index.css.snap +1 -0
  264. package/src/components/TextEllipsis/TextEllipsis.story.tsx +1 -1
  265. package/src/css.d.ts +1 -0
package/dist/layered.css CHANGED
@@ -6,149 +6,386 @@
6
6
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
7
7
  transition: 0.2s box-shadow;
8
8
  }
9
+ .charcoal-icon {
10
+ display: inline-flex;
11
+ width: var(--charcoal-icon-size);
12
+ height: var(--charcoal-icon-size);
13
+ }
14
+
15
+ pixiv-icon:not(:defined) {
16
+ --pixiv-icon-base: 24px;
17
+ --pixiv-icon-scale: 1;
18
+ --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
19
+
20
+ display: inline-flex;
21
+ /* --charcoal-icon-size がセットされていればそれを優先、
22
+ なければ name / scale から導出した --pixiv-icon-size をフォールバック */
23
+ width: var(--charcoal-icon-size, var(--pixiv-icon-size));
24
+ height: var(--charcoal-icon-size, var(--pixiv-icon-size));
25
+ }
26
+
27
+ pixiv-icon:not(:defined)[name^='16/'] {
28
+ --pixiv-icon-base: 16px;
29
+ --pixiv-icon-size: 16px;
30
+ }
31
+
32
+ pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
33
+ --pixiv-icon-scale: 2;
34
+ }
35
+
36
+ pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
37
+ --pixiv-icon-scale: 3;
38
+ }
39
+
40
+ pixiv-icon:not(:defined)[name^='32/'] {
41
+ --pixiv-icon-base: 32px;
42
+ --pixiv-icon-size: 32px;
43
+ }
44
+
45
+ pixiv-icon:not(:defined)[name^='Inline/'] {
46
+ --pixiv-icon-base: 16px;
47
+ }
48
+
49
+ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
50
+ --pixiv-icon-scale: 2;
51
+ }
52
+ .charcoal-radio__label {
53
+ display: grid;
54
+ grid-template-columns: auto 1fr;
55
+ grid-gap: 4px;
56
+ align-items: center;
57
+ cursor: pointer;
58
+ }
59
+
60
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
61
+ opacity: 0.32;
62
+ cursor: default;
63
+ }
64
+
65
+ .charcoal-radio__label_div {
66
+ font-size: 14px;
67
+ line-height: 22px;
68
+ color: var(--charcoal-color-text-default);
69
+ }
9
70
  .charcoal-radio-group {
10
71
  display: grid;
11
72
  grid-template-columns: 1fr;
12
73
  grid-gap: 8px;
13
74
  }
14
- .charcoal-icon-button {
75
+ .charcoal-multi-select {
76
+ display: grid;
77
+ grid-template-columns: auto 1fr;
78
+ align-items: center;
79
+ position: relative;
15
80
  cursor: pointer;
81
+ gap: 4px;
82
+ }
83
+
84
+ .charcoal-multi-select:disabled,
85
+ .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
86
+ opacity: 0.32;
87
+ cursor: default;
88
+ }
89
+
90
+ .charcoal-multi-select-label {
91
+ display: flow-root;
92
+ align-items: center;
93
+ font-size: 14px;
94
+ line-height: 22px;
95
+ color: var(--charcoal-color-text-default);
96
+ }
97
+
98
+ .charcoal-multi-select-label::before {
99
+ display: block;
100
+ width: 0;
101
+ height: 0;
102
+ content: '';
103
+ margin-top: -4px;
104
+ }
105
+
106
+ .charcoal-multi-select-label::after {
107
+ display: block;
108
+ width: 0;
109
+ height: 0;
110
+ content: '';
111
+ margin-bottom: -4px;
112
+ }
113
+
114
+ .charcoal-multi-select-input[type='checkbox'] {
16
115
  -webkit-appearance: none;
17
116
  -moz-appearance: none;
18
117
  appearance: none;
19
- background: transparent;
20
- padding: 0;
21
- border-style: none;
22
- outline: none;
23
- color: inherit;
24
- text-rendering: inherit;
25
- letter-spacing: inherit;
26
- word-spacing: inherit;
27
- text-decoration: none;
28
- font: inherit;
118
+ display: block;
119
+ width: 20px;
120
+ height: 20px;
29
121
  margin: 0;
30
- overflow: visible;
31
- text-transform: none;
32
-
33
- -webkit-user-select: none;
34
-
35
- -moz-user-select: none;
36
-
37
- user-select: none;
38
- display: flex;
39
- align-items: center;
40
- justify-content: center;
122
+ background-color: var(--charcoal-color-container-neutral-default);
41
123
  border-radius: 999999px;
42
124
  transition:
43
125
  0.2s background-color,
44
126
  0.2s box-shadow;
45
127
  }
46
128
 
47
- .charcoal-icon-button:disabled,
48
- .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
49
- cursor: default;
50
- opacity: 0.32;
129
+ .charcoal-multi-select-input[type='checkbox']:checked {
130
+ background-color: var(--charcoal-color-container-primary-default);
51
131
  }
52
132
 
53
- .charcoal-icon-button:focus {
133
+ .charcoal-multi-select-input[type='checkbox']:focus {
54
134
  outline: none;
135
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
55
136
  }
56
137
 
57
- .charcoal-icon-button::-moz-focus-inner {
58
- border-style: none;
59
- padding: 0;
138
+ .charcoal-multi-select-input[type='checkbox']:focus-visible {
139
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
60
140
  }
61
141
 
62
- .charcoal-icon-button[data-size='XS'] {
63
- width: 20px;
64
- height: 20px;
142
+ .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
143
+ box-shadow: none;
65
144
  }
66
145
 
67
- .charcoal-icon-button[data-size='S'] {
68
- width: 32px;
69
- height: 32px;
146
+ .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
147
+ .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
148
+ background-color: var(--charcoal-color-container-neutral-hover);
70
149
  }
71
150
 
72
- .charcoal-icon-button[data-size='M'] {
73
- width: 40px;
74
- height: 40px;
151
+ .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
152
+ .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
153
+ background-color: var(--charcoal-color-container-neutral-press);
75
154
  }
76
155
 
77
- .charcoal-icon-button[data-variant='Default'] {
78
- color: var(--charcoal-color-icon-tertiary-default);
79
- background-color: transparent;
156
+ .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
157
+ .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
158
+ background-color: var(--charcoal-color-container-primary-hover);
80
159
  }
81
160
 
82
- .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
83
- .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
84
- color: var(--charcoal-color-icon-tertiary-press);
85
- background-color: var(--charcoal-color-container-press-a);
86
- }
161
+ .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
162
+ .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
163
+ background-color: var(--charcoal-color-container-primary-press);
164
+ }
87
165
 
88
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
89
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
90
- color: var(--charcoal-color-icon-tertiary-hover);
91
- background-color: var(--charcoal-color-container-hover-a);
92
- }
166
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
167
+ [aria-disabled]
168
+ ) {
169
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
170
+ }
93
171
 
94
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
95
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
96
- color: var(--charcoal-color-icon-tertiary-press);
97
- background-color: var(--charcoal-color-container-press-a);
98
- }
172
+ .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
173
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
174
+ }
99
175
 
100
- .charcoal-icon-button[data-variant='Overlay'] {
101
- color: var(--charcoal-color-icon-on-on-img-default);
176
+ .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
102
177
  background-color: var(--charcoal-color-container-on-img-default);
103
178
  }
104
179
 
105
- .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
106
- .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
107
- color: var(--charcoal-color-icon-on-on-img-press);
108
- background-color: var(--charcoal-color-container-on-img-press);
109
- }
110
-
111
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
112
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
113
- color: var(--charcoal-color-icon-on-on-img-hover);
114
- background-color: var(--charcoal-color-container-on-img-hover);
115
- }
116
-
117
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
118
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
119
- color: var(--charcoal-color-icon-on-on-img-press);
120
- background-color: var(--charcoal-color-container-on-img-press);
121
- }
180
+ .charcoal-multi-select-overlay {
181
+ position: absolute;
182
+ top: -2px;
183
+ left: -2px;
184
+ box-sizing: border-box;
185
+ display: flex;
186
+ align-items: center;
187
+ justify-content: center;
188
+ width: 24px;
189
+ height: 24px;
190
+ border-radius: 999999px;
191
+ color: var(--charcoal-color-icon-on-primary-default);
192
+ transition: 0.2s box-shadow;
193
+ }
122
194
 
123
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
124
- .charcoal-icon-button[aria-disabled='false']:focus {
125
- outline: none;
126
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
195
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
196
+ [aria-disabled]
197
+ ) {
198
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
127
199
  }
128
200
 
129
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
130
- .charcoal-icon-button[aria-disabled='false']:focus-visible {
131
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
201
+ .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
202
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
132
203
  }
133
204
 
134
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
135
- .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
136
- box-shadow: none;
205
+ .charcoal-multi-select-overlay[data-overlay='true'] {
206
+ border-color: var(--charcoal-color-border-hud);
207
+ border-width: 2px;
208
+ border-style: solid;
137
209
  }
138
- .charcoal-button {
210
+ .charcoal-clickable {
211
+ cursor: pointer;
212
+
213
+ /* Reset button appearance */
139
214
  -webkit-appearance: none;
140
215
  -moz-appearance: none;
141
216
  appearance: none;
142
- background-image: none;
143
- box-sizing: border-box;
144
- padding: 0 24px;
217
+ background: transparent;
218
+ padding: 0;
145
219
  border-style: none;
146
220
  outline: none;
221
+ color: inherit;
147
222
  text-rendering: inherit;
148
223
  letter-spacing: inherit;
149
224
  word-spacing: inherit;
150
225
  text-decoration: none;
151
- font-family: inherit;
226
+
227
+ /* Change the font styles in all browsers. */
228
+ font: inherit;
229
+
230
+ /* Remove the margin in Firefox and Safari. */
231
+ margin: 0;
232
+
233
+ /* Show the overflow in Edge. */
234
+ overflow: visible;
235
+
236
+ /* Remove the inheritance of text transform in Firefox. */
237
+ text-transform: none;
238
+ }
239
+
240
+ .charcoal-clickable:disabled,
241
+ .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
242
+ cursor: default;
243
+ }
244
+
245
+ .charcoal-clickable:focus {
246
+ outline: none;
247
+ }
248
+
249
+ .charcoal-clickable::-moz-focus-inner {
250
+ border-style: none;
251
+ padding: 0;
252
+ }
253
+ .charcoal-switch__label {
254
+ display: inline-grid;
255
+ grid-template-columns: auto 1fr;
256
+ align-items: center;
257
+ cursor: pointer;
258
+ outline: 0;
259
+ gap: 4px;
260
+ }
261
+
262
+ .charcoal-switch__label[aria-disabled='true'] {
263
+ opacity: 0.32;
264
+ cursor: default;
265
+ }
266
+
267
+ .charcoal-switch__label[aria-disabled='true'] > input {
268
+ opacity: 1;
269
+ }
270
+
271
+ .charcoal-switch__label_div {
272
+ font-size: 14px;
273
+ line-height: 22px;
274
+ color: var(--charcoal-color-text-default);
275
+ }
276
+ .charcoal-text-field-root {
277
+ display: grid;
278
+ grid-template-columns: 1fr;
279
+ grid-gap: 4px;
280
+ }
281
+
282
+ .charcoal-text-field-root[aria-disabled='true'] {
283
+ opacity: 0.32;
284
+ }
285
+
286
+ .charcoal-text-field-container {
287
+ display: flex;
288
+ height: 40px;
289
+ transition:
290
+ 0.2s background-color,
291
+ 0.2s box-shadow;
292
+ color: var(--charcoal-color-text-secondary-default);
293
+ background-color: var(--charcoal-color-container-secondary-default-a);
294
+ border-radius: 4px;
295
+ padding: 0 8px;
296
+ line-height: 22px;
297
+ font-size: 14px;
298
+ }
299
+
300
+ .charcoal-text-field-container[data-invalid='true'] {
301
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
302
+ }
303
+
304
+ .charcoal-text-field-container:not([aria-disabled='true']):hover {
305
+ background-color: var(--charcoal-color-container-secondary-hover-a);
306
+ }
307
+
308
+ .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
309
+ outline: none;
310
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
311
+ }
312
+
313
+ .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
314
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
315
+ }
316
+
317
+ .charcoal-text-field-prefix {
318
+ display: flex;
319
+ align-items: center;
320
+ margin-right: 4px;
321
+ }
322
+
323
+ .charcoal-text-field-suffix {
324
+ display: flex;
325
+ align-items: center;
326
+ gap: 8px;
327
+ margin-left: 4px;
328
+ }
329
+
330
+ .charcoal-text-field-input-root {
331
+ flex: 1;
332
+ min-width: 0;
333
+ overflow: hidden;
334
+ }
335
+
336
+ .charcoal-text-field-input {
337
+ border: none;
338
+ box-sizing: border-box;
339
+ outline: none;
340
+ font-family: inherit;
341
+
342
+ /* Prevent zooming for iOS Safari */
343
+ transform-origin: top left;
344
+ transform: scale(0.875);
345
+ width: calc(100% / 0.875);
346
+ height: calc(100% / 0.875);
347
+ font-size: calc(14px / 0.875);
348
+ line-height: calc(22px / 0.875);
349
+ padding-left: 0;
350
+ padding-right: 0;
351
+ border-radius: calc(4px / 0.875);
352
+
353
+ /* Display box-shadow for iOS Safari */
354
+ -webkit-appearance: none;
355
+ -moz-appearance: none;
356
+ appearance: none;
357
+ background: transparent;
358
+
359
+ color: var(--charcoal-color-text-secondary-default);
360
+ }
361
+
362
+ .charcoal-text-field-input::-moz-placeholder {
363
+ color: var(--charcoal-color-text-placeholder-default);
364
+ }
365
+
366
+ .charcoal-text-field-input::placeholder {
367
+ color: var(--charcoal-color-text-placeholder-default);
368
+ }
369
+
370
+ .charcoal-text-field-line-counter {
371
+ line-height: 22px;
372
+ font-size: 14px;
373
+ color: var(--charcoal-color-text-tertiary-default);
374
+ }
375
+ .charcoal-button {
376
+ -webkit-appearance: none;
377
+ -moz-appearance: none;
378
+ appearance: none;
379
+ background-image: none;
380
+ box-sizing: border-box;
381
+ padding: 0 24px;
382
+ border-style: none;
383
+ outline: none;
384
+ text-rendering: inherit;
385
+ letter-spacing: inherit;
386
+ word-spacing: inherit;
387
+ text-decoration: none;
388
+ font-family: inherit;
152
389
  font-style: inherit;
153
390
  font-variant: inherit;
154
391
  margin: 0;
@@ -285,518 +522,435 @@
285
522
  .charcoal-button[data-full-width='true'] {
286
523
  width: 100%;
287
524
  }
288
- .charcoal-radio__label {
289
- display: grid;
290
- grid-template-columns: auto 1fr;
291
- grid-gap: 4px;
292
- align-items: center;
293
- cursor: pointer;
294
- }
295
-
296
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
297
- opacity: 0.32;
298
- cursor: default;
299
- }
300
-
301
- .charcoal-radio__label_div {
302
- font-size: 14px;
303
- line-height: 22px;
304
- color: var(--charcoal-color-text-default);
305
- }
306
- .charcoal-multi-select {
307
- display: grid;
308
- grid-template-columns: auto 1fr;
309
- align-items: center;
310
- position: relative;
525
+ .charcoal-icon-button {
311
526
  cursor: pointer;
312
- gap: 4px;
313
- }
314
-
315
- .charcoal-multi-select:disabled,
316
- .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
317
- opacity: 0.32;
318
- cursor: default;
319
- }
320
-
321
- .charcoal-multi-select-label {
322
- display: flow-root;
323
- align-items: center;
324
- font-size: 14px;
325
- line-height: 22px;
326
- color: var(--charcoal-color-text-default);
327
- }
328
-
329
- .charcoal-multi-select-label::before {
330
- display: block;
331
- width: 0;
332
- height: 0;
333
- content: '';
334
- margin-top: -4px;
335
- }
336
-
337
- .charcoal-multi-select-label::after {
338
- display: block;
339
- width: 0;
340
- height: 0;
341
- content: '';
342
- margin-bottom: -4px;
343
- }
344
-
345
- .charcoal-multi-select-input[type='checkbox'] {
346
527
  -webkit-appearance: none;
347
528
  -moz-appearance: none;
348
529
  appearance: none;
349
- display: block;
350
- width: 20px;
351
- height: 20px;
530
+ background: transparent;
531
+ padding: 0;
532
+ border-style: none;
533
+ outline: none;
534
+ color: inherit;
535
+ text-rendering: inherit;
536
+ letter-spacing: inherit;
537
+ word-spacing: inherit;
538
+ text-decoration: none;
539
+ font: inherit;
352
540
  margin: 0;
353
- background-color: var(--charcoal-color-container-neutral-default);
541
+ overflow: visible;
542
+ text-transform: none;
543
+
544
+ -webkit-user-select: none;
545
+
546
+ -moz-user-select: none;
547
+
548
+ user-select: none;
549
+ display: flex;
550
+ align-items: center;
551
+ justify-content: center;
354
552
  border-radius: 999999px;
355
553
  transition:
356
554
  0.2s background-color,
357
555
  0.2s box-shadow;
358
556
  }
359
557
 
360
- .charcoal-multi-select-input[type='checkbox']:checked {
361
- background-color: var(--charcoal-color-container-primary-default);
558
+ .charcoal-icon-button:disabled,
559
+ .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
560
+ cursor: default;
561
+ opacity: 0.32;
362
562
  }
363
563
 
364
- .charcoal-multi-select-input[type='checkbox']:focus {
564
+ .charcoal-icon-button:focus {
365
565
  outline: none;
366
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
367
566
  }
368
567
 
369
- .charcoal-multi-select-input[type='checkbox']:focus-visible {
370
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
568
+ .charcoal-icon-button::-moz-focus-inner {
569
+ border-style: none;
570
+ padding: 0;
371
571
  }
372
572
 
373
- .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
374
- box-shadow: none;
573
+ .charcoal-icon-button[data-size='XS'] {
574
+ width: 20px;
575
+ height: 20px;
375
576
  }
376
577
 
377
- .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
378
- .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
379
- background-color: var(--charcoal-color-container-neutral-hover);
578
+ .charcoal-icon-button[data-size='S'] {
579
+ width: 32px;
580
+ height: 32px;
380
581
  }
381
582
 
382
- .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
383
- .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
384
- background-color: var(--charcoal-color-container-neutral-press);
583
+ .charcoal-icon-button[data-size='M'] {
584
+ width: 40px;
585
+ height: 40px;
385
586
  }
386
587
 
387
- .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
388
- .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
389
- background-color: var(--charcoal-color-container-primary-hover);
588
+ .charcoal-icon-button[data-variant='Default'] {
589
+ color: var(--charcoal-color-icon-tertiary-default);
590
+ background-color: transparent;
390
591
  }
391
592
 
392
- .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
393
- .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
394
- background-color: var(--charcoal-color-container-primary-press);
395
- }
593
+ .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
594
+ .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
595
+ color: var(--charcoal-color-icon-tertiary-press);
596
+ background-color: var(--charcoal-color-container-press-a);
597
+ }
396
598
 
397
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
398
- [aria-disabled]
399
- ) {
400
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
401
- }
599
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
600
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
601
+ color: var(--charcoal-color-icon-tertiary-hover);
602
+ background-color: var(--charcoal-color-container-hover-a);
603
+ }
402
604
 
403
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
404
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
405
- }
605
+ .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
606
+ .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
607
+ color: var(--charcoal-color-icon-tertiary-press);
608
+ background-color: var(--charcoal-color-container-press-a);
609
+ }
406
610
 
407
- .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
611
+ .charcoal-icon-button[data-variant='Overlay'] {
612
+ color: var(--charcoal-color-icon-on-on-img-default);
408
613
  background-color: var(--charcoal-color-container-on-img-default);
409
614
  }
410
615
 
411
- .charcoal-multi-select-overlay {
412
- position: absolute;
413
- top: -2px;
414
- left: -2px;
415
- box-sizing: border-box;
416
- display: flex;
417
- align-items: center;
418
- justify-content: center;
419
- width: 24px;
420
- height: 24px;
421
- border-radius: 999999px;
422
- color: var(--charcoal-color-icon-on-primary-default);
423
- transition: 0.2s box-shadow;
424
- }
616
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
617
+ .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
618
+ color: var(--charcoal-color-icon-on-on-img-press);
619
+ background-color: var(--charcoal-color-container-on-img-press);
620
+ }
425
621
 
426
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
427
- [aria-disabled]
428
- ) {
429
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
622
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
623
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
624
+ color: var(--charcoal-color-icon-on-on-img-hover);
625
+ background-color: var(--charcoal-color-container-on-img-hover);
626
+ }
627
+
628
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
629
+ .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
630
+ color: var(--charcoal-color-icon-on-on-img-press);
631
+ background-color: var(--charcoal-color-container-on-img-press);
632
+ }
633
+
634
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
635
+ .charcoal-icon-button[aria-disabled='false']:focus {
636
+ outline: none;
637
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
430
638
  }
431
639
 
432
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
433
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
640
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
641
+ .charcoal-icon-button[aria-disabled='false']:focus-visible {
642
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
434
643
  }
435
644
 
436
- .charcoal-multi-select-overlay[data-overlay='true'] {
437
- border-color: var(--charcoal-color-border-hud);
438
- border-width: 2px;
439
- border-style: solid;
645
+ .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
646
+ .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
647
+ box-shadow: none;
440
648
  }
441
- .charcoal-text-field-root {
649
+ .charcoal-menu-item-group {
650
+ display: block;
651
+ }
652
+
653
+ .charcoal-menu-item-group > span {
654
+ display: block;
655
+ color: var(--charcoal-color-text-tertiary-default);
656
+ font-size: 12px;
657
+ font-weight: bold;
658
+ padding: 12px 0 8px 16px;
659
+ }
660
+
661
+ .charcoal-menu-item-group > ul {
662
+ padding-left: 0;
663
+ margin: 0;
664
+ box-sizing: border-box;
665
+ list-style: none;
666
+ overflow: hidden;
667
+ }
668
+ .charcoal-text-area-root {
442
669
  display: grid;
443
670
  grid-template-columns: 1fr;
444
671
  grid-gap: 4px;
445
672
  }
446
673
 
447
- .charcoal-text-field-root[aria-disabled='true'] {
674
+ .charcoal-text-area-root[aria-disabled='true'] {
448
675
  opacity: 0.32;
449
676
  }
450
677
 
451
- .charcoal-text-field-container {
452
- display: flex;
453
- height: 40px;
454
- transition:
455
- 0.2s background-color,
456
- 0.2s box-shadow;
678
+ .charcoal-text-area-container {
679
+ /* Runtime variable overridden by the React component. */
680
+ --charcoal-text-area-rows: 4;
681
+
682
+ position: relative;
683
+ overflow: hidden;
684
+
457
685
  color: var(--charcoal-color-text-secondary-default);
458
686
  background-color: var(--charcoal-color-container-secondary-default-a);
459
687
  border-radius: 4px;
460
- padding: 0 8px;
461
- line-height: 22px;
462
- font-size: 14px;
688
+ transition:
689
+ 0.2s background-color,
690
+ 0.2s box-shadow;
691
+ height: calc(22px * var(--charcoal-text-area-rows) + 18px);
463
692
  }
464
693
 
465
- .charcoal-text-field-container[data-invalid='true'] {
694
+ .charcoal-text-area-container[aria-invalid='true'] {
466
695
  box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
467
696
  }
468
697
 
469
- .charcoal-text-field-container:not([aria-disabled='true']):hover {
470
- background-color: var(--charcoal-color-container-secondary-hover-a);
471
- }
472
-
473
- .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
698
+ .charcoal-text-area-container:focus-within {
474
699
  outline: none;
475
700
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
476
701
  }
477
702
 
478
- .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
479
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
703
+ .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
704
+ height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
480
705
  }
481
706
 
482
- .charcoal-text-field-prefix {
483
- display: flex;
484
- align-items: center;
485
- margin-right: 4px;
486
- }
487
-
488
- .charcoal-text-field-suffix {
489
- display: flex;
490
- align-items: center;
491
- gap: 8px;
492
- margin-left: 4px;
493
- }
707
+ .charcoal-text-area-container:not([aria-disabled='true']):hover {
708
+ background-color: var(--charcoal-color-container-secondary-hover-a);
709
+ }
494
710
 
495
- .charcoal-text-field-input-root {
496
- flex: 1;
497
- min-width: 0;
498
- overflow: hidden;
499
- }
711
+ .charcoal-text-area-container[aria-invalid='true']:focus-within {
712
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
713
+ }
500
714
 
501
- .charcoal-text-field-input {
715
+ .charcoal-text-area-textarea {
502
716
  border: none;
503
- box-sizing: border-box;
504
717
  outline: none;
718
+ resize: none;
505
719
  font-family: inherit;
720
+ color: inherit;
721
+ box-sizing: border-box;
506
722
 
507
723
  /* Prevent zooming for iOS Safari */
724
+ --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
725
+ --charcoal-textarea-line-height: calc(
726
+ 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
727
+ );
728
+ --charcoal-textarea-padding-y: calc(
729
+ 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
730
+ );
731
+ --charcoal-textarea-padding-x: calc(
732
+ 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
733
+ );
734
+
508
735
  transform-origin: top left;
509
- transform: scale(0.875);
510
- width: calc(100% / 0.875);
511
- height: calc(100% / 0.875);
512
- font-size: calc(14px / 0.875);
513
- line-height: calc(22px / 0.875);
514
- padding-left: 0;
515
- padding-right: 0;
516
- border-radius: calc(4px / 0.875);
736
+ transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
737
+ width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
738
+ font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
739
+ line-height: var(--charcoal-textarea-line-height);
740
+ padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
741
+ height: calc(
742
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
743
+ var(--charcoal-textarea-padding-y) * 2
744
+ );
517
745
 
518
746
  /* Display box-shadow for iOS Safari */
519
747
  -webkit-appearance: none;
520
748
  -moz-appearance: none;
521
749
  appearance: none;
522
- background: transparent;
523
750
 
524
- color: var(--charcoal-color-text-secondary-default);
751
+ background: none;
525
752
  }
526
753
 
527
- .charcoal-text-field-input::-moz-placeholder {
754
+ .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
755
+ padding: var(--charcoal-textarea-padding-y)
756
+ var(--charcoal-textarea-padding-x) 0;
757
+ height: calc(
758
+ var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
759
+ var(--charcoal-textarea-padding-y)
760
+ );
761
+ }
762
+
763
+ .charcoal-text-area-textarea::-moz-placeholder {
528
764
  color: var(--charcoal-color-text-placeholder-default);
529
765
  }
530
766
 
531
- .charcoal-text-field-input::placeholder {
767
+ .charcoal-text-area-textarea::placeholder {
532
768
  color: var(--charcoal-color-text-placeholder-default);
533
769
  }
534
770
 
535
- .charcoal-text-field-line-counter {
771
+ .charcoal-text-area-counter {
772
+ position: absolute;
773
+ bottom: 9px;
774
+ right: 8px;
775
+
536
776
  line-height: 22px;
537
777
  font-size: 14px;
538
778
  color: var(--charcoal-color-text-tertiary-default);
539
779
  }
540
- .charcoal-switch__label {
541
- display: inline-grid;
542
- grid-template-columns: auto 1fr;
543
- align-items: center;
544
- cursor: pointer;
545
- outline: 0;
546
- gap: 4px;
780
+ .charcoal-modal-header-root {
781
+ height: 64px;
782
+ display: grid;
783
+ align-content: center;
784
+ justify-content: center;
547
785
  }
548
786
 
549
- .charcoal-switch__label[aria-disabled='true'] {
550
- opacity: 0.32;
551
- cursor: default;
787
+ @media (max-width: 743px) {
788
+ .charcoal-modal-header-root[data-bottom-sheet='true'],
789
+ .charcoal-modal-header-root[data-bottom-sheet='full'] {
790
+ height: 48px;
552
791
  }
792
+ }
553
793
 
554
- .charcoal-switch__label[aria-disabled='true'] > input {
555
- opacity: 1;
556
- }
557
-
558
- .charcoal-switch__label_div {
559
- font-size: 14px;
560
- line-height: 22px;
794
+ .charcoal-modal-header-title {
561
795
  color: var(--charcoal-color-text-default);
562
- }
563
- .charcoal-icon {
564
- display: inline-flex;
565
- width: var(--charcoal-icon-size);
566
- height: var(--charcoal-icon-size);
796
+ font-size: 16px;
797
+ line-height: 24px;
798
+ font-weight: bold;
799
+ display: flow-root;
567
800
  }
568
801
 
569
- pixiv-icon:not(:defined) {
570
- --pixiv-icon-base: 24px;
571
- --pixiv-icon-scale: 1;
572
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
802
+ .charcoal-modal-align {
803
+ padding-left: 16px;
804
+ padding-right: 16px;
805
+ }
573
806
 
574
- display: inline-flex;
575
- /* --charcoal-icon-size がセットされていればそれを優先、
576
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
577
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
578
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
807
+ .charcoal-modal-body {
808
+ padding-bottom: 40px;
579
809
  }
580
810
 
581
- pixiv-icon:not(:defined)[name^='16/'] {
582
- --pixiv-icon-base: 16px;
583
- --pixiv-icon-size: 16px;
584
- }
811
+ .charcoal-modal-buttons {
812
+ display: grid;
813
+ grid-auto-flow: row;
814
+ grid-row-gap: 8px;
585
815
 
586
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
587
- --pixiv-icon-scale: 2;
588
- }
816
+ padding-top: 16px;
817
+ padding-left: 16px;
818
+ padding-right: 16px;
819
+ }
820
+ .charcoal-segmented-control {
821
+ display: inline-flex;
822
+ align-items: center;
589
823
 
590
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
591
- --pixiv-icon-scale: 3;
592
- }
824
+ background-color: var(--charcoal-color-container-secondary-default-a);
825
+ border-radius: 16px;
826
+ }
593
827
 
594
- pixiv-icon:not(:defined)[name^='32/'] {
595
- --pixiv-icon-base: 32px;
596
- --pixiv-icon-size: 32px;
828
+ .charcoal-segmented-control[data-uniform-segment-width='true'],
829
+ .charcoal-segmented-control[data-full-width='true'] {
830
+ display: inline-grid;
831
+ grid-auto-columns: minmax(80px, 1fr);
832
+ grid-auto-rows: 32px;
833
+ grid-auto-flow: column;
597
834
  }
598
835
 
599
- pixiv-icon:not(:defined)[name^='Inline/'] {
600
- --pixiv-icon-base: 16px;
836
+ .charcoal-segmented-control[data-full-width='true'] {
837
+ width: 100%;
601
838
  }
602
839
 
603
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
604
- --pixiv-icon-scale: 2;
605
- }
606
- .charcoal-clickable {
840
+ .charcoal-segmented-control-radio__label {
841
+ position: relative;
842
+ display: flex;
843
+ align-items: center;
844
+ justify-content: center;
607
845
  cursor: pointer;
846
+ height: 32px;
608
847
 
609
- /* Reset button appearance */
610
- -webkit-appearance: none;
611
- -moz-appearance: none;
612
- appearance: none;
613
- background: transparent;
614
- padding: 0;
615
- border-style: none;
616
- outline: none;
617
- color: inherit;
618
- text-rendering: inherit;
619
- letter-spacing: inherit;
620
- word-spacing: inherit;
621
- text-decoration: none;
622
-
623
- /* Change the font styles in all browsers. */
624
- font: inherit;
625
-
626
- /* Remove the margin in Firefox and Safari. */
627
- margin: 0;
628
-
629
- /* Show the overflow in Edge. */
630
- overflow: visible;
848
+ padding-right: 16px;
849
+ padding-left: 16px;
850
+ border-radius: 16px;
851
+ color: var(--charcoal-color-text-secondary-default);
631
852
 
632
- /* Remove the inheritance of text transform in Firefox. */
633
- text-transform: none;
853
+ font-size: 14px;
854
+ line-height: 22px;
634
855
  }
635
856
 
636
- .charcoal-clickable:disabled,
637
- .charcoal-clickable[aria-disabled]:not([aria-disabled='false']) {
857
+ .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
638
858
  cursor: default;
859
+ opacity: 0.32;
639
860
  }
640
861
 
641
- .charcoal-clickable:focus {
642
- outline: none;
862
+ .charcoal-segmented-control-radio__label[data-checked='true'] {
863
+ background-color: var(--charcoal-color-container-primary-default);
864
+ color: var(--charcoal-color-text-on-primary-default);
643
865
  }
644
866
 
645
- .charcoal-clickable::-moz-focus-inner {
646
- border-style: none;
647
- padding: 0;
867
+ .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
868
+ .charcoal-segmented-control-radio__label[data-full-width='true'] {
869
+ justify-content: center;
870
+ white-space: nowrap;
648
871
  }
649
- .charcoal-dropdown-selector-root {
650
- display: grid;
651
- grid-template-columns: 1fr;
652
- grid-gap: 4px;
653
- width: 100%;
654
- }
655
872
 
656
- .charcoal-dropdown-selector-root[aria-disabled='true'] {
657
- cursor: default;
658
- opacity: 0.32;
659
- }
873
+ .charcoal-segmented-control-radio__input {
874
+ position: absolute;
660
875
 
661
- .charcoal-dropdown-selector-button {
662
- display: grid;
663
- grid-template-columns: 1fr auto;
664
- justify-content: space-between;
665
- align-items: center;
876
+ height: 0px;
877
+ width: 0px;
878
+ padding: 0;
879
+ margin: 0;
666
880
 
667
- height: 40px;
668
- width: 100%;
669
- box-sizing: border-box;
670
- border: none;
671
- cursor: pointer;
672
- gap: 4px;
881
+ -webkit-appearance: none;
673
882
 
674
- padding-right: 8px;
675
- padding-left: 8px;
676
- background-color: var(--charcoal-color-container-secondary-default-a);
677
- border-radius: 4px;
883
+ -moz-appearance: none;
678
884
 
679
- transition:
680
- 0.2s box-shadow,
681
- 0.2s background-color;
885
+ appearance: none;
886
+ box-sizing: border-box;
887
+ overflow: hidden;
888
+ white-space: nowrap;
889
+ opacity: 0;
890
+ }
891
+ .charcoal-hint-text {
892
+ background-color: var(--charcoal-color-container-secondary-default);
893
+ border-radius: 8px;
894
+ padding: 12px 16px;
895
+ display: flex;
896
+ align-items: flex-start;
682
897
  }
683
898
 
684
- .charcoal-dropdown-selector-button:disabled {
685
- cursor: default;
899
+ .charcoal-hint-text[data-context='page'] {
900
+ justify-content: center;
686
901
  }
687
902
 
688
- .charcoal-dropdown-selector-button:not(:disabled):focus {
689
- outline: none;
690
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
691
- }
692
-
693
- .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
694
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
695
- }
696
-
697
- .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
698
- .charcoal-dropdown-selector-button:not(:disabled):active {
699
- background-color: var(--charcoal-color-container-secondary-press-a);
700
- }
701
-
702
- .charcoal-dropdown-selector-button:not(:disabled):hover {
703
- background-color: var(--charcoal-color-container-secondary-hover-a);
704
- }
903
+ @media (min-width: 744px) {
705
904
 
706
- .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
707
- box-shadow: none;
905
+ .charcoal-hint-text[data-context='page'] {
906
+ padding: 20px 40px
907
+ }
708
908
  }
709
909
 
710
- .charcoal-dropdown-selector-button[aria-invalid='true'],
711
- .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
712
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
713
- }
910
+ .charcoal-hint-text-icon {
911
+ display: flex;
912
+ align-items: center;
913
+ color: var(--charcoal-color-icon-tertiary-default);
914
+ height: 22px;
915
+ margin: 0 4px 0 0;
916
+ }
714
917
 
715
- .charcoal-ui-dropdown-selector-text {
716
- text-align: left;
918
+ .charcoal-hint-text-message {
919
+ color: var(--charcoal-color-text-secondary-default);
717
920
  font-size: 14px;
718
921
  line-height: 22px;
719
922
  display: flow-root;
720
- color: var(--charcoal-color-text-default);
721
- overflow: hidden;
722
- text-overflow: ellipsis;
723
- white-space: nowrap;
923
+ margin: 0;
924
+ min-width: 0;
925
+ overflow-wrap: break-word;
724
926
  }
927
+ .charcoal-modal-background {
928
+ overflow: auto;
929
+ display: flex;
930
+ position: fixed;
931
+ top: 0;
932
+ left: 0;
933
+ width: 100%;
934
+ height: 100%;
935
+ justify-content: center;
936
+ padding: 40px 0;
937
+ box-sizing: border-box;
725
938
 
726
- .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
727
- color: var(--charcoal-color-text-placeholder-default);
939
+ background-color: var(--charcoal-color-background-overlay);
940
+ }
941
+
942
+ @media (max-width: 743px) {
943
+ .charcoal-modal-background[data-bottom-sheet='true'],
944
+ .charcoal-modal-background[data-bottom-sheet='full'] {
945
+ padding: 0;
946
+ }
728
947
  }
729
948
 
730
- .charcoal-ui-dropdown-selector-icon {
731
- color: var(--charcoal-color-icon-secondary-default);
732
- }
733
- .charcoal-modal-header-root {
734
- height: 64px;
735
- display: grid;
736
- align-content: center;
737
- justify-content: center;
738
- }
739
-
740
- @media (max-width: 743px) {
741
- .charcoal-modal-header-root[data-bottom-sheet='true'],
742
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
743
- height: 48px;
744
- }
745
- }
746
-
747
- .charcoal-modal-header-title {
748
- color: var(--charcoal-color-text-default);
749
- font-size: 16px;
750
- line-height: 24px;
751
- font-weight: bold;
752
- display: flow-root;
753
- }
754
-
755
- .charcoal-modal-align {
756
- padding-left: 16px;
757
- padding-right: 16px;
758
- }
759
-
760
- .charcoal-modal-body {
761
- padding-bottom: 40px;
762
- }
763
-
764
- .charcoal-modal-buttons {
765
- display: grid;
766
- grid-auto-flow: row;
767
- grid-row-gap: 8px;
768
-
769
- padding-top: 16px;
770
- padding-left: 16px;
771
- padding-right: 16px;
772
- }
773
- .charcoal-modal-background {
774
- overflow: auto;
775
- display: flex;
776
- position: fixed;
777
- top: 0;
778
- left: 0;
779
- width: 100%;
780
- height: 100%;
781
- justify-content: center;
782
- padding: 40px 0;
783
- box-sizing: border-box;
784
-
785
- background-color: var(--charcoal-color-background-overlay);
786
- }
787
-
788
- @media (max-width: 743px) {
789
- .charcoal-modal-background[data-bottom-sheet='true'],
790
- .charcoal-modal-background[data-bottom-sheet='full'] {
791
- padding: 0;
792
- }
793
- }
794
-
795
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
796
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
797
- 色や transform が変わってもアニメーションしないようにする */
798
- .charcoal-modal-background[data-animation] {
799
- overflow: hidden;
949
+ /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
950
+ transition は entering / exiting に限定し、開いたままテーマ切り替え等で
951
+ 色や transform が変わってもアニメーションしないようにする */
952
+ .charcoal-modal-background[data-animation] {
953
+ overflow: hidden;
800
954
  }
801
955
 
802
956
  .charcoal-modal-background[data-animation='entering'],
@@ -840,6 +994,28 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
840
994
  font-weight: inherit;
841
995
  font-size: inherit;
842
996
  }
997
+ .charcoal-checkbox__label {
998
+ position: relative;
999
+ cursor: pointer;
1000
+ display: flex;
1001
+ gap: 4px;
1002
+ }
1003
+
1004
+ .charcoal-checkbox__label[aria-disabled='true'] {
1005
+ cursor: default;
1006
+ opacity: 0.32;
1007
+ }
1008
+
1009
+ .charcoal-checkbox__label[aria-disabled='true'] > input {
1010
+ opacity: 1;
1011
+ }
1012
+
1013
+ .charcoal-checkbox__label_div {
1014
+ flex: 1;
1015
+ color: var(--charcoal-color-text-default);
1016
+ font-size: 14px;
1017
+ line-height: 20px;
1018
+ }
843
1019
  .charcoal-loading-spinner {
844
1020
  box-sizing: content-box;
845
1021
  margin: auto;
@@ -1037,445 +1213,129 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1037
1213
  .charcoal-tag-item__labe__text[data-has-translate='true']::after {
1038
1214
  display: none;
1039
1215
  }
1040
- .charcoal-checkbox__label {
1041
- position: relative;
1042
- cursor: pointer;
1043
- display: flex;
1044
- gap: 4px;
1045
- }
1046
-
1047
- .charcoal-checkbox__label[aria-disabled='true'] {
1048
- cursor: default;
1049
- opacity: 0.32;
1050
- }
1051
-
1052
- .charcoal-checkbox__label[aria-disabled='true'] > input {
1053
- opacity: 1;
1054
- }
1055
-
1056
- .charcoal-checkbox__label_div {
1057
- flex: 1;
1058
- color: var(--charcoal-color-text-default);
1059
- font-size: 14px;
1060
- line-height: 20px;
1061
- }
1062
- .charcoal-dropdown-selector-menu-item {
1063
- font-size: 14px;
1064
- line-height: 22px;
1065
- color: var(--charcoal-color-text-secondary-default);
1066
- padding: 9px 0;
1067
-
1068
- display: flex;
1069
- align-items: center;
1070
- width: 100%;
1071
- margin-left: 20px;
1072
- }
1073
-
1074
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
1075
- margin-left: 0px;
1076
- }
1077
-
1078
- .charcoal-dropdown-selector-menu-item-icon {
1079
- color: var(--charcoal-color-text-secondary-default);
1080
- padding-right: 4px;
1081
- }
1082
-
1083
- .charcoal-dropdown-selector-menu-item-container {
1084
- display: flex;
1085
- align-items: center;
1086
- }
1087
-
1088
- .charcoal-dropdown-selector-menu-secondary {
1089
- font-size: 12px;
1090
- line-height: 20px;
1091
- color: var(--charcoal-color-text-tertiary-default);
1092
- padding-bottom: 9px;
1093
-
1094
- display: flex;
1095
- align-items: center;
1096
- margin-left: 20px;
1097
- }
1098
-
1099
- .charcoal-dropdown-selector-menu-fullwidth {
1100
- width: 100%;
1101
- }
1102
- .charcoal-text-area-root {
1216
+ .charcoal-dropdown-selector-root {
1103
1217
  display: grid;
1104
1218
  grid-template-columns: 1fr;
1105
1219
  grid-gap: 4px;
1220
+ width: 100%;
1106
1221
  }
1107
1222
 
1108
- .charcoal-text-area-root[aria-disabled='true'] {
1223
+ .charcoal-dropdown-selector-root[aria-disabled='true'] {
1224
+ cursor: default;
1109
1225
  opacity: 0.32;
1110
1226
  }
1111
1227
 
1112
- .charcoal-text-area-container {
1113
- /* Runtime variable overridden by the React component. */
1114
- --charcoal-text-area-rows: 4;
1115
-
1116
- position: relative;
1117
- overflow: hidden;
1118
-
1119
- color: var(--charcoal-color-text-secondary-default);
1120
- background-color: var(--charcoal-color-container-secondary-default-a);
1121
- border-radius: 4px;
1122
- transition:
1123
- 0.2s background-color,
1124
- 0.2s box-shadow;
1125
- height: calc(22px * var(--charcoal-text-area-rows) + 18px);
1126
- }
1127
-
1128
- .charcoal-text-area-container[aria-invalid='true'] {
1129
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1130
- }
1131
-
1132
- .charcoal-text-area-container:focus-within {
1133
- outline: none;
1134
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1135
- }
1136
-
1137
- .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
1138
- height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
1139
- }
1140
-
1141
- .charcoal-text-area-container:not([aria-disabled='true']):hover {
1142
- background-color: var(--charcoal-color-container-secondary-hover-a);
1143
- }
1144
-
1145
- .charcoal-text-area-container[aria-invalid='true']:focus-within {
1146
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1147
- }
1148
-
1149
- .charcoal-text-area-textarea {
1150
- border: none;
1151
- outline: none;
1152
- resize: none;
1153
- font-family: inherit;
1154
- color: inherit;
1155
- box-sizing: border-box;
1156
-
1157
- /* Prevent zooming for iOS Safari */
1158
- --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
1159
- --charcoal-textarea-line-height: calc(
1160
- 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1161
- );
1162
- --charcoal-textarea-padding-y: calc(
1163
- 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1164
- );
1165
- --charcoal-textarea-padding-x: calc(
1166
- 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
1167
- );
1168
-
1169
- transform-origin: top left;
1170
- transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
1171
- width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
1172
- font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
1173
- line-height: var(--charcoal-textarea-line-height);
1174
- padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
1175
- height: calc(
1176
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
1177
- var(--charcoal-textarea-padding-y) * 2
1178
- );
1179
-
1180
- /* Display box-shadow for iOS Safari */
1181
- -webkit-appearance: none;
1182
- -moz-appearance: none;
1183
- appearance: none;
1184
-
1185
- background: none;
1186
- }
1187
-
1188
- .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
1189
- padding: var(--charcoal-textarea-padding-y)
1190
- var(--charcoal-textarea-padding-x) 0;
1191
- height: calc(
1192
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
1193
- var(--charcoal-textarea-padding-y)
1194
- );
1195
- }
1196
-
1197
- .charcoal-text-area-textarea::-moz-placeholder {
1198
- color: var(--charcoal-color-text-placeholder-default);
1199
- }
1200
-
1201
- .charcoal-text-area-textarea::placeholder {
1202
- color: var(--charcoal-color-text-placeholder-default);
1203
- }
1204
-
1205
- .charcoal-text-area-counter {
1206
- position: absolute;
1207
- bottom: 9px;
1208
- right: 8px;
1209
-
1210
- line-height: 22px;
1211
- font-size: 14px;
1212
- color: var(--charcoal-color-text-tertiary-default);
1213
- }
1214
- .charcoal-hint-text {
1215
- background-color: var(--charcoal-color-container-secondary-default);
1216
- border-radius: 8px;
1217
- padding: 12px 16px;
1218
- display: flex;
1219
- align-items: flex-start;
1220
- }
1221
-
1222
- .charcoal-hint-text[data-context='page'] {
1223
- justify-content: center;
1224
- }
1225
-
1226
- @media (min-width: 744px) {
1227
-
1228
- .charcoal-hint-text[data-context='page'] {
1229
- padding: 20px 40px
1230
- }
1231
- }
1232
-
1233
- .charcoal-hint-text-icon {
1234
- display: flex;
1235
- align-items: center;
1236
- color: var(--charcoal-color-icon-tertiary-default);
1237
- height: 22px;
1238
- margin: 0 4px 0 0;
1239
- }
1240
-
1241
- .charcoal-hint-text-message {
1242
- color: var(--charcoal-color-text-secondary-default);
1243
- font-size: 14px;
1244
- line-height: 22px;
1245
- display: flow-root;
1246
- margin: 0;
1247
- min-width: 0;
1248
- overflow-wrap: break-word;
1249
- }
1250
- .charcoal-text-ellipsis {
1251
- /* Runtime variables overridden by the React component. */
1252
- --charcoal-text-ellipsis-line-limit: 1;
1253
- --charcoal-text-ellipsis-line-height: inherit;
1254
-
1255
- overflow: hidden;
1256
- overflow-wrap: break-word;
1257
- display: -webkit-box;
1258
- -webkit-box-orient: vertical;
1259
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1260
- }
1261
-
1262
- .charcoal-text-ellipsis[data-has-line-height='true'] {
1263
- line-height: var(--charcoal-text-ellipsis-line-height);
1264
- }
1265
-
1266
- .charcoal-text-ellipsis[data-has-line-height='false'] {
1267
- line-height: inherit;
1268
- }
1269
-
1270
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1271
- text-overflow: ellipsis;
1272
- white-space: nowrap;
1273
- }
1274
- .charcoal-pagination {
1275
- display: flex;
1276
- justify-content: center;
1228
+ .charcoal-dropdown-selector-button {
1229
+ display: grid;
1230
+ grid-template-columns: 1fr auto;
1231
+ justify-content: space-between;
1277
1232
  align-items: center;
1278
- }
1279
1233
 
1280
- .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
1281
- min-width: 32px;
1282
- min-height: 32px;
1283
- }
1284
-
1285
- .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
1286
- min-width: 40px;
1287
- min-height: 40px;
1288
- }
1289
-
1290
- /* stylelint-disable no-descending-specificity */
1291
- .charcoal-pagination-button {
1234
+ height: 40px;
1235
+ width: 100%;
1236
+ box-sizing: border-box;
1237
+ border: none;
1292
1238
  cursor: pointer;
1293
- -webkit-appearance: none;
1294
- -moz-appearance: none;
1295
- appearance: none;
1296
- padding: 0;
1297
- border-style: none;
1298
- outline: none;
1299
- text-decoration: none;
1300
- font-family: inherit;
1301
- font-style: inherit;
1302
- font-variant: inherit;
1303
- margin: 0;
1304
- -webkit-user-select: none;
1305
- -moz-user-select: none;
1306
- user-select: none;
1307
-
1308
- display: flex;
1309
- align-items: center;
1310
- justify-content: center;
1311
- font-size: 14px;
1312
- font-weight: 700;
1313
- line-height: 22px;
1239
+ gap: 4px;
1314
1240
 
1315
- /* HACK:
1316
- * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1317
- * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1318
- */
1319
- /* stylelint-disable-next-line property-no-vendor-prefix */
1320
- -webkit-transform: translateZ(0);
1241
+ padding-right: 8px;
1242
+ padding-left: 8px;
1243
+ background-color: var(--charcoal-color-container-secondary-default-a);
1244
+ border-radius: 4px;
1321
1245
 
1322
- color: var(--charcoal-color-text-tertiary-default);
1323
- background-color: var(--charcoal-color-container-default-a);
1324
- border-radius: 20px;
1325
1246
  transition:
1326
- 0.2s background-color,
1327
- 0.2s box-shadow;
1328
- }
1329
- .charcoal-pagination-button:focus {
1330
- outline: none;
1331
- }
1332
- .charcoal-pagination-button::-moz-focus-inner {
1333
- border-style: none;
1334
- padding: 0;
1335
- }
1336
- .charcoal-pagination-button[hidden] {
1337
- visibility: hidden;
1338
- display: block;
1339
- }
1340
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1341
- .charcoal-pagination-button[aria-disabled='false']:hover {
1342
- color: var(--charcoal-color-text-tertiary-default);
1343
- background-color: var(--charcoal-color-container-secondary-default);
1344
- }
1345
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1346
- .charcoal-pagination-button[aria-disabled='false']:active {
1347
- color: var(--charcoal-color-text-tertiary-press);
1348
- background-color: var(--charcoal-color-container-tertiary-press);
1349
- }
1350
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1351
- .charcoal-pagination-button[aria-disabled='false']:focus {
1352
- outline: none;
1353
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1354
- }
1355
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1356
- .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1357
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1358
- }
1359
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1360
- .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1361
- box-shadow: none;
1362
- }
1363
- .charcoal-pagination-button[aria-current] {
1364
- cursor: default;
1365
- background-color: var(--charcoal-color-container-hud-default);
1366
- color: var(--charcoal-color-text-on-hud-default);
1367
- }
1368
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1369
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1370
- background-color: var(--charcoal-color-container-hud-default);
1371
- color: var(--charcoal-color-text-on-hud-default);
1372
- }
1373
- /* stylelint-enable no-descending-specificity */
1374
-
1375
- .charcoal-pagination-nav-button[data-hidden] {
1376
- visibility: hidden;
1247
+ 0.2s box-shadow,
1248
+ 0.2s background-color;
1377
1249
  }
1378
1250
 
1379
- .charcoal-pagination-spacer,
1380
- .charcoal-pagination-spacer:hover,
1381
- .charcoal-pagination-spacer:active {
1251
+ .charcoal-dropdown-selector-button:disabled {
1382
1252
  cursor: default;
1383
- color: var(--charcoal-color-text-tertiary-default);
1384
- background: none;
1385
1253
  }
1386
1254
 
1387
- .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1388
- opacity: 1;
1389
- }
1390
- .charcoal-menu-item-group {
1391
- display: block;
1392
- }
1393
-
1394
- .charcoal-menu-item-group > span {
1395
- display: block;
1396
- color: var(--charcoal-color-text-tertiary-default);
1397
- font-size: 12px;
1398
- font-weight: bold;
1399
- padding: 12px 0 8px 16px;
1400
- }
1401
-
1402
- .charcoal-menu-item-group > ul {
1403
- padding-left: 0;
1404
- margin: 0;
1405
- box-sizing: border-box;
1406
- list-style: none;
1407
- overflow: hidden;
1408
- }
1409
- .charcoal-segmented-control {
1410
- display: inline-flex;
1411
- align-items: center;
1255
+ .charcoal-dropdown-selector-button:not(:disabled):focus {
1256
+ outline: none;
1257
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1258
+ }
1412
1259
 
1413
- background-color: var(--charcoal-color-container-secondary-default-a);
1414
- border-radius: 16px;
1415
- }
1260
+ .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1261
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1262
+ }
1416
1263
 
1417
- .charcoal-segmented-control[data-uniform-segment-width='true'],
1418
- .charcoal-segmented-control[data-full-width='true'] {
1419
- display: inline-grid;
1420
- grid-auto-columns: minmax(80px, 1fr);
1421
- grid-auto-rows: 32px;
1422
- grid-auto-flow: column;
1423
- }
1264
+ .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
1265
+ .charcoal-dropdown-selector-button:not(:disabled):active {
1266
+ background-color: var(--charcoal-color-container-secondary-press-a);
1267
+ }
1424
1268
 
1425
- .charcoal-segmented-control[data-full-width='true'] {
1426
- width: 100%;
1427
- }
1269
+ .charcoal-dropdown-selector-button:not(:disabled):hover {
1270
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1271
+ }
1428
1272
 
1429
- .charcoal-segmented-control-radio__label {
1430
- position: relative;
1431
- display: flex;
1432
- align-items: center;
1433
- justify-content: center;
1434
- cursor: pointer;
1435
- height: 32px;
1273
+ .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1274
+ box-shadow: none;
1275
+ }
1436
1276
 
1437
- padding-right: 16px;
1438
- padding-left: 16px;
1439
- border-radius: 16px;
1440
- color: var(--charcoal-color-text-secondary-default);
1277
+ .charcoal-dropdown-selector-button[aria-invalid='true'],
1278
+ .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
1279
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1280
+ }
1441
1281
 
1282
+ .charcoal-ui-dropdown-selector-text {
1283
+ text-align: left;
1442
1284
  font-size: 14px;
1443
1285
  line-height: 22px;
1286
+ display: flow-root;
1287
+ color: var(--charcoal-color-text-default);
1288
+ overflow: hidden;
1289
+ text-overflow: ellipsis;
1290
+ white-space: nowrap;
1444
1291
  }
1445
1292
 
1446
- .charcoal-segmented-control-radio__label[aria-disabled]:not([aria-disabled='false']) {
1447
- cursor: default;
1448
- opacity: 0.32;
1293
+ .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
1294
+ color: var(--charcoal-color-text-placeholder-default);
1449
1295
  }
1450
1296
 
1451
- .charcoal-segmented-control-radio__label[data-checked='true'] {
1452
- background-color: var(--charcoal-color-container-primary-default);
1453
- color: var(--charcoal-color-text-on-primary-default);
1454
- }
1297
+ .charcoal-ui-dropdown-selector-icon {
1298
+ color: var(--charcoal-color-icon-secondary-default);
1299
+ }
1300
+ .charcoal-dropdown-selector-menu-item {
1301
+ font-size: 14px;
1302
+ line-height: 22px;
1303
+ color: var(--charcoal-color-text-secondary-default);
1304
+ padding: 9px 0;
1455
1305
 
1456
- .charcoal-segmented-control-radio__label[data-uniform-segment-width='true'],
1457
- .charcoal-segmented-control-radio__label[data-full-width='true'] {
1458
- justify-content: center;
1459
- white-space: nowrap;
1460
- }
1306
+ display: flex;
1307
+ align-items: center;
1308
+ width: 100%;
1309
+ margin-left: 20px;
1310
+ }
1461
1311
 
1462
- .charcoal-segmented-control-radio__input {
1463
- position: absolute;
1312
+ .charcoal-dropdown-selector-menu-item[data-selected='true'] {
1313
+ margin-left: 0px;
1314
+ }
1464
1315
 
1465
- height: 0px;
1466
- width: 0px;
1467
- padding: 0;
1468
- margin: 0;
1316
+ .charcoal-dropdown-selector-menu-item-icon {
1317
+ color: var(--charcoal-color-text-secondary-default);
1318
+ padding-right: 4px;
1319
+ }
1469
1320
 
1470
- -webkit-appearance: none;
1321
+ .charcoal-dropdown-selector-menu-item-container {
1322
+ display: flex;
1323
+ align-items: center;
1324
+ }
1471
1325
 
1472
- -moz-appearance: none;
1326
+ .charcoal-dropdown-selector-menu-secondary {
1327
+ font-size: 12px;
1328
+ line-height: 20px;
1329
+ color: var(--charcoal-color-text-tertiary-default);
1330
+ padding-bottom: 9px;
1473
1331
 
1474
- appearance: none;
1475
- box-sizing: border-box;
1476
- overflow: hidden;
1477
- white-space: nowrap;
1478
- opacity: 0;
1332
+ display: flex;
1333
+ align-items: center;
1334
+ margin-left: 20px;
1335
+ }
1336
+
1337
+ .charcoal-dropdown-selector-menu-fullwidth {
1338
+ width: 100%;
1479
1339
  }
1480
1340
  .charcoal-carousel {
1481
1341
  --charcoal-carousel-gap: 0px;
@@ -1718,84 +1578,224 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1718
1578
  transition: 0.2s background-color;
1719
1579
  }
1720
1580
 
1721
- .charcoal-carousel__indicator__item:hover {
1722
- background-color: var(--charcoal-color-text-secondary-default);
1723
- }
1581
+ .charcoal-carousel__indicator__item:hover {
1582
+ background-color: var(--charcoal-color-text-secondary-default);
1583
+ }
1584
+
1585
+ .charcoal-carousel__indicator__item:focus-visible {
1586
+ outline: 2px solid rgba(0, 150, 250, 0.56);
1587
+ outline-offset: 2px;
1588
+ }
1589
+
1590
+ .charcoal-carousel__indicator__item[data-active='true'] {
1591
+ background-color: var(--charcoal-color-text-default);
1592
+ }
1593
+
1594
+ /* ── CSS Scroll Markers (progressive enhancement) ── */
1595
+
1596
+ /* CSS Scroll Markers / Anchor Positioning は新しい仕様で、stylelint がプロパティ・
1597
+ 擬似要素・擬似クラスを未知と判定するため、この @supports ブロックでは該当ルールを無効化する。 */
1598
+ /* stylelint-disable property-no-unknown, selector-pseudo-element-no-unknown, selector-pseudo-class-no-unknown */
1599
+ @supports (scroll-marker-group: after) {
1600
+ .charcoal-carousel[data-indicator='true'] {
1601
+ padding-bottom: 40px;
1602
+ }
1603
+
1604
+ .charcoal-carousel__scroller {
1605
+ anchor-name: --charcoal-carousel;
1606
+ scroll-marker-group: after;
1607
+ }
1608
+
1609
+ .charcoal-carousel__scroller::scroll-button(*) {
1610
+ content: none;
1611
+ }
1612
+
1613
+ .charcoal-carousel__scroller::scroll-marker-group {
1614
+ display: flex;
1615
+ justify-content: center;
1616
+ align-items: center;
1617
+ height: 40px;
1618
+ gap: 8px;
1619
+
1620
+ position: absolute;
1621
+ position-anchor: --charcoal-carousel;
1622
+ top: anchor(bottom);
1623
+ justify-self: anchor-center;
1624
+ }
1625
+
1626
+ .charcoal-carousel[data-indicator='false'] .charcoal-carousel__scroller {
1627
+ scroll-marker-group: none;
1628
+ }
1629
+
1630
+ .charcoal-carousel__item::scroll-marker {
1631
+ content: '';
1632
+ width: 8px;
1633
+ height: 8px;
1634
+ border: 0;
1635
+ border-radius: 50%;
1636
+ background-color: var(--charcoal-color-text-tertiary-default);
1637
+ cursor: pointer;
1638
+ transition: 0.2s background-color;
1639
+ }
1640
+
1641
+ .charcoal-carousel__item::scroll-marker:hover {
1642
+ background-color: var(--charcoal-color-text-secondary-default);
1643
+ }
1644
+
1645
+ .charcoal-carousel__item::scroll-marker:focus {
1646
+ outline: 2px solid rgba(0, 150, 250, 0.56);
1647
+ outline-offset: 2px;
1648
+ }
1649
+
1650
+ .charcoal-carousel__item::scroll-marker:target-current {
1651
+ background-color: var(--charcoal-color-text-default);
1652
+ }
1653
+
1654
+ .charcoal-carousel__indicator {
1655
+ display: none;
1656
+ }
1657
+ }
1658
+ /* stylelint-enable property-no-unknown, selector-pseudo-element-no-unknown, selector-pseudo-class-no-unknown */
1659
+ .charcoal-text-ellipsis {
1660
+ /* Runtime variables overridden by the React component. */
1661
+ --charcoal-text-ellipsis-line-limit: 1;
1662
+ --charcoal-text-ellipsis-line-height: inherit;
1663
+
1664
+ overflow: hidden;
1665
+ overflow-wrap: break-word;
1666
+ display: -webkit-box;
1667
+ -webkit-box-orient: vertical;
1668
+ -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1669
+ }
1670
+
1671
+ .charcoal-text-ellipsis[data-has-line-height='true'] {
1672
+ line-height: var(--charcoal-text-ellipsis-line-height);
1673
+ }
1674
+
1675
+ .charcoal-text-ellipsis[data-has-line-height='false'] {
1676
+ line-height: inherit;
1677
+ }
1678
+
1679
+ .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1680
+ text-overflow: ellipsis;
1681
+ white-space: nowrap;
1682
+ }
1683
+ .charcoal-pagination {
1684
+ display: flex;
1685
+ justify-content: center;
1686
+ align-items: center;
1687
+ }
1688
+
1689
+ .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
1690
+ min-width: 32px;
1691
+ min-height: 32px;
1692
+ }
1693
+
1694
+ .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
1695
+ min-width: 40px;
1696
+ min-height: 40px;
1697
+ }
1698
+
1699
+ /* stylelint-disable no-descending-specificity */
1700
+ .charcoal-pagination-button {
1701
+ cursor: pointer;
1702
+ -webkit-appearance: none;
1703
+ -moz-appearance: none;
1704
+ appearance: none;
1705
+ padding: 0;
1706
+ border-style: none;
1707
+ outline: none;
1708
+ text-decoration: none;
1709
+ font-family: inherit;
1710
+ font-style: inherit;
1711
+ font-variant: inherit;
1712
+ margin: 0;
1713
+ -webkit-user-select: none;
1714
+ -moz-user-select: none;
1715
+ user-select: none;
1716
+
1717
+ display: flex;
1718
+ align-items: center;
1719
+ justify-content: center;
1720
+ font-size: 14px;
1721
+ font-weight: 700;
1722
+ line-height: 22px;
1723
+
1724
+ /* HACK:
1725
+ * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1726
+ * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1727
+ */
1728
+ /* stylelint-disable-next-line property-no-vendor-prefix */
1729
+ -webkit-transform: translateZ(0);
1724
1730
 
1725
- .charcoal-carousel__indicator__item:focus-visible {
1726
- outline: 2px solid rgba(0, 150, 250, 0.56);
1727
- outline-offset: 2px;
1731
+ color: var(--charcoal-color-text-tertiary-default);
1732
+ background-color: var(--charcoal-color-container-default-a);
1733
+ border-radius: 20px;
1734
+ transition:
1735
+ 0.2s background-color,
1736
+ 0.2s box-shadow;
1737
+ }
1738
+ .charcoal-pagination-button:focus {
1739
+ outline: none;
1728
1740
  }
1729
-
1730
- .charcoal-carousel__indicator__item[data-active='true'] {
1731
- background-color: var(--charcoal-color-text-default);
1741
+ .charcoal-pagination-button::-moz-focus-inner {
1742
+ border-style: none;
1743
+ padding: 0;
1732
1744
  }
1733
-
1734
- /* ── CSS Scroll Markers (progressive enhancement) ── */
1735
-
1736
- /* CSS Scroll Markers / Anchor Positioning は新しい仕様で、stylelint がプロパティ・
1737
- 擬似要素・擬似クラスを未知と判定するため、この @supports ブロックでは該当ルールを無効化する。 */
1738
- /* stylelint-disable property-no-unknown, selector-pseudo-element-no-unknown, selector-pseudo-class-no-unknown */
1739
- @supports (scroll-marker-group: after) {
1740
- .charcoal-carousel[data-indicator='true'] {
1741
- padding-bottom: 40px;
1745
+ .charcoal-pagination-button[hidden] {
1746
+ visibility: hidden;
1747
+ display: block;
1742
1748
  }
1743
-
1744
- .charcoal-carousel__scroller {
1745
- anchor-name: --charcoal-carousel;
1746
- scroll-marker-group: after;
1749
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1750
+ .charcoal-pagination-button[aria-disabled='false']:hover {
1751
+ color: var(--charcoal-color-text-tertiary-default);
1752
+ background-color: var(--charcoal-color-container-secondary-default);
1747
1753
  }
1748
-
1749
- .charcoal-carousel__scroller::scroll-button(*) {
1750
- content: none;
1751
- }
1752
-
1753
- .charcoal-carousel__scroller::scroll-marker-group {
1754
- display: flex;
1755
- justify-content: center;
1756
- align-items: center;
1757
- height: 40px;
1758
- gap: 8px;
1759
-
1760
- position: absolute;
1761
- position-anchor: --charcoal-carousel;
1762
- top: anchor(bottom);
1763
- justify-self: anchor-center;
1764
- }
1765
-
1766
- .charcoal-carousel[data-indicator='false'] .charcoal-carousel__scroller {
1767
- scroll-marker-group: none;
1754
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1755
+ .charcoal-pagination-button[aria-disabled='false']:active {
1756
+ color: var(--charcoal-color-text-tertiary-press);
1757
+ background-color: var(--charcoal-color-container-tertiary-press);
1768
1758
  }
1769
-
1770
- .charcoal-carousel__item::scroll-marker {
1771
- content: '';
1772
- width: 8px;
1773
- height: 8px;
1774
- border: 0;
1775
- border-radius: 50%;
1776
- background-color: var(--charcoal-color-text-tertiary-default);
1777
- cursor: pointer;
1778
- transition: 0.2s background-color;
1759
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1760
+ .charcoal-pagination-button[aria-disabled='false']:focus {
1761
+ outline: none;
1762
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1779
1763
  }
1780
-
1781
- .charcoal-carousel__item::scroll-marker:hover {
1782
- background-color: var(--charcoal-color-text-secondary-default);
1764
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1765
+ .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1766
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1767
+ }
1768
+ .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1769
+ .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1770
+ box-shadow: none;
1771
+ }
1772
+ .charcoal-pagination-button[aria-current] {
1773
+ cursor: default;
1774
+ background-color: var(--charcoal-color-container-hud-default);
1775
+ color: var(--charcoal-color-text-on-hud-default);
1776
+ }
1777
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1778
+ .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1779
+ background-color: var(--charcoal-color-container-hud-default);
1780
+ color: var(--charcoal-color-text-on-hud-default);
1783
1781
  }
1782
+ /* stylelint-enable no-descending-specificity */
1784
1783
 
1785
- .charcoal-carousel__item::scroll-marker:focus {
1786
- outline: 2px solid rgba(0, 150, 250, 0.56);
1787
- outline-offset: 2px;
1788
- }
1784
+ .charcoal-pagination-nav-button[data-hidden] {
1785
+ visibility: hidden;
1786
+ }
1789
1787
 
1790
- .charcoal-carousel__item::scroll-marker:target-current {
1791
- background-color: var(--charcoal-color-text-default);
1792
- }
1788
+ .charcoal-pagination-spacer,
1789
+ .charcoal-pagination-spacer:hover,
1790
+ .charcoal-pagination-spacer:active {
1791
+ cursor: default;
1792
+ color: var(--charcoal-color-text-tertiary-default);
1793
+ background: none;
1794
+ }
1793
1795
 
1794
- .charcoal-carousel__indicator {
1795
- display: none;
1796
+ .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1797
+ opacity: 1;
1796
1798
  }
1797
- }
1798
- /* stylelint-enable property-no-unknown, selector-pseudo-element-no-unknown, selector-pseudo-class-no-unknown */
1799
1799
  .charcoal-text-field-assistive-text {
1800
1800
  font-size: 14px;
1801
1801
  line-height: 22px;
@@ -1894,43 +1894,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1894
1894
  .charcoal-radio-input:checked:not(:disabled):active::after {
1895
1895
  background-color: var(--charcoal-color-icon-on-primary-press);
1896
1896
  }
1897
- .charcoal-field-label {
1898
- font-size: 14px;
1899
- line-height: 22px;
1900
- font-weight: bold;
1901
- display: flow-root;
1902
- color: var(--charcoal-color-text-default-text1);
1903
- }
1904
-
1905
- .charcoal-field-label-required-text {
1906
- font-size: 14px;
1907
- line-height: 22px;
1908
- display: flow-root;
1909
- color: var(--charcoal-color-text-secondary-default);
1910
- }
1911
-
1912
- .charcoal-field-label-sub-label {
1913
- font-size: 14px;
1914
- line-height: 22px;
1915
- display: flow-root;
1916
- color: var(--charcoal-color-text-tertiary-default);
1917
- transition:
1918
- 0.2s color,
1919
- 0.2s box-shadow;
1920
- }
1921
-
1922
- .charcoal-field-label-root {
1923
- display: inline-flex;
1924
- align-items: center;
1925
- }
1926
-
1927
- .charcoal-field-label-root > .charcoal-field-label-required-text {
1928
- margin-left: 4px;
1929
- }
1930
-
1931
- .charcoal-field-label-root > .charcoal-field-label-sub-label {
1932
- margin-left: auto;
1933
- }
1934
1897
  .charcoal-switch-input {
1935
1898
  cursor: pointer;
1936
1899
  -webkit-appearance: none;
@@ -2015,9 +1978,66 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2015
1978
  .charcoal-switch-input:not(:disabled):checked:active {
2016
1979
  background-color: var(--charcoal-color-container-primary-press);
2017
1980
  }
2018
- .charcoal-menu-list {
2019
- padding: 0;
2020
- margin: 0;
1981
+ .charcoal-field-label {
1982
+ font-size: 14px;
1983
+ line-height: 22px;
1984
+ font-weight: bold;
1985
+ display: flow-root;
1986
+ color: var(--charcoal-color-text-default-text1);
1987
+ }
1988
+
1989
+ .charcoal-field-label-required-text {
1990
+ font-size: 14px;
1991
+ line-height: 22px;
1992
+ display: flow-root;
1993
+ color: var(--charcoal-color-text-secondary-default);
1994
+ }
1995
+
1996
+ .charcoal-field-label-sub-label {
1997
+ font-size: 14px;
1998
+ line-height: 22px;
1999
+ display: flow-root;
2000
+ color: var(--charcoal-color-text-tertiary-default);
2001
+ transition:
2002
+ 0.2s color,
2003
+ 0.2s box-shadow;
2004
+ }
2005
+
2006
+ .charcoal-field-label-root {
2007
+ display: inline-flex;
2008
+ align-items: center;
2009
+ }
2010
+
2011
+ .charcoal-field-label-root > .charcoal-field-label-required-text {
2012
+ margin-left: 4px;
2013
+ }
2014
+
2015
+ .charcoal-field-label-root > .charcoal-field-label-sub-label {
2016
+ margin-left: auto;
2017
+ }
2018
+ .charcoal-list-item {
2019
+ list-style: none;
2020
+ display: flex;
2021
+ align-items: center;
2022
+ min-height: 40px;
2023
+ cursor: pointer;
2024
+ outline: none;
2025
+
2026
+ padding-right: 16px;
2027
+ padding-left: 16px;
2028
+
2029
+ transition: background-color 0.2s;
2030
+ }
2031
+
2032
+ .charcoal-list-item:not([aria-disabled='true']):hover,
2033
+ .charcoal-list-item:not([aria-disabled='true']):focus,
2034
+ .charcoal-list-item:not([aria-disabled='true']):focus-within {
2035
+ background-color: var(--charcoal-color-container-secondary-default);
2036
+ }
2037
+
2038
+ .charcoal-list-item[aria-disabled='true'] {
2039
+ opacity: 0.32;
2040
+ cursor: default;
2021
2041
  }
2022
2042
  .charcoal-modal-dialog {
2023
2043
  margin: auto;
@@ -2178,29 +2198,9 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2178
2198
  border: 2px solid #fff;
2179
2199
  box-sizing: border-box;
2180
2200
  }
2181
- .charcoal-list-item {
2182
- list-style: none;
2183
- display: flex;
2184
- align-items: center;
2185
- min-height: 40px;
2186
- cursor: pointer;
2187
- outline: none;
2188
-
2189
- padding-right: 16px;
2190
- padding-left: 16px;
2191
-
2192
- transition: background-color 0.2s;
2193
- }
2194
-
2195
- .charcoal-list-item:not([aria-disabled='true']):hover,
2196
- .charcoal-list-item:not([aria-disabled='true']):focus,
2197
- .charcoal-list-item:not([aria-disabled='true']):focus-within {
2198
- background-color: var(--charcoal-color-container-secondary-default);
2199
- }
2200
-
2201
- .charcoal-list-item[aria-disabled='true'] {
2202
- opacity: 0.32;
2203
- cursor: default;
2201
+ .charcoal-menu-list {
2202
+ padding: 0;
2203
+ margin: 0;
2204
2204
  }
2205
2205
  .charcoal-popover {
2206
2206
  margin: 4px 0;