import { omit } from './omit' ; import { pick } from './pick' ; export function isCSSProp ( prop ) { return Object . keys ( cssProps ) . includes ( prop ) ; } export function pickCSSProps ( props ) { return pick ( props , ... Object . keys ( cssProps ) ) ; } export function omitCSSProps ( props ) { return omit ( props , ... Object . keys ( cssProps ) ) ; } export const pseudoProps = { _hover : ':hover' , _hoveractive : ':hover:active' , _focus : ':focus' , _visited : ':visited' , _active : ':active' , _disabled : ':disabled' , _groupHover : '[role=group]:hover &' , _groupActive : '[role=group]:active &' , _groupFocus : '[role=group]:focus &' , _groupVisited : '[role=group]:visited &' , _groupDisabled : '[role=group]:disabled &' , } ; export const platformProps = { _web : 'web' , _ios : 'ios' , _android : 'android' , _native : 'native' , } ; export const cssProps = { ... pseudoProps , ... platformProps , alignContent : 'align-content' , alignSelf : 'align-self' , alignItems : 'align-items' , alignX : 'align-x' , alignY : 'align-y' , altitude : 'altitude' , alignmentBaseline : 'alignment-baseline' , all : 'all' , animation : 'animation' , animationDelay : 'animation-delay' , animationDirection : 'animation-direction' , animationDuration : 'animation-duration' , animationFillMode : 'animation-fill-mode' , animationIterationCount : 'animation-iteration-count' , animationName : 'animation-name' , animationPlayState : 'animation-play-state' , animationTimingFunction : 'animation-timing-function' , appearance : 'appearance' , azimuth : 'azimuth' , backfaceVisibility : 'backface-visibility' , background : 'background' , backgroundAttachment : 'background-attachment' , backgroundBlendMode : 'background-blend-mode' , backgroundClip : 'background-clip' , backgroundColor : 'background-color' , backgroundImage : 'background-image' , backgroundImageTransform : 'background-image-transform' , backgroundOrigin : 'background-origin' , backgroundPosition : 'background-position' , backgroundRepeat : 'background-repeat' , backgroundSize : 'background-size' , baselineShift : 'baseline-shift' , blockSize : 'block-size' , blockStep : 'block-step' , blockStepAlign : 'block-step-align' , blockStepInsert : 'block-step-insert' , blockStepRound : 'block-step-round' , blockStepSize : 'block-step-size' , bookmarkLabel : 'bookmark-label' , bookmarkLevel : 'bookmark-level' , bookmarkState : 'bookmark-state' , border : 'border' , borderBlock : 'border-block' , borderBlockColor : 'border-block-color' , borderBlockEnd : 'border-block-end' , borderBlockEndColor : 'border-block-end-color' , borderBlockEndStyle : 'border-block-end-style' , borderBlockEndWidth : 'border-block-end-width' , borderBlockStart : 'border-block-start' , borderBlockStartColor : 'border-block-start-color' , borderBlockStartStyle : 'border-block-start-style' , borderBlockStartWidth : 'border-block-start-width' , borderBlockStyle : 'border-block-style' , borderBlockWidth : 'border-block-width' , borderBottom : 'border-bottom' , borderBottomColor : 'border-bottom-color' , borderBottomLeftRadius : 'border-bottom-left-radius' , borderBottomRightRadius : 'border-bottom-right-radius' , borderBottomStyle : 'border-bottom-style' , borderBottomWidth : 'border-bottom-width' , borderBoundary : 'border-boundary' , borderCollapse : 'border-collapse' , borderColor : 'border-color' , borderImage : 'border-image' , borderImageOutset : 'border-image-outset' , borderImageRepeat : 'border-image-repeat' , borderImageSlice : 'border-image-slice' , borderImageSource : 'border-image-source' , borderImageTransform : 'border-image-transform' , borderImageWidth : 'border-image-width' , borderInline : 'border-inline' , borderInlineColor : 'border-inline-color' , borderInlineEnd : 'border-inline-end' , borderInlineEndColor : 'border-inline-end-color' , borderInlineEndStyle : 'border-inline-end-style' , borderInlineEndWidth : 'border-inline-end-width' , borderInlineStart : 'border-inline-start' , borderInlineStartColor : 'border-inline-start-color' , borderInlineStartStyle : 'border-inline-start-style' , borderInlineStartWidth : 'border-inline-start-width' , borderInlineStyle : 'border-inline-style' , borderInlineWidth : 'border-inline-width' , borderLeft : 'border-left' , borderLeftColor : 'border-left-color' , borderLeftStyle : 'border-left-style' , borderLeftWidth : 'border-left-width' , borderRadius : 'border-radius' , borderRight : 'border-right' , borderRightColor : 'border-right-color' , borderRightStyle : 'border-right-style' , borderRightWidth : 'border-right-width' , borderSpacing : 'border-spacing' , borderStyle : 'border-style' , borderTop : 'border-top' , borderTopColor : 'border-top-color' , borderTopLeftRadius : 'border-top-left-radius' , borderTopRightRadius : 'border-top-right-radius' , borderTopStyle : 'border-top-style' , borderTopWidth : 'border-top-width' , borderTopRadius : 'border-top-radius' , borderRightRadius : 'border-right-radius' , borderLeftRadius : 'border-left-radius' , borderBottomRadius : 'border-bottom-radius' , borderWidth : 'border-width' , bottom : 'bottom' , boxDecorationBreak : 'box-decoration-break' , boxShadow : 'box-shadow' , boxSizing : 'box-sizing' , boxSnap : 'box-snap' , breakAfter : 'break-after' , breakBefore : 'break-before' , breakInside : 'break-inside' , captionSide : 'caption-side' , caret : 'caret' , caretAnimation : 'caret-animation' , caretColor : 'caret-color' , caretShape : 'caret-shape' , chains : 'chains' , clear : 'clear' , clip : 'clip' , clipPath : 'clip-path' , clipRule : 'clip-rule' , color : 'color' , colorAdjust : 'color-adjust' , colorInterpolationFilters : 'color-interpolation-filters' , columnCount : 'column-count' , columnFill : 'column-fill' , columnGap : 'column-gap' , columnRule : 'column-rule' , columnRuleColor : 'column-rule-color' , columnRuleStyle : 'column-rule-style' , columnRuleWidth : 'column-rule-width' , columnSpan : 'column-span' , columnWidth : 'column-width' , columns : 'columns' , contain : 'contain' , content : 'content' , continue : 'continue' , counterIncrement : 'counter-increment' , counterReset : 'counter-reset' , counterSet : 'counter-set' , cue : 'cue' , cueAfter : 'cue-after' , cueBefore : 'cue-before' , cursor : 'cursor' , direction : 'direction' , display : 'display' , dominantBaseline : 'dominant-baseline' , elevation : 'elevation' , emptyCells : 'empty-cells' , fill : 'fill' , fillBreak : 'fill-break' , fillColor : 'fill-color' , fillImage : 'fill-image' , fillOpacity : 'fill-opacity' , fillOrigin : 'fill-origin' , fillPosition : 'fill-position' , fillRepeat : 'fill-repeat' , fillRule : 'fill-rule' , fillSize : 'fill-size' , filter : 'filter' , flex : 'flex' , flexBasis : 'flex-basis' , flexDirection : 'flex-direction' , flexFlow : 'flex-flow' , flexGrow : 'flex-grow' , flexShrink : 'flex-shrink' , flexWrap : 'flex-wrap' , float : 'float' , floatDefer : 'float-defer' , floatOffset : 'float-offset' , floatReference : 'float-reference' , floodColor : 'flood-color' , floodOpacity : 'flood-opacity' , flow : 'flow' , flowFrom : 'flow-from' , flowInto : 'flow-into' , font : 'font' , fontFamily : 'font-family' , fontFeatureSettings : 'font-feature-settings' , fontKerning : 'font-kerning' , fontLanguageOverride : 'font-language-override' , fontMaxSize : 'font-max-size' , fontMinSize : 'font-min-size' , fontOpticalSizing : 'font-optical-sizing' , fontPalette : 'font-palette' , fontPresentation : 'font-presentation' , fontSize : 'font-size' , fontSizeAdjust : 'font-size-adjust' , fontStretch : 'font-stretch' , fontStyle : 'font-style' , fontSynthesis : 'font-synthesis' , fontVariant : 'font-variant' , fontVariantAlternates : 'font-variant-alternates' , fontVariantCaps : 'font-variant-caps' , fontVariantEastAsian : 'font-variant-east-asian' , fontVariantLigatures : 'font-variant-ligatures' , fontVariantNumeric : 'font-variant-numeric' , fontVariantPosition : 'font-variant-position' , fontVariationSettings : 'font-variation-settings' , fontWeight : 'font-weight' , footnoteDisplay : 'footnote-display' , footnotePolicy : 'footnote-policy' , gap : 'gap' , glyphOrientationVertical : 'glyph-orientation-vertical' , grid : 'grid' , gridArea : 'grid-area' , gridAutoColumns : 'grid-auto-columns' , gridAutoFlow : 'grid-auto-flow' , gridAutoRows : 'grid-auto-rows' , gridColumn : 'grid-column' , gridColumnEnd : 'grid-column-end' , gridColumnGap : 'grid-column-gap' , gridColumnStart : 'grid-column-start' , gridGap : 'grid-gap' , gridRow : 'grid-row' , gridRowEnd : 'grid-row-end' , gridRowGap : 'grid-row-gap' , gridRowStart : 'grid-row-start' , gridTemplate : 'grid-template' , gridTemplateAreas : 'grid-template-areas' , gridTemplateColumns : 'grid-template-columns' , gridTemplateRows : 'grid-template-rows' , hangingPunctuation : 'hanging-punctuation' , height : 'height' , hyphenateCharacter : 'hyphenate-character' , hyphenateLimitChars : 'hyphenate-limit-chars' , hyphenateLimitLast : 'hyphenate-limit-last' , hyphenateLimitLines : 'hyphenate-limit-lines' , hyphenateLimitZone : 'hyphenate-limit-zone' , hyphens : 'hyphens' , imageOrientation : 'image-orientation' , imageResolution : 'image-resolution' , initialLetter : 'initial-letter' , initialLetterAlign : 'initial-letter-align' , initialLetterWrap : 'initial-letter-wrap' , inlineSize : 'inline-size' , inset : 'inset' , insetBlock : 'inset-block' , insetBlockEnd : 'inset-block-end' , insetBlockStart : 'inset-block-start' , insetInline : 'inset-inline' , insetInlineEnd : 'inset-inline-end' , insetInlineStart : 'inset-inline-start' , isolation : 'isolation' , justifyContent : 'justify-content' , justifyItems : 'justify-items' , justifySelf : 'justify-self' , left : 'left' , letterSpacing : 'letter-spacing' , lightingColor : 'lighting-color' , lineBreak : 'line-break' , lineGrid : 'line-grid' , lineHeight : 'line-height' , lineHeightStep : 'line-height-step' , lineSnap : 'line-snap' , listStyle : 'list-style' , listStyleImage : 'list-style-image' , listStylePosition : 'list-style-position' , listStyleType : 'list-style-type' , margin : 'margin' , marginBlock : 'margin-block' , marginBlockEnd : 'margin-block-end' , marginBlockStart : 'margin-block-start' , marginBottom : 'margin-bottom' , marginInline : 'margin-inline' , marginInlineEnd : 'margin-inline-end' , marginInlineStart : 'margin-inline-start' , marginLeft : 'margin-left' , marginRight : 'margin-right' , marginTop : 'margin-top' , marginX : 'marginX' , marginY : 'marginY' , marker : 'marker' , markerEnd : 'marker-end' , markerKnockoutLeft : 'marker-knockout-left' , markerKnockoutRight : 'marker-knockout-right' , markerMid : 'marker-mid' , markerPattern : 'marker-pattern' , markerSegment : 'marker-segment' , markerSide : 'marker-side' , markerStart : 'marker-start' , marqueeDirection : 'marquee-direction' , marqueeLoop : 'marquee-loop' , marqueeSpeed : 'marquee-speed' , marqueeStyle : 'marquee-style' , mask : 'mask' , maskBorder : 'mask-border' , maskBorderMode : 'mask-border-mode' , maskBorderOutset : 'mask-border-outset' , maskBorderRepeat : 'mask-border-repeat' , maskBorderSlice : 'mask-border-slice' , maskBorderSource : 'mask-border-source' , maskBorderWidth : 'mask-border-width' , maskClip : 'mask-clip' , maskComposite : 'mask-composite' , maskImage : 'mask-image' , maskMode : 'mask-mode' , maskOrigin : 'mask-origin' , maskPosition : 'mask-position' , maskRepeat : 'mask-repeat' , maskSize : 'mask-size' , maskType : 'mask-type' , maxBlockSize : 'max-block-size' , maxHeight : 'max-height' , maxInlineSize : 'max-inline-size' , maxLines : 'max-lines' , maxWidth : 'max-width' , minBlockSize : 'min-block-size' , minHeight : 'min-height' , minInlineSize : 'min-inline-size' , minWidth : 'min-width' , mixBlendMode : 'mix-blend-mode' , navDown : 'nav-down' , navLeft : 'nav-left' , navRight : 'nav-right' , navUp : 'nav-up' , objectFit : 'object-fit' , objectPosition : 'object-position' , offset : 'offset' , offsetAfter : 'offset-after' , offsetAnchor : 'offset-anchor' , offsetBefore : 'offset-before' , offsetDistance : 'offset-distance' , offsetEnd : 'offset-end' , offsetPath : 'offset-path' , offsetPosition : 'offset-position' , offsetRotate : 'offset-rotate' , offsetStart : 'offset-start' , opacity : 'opacity' , order : 'order' , orphans : 'orphans' , outline : 'outline' , outlineColor : 'outline-color' , outlineOffset : 'outline-offset' , outlineStyle : 'outline-style' , outlineWidth : 'outline-width' , overflow : 'overflow' , overflowStyle : 'overflow-style' , overflowWrap : 'overflow-wrap' , overflowX : 'overflow-x' , overflowY : 'overflow-y' , padding : 'padding' , paddingBlock : 'padding-block' , paddingBlockEnd : 'padding-block-end' , paddingBlockStart : 'padding-block-start' , paddingBottom : 'padding-bottom' , paddingInline : 'padding-inline' , paddingInlineEnd : 'padding-inline-end' , paddingInlineStart : 'padding-inline-start' , paddingLeft : 'padding-left' , paddingRight : 'padding-right' , paddingTop : 'padding-top' , paddingX : 'paddingX' , paddingY : 'paddingY' , page : 'page' , pageBreakAfter : 'page-break-after' , pageBreakBefore : 'page-break-before' , pageBreakInside : 'page-break-inside' , pause : 'pause' , pauseAfter : 'pause-after' , pauseBefore : 'pause-before' , perspective : 'perspective' , perspectiveOrigin : 'perspective-origin' , pitch : 'pitch' , pitchRange : 'pitch-range' , placeContent : 'place-content' , placeItems : 'place-items' , placeSelf : 'place-self' , playDuring : 'play-during' , pointerEvents : 'pointer-events' , position : 'position' , presentationLevel : 'presentation-level' , quotes : 'quotes' , regionFragment : 'region-fragment' , resize : 'resize' , rest : 'rest' , restAfter : 'rest-after' , restBefore : 'rest-before' , richness : 'richness' , right : 'right' , rotation : 'rotation' , rotationPoint : 'rotation-point' , rowGap : 'row-gap' , rubyAlign : 'ruby-align' , rubyMerge : 'ruby-merge' , rubyPosition : 'ruby-position' , running : 'running' , scrollBehavior : 'scroll-behavior' , scrollPadding : 'scroll-padding' , scrollPaddingBlock : 'scroll-padding-block' , scrollPaddingBlockEnd : 'scroll-padding-block-end' , scrollPaddingBlockStart : 'scroll-padding-block-start' , scrollPaddingBottom : 'scroll-padding-bottom' , scrollPaddingInline : 'scroll-padding-inline' , scrollPaddingInlineEnd : 'scroll-padding-inline-end' , scrollPaddingInlineStart : 'scroll-padding-inline-start' , scrollPaddingLeft : 'scroll-padding-left' , scrollPaddingRight : 'scroll-padding-right' , scrollPaddingTop : 'scroll-padding-top' , scrollSnapAlign : 'scroll-snap-align' , scrollSnapMargin : 'scroll-snap-margin' , scrollSnapMarginBlock : 'scroll-snap-margin-block' , scrollSnapMarginBlockEnd : 'scroll-snap-margin-block-end' , scrollSnapMarginBlockStart : 'scroll-snap-margin-block-start' , scrollSnapMarginBottom : 'scroll-snap-margin-bottom' , scrollSnapMarginInline : 'scroll-snap-margin-inline' , scrollSnapMarginInlineEnd : 'scroll-snap-margin-inline-end' , scrollSnapMarginInlineStart : 'scroll-snap-margin-inline-start' , scrollSnapMarginLeft : 'scroll-snap-margin-left' , scrollSnapMarginRight : 'scroll-snap-margin-right' , scrollSnapMarginTop : 'scroll-snap-margin-top' , scrollSnapStop : 'scroll-snap-stop' , scrollSnapType : 'scroll-snap-type' , scrollbarGutter : 'scrollbar-gutter' , shapeImageThreshold : 'shape-image-threshold' , shapeInside : 'shape-inside' , shapeMargin : 'shape-margin' , shapeOutside : 'shape-outside' , speak : 'speak' , speakAs : 'speak-as' , speakHeader : 'speak-header' , speakNumeral : 'speak-numeral' , speakPunctuation : 'speak-punctuation' , speechRate : 'speech-rate' , stress : 'stress' , stringSet : 'string-set' , stroke : 'stroke' , strokeAlign : 'stroke-align' , strokeAlignment : 'stroke-alignment' , strokeBreak : 'stroke-break' , strokeColor : 'stroke-color' , strokeDashCorner : 'stroke-dash-corner' , strokeDashJustify : 'stroke-dash-justify' , strokeDashadjust : 'stroke-dashadjust' , strokeDasharray : 'stroke-dasharray' , strokeDashcorner : 'stroke-dashcorner' , strokeDashoffset : 'stroke-dashoffset' , strokeImage : 'stroke-image' , strokeLinecap : 'stroke-linecap' , strokeLinejoin : 'stroke-linejoin' , strokeMiterlimit : 'stroke-miterlimit' , strokeOpacity : 'stroke-opacity' , strokeOrigin : 'stroke-origin' , strokePosition : 'stroke-position' , strokeRepeat : 'stroke-repeat' , strokeSize : 'stroke-size' , strokeWidth : 'stroke-width' , tabSize : 'tab-size' , tableLayout : 'table-layout' , textAlign : 'text-align' , textAlignAll : 'text-align-all' , textAlignLast : 'text-align-last' , textCombineUpright : 'text-combine-upright' , textDecoration : 'text-decoration' , textDecorationColor : 'text-decoration-color' , textDecorationLine : 'text-decoration-line' , textDecorationSkip : 'text-decoration-skip' , textDecorationStyle : 'text-decoration-style' , textEmphasis : 'text-emphasis' , textEmphasisColor : 'text-emphasis-color' , textEmphasisPosition : 'text-emphasis-position' , textEmphasisStyle : 'text-emphasis-style' , textIndent : 'text-indent' , textJustify : 'text-justify' , textOrientation : 'text-orientation' , textOverflow : 'text-overflow' , textShadow : 'text-shadow' , textSpaceCollapse : 'text-space-collapse' , textSpaceTrim : 'text-space-trim' , textSpacing : 'text-spacing' , textTransform : 'text-transform' , textUnderlinePosition : 'text-underline-position' , textWrap : 'text-wrap' , top : 'top' , transform : 'transform' , transformBox : 'transform-box' , transformOrigin : 'transform-origin' , transformStyle : 'transform-style' , transition : 'transition' , transitionDelay : 'transition-delay' , transitionDuration : 'transition-duration' , transitionProperty : 'transition-property' , transitionTimingFunction : 'transition-timing-function' , unicodeBidi : 'unicode-bidi' , userSelect : 'user-select' , verticalAlign : 'vertical-align' , visibility : 'visibility' , voiceBalance : 'voice-balance' , voiceDuration : 'voice-duration' , voiceFamily : 'voice-family' , voicePitch : 'voice-pitch' , voiceRange : 'voice-range' , voiceRate : 'voice-rate' , voiceStress : 'voice-stress' , voiceVolume : 'voice-volume' , volume : 'volume' , whiteSpace : 'white-space' , widows : 'widows' , width : 'width' , willChange : 'will-change' , wordBreak : 'word-break' , wordSpacing : 'word-spacing' , wordWrap : 'word-wrap' , wrapAfter : 'wrap-after' , wrapBefore : 'wrap-before' , wrapFlow : 'wrap-flow' , wrapInside : 'wrap-inside' , wrapThrough : 'wrap-through' , writingMode : 'writing-mode' , zIndex : 'z-index' , } ;