@charcoal-ui/react 6.0.0-rc.8 → 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 (272) 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 +907 -901
  249. package/dist/layered.css +907 -901
  250. package/dist/layered.css.map +1 -1
  251. package/package.json +10 -10
  252. package/src/__tests__/css-shorthand-safety.test.ts +150 -0
  253. package/src/_lib/compat.ts +1 -7
  254. package/src/components/Button/__snapshots__/index.css.snap +8 -3
  255. package/src/components/Button/index.css +8 -3
  256. package/src/components/Carousel/index.browser.test.tsx +1 -1
  257. package/src/components/Carousel/intersectionObserver.test.ts +12 -12
  258. package/src/components/Carousel/resizeObserver.test.ts +1 -1
  259. package/src/components/DropdownSelector/MenuItem/index.tsx +40 -2
  260. package/src/components/DropdownSelector/Popover/index.tsx +20 -1
  261. package/src/components/DropdownSelector/index.browser.test.tsx +94 -0
  262. package/src/components/DropdownSelector/index.test.tsx +57 -2
  263. package/src/components/DropdownSelector/index.tsx +37 -12
  264. package/src/components/FieldLabel/index.tsx +1 -2
  265. package/src/components/Icon/index.tsx +2 -1
  266. package/src/components/LoadingSpinner/__snapshots__/index.css.snap +1 -2
  267. package/src/components/LoadingSpinner/index.css +1 -2
  268. package/src/components/Modal/__snapshots__/index.css.snap +1 -0
  269. package/src/components/Pagination/__snapshots__/index.css.snap +3 -1
  270. package/src/components/Pagination/index.css +3 -1
  271. package/src/components/TextEllipsis/TextEllipsis.story.tsx +1 -1
  272. package/src/css.d.ts +1 -0
package/dist/layered.css CHANGED
@@ -6,6 +6,49 @@
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
+ }
9
52
  .charcoal-radio__label {
10
53
  display: grid;
11
54
  grid-template-columns: auto 1fr;
@@ -24,150 +67,145 @@
24
67
  line-height: 22px;
25
68
  color: var(--charcoal-color-text-default);
26
69
  }
27
- .charcoal-button {
28
- -webkit-appearance: none;
29
- -moz-appearance: none;
30
- appearance: none;
31
- background: transparent;
32
- box-sizing: border-box;
33
- padding: 0 24px;
34
- border-style: none;
35
- outline: none;
36
- text-rendering: inherit;
37
- letter-spacing: inherit;
38
- word-spacing: inherit;
39
- text-decoration: none;
40
- font: inherit;
41
- margin: 0;
42
- overflow: visible;
43
- text-transform: none;
44
- width: -moz-min-content;
45
- width: min-content;
46
- display: inline-grid;
70
+ .charcoal-radio-group {
71
+ display: grid;
72
+ grid-template-columns: 1fr;
73
+ grid-gap: 8px;
74
+ }
75
+ .charcoal-multi-select {
76
+ display: grid;
77
+ grid-template-columns: auto 1fr;
47
78
  align-items: center;
48
- justify-content: center;
79
+ position: relative;
49
80
  cursor: pointer;
50
- -webkit-user-select: none;
51
- -moz-user-select: none;
52
- user-select: none;
53
- white-space: nowrap;
54
- border-radius: 999999px;
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;
55
93
  font-size: 14px;
56
94
  line-height: 22px;
57
- font-weight: bold;
58
95
  color: var(--charcoal-color-text-default);
59
- background-color: var(--charcoal-color-container-secondary-default-a);
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'] {
115
+ -webkit-appearance: none;
116
+ -moz-appearance: none;
117
+ appearance: none;
118
+ display: block;
119
+ width: 20px;
120
+ height: 20px;
121
+ margin: 0;
122
+ background-color: var(--charcoal-color-container-neutral-default);
123
+ border-radius: 999999px;
60
124
  transition:
61
- 0.2s color,
62
125
  0.2s background-color,
63
126
  0.2s box-shadow;
64
- height: 40px;
65
127
  }
66
128
 
67
- .charcoal-button:disabled,
68
- .charcoal-button[aria-disabled]:not([aria-disabled='false']) {
69
- cursor: default;
70
- opacity: 0.32;
129
+ .charcoal-multi-select-input[type='checkbox']:checked {
130
+ background-color: var(--charcoal-color-container-primary-default);
71
131
  }
72
132
 
73
- .charcoal-button:not(:disabled):not([aria-disabled]):focus-visible,
74
- .charcoal-button[aria-disabled='false']:focus-visible {
133
+ .charcoal-multi-select-input[type='checkbox']:focus {
75
134
  outline: none;
76
135
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
77
136
  }
78
137
 
79
- .charcoal-button:not(:disabled):not([aria-disabled]):hover,
80
- .charcoal-button[aria-disabled='false']:hover {
81
- color: var(--charcoal-color-text-hover);
82
- background-color: var(--charcoal-color-container-secondary-hover-a);
138
+ .charcoal-multi-select-input[type='checkbox']:focus-visible {
139
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
83
140
  }
84
141
 
85
- .charcoal-button:not(:disabled):not([aria-disabled]):active,
86
- .charcoal-button[aria-disabled='false']:active,
87
- .charcoal-button[data-active='true'] {
88
- color: var(--charcoal-color-text-press);
89
- background-color: var(--charcoal-color-container-secondary-press-a);
142
+ .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
143
+ box-shadow: none;
90
144
  }
91
145
 
92
- .charcoal-button[data-variant='Primary'] {
93
- color: var(--charcoal-color-text-on-primary-default);
94
- background-color: var(--charcoal-color-container-primary-default);
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);
95
149
  }
96
150
 
97
- .charcoal-button[data-variant='Primary']:hover:not(:disabled):not([aria-disabled]),
98
- .charcoal-button[data-variant='Primary']:hover[aria-disabled='false'] {
99
- color: var(--charcoal-color-text-on-primary-hover);
100
- background-color: var(--charcoal-color-container-primary-hover);
101
- }
102
-
103
- .charcoal-button[data-variant='Primary']:active:not(:disabled):not([aria-disabled]),
104
- .charcoal-button[data-variant='Primary']:active[aria-disabled='false'],
105
- .charcoal-button[data-variant='Primary'][data-active='true'] {
106
- color: var(--charcoal-color-text-on-primary-press);
107
- background-color: var(--charcoal-color-container-primary-press);
108
- }
109
-
110
- .charcoal-button[data-variant='Overlay'] {
111
- color: var(--charcoal-color-text-on-on-img-default);
112
- background-color: var(--charcoal-color-container-on-img-default);
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);
113
154
  }
114
155
 
115
- .charcoal-button[data-variant='Overlay']:hover:not(:disabled):not([aria-disabled]),
116
- .charcoal-button[data-variant='Overlay']:hover[aria-disabled='false'] {
117
- color: var(--charcoal-color-text-on-on-img-hover);
118
- background-color: var(--charcoal-color-container-on-img-hover);
119
- }
120
-
121
- .charcoal-button[data-variant='Overlay']:active:not(:disabled):not([aria-disabled]),
122
- .charcoal-button[data-variant='Overlay']:active[aria-disabled='false'],
123
- .charcoal-button[data-variant='Overlay'][data-active='true'] {
124
- color: var(--charcoal-color-text-on-on-img-press);
125
- background-color: var(--charcoal-color-container-on-img-press);
126
- }
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);
159
+ }
127
160
 
128
- .charcoal-button[data-variant='Navigation'] {
129
- color: var(--charcoal-color-text-on-hud-default);
130
- background-color: var(--charcoal-color-container-hud-default);
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);
131
164
  }
132
165
 
133
- .charcoal-button[data-variant='Navigation']:hover:not(:disabled):not([aria-disabled]),
134
- .charcoal-button[data-variant='Navigation']:hover[aria-disabled='false'] {
135
- color: var(--charcoal-color-text-on-hud-hover);
136
- background-color: var(--charcoal-color-container-hud-hover);
137
- }
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
+ }
138
171
 
139
- .charcoal-button[data-variant='Navigation']:active:not(:disabled):not([aria-disabled]),
140
- .charcoal-button[data-variant='Navigation']:active[aria-disabled='false'],
141
- .charcoal-button[data-variant='Navigation'][data-active='true'] {
142
- color: var(--charcoal-color-text-on-hud-press);
143
- background-color: var(--charcoal-color-container-hud-press);
144
- }
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
+ }
145
175
 
146
- .charcoal-button[data-variant='Danger'] {
147
- color: var(--charcoal-color-text-on-negative-default);
148
- background-color: var(--charcoal-color-container-negative-default);
176
+ .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
177
+ background-color: var(--charcoal-color-container-on-img-default);
149
178
  }
150
179
 
151
- .charcoal-button[data-variant='Danger']:hover:not(:disabled):not([aria-disabled]),
152
- .charcoal-button[data-variant='Danger']:hover[aria-disabled='false'] {
153
- color: var(--charcoal-color-text-on-negative-hover);
154
- background-color: var(--charcoal-color-container-negative-hover);
155
- }
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
+ }
156
194
 
157
- .charcoal-button[data-variant='Danger']:active:not(:disabled):not([aria-disabled]),
158
- .charcoal-button[data-variant='Danger']:active[aria-disabled='false'],
159
- .charcoal-button[data-variant='Danger'][data-active='true'] {
160
- color: var(--charcoal-color-text-on-negative-press);
161
- background-color: var(--charcoal-color-container-negative-press);
162
- }
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);
199
+ }
163
200
 
164
- .charcoal-button[data-size='S'] {
165
- padding: 0 16px;
166
- height: 32px;
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);
167
203
  }
168
204
 
169
- .charcoal-button[data-full-width='true'] {
170
- width: 100%;
205
+ .charcoal-multi-select-overlay[data-overlay='true'] {
206
+ border-color: var(--charcoal-color-border-hud);
207
+ border-width: 2px;
208
+ border-style: solid;
171
209
  }
172
210
  .charcoal-clickable {
173
211
  cursor: pointer;
@@ -212,245 +250,6 @@
212
250
  border-style: none;
213
251
  padding: 0;
214
252
  }
215
- .charcoal-icon-button {
216
- cursor: pointer;
217
- -webkit-appearance: none;
218
- -moz-appearance: none;
219
- appearance: none;
220
- background: transparent;
221
- padding: 0;
222
- border-style: none;
223
- outline: none;
224
- color: inherit;
225
- text-rendering: inherit;
226
- letter-spacing: inherit;
227
- word-spacing: inherit;
228
- text-decoration: none;
229
- font: inherit;
230
- margin: 0;
231
- overflow: visible;
232
- text-transform: none;
233
-
234
- -webkit-user-select: none;
235
-
236
- -moz-user-select: none;
237
-
238
- user-select: none;
239
- display: flex;
240
- align-items: center;
241
- justify-content: center;
242
- border-radius: 999999px;
243
- transition:
244
- 0.2s background-color,
245
- 0.2s box-shadow;
246
- }
247
-
248
- .charcoal-icon-button:disabled,
249
- .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
250
- cursor: default;
251
- opacity: 0.32;
252
- }
253
-
254
- .charcoal-icon-button:focus {
255
- outline: none;
256
- }
257
-
258
- .charcoal-icon-button::-moz-focus-inner {
259
- border-style: none;
260
- padding: 0;
261
- }
262
-
263
- .charcoal-icon-button[data-size='XS'] {
264
- width: 20px;
265
- height: 20px;
266
- }
267
-
268
- .charcoal-icon-button[data-size='S'] {
269
- width: 32px;
270
- height: 32px;
271
- }
272
-
273
- .charcoal-icon-button[data-size='M'] {
274
- width: 40px;
275
- height: 40px;
276
- }
277
-
278
- .charcoal-icon-button[data-variant='Default'] {
279
- color: var(--charcoal-color-icon-tertiary-default);
280
- background-color: transparent;
281
- }
282
-
283
- .charcoal-icon-button[data-variant='Default'][data-active='true']:not(:disabled):not([aria-disabled]),
284
- .charcoal-icon-button[data-variant='Default'][data-active='true'][aria-disabled='false'] {
285
- color: var(--charcoal-color-icon-tertiary-press);
286
- background-color: var(--charcoal-color-container-press-a);
287
- }
288
-
289
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
290
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:hover {
291
- color: var(--charcoal-color-icon-tertiary-hover);
292
- background-color: var(--charcoal-color-container-hover-a);
293
- }
294
-
295
- .charcoal-icon-button[data-variant='Default'][data-active='false']:not(:disabled):not([aria-disabled]):active,
296
- .charcoal-icon-button[data-variant='Default'][data-active='false'][aria-disabled='false']:active {
297
- color: var(--charcoal-color-icon-tertiary-press);
298
- background-color: var(--charcoal-color-container-press-a);
299
- }
300
-
301
- .charcoal-icon-button[data-variant='Overlay'] {
302
- color: var(--charcoal-color-icon-on-on-img-default);
303
- background-color: var(--charcoal-color-container-on-img-default);
304
- }
305
-
306
- .charcoal-icon-button[data-variant='Overlay'][data-active='true']:not(:disabled):not([aria-disabled]),
307
- .charcoal-icon-button[data-variant='Overlay'][data-active='true'][aria-disabled='false'] {
308
- color: var(--charcoal-color-icon-on-on-img-press);
309
- background-color: var(--charcoal-color-container-on-img-press);
310
- }
311
-
312
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):hover,
313
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:hover {
314
- color: var(--charcoal-color-icon-on-on-img-hover);
315
- background-color: var(--charcoal-color-container-on-img-hover);
316
- }
317
-
318
- .charcoal-icon-button[data-variant='Overlay'][data-active='false']:not(:disabled):not([aria-disabled]):active,
319
- .charcoal-icon-button[data-variant='Overlay'][data-active='false'][aria-disabled='false']:active {
320
- color: var(--charcoal-color-icon-on-on-img-press);
321
- background-color: var(--charcoal-color-container-on-img-press);
322
- }
323
-
324
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus,
325
- .charcoal-icon-button[aria-disabled='false']:focus {
326
- outline: none;
327
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
328
- }
329
-
330
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus-visible,
331
- .charcoal-icon-button[aria-disabled='false']:focus-visible {
332
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
333
- }
334
-
335
- .charcoal-icon-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
336
- .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
337
- box-shadow: none;
338
- }
339
- .charcoal-radio-group {
340
- display: grid;
341
- grid-template-columns: 1fr;
342
- grid-gap: 8px;
343
- }
344
- .charcoal-modal-background {
345
- overflow: auto;
346
- display: flex;
347
- position: fixed;
348
- top: 0;
349
- left: 0;
350
- width: 100%;
351
- height: 100%;
352
- justify-content: center;
353
- padding: 40px 0;
354
- box-sizing: border-box;
355
-
356
- background-color: var(--charcoal-color-background-overlay);
357
- }
358
-
359
- @media (max-width: 743px) {
360
- .charcoal-modal-background[data-bottom-sheet='true'],
361
- .charcoal-modal-background[data-bottom-sheet='full'] {
362
- padding: 0;
363
- }
364
- }
365
-
366
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
367
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
368
- 色や transform が変わってもアニメーションしないようにする */
369
- .charcoal-modal-background[data-animation] {
370
- overflow: hidden;
371
- }
372
-
373
- .charcoal-modal-background[data-animation='entering'],
374
- .charcoal-modal-background[data-animation='exiting'] {
375
- transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
376
- }
377
-
378
- /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
379
- 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
380
- .charcoal-modal-background[data-animation='exited'],
381
- .charcoal-modal-background[data-animation='exiting'] {
382
- background-color: transparent;
383
- pointer-events: none;
384
- }
385
-
386
- .charcoal-modal-background[data-animation='entered'] {
387
- overflow: auto;
388
- }
389
-
390
- .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
391
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
392
- transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
393
- }
394
-
395
- .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
396
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
397
- transform: translateY(100%);
398
- }
399
-
400
- .charcoal-modal-close-button {
401
- position: absolute;
402
- top: 8px;
403
- right: 8px;
404
-
405
- color: var(--charcoal-color-text-tertiary-default);
406
- transition: 0.2s color;
407
- }
408
-
409
- .charcoal-modal-title {
410
- margin: 0;
411
- font-weight: inherit;
412
- font-size: inherit;
413
- }
414
- .charcoal-modal-header-root {
415
- height: 64px;
416
- display: grid;
417
- align-content: center;
418
- justify-content: center;
419
- }
420
-
421
- @media (max-width: 743px) {
422
- .charcoal-modal-header-root[data-bottom-sheet='true'],
423
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
424
- height: 48px;
425
- }
426
- }
427
-
428
- .charcoal-modal-header-title {
429
- color: var(--charcoal-color-text-default);
430
- font-size: 16px;
431
- line-height: 24px;
432
- font-weight: bold;
433
- display: flow-root;
434
- }
435
-
436
- .charcoal-modal-align {
437
- padding-left: 16px;
438
- padding-right: 16px;
439
- }
440
-
441
- .charcoal-modal-body {
442
- padding-bottom: 40px;
443
- }
444
-
445
- .charcoal-modal-buttons {
446
- display: grid;
447
- grid-auto-flow: row;
448
- grid-row-gap: 8px;
449
-
450
- padding-top: 16px;
451
- padding-left: 16px;
452
- padding-right: 16px;
453
- }
454
253
  .charcoal-switch__label {
455
254
  display: inline-grid;
456
255
  grid-template-columns: auto 1fr;
@@ -573,482 +372,450 @@
573
372
  font-size: 14px;
574
373
  color: var(--charcoal-color-text-tertiary-default);
575
374
  }
576
- .charcoal-multi-select {
577
- display: grid;
578
- grid-template-columns: auto 1fr;
579
- align-items: center;
580
- position: relative;
581
- cursor: pointer;
582
- gap: 4px;
583
- }
584
-
585
- .charcoal-multi-select:disabled,
586
- .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
587
- opacity: 0.32;
588
- cursor: default;
589
- }
590
-
591
- .charcoal-multi-select-label {
592
- display: flow-root;
593
- align-items: center;
594
- font-size: 14px;
595
- line-height: 22px;
596
- color: var(--charcoal-color-text-default);
597
- }
598
-
599
- .charcoal-multi-select-label::before {
600
- display: block;
601
- width: 0;
602
- height: 0;
603
- content: '';
604
- margin-top: -4px;
605
- }
606
-
607
- .charcoal-multi-select-label::after {
608
- display: block;
609
- width: 0;
610
- height: 0;
611
- content: '';
612
- margin-bottom: -4px;
613
- }
614
-
615
- .charcoal-multi-select-input[type='checkbox'] {
375
+ .charcoal-button {
616
376
  -webkit-appearance: none;
617
377
  -moz-appearance: none;
618
378
  appearance: none;
619
- display: block;
620
- width: 20px;
621
- height: 20px;
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;
389
+ font-style: inherit;
390
+ font-variant: inherit;
622
391
  margin: 0;
623
- background-color: var(--charcoal-color-container-neutral-default);
392
+ overflow: visible;
393
+ text-transform: none;
394
+ width: -moz-min-content;
395
+ width: min-content;
396
+ display: inline-grid;
397
+ align-items: center;
398
+ justify-content: center;
399
+ cursor: pointer;
400
+ -webkit-user-select: none;
401
+ -moz-user-select: none;
402
+ user-select: none;
403
+ white-space: nowrap;
624
404
  border-radius: 999999px;
405
+ font-size: 14px;
406
+ line-height: 22px;
407
+ font-weight: bold;
408
+ color: var(--charcoal-color-text-default);
409
+ background-color: var(
410
+ --charcoal-color-container-secondary-default-a,
411
+ transparent
412
+ );
625
413
  transition:
414
+ 0.2s color,
626
415
  0.2s background-color,
627
416
  0.2s box-shadow;
417
+ height: 40px;
628
418
  }
629
419
 
630
- .charcoal-multi-select-input[type='checkbox']:checked {
631
- background-color: var(--charcoal-color-container-primary-default);
420
+ .charcoal-button:disabled,
421
+ .charcoal-button[aria-disabled]:not([aria-disabled='false']) {
422
+ cursor: default;
423
+ opacity: 0.32;
632
424
  }
633
425
 
634
- .charcoal-multi-select-input[type='checkbox']:focus {
426
+ .charcoal-button:not(:disabled):not([aria-disabled]):focus-visible,
427
+ .charcoal-button[aria-disabled='false']:focus-visible {
635
428
  outline: none;
636
429
  box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
637
430
  }
638
431
 
639
- .charcoal-multi-select-input[type='checkbox']:focus-visible {
640
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
432
+ .charcoal-button:not(:disabled):not([aria-disabled]):hover,
433
+ .charcoal-button[aria-disabled='false']:hover {
434
+ color: var(--charcoal-color-text-hover);
435
+ background-color: var(--charcoal-color-container-secondary-hover-a);
641
436
  }
642
437
 
643
- .charcoal-multi-select-input[type='checkbox']:focus:not(:focus-visible) {
644
- box-shadow: none;
438
+ .charcoal-button:not(:disabled):not([aria-disabled]):active,
439
+ .charcoal-button[aria-disabled='false']:active,
440
+ .charcoal-button[data-active='true'] {
441
+ color: var(--charcoal-color-text-press);
442
+ background-color: var(--charcoal-color-container-secondary-press-a);
645
443
  }
646
444
 
647
- .charcoal-multi-select-input[type='checkbox']:hover:not(:disabled):not([aria-disabled]),
648
- .charcoal-multi-select-input[type='checkbox']:hover[aria-disabled='false'] {
649
- background-color: var(--charcoal-color-container-neutral-hover);
445
+ .charcoal-button[data-variant='Primary'] {
446
+ color: var(--charcoal-color-text-on-primary-default);
447
+ background-color: var(--charcoal-color-container-primary-default);
650
448
  }
651
449
 
652
- .charcoal-multi-select-input[type='checkbox']:active:not(:disabled):not([aria-disabled]),
653
- .charcoal-multi-select-input[type='checkbox']:active[aria-disabled='false'] {
654
- background-color: var(--charcoal-color-container-neutral-press);
655
- }
450
+ .charcoal-button[data-variant='Primary']:hover:not(:disabled):not([aria-disabled]),
451
+ .charcoal-button[data-variant='Primary']:hover[aria-disabled='false'] {
452
+ color: var(--charcoal-color-text-on-primary-hover);
453
+ background-color: var(--charcoal-color-container-primary-hover);
454
+ }
656
455
 
657
- .charcoal-multi-select-input[type='checkbox']:checked:hover:not(:disabled):not([aria-disabled]),
658
- .charcoal-multi-select-input[type='checkbox']:checked:hover[aria-disabled='false'] {
659
- background-color: var(--charcoal-color-container-primary-hover);
660
- }
456
+ .charcoal-button[data-variant='Primary']:active:not(:disabled):not([aria-disabled]),
457
+ .charcoal-button[data-variant='Primary']:active[aria-disabled='false'],
458
+ .charcoal-button[data-variant='Primary'][data-active='true'] {
459
+ color: var(--charcoal-color-text-on-primary-press);
460
+ background-color: var(--charcoal-color-container-primary-press);
461
+ }
661
462
 
662
- .charcoal-multi-select-input[type='checkbox']:checked:active:not(:disabled):not([aria-disabled]),
663
- .charcoal-multi-select-input[type='checkbox']:checked:active[aria-disabled='false'] {
664
- background-color: var(--charcoal-color-container-primary-press);
463
+ .charcoal-button[data-variant='Overlay'] {
464
+ color: var(--charcoal-color-text-on-on-img-default);
465
+ background-color: var(--charcoal-color-container-on-img-default);
665
466
  }
666
467
 
667
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false']:not(:disabled):not(
668
- [aria-disabled]
669
- ) {
670
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
671
- }
468
+ .charcoal-button[data-variant='Overlay']:hover:not(:disabled):not([aria-disabled]),
469
+ .charcoal-button[data-variant='Overlay']:hover[aria-disabled='false'] {
470
+ color: var(--charcoal-color-text-on-on-img-hover);
471
+ background-color: var(--charcoal-color-container-on-img-hover);
472
+ }
672
473
 
673
- .charcoal-multi-select-input[type='checkbox'][aria-invalid='true'][data-overlay='false'][aria-disabled='false'] {
674
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
675
- }
474
+ .charcoal-button[data-variant='Overlay']:active:not(:disabled):not([aria-disabled]),
475
+ .charcoal-button[data-variant='Overlay']:active[aria-disabled='false'],
476
+ .charcoal-button[data-variant='Overlay'][data-active='true'] {
477
+ color: var(--charcoal-color-text-on-on-img-press);
478
+ background-color: var(--charcoal-color-container-on-img-press);
479
+ }
676
480
 
677
- .charcoal-multi-select-input[type='checkbox'][data-overlay='true'] {
678
- background-color: var(--charcoal-color-container-on-img-default);
481
+ .charcoal-button[data-variant='Navigation'] {
482
+ color: var(--charcoal-color-text-on-hud-default);
483
+ background-color: var(--charcoal-color-container-hud-default);
679
484
  }
680
485
 
681
- .charcoal-multi-select-overlay {
682
- position: absolute;
683
- top: -2px;
684
- left: -2px;
685
- box-sizing: border-box;
686
- display: flex;
687
- align-items: center;
688
- justify-content: center;
689
- width: 24px;
690
- height: 24px;
691
- border-radius: 999999px;
692
- color: var(--charcoal-color-icon-on-primary-default);
693
- transition: 0.2s box-shadow;
694
- }
486
+ .charcoal-button[data-variant='Navigation']:hover:not(:disabled):not([aria-disabled]),
487
+ .charcoal-button[data-variant='Navigation']:hover[aria-disabled='false'] {
488
+ color: var(--charcoal-color-text-on-hud-hover);
489
+ background-color: var(--charcoal-color-container-hud-hover);
490
+ }
695
491
 
696
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true']:not(:disabled):not(
697
- [aria-disabled]
698
- ) {
699
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
700
- }
492
+ .charcoal-button[data-variant='Navigation']:active:not(:disabled):not([aria-disabled]),
493
+ .charcoal-button[data-variant='Navigation']:active[aria-disabled='false'],
494
+ .charcoal-button[data-variant='Navigation'][data-active='true'] {
495
+ color: var(--charcoal-color-text-on-hud-press);
496
+ background-color: var(--charcoal-color-container-hud-press);
497
+ }
701
498
 
702
- .charcoal-multi-select-overlay[aria-invalid='true'][data-overlay='true'][aria-disabled='false'] {
703
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
499
+ .charcoal-button[data-variant='Danger'] {
500
+ color: var(--charcoal-color-text-on-negative-default);
501
+ background-color: var(--charcoal-color-container-negative-default);
704
502
  }
705
503
 
706
- .charcoal-multi-select-overlay[data-overlay='true'] {
707
- border-color: var(--charcoal-color-border-hud);
708
- border-width: 2px;
709
- border-style: solid;
504
+ .charcoal-button[data-variant='Danger']:hover:not(:disabled):not([aria-disabled]),
505
+ .charcoal-button[data-variant='Danger']:hover[aria-disabled='false'] {
506
+ color: var(--charcoal-color-text-on-negative-hover);
507
+ background-color: var(--charcoal-color-container-negative-hover);
508
+ }
509
+
510
+ .charcoal-button[data-variant='Danger']:active:not(:disabled):not([aria-disabled]),
511
+ .charcoal-button[data-variant='Danger']:active[aria-disabled='false'],
512
+ .charcoal-button[data-variant='Danger'][data-active='true'] {
513
+ color: var(--charcoal-color-text-on-negative-press);
514
+ background-color: var(--charcoal-color-container-negative-press);
515
+ }
516
+
517
+ .charcoal-button[data-size='S'] {
518
+ padding: 0 16px;
519
+ height: 32px;
710
520
  }
711
- .charcoal-text-area-root {
712
- display: grid;
713
- grid-template-columns: 1fr;
714
- grid-gap: 4px;
715
- }
716
521
 
717
- .charcoal-text-area-root[aria-disabled='true'] {
718
- opacity: 0.32;
522
+ .charcoal-button[data-full-width='true'] {
523
+ width: 100%;
719
524
  }
525
+ .charcoal-icon-button {
526
+ cursor: pointer;
527
+ -webkit-appearance: none;
528
+ -moz-appearance: none;
529
+ appearance: none;
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;
540
+ margin: 0;
541
+ overflow: visible;
542
+ text-transform: none;
720
543
 
721
- .charcoal-text-area-container {
722
- /* Runtime variable overridden by the React component. */
723
- --charcoal-text-area-rows: 4;
544
+ -webkit-user-select: none;
724
545
 
725
- position: relative;
726
- overflow: hidden;
546
+ -moz-user-select: none;
727
547
 
728
- color: var(--charcoal-color-text-secondary-default);
729
- background-color: var(--charcoal-color-container-secondary-default-a);
730
- border-radius: 4px;
548
+ user-select: none;
549
+ display: flex;
550
+ align-items: center;
551
+ justify-content: center;
552
+ border-radius: 999999px;
731
553
  transition:
732
554
  0.2s background-color,
733
555
  0.2s box-shadow;
734
- height: calc(22px * var(--charcoal-text-area-rows) + 18px);
735
556
  }
736
557
 
737
- .charcoal-text-area-container[aria-invalid='true'] {
738
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
558
+ .charcoal-icon-button:disabled,
559
+ .charcoal-icon-button[aria-disabled]:not([aria-disabled='false']) {
560
+ cursor: default;
561
+ opacity: 0.32;
739
562
  }
740
563
 
741
- .charcoal-text-area-container:focus-within {
564
+ .charcoal-icon-button:focus {
742
565
  outline: none;
743
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
744
566
  }
745
567
 
746
- .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
747
- height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
568
+ .charcoal-icon-button::-moz-focus-inner {
569
+ border-style: none;
570
+ padding: 0;
748
571
  }
749
572
 
750
- .charcoal-text-area-container:not([aria-disabled='true']):hover {
751
- background-color: var(--charcoal-color-container-secondary-hover-a);
573
+ .charcoal-icon-button[data-size='XS'] {
574
+ width: 20px;
575
+ height: 20px;
752
576
  }
753
577
 
754
- .charcoal-text-area-container[aria-invalid='true']:focus-within {
755
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
578
+ .charcoal-icon-button[data-size='S'] {
579
+ width: 32px;
580
+ height: 32px;
756
581
  }
757
582
 
758
- .charcoal-text-area-textarea {
759
- border: none;
760
- outline: none;
761
- resize: none;
762
- font-family: inherit;
763
- color: inherit;
764
- box-sizing: border-box;
765
-
766
- /* Prevent zooming for iOS Safari */
767
- --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
768
- --charcoal-textarea-line-height: calc(
769
- 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
770
- );
771
- --charcoal-textarea-padding-y: calc(
772
- 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
773
- );
774
- --charcoal-textarea-padding-x: calc(
775
- 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
776
- );
777
-
778
- transform-origin: top left;
779
- transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
780
- width: calc(100% / var(--charcoal-textarea-safari-prevent-zoom-scale));
781
- font-size: calc(14px / var(--charcoal-textarea-safari-prevent-zoom-scale));
782
- line-height: var(--charcoal-textarea-line-height);
783
- padding: var(--charcoal-textarea-padding-y) var(--charcoal-textarea-padding-x);
784
- height: calc(
785
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
786
- var(--charcoal-textarea-padding-y) * 2
787
- );
788
-
789
- /* Display box-shadow for iOS Safari */
790
- -webkit-appearance: none;
791
- -moz-appearance: none;
792
- appearance: none;
793
-
794
- background: none;
795
- }
796
-
797
- .charcoal-text-area-textarea[data-no-bottom-padding='true'] {
798
- padding: var(--charcoal-textarea-padding-y)
799
- var(--charcoal-textarea-padding-x) 0;
800
- height: calc(
801
- var(--charcoal-textarea-line-height) * var(--charcoal-text-area-rows) +
802
- var(--charcoal-textarea-padding-y)
803
- );
804
- }
805
-
806
- .charcoal-text-area-textarea::-moz-placeholder {
807
- color: var(--charcoal-color-text-placeholder-default);
583
+ .charcoal-icon-button[data-size='M'] {
584
+ width: 40px;
585
+ height: 40px;
808
586
  }
809
587
 
810
- .charcoal-text-area-textarea::placeholder {
811
- color: var(--charcoal-color-text-placeholder-default);
588
+ .charcoal-icon-button[data-variant='Default'] {
589
+ color: var(--charcoal-color-icon-tertiary-default);
590
+ background-color: transparent;
812
591
  }
813
592
 
814
- .charcoal-text-area-counter {
815
- position: absolute;
816
- bottom: 9px;
817
- right: 8px;
818
-
819
- line-height: 22px;
820
- font-size: 14px;
821
- color: var(--charcoal-color-text-tertiary-default);
822
- }
823
- .charcoal-icon {
824
- display: inline-flex;
825
- width: var(--charcoal-icon-size);
826
- height: var(--charcoal-icon-size);
827
- }
828
-
829
- pixiv-icon:not(:defined) {
830
- --pixiv-icon-base: 24px;
831
- --pixiv-icon-scale: 1;
832
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
833
-
834
- display: inline-flex;
835
- /* --charcoal-icon-size がセットされていればそれを優先、
836
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
837
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
838
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
839
- }
840
-
841
- pixiv-icon:not(:defined)[name^='16/'] {
842
- --pixiv-icon-base: 16px;
843
- --pixiv-icon-size: 16px;
844
- }
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
+ }
845
598
 
846
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
847
- --pixiv-icon-scale: 2;
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);
848
603
  }
849
604
 
850
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
851
- --pixiv-icon-scale: 3;
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);
852
609
  }
853
610
 
854
- pixiv-icon:not(:defined)[name^='32/'] {
855
- --pixiv-icon-base: 32px;
856
- --pixiv-icon-size: 32px;
611
+ .charcoal-icon-button[data-variant='Overlay'] {
612
+ color: var(--charcoal-color-icon-on-on-img-default);
613
+ background-color: var(--charcoal-color-container-on-img-default);
857
614
  }
858
615
 
859
- pixiv-icon:not(:defined)[name^='Inline/'] {
860
- --pixiv-icon-base: 16px;
861
- }
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
+ }
862
621
 
863
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
864
- --pixiv-icon-scale: 2;
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);
865
626
  }
866
- .charcoal-loading-spinner {
867
- box-sizing: content-box;
868
- margin: auto;
869
- padding: 16px;
870
- border-radius: 8px;
871
- font-size: 48px;
872
- width: 48px;
873
- height: 48px;
874
- opacity: 0.84;
875
- color: var(--charcoal-color-icon-tertiary-default);
876
- background-color: var(--charcoal-color-background-default);
877
- }
878
627
 
879
- .charcoal-loading-spinner[data-transparent='true'] {
880
- background-color: var(--charcoal-color-container-default-a);
881
- }
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
+ }
882
633
 
883
- @keyframes charcoal-loading-spinner-icon-scale-out {
884
- from {
885
- transform: scale(0);
886
- opacity: 1;
887
- }
888
- to {
889
- transform: scale(1);
890
- opacity: 0;
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);
891
638
  }
892
- }
893
639
 
894
- .charcoal-loading-spinner-icon {
895
- width: 1em;
896
- height: 1em;
897
- border-radius: 1em;
898
- background-color: currentColor;
899
- animation: charcoal-loading-spinner-icon-scale-out 1s both ease-out;
900
- animation-iteration-count: infinite;
901
- }
902
-
903
- .charcoal-loading-spinner-icon[data-reset-animation] {
904
- animation: none;
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);
905
643
  }
906
644
 
907
- .charcoal-loading-spinner-icon[data-once='true'] {
908
- animation-iteration-count: 1;
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;
909
648
  }
910
- .charcoal-dropdown-selector-menu-item {
911
- font-size: 14px;
912
- line-height: 22px;
913
- color: var(--charcoal-color-text-secondary-default);
914
- padding: 9px 0;
915
-
916
- display: flex;
917
- align-items: center;
918
- width: 100%;
919
- margin-left: 20px;
920
- }
921
-
922
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
923
- margin-left: 0px;
924
- }
925
-
926
- .charcoal-dropdown-selector-menu-item-icon {
927
- color: var(--charcoal-color-text-secondary-default);
928
- padding-right: 4px;
929
- }
930
-
931
- .charcoal-dropdown-selector-menu-item-container {
932
- display: flex;
933
- align-items: center;
649
+ .charcoal-menu-item-group {
650
+ display: block;
934
651
  }
935
652
 
936
- .charcoal-dropdown-selector-menu-secondary {
937
- font-size: 12px;
938
- line-height: 20px;
653
+ .charcoal-menu-item-group > span {
654
+ display: block;
939
655
  color: var(--charcoal-color-text-tertiary-default);
940
- padding-bottom: 9px;
941
-
942
- display: flex;
943
- align-items: center;
944
- margin-left: 20px;
656
+ font-size: 12px;
657
+ font-weight: bold;
658
+ padding: 12px 0 8px 16px;
945
659
  }
946
660
 
947
- .charcoal-dropdown-selector-menu-fullwidth {
948
- width: 100%;
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;
949
667
  }
950
- .charcoal-dropdown-selector-root {
668
+ .charcoal-text-area-root {
951
669
  display: grid;
952
670
  grid-template-columns: 1fr;
953
671
  grid-gap: 4px;
954
- width: 100%;
955
672
  }
956
673
 
957
- .charcoal-dropdown-selector-root[aria-disabled='true'] {
958
- cursor: default;
674
+ .charcoal-text-area-root[aria-disabled='true'] {
959
675
  opacity: 0.32;
960
676
  }
961
677
 
962
- .charcoal-dropdown-selector-button {
963
- display: grid;
964
- grid-template-columns: 1fr auto;
965
- justify-content: space-between;
966
- align-items: center;
678
+ .charcoal-text-area-container {
679
+ /* Runtime variable overridden by the React component. */
680
+ --charcoal-text-area-rows: 4;
967
681
 
968
- height: 40px;
969
- width: 100%;
970
- box-sizing: border-box;
971
- border: none;
972
- cursor: pointer;
973
- gap: 4px;
682
+ position: relative;
683
+ overflow: hidden;
684
+
685
+ color: var(--charcoal-color-text-secondary-default);
686
+ background-color: var(--charcoal-color-container-secondary-default-a);
687
+ border-radius: 4px;
688
+ transition:
689
+ 0.2s background-color,
690
+ 0.2s box-shadow;
691
+ height: calc(22px * var(--charcoal-text-area-rows) + 18px);
692
+ }
693
+
694
+ .charcoal-text-area-container[aria-invalid='true'] {
695
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
696
+ }
697
+
698
+ .charcoal-text-area-container:focus-within {
699
+ outline: none;
700
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
701
+ }
974
702
 
975
- padding-right: 8px;
976
- padding-left: 8px;
977
- background-color: var(--charcoal-color-container-secondary-default-a);
978
- border-radius: 4px;
703
+ .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
704
+ height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
705
+ }
979
706
 
980
- transition:
981
- 0.2s box-shadow,
982
- 0.2s background-color;
983
- }
707
+ .charcoal-text-area-container:not([aria-disabled='true']):hover {
708
+ background-color: var(--charcoal-color-container-secondary-hover-a);
709
+ }
984
710
 
985
- .charcoal-dropdown-selector-button:disabled {
986
- cursor: default;
711
+ .charcoal-text-area-container[aria-invalid='true']:focus-within {
712
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
987
713
  }
988
714
 
989
- .charcoal-dropdown-selector-button:not(:disabled):focus {
990
- outline: none;
991
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
992
- }
715
+ .charcoal-text-area-textarea {
716
+ border: none;
717
+ outline: none;
718
+ resize: none;
719
+ font-family: inherit;
720
+ color: inherit;
721
+ box-sizing: border-box;
993
722
 
994
- .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
995
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
996
- }
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
+ );
997
734
 
998
- .charcoal-dropdown-selector-button:not(:disabled)[data-active='true'],
999
- .charcoal-dropdown-selector-button:not(:disabled):active {
1000
- background-color: var(--charcoal-color-container-secondary-press-a);
1001
- }
735
+ transform-origin: top left;
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
+ );
1002
745
 
1003
- .charcoal-dropdown-selector-button:not(:disabled):hover {
1004
- background-color: var(--charcoal-color-container-secondary-hover-a);
1005
- }
746
+ /* Display box-shadow for iOS Safari */
747
+ -webkit-appearance: none;
748
+ -moz-appearance: none;
749
+ appearance: none;
1006
750
 
1007
- .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1008
- box-shadow: none;
1009
- }
751
+ background: none;
752
+ }
1010
753
 
1011
- .charcoal-dropdown-selector-button[aria-invalid='true'],
1012
- .charcoal-dropdown-selector-button:not(:disabled)[aria-invalid='true']:focus:not(:focus-visible) {
1013
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
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
+ );
1014
761
  }
1015
762
 
1016
- .charcoal-ui-dropdown-selector-text {
1017
- text-align: left;
1018
- font-size: 14px;
1019
- line-height: 22px;
1020
- display: flow-root;
1021
- color: var(--charcoal-color-text-default);
1022
- overflow: hidden;
1023
- text-overflow: ellipsis;
1024
- white-space: nowrap;
1025
- }
763
+ .charcoal-text-area-textarea::-moz-placeholder {
764
+ color: var(--charcoal-color-text-placeholder-default);
765
+ }
1026
766
 
1027
- .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
767
+ .charcoal-text-area-textarea::placeholder {
1028
768
  color: var(--charcoal-color-text-placeholder-default);
1029
769
  }
1030
770
 
1031
- .charcoal-ui-dropdown-selector-icon {
1032
- color: var(--charcoal-color-icon-secondary-default);
771
+ .charcoal-text-area-counter {
772
+ position: absolute;
773
+ bottom: 9px;
774
+ right: 8px;
775
+
776
+ line-height: 22px;
777
+ font-size: 14px;
778
+ color: var(--charcoal-color-text-tertiary-default);
1033
779
  }
1034
- .charcoal-menu-item-group {
1035
- display: block;
780
+ .charcoal-modal-header-root {
781
+ height: 64px;
782
+ display: grid;
783
+ align-content: center;
784
+ justify-content: center;
1036
785
  }
1037
786
 
1038
- .charcoal-menu-item-group > span {
1039
- display: block;
1040
- color: var(--charcoal-color-text-tertiary-default);
1041
- font-size: 12px;
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;
791
+ }
792
+ }
793
+
794
+ .charcoal-modal-header-title {
795
+ color: var(--charcoal-color-text-default);
796
+ font-size: 16px;
797
+ line-height: 24px;
1042
798
  font-weight: bold;
1043
- padding: 12px 0 8px 16px;
799
+ display: flow-root;
1044
800
  }
1045
801
 
1046
- .charcoal-menu-item-group > ul {
1047
- padding-left: 0;
1048
- margin: 0;
1049
- box-sizing: border-box;
1050
- list-style: none;
1051
- overflow: hidden;
802
+ .charcoal-modal-align {
803
+ padding-left: 16px;
804
+ padding-right: 16px;
805
+ }
806
+
807
+ .charcoal-modal-body {
808
+ padding-bottom: 40px;
809
+ }
810
+
811
+ .charcoal-modal-buttons {
812
+ display: grid;
813
+ grid-auto-flow: row;
814
+ grid-row-gap: 8px;
815
+
816
+ padding-top: 16px;
817
+ padding-left: 16px;
818
+ padding-right: 16px;
1052
819
  }
1053
820
  .charcoal-segmented-control {
1054
821
  display: inline-flex;
@@ -1121,6 +888,112 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1121
888
  white-space: nowrap;
1122
889
  opacity: 0;
1123
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;
897
+ }
898
+
899
+ .charcoal-hint-text[data-context='page'] {
900
+ justify-content: center;
901
+ }
902
+
903
+ @media (min-width: 744px) {
904
+
905
+ .charcoal-hint-text[data-context='page'] {
906
+ padding: 20px 40px
907
+ }
908
+ }
909
+
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
+ }
917
+
918
+ .charcoal-hint-text-message {
919
+ color: var(--charcoal-color-text-secondary-default);
920
+ font-size: 14px;
921
+ line-height: 22px;
922
+ display: flow-root;
923
+ margin: 0;
924
+ min-width: 0;
925
+ overflow-wrap: break-word;
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;
938
+
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
+ }
947
+ }
948
+
949
+ /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
950
+ transition は entering / exiting に限定し、開いたままテーマ切り替え等で
951
+ 色や transform が変わってもアニメーションしないようにする */
952
+ .charcoal-modal-background[data-animation] {
953
+ overflow: hidden;
954
+ }
955
+
956
+ .charcoal-modal-background[data-animation='entering'],
957
+ .charcoal-modal-background[data-animation='exiting'] {
958
+ transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
959
+ }
960
+
961
+ /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
962
+ 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
963
+ .charcoal-modal-background[data-animation='exited'],
964
+ .charcoal-modal-background[data-animation='exiting'] {
965
+ background-color: transparent;
966
+ pointer-events: none;
967
+ }
968
+
969
+ .charcoal-modal-background[data-animation='entered'] {
970
+ overflow: auto;
971
+ }
972
+
973
+ .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
974
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
975
+ transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
976
+ }
977
+
978
+ .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
979
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
980
+ transform: translateY(100%);
981
+ }
982
+
983
+ .charcoal-modal-close-button {
984
+ position: absolute;
985
+ top: 8px;
986
+ right: 8px;
987
+
988
+ color: var(--charcoal-color-text-tertiary-default);
989
+ transition: 0.2s color;
990
+ }
991
+
992
+ .charcoal-modal-title {
993
+ margin: 0;
994
+ font-weight: inherit;
995
+ font-size: inherit;
996
+ }
1124
997
  .charcoal-checkbox__label {
1125
998
  position: relative;
1126
999
  cursor: pointer;
@@ -1143,29 +1016,48 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1143
1016
  font-size: 14px;
1144
1017
  line-height: 20px;
1145
1018
  }
1146
- .charcoal-text-ellipsis {
1147
- /* Runtime variables overridden by the React component. */
1148
- --charcoal-text-ellipsis-line-limit: 1;
1149
- --charcoal-text-ellipsis-line-height: inherit;
1150
-
1151
- overflow: hidden;
1152
- overflow-wrap: break-word;
1153
- display: -webkit-box;
1154
- -webkit-box-orient: vertical;
1155
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1019
+ .charcoal-loading-spinner {
1020
+ box-sizing: content-box;
1021
+ margin: auto;
1022
+ padding: 16px;
1023
+ border-radius: 8px;
1024
+ font-size: 48px;
1025
+ width: 48px;
1026
+ height: 48px;
1027
+ opacity: 0.84;
1028
+ color: var(--charcoal-color-icon-tertiary-default);
1029
+ background-color: var(--charcoal-color-background-default);
1156
1030
  }
1157
1031
 
1158
- .charcoal-text-ellipsis[data-has-line-height='true'] {
1159
- line-height: var(--charcoal-text-ellipsis-line-height);
1032
+ .charcoal-loading-spinner[data-transparent='true'] {
1033
+ background-color: var(--charcoal-color-container-default-a);
1160
1034
  }
1161
1035
 
1162
- .charcoal-text-ellipsis[data-has-line-height='false'] {
1163
- line-height: inherit;
1036
+ @keyframes charcoal-loading-spinner-icon-scale-out {
1037
+ from {
1038
+ transform: scale(0);
1039
+ opacity: 1;
1040
+ }
1041
+ to {
1042
+ transform: scale(1);
1043
+ opacity: 0;
1164
1044
  }
1045
+ }
1165
1046
 
1166
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1167
- text-overflow: ellipsis;
1168
- white-space: nowrap;
1047
+ .charcoal-loading-spinner-icon {
1048
+ width: 1em;
1049
+ height: 1em;
1050
+ border-radius: 1em;
1051
+ background-color: currentColor;
1052
+ animation: charcoal-loading-spinner-icon-scale-out 1s infinite both ease-out;
1053
+ }
1054
+
1055
+ .charcoal-loading-spinner-icon[data-reset-animation] {
1056
+ animation: none;
1057
+ }
1058
+
1059
+ .charcoal-loading-spinner-icon[data-once='true'] {
1060
+ animation-iteration-count: 1;
1169
1061
  }
1170
1062
  .charcoal-tag-item {
1171
1063
  --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
@@ -1321,156 +1213,130 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1321
1213
  .charcoal-tag-item__labe__text[data-has-translate='true']::after {
1322
1214
  display: none;
1323
1215
  }
1324
- .charcoal-hint-text {
1325
- background-color: var(--charcoal-color-container-secondary-default);
1326
- border-radius: 8px;
1327
- padding: 12px 16px;
1328
- display: flex;
1329
- align-items: flex-start;
1216
+ .charcoal-dropdown-selector-root {
1217
+ display: grid;
1218
+ grid-template-columns: 1fr;
1219
+ grid-gap: 4px;
1220
+ width: 100%;
1330
1221
  }
1331
1222
 
1332
- .charcoal-hint-text[data-context='page'] {
1333
- justify-content: center;
1223
+ .charcoal-dropdown-selector-root[aria-disabled='true'] {
1224
+ cursor: default;
1225
+ opacity: 0.32;
1334
1226
  }
1335
1227
 
1336
- @media (min-width: 744px) {
1228
+ .charcoal-dropdown-selector-button {
1229
+ display: grid;
1230
+ grid-template-columns: 1fr auto;
1231
+ justify-content: space-between;
1232
+ align-items: center;
1337
1233
 
1338
- .charcoal-hint-text[data-context='page'] {
1339
- padding: 20px 40px
1234
+ height: 40px;
1235
+ width: 100%;
1236
+ box-sizing: border-box;
1237
+ border: none;
1238
+ cursor: pointer;
1239
+ gap: 4px;
1240
+
1241
+ padding-right: 8px;
1242
+ padding-left: 8px;
1243
+ background-color: var(--charcoal-color-container-secondary-default-a);
1244
+ border-radius: 4px;
1245
+
1246
+ transition:
1247
+ 0.2s box-shadow,
1248
+ 0.2s background-color;
1249
+ }
1250
+
1251
+ .charcoal-dropdown-selector-button:disabled {
1252
+ cursor: default;
1340
1253
  }
1254
+
1255
+ .charcoal-dropdown-selector-button:not(:disabled):focus {
1256
+ outline: none;
1257
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1341
1258
  }
1342
1259
 
1343
- .charcoal-hint-text-icon {
1344
- display: flex;
1345
- align-items: center;
1346
- color: var(--charcoal-color-icon-tertiary-default);
1347
- height: 22px;
1348
- margin: 0 4px 0 0;
1349
- }
1260
+ .charcoal-dropdown-selector-button:not(:disabled):focus-visible {
1261
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1262
+ }
1350
1263
 
1351
- .charcoal-hint-text-message {
1352
- color: var(--charcoal-color-text-secondary-default);
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
+ }
1268
+
1269
+ .charcoal-dropdown-selector-button:not(:disabled):hover {
1270
+ background-color: var(--charcoal-color-container-secondary-hover-a);
1271
+ }
1272
+
1273
+ .charcoal-dropdown-selector-button:not(:disabled):focus:not(:focus-visible) {
1274
+ box-shadow: none;
1275
+ }
1276
+
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
+ }
1281
+
1282
+ .charcoal-ui-dropdown-selector-text {
1283
+ text-align: left;
1353
1284
  font-size: 14px;
1354
1285
  line-height: 22px;
1355
1286
  display: flow-root;
1356
- margin: 0;
1357
- min-width: 0;
1358
- overflow-wrap: break-word;
1287
+ color: var(--charcoal-color-text-default);
1288
+ overflow: hidden;
1289
+ text-overflow: ellipsis;
1290
+ white-space: nowrap;
1359
1291
  }
1360
- .charcoal-pagination {
1292
+
1293
+ .charcoal-ui-dropdown-selector-text[data-placeholder='true'] {
1294
+ color: var(--charcoal-color-text-placeholder-default);
1295
+ }
1296
+
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;
1305
+
1361
1306
  display: flex;
1362
- justify-content: center;
1363
1307
  align-items: center;
1308
+ width: 100%;
1309
+ margin-left: 20px;
1364
1310
  }
1365
1311
 
1366
- .charcoal-pagination[data-size='S'] .charcoal-pagination-button {
1367
- min-width: 32px;
1368
- min-height: 32px;
1369
- }
1370
-
1371
- .charcoal-pagination[data-size='M'] .charcoal-pagination-button {
1372
- min-width: 40px;
1373
- min-height: 40px;
1374
- }
1312
+ .charcoal-dropdown-selector-menu-item[data-selected='true'] {
1313
+ margin-left: 0px;
1314
+ }
1375
1315
 
1376
- /* stylelint-disable no-descending-specificity */
1377
- .charcoal-pagination-button {
1378
- cursor: pointer;
1379
- -webkit-appearance: none;
1380
- -moz-appearance: none;
1381
- appearance: none;
1382
- padding: 0;
1383
- border-style: none;
1384
- outline: none;
1385
- text-decoration: none;
1386
- font: inherit;
1387
- margin: 0;
1388
- -webkit-user-select: none;
1389
- -moz-user-select: none;
1390
- user-select: none;
1316
+ .charcoal-dropdown-selector-menu-item-icon {
1317
+ color: var(--charcoal-color-text-secondary-default);
1318
+ padding-right: 4px;
1319
+ }
1391
1320
 
1321
+ .charcoal-dropdown-selector-menu-item-container {
1392
1322
  display: flex;
1393
1323
  align-items: center;
1394
- justify-content: center;
1395
- font-size: 14px;
1396
- font-weight: 700;
1397
- line-height: 22px;
1398
-
1399
- /* HACK:
1400
- * Safari doesn't correctly repaint the elements when they're reordered in response to interaction.
1401
- * This forces it to repaint them. This doesn't work if put on the parents either, has to be here.
1402
- */
1403
- /* stylelint-disable-next-line property-no-vendor-prefix */
1404
- -webkit-transform: translateZ(0);
1324
+ }
1405
1325
 
1326
+ .charcoal-dropdown-selector-menu-secondary {
1327
+ font-size: 12px;
1328
+ line-height: 20px;
1406
1329
  color: var(--charcoal-color-text-tertiary-default);
1407
- background-color: var(--charcoal-color-container-default-a);
1408
- border-radius: 20px;
1409
- transition:
1410
- 0.2s background-color,
1411
- 0.2s box-shadow;
1412
- }
1413
- .charcoal-pagination-button:focus {
1414
- outline: none;
1415
- }
1416
- .charcoal-pagination-button::-moz-focus-inner {
1417
- border-style: none;
1418
- padding: 0;
1419
- }
1420
- .charcoal-pagination-button[hidden] {
1421
- visibility: hidden;
1422
- display: block;
1423
- }
1424
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):hover,
1425
- .charcoal-pagination-button[aria-disabled='false']:hover {
1426
- color: var(--charcoal-color-text-tertiary-default);
1427
- background-color: var(--charcoal-color-container-secondary-default);
1428
- }
1429
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):active,
1430
- .charcoal-pagination-button[aria-disabled='false']:active {
1431
- color: var(--charcoal-color-text-tertiary-press);
1432
- background-color: var(--charcoal-color-container-tertiary-press);
1433
- }
1434
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus,
1435
- .charcoal-pagination-button[aria-disabled='false']:focus {
1436
- outline: none;
1437
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1438
- }
1439
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus-visible,
1440
- .charcoal-pagination-button[aria-disabled='false']:focus-visible {
1441
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1442
- }
1443
- .charcoal-pagination-button:not(:disabled):not([aria-disabled]):focus:not(:focus-visible),
1444
- .charcoal-pagination-button[aria-disabled='false']:focus:not(:focus-visible) {
1445
- box-shadow: none;
1446
- }
1447
- .charcoal-pagination-button[aria-current] {
1448
- cursor: default;
1449
- background-color: var(--charcoal-color-container-hud-default);
1450
- color: var(--charcoal-color-text-on-hud-default);
1451
- }
1452
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):hover,
1453
- .charcoal-pagination-button[aria-current]:not(:disabled):not([aria-disabled]):active {
1454
- background-color: var(--charcoal-color-container-hud-default);
1455
- color: var(--charcoal-color-text-on-hud-default);
1456
- }
1457
- /* stylelint-enable no-descending-specificity */
1330
+ padding-bottom: 9px;
1458
1331
 
1459
- .charcoal-pagination-nav-button[data-hidden] {
1460
- visibility: hidden;
1332
+ display: flex;
1333
+ align-items: center;
1334
+ margin-left: 20px;
1461
1335
  }
1462
1336
 
1463
- .charcoal-pagination-spacer,
1464
- .charcoal-pagination-spacer:hover,
1465
- .charcoal-pagination-spacer:active {
1466
- cursor: default;
1467
- color: var(--charcoal-color-text-tertiary-default);
1468
- background: none;
1469
- }
1470
-
1471
- .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1472
- opacity: 1;
1473
- }
1337
+ .charcoal-dropdown-selector-menu-fullwidth {
1338
+ width: 100%;
1339
+ }
1474
1340
  .charcoal-carousel {
1475
1341
  --charcoal-carousel-gap: 0px;
1476
1342
 
@@ -1790,6 +1656,146 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1790
1656
  }
1791
1657
  }
1792
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);
1730
+
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;
1740
+ }
1741
+ .charcoal-pagination-button::-moz-focus-inner {
1742
+ border-style: none;
1743
+ padding: 0;
1744
+ }
1745
+ .charcoal-pagination-button[hidden] {
1746
+ visibility: hidden;
1747
+ display: block;
1748
+ }
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);
1753
+ }
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);
1758
+ }
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);
1763
+ }
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);
1781
+ }
1782
+ /* stylelint-enable no-descending-specificity */
1783
+
1784
+ .charcoal-pagination-nav-button[data-hidden] {
1785
+ visibility: hidden;
1786
+ }
1787
+
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
+ }
1795
+
1796
+ .charcoal-pagination-spacer.charcoal-icon-button:disabled {
1797
+ opacity: 1;
1798
+ }
1793
1799
  .charcoal-text-field-assistive-text {
1794
1800
  font-size: 14px;
1795
1801
  line-height: 22px;
@@ -1888,51 +1894,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1888
1894
  .charcoal-radio-input:checked:not(:disabled):active::after {
1889
1895
  background-color: var(--charcoal-color-icon-on-primary-press);
1890
1896
  }
1891
- .charcoal-modal-dialog {
1892
- margin: auto;
1893
- position: relative;
1894
- height: -moz-fit-content;
1895
- height: fit-content;
1896
- width: 440px;
1897
-
1898
- background-color: var(--charcoal-color-container-default);
1899
- border-radius: 24px;
1900
- }
1901
-
1902
- .charcoal-modal-dialog[data-size='S'] {
1903
- width: 336px;
1904
- }
1905
-
1906
- .charcoal-modal-dialog[data-size='M'] {
1907
- width: 440px;
1908
- }
1909
-
1910
- .charcoal-modal-dialog[data-size='L'] {
1911
- width: 648px;
1912
- }
1913
-
1914
- @media (max-width: 743px) {
1915
- .charcoal-modal-dialog {
1916
- max-width: 440px;
1917
- width: calc(100% - 48px);
1918
- }
1919
-
1920
- .charcoal-modal-dialog[data-bottom-sheet='true'],
1921
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
1922
- max-width: unset;
1923
- width: 100%;
1924
- border-radius: 0;
1925
- margin: auto 0 0 0;
1926
- }
1927
-
1928
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
1929
- min-height: 100%;
1930
- }
1931
- }
1932
-
1933
- .charcoal-modal-dialog:focus {
1934
- outline: none;
1935
- }
1936
1897
  .charcoal-switch-input {
1937
1898
  cursor: pointer;
1938
1899
  -webkit-appearance: none;
@@ -2017,10 +1978,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2017
1978
  .charcoal-switch-input:not(:disabled):checked:active {
2018
1979
  background-color: var(--charcoal-color-container-primary-press);
2019
1980
  }
2020
- .charcoal-menu-list {
2021
- padding: 0;
2022
- margin: 0;
2023
- }
2024
1981
  .charcoal-field-label {
2025
1982
  font-size: 14px;
2026
1983
  line-height: 22px;
@@ -2082,6 +2039,51 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2082
2039
  opacity: 0.32;
2083
2040
  cursor: default;
2084
2041
  }
2042
+ .charcoal-modal-dialog {
2043
+ margin: auto;
2044
+ position: relative;
2045
+ height: -moz-fit-content;
2046
+ height: fit-content;
2047
+ width: 440px;
2048
+
2049
+ background-color: var(--charcoal-color-container-default);
2050
+ border-radius: 24px;
2051
+ }
2052
+
2053
+ .charcoal-modal-dialog[data-size='S'] {
2054
+ width: 336px;
2055
+ }
2056
+
2057
+ .charcoal-modal-dialog[data-size='M'] {
2058
+ width: 440px;
2059
+ }
2060
+
2061
+ .charcoal-modal-dialog[data-size='L'] {
2062
+ width: 648px;
2063
+ }
2064
+
2065
+ @media (max-width: 743px) {
2066
+ .charcoal-modal-dialog {
2067
+ max-width: 440px;
2068
+ width: calc(100% - 48px);
2069
+ }
2070
+
2071
+ .charcoal-modal-dialog[data-bottom-sheet='true'],
2072
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2073
+ max-width: unset;
2074
+ width: 100%;
2075
+ border-radius: 0;
2076
+ margin: auto 0 0 0;
2077
+ }
2078
+
2079
+ .charcoal-modal-dialog[data-bottom-sheet='full'] {
2080
+ min-height: 100%;
2081
+ }
2082
+ }
2083
+
2084
+ .charcoal-modal-dialog:focus {
2085
+ outline: none;
2086
+ }
2085
2087
  .charcoal-checkbox-input {
2086
2088
  -webkit-appearance: none;
2087
2089
  -moz-appearance: none;
@@ -2196,6 +2198,10 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2196
2198
  border: 2px solid #fff;
2197
2199
  box-sizing: border-box;
2198
2200
  }
2201
+ .charcoal-menu-list {
2202
+ padding: 0;
2203
+ margin: 0;
2204
+ }
2199
2205
  .charcoal-popover {
2200
2206
  margin: 4px 0;
2201
2207
  list-style: none;