@a-type/ui 4.0.2 → 4.0.5
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/dist/cjs/components/dialog/Dialog.d.ts +4 -3
- package/dist/cjs/components/dialog/Dialog.js +4 -2
- package/dist/cjs/components/dialog/Dialog.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.stories.d.ts +1 -1
- package/dist/cjs/components/dialog/Dialog.stories.js +2 -1
- package/dist/cjs/components/dialog/Dialog.stories.js.map +1 -1
- package/dist/cjs/components/icon/Icon.stories.d.ts +1 -1
- package/dist/cjs/components/icon/generated/IconSpritesheet.js +1 -1
- package/dist/cjs/components/icon/generated/IconSpritesheet.js.map +1 -1
- package/dist/cjs/components/icon/generated/iconNames.d.ts +1 -1
- package/dist/cjs/components/icon/generated/iconNames.js +2 -0
- package/dist/cjs/components/icon/generated/iconNames.js.map +1 -1
- package/dist/cjs/components/scrollArea/ScrollArea.d.ts +10 -4
- package/dist/cjs/components/scrollArea/ScrollArea.js +15 -7
- package/dist/cjs/components/scrollArea/ScrollArea.js.map +1 -1
- package/dist/cjs/components/scrollArea/ScrollArea.stories.d.ts +1 -0
- package/dist/cjs/components/scrollArea/ScrollArea.stories.js +13 -2
- package/dist/cjs/components/scrollArea/ScrollArea.stories.js.map +1 -1
- package/dist/css/main.css +2 -2
- package/dist/esm/components/dialog/Dialog.d.ts +4 -3
- package/dist/esm/components/dialog/Dialog.js +4 -2
- package/dist/esm/components/dialog/Dialog.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.stories.d.ts +1 -1
- package/dist/esm/components/dialog/Dialog.stories.js +2 -1
- package/dist/esm/components/dialog/Dialog.stories.js.map +1 -1
- package/dist/esm/components/icon/Icon.stories.d.ts +1 -1
- package/dist/esm/components/icon/generated/IconSpritesheet.js +1 -1
- package/dist/esm/components/icon/generated/IconSpritesheet.js.map +1 -1
- package/dist/esm/components/icon/generated/iconNames.d.ts +1 -1
- package/dist/esm/components/icon/generated/iconNames.js +2 -0
- package/dist/esm/components/icon/generated/iconNames.js.map +1 -1
- package/dist/esm/components/scrollArea/ScrollArea.d.ts +10 -4
- package/dist/esm/components/scrollArea/ScrollArea.js +15 -7
- package/dist/esm/components/scrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/components/scrollArea/ScrollArea.stories.d.ts +1 -0
- package/dist/esm/components/scrollArea/ScrollArea.stories.js +13 -2
- package/dist/esm/components/scrollArea/ScrollArea.stories.js.map +1 -1
- package/package.json +1 -1
- package/src/components/dialog/Dialog.stories.tsx +5 -0
- package/src/components/dialog/Dialog.tsx +17 -2
- package/src/components/icon/generated/IconSpritesheet.tsx +17 -1
- package/src/components/icon/generated/iconNames.ts +2 -0
- package/src/components/scrollArea/ScrollArea.stories.tsx +96 -71
- package/src/components/scrollArea/ScrollArea.tsx +37 -10
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
+
import { Box } from '../box/Box.js';
|
|
4
|
+
import { Button } from '../button/Button.js';
|
|
5
|
+
import { Input } from '../input/Input.js';
|
|
3
6
|
import { ScrollArea } from './ScrollArea.js';
|
|
4
7
|
|
|
5
8
|
const meta = {
|
|
@@ -25,80 +28,102 @@ type Story = StoryObj<{ direction: 'vertical' | 'horizontal' | 'both' }>;
|
|
|
25
28
|
export const Default: Story = {
|
|
26
29
|
render({ direction }) {
|
|
27
30
|
return (
|
|
28
|
-
<ScrollArea
|
|
31
|
+
<ScrollArea
|
|
32
|
+
direction={direction}
|
|
33
|
+
style={{ height: '200px', width: '400px' }}
|
|
34
|
+
>
|
|
35
|
+
<ScrollArea.Content
|
|
36
|
+
className={clsx(
|
|
37
|
+
direction === 'horizontal' && 'w-10000px',
|
|
38
|
+
direction === 'both' && 'w-800px',
|
|
39
|
+
)}
|
|
40
|
+
>
|
|
41
|
+
<Content />
|
|
42
|
+
</ScrollArea.Content>
|
|
43
|
+
</ScrollArea>
|
|
44
|
+
);
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const ConstraintTest: Story = {
|
|
49
|
+
render({ direction }) {
|
|
50
|
+
return (
|
|
51
|
+
<ScrollArea direction={direction} className="w-300px h-300px">
|
|
29
52
|
<ScrollArea.Content>
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
>
|
|
36
|
-
<p>
|
|
37
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non
|
|
38
|
-
risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing
|
|
39
|
-
nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas
|
|
40
|
-
ligula massa, varius a, semper congue, euismod non, mi. Proin
|
|
41
|
-
porttitor, orci nec nonummy molestie, enim est eleifend mi, non
|
|
42
|
-
fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa,
|
|
43
|
-
scelerisque vitae, consequat in, pretium a, enim. Pellentesque
|
|
44
|
-
congue. Ut in risus volutpat libero pharetra tempor. Cras
|
|
45
|
-
vestibulum bibendum augue. Praesent egestas leo in pede. Praesent
|
|
46
|
-
blandit odio eu enim. Pellentesque sed dui ut augue blandit
|
|
47
|
-
sodales. Vestibulum ante ipsum primis in faucibus orci luctus et
|
|
48
|
-
ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed
|
|
49
|
-
pede pellentesque fermentum. Maecenas adipiscing ante non diam
|
|
50
|
-
sollicitudin ornare. Morbi in sem quis dui placerat ornare.
|
|
51
|
-
Pellentesque odio nisi, euismod in, pharetra a, ultricies in,
|
|
52
|
-
diam. Sed arcu. Cras consectetur. Vivamus fermentum nibh in augue.
|
|
53
|
-
Praesent a lacus at urna consequat rhoncus. Morbi dapibus sapien
|
|
54
|
-
vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget
|
|
55
|
-
metus. Vestibulum commodo. Ut rhoncus gravida arcu.
|
|
56
|
-
</p>
|
|
57
|
-
<p>
|
|
58
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non
|
|
59
|
-
risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing
|
|
60
|
-
nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas
|
|
61
|
-
ligula massa, varius a, semper congue, euismod non, mi. Proin
|
|
62
|
-
porttitor, orci nec nonummy molestie, enim est eleifend mi, non
|
|
63
|
-
fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa,
|
|
64
|
-
scelerisque vitae, consequat in, pretium a, enim. Pellentesque
|
|
65
|
-
congue. Ut in risus volutpat libero pharetra tempor. Cras
|
|
66
|
-
vestibulum bibendum augue. Praesent egestas leo in pede. Praesent
|
|
67
|
-
blandit odio eu enim. Pellentesque sed dui ut augue blandit
|
|
68
|
-
sodales. Vestibulum ante ipsum primis in faucibus orci luctus et
|
|
69
|
-
ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed
|
|
70
|
-
pede pellentesque fermentum. Maecenas adipiscing ante non diam
|
|
71
|
-
sollicitudin ornare. Morbi in sem quis dui placerat ornare.
|
|
72
|
-
Pellentesque odio nisi, euismod in, pharetra a, ultricies in,
|
|
73
|
-
diam. Sed arcu. Cras consectetur. Vivamus fermentum nibh in augue.
|
|
74
|
-
Praesent a lacus at urna consequat rhoncus. Morbi dapibus sapien
|
|
75
|
-
vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget
|
|
76
|
-
metus. Vestibulum commodo. Ut rhoncus gravida arcu.
|
|
77
|
-
</p>
|
|
78
|
-
<p>
|
|
79
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non
|
|
80
|
-
risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing
|
|
81
|
-
nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas
|
|
82
|
-
ligula massa, varius a, semper congue, euismod non, mi. Proin
|
|
83
|
-
porttitor, orci nec nonummy molestie, enim est eleifend mi, non
|
|
84
|
-
fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa,
|
|
85
|
-
scelerisque vitae, consequat in, pretium a, enim. Pellentesque
|
|
86
|
-
congue. Ut in risus volutpat libero pharetra tempor. Cras
|
|
87
|
-
vestibulum bibendum augue. Praesent egestas leo in pede. Praesent
|
|
88
|
-
blandit odio eu enim. Pellentesque sed dui ut augue blandit
|
|
89
|
-
sodales. Vestibulum ante ipsum primis in faucibus orci luctus et
|
|
90
|
-
ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed
|
|
91
|
-
pede pellentesque fermentum. Maecenas adipiscing ante non diam
|
|
92
|
-
sollicitudin ornare. Morbi in sem quis dui placerat ornare.
|
|
93
|
-
Pellentesque odio nisi, euismod in, pharetra a, ultricies in,
|
|
94
|
-
diam. Sed arcu. Cras consectetur. Vivamus fermentum nibh in augue.
|
|
95
|
-
Praesent a lacus at urna consequat rhoncus. Morbi dapibus sapien
|
|
96
|
-
vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget
|
|
97
|
-
metus. Vestibulum commodo. Ut rhoncus gravida arcu.
|
|
98
|
-
</p>
|
|
99
|
-
</div>
|
|
53
|
+
<Box gap>
|
|
54
|
+
<Input placeholder="Test input" />
|
|
55
|
+
<Button>Submit</Button>
|
|
56
|
+
</Box>
|
|
57
|
+
<Content />
|
|
100
58
|
</ScrollArea.Content>
|
|
101
59
|
</ScrollArea>
|
|
102
60
|
);
|
|
103
61
|
},
|
|
104
62
|
};
|
|
63
|
+
|
|
64
|
+
function Content() {
|
|
65
|
+
return (
|
|
66
|
+
<>
|
|
67
|
+
<p>
|
|
68
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus.
|
|
69
|
+
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies
|
|
70
|
+
sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius
|
|
71
|
+
a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy
|
|
72
|
+
molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat.
|
|
73
|
+
Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium
|
|
74
|
+
a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra
|
|
75
|
+
tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede.
|
|
76
|
+
Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit
|
|
77
|
+
sodales. Vestibulum ante ipsum primis in faucibus orci luctus et
|
|
78
|
+
ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede
|
|
79
|
+
pellentesque fermentum. Maecenas adipiscing ante non diam sollicitudin
|
|
80
|
+
ornare. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi,
|
|
81
|
+
euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consectetur.
|
|
82
|
+
Vivamus fermentum nibh in augue. Praesent a lacus at urna consequat
|
|
83
|
+
rhoncus. Morbi dapibus sapien vel ante. Aliquam erat volutpat.
|
|
84
|
+
Pellentesque sagittis ligula eget metus. Vestibulum commodo. Ut rhoncus
|
|
85
|
+
gravida arcu.
|
|
86
|
+
</p>
|
|
87
|
+
<p>
|
|
88
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus.
|
|
89
|
+
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies
|
|
90
|
+
sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius
|
|
91
|
+
a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy
|
|
92
|
+
molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat.
|
|
93
|
+
Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium
|
|
94
|
+
a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra
|
|
95
|
+
tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede.
|
|
96
|
+
Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit
|
|
97
|
+
sodales. Vestibulum ante ipsum primis in faucibus orci luctus et
|
|
98
|
+
ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede
|
|
99
|
+
pellentesque fermentum. Maecenas adipiscing ante non diam sollicitudin
|
|
100
|
+
ornare. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi,
|
|
101
|
+
euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consectetur.
|
|
102
|
+
Vivamus fermentum nibh in augue. Praesent a lacus at urna consequat
|
|
103
|
+
rhoncus. Morbi dapibus sapien vel ante. Aliquam erat volutpat.
|
|
104
|
+
Pellentesque sagittis ligula eget metus. Vestibulum commodo. Ut rhoncus
|
|
105
|
+
gravida arcu.
|
|
106
|
+
</p>
|
|
107
|
+
<p>
|
|
108
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus.
|
|
109
|
+
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies
|
|
110
|
+
sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius
|
|
111
|
+
a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy
|
|
112
|
+
molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat.
|
|
113
|
+
Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium
|
|
114
|
+
a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra
|
|
115
|
+
tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede.
|
|
116
|
+
Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit
|
|
117
|
+
sodales. Vestibulum ante ipsum primis in faucibus orci luctus et
|
|
118
|
+
ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede
|
|
119
|
+
pellentesque fermentum. Maecenas adipiscing ante non diam sollicitudin
|
|
120
|
+
ornare. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi,
|
|
121
|
+
euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consectetur.
|
|
122
|
+
Vivamus fermentum nibh in augue. Praesent a lacus at urna consequat
|
|
123
|
+
rhoncus. Morbi dapibus sapien vel ante. Aliquam erat volutpat.
|
|
124
|
+
Pellentesque sagittis ligula eget metus. Vestibulum commodo. Ut rhoncus
|
|
125
|
+
gravida arcu.
|
|
126
|
+
</p>
|
|
127
|
+
</>
|
|
128
|
+
);
|
|
129
|
+
}
|
|
@@ -1,35 +1,37 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ScrollArea as BaseScrollArea,
|
|
3
|
+
ScrollAreaContentProps,
|
|
3
4
|
ScrollAreaRootProps,
|
|
4
5
|
ScrollAreaScrollbarProps,
|
|
5
6
|
} from '@base-ui/react/scroll-area';
|
|
7
|
+
import { Ref } from 'react';
|
|
6
8
|
import { withClassName } from '../../hooks.js';
|
|
7
9
|
|
|
8
10
|
export type * from '@base-ui/react/scroll-area';
|
|
9
11
|
|
|
10
12
|
export const ScrollAreaRoot = withClassName(
|
|
11
13
|
BaseScrollArea.Root,
|
|
12
|
-
'layer-components:(min-w-0 min-h-0 flex flex-col)',
|
|
14
|
+
'layer-components:(min-w-0 min-h-0 flex flex-col box-border)',
|
|
13
15
|
);
|
|
14
16
|
|
|
15
17
|
export const ScrollAreaViewport = withClassName(
|
|
16
18
|
BaseScrollArea.Viewport,
|
|
17
|
-
'layer-components:(h-full outline-none
|
|
19
|
+
'layer-components:(h-full outline-none min-h-0)',
|
|
18
20
|
'layer-components:focus-visible:(outline-none ring-2 ring-accent)',
|
|
19
21
|
);
|
|
20
22
|
|
|
21
23
|
export const ScrollAreaVerticalFades = withClassName(
|
|
22
24
|
'div',
|
|
23
25
|
'layer-components:(pointer-events-none absolute inset-0 [--scroll-area-overflow-y-start:inherit] [--scroll-area-overflow-y-end:inherit])',
|
|
24
|
-
'layer-components:before:(content-empty [--scroll-area-overflow-y-start:inherit] top-0 block left-0 w-full absolute transition-height h-[min(40px,var(--scroll-area-overflow-y-start
|
|
25
|
-
'layer-components:after:(content-empty [--scroll-area-overflow-y-end:inherit] bottom-0 block left-0 w-full absolute transition-height h-[min(40px,var(--scroll-area-overflow-y-end
|
|
26
|
+
'layer-components:before:(content-empty [--scroll-area-overflow-y-start:inherit] top-0 block left-0 w-full absolute transition-height h-[min(40px,var(--scroll-area-overflow-y-start,40px))] bg-gradient-to-b bg-gradient-from-bg bg-gradient-to-transparent)',
|
|
27
|
+
'layer-components:after:(content-empty [--scroll-area-overflow-y-end:inherit] bottom-0 block left-0 w-full absolute transition-height h-[min(40px,var(--scroll-area-overflow-y-end,40px))] bg-gradient-to-t bg-gradient-from-bg bg-gradient-to-transparent)',
|
|
26
28
|
);
|
|
27
29
|
|
|
28
30
|
export const ScrollAreaHorizontalFades = withClassName(
|
|
29
31
|
'div',
|
|
30
32
|
'layer-components:(pointer-events-none absolute inset-0 [--scroll-area-overflow-x-start:inherit] [--scroll-area-overflow-x-end:inherit])',
|
|
31
|
-
'layer-components:before:(content-empty [--scroll-area-overflow-x-start:inherit] left-0 block top-0 h-full absolute transition-width w-[min(40px,var(--scroll-area-overflow-x-start
|
|
32
|
-
'layer-components:after:(content-empty [--scroll-area-overflow-x-end:inherit] right-0 block top-0 h-full absolute transition-width w-[min(40px,var(--scroll-area-overflow-x-end
|
|
33
|
+
'layer-components:before:(content-empty [--scroll-area-overflow-x-start:inherit] left-0 block top-0 h-full absolute transition-width w-[min(40px,var(--scroll-area-overflow-x-start,40px))] bg-gradient-to-r bg-gradient-from-bg bg-gradient-to-transparent)',
|
|
34
|
+
'layer-components:after:(content-empty [--scroll-area-overflow-x-end:inherit] right-0 block top-0 h-full absolute transition-width w-[min(40px,var(--scroll-area-overflow-x-end,40px))] bg-gradient-to-l bg-gradient-from-bg bg-gradient-to-transparent)',
|
|
33
35
|
);
|
|
34
36
|
|
|
35
37
|
export const ScrollAreaViewportFades = () => (
|
|
@@ -39,9 +41,20 @@ export const ScrollAreaViewportFades = () => (
|
|
|
39
41
|
</>
|
|
40
42
|
);
|
|
41
43
|
|
|
44
|
+
const BaseScrollContentWithoutMinWidth = (
|
|
45
|
+
props: ScrollAreaContentProps & { ref?: Ref<HTMLDivElement> },
|
|
46
|
+
) => (
|
|
47
|
+
<BaseScrollArea.Content
|
|
48
|
+
{...props}
|
|
49
|
+
style={{ ...props.style, minWidth: undefined }}
|
|
50
|
+
/>
|
|
51
|
+
);
|
|
52
|
+
BaseScrollContentWithoutMinWidth.displayName = 'ScrollAreaContent';
|
|
53
|
+
|
|
42
54
|
export const ScrollAreaContent = withClassName(
|
|
43
|
-
|
|
55
|
+
BaseScrollContentWithoutMinWidth,
|
|
44
56
|
'layer-components:(flex flex-col)',
|
|
57
|
+
'layer-components:[[data-scroll-direction=horizontal]>&,[data-scroll-direction=both]>&]:min-w-min-content',
|
|
45
58
|
);
|
|
46
59
|
|
|
47
60
|
export const ScrollAreaThumb = withClassName(
|
|
@@ -80,17 +93,31 @@ export const ScrollAreaCorner = withClassName(
|
|
|
80
93
|
|
|
81
94
|
const ScrollAreaDefault = ({
|
|
82
95
|
disableFades,
|
|
96
|
+
direction,
|
|
83
97
|
...props
|
|
84
98
|
}: ScrollAreaRootProps & {
|
|
85
99
|
disableFades?: boolean;
|
|
100
|
+
direction?: 'vertical' | 'horizontal' | 'both';
|
|
86
101
|
}) => (
|
|
87
102
|
<ScrollAreaRoot {...props}>
|
|
88
|
-
<ScrollAreaViewport
|
|
103
|
+
<ScrollAreaViewport
|
|
104
|
+
style={{
|
|
105
|
+
overflow:
|
|
106
|
+
direction === 'vertical'
|
|
107
|
+
? 'clip scroll'
|
|
108
|
+
: direction === 'horizontal'
|
|
109
|
+
? 'scroll clip'
|
|
110
|
+
: 'scroll scroll',
|
|
111
|
+
}}
|
|
112
|
+
data-scroll-direction={direction}
|
|
113
|
+
>
|
|
89
114
|
{props.children}
|
|
90
115
|
{!disableFades && <ScrollAreaViewportFades />}
|
|
91
116
|
</ScrollAreaViewport>
|
|
92
|
-
<ScrollAreaScrollbar />
|
|
93
|
-
|
|
117
|
+
{direction !== 'horizontal' && <ScrollAreaScrollbar />}
|
|
118
|
+
{direction !== 'vertical' && (
|
|
119
|
+
<ScrollAreaScrollbar orientation="horizontal" />
|
|
120
|
+
)}
|
|
94
121
|
<ScrollAreaCorner />
|
|
95
122
|
</ScrollAreaRoot>
|
|
96
123
|
);
|