@basic-ui/material 1.0.0-alpha.15 → 1.0.0-alpha.18
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 +296 -52
- package/build/cjs/index.js.map +1 -1
- package/build/esm/Alert/Alert.d.ts +1 -1
- package/build/esm/AppBar/AppBarButton.d.ts +1 -1
- package/build/esm/BottomSheet/BottomSheet.d.ts +1 -1
- package/build/esm/BottomSheet/BottomSheetSurface.d.ts +1 -1
- package/build/esm/Button/BaseButton.d.ts +1 -1
- package/build/esm/Button/BaseButton.js +1 -0
- package/build/esm/Button/BaseButton.js.map +1 -1
- package/build/esm/Button/Button.d.ts +1 -1
- package/build/esm/Button/ButtonGroup.d.ts +1 -1
- package/build/esm/Button/FilledButton.d.ts +1 -1
- package/build/esm/Button/OutlinedButton.d.ts +1 -1
- package/build/esm/Button/TransparentButton.d.ts +1 -1
- package/build/esm/CheckBox/CheckBox.d.ts +1 -1
- package/build/esm/Chip/ButtonChip.d.ts +1 -1
- package/build/esm/Chip/ChipBase.d.ts +1 -1
- package/build/esm/Chip/ChoiceChip.d.ts +1 -1
- package/build/esm/Combobox/Combobox.d.ts +7 -7
- package/build/esm/Combobox/Combobox.js +4 -3
- package/build/esm/Combobox/Combobox.js.map +1 -1
- package/build/esm/Dialog/Dialog.d.ts +1 -1
- package/build/esm/Dialog/DialogBackdrop.d.ts +1 -1
- package/build/esm/Dialog/DialogSurface.d.ts +1 -1
- package/build/esm/Dialog/Scrim.d.ts +1 -1
- package/build/esm/Divider/Divider.d.ts +1 -1
- package/build/esm/Link/Link.d.ts +1 -1
- package/build/esm/Link/Link.js +12 -0
- package/build/esm/Link/Link.js.map +1 -1
- package/build/esm/ListItem/ListItem.d.ts +3 -1
- package/build/esm/ListItem/ListItem.js +46 -43
- package/build/esm/ListItem/ListItem.js.map +1 -1
- package/build/esm/Menu/Menu.d.ts +4 -4
- package/build/esm/NavRail/NavRailItem.d.ts +3 -3
- package/build/esm/Paper/Paper.d.ts +1 -1
- package/build/esm/RadioButton/RadioGroup.d.ts +1 -1
- package/build/esm/Ripple/useRippleSurface.d.ts +1 -0
- package/build/esm/Ripple/useRippleSurface.js +17 -16
- package/build/esm/Ripple/useRippleSurface.js.map +1 -1
- package/build/esm/Select/Select.d.ts +1 -1
- package/build/esm/Select/Select.js +4 -0
- package/build/esm/Select/Select.js.map +1 -1
- package/build/esm/Select/SelectIcon.d.ts +1 -1
- package/build/esm/SelectItem/SelectItem.d.ts +5 -2
- package/build/esm/SelectItem/SelectItem.js +17 -4
- package/build/esm/SelectItem/SelectItem.js.map +1 -1
- package/build/esm/SelectionControl/SelectionControlText.d.ts +1 -1
- package/build/esm/Skeleton/Skeleton.d.ts +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 +1 -1
- package/build/esm/Switch/Switch.d.ts +1 -1
- package/build/esm/Tab/Tab.d.ts +1 -1
- package/build/esm/Tab/TabList.d.ts +1 -1
- package/build/esm/Tab/TabPanel.d.ts +1 -1
- package/build/esm/TabIndicator/TabIndicator.d.ts +1 -1
- package/build/esm/Table/TableHead.d.ts +1 -1
- package/build/esm/Table/TableRow.d.ts +1 -1
- package/build/esm/TextField/FilledContainer.d.ts +1 -1
- package/build/esm/TextField/HelperText.d.ts +1 -1
- package/build/esm/TextField/Input.d.ts +1 -1
- package/build/esm/TextField/OutlinedContainer.d.ts +1 -1
- package/build/esm/TextField/OutlinedContainer.js +13 -5
- package/build/esm/TextField/OutlinedContainer.js.map +1 -1
- package/build/esm/TextField/TextField.d.ts +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/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/ThemeBuilder.d.ts +2 -0
- package/build/esm/ThemeExplorer/ThemeBuilder.js +231 -93
- package/build/esm/ThemeExplorer/ThemeBuilder.js.map +1 -1
- package/build/esm/ThemeExplorer/components.js +4 -4
- 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/updateGoogleFonts.js +70 -0
- package/build/esm/ThemeExplorer/updateGoogleFonts.js.map +1 -0
- package/build/esm/ThemeExplorer/useDeferredColor.js +3 -4
- package/build/esm/ThemeExplorer/useDeferredColor.js.map +1 -1
- package/build/esm/Tooltip/Tooltip.d.ts +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/tsconfig-build.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/Button/BaseButton.tsx +1 -0
- package/src/Combobox/Combobox.tsx +5 -2
- package/src/Link/Link.tsx +12 -0
- package/src/ListItem/ListItem.tsx +48 -42
- package/src/Ripple/useRippleSurface.ts +8 -2
- package/src/Select/PaymentMethodSelect.story.tsx +17 -24
- package/src/Select/Select.tsx +6 -0
- package/src/SelectItem/SelectItem.tsx +13 -3
- package/src/Slider/Slider.story.tsx +36 -0
- package/src/Slider/Slider.tsx +275 -0
- package/src/Slider/index.ts +1 -0
- package/src/TextField/OutlinedContainer.tsx +8 -3
- 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 +2 -1
- package/src/ThemeExplorer/ThemeBuilder.tsx +218 -82
- package/src/ThemeExplorer/components.tsx +4 -4
- package/src/ThemeExplorer/googleFonts.ts +1436 -0
- package/src/ThemeExplorer/updateGoogleFonts.js +33 -0
- package/src/ThemeExplorer/useDeferredColor.tsx +3 -6
- package/src/index.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@basic-ui/material",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.18",
|
|
4
4
|
"description": "Accessible React Components used as building blocks for UI patterns",
|
|
5
5
|
"author": "Lucas Terra <lucasterra7@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@basic-ui/core": "^0.0.
|
|
31
|
-
"@basic-ui/dynamic-theme": "^0.0.
|
|
30
|
+
"@basic-ui/core": "^0.0.46",
|
|
31
|
+
"@basic-ui/dynamic-theme": "^0.0.7",
|
|
32
32
|
"@styled-system/should-forward-prop": "5.1.5",
|
|
33
33
|
"@types/styled-system": "^5.1.10",
|
|
34
34
|
"@types/styled-system__css": "^5.0.14",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"styled-system": "^5.1.5"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@basic-ui/color-picker": "^0.0.
|
|
39
|
+
"@basic-ui/color-picker": "^0.0.11",
|
|
40
40
|
"@emotion/react": "11.9.0",
|
|
41
41
|
"@emotion/styled": "11.8.1",
|
|
42
42
|
"@material/material-color-utilities": "0.1.1",
|
|
43
|
-
"polished": "^4.
|
|
43
|
+
"polished": "^4.2.2"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@babel/runtime": "^7.0.0",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"react": "^16.14.0 || ^17.0.0 || ^18.0.0",
|
|
53
53
|
"react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "bf937e7d984c93ab477435f50a01c5653382bd13"
|
|
56
56
|
}
|
|
@@ -30,7 +30,7 @@ import { TextField } from '../TextField';
|
|
|
30
30
|
import type { ListProps } from '../List';
|
|
31
31
|
import { List } from '../List';
|
|
32
32
|
import type { ListItemProps } from '../ListItem';
|
|
33
|
-
import {
|
|
33
|
+
import { listItemStyle } from '../ListItem';
|
|
34
34
|
import type { TextProps } from '../Text';
|
|
35
35
|
import { Text } from '../Text';
|
|
36
36
|
import type { ButtonProps } from '../Button';
|
|
@@ -120,6 +120,9 @@ export const ComboboxList = forwardRef<HTMLUListElement, ComboboxListProps>(
|
|
|
120
120
|
'[data-popper-placement="bottom"] &': {
|
|
121
121
|
transformOrigin: 'top center',
|
|
122
122
|
},
|
|
123
|
+
'& [data-reach-combobox-option=""]': {
|
|
124
|
+
...listItemStyle('primary'),
|
|
125
|
+
},
|
|
123
126
|
...__css,
|
|
124
127
|
}}
|
|
125
128
|
{...otherProps}
|
|
@@ -189,7 +192,7 @@ export const ComboboxOption = forwardRef<HTMLLIElement, ComboboxOptionProps>(
|
|
|
189
192
|
const { as = 'li', ...otherProps } = props;
|
|
190
193
|
return (
|
|
191
194
|
<ComboboxOptionCore
|
|
192
|
-
as={
|
|
195
|
+
as={Box}
|
|
193
196
|
ref={forwardedRef}
|
|
194
197
|
innerAs={as}
|
|
195
198
|
{...otherProps}
|
package/src/Link/Link.tsx
CHANGED
|
@@ -33,6 +33,12 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(
|
|
|
33
33
|
letterSpacing: 'inherit',
|
|
34
34
|
color,
|
|
35
35
|
textDecoration: 'underline',
|
|
36
|
+
background: 'none',
|
|
37
|
+
border: 'none',
|
|
38
|
+
borderRadius: 'extra-small',
|
|
39
|
+
'button&': {
|
|
40
|
+
cursor: 'pointer',
|
|
41
|
+
},
|
|
36
42
|
'&:hover,&:focus': {
|
|
37
43
|
textDecoration: 'none',
|
|
38
44
|
},
|
|
@@ -44,6 +50,12 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(
|
|
|
44
50
|
'&:active': {
|
|
45
51
|
bg: alpha(color, 0.16),
|
|
46
52
|
},
|
|
53
|
+
'&[aria-disabled="true"],&:disabled': {
|
|
54
|
+
color: 'on.surface',
|
|
55
|
+
opacity: 0.38,
|
|
56
|
+
cursor: 'default',
|
|
57
|
+
pointerEvents: 'none',
|
|
58
|
+
},
|
|
47
59
|
WebkitTapHighlightColor: 'transparent',
|
|
48
60
|
...__css,
|
|
49
61
|
}}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ElementType, ReactNode } from 'react';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
3
|
import { rem } from 'polished';
|
|
4
|
+
import type { SystemStyleObject } from '@styled-system/css';
|
|
4
5
|
|
|
5
6
|
import type { BoxProps } from '../Box';
|
|
6
7
|
import { Box } from '../Box';
|
|
@@ -17,6 +18,52 @@ export interface ListItemProps extends BoxProps {
|
|
|
17
18
|
rippleColor?: string;
|
|
18
19
|
}
|
|
19
20
|
|
|
21
|
+
export const listItemStyle = (
|
|
22
|
+
color: string,
|
|
23
|
+
hoverOpacity = 0.16,
|
|
24
|
+
focusOpacity = 0.24
|
|
25
|
+
): SystemStyleObject => ({
|
|
26
|
+
variant: 'text.label-large',
|
|
27
|
+
px: 3,
|
|
28
|
+
py: rem(12),
|
|
29
|
+
transition: 'background-color 75ms linear',
|
|
30
|
+
backgroundColor: 'transparent',
|
|
31
|
+
color: alpha('on.surface', 0.87),
|
|
32
|
+
cursor: 'pointer',
|
|
33
|
+
display: 'flex',
|
|
34
|
+
alignItems: 'center',
|
|
35
|
+
textDecoration: 'none',
|
|
36
|
+
':hover': {
|
|
37
|
+
backgroundColor: alpha('on.surface', hoverOpacity),
|
|
38
|
+
},
|
|
39
|
+
':focus': {
|
|
40
|
+
outline: 'none',
|
|
41
|
+
backgroundColor: alpha('on.surface', focusOpacity),
|
|
42
|
+
},
|
|
43
|
+
':active': {
|
|
44
|
+
backgroundColor: alpha('on.surface', focusOpacity),
|
|
45
|
+
},
|
|
46
|
+
'&[aria-selected="true"]': {
|
|
47
|
+
backgroundColor: alpha(color, 0.08),
|
|
48
|
+
color,
|
|
49
|
+
':hover': {
|
|
50
|
+
backgroundColor: alpha(color, hoverOpacity),
|
|
51
|
+
},
|
|
52
|
+
':focus': {
|
|
53
|
+
outline: 'none',
|
|
54
|
+
backgroundColor: alpha(color, focusOpacity),
|
|
55
|
+
},
|
|
56
|
+
':active': {
|
|
57
|
+
backgroundColor: alpha(color, focusOpacity),
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
'&[data-disabled]': {
|
|
61
|
+
color: alpha('on.surface', 0.6),
|
|
62
|
+
backgroundColor: 'transparent',
|
|
63
|
+
cursor: 'default',
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
|
|
20
67
|
export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
|
|
21
68
|
function ListItem(props, forwardedRef) {
|
|
22
69
|
const {
|
|
@@ -35,10 +82,6 @@ export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
|
|
|
35
82
|
const color = rippleColor || colorProp || 'primary';
|
|
36
83
|
const theme = useTheme();
|
|
37
84
|
|
|
38
|
-
const baseOpacity = 0.12;
|
|
39
|
-
const hoverOpacity = 0.16;
|
|
40
|
-
const focusOpacity = 0.24;
|
|
41
|
-
|
|
42
85
|
return (
|
|
43
86
|
<Box
|
|
44
87
|
ref={forwardedRef}
|
|
@@ -50,44 +93,7 @@ export const ListItem = forwardRef<HTMLDivElement, ListItemProps>(
|
|
|
50
93
|
disabled={disabled}
|
|
51
94
|
{...otherProps}
|
|
52
95
|
__css={{
|
|
53
|
-
|
|
54
|
-
px: 3,
|
|
55
|
-
py: rem(12),
|
|
56
|
-
transition: 'background-color 75ms linear',
|
|
57
|
-
backgroundColor: 'transparent',
|
|
58
|
-
color: alpha('on.surface', 0.87),
|
|
59
|
-
cursor: 'pointer',
|
|
60
|
-
':hover': {
|
|
61
|
-
backgroundColor: alpha('on.surface', hoverOpacity),
|
|
62
|
-
},
|
|
63
|
-
':focus': {
|
|
64
|
-
outline: 'none',
|
|
65
|
-
backgroundColor: alpha('on.surface', focusOpacity),
|
|
66
|
-
},
|
|
67
|
-
':active': {
|
|
68
|
-
backgroundColor: alpha('on.surface', baseOpacity + 0.12),
|
|
69
|
-
},
|
|
70
|
-
'&[aria-selected="true"]': {
|
|
71
|
-
backgroundColor: alpha(color, baseOpacity + 0.12),
|
|
72
|
-
color,
|
|
73
|
-
':hover': {
|
|
74
|
-
backgroundColor: alpha(color, hoverOpacity + 0.12),
|
|
75
|
-
},
|
|
76
|
-
':focus': {
|
|
77
|
-
outline: 'none',
|
|
78
|
-
backgroundColor: alpha(color, focusOpacity + 0.12),
|
|
79
|
-
},
|
|
80
|
-
':active': {
|
|
81
|
-
backgroundColor: alpha(color, baseOpacity + 0.24),
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
'&[data-disabled]': {
|
|
85
|
-
color: alpha('on.surface', 0.6),
|
|
86
|
-
backgroundColor: 'transparent',
|
|
87
|
-
cursor: 'default',
|
|
88
|
-
},
|
|
89
|
-
textDecoration: 'none',
|
|
90
|
-
WebkitTapHighlightColor: 'transparent',
|
|
96
|
+
...listItemStyle(color),
|
|
91
97
|
...__css,
|
|
92
98
|
}}
|
|
93
99
|
>
|
|
@@ -20,6 +20,7 @@ export interface UseRippleSurfaceOptions<T extends HTMLElement> {
|
|
|
20
20
|
rippleColor?: string;
|
|
21
21
|
rippleEnabled?: boolean;
|
|
22
22
|
center?: boolean;
|
|
23
|
+
mouseFocus?: boolean;
|
|
23
24
|
disabled?: boolean;
|
|
24
25
|
style?: CSSProperties;
|
|
25
26
|
onPointerDown?: PointerEventHandler<T>;
|
|
@@ -36,6 +37,8 @@ export function useRippleSurface<T extends HTMLElement>(
|
|
|
36
37
|
focusOpacity = 0.12,
|
|
37
38
|
pressedOpacity = 0.12,
|
|
38
39
|
rippleColor = 'on.surface',
|
|
40
|
+
// eslint-disable-next-line prefer-const
|
|
41
|
+
mouseFocus = false,
|
|
39
42
|
} = opts;
|
|
40
43
|
const {
|
|
41
44
|
onKeyDown,
|
|
@@ -67,6 +70,8 @@ export function useRippleSurface<T extends HTMLElement>(
|
|
|
67
70
|
...rippleProps,
|
|
68
71
|
});
|
|
69
72
|
|
|
73
|
+
const focusPseudoClass = mouseFocus ? 'focus' : 'focus-visible';
|
|
74
|
+
|
|
70
75
|
const css: SxStyleProp = useMemo(
|
|
71
76
|
() => ({
|
|
72
77
|
overflow: 'hidden',
|
|
@@ -93,7 +98,7 @@ export function useRippleSurface<T extends HTMLElement>(
|
|
|
93
98
|
'&:hover::before': {
|
|
94
99
|
opacity: hoverOpacity,
|
|
95
100
|
},
|
|
96
|
-
|
|
101
|
+
[`&:${focusPseudoClass}::before`]: {
|
|
97
102
|
opacity: focusOpacity,
|
|
98
103
|
},
|
|
99
104
|
...(!rippleEnabled && {
|
|
@@ -107,7 +112,7 @@ export function useRippleSurface<T extends HTMLElement>(
|
|
|
107
112
|
'&[aria-pressed="true"]:hover::before': {
|
|
108
113
|
opacity: pressedOpacity + hoverOpacity,
|
|
109
114
|
},
|
|
110
|
-
|
|
115
|
+
[`&[aria-pressed="true"]:${focusPseudoClass}::before`]: {
|
|
111
116
|
opacity: pressedOpacity + focusOpacity,
|
|
112
117
|
},
|
|
113
118
|
...(!rippleEnabled && {
|
|
@@ -133,6 +138,7 @@ export function useRippleSurface<T extends HTMLElement>(
|
|
|
133
138
|
animation,
|
|
134
139
|
baseOpacity,
|
|
135
140
|
focusOpacity,
|
|
141
|
+
focusPseudoClass,
|
|
136
142
|
hoverOpacity,
|
|
137
143
|
pressedOpacity,
|
|
138
144
|
rippleColor,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { forwardRef, useState } from 'react';
|
|
2
2
|
import type { ReactElement, ComponentType } from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
3
4
|
|
|
4
5
|
import type { SelectProps } from '../';
|
|
5
|
-
import {
|
|
6
|
+
import { Select, SelectItem } from '../';
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
9
|
title: 'components/Select/Complex',
|
|
@@ -176,25 +177,19 @@ export interface PaymentMethodSelectProps {
|
|
|
176
177
|
|
|
177
178
|
const logoWidth = 32;
|
|
178
179
|
const logoHeight = 24;
|
|
179
|
-
const LogoWrapper = ({
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
justifyContent: 'center',
|
|
193
|
-
}}
|
|
194
|
-
>
|
|
195
|
-
{children}
|
|
196
|
-
</Box>
|
|
197
|
-
);
|
|
180
|
+
const LogoWrapper = styled.div({
|
|
181
|
+
marginInlineEnd: '8px',
|
|
182
|
+
borderRadius: '2px',
|
|
183
|
+
overflow: 'hidden',
|
|
184
|
+
width: logoWidth,
|
|
185
|
+
height: logoHeight,
|
|
186
|
+
minWidth: logoWidth,
|
|
187
|
+
minHeight: logoHeight,
|
|
188
|
+
'& > svg': { width: logoWidth, height: logoWidth },
|
|
189
|
+
display: 'inline-flex',
|
|
190
|
+
alignItems: 'center',
|
|
191
|
+
justifyContent: 'center',
|
|
192
|
+
});
|
|
198
193
|
|
|
199
194
|
function SelectItemContent(props: PaymentMethod): ReactElement {
|
|
200
195
|
if (props.type === 'card') {
|
|
@@ -269,9 +264,7 @@ const PaymentMethodSelect = forwardRef<
|
|
|
269
264
|
>
|
|
270
265
|
{paymentMethods.map((m) => (
|
|
271
266
|
<SelectItem value={m.id} key={m.id}>
|
|
272
|
-
<
|
|
273
|
-
<SelectItemContent {...m} />
|
|
274
|
-
</Box>
|
|
267
|
+
<SelectItemContent {...m} />
|
|
275
268
|
</SelectItem>
|
|
276
269
|
))}
|
|
277
270
|
</Select>
|
|
@@ -300,7 +293,7 @@ export const PaymentMethodSelectControlled = () => {
|
|
|
300
293
|
'visa',
|
|
301
294
|
'unknown',
|
|
302
295
|
]) {
|
|
303
|
-
for (let i = 0; i <
|
|
296
|
+
for (let i = 0; i < 50; i++) {
|
|
304
297
|
paymentMethods.push({
|
|
305
298
|
type: 'card',
|
|
306
299
|
id: testCard + `_${i}`,
|
package/src/Select/Select.tsx
CHANGED
|
@@ -24,6 +24,7 @@ import { makeDefaultRender } from './defaultRender';
|
|
|
24
24
|
import type { BoxProps } from '../Box';
|
|
25
25
|
import { Box } from '../Box';
|
|
26
26
|
import { IconContainer } from '../TextField/IconContainer';
|
|
27
|
+
import { listItemStyle } from '../ListItem';
|
|
27
28
|
|
|
28
29
|
const componentMap = {
|
|
29
30
|
outlined: OutlinedContainer,
|
|
@@ -181,6 +182,11 @@ export const Select = forwardRef<
|
|
|
181
182
|
minWidth: buttonRef?.current?.offsetWidth,
|
|
182
183
|
}}
|
|
183
184
|
role="listbox"
|
|
185
|
+
__css={{
|
|
186
|
+
'& [data-menu-item=""]': {
|
|
187
|
+
...listItemStyle('primary'),
|
|
188
|
+
},
|
|
189
|
+
}}
|
|
184
190
|
>
|
|
185
191
|
{children}
|
|
186
192
|
</MenuList>
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { forwardRef } from 'react';
|
|
2
|
-
import { wrapEvent } from '@basic-ui/core';
|
|
2
|
+
import { wrapEvent, MenuItem as MenuItemCore } from '@basic-ui/core';
|
|
3
|
+
import type { MenuItemProps as MenuItemPropsCore } from '@basic-ui/core';
|
|
3
4
|
|
|
4
|
-
import type { MenuItemProps } from '../Menu';
|
|
5
|
-
import { MenuItem } from '../Menu';
|
|
6
5
|
import { useSelectContext } from '../Select/context';
|
|
6
|
+
import type { BoxProps } from '../Box';
|
|
7
|
+
import { Box } from '../Box';
|
|
8
|
+
|
|
9
|
+
type MenuItemProps = MenuItemPropsCore & BoxProps;
|
|
10
|
+
|
|
11
|
+
const MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(
|
|
12
|
+
({ as = 'li', ...props }, ref) => (
|
|
13
|
+
<MenuItemCore as={Box} innerAs={as} ref={ref} {...props} />
|
|
14
|
+
)
|
|
15
|
+
);
|
|
7
16
|
|
|
8
17
|
export type SelectItemProps = MenuItemProps;
|
|
9
18
|
|
|
@@ -50,6 +59,7 @@ export const SelectItem = forwardRef<HTMLLIElement, MenuItemProps>(
|
|
|
50
59
|
disabled={disabled}
|
|
51
60
|
ref={forwardedRef}
|
|
52
61
|
role="option"
|
|
62
|
+
aria-selected={selected ? 'true' : undefined}
|
|
53
63
|
selected={selected}
|
|
54
64
|
{...otherProps}
|
|
55
65
|
>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Slider, SliderMarker } from './';
|
|
2
|
+
// import './styles.css';
|
|
3
|
+
|
|
4
|
+
export default { title: 'components/Slider' };
|
|
5
|
+
|
|
6
|
+
export const Uncontrolled = () => <Slider />;
|
|
7
|
+
|
|
8
|
+
export const UncontrolledWithSteps = () => <Slider step={10} />;
|
|
9
|
+
|
|
10
|
+
export const UncontrolledWithMarks = () => (
|
|
11
|
+
<Slider>
|
|
12
|
+
<SliderMarker value={10} />
|
|
13
|
+
<SliderMarker value={20} />
|
|
14
|
+
<SliderMarker value={30} />
|
|
15
|
+
<SliderMarker value={40} />
|
|
16
|
+
<SliderMarker value={50} />
|
|
17
|
+
<SliderMarker value={60} />
|
|
18
|
+
<SliderMarker value={70} />
|
|
19
|
+
<SliderMarker value={80} />
|
|
20
|
+
<SliderMarker value={90} />
|
|
21
|
+
</Slider>
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
export const UncontrolledWithMarksAndSteps = () => (
|
|
25
|
+
<Slider step={10}>
|
|
26
|
+
<SliderMarker value={10} />
|
|
27
|
+
<SliderMarker value={20} />
|
|
28
|
+
<SliderMarker value={30} />
|
|
29
|
+
<SliderMarker value={40} />
|
|
30
|
+
<SliderMarker value={50} />
|
|
31
|
+
<SliderMarker value={60} />
|
|
32
|
+
<SliderMarker value={70} />
|
|
33
|
+
<SliderMarker value={80} />
|
|
34
|
+
<SliderMarker value={90} />
|
|
35
|
+
</Slider>
|
|
36
|
+
);
|