@basic-ui/material 1.0.0-alpha.4 → 1.0.0-alpha.41
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.
- package/build/cjs/index.js +2133 -1450
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Alert/Alert.d.ts +1 -1
- package/build/esm/Alert/Alert.js +3 -2
- package/build/esm/Alert/Alert.js.map +1 -1
- package/build/esm/Alert/index.js.map +1 -1
- package/build/esm/AppBar/AppBar.d.ts +3 -3
- package/build/esm/AppBar/AppBar.js +6 -5
- package/build/esm/AppBar/AppBar.js.map +1 -1
- package/build/esm/AppBar/AppBarButton.d.ts +1 -1
- package/build/esm/AppBar/AppBarButton.js +2 -1
- package/build/esm/AppBar/AppBarButton.js.map +1 -1
- package/build/esm/AppBar/context.js.map +1 -1
- package/build/esm/AppBar/index.js.map +1 -1
- package/build/esm/Badge/Badge.d.ts +2 -2
- package/build/esm/Badge/Badge.js +28 -2
- package/build/esm/Badge/Badge.js.map +1 -1
- package/build/esm/Badge/index.js.map +1 -1
- package/build/esm/BaseLine/BaseLine.js.map +1 -1
- package/build/esm/BaseLine/index.js.map +1 -1
- package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
- package/build/esm/BottomSheet/BottomSheet.js +2 -1
- package/build/esm/BottomSheet/BottomSheet.js.map +1 -1
- package/build/esm/BottomSheet/BottomSheetSurface.d.ts +2 -2
- package/build/esm/BottomSheet/BottomSheetSurface.js +2 -2
- package/build/esm/BottomSheet/BottomSheetSurface.js.map +1 -1
- package/build/esm/BottomSheet/index.js.map +1 -1
- package/build/esm/Box/Box.d.ts +4 -4
- package/build/esm/Box/Box.js +1 -2
- package/build/esm/Box/Box.js.map +1 -1
- package/build/esm/Box/index.js.map +1 -1
- package/build/esm/Button/BaseButton.d.ts +3 -3
- package/build/esm/Button/BaseButton.js +6 -5
- package/build/esm/Button/BaseButton.js.map +1 -1
- package/build/esm/Button/Button.d.ts +4 -4
- package/build/esm/Button/Button.js +6 -6
- package/build/esm/Button/Button.js.map +1 -1
- package/build/esm/Button/ButtonGroup.d.ts +2 -2
- package/build/esm/Button/ButtonGroup.js +3 -2
- package/build/esm/Button/ButtonGroup.js.map +1 -1
- package/build/esm/Button/FilledButton.d.ts +1 -1
- package/build/esm/Button/FilledButton.js +6 -8
- package/build/esm/Button/FilledButton.js.map +1 -1
- package/build/esm/Button/FloatingActionButton.js +1 -1
- package/build/esm/Button/FloatingActionButton.js.map +1 -1
- package/build/esm/Button/IconButton.js +1 -1
- package/build/esm/Button/IconButton.js.map +1 -1
- package/build/esm/Button/OutlinedButton.d.ts +1 -1
- package/build/esm/Button/OutlinedButton.js +2 -2
- package/build/esm/Button/OutlinedButton.js.map +1 -1
- package/build/esm/Button/TransparentButton.d.ts +1 -1
- package/build/esm/Button/TransparentButton.js.map +1 -1
- package/build/esm/Button/context.js.map +1 -1
- package/build/esm/Button/index.js.map +1 -1
- package/build/esm/CheckBox/CheckBox.d.ts +5 -5
- package/build/esm/CheckBox/CheckBox.js +6 -5
- package/build/esm/CheckBox/CheckBox.js.map +1 -1
- package/build/esm/CheckBox/CheckBoxIcon.d.ts +4 -4
- package/build/esm/CheckBox/CheckBoxIcon.js +6 -5
- package/build/esm/CheckBox/CheckBoxIcon.js.map +1 -1
- package/build/esm/CheckBox/CheckPath.d.ts +0 -1
- package/build/esm/CheckBox/CheckPath.js.map +1 -1
- package/build/esm/CheckBox/IndeterminatePath.d.ts +0 -1
- package/build/esm/CheckBox/IndeterminatePath.js.map +1 -1
- package/build/esm/CheckBox/index.js.map +1 -1
- package/build/esm/Chip/ButtonChip.d.ts +4 -4
- package/build/esm/Chip/ButtonChip.js +4 -4
- package/build/esm/Chip/ButtonChip.js.map +1 -1
- package/build/esm/Chip/Chip.js.map +1 -1
- package/build/esm/Chip/ChipBase.d.ts +3 -3
- package/build/esm/Chip/ChipBase.js +10 -10
- package/build/esm/Chip/ChipBase.js.map +1 -1
- package/build/esm/Chip/ChoiceChip.d.ts +5 -5
- package/build/esm/Chip/ChoiceChip.js +6 -5
- package/build/esm/Chip/ChoiceChip.js.map +1 -1
- package/build/esm/Chip/index.js.map +1 -1
- package/build/esm/Combobox/Combobox.d.ts +13 -13
- package/build/esm/Combobox/Combobox.js +25 -16
- package/build/esm/Combobox/Combobox.js.map +1 -1
- package/build/esm/Combobox/index.js.map +1 -1
- package/build/esm/Dialog/Dialog.d.ts +1 -1
- package/build/esm/Dialog/Dialog.js +6 -5
- package/build/esm/Dialog/Dialog.js.map +1 -1
- package/build/esm/Dialog/DialogBackdrop.d.ts +2 -2
- package/build/esm/Dialog/DialogBackdrop.js +2 -2
- package/build/esm/Dialog/DialogBackdrop.js.map +1 -1
- package/build/esm/Dialog/DialogContainer.d.ts +1 -1
- package/build/esm/Dialog/DialogContainer.js +2 -1
- package/build/esm/Dialog/DialogContainer.js.map +1 -1
- package/build/esm/Dialog/DialogSurface.d.ts +2 -2
- package/build/esm/Dialog/DialogSurface.js +4 -4
- package/build/esm/Dialog/DialogSurface.js.map +1 -1
- package/build/esm/Dialog/Scrim.d.ts +1 -1
- package/build/esm/Dialog/Scrim.js +2 -1
- package/build/esm/Dialog/Scrim.js.map +1 -1
- package/build/esm/Dialog/index.js +1 -0
- package/build/esm/Dialog/index.js.map +1 -1
- package/build/esm/Dialog/useDialogAnimation.js +6 -4
- package/build/esm/Dialog/useDialogAnimation.js.map +1 -1
- package/build/esm/Divider/Divider.d.ts +3 -3
- package/build/esm/Divider/Divider.js +9 -10
- package/build/esm/Divider/Divider.js.map +1 -1
- package/build/esm/Divider/index.js.map +1 -1
- package/build/esm/FloatingLabel/FloatingLabel.d.ts +4 -4
- package/build/esm/FloatingLabel/FloatingLabel.js +7 -6
- package/build/esm/FloatingLabel/FloatingLabel.js.map +1 -1
- package/build/esm/FloatingLabel/index.js.map +1 -1
- package/build/esm/LineRipple/LineRipple.d.ts +3 -3
- package/build/esm/LineRipple/LineRipple.js +5 -4
- package/build/esm/LineRipple/LineRipple.js.map +1 -1
- package/build/esm/LineRipple/index.js.map +1 -1
- package/build/esm/Link/Link.d.ts +3 -3
- package/build/esm/Link/Link.js +14 -2
- package/build/esm/Link/Link.js.map +1 -1
- package/build/esm/Link/index.js.map +1 -1
- package/build/esm/List/List.d.ts +5 -5
- package/build/esm/List/List.js +2 -2
- package/build/esm/List/List.js.map +1 -1
- package/build/esm/List/index.js.map +1 -1
- package/build/esm/ListItem/ListItem.d.ts +7 -5
- package/build/esm/ListItem/ListItem.js +50 -47
- package/build/esm/ListItem/ListItem.js.map +1 -1
- package/build/esm/ListItem/ListItemText.d.ts +6 -6
- package/build/esm/ListItem/ListItemText.js +5 -5
- package/build/esm/ListItem/ListItemText.js.map +1 -1
- package/build/esm/ListItem/index.js.map +1 -1
- package/build/esm/Menu/Menu.d.ts +9 -7
- package/build/esm/Menu/Menu.js +31 -11
- package/build/esm/Menu/Menu.js.map +1 -1
- package/build/esm/Menu/animation.js.map +1 -1
- package/build/esm/Menu/index.d.ts +1 -0
- package/build/esm/Menu/index.js +1 -0
- package/build/esm/Menu/index.js.map +1 -1
- package/build/esm/NavRail/NavRailItem.d.ts +15 -0
- package/build/esm/NavRail/NavRailItem.js +149 -0
- package/build/esm/NavRail/NavRailItem.js.map +1 -0
- package/build/esm/NavRail/icons/test-icons.d.ts +4 -0
- package/build/esm/NavRail/icons/test-icons.js +42 -0
- package/build/esm/NavRail/icons/test-icons.js.map +1 -0
- package/build/esm/NavRail/index.d.ts +1 -0
- package/build/esm/NavRail/index.js +2 -0
- package/build/esm/NavRail/index.js.map +1 -0
- package/build/esm/NotchedOutline/NotchedOutline.d.ts +5 -5
- package/build/esm/NotchedOutline/NotchedOutline.js +4 -4
- package/build/esm/NotchedOutline/NotchedOutline.js.map +1 -1
- package/build/esm/NotchedOutline/context.js.map +1 -1
- package/build/esm/NotchedOutline/index.js.map +1 -1
- package/build/esm/NotchedOutline/styledComponents.d.ts +118 -28
- package/build/esm/NotchedOutline/styledComponents.js +3 -2
- package/build/esm/NotchedOutline/styledComponents.js.map +1 -1
- package/build/esm/Paper/Paper.d.ts +4 -4
- package/build/esm/Paper/Paper.js +8 -8
- package/build/esm/Paper/Paper.js.map +1 -1
- package/build/esm/Paper/index.js.map +1 -1
- package/build/esm/Popover/Popover.d.ts +14 -0
- package/build/esm/Popover/Popover.js +74 -0
- package/build/esm/Popover/Popover.js.map +1 -0
- package/build/esm/Popover/PopoverContainer.d.ts +4 -0
- package/build/esm/Popover/PopoverContainer.js +20 -0
- package/build/esm/Popover/PopoverContainer.js.map +1 -0
- package/build/esm/Popover/PopoverSurface.d.ts +5 -0
- package/build/esm/Popover/PopoverSurface.js +41 -0
- package/build/esm/Popover/PopoverSurface.js.map +1 -0
- package/build/esm/Popover/index.d.ts +1 -0
- package/build/esm/Popover/index.js +2 -0
- package/build/esm/Popover/index.js.map +1 -0
- package/build/esm/ProgressSpinner/ProgressSpinner.d.ts +1 -1
- package/build/esm/ProgressSpinner/ProgressSpinner.js +14 -14
- package/build/esm/ProgressSpinner/ProgressSpinner.js.map +1 -1
- package/build/esm/ProgressSpinner/index.js.map +1 -1
- package/build/esm/RadioButton/RadioButton.js +4 -2
- package/build/esm/RadioButton/RadioButton.js.map +1 -1
- package/build/esm/RadioButton/RadioButtonIcon.d.ts +3 -3
- package/build/esm/RadioButton/RadioButtonIcon.js +6 -5
- package/build/esm/RadioButton/RadioButtonIcon.js.map +1 -1
- package/build/esm/RadioButton/RadioGroup.d.ts +1 -1
- package/build/esm/RadioButton/RadioGroup.js +2 -1
- package/build/esm/RadioButton/RadioGroup.js.map +1 -1
- package/build/esm/RadioButton/index.js.map +1 -1
- package/build/esm/Ripple/Ripple.js.map +1 -1
- package/build/esm/Ripple/RippleBox.d.ts +1 -2
- package/build/esm/Ripple/RippleBox.js +7 -6
- package/build/esm/Ripple/RippleBox.js.map +1 -1
- package/build/esm/Ripple/constants.js.map +1 -1
- package/build/esm/Ripple/index.js.map +1 -1
- package/build/esm/Ripple/keyframes.js.map +1 -1
- package/build/esm/Ripple/useRipple.js +2 -2
- package/build/esm/Ripple/useRipple.js.map +1 -1
- package/build/esm/Ripple/useRippleHandlers.d.ts +3 -3
- package/build/esm/Ripple/useRippleHandlers.js +2 -1
- package/build/esm/Ripple/useRippleHandlers.js.map +1 -1
- package/build/esm/Ripple/useRippleSurface.d.ts +6 -5
- package/build/esm/Ripple/useRippleSurface.js +65 -60
- package/build/esm/Ripple/useRippleSurface.js.map +1 -1
- package/build/esm/Select/CustomContainerExample.d.ts +3 -0
- package/build/esm/Select/CustomContainerExample.js +59 -0
- package/build/esm/Select/CustomContainerExample.js.map +1 -0
- package/build/esm/Select/Select.d.ts +23 -9
- package/build/esm/Select/Select.js +67 -15
- package/build/esm/Select/Select.js.map +1 -1
- package/build/esm/Select/SelectIcon.d.ts +3 -3
- package/build/esm/Select/SelectIcon.js +6 -5
- package/build/esm/Select/SelectIcon.js.map +1 -1
- package/build/esm/Select/context.d.ts +7 -6
- package/build/esm/Select/context.js +2 -1
- package/build/esm/Select/context.js.map +1 -1
- package/build/esm/Select/defaultRender.d.ts +3 -1
- package/build/esm/Select/defaultRender.js +33 -4
- package/build/esm/Select/defaultRender.js.map +1 -1
- package/build/esm/Select/index.js.map +1 -1
- package/build/esm/Select/styledComponents.d.ts +9 -9
- package/build/esm/Select/styledComponents.js +13 -22
- package/build/esm/Select/styledComponents.js.map +1 -1
- package/build/esm/SelectItem/SelectItem.d.ts +11 -4
- package/build/esm/SelectItem/SelectItem.js +34 -9
- package/build/esm/SelectItem/SelectItem.js.map +1 -1
- package/build/esm/SelectItem/index.js.map +1 -1
- package/build/esm/SelectionControl/SelectionControlLabel.d.ts +5 -5
- package/build/esm/SelectionControl/SelectionControlLabel.js +4 -3
- package/build/esm/SelectionControl/SelectionControlLabel.js.map +1 -1
- package/build/esm/SelectionControl/SelectionControlText.d.ts +4 -4
- package/build/esm/SelectionControl/SelectionControlText.js +4 -4
- package/build/esm/SelectionControl/SelectionControlText.js.map +1 -1
- package/build/esm/SelectionControl/index.js.map +1 -1
- package/build/esm/Skeleton/DelayAppearance.d.ts +3 -3
- package/build/esm/Skeleton/DelayAppearance.js +2 -2
- package/build/esm/Skeleton/DelayAppearance.js.map +1 -1
- package/build/esm/Skeleton/Skeleton.d.ts +6 -6
- package/build/esm/Skeleton/Skeleton.js +4 -4
- package/build/esm/Skeleton/Skeleton.js.map +1 -1
- package/build/esm/Skeleton/animation.js.map +1 -1
- package/build/esm/Skeleton/index.js.map +1 -1
- package/build/esm/Slider/Slider.d.ts +17 -0
- package/build/esm/Slider/Slider.js +224 -0
- package/build/esm/Slider/Slider.js.map +1 -0
- package/build/esm/Slider/index.d.ts +1 -0
- package/build/esm/Slider/index.js +2 -0
- package/build/esm/Slider/index.js.map +1 -0
- package/build/esm/Snackbar/Snackbar.d.ts +3 -3
- package/build/esm/Snackbar/Snackbar.js +12 -12
- package/build/esm/Snackbar/Snackbar.js.map +1 -1
- package/build/esm/Snackbar/Stack.d.ts +2 -3
- package/build/esm/Snackbar/Stack.js +11 -10
- package/build/esm/Snackbar/Stack.js.map +1 -1
- package/build/esm/Snackbar/index.d.ts +1 -0
- package/build/esm/Snackbar/index.js +1 -0
- package/build/esm/Snackbar/index.js.map +1 -1
- package/build/esm/Snackbar/useSnackbarAnimation.d.ts +2 -66
- package/build/esm/Snackbar/useSnackbarAnimation.js +9 -8
- package/build/esm/Snackbar/useSnackbarAnimation.js.map +1 -1
- package/build/esm/Switch/Switch.d.ts +9 -5
- package/build/esm/Switch/Switch.js +70 -48
- package/build/esm/Switch/Switch.js.map +1 -1
- package/build/esm/Switch/index.js.map +1 -1
- package/build/esm/Switch/styledComponents.js +34 -25
- package/build/esm/Switch/styledComponents.js.map +1 -1
- package/build/esm/Tab/Tab.d.ts +3 -3
- package/build/esm/Tab/Tab.js +51 -14
- package/build/esm/Tab/Tab.js.map +1 -1
- package/build/esm/Tab/TabList.d.ts +2 -1
- package/build/esm/Tab/TabList.js +8 -3
- package/build/esm/Tab/TabList.js.map +1 -1
- package/build/esm/Tab/TabPanel.d.ts +1 -1
- package/build/esm/Tab/TabPanel.js +4 -2
- package/build/esm/Tab/TabPanel.js.map +1 -1
- package/build/esm/Tab/TabPanels.js.map +1 -1
- package/build/esm/Tab/Tabs.js.map +1 -1
- package/build/esm/Tab/context.d.ts +1 -0
- package/build/esm/Tab/context.js +2 -1
- package/build/esm/Tab/context.js.map +1 -1
- package/build/esm/Tab/index.js.map +1 -1
- package/build/esm/TabIndicator/TabIndicator.d.ts +4 -2
- package/build/esm/TabIndicator/TabIndicator.js +78 -10
- package/build/esm/TabIndicator/TabIndicator.js.map +1 -1
- package/build/esm/TabIndicator/context.d.ts +2 -2
- package/build/esm/TabIndicator/context.js.map +1 -1
- package/build/esm/TabIndicator/index.js.map +1 -1
- package/build/esm/Table/Table.d.ts +1 -1
- package/build/esm/Table/Table.js +14 -5
- package/build/esm/Table/Table.js.map +1 -1
- package/build/esm/Table/TableBody.d.ts +1 -1
- package/build/esm/Table/TableBody.js +4 -3
- package/build/esm/Table/TableBody.js.map +1 -1
- package/build/esm/Table/TableCell.d.ts +1 -1
- package/build/esm/Table/TableCell.js +4 -3
- package/build/esm/Table/TableCell.js.map +1 -1
- package/build/esm/Table/TableHead.js +7 -5
- package/build/esm/Table/TableHead.js.map +1 -1
- package/build/esm/Table/TableRow.d.ts +1 -1
- package/build/esm/Table/TableRow.js +6 -6
- package/build/esm/Table/TableRow.js.map +1 -1
- package/build/esm/Table/context.js.map +1 -1
- package/build/esm/Table/index.js.map +1 -1
- package/build/esm/Text/LoremIpsum.js +1 -1
- package/build/esm/Text/LoremIpsum.js.map +1 -1
- package/build/esm/Text/Text.d.ts +8 -4
- package/build/esm/Text/Text.js +7 -3
- package/build/esm/Text/Text.js.map +1 -1
- package/build/esm/Text/index.js.map +1 -1
- package/build/esm/TextField/FilledContainer.d.ts +7 -4
- package/build/esm/TextField/FilledContainer.js +11 -11
- package/build/esm/TextField/FilledContainer.js.map +1 -1
- package/build/esm/TextField/HelperText.d.ts +5 -5
- package/build/esm/TextField/HelperText.js +5 -5
- package/build/esm/TextField/HelperText.js.map +1 -1
- package/build/esm/TextField/IconContainer.d.ts +2 -3
- package/build/esm/TextField/IconContainer.js +0 -1
- package/build/esm/TextField/IconContainer.js.map +1 -1
- package/build/esm/TextField/Input.d.ts +4 -4
- package/build/esm/TextField/Input.js +11 -9
- package/build/esm/TextField/Input.js.map +1 -1
- package/build/esm/TextField/OutlinedContainer.d.ts +4 -4
- package/build/esm/TextField/OutlinedContainer.js +17 -9
- package/build/esm/TextField/OutlinedContainer.js.map +1 -1
- package/build/esm/TextField/TextField.d.ts +5 -5
- package/build/esm/TextField/TextField.js +4 -4
- package/build/esm/TextField/TextField.js.map +1 -1
- package/build/esm/TextField/consts.js.map +1 -1
- package/build/esm/TextField/index.js.map +1 -1
- package/build/esm/ThemeExplorer/BorderSlider.d.ts +7 -0
- package/build/esm/ThemeExplorer/BorderSlider.js +78 -0
- package/build/esm/ThemeExplorer/BorderSlider.js.map +1 -0
- package/build/esm/ThemeExplorer/ColorPicker.js +4 -3
- package/build/esm/ThemeExplorer/ColorPicker.js.map +1 -1
- package/build/esm/ThemeExplorer/ColorSchemePicker.d.ts +10 -0
- package/build/esm/ThemeExplorer/ColorSchemePicker.js +54 -0
- package/build/esm/ThemeExplorer/ColorSchemePicker.js.map +1 -0
- package/build/esm/ThemeExplorer/FontAutoComplete.d.ts +9 -0
- package/build/esm/ThemeExplorer/FontAutoComplete.js +128 -0
- package/build/esm/ThemeExplorer/FontAutoComplete.js.map +1 -0
- package/build/esm/ThemeExplorer/TextFieldColorPicker.js +4 -3
- package/build/esm/ThemeExplorer/TextFieldColorPicker.js.map +1 -1
- package/build/esm/ThemeExplorer/ThemeBuilder.d.ts +11 -0
- package/build/esm/ThemeExplorer/ThemeBuilder.js +400 -0
- package/build/esm/ThemeExplorer/ThemeBuilder.js.map +1 -0
- package/build/esm/ThemeExplorer/ThemeColors.d.ts +2 -2
- package/build/esm/ThemeExplorer/ThemeColors.js +38 -16
- package/build/esm/ThemeExplorer/ThemeColors.js.map +1 -1
- package/build/esm/ThemeExplorer/components.d.ts +7 -8
- package/build/esm/ThemeExplorer/components.js +29 -28
- package/build/esm/ThemeExplorer/components.js.map +1 -1
- package/build/esm/ThemeExplorer/googleFonts.d.ts +1 -0
- package/build/esm/ThemeExplorer/googleFonts.js +7 -0
- package/build/esm/ThemeExplorer/googleFonts.js.map +1 -0
- package/build/esm/ThemeExplorer/index.d.ts +1 -0
- package/build/esm/ThemeExplorer/index.js +2 -0
- package/build/esm/ThemeExplorer/index.js.map +1 -0
- package/build/esm/ThemeExplorer/makeColorScheme.d.ts +36 -4
- package/build/esm/ThemeExplorer/makeColorScheme.js +46 -10
- package/build/esm/ThemeExplorer/makeColorScheme.js.map +1 -1
- package/build/esm/ThemeExplorer/makeTailwindTheme.d.ts +2 -0
- package/build/esm/ThemeExplorer/makeTailwindTheme.js +30 -0
- package/build/esm/ThemeExplorer/makeTailwindTheme.js.map +1 -0
- package/build/esm/ThemeExplorer/updateGoogleFonts.js +70 -0
- package/build/esm/ThemeExplorer/updateGoogleFonts.js.map +1 -0
- package/build/esm/ThemeExplorer/useDeferredColor.js +6 -9
- package/build/esm/ThemeExplorer/useDeferredColor.js.map +1 -1
- package/build/esm/ThemeExplorer/useLocalStorageCachedState.d.ts +1 -1
- package/build/esm/ThemeExplorer/useLocalStorageCachedState.js +1 -1
- package/build/esm/ThemeExplorer/useLocalStorageCachedState.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +3 -3
- package/build/esm/Tooltip/Tooltip.js +30 -16
- package/build/esm/Tooltip/Tooltip.js.map +1 -1
- package/build/esm/Tooltip/index.js.map +1 -1
- package/build/esm/color.d.ts +3 -1
- package/build/esm/color.js +14 -5
- package/build/esm/color.js.map +1 -1
- package/build/esm/css.js.map +1 -1
- package/build/esm/hooks/useAnimation.js +3 -3
- package/build/esm/hooks/useAnimation.js.map +1 -1
- package/build/esm/index.d.ts +5 -1
- package/build/esm/index.js +5 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/motion.d.ts +7 -0
- package/build/esm/motion.js +8 -0
- package/build/esm/motion.js.map +1 -0
- package/build/esm/tailwind/extendColors.d.ts +5 -0
- package/build/esm/tailwind/extendColors.js +59 -0
- package/build/esm/tailwind/extendColors.js.map +1 -0
- package/build/esm/tailwind/index.d.ts +8 -0
- package/build/esm/tailwind/index.js +45 -0
- package/build/esm/tailwind/index.js.map +1 -0
- package/build/esm/theme/index.js.map +1 -1
- package/build/esm/theme/theme.d.ts +118 -28
- package/build/esm/theme/theme.js +54 -42
- package/build/esm/theme/theme.js.map +1 -1
- package/build/esm/theme/typography-raleway.js.map +1 -1
- package/build/esm/theme/typography-roboto.js.map +1 -1
- package/build/esm/theme/useTheme.d.ts +561 -1
- package/build/esm/theme/useTheme.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -0
- package/package.json +22 -12
- package/src/Alert/Alert.tsx +1 -1
- package/src/AppBar/AppBar.tsx +4 -3
- package/src/Badge/Badge.story.tsx +68 -0
- package/src/Badge/Badge.tsx +33 -3
- package/src/BottomSheet/BottomSheetSurface.tsx +3 -3
- package/src/Box/Box.tsx +6 -8
- package/src/Button/BaseButton.tsx +4 -11
- package/src/Button/Button.story.tsx +10 -1
- package/src/Button/Button.tsx +4 -4
- package/src/Button/ButtonGroup.tsx +1 -1
- package/src/Button/FilledButton.tsx +4 -9
- package/src/Button/OutlinedButton.tsx +1 -1
- package/src/Button/SpinnerButton.story.tsx +1 -1
- package/src/CheckBox/CheckBox.story.tsx +7 -6
- package/src/CheckBox/CheckBox.tsx +6 -10
- package/src/CheckBox/CheckBoxIcon.tsx +5 -5
- package/src/Chip/ButtonChip.tsx +3 -3
- package/src/Chip/Chip.story.tsx +1 -1
- package/src/Chip/ChipBase.tsx +2 -2
- package/src/Chip/ChoiceChip.tsx +7 -7
- package/src/Combobox/Combobox.story.tsx +3 -3
- package/src/Combobox/Combobox.tsx +14 -12
- package/src/Dialog/DialogBackdrop.tsx +3 -3
- package/src/Dialog/DialogSurface.tsx +2 -4
- package/src/Dialog/useDialogAnimation.tsx +3 -4
- package/src/Divider/Divider.tsx +4 -5
- package/src/FloatingLabel/FloatingLabel.tsx +7 -6
- package/src/LineRipple/LineRipple.story.tsx +1 -1
- package/src/LineRipple/LineRipple.tsx +4 -4
- package/src/Link/Link.tsx +14 -5
- package/src/List/List.tsx +4 -4
- package/src/ListItem/ListItem.tsx +52 -47
- package/src/ListItem/ListItemText.tsx +6 -7
- package/src/Menu/ContextMenu.story.tsx +34 -0
- package/src/Menu/Menu.tsx +19 -5
- package/src/Menu/index.ts +1 -0
- package/src/NavRail/NavRail.story.tsx +146 -0
- package/src/NavRail/NavRailItem.tsx +175 -0
- package/src/NavRail/icons/test-icons.tsx +46 -0
- package/src/NavRail/index.ts +1 -0
- package/src/NotchedOutline/NotchedOutline.tsx +4 -5
- package/src/NotchedOutline/styledComponents.ts +2 -1
- package/src/Paper/Paper.story.tsx +3 -3
- package/src/Paper/Paper.tsx +5 -9
- package/src/Popover/Popover.story.tsx +29 -0
- package/src/Popover/Popover.tsx +96 -0
- package/src/Popover/PopoverContainer.tsx +25 -0
- package/src/Popover/PopoverSurface.tsx +51 -0
- package/src/Popover/index.ts +1 -0
- package/src/ProgressSpinner/ProgressSpinner.tsx +9 -9
- package/src/RadioButton/RadioButton.story.tsx +2 -2
- package/src/RadioButton/RadioButton.tsx +1 -1
- package/src/RadioButton/RadioButtonIcon.tsx +4 -5
- package/src/Ripple/Ripple.story.tsx +1 -1
- package/src/Ripple/RippleBox.tsx +1 -2
- package/src/Ripple/useRippleHandlers.ts +3 -3
- package/src/Ripple/useRippleSurface.ts +83 -61
- package/src/Select/CustomContainerExample.tsx +59 -0
- package/src/Select/PaymentMethodSelect.story.tsx +17 -24
- package/src/Select/Select.story.tsx +68 -69
- package/src/Select/Select.tsx +118 -32
- package/src/Select/SelectIcon.tsx +3 -4
- package/src/Select/SelectMultiple.story.tsx +215 -0
- package/src/Select/context.ts +7 -4
- package/src/Select/defaultRender.tsx +49 -0
- package/src/Select/styledComponents.tsx +12 -22
- package/src/SelectItem/SelectItem.tsx +81 -49
- package/src/SelectionControl/SelectionControlLabel.tsx +5 -8
- package/src/SelectionControl/SelectionControlText.tsx +3 -3
- package/src/Skeleton/DelayAppearance.tsx +2 -2
- package/src/Skeleton/Skeleton.story.tsx +2 -2
- package/src/Skeleton/Skeleton.tsx +6 -6
- package/src/Slider/Slider.story.tsx +36 -0
- package/src/Slider/Slider.tsx +275 -0
- package/src/Slider/index.ts +1 -0
- package/src/Snackbar/Snackbar.tsx +10 -10
- package/src/Snackbar/Stack.tsx +13 -12
- package/src/Snackbar/index.ts +1 -0
- package/src/Snackbar/useSnackbarAnimation.ts +5 -4
- package/src/Switch/Switch.story.tsx +78 -7
- package/src/Switch/Switch.tsx +101 -58
- package/src/Switch/styledComponents.tsx +34 -27
- package/src/Tab/Tab.story.tsx +170 -14
- package/src/Tab/Tab.tsx +53 -15
- package/src/Tab/TabList.tsx +5 -1
- package/src/Tab/context.ts +2 -0
- package/src/TabIndicator/TabIndicator.tsx +85 -8
- package/src/TabIndicator/context.ts +2 -1
- package/src/Table/Table.tsx +10 -1
- package/src/Table/TableHead.tsx +3 -2
- package/src/Table/TableRow.tsx +2 -3
- package/src/Text/LoremIpsum.tsx +1 -1
- package/src/Text/Text.story.tsx +42 -7
- package/src/Text/Text.tsx +25 -5
- package/src/TextField/FilledContainer.tsx +9 -8
- package/src/TextField/HelperText.tsx +5 -5
- package/src/TextField/IconContainer.tsx +2 -3
- package/src/TextField/Input.tsx +5 -4
- package/src/TextField/OutlinedContainer.tsx +11 -6
- package/src/TextField/TextField.tsx +4 -4
- package/src/ThemeExplorer/BorderSlider.tsx +73 -0
- package/src/ThemeExplorer/ColorSchemePicker.tsx +55 -0
- package/src/ThemeExplorer/FontAutoComplete.tsx +139 -0
- package/src/ThemeExplorer/ThemeBuilder.story.tsx +3 -160
- package/src/ThemeExplorer/ThemeBuilder.tsx +353 -0
- package/src/ThemeExplorer/ThemeColors.tsx +45 -16
- package/src/ThemeExplorer/components.tsx +30 -30
- package/src/ThemeExplorer/googleFonts.ts +1436 -0
- package/src/ThemeExplorer/index.ts +1 -0
- package/src/ThemeExplorer/makeColorScheme.tsx +44 -7
- package/src/ThemeExplorer/makeTailwindTheme.ts +44 -0
- package/src/ThemeExplorer/updateGoogleFonts.js +33 -0
- package/src/ThemeExplorer/useDeferredColor.tsx +6 -10
- package/src/ThemeExplorer/useLocalStorageCachedState.ts +2 -2
- package/src/Tooltip/Tooltip.story.tsx +2 -2
- package/src/Tooltip/Tooltip.tsx +36 -19
- package/src/color.ts +30 -6
- package/src/index.ts +5 -1
- package/src/motion.ts +7 -0
- package/src/tailwind/extendColors.ts +51 -0
- package/src/tailwind/index.ts +56 -0
- package/src/tailwind/tests/extendColors.test.ts +123 -0
- package/src/theme/theme.ts +57 -39
- package/tailwind/package.json +5 -0
- package/theme-explorer/package.json +5 -0
- package/build/esm/ColorMode/ColorModeProvider.d.ts +0 -7
- package/build/esm/ColorMode/ColorModeProvider.js +0 -92
- package/build/esm/ColorMode/ColorModeProvider.js.map +0 -1
- package/build/esm/ColorMode/color-mode.d.ts +0 -8
- package/build/esm/ColorMode/color-mode.js +0 -11
- package/build/esm/ColorMode/color-mode.js.map +0 -1
- package/build/esm/ColorMode/color-vars.d.ts +0 -4
- package/build/esm/ColorMode/color-vars.js +0 -58
- package/build/esm/ColorMode/color-vars.js.map +0 -1
- package/build/esm/ColorMode/constants.d.ts +0 -3
- package/build/esm/ColorMode/constants.js +0 -5
- package/build/esm/ColorMode/constants.js.map +0 -1
- package/build/esm/ColorMode/index.d.ts +0 -4
- package/build/esm/ColorMode/index.js +0 -5
- package/build/esm/ColorMode/index.js.map +0 -1
- package/build/esm/ListItem/context.d.ts +0 -7
- package/build/esm/ListItem/context.js +0 -10
- package/build/esm/ListItem/context.js.map +0 -1
- package/build/tsconfig.tsbuildinfo +0 -1
- package/src/ColorMode/ColorModeProvider.tsx +0 -97
- package/src/ColorMode/color-mode.ts +0 -20
- package/src/ColorMode/color-vars.ts +0 -56
- package/src/ColorMode/constants.ts +0 -5
- package/src/ColorMode/index.ts +0 -4
- package/src/ColorMode/tests/color-vars.test.ts +0 -9
- package/src/Select/defaultRender.ts +0 -18
- package/src/ThemeExplorer/ThemeExplorer.story.tsx +0 -43
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ThemeBuilder';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TonalPalette } from '@material/material-color-utilities';
|
|
2
|
-
import { hexFromArgb } from '@material/material-color-utilities';
|
|
2
|
+
import { hexFromArgb } from '@material/material-color-utilities';
|
|
3
3
|
|
|
4
4
|
export function makeColorScheme(opts: {
|
|
5
5
|
primary: TonalPalette;
|
|
@@ -22,10 +22,19 @@ export function makeColorScheme(opts: {
|
|
|
22
22
|
'secondary-container': c(opts.secondary, 90),
|
|
23
23
|
'tertiary-container': c(opts.tertiary, 90),
|
|
24
24
|
'error-container': c(opts.error, 90),
|
|
25
|
-
background: c(opts.neutral,
|
|
26
|
-
surface: c(opts.neutral, 99),
|
|
25
|
+
background: c(opts.neutral, 98),
|
|
27
26
|
'surface-variant': c(opts.neutralVariant, 90),
|
|
28
27
|
outline: c(opts.neutralVariant, 50),
|
|
28
|
+
'outline-variant': c(opts.neutralVariant, 80),
|
|
29
|
+
// https://material.io/blog/tone-based-surface-color-m3
|
|
30
|
+
'surface-dim': c(opts.neutral, 87),
|
|
31
|
+
surface: c(opts.neutral, 98),
|
|
32
|
+
'surface-bright': c(opts.neutral, 98),
|
|
33
|
+
'surface-container-lowest': c(opts.neutral, 100),
|
|
34
|
+
'surface-container-low': c(opts.neutral, 96),
|
|
35
|
+
'surface-container': c(opts.neutral, 94),
|
|
36
|
+
'surface-container-high': c(opts.neutral, 92),
|
|
37
|
+
'surface-container-highest': c(opts.neutral, 90),
|
|
29
38
|
on: {
|
|
30
39
|
primary: c(opts.primary, 100),
|
|
31
40
|
secondary: c(opts.secondary, 100),
|
|
@@ -36,9 +45,18 @@ export function makeColorScheme(opts: {
|
|
|
36
45
|
'tertiary-container': c(opts.tertiary, 10),
|
|
37
46
|
'error-container': c(opts.error, 10),
|
|
38
47
|
background: c(opts.neutral, 10),
|
|
39
|
-
surface: c(opts.neutral, 10),
|
|
40
48
|
'surface-variant': c(opts.neutralVariant, 30),
|
|
41
49
|
outline: c(opts.neutralVariant, 95),
|
|
50
|
+
'outline-variant': c(opts.neutralVariant, 10),
|
|
51
|
+
// https://material.io/blog/tone-based-surface-color-m3
|
|
52
|
+
'surface-dim': c(opts.neutral, 10),
|
|
53
|
+
surface: c(opts.neutral, 10),
|
|
54
|
+
'surface-bright': c(opts.neutral, 10),
|
|
55
|
+
'surface-container-lowest': c(opts.neutral, 10),
|
|
56
|
+
'surface-container-low': c(opts.neutral, 10),
|
|
57
|
+
'surface-container': c(opts.neutral, 10),
|
|
58
|
+
'surface-container-high': c(opts.neutral, 10),
|
|
59
|
+
'surface-container-highest': c(opts.neutral, 10),
|
|
42
60
|
},
|
|
43
61
|
modes: {
|
|
44
62
|
dark: {
|
|
@@ -50,10 +68,20 @@ export function makeColorScheme(opts: {
|
|
|
50
68
|
'secondary-container': c(opts.secondary, 30),
|
|
51
69
|
'tertiary-container': c(opts.tertiary, 30),
|
|
52
70
|
'error-container': c(opts.error, 30),
|
|
53
|
-
background: c(opts.neutral,
|
|
54
|
-
surface: c(opts.neutral, 10),
|
|
71
|
+
background: c(opts.neutral, 6),
|
|
55
72
|
'surface-variant': c(opts.neutralVariant, 30),
|
|
56
73
|
outline: c(opts.neutralVariant, 60),
|
|
74
|
+
'outline-variant': c(opts.neutralVariant, 30),
|
|
75
|
+
// https://material.io/blog/tone-based-surface-color-m3
|
|
76
|
+
// TODO: get the actual values from here once updated: https://github.com/material-foundation/material-color-utilities/blob/main/dart/lib/scheme/scheme.dart#L126-L156
|
|
77
|
+
'surface-dim': c(opts.neutral, 6),
|
|
78
|
+
surface: c(opts.neutral, 6),
|
|
79
|
+
'surface-bright': c(opts.neutral, 24),
|
|
80
|
+
'surface-container-lowest': c(opts.neutral, 4),
|
|
81
|
+
'surface-container-low': c(opts.neutral, 10),
|
|
82
|
+
'surface-container': c(opts.neutral, 12),
|
|
83
|
+
'surface-container-high': c(opts.neutral, 17),
|
|
84
|
+
'surface-container-highest': c(opts.neutral, 22),
|
|
57
85
|
on: {
|
|
58
86
|
primary: c(opts.primary, 20),
|
|
59
87
|
secondary: c(opts.secondary, 20),
|
|
@@ -64,9 +92,18 @@ export function makeColorScheme(opts: {
|
|
|
64
92
|
'tertiary-container': c(opts.tertiary, 90),
|
|
65
93
|
'error-container': c(opts.error, 90),
|
|
66
94
|
background: c(opts.neutral, 90),
|
|
67
|
-
surface: c(opts.neutral, 90),
|
|
68
95
|
'surface-variant': c(opts.neutralVariant, 80),
|
|
69
96
|
outline: c(opts.neutralVariant, 10),
|
|
97
|
+
'outline-variant': c(opts.neutralVariant, 90),
|
|
98
|
+
// https://material.io/blog/tone-based-surface-color-m3
|
|
99
|
+
'surface-dim': c(opts.neutral, 90),
|
|
100
|
+
surface: c(opts.neutral, 90),
|
|
101
|
+
'surface-bright': c(opts.neutral, 90),
|
|
102
|
+
'surface-container-lowest': c(opts.neutral, 90),
|
|
103
|
+
'surface-container-low': c(opts.neutral, 90),
|
|
104
|
+
'surface-container': c(opts.neutral, 90),
|
|
105
|
+
'surface-container-high': c(opts.neutral, 90),
|
|
106
|
+
'surface-container-highest': c(opts.neutral, 90),
|
|
70
107
|
},
|
|
71
108
|
},
|
|
72
109
|
},
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DARK_SCHEME_CLASS,
|
|
3
|
+
LIGHT_SCHEME_CLASS,
|
|
4
|
+
transformTheme,
|
|
5
|
+
} from '@basic-ui/dynamic-theme';
|
|
6
|
+
|
|
7
|
+
import type { Theme } from '../theme/theme';
|
|
8
|
+
|
|
9
|
+
export function makeTailwindThemeCSS(theme: Theme) {
|
|
10
|
+
const transformedTheme = transformTheme(theme, []);
|
|
11
|
+
const { light, dark } = transformedTheme.colorModes;
|
|
12
|
+
|
|
13
|
+
const parseColorMode = (colors: Record<string, string>) => {
|
|
14
|
+
const keys = Object.keys(colors);
|
|
15
|
+
const cssLines: string[] = [];
|
|
16
|
+
// let css = '';
|
|
17
|
+
for (const key of keys) {
|
|
18
|
+
if (!key.endsWith('--rgb')) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
cssLines.push(` ` + key + ': ' + colors[key]);
|
|
23
|
+
}
|
|
24
|
+
return cssLines.join(';\n') + ';';
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const bodySelector = `body`;
|
|
28
|
+
const lightThemeSelector = [
|
|
29
|
+
'' + bodySelector,
|
|
30
|
+
'' + bodySelector + '.' + LIGHT_SCHEME_CLASS,
|
|
31
|
+
'' + bodySelector + ' .' + LIGHT_SCHEME_CLASS,
|
|
32
|
+
].join(',\n');
|
|
33
|
+
const darkThemeSelector = [
|
|
34
|
+
'' + bodySelector + '.' + DARK_SCHEME_CLASS,
|
|
35
|
+
'' + bodySelector + ' .' + DARK_SCHEME_CLASS,
|
|
36
|
+
].join(',\n');
|
|
37
|
+
|
|
38
|
+
return `${lightThemeSelector} {
|
|
39
|
+
${parseColorMode(light)}
|
|
40
|
+
}
|
|
41
|
+
${darkThemeSelector} {
|
|
42
|
+
${parseColorMode(dark)}
|
|
43
|
+
}`;
|
|
44
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
2
|
+
const { writeFileSync } = require('fs');
|
|
3
|
+
|
|
4
|
+
// This file auto generates our googleFonts.ts file
|
|
5
|
+
|
|
6
|
+
// You can generate an API key from here
|
|
7
|
+
// https://developers.google.com/fonts/docs/developer_api#APIKey
|
|
8
|
+
const API_KEY = process.env.GOOGLE_FONTS_API_KEY;
|
|
9
|
+
|
|
10
|
+
async function main() {
|
|
11
|
+
const res = await fetch(
|
|
12
|
+
`https://content-webfonts.googleapis.com/v1/webfonts?sort=POPULARITY&key=${API_KEY}`
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
const json = await res.json();
|
|
16
|
+
if (json.error) {
|
|
17
|
+
console.error(json.error);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const fonts = json.items.map((item) => item.family);
|
|
21
|
+
let str = '';
|
|
22
|
+
str += `// THIS FILE WAS AUTOGENERATED BY updateGoogleFonts.js\n`;
|
|
23
|
+
str += `// TO UPDATE IT RUN THE FOLLOWING WITH Node.js v18+\n`;
|
|
24
|
+
str += `// GOOGLE_FONTS_API_KEY="<SECRET>" node updateGoogleFonts.js`;
|
|
25
|
+
str += `\n\n/* eslint-disable prettier/prettier */\n`;
|
|
26
|
+
str += `export const googleFonts = [\n`;
|
|
27
|
+
str += fonts.map((f) => ' ' + JSON.stringify(f)).join(',\n');
|
|
28
|
+
str += '\n];\n';
|
|
29
|
+
|
|
30
|
+
writeFileSync('./googleFonts.ts', str, 'utf-8');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
main();
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
import { useMemo
|
|
2
|
-
import { TonalPalette, argbFromHex } from '@material/material-color-utilities';
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { TonalPalette, argbFromHex } from '@material/material-color-utilities';
|
|
3
3
|
import type { Color } from '@basic-ui/color-picker';
|
|
4
4
|
|
|
5
5
|
import { useLocalStorageCachedState } from './useLocalStorageCachedState';
|
|
6
6
|
|
|
7
|
-
// import './styles.css';
|
|
8
7
|
export function useDeferredColor(
|
|
9
8
|
key: string,
|
|
10
9
|
fallbackValue: TonalPalette
|
|
11
10
|
): [Color | null, TonalPalette, (c: Color | null) => void] {
|
|
12
11
|
const [color, setColor] = useLocalStorageCachedState<Color | null>(
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
null,
|
|
13
|
+
'theme-builder.' + key
|
|
15
14
|
);
|
|
16
|
-
const deferredColor = useDeferredValue(color);
|
|
17
15
|
const colorTonal = useMemo(
|
|
18
16
|
() =>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
: fallbackValue,
|
|
22
|
-
[deferredColor?.hex, fallbackValue]
|
|
17
|
+
color?.hex ? TonalPalette.fromInt(argbFromHex(color.hex)) : fallbackValue,
|
|
18
|
+
[color?.hex, fallbackValue]
|
|
23
19
|
);
|
|
24
20
|
return [color, colorTonal, setColor];
|
|
25
21
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useCallback, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
export function useLocalStorageCachedState<T>(
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
initialValue: T,
|
|
5
|
+
key: string
|
|
6
6
|
): [T, (c: T) => void] {
|
|
7
7
|
const [state, _setState] = useState<T>(
|
|
8
8
|
() => JSON.parse(localStorage.getItem(key) || 'null') || initialValue
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { useEffect, useRef, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
import { Tooltip } from './';
|
|
4
4
|
import { Button } from '../Button';
|
|
@@ -9,7 +9,7 @@ export default {
|
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
const Example = () => {
|
|
12
|
-
const buttonRef = useRef();
|
|
12
|
+
const buttonRef = useRef<HTMLButtonElement>(null);
|
|
13
13
|
const [counter, setCounter] = useState(0);
|
|
14
14
|
useEffect(() => {
|
|
15
15
|
const interval = setInterval(() => setCounter((f) => f + 1), 50);
|
package/src/Tooltip/Tooltip.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PopperProps } from '@basic-ui/core';
|
|
2
2
|
import { Tooltip as _BaseTooltip, Popper } from '@basic-ui/core';
|
|
3
|
-
import type { FC } from 'react';
|
|
4
|
-
import
|
|
3
|
+
import type { ElementType, FC, ReactNode } from 'react';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
5
5
|
|
|
6
6
|
import type { BoxProps } from '../Box';
|
|
7
7
|
import { Box } from '../Box';
|
|
@@ -10,18 +10,44 @@ import { alpha } from '../color';
|
|
|
10
10
|
export interface TooltipProps
|
|
11
11
|
extends BoxProps,
|
|
12
12
|
Omit<PopperProps, 'color' | 'anchorEl'> {
|
|
13
|
-
label:
|
|
13
|
+
label: ReactNode;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
const BaseTooltip: FC<
|
|
18
18
|
BoxProps & {
|
|
19
|
-
innerAs?:
|
|
19
|
+
innerAs?: ElementType<any>;
|
|
20
|
+
label: ReactNode;
|
|
20
21
|
} & Omit<PopperProps, 'color' | 'anchorEl'>
|
|
21
22
|
> = _BaseTooltip as any;
|
|
23
|
+
|
|
22
24
|
export const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(
|
|
23
25
|
function Tooltip(props, forwardedRef) {
|
|
24
|
-
const {
|
|
26
|
+
const {
|
|
27
|
+
placement = 'bottom',
|
|
28
|
+
children,
|
|
29
|
+
label,
|
|
30
|
+
__css,
|
|
31
|
+
...otherProps
|
|
32
|
+
} = props;
|
|
33
|
+
const cssStyle = {
|
|
34
|
+
variant: ['text.body-medium', 'text.body-small'],
|
|
35
|
+
bg: alpha('#616161', 0.9),
|
|
36
|
+
color: '#fff',
|
|
37
|
+
px: 2,
|
|
38
|
+
py: 1,
|
|
39
|
+
borderRadius: 'extra-small',
|
|
40
|
+
zIndex: 'tooltip',
|
|
41
|
+
...__css,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
if (!children) {
|
|
45
|
+
return (
|
|
46
|
+
<Box ref={forwardedRef} __css={cssStyle} {...otherProps}>
|
|
47
|
+
{label}
|
|
48
|
+
</Box>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
25
51
|
|
|
26
52
|
return (
|
|
27
53
|
<BaseTooltip
|
|
@@ -30,21 +56,12 @@ export const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(
|
|
|
30
56
|
ref={forwardedRef}
|
|
31
57
|
placement={placement}
|
|
32
58
|
distance={8}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
color: '#fff',
|
|
36
|
-
fontSize: [2, 2, 1],
|
|
37
|
-
fontFamily: 'body',
|
|
38
|
-
fontWeight: 'regular',
|
|
39
|
-
lineHeight: [1.2, 1.2, 1.33],
|
|
40
|
-
px: [3, 3, 2],
|
|
41
|
-
py: [2, 2, 1],
|
|
42
|
-
borderRadius: '4px',
|
|
43
|
-
zIndex: 'tooltip',
|
|
44
|
-
...__css,
|
|
45
|
-
}}
|
|
59
|
+
label={label}
|
|
60
|
+
__css={cssStyle}
|
|
46
61
|
{...otherProps}
|
|
47
|
-
|
|
62
|
+
>
|
|
63
|
+
{children}
|
|
64
|
+
</BaseTooltip>
|
|
48
65
|
);
|
|
49
66
|
}
|
|
50
67
|
);
|
package/src/color.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { SystemStyleObject } from '@styled-system/css';
|
|
2
2
|
import { get } from '@styled-system/css';
|
|
3
3
|
import { parseToRgb } from 'polished';
|
|
4
|
+
import { DARK_SCHEME_CLASS } from '@basic-ui/dynamic-theme';
|
|
4
5
|
|
|
5
|
-
import { DARK_THEME_CLASS } from './ColorMode';
|
|
6
6
|
import type { Theme } from './theme';
|
|
7
7
|
|
|
8
8
|
export const alpha =
|
|
@@ -12,22 +12,46 @@ export const alpha =
|
|
|
12
12
|
const color = get(theme, 'colors.' + colorString + '_rgb', colorString);
|
|
13
13
|
return `rgba(${color},${alphaValue})`;
|
|
14
14
|
}
|
|
15
|
+
if (color.startsWith('rgba(')) {
|
|
16
|
+
return color;
|
|
17
|
+
}
|
|
15
18
|
|
|
16
19
|
const rgb = parseToRgb(color);
|
|
17
20
|
return `rgba(${rgb.red},${rgb.green},${rgb.blue},${alphaValue})`;
|
|
18
21
|
};
|
|
19
22
|
|
|
23
|
+
export function mixColor(
|
|
24
|
+
baseColor: string,
|
|
25
|
+
overlayColor: string
|
|
26
|
+
): (theme: any) => string;
|
|
27
|
+
export function mixColor(
|
|
28
|
+
baseColor: string,
|
|
29
|
+
overlayColor: string,
|
|
30
|
+
overlayOpacity: number
|
|
31
|
+
): (theme: any) => string;
|
|
32
|
+
export function mixColor(
|
|
33
|
+
baseColor: string,
|
|
34
|
+
overlayColor: string,
|
|
35
|
+
overlayOpacity?: number
|
|
36
|
+
): (theme: any) => string {
|
|
37
|
+
return (theme) => {
|
|
38
|
+
baseColor = get(theme, `colors.${baseColor}`, baseColor);
|
|
39
|
+
overlayColor = overlayOpacity
|
|
40
|
+
? alpha(overlayColor, overlayOpacity)(theme)
|
|
41
|
+
: get(theme, `colors.${overlayColor}`, overlayColor);
|
|
42
|
+
|
|
43
|
+
return `linear-gradient(${overlayColor}, ${overlayColor}), ${baseColor}`;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
20
47
|
export function getColorOverlay(
|
|
21
48
|
theme: Theme,
|
|
22
49
|
baseColor: string,
|
|
23
50
|
overlayColor: string,
|
|
24
51
|
overlayOpacity: number
|
|
25
52
|
): SystemStyleObject {
|
|
26
|
-
baseColor = get(theme, `colors.${baseColor}`) || baseColor;
|
|
27
|
-
overlayColor = alpha(overlayColor, overlayOpacity)(theme);
|
|
28
|
-
|
|
29
53
|
return {
|
|
30
|
-
background:
|
|
54
|
+
background: mixColor(baseColor, overlayColor, overlayOpacity)(theme),
|
|
31
55
|
};
|
|
32
56
|
}
|
|
33
57
|
|
|
@@ -53,7 +77,7 @@ export function getDarkThemeBackgroundOverlay(
|
|
|
53
77
|
}
|
|
54
78
|
|
|
55
79
|
return {
|
|
56
|
-
[`.${
|
|
80
|
+
[`.${DARK_SCHEME_CLASS} &, &.${DARK_SCHEME_CLASS}`]: {
|
|
57
81
|
...getBackgroundOverlay(theme, backgroundOverlay, overlayColor),
|
|
58
82
|
},
|
|
59
83
|
};
|
package/src/index.ts
CHANGED
|
@@ -8,7 +8,6 @@ export * from './Button';
|
|
|
8
8
|
export * from './Combobox';
|
|
9
9
|
export * from './CheckBox';
|
|
10
10
|
export * from './Chip';
|
|
11
|
-
export * from './ColorMode';
|
|
12
11
|
export * from './Divider';
|
|
13
12
|
export * from './Dialog';
|
|
14
13
|
export * from './FloatingLabel';
|
|
@@ -17,14 +16,17 @@ export * from './Link';
|
|
|
17
16
|
export * from './List';
|
|
18
17
|
export * from './ListItem';
|
|
19
18
|
export * from './Menu';
|
|
19
|
+
export * from './NavRail';
|
|
20
20
|
export * from './NotchedOutline';
|
|
21
21
|
export * from './Paper';
|
|
22
|
+
export * from './Popover';
|
|
22
23
|
export * from './ProgressSpinner';
|
|
23
24
|
export * from './RadioButton';
|
|
24
25
|
export * from './Ripple';
|
|
25
26
|
export * from './Select';
|
|
26
27
|
export * from './SelectItem';
|
|
27
28
|
export * from './Skeleton';
|
|
29
|
+
export * from './Slider';
|
|
28
30
|
export * from './Snackbar';
|
|
29
31
|
export * from './Switch';
|
|
30
32
|
export * from './Tab';
|
|
@@ -33,5 +35,7 @@ export * from './Table';
|
|
|
33
35
|
export * from './Text';
|
|
34
36
|
export * from './TextField';
|
|
35
37
|
export * from './Tooltip';
|
|
38
|
+
export * from './motion';
|
|
36
39
|
export * from './theme';
|
|
37
40
|
export * from './color';
|
|
41
|
+
export * from './hooks/useAnimation';
|
package/src/motion.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const EASING_EMPHASIZED = 'cubic-bezier(0.2, 0, 0, 1)';
|
|
2
|
+
export const EASING_EMPHASIZED_ACCELERATE = 'cubic-bezier(0.3, 0, 0.8, 0.15)';
|
|
3
|
+
export const EASING_EMPHASIZED_DECELERATE = 'cubic-bezier(0.05, 0.7, 0.1, 1)';
|
|
4
|
+
export const EASING_LINEAR = 'cubic-bezier(0, 0, 1, 1)';
|
|
5
|
+
export const EASING_STANDARD = 'cubic-bezier(0.2, 0, 0, 1)';
|
|
6
|
+
export const EASING_STANDARD_ACCELERATE = 'cubic-bezier(0.3, 0, 1, 1)';
|
|
7
|
+
export const EASING_STANDARD_DECELERATE = 'cubic-bezier(0, 0, 0, 1)';
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Theme } from '../theme/theme';
|
|
2
|
+
|
|
3
|
+
export type ColorsObject = { [key: string]: string | ColorsObject };
|
|
4
|
+
export function extendColors(theme: Theme): ColorsObject {
|
|
5
|
+
const modifiedColors: ColorsObject = {};
|
|
6
|
+
function extractColors(colors: ColorsObject, arr: ColorsObject, root = '') {
|
|
7
|
+
function insert(key: string, value: string) {
|
|
8
|
+
const parts = key.split('-');
|
|
9
|
+
|
|
10
|
+
let obj: any = arr;
|
|
11
|
+
for (let i = 0; i < parts.length; i++) {
|
|
12
|
+
const part = parts[i];
|
|
13
|
+
const isLast = i === parts.length - 1;
|
|
14
|
+
|
|
15
|
+
if (isLast) {
|
|
16
|
+
if (typeof obj[part] === 'object') {
|
|
17
|
+
obj[part].DEFAULT = value;
|
|
18
|
+
} else {
|
|
19
|
+
obj[part] = value;
|
|
20
|
+
}
|
|
21
|
+
} else {
|
|
22
|
+
if (typeof obj[part] === 'string') {
|
|
23
|
+
obj[part] = { DEFAULT: obj[part] };
|
|
24
|
+
} else if (typeof obj[part] === 'undefined') {
|
|
25
|
+
obj[part] = {};
|
|
26
|
+
}
|
|
27
|
+
obj = obj[part];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
for (const key of Object.keys(colors)) {
|
|
33
|
+
if (key === 'modes') {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const c = colors[key];
|
|
38
|
+
if (typeof c === 'string') {
|
|
39
|
+
const varName = `--${root + key}--rgb`;
|
|
40
|
+
insert(key, `rgba(var(${varName}), <alpha-value>)`);
|
|
41
|
+
} else if (typeof c === 'object') {
|
|
42
|
+
const subColors: ColorsObject = {};
|
|
43
|
+
extractColors(c, subColors, root + key + '-');
|
|
44
|
+
arr[key] = subColors;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
extractColors(theme.colors as any, modifiedColors);
|
|
50
|
+
return modifiedColors;
|
|
51
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
import type { Config as TailwindConfig } from 'tailwindcss';
|
|
3
|
+
import { css } from '@styled-system/css';
|
|
4
|
+
|
|
5
|
+
import type { Theme } from '../theme';
|
|
6
|
+
import { extendColors } from './extendColors';
|
|
7
|
+
|
|
8
|
+
export type PluginOptions = {
|
|
9
|
+
theme?: Theme;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const textVariants = [
|
|
13
|
+
'display-large',
|
|
14
|
+
'display-medium',
|
|
15
|
+
'display-small',
|
|
16
|
+
'headline-large',
|
|
17
|
+
'headline-medium',
|
|
18
|
+
'headline-small',
|
|
19
|
+
'title-large',
|
|
20
|
+
'title-medium',
|
|
21
|
+
'title-small',
|
|
22
|
+
'label-large',
|
|
23
|
+
'label-medium',
|
|
24
|
+
'label-small',
|
|
25
|
+
'body-large',
|
|
26
|
+
'body-medium',
|
|
27
|
+
'body-small',
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
export default function generatePreset({
|
|
31
|
+
theme: basicUiTheme,
|
|
32
|
+
}: {
|
|
33
|
+
theme: Theme;
|
|
34
|
+
}): TailwindConfig {
|
|
35
|
+
return {
|
|
36
|
+
content: [],
|
|
37
|
+
darkMode: 'class',
|
|
38
|
+
theme: {
|
|
39
|
+
colors: {
|
|
40
|
+
...extendColors(basicUiTheme),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
plugins: [
|
|
44
|
+
plugin(function ({ addComponents }) {
|
|
45
|
+
for (const variant of textVariants) {
|
|
46
|
+
const themeStyle = basicUiTheme.text[variant];
|
|
47
|
+
if (themeStyle) {
|
|
48
|
+
addComponents({
|
|
49
|
+
[`.text-${variant}`]: css(themeStyle)(basicUiTheme) as any,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}),
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { extendColors } from '../extendColors';
|
|
2
|
+
|
|
3
|
+
test('extendColors', () => {
|
|
4
|
+
expect(
|
|
5
|
+
extendColors({
|
|
6
|
+
colors: {
|
|
7
|
+
primary: '#123456',
|
|
8
|
+
'primary-container': '#123456',
|
|
9
|
+
secondary: '#123456',
|
|
10
|
+
surface: '#123456',
|
|
11
|
+
'surface-container-lowest': '#123456',
|
|
12
|
+
'surface-container-low': '#123456',
|
|
13
|
+
'surface-container': '#123456',
|
|
14
|
+
'surface-container-high': '#123456',
|
|
15
|
+
'surface-container-highest': '#123456',
|
|
16
|
+
on: {
|
|
17
|
+
primary: '#123456',
|
|
18
|
+
'primary-container': '#123456',
|
|
19
|
+
surface: '#123456',
|
|
20
|
+
'surface-container-lowest': '#123456',
|
|
21
|
+
'surface-container-low': '#123456',
|
|
22
|
+
'surface-container': '#123456',
|
|
23
|
+
'surface-container-high': '#123456',
|
|
24
|
+
'surface-container-highest': '#123456',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
} as any)
|
|
28
|
+
).toMatchInlineSnapshot(`
|
|
29
|
+
Object {
|
|
30
|
+
"on": Object {
|
|
31
|
+
"primary": Object {
|
|
32
|
+
"DEFAULT": "rgba(var(--on-primary--rgb), <alpha-value>)",
|
|
33
|
+
"container": "rgba(var(--on-primary-container--rgb), <alpha-value>)",
|
|
34
|
+
},
|
|
35
|
+
"surface": Object {
|
|
36
|
+
"DEFAULT": "rgba(var(--on-surface--rgb), <alpha-value>)",
|
|
37
|
+
"container": Object {
|
|
38
|
+
"DEFAULT": "rgba(var(--on-surface-container--rgb), <alpha-value>)",
|
|
39
|
+
"high": "rgba(var(--on-surface-container-high--rgb), <alpha-value>)",
|
|
40
|
+
"highest": "rgba(var(--on-surface-container-highest--rgb), <alpha-value>)",
|
|
41
|
+
"low": "rgba(var(--on-surface-container-low--rgb), <alpha-value>)",
|
|
42
|
+
"lowest": "rgba(var(--on-surface-container-lowest--rgb), <alpha-value>)",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
"primary": Object {
|
|
47
|
+
"DEFAULT": "rgba(var(--primary--rgb), <alpha-value>)",
|
|
48
|
+
"container": "rgba(var(--primary-container--rgb), <alpha-value>)",
|
|
49
|
+
},
|
|
50
|
+
"secondary": "rgba(var(--secondary--rgb), <alpha-value>)",
|
|
51
|
+
"surface": Object {
|
|
52
|
+
"DEFAULT": "rgba(var(--surface--rgb), <alpha-value>)",
|
|
53
|
+
"container": Object {
|
|
54
|
+
"DEFAULT": "rgba(var(--surface-container--rgb), <alpha-value>)",
|
|
55
|
+
"high": "rgba(var(--surface-container-high--rgb), <alpha-value>)",
|
|
56
|
+
"highest": "rgba(var(--surface-container-highest--rgb), <alpha-value>)",
|
|
57
|
+
"low": "rgba(var(--surface-container-low--rgb), <alpha-value>)",
|
|
58
|
+
"lowest": "rgba(var(--surface-container-lowest--rgb), <alpha-value>)",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
}
|
|
62
|
+
`);
|
|
63
|
+
|
|
64
|
+
expect(
|
|
65
|
+
extendColors({
|
|
66
|
+
colors: {
|
|
67
|
+
primary: '#123456',
|
|
68
|
+
'primary-container': '#123456',
|
|
69
|
+
secondary: '#123456',
|
|
70
|
+
'surface-container-lowest': '#123456',
|
|
71
|
+
'surface-container-low': '#123456',
|
|
72
|
+
'surface-container-high': '#123456',
|
|
73
|
+
'surface-container-highest': '#123456',
|
|
74
|
+
'surface-container': '#123456',
|
|
75
|
+
surface: '#123456',
|
|
76
|
+
on: {
|
|
77
|
+
primary: '#123456',
|
|
78
|
+
'primary-container': '#123456',
|
|
79
|
+
surface: '#123456',
|
|
80
|
+
'surface-container-lowest': '#123456',
|
|
81
|
+
'surface-container-low': '#123456',
|
|
82
|
+
'surface-container': '#123456',
|
|
83
|
+
'surface-container-high': '#123456',
|
|
84
|
+
'surface-container-highest': '#123456',
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
} as any)
|
|
88
|
+
).toMatchInlineSnapshot(`
|
|
89
|
+
Object {
|
|
90
|
+
"on": Object {
|
|
91
|
+
"primary": Object {
|
|
92
|
+
"DEFAULT": "rgba(var(--on-primary--rgb), <alpha-value>)",
|
|
93
|
+
"container": "rgba(var(--on-primary-container--rgb), <alpha-value>)",
|
|
94
|
+
},
|
|
95
|
+
"surface": Object {
|
|
96
|
+
"DEFAULT": "rgba(var(--on-surface--rgb), <alpha-value>)",
|
|
97
|
+
"container": Object {
|
|
98
|
+
"DEFAULT": "rgba(var(--on-surface-container--rgb), <alpha-value>)",
|
|
99
|
+
"high": "rgba(var(--on-surface-container-high--rgb), <alpha-value>)",
|
|
100
|
+
"highest": "rgba(var(--on-surface-container-highest--rgb), <alpha-value>)",
|
|
101
|
+
"low": "rgba(var(--on-surface-container-low--rgb), <alpha-value>)",
|
|
102
|
+
"lowest": "rgba(var(--on-surface-container-lowest--rgb), <alpha-value>)",
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
"primary": Object {
|
|
107
|
+
"DEFAULT": "rgba(var(--primary--rgb), <alpha-value>)",
|
|
108
|
+
"container": "rgba(var(--primary-container--rgb), <alpha-value>)",
|
|
109
|
+
},
|
|
110
|
+
"secondary": "rgba(var(--secondary--rgb), <alpha-value>)",
|
|
111
|
+
"surface": Object {
|
|
112
|
+
"DEFAULT": "rgba(var(--surface--rgb), <alpha-value>)",
|
|
113
|
+
"container": Object {
|
|
114
|
+
"DEFAULT": "rgba(var(--surface-container--rgb), <alpha-value>)",
|
|
115
|
+
"high": "rgba(var(--surface-container-high--rgb), <alpha-value>)",
|
|
116
|
+
"highest": "rgba(var(--surface-container-highest--rgb), <alpha-value>)",
|
|
117
|
+
"low": "rgba(var(--surface-container-low--rgb), <alpha-value>)",
|
|
118
|
+
"lowest": "rgba(var(--surface-container-lowest--rgb), <alpha-value>)",
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
}
|
|
122
|
+
`);
|
|
123
|
+
});
|