react-carousel-query
Version:
A infinite carousel component made with react that handles the pagination for you.
451 lines (447 loc) • 12.6 kB
JavaScript
import React__default from 'react';
import { keyframes, Global } from '@storybook/theming';
const hsResizeObserverDummyAnimation = keyframes`0%{z-index:0}to{z-index:-1}`;
const getScrollAreaStyles = theme => ({
'html.os-html, html.os-html>.os-host': {
display: 'block',
overflow: 'hidden',
boxSizing: 'border-box',
height: '100%!important',
width: '100%!important',
minWidth: '100%!important',
minHeight: '100%!important',
margin: '0!important',
position: 'absolute!important'
},
'html.os-html>.os-host>.os-padding': {
position: 'absolute'
},
'body.os-dragging, body.os-dragging *': {
cursor: 'default'
},
'.os-host, .os-host-textarea': {
position: 'relative',
overflow: 'visible!important',
flexDirection: 'column',
flexWrap: 'nowrap',
justifyContent: 'flex-start',
alignContent: 'flex-start',
alignItems: 'flex-start'
},
'.os-host-flexbox': {
overflow: 'hidden!important',
display: 'flex'
},
'.os-host-flexbox>.os-size-auto-observer': {
height: 'inherit!important'
},
'.os-host-flexbox>.os-content-glue': {
flexGrow: 1,
flexShrink: 0
},
'.os-host-flexbox>.os-size-auto-observer, .os-host-flexbox>.os-content-glue': {
minHeight: 0,
minWidth: 0,
flexGrow: 0,
flexShrink: 1,
flexBasis: 'auto'
},
'#os-dummy-scrollbar-size': {
position: 'fixed',
opacity: 0,
visibility: 'hidden',
overflow: 'scroll',
height: 500,
width: 500
},
'#os-dummy-scrollbar-size>div': {
width: '200%',
height: '200%',
margin: 10
},
'#os-dummy-scrollbar-size, .os-viewport': {},
'.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size, .os-viewport-native-scrollbars-invisible.os-viewport': {
scrollbarWidth: 'none!important'
},
'.os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar, .os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar, .os-viewport-native-scrollbars-invisible#os-dummy-scrollbar-size::-webkit-scrollbar-corner, .os-viewport-native-scrollbars-invisible.os-viewport::-webkit-scrollbar-corner': {
display: 'none!important',
width: '0!important',
height: '0!important',
visibility: 'hidden!important',
background: '0 0!important'
},
'.os-content-glue': {
boxSizing: 'inherit',
maxHeight: '100%',
maxWidth: '100%',
width: '100%',
pointerEvents: 'none'
},
'.os-padding': {
boxSizing: 'inherit',
direction: 'inherit',
position: 'absolute',
overflow: 'visible',
padding: 0,
margin: 0,
left: 0,
top: 0,
bottom: 0,
right: 0,
width: 'auto!important',
height: 'auto!important',
zIndex: 1
},
'.os-host-overflow>.os-padding': {
overflow: 'hidden'
},
'.os-viewport': {
direction: 'inherit!important',
boxSizing: 'inherit!important',
resize: 'none!important',
outline: '0!important',
position: 'absolute',
overflow: 'hidden',
top: 0,
left: 0,
bottom: 0,
right: 0,
padding: 0,
margin: 0
},
'.os-content-arrange': {
position: 'absolute',
zIndex: -1,
minHeight: 1,
minWidth: 1,
pointerEvents: 'none'
},
'.os-content': {
direction: 'inherit',
boxSizing: 'border-box!important',
position: 'relative',
display: 'block',
height: '100%',
width: '100%',
visibility: 'visible'
},
'.os-content:before, .os-content:after': {
content: "''",
display: 'table',
width: 0,
height: 0,
lineHeight: 0,
fontSize: 0
},
'.os-content>.os-textarea': {
boxSizing: 'border-box!important',
direction: 'inherit!important',
background: '0 0!important',
outline: '0 transparent!important',
overflow: 'hidden!important',
position: 'absolute!important',
display: 'block!important',
top: '0!important',
left: '0!important',
margin: '0!important',
borderRadius: '0!important',
float: 'none!important',
filter: 'none!important',
border: '0!important',
resize: 'none!important',
transform: 'none!important',
maxWidth: 'none!important',
maxHeight: 'none!important',
boxShadow: 'none!important',
perspective: 'none!important',
opacity: '1!important',
zIndex: '1!important',
clip: 'auto!important',
verticalAlign: 'baseline!important',
padding: 0
},
'.os-host-rtl>.os-padding>.os-viewport>.os-content>.os-textarea': {
right: '0!important'
},
'.os-content>.os-textarea-cover': {
zIndex: -1,
pointerEvents: 'none'
},
'.os-content>.os-textarea[wrap=off]': {
whiteSpace: 'pre!important',
margin: '0!important'
},
'.os-text-inherit': {
fontFamily: 'inherit',
fontSize: 'inherit',
fontWeight: 'inherit',
fontStyle: 'inherit',
fontVariant: 'inherit',
textTransform: 'inherit',
textDecoration: 'inherit',
textIndent: 'inherit',
textAlign: 'inherit',
textShadow: 'inherit',
textOverflow: 'inherit',
letterSpacing: 'inherit',
wordSpacing: 'inherit',
lineHeight: 'inherit',
unicodeBidi: 'inherit',
direction: 'inherit',
color: 'inherit',
cursor: 'text'
},
'.os-resize-observer, .os-resize-observer-host': {
boxSizing: 'inherit',
display: 'block',
opacity: 0,
position: 'absolute',
top: 0,
left: 0,
height: '100%',
width: '100%',
overflow: 'hidden',
pointerEvents: 'none',
zIndex: -1
},
'.os-resize-observer-host': {
padding: 'inherit',
border: 'inherit',
borderColor: 'transparent',
borderStyle: 'solid',
boxSizing: 'border-box'
},
'.os-resize-observer-host:after': {
content: "''"
},
'.os-resize-observer-host>.os-resize-observer, .os-resize-observer-host:after': {
height: '200%',
width: '200%',
padding: 'inherit',
border: 'inherit',
margin: 0,
display: 'block',
boxSizing: 'content-box'
},
'.os-resize-observer.observed, object.os-resize-observer': {
boxSizing: 'border-box!important'
},
'.os-size-auto-observer': {
boxSizing: 'inherit!important',
height: '100%',
width: 'inherit',
maxWidth: 1,
position: 'relative',
float: 'left',
maxHeight: 1,
overflow: 'hidden',
zIndex: -1,
padding: 0,
margin: 0,
pointerEvents: 'none',
flexGrow: 'inherit',
flexShrink: 0,
flexBasis: 0
},
'.os-size-auto-observer>.os-resize-observer': {
width: '1000%',
height: '1000%',
minHeight: 1,
minWidth: 1
},
'.os-resize-observer-item': {
position: 'absolute',
top: 0,
right: 0,
bottom: 0,
left: 0,
overflow: 'hidden',
zIndex: -1,
opacity: 0,
direction: 'ltr!important',
flex: 'none!important'
},
'.os-resize-observer-item-final': {
position: 'absolute',
left: 0,
top: 0,
transition: 'none!important',
flex: 'none!important'
},
'.os-resize-observer': {
animationDuration: '.001s',
animationName: `${hsResizeObserverDummyAnimation}`
},
'.os-host-transition>.os-scrollbar, .os-host-transition>.os-scrollbar-corner': {
transition: 'opacity .3s,visibility .3s,top .3s,right .3s,bottom .3s,left .3s'
},
'html.os-html>.os-host>.os-scrollbar': {
position: 'absolute',
zIndex: 999999
},
'.os-scrollbar, .os-scrollbar-corner': {
position: 'absolute',
opacity: 1,
zIndex: 1
},
'.os-scrollbar-corner': {
bottom: 0,
right: 0,
height: 10,
width: 10,
backgroundColor: 'transparent'
},
'.os-scrollbar': {
pointerEvents: 'none',
padding: 2,
boxSizing: 'border-box',
background: 0
},
'.os-scrollbar-track': {
pointerEvents: 'auto',
position: 'relative',
height: '100%',
width: '100%',
padding: '0!important',
border: '0!important'
},
'.os-scrollbar-handle': {
pointerEvents: 'auto',
position: 'absolute',
width: '100%',
height: '100%'
},
'.os-scrollbar-handle-off, .os-scrollbar-track-off': {
pointerEvents: 'none'
},
'.os-scrollbar.os-scrollbar-unusable, .os-scrollbar.os-scrollbar-unusable *': {
pointerEvents: 'none!important'
},
'.os-scrollbar.os-scrollbar-unusable .os-scrollbar-handle': {
opacity: '0!important'
},
'.os-scrollbar-horizontal': {
bottom: 0,
left: 0,
right: 10,
height: 10
},
'.os-scrollbar-vertical': {
top: 0,
right: 0,
bottom: 10,
width: 10
},
'.os-host-rtl>.os-scrollbar-horizontal': {
right: 0
},
'.os-host-rtl>.os-scrollbar-vertical': {
right: 'auto',
left: 0
},
'.os-host-rtl>.os-scrollbar-corner': {
right: 'auto',
left: 0
},
'.os-scrollbar-auto-hidden, .os-padding+.os-scrollbar-corner, .os-host-resize-disabled.os-host-scrollbar-horizontal-hidden>.os-scrollbar-corner, .os-host-scrollbar-horizontal-hidden>.os-scrollbar-horizontal, .os-host-resize-disabled.os-host-scrollbar-vertical-hidden>.os-scrollbar-corner, .os-host-scrollbar-vertical-hidden>.os-scrollbar-vertical, .os-scrollbar-horizontal.os-scrollbar-auto-hidden+.os-scrollbar-vertical+.os-scrollbar-corner, .os-scrollbar-horizontal+.os-scrollbar-vertical.os-scrollbar-auto-hidden+.os-scrollbar-corner, .os-scrollbar-horizontal.os-scrollbar-auto-hidden+.os-scrollbar-vertical.os-scrollbar-auto-hidden+.os-scrollbar-corner': {
opacity: 0,
visibility: 'hidden',
pointerEvents: 'none'
},
'.os-scrollbar-corner-resize-both': {
cursor: 'nwse-resize'
},
'.os-host-rtl>.os-scrollbar-corner-resize-both': {
cursor: 'nesw-resize'
},
'.os-scrollbar-corner-resize-horizontal': {
cursor: 'ew-resize'
},
'.os-scrollbar-corner-resize-vertical': {
cursor: 'ns-resize'
},
'.os-dragging .os-scrollbar-corner.os-scrollbar-corner-resize': {
cursor: 'default'
},
'.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden>.os-scrollbar-vertical': {
top: 0,
bottom: 0
},
'.os-host-resize-disabled.os-host-scrollbar-vertical-hidden>.os-scrollbar-horizontal, .os-host-rtl.os-host-resize-disabled.os-host-scrollbar-vertical-hidden>.os-scrollbar-horizontal': {
right: 0,
left: 0
},
'.os-scrollbar:hover, .os-scrollbar-corner.os-scrollbar-corner-resize': {
opacity: '1!important',
visibility: 'visible!important'
},
'.os-scrollbar-corner.os-scrollbar-corner-resize': {
backgroundImage: 'linear-gradient(135deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.4) 100%)',
backgroundRepeat: 'no-repeat',
backgroundPosition: '100% 100%',
pointerEvents: 'auto!important'
},
'.os-host-rtl>.os-scrollbar-corner.os-scrollbar-corner-resize': {
transform: 'scale(-1,1)'
},
'.os-host-overflow': {
overflow: 'hidden!important'
},
'.os-theme-dark.os-host-rtl>.os-scrollbar-horizontal': {
left: 10,
right: 0
},
'.os-scrollbar.os-scrollbar-unusable': {
background: 0
},
'.os-scrollbar>.os-scrollbar-track': {
background: 0
},
'.os-scrollbar-horizontal>.os-scrollbar-track>.os-scrollbar-handle': {
minWidth: 30
},
'.os-scrollbar-vertical>.os-scrollbar-track>.os-scrollbar-handle': {
minHeight: 30
},
'.os-theme-dark.os-host-transition>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle': {
transition: 'background-color .3s'
},
'.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle, .os-scrollbar>.os-scrollbar-track': {
borderRadius: 10
},
'.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle': {
background: theme.color.mediumdark,
opacity: 0.5
},
'.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle': {
opacity: 0.6
},
'.os-scrollbar-horizontal .os-scrollbar-handle:before, .os-scrollbar-vertical .os-scrollbar-handle:before': {
content: "''",
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0,
display: 'block'
},
'.os-theme-dark.os-host-scrollbar-horizontal-hidden>.os-scrollbar-horizontal .os-scrollbar-handle:before, .os-theme-dark.os-host-scrollbar-vertical-hidden>.os-scrollbar-vertical .os-scrollbar-handle:before': {
display: 'none'
},
'.os-scrollbar-horizontal .os-scrollbar-handle:before': {
top: -6,
bottom: -2
},
'.os-scrollbar-vertical .os-scrollbar-handle:before': {
left: -6,
right: -2
},
'.os-host-rtl.os-scrollbar-vertical .os-scrollbar-handle:before': {
right: -6,
left: -2
}
});
const GlobalScrollAreaStyles = () => React__default.createElement(Global, {
styles: getScrollAreaStyles
});
export { GlobalScrollAreaStyles as default, getScrollAreaStyles };