@charcoal-ui/react 6.0.0-rc.7 → 6.0.0-rc.8

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 (278) hide show
  1. package/dist/_lib/createDivComponent.cjs +20 -0
  2. package/dist/_lib/createDivComponent.cjs.map +1 -0
  3. package/dist/_lib/createDivComponent.js +19 -0
  4. package/dist/_lib/createDivComponent.js.map +1 -0
  5. package/dist/_lib/index.cjs +22 -0
  6. package/dist/_lib/index.cjs.map +1 -0
  7. package/dist/_lib/index.js +20 -0
  8. package/dist/_lib/index.js.map +1 -0
  9. package/dist/_lib/useClassNames.cjs +15 -0
  10. package/dist/_lib/useClassNames.cjs.map +1 -0
  11. package/dist/_lib/useClassNames.js +14 -0
  12. package/dist/_lib/useClassNames.js.map +1 -0
  13. package/dist/_lib/useForwardedRef.cjs +19 -0
  14. package/dist/_lib/useForwardedRef.cjs.map +1 -0
  15. package/dist/_lib/useForwardedRef.js +17 -0
  16. package/dist/_lib/useForwardedRef.js.map +1 -0
  17. package/dist/_lib/useIsomorphicLayoutEffect.cjs +13 -0
  18. package/dist/_lib/useIsomorphicLayoutEffect.cjs.map +1 -0
  19. package/dist/_lib/useIsomorphicLayoutEffect.js +12 -0
  20. package/dist/_lib/useIsomorphicLayoutEffect.js.map +1 -0
  21. package/dist/_virtual/_rolldown/runtime.cjs +30 -0
  22. package/dist/components/Button/index2.cjs +26 -0
  23. package/dist/components/Button/index2.cjs.map +1 -0
  24. package/dist/components/Button/index2.js +24 -0
  25. package/dist/components/Button/index2.js.map +1 -0
  26. package/dist/components/Carousel/CarouselItem.cjs +46 -0
  27. package/dist/components/Carousel/CarouselItem.cjs.map +1 -0
  28. package/dist/components/Carousel/CarouselItem.js +45 -0
  29. package/dist/components/Carousel/CarouselItem.js.map +1 -0
  30. package/dist/components/Carousel/carouselStore.cjs +38 -0
  31. package/dist/components/Carousel/carouselStore.cjs.map +1 -0
  32. package/dist/components/Carousel/carouselStore.js +37 -0
  33. package/dist/components/Carousel/carouselStore.js.map +1 -0
  34. package/dist/components/Carousel/index2.cjs +145 -0
  35. package/dist/components/Carousel/index2.cjs.map +1 -0
  36. package/dist/components/Carousel/index2.js +144 -0
  37. package/dist/components/Carousel/index2.js.map +1 -0
  38. package/dist/components/Carousel/intersectionObserver.cjs +46 -0
  39. package/dist/components/Carousel/intersectionObserver.cjs.map +1 -0
  40. package/dist/components/Carousel/intersectionObserver.js +45 -0
  41. package/dist/components/Carousel/intersectionObserver.js.map +1 -0
  42. package/dist/components/Carousel/resizeObserver.cjs +34 -0
  43. package/dist/components/Carousel/resizeObserver.cjs.map +1 -0
  44. package/dist/components/Carousel/resizeObserver.js +33 -0
  45. package/dist/components/Carousel/resizeObserver.js.map +1 -0
  46. package/dist/components/Carousel/store.cjs +24 -0
  47. package/dist/components/Carousel/store.cjs.map +1 -0
  48. package/dist/components/Carousel/store.js +23 -0
  49. package/dist/components/Carousel/store.js.map +1 -0
  50. package/dist/components/Carousel/useCarouselScroller.cjs +149 -0
  51. package/dist/components/Carousel/useCarouselScroller.cjs.map +1 -0
  52. package/dist/components/Carousel/useCarouselScroller.js +148 -0
  53. package/dist/components/Carousel/useCarouselScroller.js.map +1 -0
  54. package/dist/components/Checkbox/CheckboxInput/index2.cjs +29 -0
  55. package/dist/components/Checkbox/CheckboxInput/index2.cjs.map +1 -0
  56. package/dist/components/Checkbox/CheckboxInput/index2.js +28 -0
  57. package/dist/components/Checkbox/CheckboxInput/index2.js.map +1 -0
  58. package/dist/components/Checkbox/CheckboxWithLabel.cjs +23 -0
  59. package/dist/components/Checkbox/CheckboxWithLabel.cjs.map +1 -0
  60. package/dist/components/Checkbox/CheckboxWithLabel.js +21 -0
  61. package/dist/components/Checkbox/CheckboxWithLabel.js.map +1 -0
  62. package/dist/components/Checkbox/index2.cjs +34 -0
  63. package/dist/components/Checkbox/index2.cjs.map +1 -0
  64. package/dist/components/Checkbox/index2.js +33 -0
  65. package/dist/components/Checkbox/index2.js.map +1 -0
  66. package/dist/components/Clickable/index2.cjs +21 -0
  67. package/dist/components/Clickable/index2.cjs.map +1 -0
  68. package/dist/components/Clickable/index2.js +19 -0
  69. package/dist/components/Clickable/index2.js.map +1 -0
  70. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs +44 -0
  71. package/dist/components/DropdownSelector/DropdownMenuItem/index2.cjs.map +1 -0
  72. package/dist/components/DropdownSelector/DropdownMenuItem/index2.js +43 -0
  73. package/dist/components/DropdownSelector/DropdownMenuItem/index2.js.map +1 -0
  74. package/dist/components/DropdownSelector/DropdownPopover.cjs +41 -0
  75. package/dist/components/DropdownSelector/DropdownPopover.cjs.map +1 -0
  76. package/dist/components/DropdownSelector/DropdownPopover.js +40 -0
  77. package/dist/components/DropdownSelector/DropdownPopover.js.map +1 -0
  78. package/dist/components/DropdownSelector/ListItem/index2.cjs +19 -0
  79. package/dist/components/DropdownSelector/ListItem/index2.cjs.map +1 -0
  80. package/dist/components/DropdownSelector/ListItem/index2.js +18 -0
  81. package/dist/components/DropdownSelector/ListItem/index2.js.map +1 -0
  82. package/dist/components/DropdownSelector/MenuItem/index.cjs +30 -0
  83. package/dist/components/DropdownSelector/MenuItem/index.cjs.map +1 -0
  84. package/dist/components/DropdownSelector/MenuItem/index.js +29 -0
  85. package/dist/components/DropdownSelector/MenuItem/index.js.map +1 -0
  86. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs +30 -0
  87. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.cjs.map +1 -0
  88. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js +29 -0
  89. package/dist/components/DropdownSelector/MenuItem/internals/handleFocusByKeyBoard.js.map +1 -0
  90. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs +53 -0
  91. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.cjs.map +1 -0
  92. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js +52 -0
  93. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.js.map +1 -0
  94. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs +20 -0
  95. package/dist/components/DropdownSelector/MenuItemGroup/index2.cjs.map +1 -0
  96. package/dist/components/DropdownSelector/MenuItemGroup/index2.js +19 -0
  97. package/dist/components/DropdownSelector/MenuItemGroup/index2.js.map +1 -0
  98. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs +15 -0
  99. package/dist/components/DropdownSelector/MenuList/MenuListContext.cjs.map +1 -0
  100. package/dist/components/DropdownSelector/MenuList/MenuListContext.js +14 -0
  101. package/dist/components/DropdownSelector/MenuList/MenuListContext.js.map +1 -0
  102. package/dist/components/DropdownSelector/MenuList/index2.cjs +32 -0
  103. package/dist/components/DropdownSelector/MenuList/index2.cjs.map +1 -0
  104. package/dist/components/DropdownSelector/MenuList/index2.js +31 -0
  105. package/dist/components/DropdownSelector/MenuList/index2.js.map +1 -0
  106. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs +34 -0
  107. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.cjs.map +1 -0
  108. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js +32 -0
  109. package/dist/components/DropdownSelector/MenuList/internals/getValuesRecursive.js.map +1 -0
  110. package/dist/components/DropdownSelector/Popover/index2.cjs +71 -0
  111. package/dist/components/DropdownSelector/Popover/index2.cjs.map +1 -0
  112. package/dist/components/DropdownSelector/Popover/index2.js +70 -0
  113. package/dist/components/DropdownSelector/Popover/index2.js.map +1 -0
  114. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs +27 -0
  115. package/dist/components/DropdownSelector/Popover/usePreventScroll.cjs.map +1 -0
  116. package/dist/components/DropdownSelector/Popover/usePreventScroll.js +26 -0
  117. package/dist/components/DropdownSelector/Popover/usePreventScroll.js.map +1 -0
  118. package/dist/components/DropdownSelector/index2.cjs +113 -0
  119. package/dist/components/DropdownSelector/index2.cjs.map +1 -0
  120. package/dist/components/DropdownSelector/index2.js +111 -0
  121. package/dist/components/DropdownSelector/index2.js.map +1 -0
  122. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs +34 -0
  123. package/dist/components/DropdownSelector/utils/findPreviewRecursive.cjs.map +1 -0
  124. package/dist/components/DropdownSelector/utils/findPreviewRecursive.js +32 -0
  125. package/dist/components/DropdownSelector/utils/findPreviewRecursive.js.map +1 -0
  126. package/dist/components/FieldLabel/index2.cjs +35 -0
  127. package/dist/components/FieldLabel/index2.cjs.map +1 -0
  128. package/dist/components/FieldLabel/index2.js +33 -0
  129. package/dist/components/FieldLabel/index2.js.map +1 -0
  130. package/dist/components/HintText/index2.cjs +25 -0
  131. package/dist/components/HintText/index2.cjs.map +1 -0
  132. package/dist/components/HintText/index2.js +24 -0
  133. package/dist/components/HintText/index2.js.map +1 -0
  134. package/dist/components/Icon/index.cjs +39 -0
  135. package/dist/components/Icon/index.cjs.map +1 -0
  136. package/dist/components/Icon/index.js +37 -0
  137. package/dist/components/Icon/index.js.map +1 -0
  138. package/dist/components/IconButton/index2.cjs +46 -0
  139. package/dist/components/IconButton/index2.cjs.map +1 -0
  140. package/dist/components/IconButton/index2.js +44 -0
  141. package/dist/components/IconButton/index2.js.map +1 -0
  142. package/dist/components/LoadingSpinner/index2.cjs +43 -0
  143. package/dist/components/LoadingSpinner/index2.cjs.map +1 -0
  144. package/dist/components/LoadingSpinner/index2.js +41 -0
  145. package/dist/components/LoadingSpinner/index2.js.map +1 -0
  146. package/dist/components/Modal/Dialog/index2.cjs +30 -0
  147. package/dist/components/Modal/Dialog/index2.cjs.map +1 -0
  148. package/dist/components/Modal/Dialog/index2.js +28 -0
  149. package/dist/components/Modal/Dialog/index2.js.map +1 -0
  150. package/dist/components/Modal/ModalBackgroundContext.cjs +14 -0
  151. package/dist/components/Modal/ModalBackgroundContext.cjs.map +1 -0
  152. package/dist/components/Modal/ModalBackgroundContext.js +12 -0
  153. package/dist/components/Modal/ModalBackgroundContext.js.map +1 -0
  154. package/dist/components/Modal/ModalPlumbing2.cjs +30 -0
  155. package/dist/components/Modal/ModalPlumbing2.cjs.map +1 -0
  156. package/dist/components/Modal/ModalPlumbing2.js +26 -0
  157. package/dist/components/Modal/ModalPlumbing2.js.map +1 -0
  158. package/dist/components/Modal/index2.cjs +121 -0
  159. package/dist/components/Modal/index2.cjs.map +1 -0
  160. package/dist/components/Modal/index2.js +118 -0
  161. package/dist/components/Modal/index2.js.map +1 -0
  162. package/dist/components/Modal/useCustomModalOverlay.cjs +48 -0
  163. package/dist/components/Modal/useCustomModalOverlay.cjs.map +1 -0
  164. package/dist/components/Modal/useCustomModalOverlay.js +45 -0
  165. package/dist/components/Modal/useCustomModalOverlay.js.map +1 -0
  166. package/dist/components/Modal/useTransitionPresence.cjs +57 -0
  167. package/dist/components/Modal/useTransitionPresence.cjs.map +1 -0
  168. package/dist/components/Modal/useTransitionPresence.js +56 -0
  169. package/dist/components/Modal/useTransitionPresence.js.map +1 -0
  170. package/dist/components/MultiSelect/context.cjs +19 -0
  171. package/dist/components/MultiSelect/context.cjs.map +1 -0
  172. package/dist/components/MultiSelect/context.js +18 -0
  173. package/dist/components/MultiSelect/context.js.map +1 -0
  174. package/dist/components/MultiSelect/index2.cjs +97 -0
  175. package/dist/components/MultiSelect/index2.cjs.map +1 -0
  176. package/dist/components/MultiSelect/index2.js +93 -0
  177. package/dist/components/MultiSelect/index2.js.map +1 -0
  178. package/dist/components/Pagination/PaginationContext.cjs +16 -0
  179. package/dist/components/Pagination/PaginationContext.cjs.map +1 -0
  180. package/dist/components/Pagination/PaginationContext.js +14 -0
  181. package/dist/components/Pagination/PaginationContext.js.map +1 -0
  182. package/dist/components/Pagination/helper.cjs +63 -0
  183. package/dist/components/Pagination/helper.cjs.map +1 -0
  184. package/dist/components/Pagination/helper.js +61 -0
  185. package/dist/components/Pagination/helper.js.map +1 -0
  186. package/dist/components/Pagination/index2.cjs +301 -0
  187. package/dist/components/Pagination/index2.cjs.map +1 -0
  188. package/dist/components/Pagination/index2.js +288 -0
  189. package/dist/components/Pagination/index2.js.map +1 -0
  190. package/dist/components/Radio/RadioGroup/index2.cjs +49 -0
  191. package/dist/components/Radio/RadioGroup/index2.cjs.map +1 -0
  192. package/dist/components/Radio/RadioGroup/index2.js +47 -0
  193. package/dist/components/Radio/RadioGroup/index2.js.map +1 -0
  194. package/dist/components/Radio/RadioGroupContext.cjs +20 -0
  195. package/dist/components/Radio/RadioGroupContext.cjs.map +1 -0
  196. package/dist/components/Radio/RadioGroupContext.js +18 -0
  197. package/dist/components/Radio/RadioGroupContext.js.map +1 -0
  198. package/dist/components/Radio/RadioInput/index2.cjs +27 -0
  199. package/dist/components/Radio/RadioInput/index2.cjs.map +1 -0
  200. package/dist/components/Radio/RadioInput/index2.js +26 -0
  201. package/dist/components/Radio/RadioInput/index2.js.map +1 -0
  202. package/dist/components/Radio/index2.cjs +42 -0
  203. package/dist/components/Radio/index2.cjs.map +1 -0
  204. package/dist/components/Radio/index2.js +39 -0
  205. package/dist/components/Radio/index2.js.map +1 -0
  206. package/dist/components/SegmentedControl/RadioGroupContext.cjs +24 -0
  207. package/dist/components/SegmentedControl/RadioGroupContext.cjs.map +1 -0
  208. package/dist/components/SegmentedControl/RadioGroupContext.js +21 -0
  209. package/dist/components/SegmentedControl/RadioGroupContext.js.map +1 -0
  210. package/dist/components/SegmentedControl/index2.cjs +72 -0
  211. package/dist/components/SegmentedControl/index2.cjs.map +1 -0
  212. package/dist/components/SegmentedControl/index2.js +70 -0
  213. package/dist/components/SegmentedControl/index2.js.map +1 -0
  214. package/dist/components/Switch/SwitchInput/index2.cjs +25 -0
  215. package/dist/components/Switch/SwitchInput/index2.cjs.map +1 -0
  216. package/dist/components/Switch/SwitchInput/index2.js +24 -0
  217. package/dist/components/Switch/SwitchInput/index2.js.map +1 -0
  218. package/dist/components/Switch/SwitchWithLabel.cjs +23 -0
  219. package/dist/components/Switch/SwitchWithLabel.cjs.map +1 -0
  220. package/dist/components/Switch/SwitchWithLabel.js +21 -0
  221. package/dist/components/Switch/SwitchWithLabel.js.map +1 -0
  222. package/dist/components/Switch/index2.cjs +37 -0
  223. package/dist/components/Switch/index2.cjs.map +1 -0
  224. package/dist/components/Switch/index2.js +36 -0
  225. package/dist/components/Switch/index2.js.map +1 -0
  226. package/dist/components/TagItem/index2.cjs +57 -0
  227. package/dist/components/TagItem/index2.cjs.map +1 -0
  228. package/dist/components/TagItem/index2.js +55 -0
  229. package/dist/components/TagItem/index2.js.map +1 -0
  230. package/dist/components/TextArea/index2.cjs +134 -0
  231. package/dist/components/TextArea/index2.cjs.map +1 -0
  232. package/dist/components/TextArea/index2.js +133 -0
  233. package/dist/components/TextArea/index2.js.map +1 -0
  234. package/dist/components/TextEllipsis/helper.cjs +31 -0
  235. package/dist/components/TextEllipsis/helper.cjs.map +1 -0
  236. package/dist/components/TextEllipsis/helper.js +30 -0
  237. package/dist/components/TextEllipsis/helper.js.map +1 -0
  238. package/dist/components/TextEllipsis/index2.cjs +119 -0
  239. package/dist/components/TextEllipsis/index2.cjs.map +1 -0
  240. package/dist/components/TextEllipsis/index2.js +114 -0
  241. package/dist/components/TextEllipsis/index2.js.map +1 -0
  242. package/dist/components/TextField/AssistiveText/index2.cjs +10 -0
  243. package/dist/components/TextField/AssistiveText/index2.cjs.map +1 -0
  244. package/dist/components/TextField/AssistiveText/index2.js +10 -0
  245. package/dist/components/TextField/AssistiveText/index2.js.map +1 -0
  246. package/dist/components/TextField/index2.cjs +101 -0
  247. package/dist/components/TextField/index2.cjs.map +1 -0
  248. package/dist/components/TextField/index2.js +100 -0
  249. package/dist/components/TextField/index2.js.map +1 -0
  250. package/dist/components/TextField/useFocusWithClick.cjs +23 -0
  251. package/dist/components/TextField/useFocusWithClick.cjs.map +1 -0
  252. package/dist/components/TextField/useFocusWithClick.js +22 -0
  253. package/dist/components/TextField/useFocusWithClick.js.map +1 -0
  254. package/dist/core/CharcoalProvider.cjs +16 -0
  255. package/dist/core/CharcoalProvider.cjs.map +1 -0
  256. package/dist/core/CharcoalProvider.js +14 -0
  257. package/dist/core/CharcoalProvider.js.map +1 -0
  258. package/dist/core/OverlayProvider.js +4 -0
  259. package/dist/core/SSRProvider.cjs +15 -0
  260. package/dist/core/SSRProvider.cjs.map +1 -0
  261. package/dist/core/SSRProvider.js +14 -0
  262. package/dist/core/SSRProvider.js.map +1 -0
  263. package/dist/core/SetThemeScript.cjs +45 -0
  264. package/dist/core/SetThemeScript.cjs.map +1 -0
  265. package/dist/core/SetThemeScript.js +43 -0
  266. package/dist/core/SetThemeScript.js.map +1 -0
  267. package/dist/core/themeHelper.cjs +154 -0
  268. package/dist/core/themeHelper.cjs.map +1 -0
  269. package/dist/core/themeHelper.js +143 -0
  270. package/dist/core/themeHelper.js.map +1 -0
  271. package/dist/index.cjs +81 -12
  272. package/dist/index.css +799 -799
  273. package/dist/index.js +31 -12
  274. package/dist/layered.css +802 -802
  275. package/dist/layered.css.map +1 -1
  276. package/package.json +5 -5
  277. package/dist/index.cjs.map +0 -1
  278. package/dist/index.js.map +0 -1
package/dist/layered.css CHANGED
@@ -1,4 +1,30 @@
1
- @layer charcoal {.charcoal-button {
1
+ @layer charcoal {.charcoal-focus-ring:is(
2
+ :not(:disabled):not([aria-disabled]),
3
+ [aria-disabled='false']
4
+ ):focus-visible {
5
+ outline: none;
6
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
7
+ transition: 0.2s box-shadow;
8
+ }
9
+ .charcoal-radio__label {
10
+ display: grid;
11
+ grid-template-columns: auto 1fr;
12
+ grid-gap: 4px;
13
+ align-items: center;
14
+ cursor: pointer;
15
+ }
16
+
17
+ .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
18
+ opacity: 0.32;
19
+ cursor: default;
20
+ }
21
+
22
+ .charcoal-radio__label_div {
23
+ font-size: 14px;
24
+ line-height: 22px;
25
+ color: var(--charcoal-color-text-default);
26
+ }
27
+ .charcoal-button {
2
28
  -webkit-appearance: none;
3
29
  -moz-appearance: none;
4
30
  appearance: none;
@@ -310,195 +336,278 @@
310
336
  .charcoal-icon-button[aria-disabled='false']:focus:not(:focus-visible) {
311
337
  box-shadow: none;
312
338
  }
313
- .charcoal-radio__label {
339
+ .charcoal-radio-group {
314
340
  display: grid;
315
- grid-template-columns: auto 1fr;
316
- grid-gap: 4px;
317
- align-items: center;
318
- cursor: pointer;
341
+ grid-template-columns: 1fr;
342
+ grid-gap: 8px;
319
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;
320
355
 
321
- .charcoal-radio__label[aria-disabled]:not([aria-disabled='false']) {
322
- opacity: 0.32;
323
- cursor: default;
324
- }
325
-
326
- .charcoal-radio__label_div {
327
- font-size: 14px;
328
- line-height: 22px;
329
- color: var(--charcoal-color-text-default);
356
+ background-color: var(--charcoal-color-background-overlay);
330
357
  }
331
- .charcoal-radio-input {
332
- -webkit-appearance: none;
333
- -moz-appearance: none;
334
- appearance: none;
335
- display: block;
336
- box-sizing: border-box;
337
358
 
338
- margin: 0;
339
- padding: 6px;
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
+ }
340
365
 
341
- width: 20px;
342
- height: 20px;
343
- cursor: pointer;
344
- border-radius: 999999px;
345
- background-color: var(--charcoal-color-container-default);
346
- transition:
347
- 0.2s background-color,
348
- 0.2s box-shadow;
366
+ /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
367
+ transition は entering / exiting に限定し、開いたままテーマ切り替え等で
368
+ 色や transform が変わってもアニメーションしないようにする */
369
+ .charcoal-modal-background[data-animation] {
370
+ overflow: hidden;
349
371
  }
350
372
 
351
- .charcoal-radio-input:checked {
352
- background-color: var(--charcoal-color-container-primary-default);
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);
353
376
  }
354
377
 
355
- .charcoal-radio-input:checked::after {
356
- content: '';
357
- display: block;
358
- width: 8px;
359
- height: 8px;
378
+ /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
379
+ 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
380
+ .charcoal-modal-background[data-animation='exited'],
381
+ .charcoal-modal-background[data-animation='exiting'] {
382
+ background-color: transparent;
360
383
  pointer-events: none;
361
- background-color: var(--charcoal-color-icon-on-primary-default);
362
- border-radius: 999999px;
363
- transition:
364
- 0.2s background-color,
365
- 0.2s box-shadow;
366
384
  }
367
385
 
368
- .charcoal-radio-input:not(:checked) {
369
- border-width: 2px;
370
- border-style: solid;
371
- border-color: var(--charcoal-color-border-default);
386
+ .charcoal-modal-background[data-animation='entered'] {
387
+ overflow: auto;
372
388
  }
373
389
 
374
- .charcoal-radio-input:disabled {
375
- cursor: default;
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);
376
393
  }
377
394
 
378
- .charcoal-radio-input:not(:disabled):hover {
379
- background-color: var(--charcoal-color-container-hover);
395
+ .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
396
+ .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
397
+ transform: translateY(100%);
380
398
  }
381
399
 
382
- .charcoal-radio-input:not(:disabled):active {
383
- background-color: var(--charcoal-color-container-press);
384
- }
400
+ .charcoal-modal-close-button {
401
+ position: absolute;
402
+ top: 8px;
403
+ right: 8px;
385
404
 
386
- .charcoal-radio-input:not(:disabled):focus {
387
- outline: none;
388
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
405
+ color: var(--charcoal-color-text-tertiary-default);
406
+ transition: 0.2s color;
389
407
  }
390
408
 
391
- .charcoal-radio-input:not(:disabled):focus-visible {
392
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
409
+ .charcoal-modal-title {
410
+ margin: 0;
411
+ font-weight: inherit;
412
+ font-size: inherit;
393
413
  }
394
-
395
- .charcoal-radio-input:not(:disabled):focus:not(:focus-visible) {
396
- box-shadow: none;
414
+ .charcoal-modal-header-root {
415
+ height: 64px;
416
+ display: grid;
417
+ align-content: center;
418
+ justify-content: center;
397
419
  }
398
420
 
399
- .charcoal-radio-input:not(:disabled)[aria-invalid='true'],
400
- .charcoal-radio-input:not(:disabled)[aria-invalid='true']:focus {
401
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
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
+ }
402
426
  }
403
427
 
404
- .charcoal-radio-input:checked:not(:disabled):hover {
405
- background-color: var(--charcoal-color-container-primary-hover);
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;
406
434
  }
407
435
 
408
- .charcoal-radio-input:checked:not(:disabled):hover::after {
409
- background-color: var(--charcoal-color-icon-on-primary-hover);
436
+ .charcoal-modal-align {
437
+ padding-left: 16px;
438
+ padding-right: 16px;
410
439
  }
411
440
 
412
- .charcoal-radio-input:checked:not(:disabled):active {
413
- background-color: var(--charcoal-color-container-primary-press);
441
+ .charcoal-modal-body {
442
+ padding-bottom: 40px;
414
443
  }
415
444
 
416
- .charcoal-radio-input:checked:not(:disabled):active::after {
417
- background-color: var(--charcoal-color-icon-on-primary-press);
418
- }
419
- .charcoal-radio-group {
445
+ .charcoal-modal-buttons {
420
446
  display: grid;
421
- grid-template-columns: 1fr;
422
- grid-gap: 8px;
423
- }
424
- .charcoal-icon {
425
- display: inline-flex;
426
- width: var(--charcoal-icon-size);
427
- height: var(--charcoal-icon-size);
428
- }
429
-
430
- pixiv-icon:not(:defined) {
431
- --pixiv-icon-base: 24px;
432
- --pixiv-icon-scale: 1;
433
- --pixiv-icon-size: calc(var(--pixiv-icon-base) * var(--pixiv-icon-scale));
447
+ grid-auto-flow: row;
448
+ grid-row-gap: 8px;
434
449
 
435
- display: inline-flex;
436
- /* --charcoal-icon-size がセットされていればそれを優先、
437
- なければ name / scale から導出した --pixiv-icon-size をフォールバック */
438
- width: var(--charcoal-icon-size, var(--pixiv-icon-size));
439
- height: var(--charcoal-icon-size, var(--pixiv-icon-size));
450
+ padding-top: 16px;
451
+ padding-left: 16px;
452
+ padding-right: 16px;
440
453
  }
441
-
442
- pixiv-icon:not(:defined)[name^='16/'] {
443
- --pixiv-icon-base: 16px;
444
- --pixiv-icon-size: 16px;
445
- }
446
-
447
- pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
448
- --pixiv-icon-scale: 2;
449
- }
450
-
451
- pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
452
- --pixiv-icon-scale: 3;
453
- }
454
-
455
- pixiv-icon:not(:defined)[name^='32/'] {
456
- --pixiv-icon-base: 32px;
457
- --pixiv-icon-size: 32px;
458
- }
459
-
460
- pixiv-icon:not(:defined)[name^='Inline/'] {
461
- --pixiv-icon-base: 16px;
462
- }
463
-
464
- pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
465
- --pixiv-icon-scale: 2;
466
- }
467
- .charcoal-multi-select {
468
- display: grid;
454
+ .charcoal-switch__label {
455
+ display: inline-grid;
469
456
  grid-template-columns: auto 1fr;
470
457
  align-items: center;
471
- position: relative;
472
458
  cursor: pointer;
459
+ outline: 0;
473
460
  gap: 4px;
474
461
  }
475
462
 
476
- .charcoal-multi-select:disabled,
477
- .charcoal-multi-select[aria-disabled]:not([aria-disabled='false']) {
463
+ .charcoal-switch__label[aria-disabled='true'] {
478
464
  opacity: 0.32;
479
465
  cursor: default;
480
466
  }
481
467
 
482
- .charcoal-multi-select-label {
483
- display: flow-root;
484
- align-items: center;
468
+ .charcoal-switch__label[aria-disabled='true'] > input {
469
+ opacity: 1;
470
+ }
471
+
472
+ .charcoal-switch__label_div {
485
473
  font-size: 14px;
486
474
  line-height: 22px;
487
475
  color: var(--charcoal-color-text-default);
488
476
  }
477
+ .charcoal-text-field-root {
478
+ display: grid;
479
+ grid-template-columns: 1fr;
480
+ grid-gap: 4px;
481
+ }
489
482
 
490
- .charcoal-multi-select-label::before {
491
- display: block;
492
- width: 0;
493
- height: 0;
494
- content: '';
495
- margin-top: -4px;
483
+ .charcoal-text-field-root[aria-disabled='true'] {
484
+ opacity: 0.32;
496
485
  }
497
486
 
498
- .charcoal-multi-select-label::after {
499
- display: block;
500
- width: 0;
501
- height: 0;
487
+ .charcoal-text-field-container {
488
+ display: flex;
489
+ height: 40px;
490
+ transition:
491
+ 0.2s background-color,
492
+ 0.2s box-shadow;
493
+ color: var(--charcoal-color-text-secondary-default);
494
+ background-color: var(--charcoal-color-container-secondary-default-a);
495
+ border-radius: 4px;
496
+ padding: 0 8px;
497
+ line-height: 22px;
498
+ font-size: 14px;
499
+ }
500
+
501
+ .charcoal-text-field-container[data-invalid='true'] {
502
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
503
+ }
504
+
505
+ .charcoal-text-field-container:not([aria-disabled='true']):hover {
506
+ background-color: var(--charcoal-color-container-secondary-hover-a);
507
+ }
508
+
509
+ .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
510
+ outline: none;
511
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
512
+ }
513
+
514
+ .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
515
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
516
+ }
517
+
518
+ .charcoal-text-field-prefix {
519
+ display: flex;
520
+ align-items: center;
521
+ margin-right: 4px;
522
+ }
523
+
524
+ .charcoal-text-field-suffix {
525
+ display: flex;
526
+ align-items: center;
527
+ gap: 8px;
528
+ margin-left: 4px;
529
+ }
530
+
531
+ .charcoal-text-field-input-root {
532
+ flex: 1;
533
+ min-width: 0;
534
+ overflow: hidden;
535
+ }
536
+
537
+ .charcoal-text-field-input {
538
+ border: none;
539
+ box-sizing: border-box;
540
+ outline: none;
541
+ font-family: inherit;
542
+
543
+ /* Prevent zooming for iOS Safari */
544
+ transform-origin: top left;
545
+ transform: scale(0.875);
546
+ width: calc(100% / 0.875);
547
+ height: calc(100% / 0.875);
548
+ font-size: calc(14px / 0.875);
549
+ line-height: calc(22px / 0.875);
550
+ padding-left: 0;
551
+ padding-right: 0;
552
+ border-radius: calc(4px / 0.875);
553
+
554
+ /* Display box-shadow for iOS Safari */
555
+ -webkit-appearance: none;
556
+ -moz-appearance: none;
557
+ appearance: none;
558
+ background: transparent;
559
+
560
+ color: var(--charcoal-color-text-secondary-default);
561
+ }
562
+
563
+ .charcoal-text-field-input::-moz-placeholder {
564
+ color: var(--charcoal-color-text-placeholder-default);
565
+ }
566
+
567
+ .charcoal-text-field-input::placeholder {
568
+ color: var(--charcoal-color-text-placeholder-default);
569
+ }
570
+
571
+ .charcoal-text-field-line-counter {
572
+ line-height: 22px;
573
+ font-size: 14px;
574
+ color: var(--charcoal-color-text-tertiary-default);
575
+ }
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;
502
611
  content: '';
503
612
  margin-bottom: -4px;
504
613
  }
@@ -599,325 +708,72 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
599
708
  border-width: 2px;
600
709
  border-style: solid;
601
710
  }
602
- .charcoal-switch__label {
603
- display: inline-grid;
604
- grid-template-columns: auto 1fr;
605
- align-items: center;
606
- cursor: pointer;
607
- outline: 0;
608
- gap: 4px;
711
+ .charcoal-text-area-root {
712
+ display: grid;
713
+ grid-template-columns: 1fr;
714
+ grid-gap: 4px;
609
715
  }
610
716
 
611
- .charcoal-switch__label[aria-disabled='true'] {
717
+ .charcoal-text-area-root[aria-disabled='true'] {
612
718
  opacity: 0.32;
613
- cursor: default;
614
719
  }
615
720
 
616
- .charcoal-switch__label[aria-disabled='true'] > input {
617
- opacity: 1;
618
- }
721
+ .charcoal-text-area-container {
722
+ /* Runtime variable overridden by the React component. */
723
+ --charcoal-text-area-rows: 4;
619
724
 
620
- .charcoal-switch__label_div {
621
- font-size: 14px;
622
- line-height: 22px;
623
- color: var(--charcoal-color-text-default);
624
- }
625
- .charcoal-switch-input {
626
- cursor: pointer;
627
- -webkit-appearance: none;
628
- -moz-appearance: none;
629
- appearance: none;
630
- display: inline-flex;
631
725
  position: relative;
632
- box-sizing: border-box;
633
- width: 28px;
634
- border: 2px solid transparent;
635
-
636
- transition-property: background-color, box-shadow;
637
- transition-duration: 0.2s;
638
-
639
- outline: none;
640
- border-radius: 16px;
641
- height: 16px;
642
- margin: 0;
643
- background-color: var(--charcoal-color-container-neutral-default);
644
- }
726
+ overflow: hidden;
645
727
 
646
- .charcoal-switch-input:disabled,
647
- .charcoal-switch-input[readonly] {
648
- opacity: 0.32;
649
- cursor: default;
728
+ color: var(--charcoal-color-text-secondary-default);
729
+ background-color: var(--charcoal-color-container-secondary-default-a);
730
+ border-radius: 4px;
731
+ transition:
732
+ 0.2s background-color,
733
+ 0.2s box-shadow;
734
+ height: calc(22px * var(--charcoal-text-area-rows) + 18px);
650
735
  }
651
736
 
652
- .charcoal-switch-input::after {
653
- content: '';
654
- position: absolute;
655
- display: block;
656
- top: 0;
657
- left: 0;
658
- width: 12px;
659
- height: 12px;
660
- transform: translateX(0);
661
- transition: transform 0.2s;
662
- border-radius: 1024px;
663
- background-color: var(--charcoal-color-icon-on-primary-default);
664
- }
737
+ .charcoal-text-area-container[aria-invalid='true'] {
738
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
739
+ }
665
740
 
666
- .charcoal-switch-input:checked::after {
667
- transform: translateX(12px);
668
- transition: transform 0.2s;
669
- }
741
+ .charcoal-text-area-container:focus-within {
742
+ outline: none;
743
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
744
+ }
670
745
 
671
- .charcoal-switch-input:checked {
672
- background-color: var(--charcoal-color-container-primary-default);
673
- }
746
+ .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
747
+ height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
748
+ }
674
749
 
675
- .charcoal-switch-input:not(:disabled):hover {
676
- background-color: var(--charcoal-color-container-neutral-hover);
677
- }
750
+ .charcoal-text-area-container:not([aria-disabled='true']):hover {
751
+ background-color: var(--charcoal-color-container-secondary-hover-a);
752
+ }
678
753
 
679
- .charcoal-switch-input:not(:disabled):active {
680
- background-color: var(--charcoal-color-container-neutral-press);
681
- }
754
+ .charcoal-text-area-container[aria-invalid='true']:focus-within {
755
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
756
+ }
682
757
 
683
- .charcoal-switch-input:not(:disabled):focus {
758
+ .charcoal-text-area-textarea {
759
+ border: none;
684
760
  outline: none;
685
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
686
- }
687
- .charcoal-switch-input:not(:disabled):focus-visible {
688
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
689
- }
690
- .charcoal-switch-input:not(:disabled):focus:not(:focus-visible) {
691
- box-shadow: none;
692
- }
693
-
694
- .charcoal-switch-input:not(:disabled)::after:hover {
695
- background-color: var(--charcoal-color-icon-on-primary-hover);
696
- }
761
+ resize: none;
762
+ font-family: inherit;
763
+ color: inherit;
764
+ box-sizing: border-box;
697
765
 
698
- .charcoal-switch-input:not(:disabled)::after:active {
699
- background-color: var(--charcoal-color-icon-on-primary-press);
700
- }
701
-
702
- .charcoal-switch-input:not(:disabled):checked:hover {
703
- background-color: var(--charcoal-color-container-primary-hover);
704
- }
705
-
706
- .charcoal-switch-input:not(:disabled):checked:active {
707
- background-color: var(--charcoal-color-container-primary-press);
708
- }
709
- .charcoal-text-field-root {
710
- display: grid;
711
- grid-template-columns: 1fr;
712
- grid-gap: 4px;
713
- }
714
-
715
- .charcoal-text-field-root[aria-disabled='true'] {
716
- opacity: 0.32;
717
- }
718
-
719
- .charcoal-text-field-container {
720
- display: flex;
721
- height: 40px;
722
- transition:
723
- 0.2s background-color,
724
- 0.2s box-shadow;
725
- color: var(--charcoal-color-text-secondary-default);
726
- background-color: var(--charcoal-color-container-secondary-default-a);
727
- border-radius: 4px;
728
- padding: 0 8px;
729
- line-height: 22px;
730
- font-size: 14px;
731
- }
732
-
733
- .charcoal-text-field-container[data-invalid='true'] {
734
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
735
- }
736
-
737
- .charcoal-text-field-container:not([aria-disabled='true']):hover {
738
- background-color: var(--charcoal-color-container-secondary-hover-a);
739
- }
740
-
741
- .charcoal-text-field-container:not([aria-disabled='true']):focus-within {
742
- outline: none;
743
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
744
- }
745
-
746
- .charcoal-text-field-container:not([aria-disabled='true'])[data-invalid='true']:focus-within {
747
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
748
- }
749
-
750
- .charcoal-text-field-prefix {
751
- display: flex;
752
- align-items: center;
753
- margin-right: 4px;
754
- }
755
-
756
- .charcoal-text-field-suffix {
757
- display: flex;
758
- align-items: center;
759
- gap: 8px;
760
- margin-left: 4px;
761
- }
762
-
763
- .charcoal-text-field-input-root {
764
- flex: 1;
765
- min-width: 0;
766
- overflow: hidden;
767
- }
768
-
769
- .charcoal-text-field-input {
770
- border: none;
771
- box-sizing: border-box;
772
- outline: none;
773
- font-family: inherit;
774
-
775
- /* Prevent zooming for iOS Safari */
776
- transform-origin: top left;
777
- transform: scale(0.875);
778
- width: calc(100% / 0.875);
779
- height: calc(100% / 0.875);
780
- font-size: calc(14px / 0.875);
781
- line-height: calc(22px / 0.875);
782
- padding-left: 0;
783
- padding-right: 0;
784
- border-radius: calc(4px / 0.875);
785
-
786
- /* Display box-shadow for iOS Safari */
787
- -webkit-appearance: none;
788
- -moz-appearance: none;
789
- appearance: none;
790
- background: transparent;
791
-
792
- color: var(--charcoal-color-text-secondary-default);
793
- }
794
-
795
- .charcoal-text-field-input::-moz-placeholder {
796
- color: var(--charcoal-color-text-placeholder-default);
797
- }
798
-
799
- .charcoal-text-field-input::placeholder {
800
- color: var(--charcoal-color-text-placeholder-default);
801
- }
802
-
803
- .charcoal-text-field-line-counter {
804
- line-height: 22px;
805
- font-size: 14px;
806
- color: var(--charcoal-color-text-tertiary-default);
807
- }
808
- .charcoal-field-label {
809
- font-size: 14px;
810
- line-height: 22px;
811
- font-weight: bold;
812
- display: flow-root;
813
- color: var(--charcoal-color-text-default-text1);
814
- }
815
-
816
- .charcoal-field-label-required-text {
817
- font-size: 14px;
818
- line-height: 22px;
819
- display: flow-root;
820
- color: var(--charcoal-color-text-secondary-default);
821
- }
822
-
823
- .charcoal-field-label-sub-label {
824
- font-size: 14px;
825
- line-height: 22px;
826
- display: flow-root;
827
- color: var(--charcoal-color-text-tertiary-default);
828
- transition:
829
- 0.2s color,
830
- 0.2s box-shadow;
831
- }
832
-
833
- .charcoal-field-label-root {
834
- display: inline-flex;
835
- align-items: center;
836
- }
837
-
838
- .charcoal-field-label-root > .charcoal-field-label-required-text {
839
- margin-left: 4px;
840
- }
841
-
842
- .charcoal-field-label-root > .charcoal-field-label-sub-label {
843
- margin-left: auto;
844
- }
845
- .charcoal-text-field-assistive-text {
846
- font-size: 14px;
847
- line-height: 22px;
848
- margin: 0;
849
- color: var(--charcoal-color-text-secondary-default);
850
- }
851
-
852
- .charcoal-text-field-assistive-text[data-invalid='true'] {
853
- color: var(--charcoal-color-text-negative-default);
854
- }
855
- .charcoal-text-area-root {
856
- display: grid;
857
- grid-template-columns: 1fr;
858
- grid-gap: 4px;
859
- }
860
-
861
- .charcoal-text-area-root[aria-disabled='true'] {
862
- opacity: 0.32;
863
- }
864
-
865
- .charcoal-text-area-container {
866
- /* Runtime variable overridden by the React component. */
867
- --charcoal-text-area-rows: 4;
868
-
869
- position: relative;
870
- overflow: hidden;
871
-
872
- color: var(--charcoal-color-text-secondary-default);
873
- background-color: var(--charcoal-color-container-secondary-default-a);
874
- border-radius: 4px;
875
- transition:
876
- 0.2s background-color,
877
- 0.2s box-shadow;
878
- height: calc(22px * var(--charcoal-text-area-rows) + 18px);
879
- }
880
-
881
- .charcoal-text-area-container[aria-invalid='true'] {
882
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
883
- }
884
-
885
- .charcoal-text-area-container:focus-within {
886
- outline: none;
887
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
888
- }
889
-
890
- .charcoal-text-area-container:has([data-no-bottom-padding='true']) {
891
- height: calc(22px * (var(--charcoal-text-area-rows) + 1) + 18px);
892
- }
893
-
894
- .charcoal-text-area-container:not([aria-disabled='true']):hover {
895
- background-color: var(--charcoal-color-container-secondary-hover-a);
896
- }
897
-
898
- .charcoal-text-area-container[aria-invalid='true']:focus-within {
899
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
900
- }
901
-
902
- .charcoal-text-area-textarea {
903
- border: none;
904
- outline: none;
905
- resize: none;
906
- font-family: inherit;
907
- color: inherit;
908
- box-sizing: border-box;
909
-
910
- /* Prevent zooming for iOS Safari */
911
- --charcoal-textarea-safari-prevent-zoom-scale: 0.875;
912
- --charcoal-textarea-line-height: calc(
913
- 22px / var(--charcoal-textarea-safari-prevent-zoom-scale)
914
- );
915
- --charcoal-textarea-padding-y: calc(
916
- 8px / var(--charcoal-textarea-safari-prevent-zoom-scale)
917
- );
918
- --charcoal-textarea-padding-x: calc(
919
- 9px / var(--charcoal-textarea-safari-prevent-zoom-scale)
920
- );
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
+ );
921
777
 
922
778
  transform-origin: top left;
923
779
  transform: scale(var(--charcoal-textarea-safari-prevent-zoom-scale));
@@ -964,161 +820,49 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
964
820
  font-size: 14px;
965
821
  color: var(--charcoal-color-text-tertiary-default);
966
822
  }
967
- .charcoal-modal-dialog {
968
- margin: auto;
969
- position: relative;
970
- height: -moz-fit-content;
971
- height: fit-content;
972
- width: 440px;
973
-
974
- background-color: var(--charcoal-color-container-default);
975
- border-radius: 24px;
823
+ .charcoal-icon {
824
+ display: inline-flex;
825
+ width: var(--charcoal-icon-size);
826
+ height: var(--charcoal-icon-size);
976
827
  }
977
828
 
978
- .charcoal-modal-dialog[data-size='S'] {
979
- width: 336px;
980
- }
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));
981
833
 
982
- .charcoal-modal-dialog[data-size='M'] {
983
- width: 440px;
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));
984
839
  }
985
840
 
986
- .charcoal-modal-dialog[data-size='L'] {
987
- width: 648px;
988
- }
841
+ pixiv-icon:not(:defined)[name^='16/'] {
842
+ --pixiv-icon-base: 16px;
843
+ --pixiv-icon-size: 16px;
844
+ }
989
845
 
990
- @media (max-width: 743px) {
991
- .charcoal-modal-dialog {
992
- max-width: 440px;
993
- width: calc(100% - 48px);
994
- }
995
-
996
- .charcoal-modal-dialog[data-bottom-sheet='true'],
997
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
998
- max-width: unset;
999
- width: 100%;
1000
- border-radius: 0;
1001
- margin: auto 0 0 0;
1002
- }
1003
-
1004
- .charcoal-modal-dialog[data-bottom-sheet='full'] {
1005
- min-height: 100%;
1006
- }
1007
- }
1008
-
1009
- .charcoal-modal-dialog:focus {
1010
- outline: none;
1011
- }
1012
- .charcoal-modal-background {
1013
- overflow: auto;
1014
- display: flex;
1015
- position: fixed;
1016
- top: 0;
1017
- left: 0;
1018
- width: 100%;
1019
- height: 100%;
1020
- justify-content: center;
1021
- padding: 40px 0;
1022
- box-sizing: border-box;
1023
-
1024
- background-color: var(--charcoal-color-background-overlay);
1025
- }
1026
-
1027
- @media (max-width: 743px) {
1028
- .charcoal-modal-background[data-bottom-sheet='true'],
1029
- .charcoal-modal-background[data-bottom-sheet='full'] {
1030
- padding: 0;
846
+ pixiv-icon:not(:defined)[name^='24/'][scale='2'] {
847
+ --pixiv-icon-scale: 2;
1031
848
  }
1032
- }
1033
-
1034
- /* easeOutQuart。duration は useTransitionPresence の MODAL_TRANSITION_DURATION_MS と一致させること。
1035
- transition は entering / exiting に限定し、開いたままテーマ切り替え等で
1036
- 色や transform が変わってもアニメーションしないようにする */
1037
- .charcoal-modal-background[data-animation] {
1038
- overflow: hidden;
1039
- }
1040
-
1041
- .charcoal-modal-background[data-animation='entering'],
1042
- .charcoal-modal-background[data-animation='exiting'] {
1043
- transition: background-color 400ms cubic-bezier(0.25, 1, 0.5, 1);
1044
- }
1045
-
1046
- /* 閉じアニメーション中はクリックを下のページへ通す(transitionend が来ない環境で
1047
- 透明なオーバーレイがタップを奪い続けるのも防ぐ) */
1048
- .charcoal-modal-background[data-animation='exited'],
1049
- .charcoal-modal-background[data-animation='exiting'] {
1050
- background-color: transparent;
1051
- pointer-events: none;
1052
- }
1053
-
1054
- .charcoal-modal-background[data-animation='entered'] {
1055
- overflow: auto;
1056
- }
1057
-
1058
- .charcoal-modal-background[data-animation='entering'] > .charcoal-modal-dialog,
1059
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1060
- transition: transform 400ms cubic-bezier(0.25, 1, 0.5, 1);
1061
- }
1062
-
1063
- .charcoal-modal-background[data-animation='exited'] > .charcoal-modal-dialog,
1064
- .charcoal-modal-background[data-animation='exiting'] > .charcoal-modal-dialog {
1065
- transform: translateY(100%);
1066
- }
1067
-
1068
- .charcoal-modal-close-button {
1069
- position: absolute;
1070
- top: 8px;
1071
- right: 8px;
1072
849
 
1073
- color: var(--charcoal-color-text-tertiary-default);
1074
- transition: 0.2s color;
1075
- }
1076
-
1077
- .charcoal-modal-title {
1078
- margin: 0;
1079
- font-weight: inherit;
1080
- font-size: inherit;
1081
- }
1082
- .charcoal-modal-header-root {
1083
- height: 64px;
1084
- display: grid;
1085
- align-content: center;
1086
- justify-content: center;
1087
- }
850
+ pixiv-icon:not(:defined)[name^='24/'][scale='3'] {
851
+ --pixiv-icon-scale: 3;
852
+ }
1088
853
 
1089
- @media (max-width: 743px) {
1090
- .charcoal-modal-header-root[data-bottom-sheet='true'],
1091
- .charcoal-modal-header-root[data-bottom-sheet='full'] {
1092
- height: 48px;
854
+ pixiv-icon:not(:defined)[name^='32/'] {
855
+ --pixiv-icon-base: 32px;
856
+ --pixiv-icon-size: 32px;
1093
857
  }
1094
- }
1095
-
1096
- .charcoal-modal-header-title {
1097
- color: var(--charcoal-color-text-default);
1098
- font-size: 16px;
1099
- line-height: 24px;
1100
- font-weight: bold;
1101
- display: flow-root;
1102
- }
1103
-
1104
- .charcoal-modal-align {
1105
- padding-left: 16px;
1106
- padding-right: 16px;
1107
- }
1108
-
1109
- .charcoal-modal-body {
1110
- padding-bottom: 40px;
1111
- }
1112
858
 
1113
- .charcoal-modal-buttons {
1114
- display: grid;
1115
- grid-auto-flow: row;
1116
- grid-row-gap: 8px;
859
+ pixiv-icon:not(:defined)[name^='Inline/'] {
860
+ --pixiv-icon-base: 16px;
861
+ }
1117
862
 
1118
- padding-top: 16px;
1119
- padding-left: 16px;
1120
- padding-right: 16px;
1121
- }
863
+ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
864
+ --pixiv-icon-scale: 2;
865
+ }
1122
866
  .charcoal-loading-spinner {
1123
867
  box-sizing: content-box;
1124
868
  margin: auto;
@@ -1163,6 +907,46 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1163
907
  .charcoal-loading-spinner-icon[data-once='true'] {
1164
908
  animation-iteration-count: 1;
1165
909
  }
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;
934
+ }
935
+
936
+ .charcoal-dropdown-selector-menu-secondary {
937
+ font-size: 12px;
938
+ line-height: 20px;
939
+ color: var(--charcoal-color-text-tertiary-default);
940
+ padding-bottom: 9px;
941
+
942
+ display: flex;
943
+ align-items: center;
944
+ margin-left: 20px;
945
+ }
946
+
947
+ .charcoal-dropdown-selector-menu-fullwidth {
948
+ width: 100%;
949
+ }
1166
950
  .charcoal-dropdown-selector-root {
1167
951
  display: grid;
1168
952
  grid-template-columns: 1fr;
@@ -1247,85 +1031,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1247
1031
  .charcoal-ui-dropdown-selector-icon {
1248
1032
  color: var(--charcoal-color-icon-secondary-default);
1249
1033
  }
1250
- .charcoal-popover {
1251
- margin: 4px 0;
1252
- list-style: none;
1253
- overflow: auto;
1254
- max-height: inherit;
1255
- background-color: var(--charcoal-color-background-default);
1256
- border: solid 1px var(--charcoal-color-border-secondary);
1257
- border-radius: 8px;
1258
- padding-top: 8px;
1259
- padding-bottom: 8px;
1260
- }
1261
- .charcoal-menu-list {
1262
- padding: 0;
1263
- margin: 0;
1264
- }
1265
- .charcoal-list-item {
1266
- list-style: none;
1267
- display: flex;
1268
- align-items: center;
1269
- min-height: 40px;
1270
- cursor: pointer;
1271
- outline: none;
1272
-
1273
- padding-right: 16px;
1274
- padding-left: 16px;
1275
-
1276
- transition: background-color 0.2s;
1277
- }
1278
-
1279
- .charcoal-list-item:not([aria-disabled='true']):hover,
1280
- .charcoal-list-item:not([aria-disabled='true']):focus,
1281
- .charcoal-list-item:not([aria-disabled='true']):focus-within {
1282
- background-color: var(--charcoal-color-container-secondary-default);
1283
- }
1284
-
1285
- .charcoal-list-item[aria-disabled='true'] {
1286
- opacity: 0.32;
1287
- cursor: default;
1288
- }
1289
- .charcoal-dropdown-selector-menu-item {
1290
- font-size: 14px;
1291
- line-height: 22px;
1292
- color: var(--charcoal-color-text-secondary-default);
1293
- padding: 9px 0;
1294
-
1295
- display: flex;
1296
- align-items: center;
1297
- width: 100%;
1298
- margin-left: 20px;
1299
- }
1300
-
1301
- .charcoal-dropdown-selector-menu-item[data-selected='true'] {
1302
- margin-left: 0px;
1303
- }
1304
-
1305
- .charcoal-dropdown-selector-menu-item-icon {
1306
- color: var(--charcoal-color-text-secondary-default);
1307
- padding-right: 4px;
1308
- }
1309
-
1310
- .charcoal-dropdown-selector-menu-item-container {
1311
- display: flex;
1312
- align-items: center;
1313
- }
1314
-
1315
- .charcoal-dropdown-selector-menu-secondary {
1316
- font-size: 12px;
1317
- line-height: 20px;
1318
- color: var(--charcoal-color-text-tertiary-default);
1319
- padding-bottom: 9px;
1320
-
1321
- display: flex;
1322
- align-items: center;
1323
- margin-left: 20px;
1324
- }
1325
-
1326
- .charcoal-dropdown-selector-menu-fullwidth {
1327
- width: 100%;
1328
- }
1329
1034
  .charcoal-menu-item-group {
1330
1035
  display: block;
1331
1036
  }
@@ -1438,120 +1143,30 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1438
1143
  font-size: 14px;
1439
1144
  line-height: 20px;
1440
1145
  }
1441
- .charcoal-checkbox-input {
1442
- -webkit-appearance: none;
1443
- -moz-appearance: none;
1444
- appearance: none;
1445
- display: flex;
1446
- cursor: pointer;
1447
- margin: 0;
1448
- width: 20px;
1449
- height: 20px;
1450
- border-radius: 4px;
1451
- transition:
1452
- 0.2s box-shadow,
1453
- 0.2s background-color;
1454
- position: relative;
1455
- box-sizing: border-box;
1456
- }
1457
-
1458
- .charcoal-checkbox-input:disabled,
1459
- .charcoal-checkbox-input[readonly] {
1460
- opacity: 0.32;
1461
- cursor: default;
1462
- }
1463
-
1464
- .charcoal-checkbox-input:checked {
1465
- background-color: var(--charcoal-color-container-primary-default);
1466
- }
1467
-
1468
- .charcoal-checkbox-input:checked::after {
1469
- content: '';
1470
- background-color: white;
1471
- display: flex;
1472
- margin: auto;
1473
- width: 16px;
1474
- height: 16px;
1475
- clip-path: path(
1476
- 'M10.6 5a1.3 1.3 0 0 1 1.8 1.9l-5.7 5.6-3-2.9a1.3 1.3 0 1 1 2-1.9l1 1z'
1477
- );
1478
- }
1479
-
1480
- .charcoal-checkbox-input:not(:checked) {
1481
- border-width: 2px;
1482
- border-style: solid;
1483
- border-color: var(--charcoal-color-border-default);
1484
- }
1485
-
1486
- .charcoal-checkbox-input:not(:disabled):focus {
1487
- outline: none;
1488
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1489
- }
1490
- .charcoal-checkbox-input:not(:disabled):focus-visible {
1491
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1492
- }
1493
- .charcoal-checkbox-input:not(:disabled):focus:not(:focus-visible) {
1494
- box-shadow: none;
1495
- }
1496
-
1497
- .charcoal-checkbox-input:checked:not(:disabled):hover {
1498
- background-color: var(--charcoal-color-container-primary-hover);
1499
- }
1500
- .charcoal-checkbox-input:checked:not(:disabled):active {
1501
- background-color: var(--charcoal-color-container-primary-press);
1502
- }
1503
-
1504
- .charcoal-checkbox-input[aria-invalid='true'],
1505
- .charcoal-checkbox-input[aria-invalid='true']:not(:disabled):focus {
1506
- box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1507
- }
1508
-
1509
- .charcoal-checkbox-input[data-rounded='true'] {
1510
- border-radius: 10px;
1511
- background-color: var(--charcoal-color-container-secondary-default);
1512
- border: 2px solid transparent;
1513
- }
1514
-
1515
- .charcoal-checkbox-input[data-rounded='true']:checked {
1516
- background-color: var(--charcoal-color-container-primary-default);
1517
- }
1518
-
1519
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):hover {
1520
- background-color: var(--charcoal-color-container-secondary-hover);
1521
- }
1522
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):active {
1523
- background-color: var(--charcoal-color-container-secondary-press);
1524
- }
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;
1525
1150
 
1526
- .charcoal-checkbox-input[data-rounded='true']:not(:disabled):focus-visible {
1527
- box-shadow: 0 0 0 6px rgba(0, 150, 250, 0.32);
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);
1528
1156
  }
1529
1157
 
1530
- .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):hover {
1531
- background-color: var(--charcoal-color-container-primary-hover);
1532
- }
1533
- .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):active {
1534
- background-color: var(--charcoal-color-container-primary-press);
1535
- }
1158
+ .charcoal-text-ellipsis[data-has-line-height='true'] {
1159
+ line-height: var(--charcoal-text-ellipsis-line-height);
1160
+ }
1536
1161
 
1537
- .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true'],
1538
- .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true']:not(
1539
- :disabled
1540
- ):focus {
1541
- box-shadow: 0 0 0 6px rgba(255, 43, 0, 0.32);
1542
- }
1162
+ .charcoal-text-ellipsis[data-has-line-height='false'] {
1163
+ line-height: inherit;
1164
+ }
1543
1165
 
1544
- .charcoal-checkbox-input[data-rounded='true']::before {
1545
- content: '';
1546
- width: 24px;
1547
- height: 24px;
1548
- position: absolute;
1549
- top: -4px;
1550
- left: -4px;
1551
- border-radius: 12px;
1552
- border: 2px solid #fff;
1553
- box-sizing: border-box;
1554
- }
1166
+ .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1167
+ text-overflow: ellipsis;
1168
+ white-space: nowrap;
1169
+ }
1555
1170
  .charcoal-tag-item {
1556
1171
  --charcoal-tag-item-color: var(--charcoal-color-text-on-primary-default);
1557
1172
  --charcoal-tag-item-size: 40px;
@@ -1742,30 +1357,6 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
1742
1357
  min-width: 0;
1743
1358
  overflow-wrap: break-word;
1744
1359
  }
1745
- .charcoal-text-ellipsis {
1746
- /* Runtime variables overridden by the React component. */
1747
- --charcoal-text-ellipsis-line-limit: 1;
1748
- --charcoal-text-ellipsis-line-height: inherit;
1749
-
1750
- overflow: hidden;
1751
- overflow-wrap: break-word;
1752
- display: -webkit-box;
1753
- -webkit-box-orient: vertical;
1754
- -webkit-line-clamp: var(--charcoal-text-ellipsis-line-limit);
1755
- }
1756
-
1757
- .charcoal-text-ellipsis[data-has-line-height='true'] {
1758
- line-height: var(--charcoal-text-ellipsis-line-height);
1759
- }
1760
-
1761
- .charcoal-text-ellipsis[data-has-line-height='false'] {
1762
- line-height: inherit;
1763
- }
1764
-
1765
- .charcoal-text-ellipsis[data-line-limit='1'][data-use-nowrap='true'] {
1766
- text-overflow: ellipsis;
1767
- white-space: nowrap;
1768
- }
1769
1360
  .charcoal-pagination {
1770
1361
  display: flex;
1771
1362
  justify-content: center;
@@ -2199,14 +1790,423 @@ pixiv-icon:not(:defined)[name^='Inline/'][scale='2'] {
2199
1790
  }
2200
1791
  }
2201
1792
  /* stylelint-enable property-no-unknown, selector-pseudo-element-no-unknown, selector-pseudo-class-no-unknown */
2202
- .charcoal-focus-ring:is(
2203
- :not(:disabled):not([aria-disabled]),
2204
- [aria-disabled='false']
2205
- ):focus-visible {
2206
- outline: none;
2207
- box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2208
- transition: 0.2s box-shadow;
2209
- }
1793
+ .charcoal-text-field-assistive-text {
1794
+ font-size: 14px;
1795
+ line-height: 22px;
1796
+ margin: 0;
1797
+ color: var(--charcoal-color-text-secondary-default);
1798
+ }
1799
+
1800
+ .charcoal-text-field-assistive-text[data-invalid='true'] {
1801
+ color: var(--charcoal-color-text-negative-default);
1802
+ }
1803
+ .charcoal-radio-input {
1804
+ -webkit-appearance: none;
1805
+ -moz-appearance: none;
1806
+ appearance: none;
1807
+ display: block;
1808
+ box-sizing: border-box;
1809
+
1810
+ margin: 0;
1811
+ padding: 6px;
1812
+
1813
+ width: 20px;
1814
+ height: 20px;
1815
+ cursor: pointer;
1816
+ border-radius: 999999px;
1817
+ background-color: var(--charcoal-color-container-default);
1818
+ transition:
1819
+ 0.2s background-color,
1820
+ 0.2s box-shadow;
1821
+ }
1822
+
1823
+ .charcoal-radio-input:checked {
1824
+ background-color: var(--charcoal-color-container-primary-default);
1825
+ }
1826
+
1827
+ .charcoal-radio-input:checked::after {
1828
+ content: '';
1829
+ display: block;
1830
+ width: 8px;
1831
+ height: 8px;
1832
+ pointer-events: none;
1833
+ background-color: var(--charcoal-color-icon-on-primary-default);
1834
+ border-radius: 999999px;
1835
+ transition:
1836
+ 0.2s background-color,
1837
+ 0.2s box-shadow;
1838
+ }
1839
+
1840
+ .charcoal-radio-input:not(:checked) {
1841
+ border-width: 2px;
1842
+ border-style: solid;
1843
+ border-color: var(--charcoal-color-border-default);
1844
+ }
1845
+
1846
+ .charcoal-radio-input:disabled {
1847
+ cursor: default;
1848
+ }
1849
+
1850
+ .charcoal-radio-input:not(:disabled):hover {
1851
+ background-color: var(--charcoal-color-container-hover);
1852
+ }
1853
+
1854
+ .charcoal-radio-input:not(:disabled):active {
1855
+ background-color: var(--charcoal-color-container-press);
1856
+ }
1857
+
1858
+ .charcoal-radio-input:not(:disabled):focus {
1859
+ outline: none;
1860
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1861
+ }
1862
+
1863
+ .charcoal-radio-input:not(:disabled):focus-visible {
1864
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1865
+ }
1866
+
1867
+ .charcoal-radio-input:not(:disabled):focus:not(:focus-visible) {
1868
+ box-shadow: none;
1869
+ }
1870
+
1871
+ .charcoal-radio-input:not(:disabled)[aria-invalid='true'],
1872
+ .charcoal-radio-input:not(:disabled)[aria-invalid='true']:focus {
1873
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
1874
+ }
1875
+
1876
+ .charcoal-radio-input:checked:not(:disabled):hover {
1877
+ background-color: var(--charcoal-color-container-primary-hover);
1878
+ }
1879
+
1880
+ .charcoal-radio-input:checked:not(:disabled):hover::after {
1881
+ background-color: var(--charcoal-color-icon-on-primary-hover);
1882
+ }
1883
+
1884
+ .charcoal-radio-input:checked:not(:disabled):active {
1885
+ background-color: var(--charcoal-color-container-primary-press);
1886
+ }
1887
+
1888
+ .charcoal-radio-input:checked:not(:disabled):active::after {
1889
+ background-color: var(--charcoal-color-icon-on-primary-press);
1890
+ }
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
+ .charcoal-switch-input {
1937
+ cursor: pointer;
1938
+ -webkit-appearance: none;
1939
+ -moz-appearance: none;
1940
+ appearance: none;
1941
+ display: inline-flex;
1942
+ position: relative;
1943
+ box-sizing: border-box;
1944
+ width: 28px;
1945
+ border: 2px solid transparent;
1946
+
1947
+ transition-property: background-color, box-shadow;
1948
+ transition-duration: 0.2s;
1949
+
1950
+ outline: none;
1951
+ border-radius: 16px;
1952
+ height: 16px;
1953
+ margin: 0;
1954
+ background-color: var(--charcoal-color-container-neutral-default);
1955
+ }
1956
+
1957
+ .charcoal-switch-input:disabled,
1958
+ .charcoal-switch-input[readonly] {
1959
+ opacity: 0.32;
1960
+ cursor: default;
1961
+ }
1962
+
1963
+ .charcoal-switch-input::after {
1964
+ content: '';
1965
+ position: absolute;
1966
+ display: block;
1967
+ top: 0;
1968
+ left: 0;
1969
+ width: 12px;
1970
+ height: 12px;
1971
+ transform: translateX(0);
1972
+ transition: transform 0.2s;
1973
+ border-radius: 1024px;
1974
+ background-color: var(--charcoal-color-icon-on-primary-default);
1975
+ }
1976
+
1977
+ .charcoal-switch-input:checked::after {
1978
+ transform: translateX(12px);
1979
+ transition: transform 0.2s;
1980
+ }
1981
+
1982
+ .charcoal-switch-input:checked {
1983
+ background-color: var(--charcoal-color-container-primary-default);
1984
+ }
1985
+
1986
+ .charcoal-switch-input:not(:disabled):hover {
1987
+ background-color: var(--charcoal-color-container-neutral-hover);
1988
+ }
1989
+
1990
+ .charcoal-switch-input:not(:disabled):active {
1991
+ background-color: var(--charcoal-color-container-neutral-press);
1992
+ }
1993
+
1994
+ .charcoal-switch-input:not(:disabled):focus {
1995
+ outline: none;
1996
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
1997
+ }
1998
+ .charcoal-switch-input:not(:disabled):focus-visible {
1999
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2000
+ }
2001
+ .charcoal-switch-input:not(:disabled):focus:not(:focus-visible) {
2002
+ box-shadow: none;
2003
+ }
2004
+
2005
+ .charcoal-switch-input:not(:disabled)::after:hover {
2006
+ background-color: var(--charcoal-color-icon-on-primary-hover);
2007
+ }
2008
+
2009
+ .charcoal-switch-input:not(:disabled)::after:active {
2010
+ background-color: var(--charcoal-color-icon-on-primary-press);
2011
+ }
2012
+
2013
+ .charcoal-switch-input:not(:disabled):checked:hover {
2014
+ background-color: var(--charcoal-color-container-primary-hover);
2015
+ }
2016
+
2017
+ .charcoal-switch-input:not(:disabled):checked:active {
2018
+ background-color: var(--charcoal-color-container-primary-press);
2019
+ }
2020
+ .charcoal-menu-list {
2021
+ padding: 0;
2022
+ margin: 0;
2023
+ }
2024
+ .charcoal-field-label {
2025
+ font-size: 14px;
2026
+ line-height: 22px;
2027
+ font-weight: bold;
2028
+ display: flow-root;
2029
+ color: var(--charcoal-color-text-default-text1);
2030
+ }
2031
+
2032
+ .charcoal-field-label-required-text {
2033
+ font-size: 14px;
2034
+ line-height: 22px;
2035
+ display: flow-root;
2036
+ color: var(--charcoal-color-text-secondary-default);
2037
+ }
2038
+
2039
+ .charcoal-field-label-sub-label {
2040
+ font-size: 14px;
2041
+ line-height: 22px;
2042
+ display: flow-root;
2043
+ color: var(--charcoal-color-text-tertiary-default);
2044
+ transition:
2045
+ 0.2s color,
2046
+ 0.2s box-shadow;
2047
+ }
2048
+
2049
+ .charcoal-field-label-root {
2050
+ display: inline-flex;
2051
+ align-items: center;
2052
+ }
2053
+
2054
+ .charcoal-field-label-root > .charcoal-field-label-required-text {
2055
+ margin-left: 4px;
2056
+ }
2057
+
2058
+ .charcoal-field-label-root > .charcoal-field-label-sub-label {
2059
+ margin-left: auto;
2060
+ }
2061
+ .charcoal-list-item {
2062
+ list-style: none;
2063
+ display: flex;
2064
+ align-items: center;
2065
+ min-height: 40px;
2066
+ cursor: pointer;
2067
+ outline: none;
2068
+
2069
+ padding-right: 16px;
2070
+ padding-left: 16px;
2071
+
2072
+ transition: background-color 0.2s;
2073
+ }
2074
+
2075
+ .charcoal-list-item:not([aria-disabled='true']):hover,
2076
+ .charcoal-list-item:not([aria-disabled='true']):focus,
2077
+ .charcoal-list-item:not([aria-disabled='true']):focus-within {
2078
+ background-color: var(--charcoal-color-container-secondary-default);
2079
+ }
2080
+
2081
+ .charcoal-list-item[aria-disabled='true'] {
2082
+ opacity: 0.32;
2083
+ cursor: default;
2084
+ }
2085
+ .charcoal-checkbox-input {
2086
+ -webkit-appearance: none;
2087
+ -moz-appearance: none;
2088
+ appearance: none;
2089
+ display: flex;
2090
+ cursor: pointer;
2091
+ margin: 0;
2092
+ width: 20px;
2093
+ height: 20px;
2094
+ border-radius: 4px;
2095
+ transition:
2096
+ 0.2s box-shadow,
2097
+ 0.2s background-color;
2098
+ position: relative;
2099
+ box-sizing: border-box;
2100
+ }
2101
+
2102
+ .charcoal-checkbox-input:disabled,
2103
+ .charcoal-checkbox-input[readonly] {
2104
+ opacity: 0.32;
2105
+ cursor: default;
2106
+ }
2107
+
2108
+ .charcoal-checkbox-input:checked {
2109
+ background-color: var(--charcoal-color-container-primary-default);
2110
+ }
2111
+
2112
+ .charcoal-checkbox-input:checked::after {
2113
+ content: '';
2114
+ background-color: white;
2115
+ display: flex;
2116
+ margin: auto;
2117
+ width: 16px;
2118
+ height: 16px;
2119
+ clip-path: path(
2120
+ 'M10.6 5a1.3 1.3 0 0 1 1.8 1.9l-5.7 5.6-3-2.9a1.3 1.3 0 1 1 2-1.9l1 1z'
2121
+ );
2122
+ }
2123
+
2124
+ .charcoal-checkbox-input:not(:checked) {
2125
+ border-width: 2px;
2126
+ border-style: solid;
2127
+ border-color: var(--charcoal-color-border-default);
2128
+ }
2129
+
2130
+ .charcoal-checkbox-input:not(:disabled):focus {
2131
+ outline: none;
2132
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2133
+ }
2134
+ .charcoal-checkbox-input:not(:disabled):focus-visible {
2135
+ box-shadow: 0 0 0 4px rgba(0, 150, 250, 0.32);
2136
+ }
2137
+ .charcoal-checkbox-input:not(:disabled):focus:not(:focus-visible) {
2138
+ box-shadow: none;
2139
+ }
2140
+
2141
+ .charcoal-checkbox-input:checked:not(:disabled):hover {
2142
+ background-color: var(--charcoal-color-container-primary-hover);
2143
+ }
2144
+ .charcoal-checkbox-input:checked:not(:disabled):active {
2145
+ background-color: var(--charcoal-color-container-primary-press);
2146
+ }
2147
+
2148
+ .charcoal-checkbox-input[aria-invalid='true'],
2149
+ .charcoal-checkbox-input[aria-invalid='true']:not(:disabled):focus {
2150
+ box-shadow: 0 0 0 4px rgba(255, 43, 0, 0.32);
2151
+ }
2152
+
2153
+ .charcoal-checkbox-input[data-rounded='true'] {
2154
+ border-radius: 10px;
2155
+ background-color: var(--charcoal-color-container-secondary-default);
2156
+ border: 2px solid transparent;
2157
+ }
2158
+
2159
+ .charcoal-checkbox-input[data-rounded='true']:checked {
2160
+ background-color: var(--charcoal-color-container-primary-default);
2161
+ }
2162
+
2163
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):hover {
2164
+ background-color: var(--charcoal-color-container-secondary-hover);
2165
+ }
2166
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):active {
2167
+ background-color: var(--charcoal-color-container-secondary-press);
2168
+ }
2169
+
2170
+ .charcoal-checkbox-input[data-rounded='true']:not(:disabled):focus-visible {
2171
+ box-shadow: 0 0 0 6px rgba(0, 150, 250, 0.32);
2172
+ }
2173
+
2174
+ .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):hover {
2175
+ background-color: var(--charcoal-color-container-primary-hover);
2176
+ }
2177
+ .charcoal-checkbox-input[data-rounded='true']:checked:not(:disabled):active {
2178
+ background-color: var(--charcoal-color-container-primary-press);
2179
+ }
2180
+
2181
+ .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true'],
2182
+ .charcoal-checkbox-input[data-rounded='true'][aria-invalid='true']:not(
2183
+ :disabled
2184
+ ):focus {
2185
+ box-shadow: 0 0 0 6px rgba(255, 43, 0, 0.32);
2186
+ }
2187
+
2188
+ .charcoal-checkbox-input[data-rounded='true']::before {
2189
+ content: '';
2190
+ width: 24px;
2191
+ height: 24px;
2192
+ position: absolute;
2193
+ top: -4px;
2194
+ left: -4px;
2195
+ border-radius: 12px;
2196
+ border: 2px solid #fff;
2197
+ box-sizing: border-box;
2198
+ }
2199
+ .charcoal-popover {
2200
+ margin: 4px 0;
2201
+ list-style: none;
2202
+ overflow: auto;
2203
+ max-height: inherit;
2204
+ background-color: var(--charcoal-color-background-default);
2205
+ border: solid 1px var(--charcoal-color-border-secondary);
2206
+ border-radius: 8px;
2207
+ padding-top: 8px;
2208
+ padding-bottom: 8px;
2209
+ }
2210
2210
  }
2211
2211
 
2212
2212
  /*# sourceMappingURL=layered.css.map */