@charcoal-ui/react 4.0.0-beta.1 → 4.0.0-beta.12

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 (266) hide show
  1. package/README.md +1 -1
  2. package/dist/_lib/compat.d.ts +0 -12
  3. package/dist/_lib/compat.d.ts.map +1 -1
  4. package/dist/_lib/createDivComponent.d.ts +4 -0
  5. package/dist/_lib/createDivComponent.d.ts.map +1 -0
  6. package/dist/_lib/useClassNames.d.ts +2 -2
  7. package/dist/_lib/useClassNames.d.ts.map +1 -1
  8. package/dist/components/Button/index.d.ts +5 -1
  9. package/dist/components/Button/index.d.ts.map +1 -1
  10. package/dist/components/Checkbox/CheckboxInput/index.d.ts +11 -0
  11. package/dist/components/Checkbox/CheckboxInput/index.d.ts.map +1 -0
  12. package/dist/components/Checkbox/CheckboxWithLabel.d.ts +9 -0
  13. package/dist/components/Checkbox/CheckboxWithLabel.d.ts.map +1 -0
  14. package/dist/components/Checkbox/index.d.ts +12 -21
  15. package/dist/components/Checkbox/index.d.ts.map +1 -1
  16. package/dist/components/Clickable/index.d.ts +9 -15
  17. package/dist/components/Clickable/index.d.ts.map +1 -1
  18. package/dist/components/DropdownSelector/Divider/index.d.ts +3 -0
  19. package/dist/components/DropdownSelector/Divider/index.d.ts.map +1 -0
  20. package/dist/components/DropdownSelector/DropdownMenuItem/index.d.ts +8 -0
  21. package/dist/components/DropdownSelector/DropdownMenuItem/index.d.ts.map +1 -0
  22. package/dist/components/DropdownSelector/DropdownPopover.d.ts.map +1 -1
  23. package/dist/components/DropdownSelector/ListItem/index.d.ts +5 -13
  24. package/dist/components/DropdownSelector/ListItem/index.d.ts.map +1 -1
  25. package/dist/components/DropdownSelector/MenuItem/index.d.ts +10 -3
  26. package/dist/components/DropdownSelector/MenuItem/index.d.ts.map +1 -1
  27. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.d.ts +1 -1
  28. package/dist/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.d.ts.map +1 -1
  29. package/dist/components/DropdownSelector/MenuItemGroup/index.d.ts +1 -3
  30. package/dist/components/DropdownSelector/MenuItemGroup/index.d.ts.map +1 -1
  31. package/dist/components/DropdownSelector/MenuList/index.d.ts +1 -4
  32. package/dist/components/DropdownSelector/MenuList/index.d.ts.map +1 -1
  33. package/dist/components/DropdownSelector/Popover/index.d.ts +2 -2
  34. package/dist/components/DropdownSelector/Popover/index.d.ts.map +1 -1
  35. package/dist/components/DropdownSelector/index.d.ts +3 -1
  36. package/dist/components/DropdownSelector/index.d.ts.map +1 -1
  37. package/dist/components/FieldLabel/index.d.ts +1 -0
  38. package/dist/components/FieldLabel/index.d.ts.map +1 -1
  39. package/dist/components/IconButton/index.d.ts +6 -5
  40. package/dist/components/IconButton/index.d.ts.map +1 -1
  41. package/dist/components/LoadingSpinner/index.d.ts +1 -0
  42. package/dist/components/LoadingSpinner/index.d.ts.map +1 -1
  43. package/dist/components/Modal/Dialog/index.d.ts +6 -24
  44. package/dist/components/Modal/Dialog/index.d.ts.map +1 -1
  45. package/dist/components/Modal/ModalPlumbing.d.ts +10 -3
  46. package/dist/components/Modal/ModalPlumbing.d.ts.map +1 -1
  47. package/dist/components/Modal/index.d.ts +6 -2
  48. package/dist/components/Modal/index.d.ts.map +1 -1
  49. package/dist/components/Modal/useCustomModalOverlay.d.ts +1 -0
  50. package/dist/components/Modal/useCustomModalOverlay.d.ts.map +1 -1
  51. package/dist/components/Radio/RadioGroup/index.d.ts +20 -0
  52. package/dist/components/Radio/RadioGroup/index.d.ts.map +1 -0
  53. package/dist/components/Radio/RadioGroupContext.d.ts +11 -0
  54. package/dist/components/Radio/RadioGroupContext.d.ts.map +1 -0
  55. package/dist/components/Radio/RadioInput/index.d.ts +10 -0
  56. package/dist/components/Radio/RadioInput/index.d.ts.map +1 -0
  57. package/dist/components/Radio/index.d.ts +1 -14
  58. package/dist/components/Radio/index.d.ts.map +1 -1
  59. package/dist/components/SegmentedControl/index.d.ts +1 -0
  60. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  61. package/dist/components/Switch/SwitchInput/index.d.ts +9 -0
  62. package/dist/components/Switch/SwitchInput/index.d.ts.map +1 -0
  63. package/dist/components/Switch/SwitchWithLabel.d.ts +9 -0
  64. package/dist/components/Switch/SwitchWithLabel.d.ts.map +1 -0
  65. package/dist/components/Switch/index.d.ts +4 -15
  66. package/dist/components/Switch/index.d.ts.map +1 -1
  67. package/dist/components/TagItem/index.d.ts +10 -15
  68. package/dist/components/TagItem/index.d.ts.map +1 -1
  69. package/dist/components/TextArea/index.d.ts +29 -18
  70. package/dist/components/TextArea/index.d.ts.map +1 -1
  71. package/dist/components/TextField/AssistiveText/index.d.ts +5 -0
  72. package/dist/components/TextField/AssistiveText/index.d.ts.map +1 -0
  73. package/dist/components/TextField/index.d.ts +33 -22
  74. package/dist/components/TextField/index.d.ts.map +1 -1
  75. package/dist/core/CharcoalProvider.d.ts +4 -11
  76. package/dist/core/CharcoalProvider.d.ts.map +1 -1
  77. package/dist/core/SSRProvider.d.ts +3 -1
  78. package/dist/core/SSRProvider.d.ts.map +1 -1
  79. package/dist/index.cjs.js +575 -1255
  80. package/dist/index.cjs.js.map +1 -1
  81. package/dist/index.css +1097 -3
  82. package/dist/index.css.map +1 -1
  83. package/dist/index.d.ts +4 -5
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.esm.js +554 -1231
  86. package/dist/index.esm.js.map +1 -1
  87. package/package.json +22 -24
  88. package/src/README.mdx +68 -0
  89. package/src/SSR.mdx +67 -0
  90. package/src/_lib/compat.ts +0 -11
  91. package/src/_lib/createDivComponent.tsx +11 -0
  92. package/src/_lib/index.ts +1 -1
  93. package/src/_lib/useClassNames.ts +3 -9
  94. package/src/components/Button/__snapshots__/index.story.storyshot +18 -56
  95. package/src/components/Button/index.css +2 -3
  96. package/src/components/Button/index.story.tsx +14 -67
  97. package/src/components/Button/index.tsx +7 -3
  98. package/src/components/Checkbox/CheckboxInput/__snapshots__/index.story.storyshot +77 -0
  99. package/src/components/Checkbox/CheckboxInput/index.css +110 -0
  100. package/src/components/Checkbox/CheckboxInput/index.story.tsx +51 -0
  101. package/src/components/Checkbox/CheckboxInput/index.tsx +47 -0
  102. package/src/components/Checkbox/CheckboxWithLabel.tsx +24 -0
  103. package/src/components/Checkbox/__snapshots__/index.story.storyshot +103 -538
  104. package/src/components/Checkbox/index.css +21 -0
  105. package/src/components/Checkbox/index.story.tsx +49 -79
  106. package/src/components/Checkbox/index.tsx +32 -162
  107. package/src/components/Clickable/__snapshots__/index.story.storyshot +4 -80
  108. package/src/components/Clickable/index.css +41 -0
  109. package/src/components/Clickable/index.story.tsx +2 -2
  110. package/src/components/Clickable/index.tsx +19 -84
  111. package/src/components/DropdownSelector/Divider/index.css +11 -0
  112. package/src/components/DropdownSelector/Divider/index.tsx +5 -0
  113. package/src/components/DropdownSelector/DropdownMenuItem/index.css +20 -0
  114. package/src/components/DropdownSelector/DropdownMenuItem/index.tsx +34 -0
  115. package/src/components/DropdownSelector/DropdownPopover.tsx +16 -9
  116. package/src/components/DropdownSelector/ListItem/__snapshots__/index.story.storyshot +41 -224
  117. package/src/components/DropdownSelector/ListItem/index.css +24 -0
  118. package/src/components/DropdownSelector/ListItem/index.story.tsx +12 -6
  119. package/src/components/DropdownSelector/ListItem/index.tsx +14 -53
  120. package/src/components/DropdownSelector/MenuItem/index.tsx +17 -12
  121. package/src/components/DropdownSelector/MenuItem/internals/useMenuItemHandleKeyDown.tsx +2 -2
  122. package/src/components/DropdownSelector/MenuItemGroup/index.css +19 -0
  123. package/src/components/DropdownSelector/MenuItemGroup/index.tsx +6 -28
  124. package/src/components/DropdownSelector/MenuList/__snapshots__/index.story.storyshot +162 -416
  125. package/src/components/DropdownSelector/MenuList/index.css +4 -0
  126. package/src/components/DropdownSelector/MenuList/index.story.tsx +1 -1
  127. package/src/components/DropdownSelector/MenuList/index.tsx +4 -12
  128. package/src/components/DropdownSelector/Popover/__snapshots__/index.story.storyshot +1 -1
  129. package/src/components/DropdownSelector/Popover/index.css +11 -0
  130. package/src/components/DropdownSelector/Popover/index.story.tsx +1 -1
  131. package/src/components/DropdownSelector/Popover/index.tsx +7 -17
  132. package/src/components/DropdownSelector/__snapshots__/index.story.storyshot +432 -2458
  133. package/src/components/DropdownSelector/index.css +84 -0
  134. package/src/components/DropdownSelector/index.story.tsx +2 -6
  135. package/src/components/DropdownSelector/index.tsx +61 -137
  136. package/src/components/FieldLabel/index.css +35 -0
  137. package/src/components/FieldLabel/index.tsx +15 -105
  138. package/src/components/Icon/__snapshots__/index.story.storyshot +1 -1
  139. package/src/components/Icon/index.story.tsx +1 -1
  140. package/src/components/IconButton/__snapshots__/index.story.storyshot +19 -297
  141. package/src/components/IconButton/index.css +118 -0
  142. package/src/components/IconButton/index.story.tsx +17 -40
  143. package/src/components/IconButton/index.tsx +38 -118
  144. package/src/components/LoadingSpinner/__snapshots__/LoadingSpinnerIcon.story.storyshot +2 -17
  145. package/src/components/LoadingSpinner/__snapshots__/index.story.storyshot +80 -30
  146. package/src/components/LoadingSpinner/index.css +42 -0
  147. package/src/components/LoadingSpinner/index.story.tsx +19 -8
  148. package/src/components/LoadingSpinner/index.tsx +26 -52
  149. package/src/components/Modal/Dialog/index.css +44 -0
  150. package/src/components/Modal/Dialog/index.tsx +14 -57
  151. package/src/components/Modal/ModalPlumbing.css +40 -0
  152. package/src/components/Modal/ModalPlumbing.tsx +13 -61
  153. package/src/components/Modal/__snapshots__/index.story.storyshot +289 -2212
  154. package/src/components/Modal/index.css +36 -0
  155. package/src/components/Modal/index.story.tsx +28 -13
  156. package/src/components/Modal/index.tsx +42 -78
  157. package/src/components/Modal/useCustomModalOverlay.tsx +19 -4
  158. package/src/components/Radio/RadioGroup/index.css +5 -0
  159. package/src/components/Radio/RadioGroup/index.tsx +80 -0
  160. package/src/components/Radio/RadioGroupContext.ts +23 -0
  161. package/src/components/Radio/RadioInput/index.css +82 -0
  162. package/src/components/Radio/RadioInput/index.tsx +41 -0
  163. package/src/components/Radio/__snapshots__/index.story.storyshot +111 -855
  164. package/src/components/Radio/index.css +18 -0
  165. package/src/components/Radio/index.story.tsx +47 -40
  166. package/src/components/Radio/index.test.tsx +22 -29
  167. package/src/components/Radio/index.tsx +16 -208
  168. package/src/components/SegmentedControl/__snapshots__/index.story.storyshot +32 -262
  169. package/src/components/SegmentedControl/index.css +50 -0
  170. package/src/components/SegmentedControl/index.story.tsx +1 -1
  171. package/src/components/SegmentedControl/index.tsx +20 -89
  172. package/src/components/Switch/SwitchInput/index.css +82 -0
  173. package/src/components/Switch/SwitchInput/index.tsx +40 -0
  174. package/src/components/Switch/SwitchWithLabel.tsx +24 -0
  175. package/src/components/Switch/__snapshots__/index.story.storyshot +35 -539
  176. package/src/components/Switch/index.css +23 -0
  177. package/src/components/Switch/index.story.tsx +16 -19
  178. package/src/components/Switch/index.tsx +43 -140
  179. package/src/components/TagItem/__snapshots__/index.story.storyshot +212 -1063
  180. package/src/components/TagItem/index.css +140 -0
  181. package/src/components/TagItem/index.story.tsx +45 -162
  182. package/src/components/TagItem/index.tsx +72 -220
  183. package/src/components/TextArea/TextArea.story.tsx +63 -25
  184. package/src/components/TextArea/__snapshots__/TextArea.story.storyshot +615 -1055
  185. package/src/components/TextArea/index.css +78 -0
  186. package/src/components/TextArea/index.tsx +83 -174
  187. package/src/components/TextField/AssistiveText/index.css +10 -0
  188. package/src/components/TextField/AssistiveText/index.tsx +6 -0
  189. package/src/components/TextField/TextField.story.tsx +85 -76
  190. package/src/components/TextField/__snapshots__/TextField.story.storyshot +631 -1709
  191. package/src/components/TextField/index.css +87 -0
  192. package/src/components/TextField/index.tsx +92 -211
  193. package/src/core/CharcoalProvider.tsx +5 -29
  194. package/src/core/SSRProvider.tsx +12 -1
  195. package/src/index.ts +7 -19
  196. package/src/type.d.ts +3 -8
  197. package/dist/components/Button/index.story.d.ts +0 -24
  198. package/dist/components/Button/index.story.d.ts.map +0 -1
  199. package/dist/components/Checkbox/index.story.d.ts +0 -8
  200. package/dist/components/Checkbox/index.story.d.ts.map +0 -1
  201. package/dist/components/Clickable/index.story.d.ts +0 -6
  202. package/dist/components/Clickable/index.story.d.ts.map +0 -1
  203. package/dist/components/DropdownSelector/Divider.d.ts +0 -7
  204. package/dist/components/DropdownSelector/Divider.d.ts.map +0 -1
  205. package/dist/components/DropdownSelector/DropdownMenuItem.d.ts +0 -7
  206. package/dist/components/DropdownSelector/DropdownMenuItem.d.ts.map +0 -1
  207. package/dist/components/DropdownSelector/ListItem/index.story.d.ts +0 -9
  208. package/dist/components/DropdownSelector/ListItem/index.story.d.ts.map +0 -1
  209. package/dist/components/DropdownSelector/MenuList/index.story.d.ts +0 -8
  210. package/dist/components/DropdownSelector/MenuList/index.story.d.ts.map +0 -1
  211. package/dist/components/DropdownSelector/Popover/index.story.d.ts +0 -5
  212. package/dist/components/DropdownSelector/Popover/index.story.d.ts.map +0 -1
  213. package/dist/components/DropdownSelector/index.story.d.ts +0 -19
  214. package/dist/components/DropdownSelector/index.story.d.ts.map +0 -1
  215. package/dist/components/Icon/index.story.d.ts +0 -6
  216. package/dist/components/Icon/index.story.d.ts.map +0 -1
  217. package/dist/components/IconButton/index.story.d.ts +0 -9
  218. package/dist/components/IconButton/index.story.d.ts.map +0 -1
  219. package/dist/components/LoadingSpinner/LoadingSpinnerIcon.story.d.ts +0 -8
  220. package/dist/components/LoadingSpinner/LoadingSpinnerIcon.story.d.ts.map +0 -1
  221. package/dist/components/LoadingSpinner/index.story.d.ts +0 -6
  222. package/dist/components/LoadingSpinner/index.story.d.ts.map +0 -1
  223. package/dist/components/Modal/__stories__/InternalScrollStory.d.ts +0 -4
  224. package/dist/components/Modal/__stories__/InternalScrollStory.d.ts.map +0 -1
  225. package/dist/components/Modal/index.story.d.ts +0 -21
  226. package/dist/components/Modal/index.story.d.ts.map +0 -1
  227. package/dist/components/MultiSelect/context.d.ts +0 -14
  228. package/dist/components/MultiSelect/context.d.ts.map +0 -1
  229. package/dist/components/MultiSelect/index.d.ts +0 -36
  230. package/dist/components/MultiSelect/index.d.ts.map +0 -1
  231. package/dist/components/MultiSelect/index.story.d.ts +0 -82
  232. package/dist/components/MultiSelect/index.story.d.ts.map +0 -1
  233. package/dist/components/MultiSelect/index.test.d.ts +0 -2
  234. package/dist/components/MultiSelect/index.test.d.ts.map +0 -1
  235. package/dist/components/Radio/index.story.d.ts +0 -26
  236. package/dist/components/Radio/index.story.d.ts.map +0 -1
  237. package/dist/components/Radio/index.test.d.ts +0 -2
  238. package/dist/components/Radio/index.test.d.ts.map +0 -1
  239. package/dist/components/SegmentedControl/index.story.d.ts +0 -7
  240. package/dist/components/SegmentedControl/index.story.d.ts.map +0 -1
  241. package/dist/components/Switch/index.story.d.ts +0 -9
  242. package/dist/components/Switch/index.story.d.ts.map +0 -1
  243. package/dist/components/TagItem/index.story.d.ts +0 -16
  244. package/dist/components/TagItem/index.story.d.ts.map +0 -1
  245. package/dist/components/TextArea/TextArea.story.d.ts +0 -9
  246. package/dist/components/TextArea/TextArea.story.d.ts.map +0 -1
  247. package/dist/components/TextField/TextField.story.d.ts +0 -22
  248. package/dist/components/TextField/TextField.story.d.ts.map +0 -1
  249. package/dist/components/a11y.test.d.ts +0 -2
  250. package/dist/components/a11y.test.d.ts.map +0 -1
  251. package/dist/core/ComponentAbstraction.d.ts +0 -24
  252. package/dist/core/ComponentAbstraction.d.ts.map +0 -1
  253. package/dist/styled.d.ts +0 -95
  254. package/dist/styled.d.ts.map +0 -1
  255. package/src/components/DropdownSelector/Divider.tsx +0 -16
  256. package/src/components/DropdownSelector/DropdownMenuItem.tsx +0 -43
  257. package/src/components/LoadingSpinner/LoadingSpinnerIcon.story.tsx +0 -13
  258. package/src/components/Modal/__stories__/InternalScrollStory.tsx +0 -75
  259. package/src/components/MultiSelect/__snapshots__/index.story.storyshot +0 -1066
  260. package/src/components/MultiSelect/context.ts +0 -23
  261. package/src/components/MultiSelect/index.story.tsx +0 -216
  262. package/src/components/MultiSelect/index.test.tsx +0 -263
  263. package/src/components/MultiSelect/index.tsx +0 -281
  264. package/src/components/a11y.test.tsx +0 -99
  265. package/src/core/ComponentAbstraction.tsx +0 -48
  266. package/src/styled.ts +0 -3
@@ -0,0 +1,40 @@
1
+ import './index.css'
2
+
3
+ import { forwardRef, useCallback } from 'react'
4
+ import { useClassNames } from '../../../_lib/useClassNames'
5
+
6
+ export type CharcoalSwitchProps = {
7
+ onChange?: (checked: boolean) => void
8
+ }
9
+
10
+ type InputProps = React.HTMLProps<HTMLInputElement>
11
+
12
+ export type SwitchInputProps = CharcoalSwitchProps &
13
+ Omit<InputProps, keyof CharcoalSwitchProps | 'ref'>
14
+
15
+ const SwitchInput = forwardRef<
16
+ HTMLInputElement,
17
+ Omit<SwitchInputProps, 'children'>
18
+ >(function SwitchInput({ onChange, className, ...props }, ref) {
19
+ const handleChange = useCallback(
20
+ (e: React.ChangeEvent<HTMLInputElement>) => {
21
+ const el = e.currentTarget
22
+ onChange?.(el.checked)
23
+ },
24
+ [onChange]
25
+ )
26
+ props.children
27
+
28
+ const classNames = useClassNames('charcoal-switch-input', className)
29
+ return (
30
+ <input
31
+ ref={ref}
32
+ className={classNames}
33
+ type="checkbox"
34
+ onChange={handleChange}
35
+ {...props}
36
+ />
37
+ )
38
+ })
39
+
40
+ export default SwitchInput
@@ -0,0 +1,24 @@
1
+ import * as React from 'react'
2
+ import { useClassNames } from '../../_lib/useClassNames'
3
+
4
+ export const SwitchWithLabel = React.memo(function SwitchWithLabel({
5
+ children,
6
+ className,
7
+ disabled,
8
+ id,
9
+ input,
10
+ }: {
11
+ children: React.ReactNode
12
+ className?: string
13
+ disabled?: boolean
14
+ id?: string
15
+ input: React.ReactNode
16
+ }) {
17
+ const classNames = useClassNames('charcoal-switch__label', className)
18
+ return (
19
+ <label htmlFor={id} className={classNames} aria-disabled={disabled}>
20
+ {input}
21
+ <div className="charcoal-switch__label_div">{children}</div>
22
+ </label>
23
+ )
24
+ })
@@ -1,441 +1,64 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`Storybook Tests Switch Basic 1`] = `
4
- .c0 {
5
- display: inline-grid;
6
- grid-template-columns: auto 1fr;
7
- -webkit-align-items: center;
8
- -webkit-box-align: center;
9
- -ms-flex-align: center;
10
- align-items: center;
11
- cursor: pointer;
12
- outline: 0;
13
- }
14
-
15
- .c0:disabled,
16
- .c0[aria-disabled]:not([aria-disabled='false']) {
17
- opacity: 0.32;
18
- cursor: default;
19
- }
20
-
21
- .c1 {
22
- -webkit-appearance: none;
23
- -moz-appearance: none;
24
- appearance: none;
25
- display: -webkit-inline-box;
26
- display: -webkit-inline-flex;
27
- display: -ms-inline-flexbox;
28
- display: inline-flex;
29
- position: relative;
30
- box-sizing: border-box;
31
- width: 28px;
32
- border: 2px solid transparent;
33
- -webkit-transition-property: background-color,box-shadow;
34
- transition-property: background-color,box-shadow;
35
- -webkit-transition-duration: 0.2s;
36
- transition-duration: 0.2s;
37
- cursor: inherit;
38
- outline: none;
39
- border-radius: 16px;
40
- height: 16px;
41
- margin: 0;
42
- background-color: var(--charcoal-text4);
43
- }
44
-
45
- .c1:hover {
46
- background-color: var(--charcoal-text4-hover);
47
- }
48
-
49
- .c1:active {
50
- background-color: var(--charcoal-text4-press);
51
- }
52
-
53
- .c1:focus {
54
- outline: none;
55
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
56
- }
57
-
58
- .c1:focus:not(:focus-visible) {
59
- box-shadow: none;
60
- }
61
-
62
- .c1:focus-visible {
63
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
64
- }
65
-
66
- .c1::after {
67
- content: '';
68
- position: absolute;
69
- display: block;
70
- top: 0;
71
- left: 0;
72
- width: 12px;
73
- height: 12px;
74
- -webkit-transform: translateX(0);
75
- -ms-transform: translateX(0);
76
- transform: translateX(0);
77
- -webkit-transition: -webkit-transform 0.2s;
78
- -webkit-transition: transform 0.2s;
79
- transition: transform 0.2s;
80
- border-radius: 1024px;
81
- background-color: var(--charcoal-text5);
82
- }
83
-
84
- .c1::after:hover {
85
- background-color: var(--charcoal-text5-hover);
86
- }
87
-
88
- .c1::after:active {
89
- background-color: var(--charcoal-text5-press);
90
- }
91
-
92
- .c1:checked {
93
- background-color: var(--charcoal-brand);
94
- }
95
-
96
- .c1:checked:hover {
97
- background-color: var(--charcoal-brand-hover);
98
- }
99
-
100
- .c1:checked:active {
101
- background-color: var(--charcoal-brand-press);
102
- }
103
-
104
- .c1:checked::after {
105
- -webkit-transform: translateX(12px);
106
- -ms-transform: translateX(12px);
107
- transform: translateX(12px);
108
- -webkit-transition: -webkit-transform 0.2s;
109
- -webkit-transition: transform 0.2s;
110
- transition: transform 0.2s;
111
- }
112
-
3
+ exports[`Storybook Tests > react/Switch > Checked 1`] = `
113
4
  <div
114
5
  data-dark={false}
115
6
  >
116
7
  <div>
117
- <label
118
- className="c0"
119
- >
120
- <input
121
- aria-label="label"
122
- checked={false}
123
- className="c1"
124
- disabled={false}
125
- name="name"
126
- onChange={[Function]}
127
- onClick={[Function]}
128
- onDragStart={[Function]}
129
- onKeyDown={[Function]}
130
- onKeyUp={[Function]}
131
- onMouseDown={[Function]}
132
- onMouseEnter={[Function]}
133
- onMouseLeave={[Function]}
134
- onMouseUp={[Function]}
135
- onTouchCancel={[Function]}
136
- onTouchEnd={[Function]}
137
- onTouchMove={[Function]}
138
- onTouchStart={[Function]}
139
- role="switch"
140
- type="checkbox"
141
- />
142
- </label>
8
+ <input
9
+ checked={true}
10
+ className="charcoal-switch-input"
11
+ id="test-id"
12
+ label="checked"
13
+ name="name"
14
+ onChange={[Function]}
15
+ role="switch"
16
+ type="checkbox"
17
+ />
143
18
  </div>
144
19
  </div>
145
20
  `;
146
21
 
147
- exports[`Storybook Tests Switch Checked 1`] = `
148
- .c0 {
149
- display: inline-grid;
150
- grid-template-columns: auto 1fr;
151
- -webkit-align-items: center;
152
- -webkit-box-align: center;
153
- -ms-flex-align: center;
154
- align-items: center;
155
- cursor: pointer;
156
- outline: 0;
157
- }
158
-
159
- .c0:disabled,
160
- .c0[aria-disabled]:not([aria-disabled='false']) {
161
- opacity: 0.32;
162
- cursor: default;
163
- }
164
-
165
- .c1 {
166
- -webkit-appearance: none;
167
- -moz-appearance: none;
168
- appearance: none;
169
- display: -webkit-inline-box;
170
- display: -webkit-inline-flex;
171
- display: -ms-inline-flexbox;
172
- display: inline-flex;
173
- position: relative;
174
- box-sizing: border-box;
175
- width: 28px;
176
- border: 2px solid transparent;
177
- -webkit-transition-property: background-color,box-shadow;
178
- transition-property: background-color,box-shadow;
179
- -webkit-transition-duration: 0.2s;
180
- transition-duration: 0.2s;
181
- cursor: inherit;
182
- outline: none;
183
- border-radius: 16px;
184
- height: 16px;
185
- margin: 0;
186
- background-color: var(--charcoal-text4);
187
- }
188
-
189
- .c1:hover {
190
- background-color: var(--charcoal-text4-hover);
191
- }
192
-
193
- .c1:active {
194
- background-color: var(--charcoal-text4-press);
195
- }
196
-
197
- .c1:focus {
198
- outline: none;
199
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
200
- }
201
-
202
- .c1:focus:not(:focus-visible) {
203
- box-shadow: none;
204
- }
205
-
206
- .c1:focus-visible {
207
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
208
- }
209
-
210
- .c1::after {
211
- content: '';
212
- position: absolute;
213
- display: block;
214
- top: 0;
215
- left: 0;
216
- width: 12px;
217
- height: 12px;
218
- -webkit-transform: translateX(0);
219
- -ms-transform: translateX(0);
220
- transform: translateX(0);
221
- -webkit-transition: -webkit-transform 0.2s;
222
- -webkit-transition: transform 0.2s;
223
- transition: transform 0.2s;
224
- border-radius: 1024px;
225
- background-color: var(--charcoal-text5);
226
- }
227
-
228
- .c1::after:hover {
229
- background-color: var(--charcoal-text5-hover);
230
- }
231
-
232
- .c1::after:active {
233
- background-color: var(--charcoal-text5-press);
234
- }
235
-
236
- .c1:checked {
237
- background-color: var(--charcoal-brand);
238
- }
239
-
240
- .c1:checked:hover {
241
- background-color: var(--charcoal-brand-hover);
242
- }
243
-
244
- .c1:checked:active {
245
- background-color: var(--charcoal-brand-press);
246
- }
247
-
248
- .c1:checked::after {
249
- -webkit-transform: translateX(12px);
250
- -ms-transform: translateX(12px);
251
- transform: translateX(12px);
252
- -webkit-transition: -webkit-transform 0.2s;
253
- -webkit-transition: transform 0.2s;
254
- transition: transform 0.2s;
255
- }
256
-
22
+ exports[`Storybook Tests > react/Switch > Default 1`] = `
257
23
  <div
258
24
  data-dark={false}
259
25
  >
260
26
  <div>
261
- <label
262
- className="c0"
263
- >
264
- <input
265
- aria-label="label"
266
- checked={true}
267
- className="c1"
268
- disabled={false}
269
- name="name"
270
- onChange={[Function]}
271
- onClick={[Function]}
272
- onDragStart={[Function]}
273
- onKeyDown={[Function]}
274
- onKeyUp={[Function]}
275
- onMouseDown={[Function]}
276
- onMouseEnter={[Function]}
277
- onMouseLeave={[Function]}
278
- onMouseUp={[Function]}
279
- onTouchCancel={[Function]}
280
- onTouchEnd={[Function]}
281
- onTouchMove={[Function]}
282
- onTouchStart={[Function]}
283
- role="switch"
284
- type="checkbox"
285
- />
286
- </label>
27
+ <input
28
+ checked={false}
29
+ className="charcoal-switch-input"
30
+ id="test-id"
31
+ name="name"
32
+ onChange={[Function]}
33
+ role="switch"
34
+ type="checkbox"
35
+ />
287
36
  </div>
288
37
  </div>
289
38
  `;
290
39
 
291
- exports[`Storybook Tests Switch Disabled 1`] = `
292
- .c0 {
293
- display: inline-grid;
294
- grid-template-columns: auto 1fr;
295
- -webkit-align-items: center;
296
- -webkit-box-align: center;
297
- -ms-flex-align: center;
298
- align-items: center;
299
- cursor: pointer;
300
- outline: 0;
301
- }
302
-
303
- .c0:disabled,
304
- .c0[aria-disabled]:not([aria-disabled='false']) {
305
- opacity: 0.32;
306
- cursor: default;
307
- }
308
-
309
- .c2 {
310
- font-size: 14px;
311
- line-height: 22px;
312
- color: var(--charcoal-text2);
313
- margin-left: 4px;
314
- }
315
-
316
- .c1 {
317
- -webkit-appearance: none;
318
- -moz-appearance: none;
319
- appearance: none;
320
- display: -webkit-inline-box;
321
- display: -webkit-inline-flex;
322
- display: -ms-inline-flexbox;
323
- display: inline-flex;
324
- position: relative;
325
- box-sizing: border-box;
326
- width: 28px;
327
- border: 2px solid transparent;
328
- -webkit-transition-property: background-color,box-shadow;
329
- transition-property: background-color,box-shadow;
330
- -webkit-transition-duration: 0.2s;
331
- transition-duration: 0.2s;
332
- cursor: inherit;
333
- outline: none;
334
- border-radius: 16px;
335
- height: 16px;
336
- margin: 0;
337
- background-color: var(--charcoal-text4);
338
- }
339
-
340
- .c1:hover {
341
- background-color: var(--charcoal-text4-hover);
342
- }
343
-
344
- .c1:active {
345
- background-color: var(--charcoal-text4-press);
346
- }
347
-
348
- .c1:focus {
349
- outline: none;
350
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
351
- }
352
-
353
- .c1:focus:not(:focus-visible) {
354
- box-shadow: none;
355
- }
356
-
357
- .c1:focus-visible {
358
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
359
- }
360
-
361
- .c1::after {
362
- content: '';
363
- position: absolute;
364
- display: block;
365
- top: 0;
366
- left: 0;
367
- width: 12px;
368
- height: 12px;
369
- -webkit-transform: translateX(0);
370
- -ms-transform: translateX(0);
371
- transform: translateX(0);
372
- -webkit-transition: -webkit-transform 0.2s;
373
- -webkit-transition: transform 0.2s;
374
- transition: transform 0.2s;
375
- border-radius: 1024px;
376
- background-color: var(--charcoal-text5);
377
- }
378
-
379
- .c1::after:hover {
380
- background-color: var(--charcoal-text5-hover);
381
- }
382
-
383
- .c1::after:active {
384
- background-color: var(--charcoal-text5-press);
385
- }
386
-
387
- .c1:checked {
388
- background-color: var(--charcoal-brand);
389
- }
390
-
391
- .c1:checked:hover {
392
- background-color: var(--charcoal-brand-hover);
393
- }
394
-
395
- .c1:checked:active {
396
- background-color: var(--charcoal-brand-press);
397
- }
398
-
399
- .c1:checked::after {
400
- -webkit-transform: translateX(12px);
401
- -ms-transform: translateX(12px);
402
- transform: translateX(12px);
403
- -webkit-transition: -webkit-transform 0.2s;
404
- -webkit-transition: transform 0.2s;
405
- transition: transform 0.2s;
406
- }
407
-
40
+ exports[`Storybook Tests > react/Switch > Disabled 1`] = `
408
41
  <div
409
42
  data-dark={false}
410
43
  >
411
44
  <div>
412
45
  <label
413
46
  aria-disabled={true}
414
- className="c0"
47
+ className="charcoal-switch__label"
48
+ htmlFor="test-id"
415
49
  >
416
50
  <input
417
51
  checked={false}
418
- className="c1"
52
+ className="charcoal-switch-input"
419
53
  disabled={true}
420
- name="name"
54
+ id="test-id"
55
+ name="disabled"
421
56
  onChange={[Function]}
422
- onClick={[Function]}
423
- onDragStart={[Function]}
424
- onKeyDown={[Function]}
425
- onKeyUp={[Function]}
426
- onMouseDown={[Function]}
427
- onMouseEnter={[Function]}
428
- onMouseLeave={[Function]}
429
- onMouseUp={[Function]}
430
- onTouchCancel={[Function]}
431
- onTouchEnd={[Function]}
432
- onTouchMove={[Function]}
433
- onTouchStart={[Function]}
434
57
  role="switch"
435
58
  type="checkbox"
436
59
  />
437
60
  <div
438
- className="c2"
61
+ className="charcoal-switch__label_div"
439
62
  >
440
63
  Label
441
64
  </div>
@@ -444,153 +67,26 @@ exports[`Storybook Tests Switch Disabled 1`] = `
444
67
  </div>
445
68
  `;
446
69
 
447
- exports[`Storybook Tests Switch Labelled 1`] = `
448
- .c0 {
449
- display: inline-grid;
450
- grid-template-columns: auto 1fr;
451
- -webkit-align-items: center;
452
- -webkit-box-align: center;
453
- -ms-flex-align: center;
454
- align-items: center;
455
- cursor: pointer;
456
- outline: 0;
457
- }
458
-
459
- .c0:disabled,
460
- .c0[aria-disabled]:not([aria-disabled='false']) {
461
- opacity: 0.32;
462
- cursor: default;
463
- }
464
-
465
- .c2 {
466
- font-size: 14px;
467
- line-height: 22px;
468
- color: var(--charcoal-text2);
469
- margin-left: 4px;
470
- }
471
-
472
- .c1 {
473
- -webkit-appearance: none;
474
- -moz-appearance: none;
475
- appearance: none;
476
- display: -webkit-inline-box;
477
- display: -webkit-inline-flex;
478
- display: -ms-inline-flexbox;
479
- display: inline-flex;
480
- position: relative;
481
- box-sizing: border-box;
482
- width: 28px;
483
- border: 2px solid transparent;
484
- -webkit-transition-property: background-color,box-shadow;
485
- transition-property: background-color,box-shadow;
486
- -webkit-transition-duration: 0.2s;
487
- transition-duration: 0.2s;
488
- cursor: inherit;
489
- outline: none;
490
- border-radius: 16px;
491
- height: 16px;
492
- margin: 0;
493
- background-color: var(--charcoal-text4);
494
- }
495
-
496
- .c1:hover {
497
- background-color: var(--charcoal-text4-hover);
498
- }
499
-
500
- .c1:active {
501
- background-color: var(--charcoal-text4-press);
502
- }
503
-
504
- .c1:focus {
505
- outline: none;
506
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
507
- }
508
-
509
- .c1:focus:not(:focus-visible) {
510
- box-shadow: none;
511
- }
512
-
513
- .c1:focus-visible {
514
- box-shadow: 0 0 0 4px rgba(0,150,250,0.32);
515
- }
516
-
517
- .c1::after {
518
- content: '';
519
- position: absolute;
520
- display: block;
521
- top: 0;
522
- left: 0;
523
- width: 12px;
524
- height: 12px;
525
- -webkit-transform: translateX(0);
526
- -ms-transform: translateX(0);
527
- transform: translateX(0);
528
- -webkit-transition: -webkit-transform 0.2s;
529
- -webkit-transition: transform 0.2s;
530
- transition: transform 0.2s;
531
- border-radius: 1024px;
532
- background-color: var(--charcoal-text5);
533
- }
534
-
535
- .c1::after:hover {
536
- background-color: var(--charcoal-text5-hover);
537
- }
538
-
539
- .c1::after:active {
540
- background-color: var(--charcoal-text5-press);
541
- }
542
-
543
- .c1:checked {
544
- background-color: var(--charcoal-brand);
545
- }
546
-
547
- .c1:checked:hover {
548
- background-color: var(--charcoal-brand-hover);
549
- }
550
-
551
- .c1:checked:active {
552
- background-color: var(--charcoal-brand-press);
553
- }
554
-
555
- .c1:checked::after {
556
- -webkit-transform: translateX(12px);
557
- -ms-transform: translateX(12px);
558
- transform: translateX(12px);
559
- -webkit-transition: -webkit-transform 0.2s;
560
- -webkit-transition: transform 0.2s;
561
- transition: transform 0.2s;
562
- }
563
-
70
+ exports[`Storybook Tests > react/Switch > Label 1`] = `
564
71
  <div
565
72
  data-dark={false}
566
73
  >
567
74
  <div>
568
75
  <label
569
- className="c0"
76
+ className="charcoal-switch__label"
77
+ htmlFor="test-id"
570
78
  >
571
79
  <input
572
80
  checked={false}
573
- className="c1"
574
- disabled={false}
575
- name="name"
81
+ className="charcoal-switch-input"
82
+ id="test-id"
83
+ name="label"
576
84
  onChange={[Function]}
577
- onClick={[Function]}
578
- onDragStart={[Function]}
579
- onKeyDown={[Function]}
580
- onKeyUp={[Function]}
581
- onMouseDown={[Function]}
582
- onMouseEnter={[Function]}
583
- onMouseLeave={[Function]}
584
- onMouseUp={[Function]}
585
- onTouchCancel={[Function]}
586
- onTouchEnd={[Function]}
587
- onTouchMove={[Function]}
588
- onTouchStart={[Function]}
589
85
  role="switch"
590
86
  type="checkbox"
591
87
  />
592
88
  <div
593
- className="c2"
89
+ className="charcoal-switch__label_div"
594
90
  >
595
91
  Label
596
92
  </div>
@@ -0,0 +1,23 @@
1
+ .charcoal-switch__label {
2
+ display: inline-grid;
3
+ grid-template-columns: auto 1fr;
4
+ align-items: center;
5
+ cursor: pointer;
6
+ outline: 0;
7
+ gap: 4px;
8
+ }
9
+
10
+ .charcoal-switch__label[aria-disabled='true'] {
11
+ opacity: 0.32;
12
+ cursor: default;
13
+ }
14
+
15
+ .charcoal-switch__label[aria-disabled='true'] > input {
16
+ opacity: 1;
17
+ }
18
+
19
+ .charcoal-switch__label_div {
20
+ font-size: 14px;
21
+ line-height: 22px;
22
+ color: var(--charcoal-text2);
23
+ }