@basic-ui/material 1.0.0-alpha.3 → 1.0.0-alpha.31

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 (504) hide show
  1. package/build/cjs/index.js +1907 -1428
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Alert/Alert.d.ts +1 -1
  4. package/build/esm/Alert/Alert.js +3 -2
  5. package/build/esm/Alert/Alert.js.map +1 -1
  6. package/build/esm/Alert/index.js.map +1 -1
  7. package/build/esm/AppBar/AppBar.d.ts +3 -3
  8. package/build/esm/AppBar/AppBar.js +6 -5
  9. package/build/esm/AppBar/AppBar.js.map +1 -1
  10. package/build/esm/AppBar/AppBarButton.d.ts +1 -1
  11. package/build/esm/AppBar/AppBarButton.js +2 -1
  12. package/build/esm/AppBar/AppBarButton.js.map +1 -1
  13. package/build/esm/AppBar/context.js.map +1 -1
  14. package/build/esm/AppBar/index.js.map +1 -1
  15. package/build/esm/Badge/Badge.d.ts +2 -2
  16. package/build/esm/Badge/Badge.js +28 -2
  17. package/build/esm/Badge/Badge.js.map +1 -1
  18. package/build/esm/Badge/index.js.map +1 -1
  19. package/build/esm/BaseLine/BaseLine.js.map +1 -1
  20. package/build/esm/BaseLine/index.js.map +1 -1
  21. package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
  22. package/build/esm/BottomSheet/BottomSheet.js +2 -1
  23. package/build/esm/BottomSheet/BottomSheet.js.map +1 -1
  24. package/build/esm/BottomSheet/BottomSheetSurface.d.ts +2 -2
  25. package/build/esm/BottomSheet/BottomSheetSurface.js +2 -2
  26. package/build/esm/BottomSheet/BottomSheetSurface.js.map +1 -1
  27. package/build/esm/BottomSheet/index.js.map +1 -1
  28. package/build/esm/Box/Box.d.ts +4 -4
  29. package/build/esm/Box/Box.js +1 -2
  30. package/build/esm/Box/Box.js.map +1 -1
  31. package/build/esm/Box/index.js.map +1 -1
  32. package/build/esm/Button/BaseButton.d.ts +3 -3
  33. package/build/esm/Button/BaseButton.js +6 -5
  34. package/build/esm/Button/BaseButton.js.map +1 -1
  35. package/build/esm/Button/Button.d.ts +4 -4
  36. package/build/esm/Button/Button.js +6 -6
  37. package/build/esm/Button/Button.js.map +1 -1
  38. package/build/esm/Button/ButtonGroup.d.ts +2 -2
  39. package/build/esm/Button/ButtonGroup.js +3 -2
  40. package/build/esm/Button/ButtonGroup.js.map +1 -1
  41. package/build/esm/Button/FilledButton.d.ts +1 -1
  42. package/build/esm/Button/FilledButton.js +6 -8
  43. package/build/esm/Button/FilledButton.js.map +1 -1
  44. package/build/esm/Button/FloatingActionButton.js +1 -1
  45. package/build/esm/Button/FloatingActionButton.js.map +1 -1
  46. package/build/esm/Button/IconButton.js +1 -1
  47. package/build/esm/Button/IconButton.js.map +1 -1
  48. package/build/esm/Button/OutlinedButton.d.ts +1 -1
  49. package/build/esm/Button/OutlinedButton.js +2 -2
  50. package/build/esm/Button/OutlinedButton.js.map +1 -1
  51. package/build/esm/Button/TransparentButton.d.ts +1 -1
  52. package/build/esm/Button/TransparentButton.js.map +1 -1
  53. package/build/esm/Button/context.js.map +1 -1
  54. package/build/esm/Button/index.js.map +1 -1
  55. package/build/esm/CheckBox/CheckBox.d.ts +5 -5
  56. package/build/esm/CheckBox/CheckBox.js +6 -5
  57. package/build/esm/CheckBox/CheckBox.js.map +1 -1
  58. package/build/esm/CheckBox/CheckBoxIcon.d.ts +4 -4
  59. package/build/esm/CheckBox/CheckBoxIcon.js +6 -5
  60. package/build/esm/CheckBox/CheckBoxIcon.js.map +1 -1
  61. package/build/esm/CheckBox/CheckPath.d.ts +0 -1
  62. package/build/esm/CheckBox/CheckPath.js.map +1 -1
  63. package/build/esm/CheckBox/IndeterminatePath.d.ts +0 -1
  64. package/build/esm/CheckBox/IndeterminatePath.js.map +1 -1
  65. package/build/esm/CheckBox/index.js.map +1 -1
  66. package/build/esm/Chip/ButtonChip.d.ts +4 -4
  67. package/build/esm/Chip/ButtonChip.js +4 -4
  68. package/build/esm/Chip/ButtonChip.js.map +1 -1
  69. package/build/esm/Chip/Chip.js.map +1 -1
  70. package/build/esm/Chip/ChipBase.d.ts +3 -3
  71. package/build/esm/Chip/ChipBase.js +10 -10
  72. package/build/esm/Chip/ChipBase.js.map +1 -1
  73. package/build/esm/Chip/ChoiceChip.d.ts +5 -5
  74. package/build/esm/Chip/ChoiceChip.js +6 -5
  75. package/build/esm/Chip/ChoiceChip.js.map +1 -1
  76. package/build/esm/Chip/index.js.map +1 -1
  77. package/build/esm/Combobox/Combobox.d.ts +13 -13
  78. package/build/esm/Combobox/Combobox.js +25 -16
  79. package/build/esm/Combobox/Combobox.js.map +1 -1
  80. package/build/esm/Combobox/index.js.map +1 -1
  81. package/build/esm/Dialog/Dialog.d.ts +1 -1
  82. package/build/esm/Dialog/Dialog.js +6 -5
  83. package/build/esm/Dialog/Dialog.js.map +1 -1
  84. package/build/esm/Dialog/DialogBackdrop.d.ts +2 -2
  85. package/build/esm/Dialog/DialogBackdrop.js +2 -2
  86. package/build/esm/Dialog/DialogBackdrop.js.map +1 -1
  87. package/build/esm/Dialog/DialogContainer.d.ts +1 -1
  88. package/build/esm/Dialog/DialogContainer.js +2 -1
  89. package/build/esm/Dialog/DialogContainer.js.map +1 -1
  90. package/build/esm/Dialog/DialogSurface.d.ts +2 -2
  91. package/build/esm/Dialog/DialogSurface.js +4 -4
  92. package/build/esm/Dialog/DialogSurface.js.map +1 -1
  93. package/build/esm/Dialog/Scrim.d.ts +1 -1
  94. package/build/esm/Dialog/Scrim.js +2 -1
  95. package/build/esm/Dialog/Scrim.js.map +1 -1
  96. package/build/esm/Dialog/index.js +1 -0
  97. package/build/esm/Dialog/index.js.map +1 -1
  98. package/build/esm/Dialog/useDialogAnimation.js +6 -4
  99. package/build/esm/Dialog/useDialogAnimation.js.map +1 -1
  100. package/build/esm/Divider/Divider.d.ts +3 -3
  101. package/build/esm/Divider/Divider.js +9 -10
  102. package/build/esm/Divider/Divider.js.map +1 -1
  103. package/build/esm/Divider/index.js.map +1 -1
  104. package/build/esm/FloatingLabel/FloatingLabel.d.ts +4 -4
  105. package/build/esm/FloatingLabel/FloatingLabel.js +7 -6
  106. package/build/esm/FloatingLabel/FloatingLabel.js.map +1 -1
  107. package/build/esm/FloatingLabel/index.js.map +1 -1
  108. package/build/esm/LineRipple/LineRipple.d.ts +3 -3
  109. package/build/esm/LineRipple/LineRipple.js +5 -4
  110. package/build/esm/LineRipple/LineRipple.js.map +1 -1
  111. package/build/esm/LineRipple/index.js.map +1 -1
  112. package/build/esm/Link/Link.d.ts +3 -3
  113. package/build/esm/Link/Link.js +14 -2
  114. package/build/esm/Link/Link.js.map +1 -1
  115. package/build/esm/Link/index.js.map +1 -1
  116. package/build/esm/List/List.d.ts +5 -5
  117. package/build/esm/List/List.js +2 -2
  118. package/build/esm/List/List.js.map +1 -1
  119. package/build/esm/List/index.js.map +1 -1
  120. package/build/esm/ListItem/ListItem.d.ts +7 -5
  121. package/build/esm/ListItem/ListItem.js +50 -47
  122. package/build/esm/ListItem/ListItem.js.map +1 -1
  123. package/build/esm/ListItem/ListItemText.d.ts +6 -6
  124. package/build/esm/ListItem/ListItemText.js +5 -5
  125. package/build/esm/ListItem/ListItemText.js.map +1 -1
  126. package/build/esm/ListItem/index.js.map +1 -1
  127. package/build/esm/Menu/Menu.d.ts +9 -7
  128. package/build/esm/Menu/Menu.js +31 -11
  129. package/build/esm/Menu/Menu.js.map +1 -1
  130. package/build/esm/Menu/animation.js.map +1 -1
  131. package/build/esm/Menu/index.js.map +1 -1
  132. package/build/esm/NavRail/NavRailItem.d.ts +15 -0
  133. package/build/esm/NavRail/NavRailItem.js +149 -0
  134. package/build/esm/NavRail/NavRailItem.js.map +1 -0
  135. package/build/esm/NavRail/icons/test-icons.d.ts +4 -0
  136. package/build/esm/NavRail/icons/test-icons.js +42 -0
  137. package/build/esm/NavRail/icons/test-icons.js.map +1 -0
  138. package/build/esm/NavRail/index.d.ts +1 -0
  139. package/build/esm/NavRail/index.js +2 -0
  140. package/build/esm/NavRail/index.js.map +1 -0
  141. package/build/esm/NotchedOutline/NotchedOutline.d.ts +5 -5
  142. package/build/esm/NotchedOutline/NotchedOutline.js +4 -4
  143. package/build/esm/NotchedOutline/NotchedOutline.js.map +1 -1
  144. package/build/esm/NotchedOutline/context.js.map +1 -1
  145. package/build/esm/NotchedOutline/index.js.map +1 -1
  146. package/build/esm/NotchedOutline/styledComponents.d.ts +118 -28
  147. package/build/esm/NotchedOutline/styledComponents.js +3 -2
  148. package/build/esm/NotchedOutline/styledComponents.js.map +1 -1
  149. package/build/esm/Paper/Paper.d.ts +4 -4
  150. package/build/esm/Paper/Paper.js +8 -8
  151. package/build/esm/Paper/Paper.js.map +1 -1
  152. package/build/esm/Paper/index.js.map +1 -1
  153. package/build/esm/ProgressSpinner/ProgressSpinner.d.ts +1 -1
  154. package/build/esm/ProgressSpinner/ProgressSpinner.js +14 -14
  155. package/build/esm/ProgressSpinner/ProgressSpinner.js.map +1 -1
  156. package/build/esm/ProgressSpinner/index.js.map +1 -1
  157. package/build/esm/RadioButton/RadioButton.js +4 -2
  158. package/build/esm/RadioButton/RadioButton.js.map +1 -1
  159. package/build/esm/RadioButton/RadioButtonIcon.d.ts +3 -3
  160. package/build/esm/RadioButton/RadioButtonIcon.js +6 -5
  161. package/build/esm/RadioButton/RadioButtonIcon.js.map +1 -1
  162. package/build/esm/RadioButton/RadioGroup.d.ts +1 -1
  163. package/build/esm/RadioButton/RadioGroup.js +2 -1
  164. package/build/esm/RadioButton/RadioGroup.js.map +1 -1
  165. package/build/esm/RadioButton/index.js.map +1 -1
  166. package/build/esm/Ripple/Ripple.js.map +1 -1
  167. package/build/esm/Ripple/RippleBox.d.ts +1 -2
  168. package/build/esm/Ripple/RippleBox.js +7 -6
  169. package/build/esm/Ripple/RippleBox.js.map +1 -1
  170. package/build/esm/Ripple/constants.js.map +1 -1
  171. package/build/esm/Ripple/index.js.map +1 -1
  172. package/build/esm/Ripple/keyframes.js.map +1 -1
  173. package/build/esm/Ripple/useRipple.js +2 -2
  174. package/build/esm/Ripple/useRipple.js.map +1 -1
  175. package/build/esm/Ripple/useRippleHandlers.d.ts +3 -3
  176. package/build/esm/Ripple/useRippleHandlers.js +2 -1
  177. package/build/esm/Ripple/useRippleHandlers.js.map +1 -1
  178. package/build/esm/Ripple/useRippleSurface.d.ts +6 -5
  179. package/build/esm/Ripple/useRippleSurface.js +65 -60
  180. package/build/esm/Ripple/useRippleSurface.js.map +1 -1
  181. package/build/esm/Select/Select.d.ts +6 -6
  182. package/build/esm/Select/Select.js +16 -6
  183. package/build/esm/Select/Select.js.map +1 -1
  184. package/build/esm/Select/SelectIcon.d.ts +3 -3
  185. package/build/esm/Select/SelectIcon.js +6 -5
  186. package/build/esm/Select/SelectIcon.js.map +1 -1
  187. package/build/esm/Select/context.d.ts +2 -2
  188. package/build/esm/Select/context.js.map +1 -1
  189. package/build/esm/Select/defaultRender.d.ts +2 -1
  190. package/build/esm/Select/defaultRender.js.map +1 -1
  191. package/build/esm/Select/index.js.map +1 -1
  192. package/build/esm/Select/styledComponents.d.ts +9 -9
  193. package/build/esm/Select/styledComponents.js +13 -22
  194. package/build/esm/Select/styledComponents.js.map +1 -1
  195. package/build/esm/SelectItem/SelectItem.d.ts +5 -2
  196. package/build/esm/SelectItem/SelectItem.js +21 -7
  197. package/build/esm/SelectItem/SelectItem.js.map +1 -1
  198. package/build/esm/SelectItem/index.js.map +1 -1
  199. package/build/esm/SelectionControl/SelectionControlLabel.d.ts +5 -5
  200. package/build/esm/SelectionControl/SelectionControlLabel.js +4 -3
  201. package/build/esm/SelectionControl/SelectionControlLabel.js.map +1 -1
  202. package/build/esm/SelectionControl/SelectionControlText.d.ts +4 -4
  203. package/build/esm/SelectionControl/SelectionControlText.js +4 -4
  204. package/build/esm/SelectionControl/SelectionControlText.js.map +1 -1
  205. package/build/esm/SelectionControl/index.js.map +1 -1
  206. package/build/esm/Skeleton/DelayAppearance.d.ts +3 -3
  207. package/build/esm/Skeleton/DelayAppearance.js +2 -2
  208. package/build/esm/Skeleton/DelayAppearance.js.map +1 -1
  209. package/build/esm/Skeleton/Skeleton.d.ts +6 -6
  210. package/build/esm/Skeleton/Skeleton.js +4 -4
  211. package/build/esm/Skeleton/Skeleton.js.map +1 -1
  212. package/build/esm/Skeleton/animation.js.map +1 -1
  213. package/build/esm/Skeleton/index.js.map +1 -1
  214. package/build/esm/Slider/Slider.d.ts +17 -0
  215. package/build/esm/Slider/Slider.js +224 -0
  216. package/build/esm/Slider/Slider.js.map +1 -0
  217. package/build/esm/Slider/index.d.ts +1 -0
  218. package/build/esm/Slider/index.js +2 -0
  219. package/build/esm/Slider/index.js.map +1 -0
  220. package/build/esm/Snackbar/Snackbar.d.ts +3 -3
  221. package/build/esm/Snackbar/Snackbar.js +12 -12
  222. package/build/esm/Snackbar/Snackbar.js.map +1 -1
  223. package/build/esm/Snackbar/Stack.d.ts +2 -3
  224. package/build/esm/Snackbar/Stack.js +11 -10
  225. package/build/esm/Snackbar/Stack.js.map +1 -1
  226. package/build/esm/Snackbar/index.d.ts +1 -0
  227. package/build/esm/Snackbar/index.js +1 -0
  228. package/build/esm/Snackbar/index.js.map +1 -1
  229. package/build/esm/Snackbar/useSnackbarAnimation.d.ts +2 -66
  230. package/build/esm/Snackbar/useSnackbarAnimation.js +9 -8
  231. package/build/esm/Snackbar/useSnackbarAnimation.js.map +1 -1
  232. package/build/esm/Switch/Switch.d.ts +9 -5
  233. package/build/esm/Switch/Switch.js +69 -47
  234. package/build/esm/Switch/Switch.js.map +1 -1
  235. package/build/esm/Switch/index.js.map +1 -1
  236. package/build/esm/Switch/styledComponents.js +34 -25
  237. package/build/esm/Switch/styledComponents.js.map +1 -1
  238. package/build/esm/Tab/Tab.d.ts +3 -3
  239. package/build/esm/Tab/Tab.js +52 -15
  240. package/build/esm/Tab/Tab.js.map +1 -1
  241. package/build/esm/Tab/TabList.d.ts +2 -1
  242. package/build/esm/Tab/TabList.js +8 -3
  243. package/build/esm/Tab/TabList.js.map +1 -1
  244. package/build/esm/Tab/TabPanel.d.ts +1 -1
  245. package/build/esm/Tab/TabPanel.js +4 -2
  246. package/build/esm/Tab/TabPanel.js.map +1 -1
  247. package/build/esm/Tab/TabPanels.js.map +1 -1
  248. package/build/esm/Tab/Tabs.js.map +1 -1
  249. package/build/esm/Tab/context.d.ts +1 -0
  250. package/build/esm/Tab/context.js +2 -1
  251. package/build/esm/Tab/context.js.map +1 -1
  252. package/build/esm/Tab/index.js.map +1 -1
  253. package/build/esm/TabIndicator/TabIndicator.d.ts +4 -2
  254. package/build/esm/TabIndicator/TabIndicator.js +78 -10
  255. package/build/esm/TabIndicator/TabIndicator.js.map +1 -1
  256. package/build/esm/TabIndicator/context.d.ts +2 -2
  257. package/build/esm/TabIndicator/context.js.map +1 -1
  258. package/build/esm/TabIndicator/index.js.map +1 -1
  259. package/build/esm/Table/Table.d.ts +1 -1
  260. package/build/esm/Table/Table.js +14 -5
  261. package/build/esm/Table/Table.js.map +1 -1
  262. package/build/esm/Table/TableBody.d.ts +1 -1
  263. package/build/esm/Table/TableBody.js +4 -3
  264. package/build/esm/Table/TableBody.js.map +1 -1
  265. package/build/esm/Table/TableCell.d.ts +1 -1
  266. package/build/esm/Table/TableCell.js +4 -3
  267. package/build/esm/Table/TableCell.js.map +1 -1
  268. package/build/esm/Table/TableHead.d.ts +1 -1
  269. package/build/esm/Table/TableHead.js +7 -5
  270. package/build/esm/Table/TableHead.js.map +1 -1
  271. package/build/esm/Table/TableRow.d.ts +1 -1
  272. package/build/esm/Table/TableRow.js +6 -6
  273. package/build/esm/Table/TableRow.js.map +1 -1
  274. package/build/esm/Table/context.js.map +1 -1
  275. package/build/esm/Table/index.js.map +1 -1
  276. package/build/esm/Text/LoremIpsum.js +1 -1
  277. package/build/esm/Text/LoremIpsum.js.map +1 -1
  278. package/build/esm/Text/Text.d.ts +8 -4
  279. package/build/esm/Text/Text.js +7 -3
  280. package/build/esm/Text/Text.js.map +1 -1
  281. package/build/esm/Text/index.js.map +1 -1
  282. package/build/esm/TextField/FilledContainer.d.ts +4 -4
  283. package/build/esm/TextField/FilledContainer.js +6 -6
  284. package/build/esm/TextField/FilledContainer.js.map +1 -1
  285. package/build/esm/TextField/HelperText.d.ts +5 -5
  286. package/build/esm/TextField/HelperText.js +5 -5
  287. package/build/esm/TextField/HelperText.js.map +1 -1
  288. package/build/esm/TextField/IconContainer.d.ts +2 -3
  289. package/build/esm/TextField/IconContainer.js +0 -1
  290. package/build/esm/TextField/IconContainer.js.map +1 -1
  291. package/build/esm/TextField/Input.d.ts +4 -4
  292. package/build/esm/TextField/Input.js +11 -9
  293. package/build/esm/TextField/Input.js.map +1 -1
  294. package/build/esm/TextField/OutlinedContainer.d.ts +4 -4
  295. package/build/esm/TextField/OutlinedContainer.js +17 -9
  296. package/build/esm/TextField/OutlinedContainer.js.map +1 -1
  297. package/build/esm/TextField/TextField.d.ts +5 -5
  298. package/build/esm/TextField/TextField.js +4 -4
  299. package/build/esm/TextField/TextField.js.map +1 -1
  300. package/build/esm/TextField/consts.js.map +1 -1
  301. package/build/esm/TextField/index.js.map +1 -1
  302. package/build/esm/ThemeExplorer/BorderSlider.d.ts +7 -0
  303. package/build/esm/ThemeExplorer/BorderSlider.js +78 -0
  304. package/build/esm/ThemeExplorer/BorderSlider.js.map +1 -0
  305. package/build/esm/ThemeExplorer/ColorPicker.js +4 -3
  306. package/build/esm/ThemeExplorer/ColorPicker.js.map +1 -1
  307. package/build/esm/ThemeExplorer/ColorSchemePicker.d.ts +10 -0
  308. package/build/esm/ThemeExplorer/ColorSchemePicker.js +54 -0
  309. package/build/esm/ThemeExplorer/ColorSchemePicker.js.map +1 -0
  310. package/build/esm/ThemeExplorer/FontAutoComplete.d.ts +9 -0
  311. package/build/esm/ThemeExplorer/FontAutoComplete.js +128 -0
  312. package/build/esm/ThemeExplorer/FontAutoComplete.js.map +1 -0
  313. package/build/esm/ThemeExplorer/TextFieldColorPicker.js +4 -3
  314. package/build/esm/ThemeExplorer/TextFieldColorPicker.js.map +1 -1
  315. package/build/esm/ThemeExplorer/ThemeBuilder.d.ts +11 -0
  316. package/build/esm/ThemeExplorer/ThemeBuilder.js +382 -0
  317. package/build/esm/ThemeExplorer/ThemeBuilder.js.map +1 -0
  318. package/build/esm/ThemeExplorer/ThemeColors.d.ts +2 -2
  319. package/build/esm/ThemeExplorer/ThemeColors.js +5 -1
  320. package/build/esm/ThemeExplorer/ThemeColors.js.map +1 -1
  321. package/build/esm/ThemeExplorer/components.d.ts +6 -7
  322. package/build/esm/ThemeExplorer/components.js +28 -24
  323. package/build/esm/ThemeExplorer/components.js.map +1 -1
  324. package/build/esm/ThemeExplorer/googleFonts.d.ts +1 -0
  325. package/build/esm/ThemeExplorer/googleFonts.js +7 -0
  326. package/build/esm/ThemeExplorer/googleFonts.js.map +1 -0
  327. package/build/esm/ThemeExplorer/importGoogleFont.d.ts +4 -0
  328. package/build/esm/ThemeExplorer/importGoogleFont.js +25 -0
  329. package/build/esm/ThemeExplorer/importGoogleFont.js.map +1 -0
  330. package/build/esm/ThemeExplorer/index.d.ts +1 -0
  331. package/build/esm/ThemeExplorer/index.js +2 -0
  332. package/build/esm/ThemeExplorer/index.js.map +1 -0
  333. package/build/esm/ThemeExplorer/makeColorScheme.d.ts +4 -0
  334. package/build/esm/ThemeExplorer/makeColorScheme.js +6 -2
  335. package/build/esm/ThemeExplorer/makeColorScheme.js.map +1 -1
  336. package/build/esm/ThemeExplorer/updateGoogleFonts.js +70 -0
  337. package/build/esm/ThemeExplorer/updateGoogleFonts.js.map +1 -0
  338. package/build/esm/ThemeExplorer/useDeferredColor.js +5 -7
  339. package/build/esm/ThemeExplorer/useDeferredColor.js.map +1 -1
  340. package/build/esm/ThemeExplorer/useLocalStorageCachedState.d.ts +1 -1
  341. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js +1 -1
  342. package/build/esm/ThemeExplorer/useLocalStorageCachedState.js.map +1 -1
  343. package/build/esm/Tooltip/Tooltip.d.ts +3 -3
  344. package/build/esm/Tooltip/Tooltip.js +7 -9
  345. package/build/esm/Tooltip/Tooltip.js.map +1 -1
  346. package/build/esm/Tooltip/index.js.map +1 -1
  347. package/build/esm/color.d.ts +3 -1
  348. package/build/esm/color.js +14 -5
  349. package/build/esm/color.js.map +1 -1
  350. package/build/esm/css.js.map +1 -1
  351. package/build/esm/hooks/useAnimation.js +3 -3
  352. package/build/esm/hooks/useAnimation.js.map +1 -1
  353. package/build/esm/index.d.ts +3 -1
  354. package/build/esm/index.js +3 -1
  355. package/build/esm/index.js.map +1 -1
  356. package/build/esm/motion.d.ts +7 -0
  357. package/build/esm/motion.js +8 -0
  358. package/build/esm/motion.js.map +1 -0
  359. package/build/esm/theme/index.js.map +1 -1
  360. package/build/esm/theme/theme.d.ts +118 -28
  361. package/build/esm/theme/theme.js +52 -40
  362. package/build/esm/theme/theme.js.map +1 -1
  363. package/build/esm/theme/typography-raleway.js.map +1 -1
  364. package/build/esm/theme/typography-roboto.js.map +1 -1
  365. package/build/esm/theme/useTheme.d.ts +561 -1
  366. package/build/esm/theme/useTheme.js.map +1 -1
  367. package/build/tsconfig-build.tsbuildinfo +1 -0
  368. package/package.json +10 -10
  369. package/src/Alert/Alert.tsx +1 -1
  370. package/src/AppBar/AppBar.tsx +4 -3
  371. package/src/Badge/Badge.story.tsx +68 -0
  372. package/src/Badge/Badge.tsx +33 -3
  373. package/src/BottomSheet/BottomSheetSurface.tsx +3 -3
  374. package/src/Box/Box.tsx +6 -8
  375. package/src/Button/BaseButton.tsx +4 -11
  376. package/src/Button/Button.story.tsx +6 -1
  377. package/src/Button/Button.tsx +4 -4
  378. package/src/Button/ButtonGroup.tsx +1 -1
  379. package/src/Button/FilledButton.tsx +4 -9
  380. package/src/Button/OutlinedButton.tsx +1 -1
  381. package/src/Button/SpinnerButton.story.tsx +1 -1
  382. package/src/CheckBox/CheckBox.story.tsx +7 -6
  383. package/src/CheckBox/CheckBox.tsx +6 -10
  384. package/src/CheckBox/CheckBoxIcon.tsx +5 -5
  385. package/src/Chip/ButtonChip.tsx +3 -3
  386. package/src/Chip/Chip.story.tsx +1 -1
  387. package/src/Chip/ChipBase.tsx +2 -2
  388. package/src/Chip/ChoiceChip.tsx +7 -7
  389. package/src/Combobox/Combobox.story.tsx +3 -3
  390. package/src/Combobox/Combobox.tsx +14 -12
  391. package/src/Dialog/DialogBackdrop.tsx +3 -3
  392. package/src/Dialog/DialogSurface.tsx +2 -4
  393. package/src/Dialog/useDialogAnimation.tsx +3 -4
  394. package/src/Divider/Divider.tsx +4 -5
  395. package/src/FloatingLabel/FloatingLabel.tsx +7 -6
  396. package/src/LineRipple/LineRipple.story.tsx +1 -1
  397. package/src/LineRipple/LineRipple.tsx +4 -4
  398. package/src/Link/Link.tsx +14 -5
  399. package/src/List/List.tsx +4 -4
  400. package/src/ListItem/ListItem.tsx +52 -47
  401. package/src/ListItem/ListItemText.tsx +6 -7
  402. package/src/Menu/ContextMenu.story.tsx +34 -0
  403. package/src/Menu/Menu.tsx +19 -5
  404. package/src/NavRail/NavRail.story.tsx +146 -0
  405. package/src/NavRail/NavRailItem.tsx +175 -0
  406. package/src/NavRail/icons/test-icons.tsx +46 -0
  407. package/src/NavRail/index.ts +1 -0
  408. package/src/NotchedOutline/NotchedOutline.tsx +4 -5
  409. package/src/NotchedOutline/styledComponents.ts +2 -1
  410. package/src/Paper/Paper.story.tsx +3 -3
  411. package/src/Paper/Paper.tsx +5 -9
  412. package/src/ProgressSpinner/ProgressSpinner.tsx +9 -9
  413. package/src/RadioButton/RadioButton.story.tsx +2 -2
  414. package/src/RadioButton/RadioButton.tsx +1 -1
  415. package/src/RadioButton/RadioButtonIcon.tsx +4 -5
  416. package/src/Ripple/Ripple.story.tsx +1 -1
  417. package/src/Ripple/RippleBox.tsx +1 -2
  418. package/src/Ripple/useRippleHandlers.ts +3 -3
  419. package/src/Ripple/useRippleSurface.ts +83 -61
  420. package/src/Select/PaymentMethodSelect.story.tsx +17 -24
  421. package/src/Select/Select.tsx +20 -6
  422. package/src/Select/SelectIcon.tsx +3 -4
  423. package/src/Select/context.ts +2 -1
  424. package/src/Select/defaultRender.ts +2 -1
  425. package/src/Select/styledComponents.tsx +12 -22
  426. package/src/SelectItem/SelectItem.tsx +13 -3
  427. package/src/SelectionControl/SelectionControlLabel.tsx +5 -8
  428. package/src/SelectionControl/SelectionControlText.tsx +3 -3
  429. package/src/Skeleton/DelayAppearance.tsx +2 -2
  430. package/src/Skeleton/Skeleton.story.tsx +2 -2
  431. package/src/Skeleton/Skeleton.tsx +6 -6
  432. package/src/Slider/Slider.story.tsx +36 -0
  433. package/src/Slider/Slider.tsx +275 -0
  434. package/src/Slider/index.ts +1 -0
  435. package/src/Snackbar/Snackbar.tsx +10 -10
  436. package/src/Snackbar/Stack.tsx +13 -12
  437. package/src/Snackbar/index.ts +1 -0
  438. package/src/Snackbar/useSnackbarAnimation.ts +5 -4
  439. package/src/Switch/Switch.story.tsx +78 -7
  440. package/src/Switch/Switch.tsx +95 -58
  441. package/src/Switch/styledComponents.tsx +34 -27
  442. package/src/Tab/Tab.story.tsx +170 -14
  443. package/src/Tab/Tab.tsx +53 -15
  444. package/src/Tab/TabList.tsx +5 -1
  445. package/src/Tab/context.ts +2 -0
  446. package/src/TabIndicator/TabIndicator.tsx +85 -8
  447. package/src/TabIndicator/context.ts +2 -1
  448. package/src/Table/Table.tsx +10 -1
  449. package/src/Table/TableHead.tsx +3 -2
  450. package/src/Table/TableRow.tsx +2 -3
  451. package/src/Text/LoremIpsum.tsx +1 -1
  452. package/src/Text/Text.story.tsx +42 -7
  453. package/src/Text/Text.tsx +25 -5
  454. package/src/TextField/FilledContainer.tsx +3 -3
  455. package/src/TextField/HelperText.tsx +5 -5
  456. package/src/TextField/IconContainer.tsx +2 -3
  457. package/src/TextField/Input.tsx +5 -4
  458. package/src/TextField/OutlinedContainer.tsx +11 -6
  459. package/src/TextField/TextField.tsx +4 -4
  460. package/src/ThemeExplorer/BorderSlider.tsx +73 -0
  461. package/src/ThemeExplorer/ColorSchemePicker.tsx +55 -0
  462. package/src/ThemeExplorer/FontAutoComplete.tsx +139 -0
  463. package/src/ThemeExplorer/ThemeBuilder.story.tsx +3 -160
  464. package/src/ThemeExplorer/ThemeBuilder.tsx +337 -0
  465. package/src/ThemeExplorer/ThemeColors.tsx +6 -1
  466. package/src/ThemeExplorer/components.tsx +28 -20
  467. package/src/ThemeExplorer/googleFonts.ts +1436 -0
  468. package/src/ThemeExplorer/index.ts +1 -0
  469. package/src/ThemeExplorer/makeColorScheme.tsx +4 -0
  470. package/src/ThemeExplorer/updateGoogleFonts.js +33 -0
  471. package/src/ThemeExplorer/useDeferredColor.tsx +5 -9
  472. package/src/ThemeExplorer/useLocalStorageCachedState.ts +2 -2
  473. package/src/Tooltip/Tooltip.story.tsx +2 -2
  474. package/src/Tooltip/Tooltip.tsx +9 -11
  475. package/src/color.ts +30 -6
  476. package/src/index.ts +3 -1
  477. package/src/motion.ts +7 -0
  478. package/src/theme/theme.ts +55 -37
  479. package/build/esm/ColorMode/ColorModeProvider.d.ts +0 -7
  480. package/build/esm/ColorMode/ColorModeProvider.js +0 -92
  481. package/build/esm/ColorMode/ColorModeProvider.js.map +0 -1
  482. package/build/esm/ColorMode/color-mode.d.ts +0 -8
  483. package/build/esm/ColorMode/color-mode.js +0 -11
  484. package/build/esm/ColorMode/color-mode.js.map +0 -1
  485. package/build/esm/ColorMode/color-vars.d.ts +0 -4
  486. package/build/esm/ColorMode/color-vars.js +0 -58
  487. package/build/esm/ColorMode/color-vars.js.map +0 -1
  488. package/build/esm/ColorMode/constants.d.ts +0 -3
  489. package/build/esm/ColorMode/constants.js +0 -5
  490. package/build/esm/ColorMode/constants.js.map +0 -1
  491. package/build/esm/ColorMode/index.d.ts +0 -4
  492. package/build/esm/ColorMode/index.js +0 -5
  493. package/build/esm/ColorMode/index.js.map +0 -1
  494. package/build/esm/ListItem/context.d.ts +0 -7
  495. package/build/esm/ListItem/context.js +0 -10
  496. package/build/esm/ListItem/context.js.map +0 -1
  497. package/build/tsconfig.tsbuildinfo +0 -1
  498. package/src/ColorMode/ColorModeProvider.tsx +0 -97
  499. package/src/ColorMode/color-mode.ts +0 -20
  500. package/src/ColorMode/color-vars.ts +0 -56
  501. package/src/ColorMode/constants.ts +0 -5
  502. package/src/ColorMode/index.ts +0 -4
  503. package/src/ColorMode/tests/color-vars.test.ts +0 -9
  504. package/src/ThemeExplorer/ThemeExplorer.story.tsx +0 -43
@@ -1,8 +1,11 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- import { forwardRef } from 'react';
4
- import * as React from 'react';
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ var _excluded = ["as", "disabled", "checked", "onChange", "size", "__css", "icon"],
5
+ _excluded2 = ["as", "icon", "disabled", "children"];
6
+ import { cloneElement, forwardRef } from 'react';
5
7
  import { CheckBox as _CheckBoxCore } from '@basic-ui/core';
8
+ import { rem } from 'polished';
6
9
  import { RippleBox } from '../Ripple';
7
10
  import { Box } from '../Box';
8
11
  import { useTheme } from '../theme';
@@ -11,79 +14,98 @@ import { SwitchTrail, SwitchThumb, SwitchCircle } from './styledComponents';
11
14
  import { jsx as _jsx } from "react/jsx-runtime";
12
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
16
  var CheckBoxCore = _CheckBoxCore;
17
+
18
+ function getSizeCssVariables(size) {
19
+ var _ref;
20
+
21
+ var multiplier = size === 'small' ? 0.75 : 1;
22
+ var BORDER_WIDTH = 2;
23
+ var TRAIL_WIDTH = 52 * multiplier;
24
+ var TRAIL_HEIGHT = 32 * multiplier;
25
+ return _ref = {}, _defineProperty(_ref, '--switch-border-width', rem(BORDER_WIDTH)), _defineProperty(_ref, '--switch-trail-width', rem(TRAIL_WIDTH)), _defineProperty(_ref, '--switch-trail-height', rem(TRAIL_HEIGHT)), _defineProperty(_ref, '--switch-icon-size', rem(TRAIL_HEIGHT / 2)), _defineProperty(_ref, '--switch-state-layer-size', rem(40 * multiplier)), _defineProperty(_ref, '--switch-thumb-size-checked-inactive', rem(TRAIL_HEIGHT - BORDER_WIDTH * 4)), _defineProperty(_ref, '--switch-thumb-size-checked-active', rem(TRAIL_HEIGHT - BORDER_WIDTH * 2)), _defineProperty(_ref, '--switch-thumb-size-unchecked-inactive', rem(TRAIL_HEIGHT / 2)), _defineProperty(_ref, '--switch-thumb-size-unchecked-active', rem(TRAIL_HEIGHT - BORDER_WIDTH * 2)), _ref;
26
+ }
27
+
14
28
  var SwitchInner = /*#__PURE__*/forwardRef(function SwitchInner(props, forwardedRef) {
29
+ var _cloneElement;
30
+
15
31
  var _props$as = props.as,
16
32
  Comp = _props$as === void 0 ? 'input' : _props$as,
17
33
  disabled = props.disabled,
18
34
  checked = props.checked,
19
35
  onChange = props.onChange,
36
+ _props$size = props.size,
37
+ size = _props$size === void 0 ? 'default' : _props$size,
20
38
  __css = props.__css,
21
- otherProps = _objectWithoutProperties(props, ["as", "disabled", "checked", "onChange", "__css"]);
39
+ icon = props.icon,
40
+ otherProps = _objectWithoutProperties(props, _excluded);
22
41
 
23
42
  var color = checked ? 'primary' : 'on.surface';
24
43
  var theme = useTheme();
25
- return /*#__PURE__*/_jsx(Box, {
26
- p: 2,
44
+ return /*#__PURE__*/_jsxs(Box, {
27
45
  display: "inline-block",
46
+ position: "relative",
28
47
  minWidth: "auto",
29
- children: /*#__PURE__*/_jsxs(Box, {
30
- position: "relative",
31
- children: [/*#__PURE__*/_jsx(SwitchTrail, {
48
+ sx: getSizeCssVariables(size),
49
+ children: [/*#__PURE__*/_jsx(SwitchTrail, {
50
+ checked: checked,
51
+ disabled: disabled
52
+ }), /*#__PURE__*/_jsxs(SwitchThumb, {
53
+ checked: checked,
54
+ children: [/*#__PURE__*/_jsx(RippleBox, _extends(_extends({
55
+ as: Comp,
56
+ role: "switch",
57
+ type: "checkbox",
32
58
  checked: checked,
33
- disabled: disabled
34
- }), /*#__PURE__*/_jsxs(SwitchThumb, {
59
+ onChange: onChange,
60
+ theme: theme,
61
+ ref: forwardedRef,
62
+ "aria-checked": checked ? 'true' : 'false',
63
+ rippleColor: color,
64
+ baseOpacity: 0,
65
+ hoverOpacity: 0.04,
66
+ focusOpacity: 0.12,
67
+ center: true,
68
+ disabled: disabled,
69
+ "data-switch-thumb": ""
70
+ }, otherProps), {}, {
71
+ __css: _extends({
72
+ top: '50%',
73
+ left: '50%',
74
+ backgroundColor: 'transparent',
75
+ transform: 'translate(-50%, -50%)',
76
+ width: '100%',
77
+ height: '100%',
78
+ appearance: 'none',
79
+ ':focus': {
80
+ outline: 'none'
81
+ },
82
+ border: 'none',
83
+ borderRadius: 'full',
84
+ zIndex: 1,
85
+ position: 'absolute'
86
+ }, __css)
87
+ })), /*#__PURE__*/_jsx(SwitchCircle, {
35
88
  checked: checked,
36
- children: [/*#__PURE__*/_jsx(RippleBox, _extends({
37
- as: Comp,
38
- role: "switch",
39
- type: "checkbox",
40
- checked: checked,
41
- onChange: onChange,
42
- theme: theme,
43
- ref: forwardedRef,
44
- "aria-checked": checked ? 'true' : 'false',
45
- rippleColor: color,
46
- baseOpacity: 0,
47
- hoverOpacity: 0.04,
48
- focusOpacity: 0.12,
49
- center: true,
50
- disabled: disabled,
51
- "data-switch-thumb": ""
52
- }, otherProps, {
53
- __css: _extends({
54
- top: '50%',
55
- left: '50%',
56
- backgroundColor: 'transparent',
57
- transform: 'translate(-50%, -50%)',
58
- width: '100%',
59
- height: '100%',
60
- appearance: 'none',
61
- ':focus': {
62
- outline: 'none'
63
- },
64
- border: 'none',
65
- borderRadius: 'full',
66
- zIndex: 1,
67
- position: 'absolute'
68
- }, __css)
69
- })), /*#__PURE__*/_jsx(SwitchCircle, {
89
+ children: icon ? /*#__PURE__*/cloneElement(icon, (_cloneElement = {
70
90
  checked: checked
71
- })]
91
+ }, _defineProperty(_cloneElement, 'data-checkbox-icon', ''), _defineProperty(_cloneElement, "disabled", disabled), _cloneElement)) : null
72
92
  })]
73
- })
93
+ })]
74
94
  });
75
95
  });
76
96
  export var Switch = /*#__PURE__*/forwardRef(function Switch(props, forwardedRef) {
77
97
  var _props$as2 = props.as,
78
98
  as = _props$as2 === void 0 ? 'input' : _props$as2,
99
+ icon = props.icon,
79
100
  disabled = props.disabled,
80
101
  children = props.children,
81
- otherProps = _objectWithoutProperties(props, ["as", "disabled", "children"]);
102
+ otherProps = _objectWithoutProperties(props, _excluded2);
82
103
 
83
104
  var inner = /*#__PURE__*/_jsx(CheckBoxCore, _extends({
84
105
  as: SwitchInner,
85
106
  innerAs: as,
86
107
  ref: forwardedRef,
108
+ icon: icon,
87
109
  disabled: disabled
88
110
  }, otherProps));
89
111
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Switch/Switch.tsx"],"names":["forwardRef","React","CheckBox","_CheckBoxCore","RippleBox","Box","useTheme","SelectionControlLabel","SelectionControlText","SwitchTrail","SwitchThumb","SwitchCircle","CheckBoxCore","SwitchInner","props","forwardedRef","as","Comp","disabled","checked","onChange","__css","otherProps","color","theme","top","left","backgroundColor","transform","width","height","appearance","outline","border","borderRadius","zIndex","position","Switch","children","inner"],"mappings":"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","sourcesContent":["import type { InputHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport * as React from 'react';\nimport { CheckBox as _CheckBoxCore } from '@basic-ui/core';\n\nimport type { RippleBoxProps } from '../Ripple';\nimport { RippleBox } from '../Ripple';\nimport type { BoxProps } from '../Box';\nimport { Box } from '../Box';\nimport { useTheme } from '../theme';\nimport {\n SelectionControlLabel,\n SelectionControlText,\n} from '../SelectionControl';\nimport { SwitchTrail, SwitchThumb, SwitchCircle } from './styledComponents';\n\nconst CheckBoxCore: React.FC<\n SwitchProps & {\n innerAs?: React.ElementType<any>;\n }\n> = _CheckBoxCore as any;\n\ninterface SwitchProps\n extends BoxProps<\n HTMLInputElement,\n React.InputHTMLAttributes<HTMLInputElement>\n > {\n as?: React.ElementType<any>;\n checked?: boolean;\n disabled?: boolean;\n}\n\nconst SwitchInner = forwardRef<HTMLInputElement, SwitchProps>(\n function SwitchInner(props, forwardedRef) {\n const {\n as: Comp = 'input',\n disabled,\n checked,\n onChange,\n __css,\n ...otherProps\n } = props;\n const color = checked ? 'primary' : 'on.surface';\n const theme = useTheme();\n\n return (\n <Box p={2} display=\"inline-block\" minWidth=\"auto\">\n <Box position=\"relative\">\n <SwitchTrail checked={checked} disabled={disabled} />\n <SwitchThumb checked={checked}>\n <RippleBox<\n RippleBoxProps<\n HTMLInputElement,\n InputHTMLAttributes<HTMLInputElement>\n >\n >\n as={Comp}\n role=\"switch\"\n type=\"checkbox\"\n checked={checked}\n onChange={onChange}\n theme={theme}\n ref={forwardedRef}\n aria-checked={checked ? 'true' : 'false'}\n rippleColor={color}\n baseOpacity={0}\n hoverOpacity={0.04}\n focusOpacity={0.12}\n center={true}\n disabled={disabled}\n data-switch-thumb=\"\"\n {...otherProps}\n __css={{\n top: '50%',\n left: '50%',\n backgroundColor: 'transparent',\n transform: 'translate(-50%, -50%)',\n width: '100%',\n height: '100%',\n appearance: 'none',\n ':focus': {\n outline: 'none',\n },\n border: 'none',\n borderRadius: 'full',\n zIndex: 1,\n position: 'absolute',\n ...__css,\n }}\n />\n <SwitchCircle checked={checked} />\n </SwitchThumb>\n </Box>\n </Box>\n );\n }\n);\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\n props,\n forwardedRef\n) {\n const { as = 'input', disabled, children, ...otherProps } = props;\n\n const inner = (\n <CheckBoxCore\n as={SwitchInner}\n innerAs={as}\n ref={forwardedRef}\n disabled={disabled}\n {...otherProps}\n />\n );\n\n if (!children) {\n return inner;\n }\n\n return (\n <SelectionControlLabel>\n {inner}\n <SelectionControlText disabled={disabled}>\n {children}\n </SelectionControlText>\n </SelectionControlLabel>\n );\n});\n"],"file":"Switch.js"}
1
+ {"version":3,"file":"Switch.js","names":["cloneElement","forwardRef","CheckBox","_CheckBoxCore","rem","RippleBox","Box","useTheme","SelectionControlLabel","SelectionControlText","SwitchTrail","SwitchThumb","SwitchCircle","CheckBoxCore","getSizeCssVariables","size","multiplier","BORDER_WIDTH","TRAIL_WIDTH","TRAIL_HEIGHT","SwitchInner","props","forwardedRef","as","Comp","disabled","checked","onChange","__css","icon","otherProps","color","theme","top","left","backgroundColor","transform","width","height","appearance","outline","border","borderRadius","zIndex","position","Switch","children","inner"],"sources":["../../../src/Switch/Switch.tsx"],"sourcesContent":["import type { ElementType, FC, InputHTMLAttributes, ReactElement } from 'react';\nimport { cloneElement, forwardRef } from 'react';\nimport { CheckBox as _CheckBoxCore } from '@basic-ui/core';\nimport { rem } from 'polished';\n\nimport type { RippleBoxProps } from '../Ripple';\nimport { RippleBox } from '../Ripple';\nimport type { BoxProps } from '../Box';\nimport { Box } from '../Box';\nimport { useTheme } from '../theme';\nimport {\n SelectionControlLabel,\n SelectionControlText,\n} from '../SelectionControl';\nimport { SwitchTrail, SwitchThumb, SwitchCircle } from './styledComponents';\n\nconst CheckBoxCore: FC<\n SwitchProps & {\n innerAs?: ElementType<any>;\n }\n> = _CheckBoxCore as any;\n\nexport interface SwitchProps\n extends BoxProps<HTMLInputElement, InputHTMLAttributes<HTMLInputElement>> {\n as?: ElementType<any>;\n checked?: boolean;\n disabled?: boolean;\n size?: 'small' | 'default';\n icon?: ReactElement<{ checked?: boolean; disabled?: boolean }>;\n}\n\nfunction getSizeCssVariables(size: 'small' | 'default') {\n const multiplier = size === 'small' ? 0.75 : 1;\n const BORDER_WIDTH = 2;\n const TRAIL_WIDTH = 52 * multiplier;\n const TRAIL_HEIGHT = 32 * multiplier;\n return {\n ['--switch-border-width']: rem(BORDER_WIDTH),\n ['--switch-trail-width']: rem(TRAIL_WIDTH),\n ['--switch-trail-height']: rem(TRAIL_HEIGHT),\n ['--switch-icon-size']: rem(TRAIL_HEIGHT / 2),\n ['--switch-state-layer-size']: rem(40 * multiplier),\n ['--switch-thumb-size-checked-inactive']: rem(\n TRAIL_HEIGHT - BORDER_WIDTH * 4\n ),\n ['--switch-thumb-size-checked-active']: rem(\n TRAIL_HEIGHT - BORDER_WIDTH * 2\n ),\n ['--switch-thumb-size-unchecked-inactive']: rem(TRAIL_HEIGHT / 2),\n ['--switch-thumb-size-unchecked-active']: rem(\n TRAIL_HEIGHT - BORDER_WIDTH * 2\n ),\n };\n}\n\nconst SwitchInner = forwardRef<HTMLInputElement, SwitchProps>(\n function SwitchInner(props, forwardedRef) {\n const {\n as: Comp = 'input',\n disabled,\n checked,\n onChange,\n size = 'default',\n __css,\n icon,\n ...otherProps\n } = props;\n const color = checked ? 'primary' : 'on.surface';\n const theme = useTheme();\n\n return (\n <Box\n display=\"inline-block\"\n position=\"relative\"\n minWidth=\"auto\"\n sx={getSizeCssVariables(size)}\n >\n <SwitchTrail checked={checked} disabled={disabled} />\n <SwitchThumb checked={checked}>\n <RippleBox<\n RippleBoxProps<\n HTMLInputElement,\n InputHTMLAttributes<HTMLInputElement>\n >\n >\n as={Comp}\n role=\"switch\"\n type=\"checkbox\"\n checked={checked}\n onChange={onChange}\n theme={theme}\n ref={forwardedRef}\n aria-checked={checked ? 'true' : 'false'}\n rippleColor={color}\n baseOpacity={0}\n hoverOpacity={0.04}\n focusOpacity={0.12}\n center={true}\n disabled={disabled}\n data-switch-thumb=\"\"\n {...otherProps}\n __css={{\n top: '50%',\n left: '50%',\n backgroundColor: 'transparent',\n transform: 'translate(-50%, -50%)',\n width: '100%',\n height: '100%',\n appearance: 'none',\n ':focus': {\n outline: 'none',\n },\n border: 'none',\n borderRadius: 'full',\n zIndex: 1,\n position: 'absolute',\n ...__css,\n }}\n />\n <SwitchCircle checked={checked}>\n {icon\n ? cloneElement(icon, {\n checked,\n ['data-checkbox-icon' as any]: '',\n disabled,\n })\n : null}\n </SwitchCircle>\n </SwitchThumb>\n </Box>\n );\n }\n);\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\n props,\n forwardedRef\n) {\n const { as = 'input', icon, disabled, children, ...otherProps } = props;\n\n const inner = (\n <CheckBoxCore\n as={SwitchInner}\n innerAs={as}\n ref={forwardedRef}\n icon={icon}\n disabled={disabled}\n {...otherProps}\n />\n );\n\n if (!children) {\n return inner;\n }\n\n return (\n <SelectionControlLabel>\n {inner}\n <SelectionControlText disabled={disabled}>\n {children}\n </SelectionControlText>\n </SelectionControlLabel>\n );\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Switch/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAd","sourcesContent":["export * from './Switch';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/Switch/index.ts"],"sourcesContent":["export * from './Switch';\n"],"mappings":"AAAA,cAAc,UAAd"}
@@ -1,28 +1,32 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- import { rem } from 'polished';
3
+ var _excluded = ["checked", "disabled"],
4
+ _excluded2 = ["checked"],
5
+ _excluded3 = ["checked"];
4
6
  import { Box } from '../Box';
7
+ import { EASING_STANDARD } from '../motion';
5
8
  import { jsx as _jsx } from "react/jsx-runtime";
6
- var BORDER_WIDTH = 2;
7
- var TRAIL_WIDTH = 52;
8
- var TRAIL_HEIGHT = 32;
9
- var CIRCLE_SIZE_INACTIVE_CHECKED = 24;
10
- var CIRCLE_SIZE_ACTIVE_CHECKED = 28;
11
- var CIRCLE_SIZE_INACTIVE_UNCHECKED = 16;
12
- var CIRCLE_SIZE_ACTIVE_UNCHECKED = 28;
9
+ var BORDER_WIDTH = 'var(--switch-border-width)';
10
+ var TRAIL_WIDTH = 'var(--switch-trail-width)';
11
+ var TRAIL_HEIGHT = 'var(--switch-trail-height)';
12
+ var STATE_LAYER_SIZE = 'var(--switch-state-layer-size)';
13
+ var CIRCLE_SIZE_INACTIVE_CHECKED = 'var(--switch-thumb-size-checked-inactive)';
14
+ var CIRCLE_SIZE_ACTIVE_CHECKED = 'var(--switch-thumb-size-checked-active)';
15
+ var CIRCLE_SIZE_INACTIVE_UNCHECKED = 'var(--switch-thumb-size-unchecked-inactive)';
16
+ var CIRCLE_SIZE_ACTIVE_UNCHECKED = 'var(--switch-thumb-size-unchecked-active)';
13
17
  export var SwitchTrail = function SwitchTrail(_ref) {
14
18
  var _ref$checked = _ref.checked,
15
19
  checked = _ref$checked === void 0 ? false : _ref$checked,
16
20
  _ref$disabled = _ref.disabled,
17
21
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
18
- otherProps = _objectWithoutProperties(_ref, ["checked", "disabled"]);
22
+ otherProps = _objectWithoutProperties(_ref, _excluded);
19
23
 
20
24
  return /*#__PURE__*/_jsx(Box, _extends({
21
25
  __css: _extends({
22
- width: rem(TRAIL_WIDTH),
23
- height: rem(TRAIL_HEIGHT),
24
- borderRadius: rem(TRAIL_HEIGHT / 2),
25
- borderWidth: rem(BORDER_WIDTH),
26
+ width: TRAIL_WIDTH,
27
+ height: TRAIL_HEIGHT,
28
+ borderRadius: 'full',
29
+ borderWidth: BORDER_WIDTH,
26
30
  borderStyle: 'solid',
27
31
  backgroundColor: checked ? 'primary' : 'surface-variant',
28
32
  borderColor: checked ? 'primary' : 'outline'
@@ -33,26 +37,25 @@ export var SwitchTrail = function SwitchTrail(_ref) {
33
37
  })
34
38
  }, otherProps));
35
39
  };
36
- var THUMB_SIZE = 40;
37
40
  export var SwitchThumb = function SwitchThumb(_ref2) {
38
41
  var _ref2$checked = _ref2.checked,
39
42
  checked = _ref2$checked === void 0 ? false : _ref2$checked,
40
- otherProps = _objectWithoutProperties(_ref2, ["checked"]);
43
+ otherProps = _objectWithoutProperties(_ref2, _excluded2);
41
44
 
42
45
  return /*#__PURE__*/_jsx(Box, _extends({
43
46
  position: "absolute",
44
- width: rem(THUMB_SIZE),
45
- height: rem(THUMB_SIZE),
47
+ width: STATE_LAYER_SIZE,
48
+ height: STATE_LAYER_SIZE,
46
49
  borderRadius: "full",
47
50
  left: '50%',
48
51
  top: '50%',
49
52
  __css: {
50
- transform: "translateX(calc(-50% ".concat(checked ? '+' : '-', " ").concat(rem((TRAIL_WIDTH - CIRCLE_SIZE_INACTIVE_CHECKED - BORDER_WIDTH * 4) / 2), ")) translateY(-50%)"),
53
+ transform: "translateX(calc(-50% ".concat(checked ? '+' : '-', "\n (").concat(TRAIL_WIDTH, " - ").concat(CIRCLE_SIZE_INACTIVE_CHECKED, " - ").concat(BORDER_WIDTH, " * 4) / 2\n )) translateY(-50%)"),
51
54
  WebkitTapHighlightColor: 'transparent',
52
- transition: 'background-color 90ms cubic-bezier(.4,0,.2,1),border-color 90ms cubic-bezier(.4,0,.2,1),transform 90ms cubic-bezier(.4,0,.2,1),height 90ms cubic-bezier(.4,0,.2,1),width 90ms cubic-bezier(.4,0,.2,1)',
55
+ transition: "background-color 90ms ".concat(EASING_STANDARD, ",border-color 90ms ").concat(EASING_STANDARD, ",transform 90ms ").concat(EASING_STANDARD, ",height 90ms ").concat(EASING_STANDARD, ",width 90ms ").concat(EASING_STANDARD),
53
56
  '& > input': {
54
- width: THUMB_SIZE,
55
- height: THUMB_SIZE
57
+ width: STATE_LAYER_SIZE,
58
+ height: STATE_LAYER_SIZE
56
59
  }
57
60
  }
58
61
  }, otherProps));
@@ -60,24 +63,29 @@ export var SwitchThumb = function SwitchThumb(_ref2) {
60
63
  export var SwitchCircle = function SwitchCircle(_ref3) {
61
64
  var _ref3$checked = _ref3.checked,
62
65
  checked = _ref3$checked === void 0 ? false : _ref3$checked,
63
- otherProps = _objectWithoutProperties(_ref3, ["checked"]);
66
+ otherProps = _objectWithoutProperties(_ref3, _excluded3);
64
67
 
65
68
  return /*#__PURE__*/_jsx(Box, _extends({
66
69
  __css: {
67
70
  position: 'absolute',
68
- width: checked ? rem(CIRCLE_SIZE_INACTIVE_CHECKED) : rem(CIRCLE_SIZE_INACTIVE_UNCHECKED),
69
- height: checked ? rem(CIRCLE_SIZE_INACTIVE_CHECKED) : rem(CIRCLE_SIZE_INACTIVE_UNCHECKED),
71
+ display: 'inline-flex',
72
+ alignItems: 'center',
73
+ justifyContent: 'center',
74
+ width: checked ? CIRCLE_SIZE_INACTIVE_CHECKED : CIRCLE_SIZE_INACTIVE_UNCHECKED,
75
+ height: checked ? CIRCLE_SIZE_INACTIVE_CHECKED : CIRCLE_SIZE_INACTIVE_UNCHECKED,
70
76
  boxSizing: 'border-box',
71
77
  borderRadius: 'full',
72
78
  pointerEvents: 'none',
73
79
  zIndex: 1,
74
80
  backgroundColor: checked ? 'on.primary' : 'outline',
81
+ color: checked ? 'primary' : 'on.outline',
75
82
  top: '50%',
76
83
  left: '50%',
77
84
  transform: 'translate(-50%, -50%)',
78
85
  transition: 'inherit',
79
86
  '[data-switch-thumb=""]:active ~ &, [data-switch-thumb=""]:focus-visible ~ &, [data-switch-thumb=""]:hover ~ &': {
80
- backgroundColor: checked ? 'primary-container' : 'on.surface-variant'
87
+ backgroundColor: checked ? 'primary-container' : 'on.surface-variant',
88
+ color: checked ? 'on.primary-container' : 'surface-variant'
81
89
  },
82
90
  '[data-switch-thumb=""]:active ~ &, [data-switch-thumb=""]:focus-visible ~ &': {
83
91
  height: checked ? CIRCLE_SIZE_ACTIVE_CHECKED : CIRCLE_SIZE_ACTIVE_UNCHECKED,
@@ -86,6 +94,7 @@ export var SwitchCircle = function SwitchCircle(_ref3) {
86
94
  '[data-switch-thumb=""]:disabled ~ &': {
87
95
  opacity: checked ? 1 : 0.38,
88
96
  backgroundColor: checked ? 'surface' : 'on.surface',
97
+ color: checked ? 'on.surface' : 'surface',
89
98
  height: checked ? CIRCLE_SIZE_INACTIVE_CHECKED : CIRCLE_SIZE_INACTIVE_UNCHECKED,
90
99
  width: checked ? CIRCLE_SIZE_INACTIVE_CHECKED : CIRCLE_SIZE_INACTIVE_UNCHECKED
91
100
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Switch/styledComponents.tsx"],"names":["rem","Box","BORDER_WIDTH","TRAIL_WIDTH","TRAIL_HEIGHT","CIRCLE_SIZE_INACTIVE_CHECKED","CIRCLE_SIZE_ACTIVE_CHECKED","CIRCLE_SIZE_INACTIVE_UNCHECKED","CIRCLE_SIZE_ACTIVE_UNCHECKED","SwitchTrail","checked","disabled","otherProps","width","height","borderRadius","borderWidth","borderStyle","backgroundColor","borderColor","opacity","THUMB_SIZE","SwitchThumb","transform","WebkitTapHighlightColor","transition","SwitchCircle","position","boxSizing","pointerEvents","zIndex","top","left"],"mappings":";;AAAA,SAASA,GAAT,QAAoB,UAApB;AAEA,SAASC,GAAT,QAAoB,QAApB;;AAEA,IAAMC,YAAY,GAAG,CAArB;AACA,IAAMC,WAAW,GAAG,EAApB;AACA,IAAMC,YAAY,GAAG,EAArB;AACA,IAAMC,4BAA4B,GAAG,EAArC;AACA,IAAMC,0BAA0B,GAAG,EAAnC;AACA,IAAMC,8BAA8B,GAAG,EAAvC;AACA,IAAMC,4BAA4B,GAAG,EAArC;AAEA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc;AAAA,0BACzBC,OADyB;AAAA,MACzBA,OADyB,6BACf,KADe;AAAA,2BAEzBC,QAFyB;AAAA,MAEzBA,QAFyB,8BAEd,KAFc;AAAA,MAGtBC,UAHsB;;AAAA,sBAKzB,KAAC,GAAD;AACE,IAAA,KAAK;AACHC,MAAAA,KAAK,EAAEb,GAAG,CAACG,WAAD,CADP;AAEHW,MAAAA,MAAM,EAAEd,GAAG,CAACI,YAAD,CAFR;AAGHW,MAAAA,YAAY,EAAEf,GAAG,CAACI,YAAY,GAAG,CAAhB,CAHd;AAIHY,MAAAA,WAAW,EAAEhB,GAAG,CAACE,YAAD,CAJb;AAKHe,MAAAA,WAAW,EAAE,OALV;AAMHC,MAAAA,eAAe,EAAER,OAAO,GAAG,SAAH,GAAe,iBANpC;AAOHS,MAAAA,WAAW,EAAET,OAAO,GAAG,SAAH,GAAe;AAPhC,OAQCC,QAAQ,IAAI;AACdS,MAAAA,OAAO,EAAE,IADK;AAEdF,MAAAA,eAAe,EAAER,OAAO,GAAG,YAAH,GAAkB,iBAF5B;AAGdS,MAAAA,WAAW,EAAE;AAHC,KARb;AADP,KAeMP,UAfN,EALyB;AAAA,CAApB;AAwBP,IAAMS,UAAU,GAAG,EAAnB;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc;AAAA,4BAAGZ,OAAH;AAAA,MAAGA,OAAH,8BAAa,KAAb;AAAA,MAAuBE,UAAvB;;AAAA,sBACzB,KAAC,GAAD;AACE,IAAA,QAAQ,EAAC,UADX;AAEE,IAAA,KAAK,EAAEZ,GAAG,CAACqB,UAAD,CAFZ;AAGE,IAAA,MAAM,EAAErB,GAAG,CAACqB,UAAD,CAHb;AAIE,IAAA,YAAY,EAAC,MAJf;AAKE,IAAA,IAAI,EAAE,KALR;AAME,IAAA,GAAG,EAAE,KANP;AAOE,IAAA,KAAK,EAAE;AACLE,MAAAA,SAAS,iCAA0Bb,OAAO,GAAG,GAAH,GAAS,GAA1C,cAAiDV,GAAG,CAC3D,CAACG,WAAW,GAAGE,4BAAd,GAA6CH,YAAY,GAAG,CAA7D,IAAkE,CADP,CAApD,wBADJ;AAILsB,MAAAA,uBAAuB,EAAE,aAJpB;AAKLC,MAAAA,UAAU,EACR,uMANG;AAOL,mBAAa;AACXZ,QAAAA,KAAK,EAAEQ,UADI;AAEXP,QAAAA,MAAM,EAAEO;AAFG;AAPR;AAPT,KAmBMT,UAnBN,EADyB;AAAA,CAApB;AAwBP,OAAO,IAAMc,YAAY,GAAG,SAAfA,YAAe;AAAA,4BAAGhB,OAAH;AAAA,MAAGA,OAAH,8BAAa,KAAb;AAAA,MAAuBE,UAAvB;;AAAA,sBAC1B,KAAC,GAAD;AACE,IAAA,KAAK,EAAE;AACLe,MAAAA,QAAQ,EAAE,UADL;AAELd,MAAAA,KAAK,EAAEH,OAAO,GACVV,GAAG,CAACK,4BAAD,CADO,GAEVL,GAAG,CAACO,8BAAD,CAJF;AAKLO,MAAAA,MAAM,EAAEJ,OAAO,GACXV,GAAG,CAACK,4BAAD,CADQ,GAEXL,GAAG,CAACO,8BAAD,CAPF;AAQLqB,MAAAA,SAAS,EAAE,YARN;AASLb,MAAAA,YAAY,EAAE,MATT;AAULc,MAAAA,aAAa,EAAE,MAVV;AAWLC,MAAAA,MAAM,EAAE,CAXH;AAYLZ,MAAAA,eAAe,EAAER,OAAO,GAAG,YAAH,GAAkB,SAZrC;AAaLqB,MAAAA,GAAG,EAAE,KAbA;AAcLC,MAAAA,IAAI,EAAE,KAdD;AAeLT,MAAAA,SAAS,EAAE,uBAfN;AAgBLE,MAAAA,UAAU,EAAE,SAhBP;AAiBL,uHACE;AACEP,QAAAA,eAAe,EAAER,OAAO,GAAG,mBAAH,GAAyB;AADnD,OAlBG;AAqBL,qFACE;AACEI,QAAAA,MAAM,EAAEJ,OAAO,GACXJ,0BADW,GAEXE,4BAHN;AAIEK,QAAAA,KAAK,EAAEH,OAAO,GACVJ,0BADU,GAEVE;AANN,OAtBG;AA8BL,6CAAuC;AACrCY,QAAAA,OAAO,EAAEV,OAAO,GAAG,CAAH,GAAO,IADc;AAErCQ,QAAAA,eAAe,EAAER,OAAO,GAAG,SAAH,GAAe,YAFF;AAGrCI,QAAAA,MAAM,EAAEJ,OAAO,GACXL,4BADW,GAEXE,8BALiC;AAMrCM,QAAAA,KAAK,EAAEH,OAAO,GACVL,4BADU,GAEVE;AARiC;AA9BlC,KADT;AA0CE,0BAAmB,EA1CrB;AA2CE,IAAA,IAAI,EAAC,cA3CP;AA4CE,mBAAY;AA5Cd,KA6CMK,UA7CN,EAD0B;AAAA,CAArB","sourcesContent":["import { rem } from 'polished';\n\nimport { Box } from '../Box';\n\nconst BORDER_WIDTH = 2;\nconst TRAIL_WIDTH = 52;\nconst TRAIL_HEIGHT = 32;\nconst CIRCLE_SIZE_INACTIVE_CHECKED = 24;\nconst CIRCLE_SIZE_ACTIVE_CHECKED = 28;\nconst CIRCLE_SIZE_INACTIVE_UNCHECKED = 16;\nconst CIRCLE_SIZE_ACTIVE_UNCHECKED = 28;\n\nexport const SwitchTrail = ({\n checked = false,\n disabled = false,\n ...otherProps\n}) => (\n <Box\n __css={{\n width: rem(TRAIL_WIDTH),\n height: rem(TRAIL_HEIGHT),\n borderRadius: rem(TRAIL_HEIGHT / 2),\n borderWidth: rem(BORDER_WIDTH),\n borderStyle: 'solid',\n backgroundColor: checked ? 'primary' : 'surface-variant',\n borderColor: checked ? 'primary' : 'outline',\n ...(disabled && {\n opacity: 0.12,\n backgroundColor: checked ? 'on.surface' : 'surface-variant',\n borderColor: 'on.surface',\n }),\n }}\n {...otherProps}\n />\n);\n\nconst THUMB_SIZE = 40;\nexport const SwitchThumb = ({ checked = false, ...otherProps }) => (\n <Box\n position=\"absolute\"\n width={rem(THUMB_SIZE)}\n height={rem(THUMB_SIZE)}\n borderRadius=\"full\"\n left={'50%'}\n top={'50%'}\n __css={{\n transform: `translateX(calc(-50% ${checked ? '+' : '-'} ${rem(\n (TRAIL_WIDTH - CIRCLE_SIZE_INACTIVE_CHECKED - BORDER_WIDTH * 4) / 2\n )})) translateY(-50%)`,\n WebkitTapHighlightColor: 'transparent',\n transition:\n 'background-color 90ms cubic-bezier(.4,0,.2,1),border-color 90ms cubic-bezier(.4,0,.2,1),transform 90ms cubic-bezier(.4,0,.2,1),height 90ms cubic-bezier(.4,0,.2,1),width 90ms cubic-bezier(.4,0,.2,1)',\n '& > input': {\n width: THUMB_SIZE,\n height: THUMB_SIZE,\n },\n }}\n {...otherProps}\n />\n);\n\nexport const SwitchCircle = ({ checked = false, ...otherProps }) => (\n <Box\n __css={{\n position: 'absolute',\n width: checked\n ? rem(CIRCLE_SIZE_INACTIVE_CHECKED)\n : rem(CIRCLE_SIZE_INACTIVE_UNCHECKED),\n height: checked\n ? rem(CIRCLE_SIZE_INACTIVE_CHECKED)\n : rem(CIRCLE_SIZE_INACTIVE_UNCHECKED),\n boxSizing: 'border-box',\n borderRadius: 'full',\n pointerEvents: 'none',\n zIndex: 1,\n backgroundColor: checked ? 'on.primary' : 'outline',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n transition: 'inherit',\n '[data-switch-thumb=\"\"]:active ~ &, [data-switch-thumb=\"\"]:focus-visible ~ &, [data-switch-thumb=\"\"]:hover ~ &':\n {\n backgroundColor: checked ? 'primary-container' : 'on.surface-variant',\n },\n '[data-switch-thumb=\"\"]:active ~ &, [data-switch-thumb=\"\"]:focus-visible ~ &':\n {\n height: checked\n ? CIRCLE_SIZE_ACTIVE_CHECKED\n : CIRCLE_SIZE_ACTIVE_UNCHECKED,\n width: checked\n ? CIRCLE_SIZE_ACTIVE_CHECKED\n : CIRCLE_SIZE_ACTIVE_UNCHECKED,\n },\n '[data-switch-thumb=\"\"]:disabled ~ &': {\n opacity: checked ? 1 : 0.38,\n backgroundColor: checked ? 'surface' : 'on.surface',\n height: checked\n ? CIRCLE_SIZE_INACTIVE_CHECKED\n : CIRCLE_SIZE_INACTIVE_UNCHECKED,\n width: checked\n ? CIRCLE_SIZE_INACTIVE_CHECKED\n : CIRCLE_SIZE_INACTIVE_UNCHECKED,\n },\n }}\n data-switch-circle=\"\"\n role=\"presentation\"\n aria-hidden=\"true\"\n {...otherProps}\n />\n);\n"],"file":"styledComponents.js"}
1
+ {"version":3,"file":"styledComponents.js","names":["Box","EASING_STANDARD","BORDER_WIDTH","TRAIL_WIDTH","TRAIL_HEIGHT","STATE_LAYER_SIZE","CIRCLE_SIZE_INACTIVE_CHECKED","CIRCLE_SIZE_ACTIVE_CHECKED","CIRCLE_SIZE_INACTIVE_UNCHECKED","CIRCLE_SIZE_ACTIVE_UNCHECKED","SwitchTrail","checked","disabled","otherProps","width","height","borderRadius","borderWidth","borderStyle","backgroundColor","borderColor","opacity","SwitchThumb","transform","WebkitTapHighlightColor","transition","SwitchCircle","position","display","alignItems","justifyContent","boxSizing","pointerEvents","zIndex","color","top","left"],"sources":["../../../src/Switch/styledComponents.tsx"],"sourcesContent":["import { Box } from '../Box';\nimport { EASING_STANDARD } from '../motion';\n\nconst BORDER_WIDTH = 'var(--switch-border-width)';\nconst TRAIL_WIDTH = 'var(--switch-trail-width)';\nconst TRAIL_HEIGHT = 'var(--switch-trail-height)';\nconst STATE_LAYER_SIZE = 'var(--switch-state-layer-size)';\nconst CIRCLE_SIZE_INACTIVE_CHECKED =\n 'var(--switch-thumb-size-checked-inactive)';\nconst CIRCLE_SIZE_ACTIVE_CHECKED = 'var(--switch-thumb-size-checked-active)';\nconst CIRCLE_SIZE_INACTIVE_UNCHECKED =\n 'var(--switch-thumb-size-unchecked-inactive)';\nconst CIRCLE_SIZE_ACTIVE_UNCHECKED =\n 'var(--switch-thumb-size-unchecked-active)';\n\nexport const SwitchTrail = ({\n checked = false,\n disabled = false,\n ...otherProps\n}) => (\n <Box\n __css={{\n width: TRAIL_WIDTH,\n height: TRAIL_HEIGHT,\n borderRadius: 'full',\n borderWidth: BORDER_WIDTH,\n borderStyle: 'solid',\n backgroundColor: checked ? 'primary' : 'surface-variant',\n borderColor: checked ? 'primary' : 'outline',\n ...(disabled && {\n opacity: 0.12,\n backgroundColor: checked ? 'on.surface' : 'surface-variant',\n borderColor: 'on.surface',\n }),\n }}\n {...otherProps}\n />\n);\n\nexport const SwitchThumb = ({ checked = false, ...otherProps }) => (\n <Box\n position=\"absolute\"\n width={STATE_LAYER_SIZE}\n height={STATE_LAYER_SIZE}\n borderRadius=\"full\"\n left={'50%'}\n top={'50%'}\n __css={{\n transform: `translateX(calc(-50% ${checked ? '+' : '-'}\n (${TRAIL_WIDTH} - ${CIRCLE_SIZE_INACTIVE_CHECKED} - ${BORDER_WIDTH} * 4) / 2\n )) translateY(-50%)`,\n WebkitTapHighlightColor: 'transparent',\n transition: `background-color 90ms ${EASING_STANDARD},border-color 90ms ${EASING_STANDARD},transform 90ms ${EASING_STANDARD},height 90ms ${EASING_STANDARD},width 90ms ${EASING_STANDARD}`,\n '& > input': {\n width: STATE_LAYER_SIZE,\n height: STATE_LAYER_SIZE,\n },\n }}\n {...otherProps}\n />\n);\n\nexport const SwitchCircle = ({ checked = false, ...otherProps }) => (\n <Box\n __css={{\n position: 'absolute',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: checked\n ? CIRCLE_SIZE_INACTIVE_CHECKED\n : CIRCLE_SIZE_INACTIVE_UNCHECKED,\n height: checked\n ? CIRCLE_SIZE_INACTIVE_CHECKED\n : CIRCLE_SIZE_INACTIVE_UNCHECKED,\n boxSizing: 'border-box',\n borderRadius: 'full',\n pointerEvents: 'none',\n zIndex: 1,\n backgroundColor: checked ? 'on.primary' : 'outline',\n color: checked ? 'primary' : 'on.outline',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n transition: 'inherit',\n '[data-switch-thumb=\"\"]:active ~ &, [data-switch-thumb=\"\"]:focus-visible ~ &, [data-switch-thumb=\"\"]:hover ~ &':\n {\n backgroundColor: checked ? 'primary-container' : 'on.surface-variant',\n color: checked ? 'on.primary-container' : 'surface-variant',\n },\n '[data-switch-thumb=\"\"]:active ~ &, [data-switch-thumb=\"\"]:focus-visible ~ &':\n {\n height: checked\n ? CIRCLE_SIZE_ACTIVE_CHECKED\n : CIRCLE_SIZE_ACTIVE_UNCHECKED,\n width: checked\n ? CIRCLE_SIZE_ACTIVE_CHECKED\n : CIRCLE_SIZE_ACTIVE_UNCHECKED,\n },\n '[data-switch-thumb=\"\"]:disabled ~ &': {\n opacity: checked ? 1 : 0.38,\n backgroundColor: checked ? 'surface' : 'on.surface',\n color: checked ? 'on.surface' : 'surface',\n height: checked\n ? CIRCLE_SIZE_INACTIVE_CHECKED\n : CIRCLE_SIZE_INACTIVE_UNCHECKED,\n width: checked\n ? CIRCLE_SIZE_INACTIVE_CHECKED\n : CIRCLE_SIZE_INACTIVE_UNCHECKED,\n },\n }}\n data-switch-circle=\"\"\n role=\"presentation\"\n aria-hidden=\"true\"\n {...otherProps}\n />\n);\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
1
+ import type { ButtonHTMLAttributes } from 'react';
2
2
  import type { TabProps as TabPropsCore } from '@basic-ui/core';
3
3
  import type { RippleBoxProps } from '../Ripple';
4
- export declare type TabProps = TabPropsCore & RippleBoxProps<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>;
5
- export declare const Tab: React.ForwardRefExoticComponent<Pick<TabProps, "children" | "form" | "p" | "slot" | "style" | "title" | "alignContent" | "alignItems" | "alignSelf" | "backgroundColor" | "backgroundImage" | "backgroundPosition" | "backgroundRepeat" | "backgroundSize" | "borderBottomColor" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderBottomStyle" | "borderBottomWidth" | "borderLeftColor" | "borderLeftStyle" | "borderLeftWidth" | "borderRightColor" | "borderRightStyle" | "borderRightWidth" | "borderTopColor" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderTopStyle" | "borderTopWidth" | "bottom" | "boxShadow" | "color" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "order" | "overflowX" | "overflowY" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "textAlign" | "textShadow" | "top" | "translate" | "verticalAlign" | "width" | "zIndex" | "background" | "border" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderStyle" | "borderTop" | "borderWidth" | "flex" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "overflow" | "padding" | "gridColumnGap" | "gridGap" | "gridRowGap" | "value" | "hidden" | "center" | "as" | "sx" | "__css" | "variant" | "tx" | "theme" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "size" | "bg" | "borderX" | "borderY" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "innerAs" | "name" | "type" | "disabled" | "rippleColor" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "baseOpacity" | "hoverOpacity" | "focusOpacity" | "pressedOpacity" | "rippleEnabled"> & React.RefAttributes<HTMLButtonElement>>;
4
+ export declare type TabProps = TabPropsCore & RippleBoxProps<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>;
5
+ export declare const Tab: import("react").ForwardRefExoticComponent<Pick<TabProps, "form" | "p" | "slot" | "style" | "title" | "as" | "fontFamily" | "fontSize" | "children" | "background" | "bottom" | "top" | "hidden" | "center" | "left" | "right" | "sx" | "__css" | "variant" | "tx" | "theme" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "padding" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "size" | "overflow" | "overflowX" | "overflowY" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "color" | "bg" | "backgroundColor" | "opacity" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flex" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "order" | "border" | "borderX" | "borderY" | "borderWidth" | "borderTopWidth" | "borderBottomWidth" | "borderLeftWidth" | "borderRightWidth" | "borderStyle" | "borderTopStyle" | "borderBottomStyle" | "borderLeftStyle" | "borderRightStyle" | "borderColor" | "borderTopColor" | "borderBottomColor" | "borderLeftColor" | "borderRightColor" | "borderRadius" | "borderTopLeftRadius" | "borderTopRightRadius" | "borderBottomLeftRadius" | "borderBottomRightRadius" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "gridGap" | "gridColumnGap" | "gridRowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "backgroundImage" | "backgroundSize" | "backgroundPosition" | "backgroundRepeat" | "position" | "zIndex" | "boxShadow" | "textShadow" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "key" | "name" | "type" | "autoFocus" | "disabled" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "rippleColor" | "pressedOpacity" | "rippleEnabled" | "baseOpacity" | "hoverOpacity" | "focusOpacity" | "mouseFocus" | "innerAs"> & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,7 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- import { forwardRef } from 'react';
4
- import * as React from 'react';
4
+ var _excluded = ["innerAs", "selected", "children", "disabled"],
5
+ _excluded2 = ["as"];
6
+ import { useState, useEffect, useRef, forwardRef } from 'react';
5
7
  import { Tab as TabCore } from '@basic-ui/core';
6
8
  import { RippleBox } from '../Ripple';
7
9
  import { alpha } from '../color';
@@ -16,28 +18,41 @@ var TabInner = /*#__PURE__*/forwardRef(function Tab(props, forwardedRef) {
16
18
  selected = props.selected,
17
19
  children = props.children,
18
20
  disabled = props.disabled,
19
- otherProps = _objectWithoutProperties(props, ["innerAs", "selected", "children", "disabled"]);
21
+ otherProps = _objectWithoutProperties(props, _excluded);
20
22
 
21
23
  var _useTabListContext = useTabListContext(),
22
24
  textColor = _useTabListContext.textColor,
23
25
  indicatorColor = _useTabListContext.indicatorColor,
24
- selectedTextColor = _useTabListContext.selectedTextColor;
26
+ selectedTextColor = _useTabListContext.selectedTextColor,
27
+ variant = _useTabListContext.variant;
25
28
 
29
+ var labelRef = useRef(null);
30
+
31
+ var _useState = useState(false),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ mounted = _useState2[0],
34
+ setMounted = _useState2[1];
35
+
36
+ useEffect(function () {
37
+ setMounted(true);
38
+ }, []);
26
39
  return /*#__PURE__*/_jsxs(Box, {
27
40
  position: "relative",
28
41
  display: "flex",
29
- flexGrow: 1,
42
+ flex: 1,
30
43
  flexDirection: "column",
31
- children: [/*#__PURE__*/_jsx(RippleBox, _extends({
44
+ height: "100%",
45
+ children: [/*#__PURE__*/_jsx(RippleBox, _extends(_extends({
32
46
  as: innerAs,
33
47
  ref: forwardedRef,
34
48
  rippleColor: indicatorColor,
35
49
  disabled: disabled,
36
50
  __css: {
37
51
  px: 3,
38
- position: 'relative',
52
+ py: 0,
39
53
  color: selected ? selectedTextColor || indicatorColor : alpha(textColor, disabled ? 0.37 : 0.7),
40
- height: "3rem",
54
+ minHeight: "3rem",
55
+ height: '100%',
41
56
  backgroundColor: 'transparent',
42
57
  border: 'none',
43
58
  ':focus': {
@@ -46,25 +61,47 @@ var TabInner = /*#__PURE__*/forwardRef(function Tab(props, forwardedRef) {
46
61
  width: '100%',
47
62
  alignItems: 'center'
48
63
  }
49
- }, otherProps, {
64
+ }, otherProps), {}, {
50
65
  children: /*#__PURE__*/_jsx(Text, {
51
66
  as: "span",
52
- variant: "button",
53
- color: "inherit",
54
- height: "100%",
55
- textAlign: "center",
67
+ variant: "title-small",
68
+ ref: labelRef,
69
+ __css: _extends({
70
+ display: 'inline-flex',
71
+ justifyContent: 'center',
72
+ alignItems: 'center',
73
+ color: 'inherit',
74
+ height: '100%',
75
+ textAlign: 'center',
76
+ position: 'relative',
77
+ flexDirection: 'column'
78
+ }, variant === 'primary' && selected && !mounted && {
79
+ '&::before': {
80
+ content: '""',
81
+ bg: indicatorColor,
82
+ position: 'absolute',
83
+ bottom: 0,
84
+ zIndex: 1,
85
+ width: '100%',
86
+ height: "0.1875rem",
87
+ borderTopLeftRadius: "0.1875rem",
88
+ borderTopRightRadius: "0.1875rem"
89
+ }
90
+ }),
56
91
  children: children
57
92
  })
58
93
  })), /*#__PURE__*/_jsx(TabIndicator, {
59
94
  selected: selected,
60
- color: indicatorColor
95
+ color: indicatorColor,
96
+ variant: variant,
97
+ labelRef: labelRef
61
98
  })]
62
99
  });
63
100
  });
64
101
  export var Tab = /*#__PURE__*/forwardRef(function Tab(props, forwardedRef) {
65
102
  var _props$as = props.as,
66
103
  as = _props$as === void 0 ? 'button' : _props$as,
67
- otherProps = _objectWithoutProperties(props, ["as"]);
104
+ otherProps = _objectWithoutProperties(props, _excluded2);
68
105
 
69
106
  return /*#__PURE__*/_jsx(TabCore, _extends({
70
107
  as: TabInner,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Tab/Tab.tsx"],"names":["forwardRef","React","Tab","TabCore","RippleBox","alpha","Text","Box","TabIndicator","useTabListContext","TabInner","props","forwardedRef","innerAs","selected","children","disabled","otherProps","textColor","indicatorColor","selectedTextColor","px","position","color","height","backgroundColor","border","outline","width","alignItems","as"],"mappings":";;AACA,SAASA,UAAT,QAA2B,OAA3B;AACA,OAAO,KAAKC,KAAZ,MAAuB,OAAvB;AAEA,SAASC,GAAG,IAAIC,OAAhB,QAA+B,gBAA/B;AAIA,SAASC,SAAT,QAA0B,WAA1B;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,IAAT,QAAqB,SAArB;AACA,SAASC,GAAT,QAAoB,QAApB;AACA,SAASC,YAAT,QAA6B,iBAA7B;AACA,SAASC,iBAAT,QAAkC,WAAlC;;;AAQA,IAAMC,QAAQ,gBAAGV,UAAU,CAGzB,SAASE,GAAT,CAAaS,KAAb,EAAoBC,YAApB,EAAkC;AAAA,MAC1BC,OAD0B,GAC+BF,KAD/B,CAC1BE,OAD0B;AAAA,MACjBC,QADiB,GAC+BH,KAD/B,CACjBG,QADiB;AAAA,MACPC,QADO,GAC+BJ,KAD/B,CACPI,QADO;AAAA,MACGC,QADH,GAC+BL,KAD/B,CACGK,QADH;AAAA,MACgBC,UADhB,4BAC+BN,KAD/B;;AAAA,2BAEuBF,iBAAiB,EAFxC;AAAA,MAE1BS,SAF0B,sBAE1BA,SAF0B;AAAA,MAEfC,cAFe,sBAEfA,cAFe;AAAA,MAECC,iBAFD,sBAECA,iBAFD;;AAIlC,sBACE,MAAC,GAAD;AAAK,IAAA,QAAQ,EAAC,UAAd;AAAyB,IAAA,OAAO,EAAC,MAAjC;AAAwC,IAAA,QAAQ,EAAE,CAAlD;AAAqD,IAAA,aAAa,EAAC,QAAnE;AAAA,4BACE,KAAC,SAAD;AAME,MAAA,EAAE,EAAEP,OANN;AAOE,MAAA,GAAG,EAAED,YAPP;AAQE,MAAA,WAAW,EAAEO,cARf;AASE,MAAA,QAAQ,EAAEH,QATZ;AAUE,MAAA,KAAK,EAAE;AACLK,QAAAA,EAAE,EAAE,CADC;AAELC,QAAAA,QAAQ,EAAE,UAFL;AAGLC,QAAAA,KAAK,EAAET,QAAQ,GACXM,iBAAiB,IAAID,cADV,GAEXd,KAAK,CAACa,SAAD,EAAYF,QAAQ,GAAG,IAAH,GAAU,GAA9B,CALJ;AAMLQ,QAAAA,MAAM,QAND;AAOLC,QAAAA,eAAe,EAAE,aAPZ;AAQLC,QAAAA,MAAM,EAAE,MARH;AASL,kBAAU;AACRC,UAAAA,OAAO,EAAE;AADD,SATL;AAYLC,QAAAA,KAAK,EAAE,MAZF;AAaLC,QAAAA,UAAU,EAAE;AAbP;AAVT,OAyBMZ,UAzBN;AAAA,6BA2BE,KAAC,IAAD;AACE,QAAA,EAAE,EAAC,MADL;AAEE,QAAA,OAAO,EAAC,QAFV;AAGE,QAAA,KAAK,EAAC,SAHR;AAIE,QAAA,MAAM,EAAC,MAJT;AAKE,QAAA,SAAS,EAAC,QALZ;AAAA,kBAOGF;AAPH;AA3BF,OADF,eAsCE,KAAC,YAAD;AAAc,MAAA,QAAQ,EAAED,QAAxB;AAAkC,MAAA,KAAK,EAAEK;AAAzC,MAtCF;AAAA,IADF;AA0CD,CAjD0B,CAA3B;AAmDA,OAAO,IAAMjB,GAAG,gBAAGF,UAAU,CAA8B,SAASE,GAAT,CACzDS,KADyD,EAEzDC,YAFyD,EAGzD;AAAA,kBACyCD,KADzC,CACQmB,EADR;AAAA,MACQA,EADR,0BACa,QADb;AAAA,MAC0Bb,UAD1B,4BACyCN,KADzC;;AAGA,sBACE,KAAC,OAAD;AAAS,IAAA,EAAE,EAAED,QAAb;AAAuB,IAAA,OAAO,EAAEoB,EAAhC;AAAoC,IAAA,GAAG,EAAElB;AAAzC,KAA2DK,UAA3D,EADF;AAGD,CAT4B,CAAtB","sourcesContent":["import type { ButtonHTMLAttributes } from 'react';\nimport { forwardRef } from 'react';\nimport * as React from 'react';\nimport type { TabProps as TabPropsCore } from '@basic-ui/core';\nimport { Tab as TabCore } from '@basic-ui/core';\nimport { rem } from 'polished';\n\nimport type { RippleBoxProps } from '../Ripple';\nimport { RippleBox } from '../Ripple';\nimport { alpha } from '../color';\nimport { Text } from '../Text';\nimport { Box } from '../Box';\nimport { TabIndicator } from '../TabIndicator';\nimport { useTabListContext } from './context';\n\nexport type TabProps = TabPropsCore &\n RippleBoxProps<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n >;\n\nconst TabInner = forwardRef<\n HTMLButtonElement,\n TabProps & { selected?: boolean }\n>(function Tab(props, forwardedRef) {\n const { innerAs, selected, children, disabled, ...otherProps } = props;\n const { textColor, indicatorColor, selectedTextColor } = useTabListContext();\n\n return (\n <Box position=\"relative\" display=\"flex\" flexGrow={1} flexDirection=\"column\">\n <RippleBox<\n RippleBoxProps<\n HTMLButtonElement,\n ButtonHTMLAttributes<HTMLButtonElement>\n >\n >\n as={innerAs}\n ref={forwardedRef}\n rippleColor={indicatorColor}\n disabled={disabled}\n __css={{\n px: 3,\n position: 'relative',\n color: selected\n ? selectedTextColor || indicatorColor\n : alpha(textColor, disabled ? 0.37 : 0.7),\n height: rem(48),\n backgroundColor: 'transparent',\n border: 'none',\n ':focus': {\n outline: 'none',\n },\n width: '100%',\n alignItems: 'center',\n }}\n {...otherProps}\n >\n <Text\n as=\"span\"\n variant=\"button\"\n color=\"inherit\"\n height=\"100%\"\n textAlign=\"center\"\n >\n {children}\n </Text>\n </RippleBox>\n <TabIndicator selected={selected} color={indicatorColor} />\n </Box>\n );\n});\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(\n props,\n forwardedRef\n) {\n const { as = 'button', ...otherProps } = props;\n\n return (\n <TabCore as={TabInner} innerAs={as} ref={forwardedRef} {...otherProps} />\n );\n});\n"],"file":"Tab.js"}
1
+ {"version":3,"file":"Tab.js","names":["useState","useEffect","useRef","forwardRef","Tab","TabCore","RippleBox","alpha","Text","Box","TabIndicator","useTabListContext","TabInner","props","forwardedRef","innerAs","selected","children","disabled","otherProps","textColor","indicatorColor","selectedTextColor","variant","labelRef","mounted","setMounted","px","py","color","minHeight","height","backgroundColor","border","outline","width","alignItems","display","justifyContent","textAlign","position","flexDirection","content","bg","bottom","zIndex","borderTopLeftRadius","borderTopRightRadius","as"],"sources":["../../../src/Tab/Tab.tsx"],"sourcesContent":["import type { ButtonHTMLAttributes } from 'react';\nimport { useState, useEffect, useRef, forwardRef } from 'react';\nimport type { TabProps as TabPropsCore } from '@basic-ui/core';\nimport { Tab as TabCore } from '@basic-ui/core';\nimport { rem } from 'polished';\n\nimport type { RippleBoxProps } from '../Ripple';\nimport { RippleBox } from '../Ripple';\nimport { alpha } from '../color';\nimport { Text } from '../Text';\nimport { Box } from '../Box';\nimport { TabIndicator } from '../TabIndicator';\nimport { useTabListContext } from './context';\n\nexport type TabProps = TabPropsCore &\n RippleBoxProps<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>;\n\nconst TabInner = forwardRef<\n HTMLButtonElement,\n TabProps & { selected?: boolean }\n>(function Tab(props, forwardedRef) {\n const { innerAs, selected, children, disabled, ...otherProps } = props;\n const { textColor, indicatorColor, selectedTextColor, variant } =\n useTabListContext();\n const labelRef = useRef<HTMLParagraphElement>(null);\n\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n\n return (\n <Box\n position=\"relative\"\n display=\"flex\"\n flex={1}\n flexDirection=\"column\"\n height=\"100%\"\n >\n <RippleBox<\n RippleBoxProps<\n HTMLButtonElement,\n ButtonHTMLAttributes<HTMLButtonElement>\n >\n >\n as={innerAs}\n ref={forwardedRef}\n rippleColor={indicatorColor}\n disabled={disabled}\n __css={{\n px: 3,\n py: 0,\n color: selected\n ? selectedTextColor || indicatorColor\n : alpha(textColor, disabled ? 0.37 : 0.7),\n minHeight: rem(48),\n height: '100%',\n backgroundColor: 'transparent',\n border: 'none',\n ':focus': {\n outline: 'none',\n },\n width: '100%',\n alignItems: 'center',\n }}\n {...otherProps}\n >\n <Text\n as=\"span\"\n variant=\"title-small\"\n ref={labelRef}\n __css={{\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: 'inherit',\n height: '100%',\n textAlign: 'center',\n position: 'relative',\n flexDirection: 'column',\n ...(variant === 'primary' &&\n selected &&\n !mounted && {\n '&::before': {\n content: '\"\"',\n bg: indicatorColor,\n position: 'absolute',\n bottom: 0,\n zIndex: 1,\n width: '100%',\n height: rem(3),\n borderTopLeftRadius: rem(3),\n borderTopRightRadius: rem(3),\n },\n }),\n }}\n >\n {children}\n </Text>\n </RippleBox>\n <TabIndicator\n selected={selected}\n color={indicatorColor}\n variant={variant}\n labelRef={labelRef}\n />\n </Box>\n );\n});\n\nexport const Tab = forwardRef<HTMLButtonElement, TabProps>(function Tab(\n props,\n forwardedRef\n) {\n const { as = 'button', ...otherProps } = props;\n\n return (\n <TabCore as={TabInner} innerAs={as} ref={forwardedRef} {...otherProps} />\n );\n});\n"],"mappings":"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"}