123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760typet=(string*string*string)listletaddnamejsxNameitem(map:t)=matchitemwithSomev->(name,jsxName,v)::map|None->map[@@@ocamlformat"disable"]letmake?(azimuth:stringoption)?(background:stringoption)?(backgroundAttachment:stringoption)?(backgroundColor:stringoption)?(backgroundImage:stringoption)?(backgroundPosition:stringoption)?(backgroundRepeat:stringoption)?(border:stringoption)?(borderCollapse:stringoption)?(borderColor:stringoption)?(borderSpacing:stringoption)?(borderStyle:stringoption)?(borderTop:stringoption)?(borderRight:stringoption)?(borderBottom:stringoption)?(borderLeft:stringoption)?(borderTopColor:stringoption)?(borderRightColor:stringoption)?(borderBottomColor:stringoption)?(borderLeftColor:stringoption)?(borderTopStyle:stringoption)?(borderRightStyle:stringoption)?(borderBottomStyle:stringoption)?(borderLeftStyle:stringoption)?(borderTopWidth:stringoption)?(borderRightWidth:stringoption)?(borderBottomWidth:stringoption)?(borderLeftWidth:stringoption)?(borderWidth:stringoption)?(bottom:stringoption)?(captionSide:stringoption)?(clear:stringoption)?(color:stringoption)?(content:stringoption)?(counterIncrement:stringoption)?(counterReset:stringoption)?(cue:stringoption)?(cueAfter:stringoption)?(cueBefore:stringoption)?(cursor:stringoption)?(direction:stringoption)?(display:stringoption)?(elevation:stringoption)?(emptyCells:stringoption)?(float:stringoption)?(font:stringoption)?(fontFamily:stringoption)?(fontSize:stringoption)?(fontSizeAdjust:stringoption)?(fontStretch:stringoption)?(fontStyle:stringoption)?(fontVariant:stringoption)?(fontWeight:stringoption)?(height:stringoption)?(left:stringoption)?(letterSpacing:stringoption)?(lineHeight:stringoption)?(listStyle:stringoption)?(listStyleImage:stringoption)?(listStylePosition:stringoption)?(listStyleType:stringoption)?(margin:stringoption)?(marginTop:stringoption)?(marginRight:stringoption)?(marginBottom:stringoption)?(marginLeft:stringoption)?(markerOffset:stringoption)?(marks:stringoption)?(maxHeight:stringoption)?(maxWidth:stringoption)?(minHeight:stringoption)?(minWidth:stringoption)?(orphans:stringoption)?(outline:stringoption)?(outlineColor:stringoption)?(outlineStyle:stringoption)?(outlineWidth:stringoption)?(overflow:stringoption)?(overflowX:stringoption)?(overflowY:stringoption)?(padding:stringoption)?(paddingTop:stringoption)?(paddingRight:stringoption)?(paddingBottom:stringoption)?(paddingLeft:stringoption)?(page:stringoption)?(pageBreakAfter:stringoption)?(pageBreakBefore:stringoption)?(pageBreakInside:stringoption)?(pause:stringoption)?(pauseAfter:stringoption)?(pauseBefore:stringoption)?(pitch:stringoption)?(pitchRange:stringoption)?(playDuring:stringoption)?(position:stringoption)?(quotes:stringoption)?(richness:stringoption)?(right:stringoption)?(size:stringoption)?(speak:stringoption)?(speakHeader:stringoption)?(speakNumeral:stringoption)?(speakPunctuation:stringoption)?(speechRate:stringoption)?(stress:stringoption)?(tableLayout:stringoption)?(textAlign:stringoption)?(textDecoration:stringoption)?(textIndent:stringoption)?(textShadow:stringoption)?(textTransform:stringoption)?(top:stringoption)?(unicodeBidi:stringoption)?(verticalAlign:stringoption)?(visibility:stringoption)?(voiceFamily:stringoption)?(volume:stringoption)?(whiteSpace:stringoption)?(widows:stringoption)?(width:stringoption)?(wordSpacing:stringoption)?(zIndex:stringoption)?(opacity:stringoption)?(backgroundOrigin:stringoption)?(backgroundSize:stringoption)?(backgroundClip:stringoption)?(borderRadius:stringoption)?(borderTopLeftRadius:stringoption)?(borderTopRightRadius:stringoption)?(borderBottomLeftRadius:stringoption)?(borderBottomRightRadius:stringoption)?(borderImage:stringoption)?(borderImageSource:stringoption)?(borderImageSlice:stringoption)?(borderImageWidth:stringoption)?(borderImageOutset:stringoption)?(borderImageRepeat:stringoption)?(boxShadow:stringoption)?(columns:stringoption)?(columnCount:stringoption)?(columnFill:stringoption)?(columnGap:stringoption)?(columnRule:stringoption)?(columnRuleColor:stringoption)?(columnRuleStyle:stringoption)?(columnRuleWidth:stringoption)?(columnSpan:stringoption)?(columnWidth:stringoption)?(breakAfter:stringoption)?(breakBefore:stringoption)?(breakInside:stringoption)?(rest:stringoption)?(restAfter:stringoption)?(restBefore:stringoption)?(speakAs:stringoption)?(voiceBalance:stringoption)?(voiceDuration:stringoption)?(voicePitch:stringoption)?(voiceRange:stringoption)?(voiceRate:stringoption)?(voiceStress:stringoption)?(voiceVolume:stringoption)?(objectFit:stringoption)?(objectPosition:stringoption)?(imageResolution:stringoption)?(imageOrientation:stringoption)?(alignContent:stringoption)?(alignItems:stringoption)?(alignSelf:stringoption)?(flex:stringoption)?(flexBasis:stringoption)?(flexDirection:stringoption)?(flexFlow:stringoption)?(flexGrow:stringoption)?(flexShrink:stringoption)?(flexWrap:stringoption)?(justifyContent:stringoption)?(order:stringoption)?(textDecorationColor:stringoption)?(textDecorationLine:stringoption)?(textDecorationSkip:stringoption)?(textDecorationStyle:stringoption)?(textEmphasis:stringoption)?(textEmphasisColor:stringoption)?(textEmphasisPosition:stringoption)?(textEmphasisStyle:stringoption)?(textUnderlinePosition:stringoption)?(fontFeatureSettings:stringoption)?(fontKerning:stringoption)?(fontLanguageOverride:stringoption)?(fontSynthesis:stringoption)?(forntVariantAlternates:stringoption)?(fontVariantCaps:stringoption)?(fontVariantEastAsian:stringoption)?(fontVariantLigatures:stringoption)?(fontVariantNumeric:stringoption)?(fontVariantPosition:stringoption)?(all:stringoption)?(textCombineUpright:stringoption)?(textOrientation:stringoption)?(writingMode:stringoption)?(shapeImageThreshold:stringoption)?(shapeMargin:stringoption)?(shapeOutside:stringoption)?(mask:stringoption)?(maskBorder:stringoption)?(maskBorderMode:stringoption)?(maskBorderOutset:stringoption)?(maskBorderRepeat:stringoption)?(maskBorderSlice:stringoption)?(maskBorderSource:stringoption)?(maskBorderWidth:stringoption)?(maskClip:stringoption)?(maskComposite:stringoption)?(maskImage:stringoption)?(maskMode:stringoption)?(maskOrigin:stringoption)?(maskPosition:stringoption)?(maskRepeat:stringoption)?(maskSize:stringoption)?(maskType:stringoption)?(backgroundBlendMode:stringoption)?(isolation:stringoption)?(mixBlendMode:stringoption)?(boxDecorationBreak:stringoption)?(boxSizing:stringoption)?(caretColor:stringoption)?(navDown:stringoption)?(navLeft:stringoption)?(navRight:stringoption)?(navUp:stringoption)?(outlineOffset:stringoption)?(resize:stringoption)?(textOverflow:stringoption)?(grid:stringoption)?(gridArea:stringoption)?(gridAutoColumns:stringoption)?(gridAutoFlow:stringoption)?(gridAutoRows:stringoption)?(gridColumn:stringoption)?(gridColumnEnd:stringoption)?(gridColumnGap:stringoption)?(gridColumnStart:stringoption)?(gridGap:stringoption)?(gridRow:stringoption)?(gridRowEnd:stringoption)?(gridRowGap:stringoption)?(gridRowStart:stringoption)?(gridTemplate:stringoption)?(gridTemplateAreas:stringoption)?(gridTemplateColumns:stringoption)?(gridTemplateRows:stringoption)?(willChange:stringoption)?(hangingPunctuation:stringoption)?(hyphens:stringoption)?(lineBreak:stringoption)?(overflowWrap:stringoption)?(tabSize:stringoption)?(textAlignLast:stringoption)?(textJustify:stringoption)?(wordBreak:stringoption)?(wordWrap:stringoption)?(animation:stringoption)?(animationDelay:stringoption)?(animationDirection:stringoption)?(animationDuration:stringoption)?(animationFillMode:stringoption)?(animationIterationCount:stringoption)?(animationName:stringoption)?(animationPlayState:stringoption)?(animationTimingFunction:stringoption)?(transition:stringoption)?(transitionDelay:stringoption)?(transitionDuration:stringoption)?(transitionProperty:stringoption)?(transitionTimingFunction:stringoption)?(backfaceVisibility:stringoption)?(perspective:stringoption)?(perspectiveOrigin:stringoption)?(transform:stringoption)?(transformOrigin:stringoption)?(transformStyle:stringoption)?(justifyItems:stringoption)?(justifySelf:stringoption)?(placeContent:stringoption)?(placeItems:stringoption)?(placeSelf:stringoption)?(appearance:stringoption)?(caret:stringoption)?(caretAnimation:stringoption)?(caretShape:stringoption)?(userSelect:stringoption)?(maxLines:stringoption)?(marqueeDirection:stringoption)?(marqueeLoop:stringoption)?(marqueeSpeed:stringoption)?(marqueeStyle:stringoption)?(overflowStyle:stringoption)?(rotation:stringoption)?(rotationPoint:stringoption)?(alignmentBaseline:stringoption)?(baselineShift:stringoption)?(clip:stringoption)?(clipPath:stringoption)?(clipRule:stringoption)?(colorInterpolation:stringoption)?(colorInterpolationFilters:stringoption)?(colorProfile:stringoption)?(colorRendering:stringoption)?(dominantBaseline:stringoption)?(fill:stringoption)?(fillOpacity:stringoption)?(fillRule:stringoption)?(filter:stringoption)?(floodColor:stringoption)?(floodOpacity:stringoption)?(glyphOrientationHorizontal:stringoption)?(glyphOrientationVertical:stringoption)?(imageRendering:stringoption)?(kerning:stringoption)?(lightingColor:stringoption)?(markerEnd:stringoption)?(markerMid:stringoption)?(markerStart:stringoption)?(pointerEvents:stringoption)?(shapeRendering:stringoption)?(stopColor:stringoption)?(stopOpacity:stringoption)?(stroke:stringoption)?(strokeDasharray:stringoption)?(strokeDashoffset:stringoption)?(strokeLinecap:stringoption)?(strokeLinejoin:stringoption)?(strokeMiterlimit:stringoption)?(strokeOpacity:stringoption)?(strokeWidth:stringoption)?(textAnchor:stringoption)?(textRendering:stringoption)?(rubyAlign:stringoption)?(rubyMerge:stringoption)?(rubyPosition:stringoption)()=(*
The order of addition matters since it will need to be the same order as
the JS object defined in https://github.com/reasonml/reason-react/blob/3327dc214905c4b2863b19807aaac375633645cf/src/dOMStyle.re
The following shell script can be run from the reason-react repository to generate the calls to "add" below:
for style in $(cat src/dOMStyle.re | grep "~" | sed 's/.*\~\([^:]*\):.*/\1/'); do
dashed=$(echo "$style" | sed 's/\([A-Z]\)/-\L\1/g')
echo "|> add \"$dashed\" $style"
done
*)[]|>add"azimuth""azimuth"azimuth|>add"background""background"background|>add"background-attachment""backgroundAttachment"backgroundAttachment|>add"background-color""backgroundColor"backgroundColor|>add"background-image""backgroundImage"backgroundImage|>add"background-position""backgroundPosition"backgroundPosition|>add"background-repeat""backgroundRepeat"backgroundRepeat|>add"border""border"border|>add"border-collapse""borderCollapse"borderCollapse|>add"border-color""borderColor"borderColor|>add"border-spacing""borderSpacing"borderSpacing|>add"border-style""borderStyle"borderStyle|>add"border-top""borderTop"borderTop|>add"border-right""borderRight"borderRight|>add"border-bottom""borderBottom"borderBottom|>add"border-left""borderLeft"borderLeft|>add"border-top-color""borderTopColor"borderTopColor|>add"border-right-color""borderRightColor"borderRightColor|>add"border-bottom-color""borderBottomColor"borderBottomColor|>add"border-left-color""borderLeftColor"borderLeftColor|>add"border-top-style""borderTopStyle"borderTopStyle|>add"border-right-style""borderRightStyle"borderRightStyle|>add"border-bottom-style""borderBottomStyle"borderBottomStyle|>add"border-left-style""borderLeftStyle"borderLeftStyle|>add"border-top-width""borderTopWidth"borderTopWidth|>add"border-right-width""borderRightWidth"borderRightWidth|>add"border-bottom-width""borderBottomWidth"borderBottomWidth|>add"border-left-width""borderLeftWidth"borderLeftWidth|>add"border-width""borderWidth"borderWidth|>add"bottom""bottom"bottom|>add"caption-side""captionSide"captionSide|>add"clear""clear"clear|>add"clip""clip"clip|>add"color""color"color|>add"content""content"content|>add"counter-increment""counterIncrement"counterIncrement|>add"counter-reset""counterReset"counterReset|>add"cue""cue"cue|>add"cue-after""cueAfter"cueAfter|>add"cue-before""cueBefore"cueBefore|>add"cursor""cursor"cursor|>add"direction""direction"direction|>add"display""display"display|>add"elevation""elevation"elevation|>add"empty-cells""emptyCells"emptyCells|>add"float""float"float|>add"font""font"font|>add"font-family""fontFamily"fontFamily|>add"font-size""fontSize"fontSize|>add"font-size-adjust""fontSizeAdjust"fontSizeAdjust|>add"font-stretch""fontStretch"fontStretch|>add"font-style""fontStyle"fontStyle|>add"font-variant""fontVariant"fontVariant|>add"font-weight""fontWeight"fontWeight|>add"height""height"height|>add"left""left"left|>add"letter-spacing""letterSpacing"letterSpacing|>add"line-height""lineHeight"lineHeight|>add"list-style""listStyle"listStyle|>add"list-style-image""listStyleImage"listStyleImage|>add"list-style-position""listStylePosition"listStylePosition|>add"list-style-type""listStyleType"listStyleType|>add"margin""margin"margin|>add"margin-top""marginTop"marginTop|>add"margin-right""marginRight"marginRight|>add"margin-bottom""marginBottom"marginBottom|>add"margin-left""marginLeft"marginLeft|>add"marker-offset""markerOffset"markerOffset|>add"marks""marks"marks|>add"max-height""maxHeight"maxHeight|>add"max-width""maxWidth"maxWidth|>add"min-height""minHeight"minHeight|>add"min-width""minWidth"minWidth|>add"orphans""orphans"orphans|>add"outline""outline"outline|>add"outline-color""outlineColor"outlineColor|>add"outline-style""outlineStyle"outlineStyle|>add"outline-width""outlineWidth"outlineWidth|>add"overflow""overflow"overflow|>add"overflow-x""overflowX"overflowX|>add"overflow-y""overflowY"overflowY|>add"padding""padding"padding|>add"padding-top""paddingTop"paddingTop|>add"padding-right""paddingRight"paddingRight|>add"padding-bottom""paddingBottom"paddingBottom|>add"padding-left""paddingLeft"paddingLeft|>add"page""page"page|>add"page-break-after""pageBreakAfter"pageBreakAfter|>add"page-break-before""pageBreakBefore"pageBreakBefore|>add"page-break-inside""pageBreakInside"pageBreakInside|>add"pause""pause"pause|>add"pause-after""pauseAfter"pauseAfter|>add"pause-before""pauseBefore"pauseBefore|>add"pitch""pitch"pitch|>add"pitch-range""pitchRange"pitchRange|>add"play-during""playDuring"playDuring|>add"position""position"position|>add"quotes""quotes"quotes|>add"richness""richness"richness|>add"right""right"right|>add"size""size"size|>add"speak""speak"speak|>add"speak-header""speakHeader"speakHeader|>add"speak-numeral""speakNumeral"speakNumeral|>add"speak-punctuation""speakPunctuation"speakPunctuation|>add"speech-rate""speechRate"speechRate|>add"stress""stress"stress|>add"table-layout""tableLayout"tableLayout|>add"text-align""textAlign"textAlign|>add"text-decoration""textDecoration"textDecoration|>add"text-indent""textIndent"textIndent|>add"text-shadow""textShadow"textShadow|>add"text-transform""textTransform"textTransform|>add"top""top"top|>add"unicode-bidi""unicodeBidi"unicodeBidi|>add"vertical-align""verticalAlign"verticalAlign|>add"visibility""visibility"visibility|>add"voice-family""voiceFamily"voiceFamily|>add"volume""volume"volume|>add"white-space""whiteSpace"whiteSpace|>add"widows""widows"widows|>add"width""width"width|>add"word-spacing""wordSpacing"wordSpacing|>add"z-index""zIndex"zIndex|>add"opacity""opacity"opacity|>add"background-origin""backgroundOrigin"backgroundOrigin|>add"background-size""backgroundSize"backgroundSize|>add"background-clip""backgroundClip"backgroundClip|>add"border-radius""borderRadius"borderRadius|>add"border-top-left-radius""borderTopLeftRadius"borderTopLeftRadius|>add"border-top-right-radius""borderTopRightRadius"borderTopRightRadius|>add"border-bottom-left-radius""borderBottomLeftRadius"borderBottomLeftRadius|>add"border-bottom-right-radius""borderBottomRightRadius"borderBottomRightRadius|>add"border-image""borderImage"borderImage|>add"border-image-source""borderImageSource"borderImageSource|>add"border-image-slice""borderImageSlice"borderImageSlice|>add"border-image-width""borderImageWidth"borderImageWidth|>add"border-image-outset""borderImageOutset"borderImageOutset|>add"border-image-repeat""borderImageRepeat"borderImageRepeat|>add"box-shadow""boxShadow"boxShadow|>add"columns""columns"columns|>add"column-count""columnCount"columnCount|>add"column-fill""columnFill"columnFill|>add"column-gap""columnGap"columnGap|>add"column-rule""columnRule"columnRule|>add"column-rule-color""columnRuleColor"columnRuleColor|>add"column-rule-style""columnRuleStyle"columnRuleStyle|>add"column-rule-width""columnRuleWidth"columnRuleWidth|>add"column-span""columnSpan"columnSpan|>add"column-width""columnWidth"columnWidth|>add"break-after""breakAfter"breakAfter|>add"break-before""breakBefore"breakBefore|>add"break-inside""breakInside"breakInside|>add"rest""rest"rest|>add"rest-after""restAfter"restAfter|>add"rest-before""restBefore"restBefore|>add"speak-as""speakAs"speakAs|>add"voice-balance""voiceBalance"voiceBalance|>add"voice-duration""voiceDuration"voiceDuration|>add"voice-pitch""voicePitch"voicePitch|>add"voice-range""voiceRange"voiceRange|>add"voice-rate""voiceRate"voiceRate|>add"voice-stress""voiceStress"voiceStress|>add"voice-volume""voiceVolume"voiceVolume|>add"object-fit""objectFit"objectFit|>add"object-position""objectPosition"objectPosition|>add"image-resolution""imageResolution"imageResolution|>add"image-orientation""imageOrientation"imageOrientation|>add"align-content""alignContent"alignContent|>add"align-items""alignItems"alignItems|>add"align-self""alignSelf"alignSelf|>add"flex""flex"flex|>add"flex-basis""flexBasis"flexBasis|>add"flex-direction""flexDirection"flexDirection|>add"flex-flow""flexFlow"flexFlow|>add"flex-grow""flexGrow"flexGrow|>add"flex-shrink""flexShrink"flexShrink|>add"flex-wrap""flexWrap"flexWrap|>add"justify-content""justifyContent"justifyContent|>add"order""order"order|>add"text-decoration-color""textDecorationColor"textDecorationColor|>add"text-decoration-line""textDecorationLine"textDecorationLine|>add"text-decoration-skip""textDecorationSkip"textDecorationSkip|>add"text-decoration-style""textDecorationStyle"textDecorationStyle|>add"text-emphasis""textEmphasis"textEmphasis|>add"text-emphasis-color""textEmphasisColor"textEmphasisColor|>add"text-emphasis-position""textEmphasisPosition"textEmphasisPosition|>add"text-emphasis-style""textEmphasisStyle"textEmphasisStyle|>add"text-underline-position""textUnderlinePosition"textUnderlinePosition|>add"font-feature-settings""fontFeatureSettings"fontFeatureSettings|>add"font-kerning""fontKerning"fontKerning|>add"font-language-override""fontLanguageOverride"fontLanguageOverride|>add"font-synthesis""fontSynthesis"fontSynthesis|>add"fornt-variant-alternates""forntVariantAlternates"forntVariantAlternates|>add"font-variant-caps""fontVariantCaps"fontVariantCaps|>add"font-variant-east-asian""fontVariantEastAsian"fontVariantEastAsian|>add"font-variant-ligatures""fontVariantLigatures"fontVariantLigatures|>add"font-variant-numeric""fontVariantNumeric"fontVariantNumeric|>add"font-variant-position""fontVariantPosition"fontVariantPosition|>add"all""all"all|>add"glyph-orientation-vertical""glyphOrientationVertical"glyphOrientationVertical|>add"text-combine-upright""textCombineUpright"textCombineUpright|>add"text-orientation""textOrientation"textOrientation|>add"writing-mode""writingMode"writingMode|>add"shape-image-threshold""shapeImageThreshold"shapeImageThreshold|>add"shape-margin""shapeMargin"shapeMargin|>add"shape-outside""shapeOutside"shapeOutside|>add"clip-path""clipPath"clipPath|>add"clip-rule""clipRule"clipRule|>add"mask""mask"mask|>add"mask-border""maskBorder"maskBorder|>add"mask-border-mode""maskBorderMode"maskBorderMode|>add"mask-border-outset""maskBorderOutset"maskBorderOutset|>add"mask-border-repeat""maskBorderRepeat"maskBorderRepeat|>add"mask-border-slice""maskBorderSlice"maskBorderSlice|>add"mask-border-source""maskBorderSource"maskBorderSource|>add"mask-border-width""maskBorderWidth"maskBorderWidth|>add"mask-clip""maskClip"maskClip|>add"mask-composite""maskComposite"maskComposite|>add"mask-image""maskImage"maskImage|>add"mask-mode""maskMode"maskMode|>add"mask-origin""maskOrigin"maskOrigin|>add"mask-position""maskPosition"maskPosition|>add"mask-repeat""maskRepeat"maskRepeat|>add"mask-size""maskSize"maskSize|>add"mask-type""maskType"maskType|>add"background-blend-mode""backgroundBlendMode"backgroundBlendMode|>add"isolation""isolation"isolation|>add"mix-blend-mode""mixBlendMode"mixBlendMode|>add"box-decoration-break""boxDecorationBreak"boxDecorationBreak|>add"box-sizing""boxSizing"boxSizing|>add"caret-color""caretColor"caretColor|>add"nav-down""navDown"navDown|>add"nav-left""navLeft"navLeft|>add"nav-right""navRight"navRight|>add"nav-up""navUp"navUp|>add"outline-offset""outlineOffset"outlineOffset|>add"resize""resize"resize|>add"text-overflow""textOverflow"textOverflow|>add"grid""grid"grid|>add"grid-area""gridArea"gridArea|>add"grid-auto-columns""gridAutoColumns"gridAutoColumns|>add"grid-auto-flow""gridAutoFlow"gridAutoFlow|>add"grid-auto-rows""gridAutoRows"gridAutoRows|>add"grid-column""gridColumn"gridColumn|>add"grid-column-end""gridColumnEnd"gridColumnEnd|>add"grid-column-gap""gridColumnGap"gridColumnGap|>add"grid-column-start""gridColumnStart"gridColumnStart|>add"grid-gap""gridGap"gridGap|>add"grid-row""gridRow"gridRow|>add"grid-row-end""gridRowEnd"gridRowEnd|>add"grid-row-gap""gridRowGap"gridRowGap|>add"grid-row-start""gridRowStart"gridRowStart|>add"grid-template""gridTemplate"gridTemplate|>add"grid-template-areas""gridTemplateAreas"gridTemplateAreas|>add"grid-template-columns""gridTemplateColumns"gridTemplateColumns|>add"grid-template-rows""gridTemplateRows"gridTemplateRows|>add"will-change""willChange"willChange|>add"hanging-punctuation""hangingPunctuation"hangingPunctuation|>add"hyphens""hyphens"hyphens|>add"line-break""lineBreak"lineBreak|>add"overflow-wrap""overflowWrap"overflowWrap|>add"tab-size""tabSize"tabSize|>add"text-align-last""textAlignLast"textAlignLast|>add"text-justify""textJustify"textJustify|>add"word-break""wordBreak"wordBreak|>add"word-wrap""wordWrap"wordWrap|>add"animation""animation"animation|>add"animation-delay""animationDelay"animationDelay|>add"animation-direction""animationDirection"animationDirection|>add"animation-duration""animationDuration"animationDuration|>add"animation-fill-mode""animationFillMode"animationFillMode|>add"animation-iteration-count""animationIterationCount"animationIterationCount|>add"animation-name""animationName"animationName|>add"animation-play-state""animationPlayState"animationPlayState|>add"animation-timing-function""animationTimingFunction"animationTimingFunction|>add"transition""transition"transition|>add"transition-delay""transitionDelay"transitionDelay|>add"transition-duration""transitionDuration"transitionDuration|>add"transition-property""transitionProperty"transitionProperty|>add"transition-timing-function""transitionTimingFunction"transitionTimingFunction|>add"backface-visibility""backfaceVisibility"backfaceVisibility|>add"perspective""perspective"perspective|>add"perspective-origin""perspectiveOrigin"perspectiveOrigin|>add"transform""transform"transform|>add"transform-origin""transformOrigin"transformOrigin|>add"transform-style""transformStyle"transformStyle|>add"justify-items""justifyItems"justifyItems|>add"justify-self""justifySelf"justifySelf|>add"place-content""placeContent"placeContent|>add"place-items""placeItems"placeItems|>add"place-self""placeSelf"placeSelf|>add"appearance""appearance"appearance|>add"caret""caret"caret|>add"caret-animation""caretAnimation"caretAnimation|>add"caret-shape""caretShape"caretShape|>add"user-select""userSelect"userSelect|>add"max-lines""maxLines"maxLines|>add"marquee-direction""marqueeDirection"marqueeDirection|>add"marquee-loop""marqueeLoop"marqueeLoop|>add"marquee-speed""marqueeSpeed"marqueeSpeed|>add"marquee-style""marqueeStyle"marqueeStyle|>add"overflow-style""overflowStyle"overflowStyle|>add"rotation""rotation"rotation|>add"rotation-point""rotationPoint"rotationPoint|>add"alignment-baseline""alignmentBaseline"alignmentBaseline|>add"baseline-shift""baselineShift"baselineShift|>add"clip""clip"clip|>add"clip-path""clipPath"clipPath|>add"clip-rule""clipRule"clipRule|>add"color-interpolation""colorInterpolation"colorInterpolation|>add"color-interpolation-filters""colorInterpolationFilters"colorInterpolationFilters|>add"color-profile""colorProfile"colorProfile|>add"color-rendering""colorRendering"colorRendering|>add"cursor""cursor"cursor|>add"dominant-baseline""dominantBaseline"dominantBaseline|>add"fill""fill"fill|>add"fill-opacity""fillOpacity"fillOpacity|>add"fill-rule""fillRule"fillRule|>add"filter""filter"filter|>add"flood-color""floodColor"floodColor|>add"flood-opacity""floodOpacity"floodOpacity|>add"glyph-orientation-horizontal""glyphOrientationHorizontal"glyphOrientationHorizontal|>add"glyph-orientation-vertical""glyphOrientationVertical"glyphOrientationVertical|>add"image-rendering""imageRendering"imageRendering|>add"kerning""kerning"kerning|>add"lighting-color""lightingColor"lightingColor|>add"marker-end""markerEnd"markerEnd|>add"marker-mid""markerMid"markerMid|>add"marker-start""markerStart"markerStart|>add"pointer-events""pointerEvents"pointerEvents|>add"shape-rendering""shapeRendering"shapeRendering|>add"stop-color""stopColor"stopColor|>add"stop-opacity""stopOpacity"stopOpacity|>add"stroke""stroke"stroke|>add"stroke-dasharray""strokeDasharray"strokeDasharray|>add"stroke-dashoffset""strokeDashoffset"strokeDashoffset|>add"stroke-linecap""strokeLinecap"strokeLinecap|>add"stroke-linejoin""strokeLinejoin"strokeLinejoin|>add"stroke-miterlimit""strokeMiterlimit"strokeMiterlimit|>add"stroke-opacity""strokeOpacity"strokeOpacity|>add"stroke-width""strokeWidth"strokeWidth|>add"text-anchor""textAnchor"textAnchor|>add"text-rendering""textRendering"textRendering|>add"ruby-align""rubyAlign"rubyAlign|>add"ruby-merge""rubyMerge"rubyMerge|>add"ruby-position""rubyPosition"rubyPosition[@@@ocamlformat"enable"]letto_string(styles:t):string=letsize=List.lengthstylesinletbuff=Buffer.createsizeinstyles|>List.to_seq|>Seq.iteri(funindex(k,_,v)->ifv==""then()elseifindex==size-1then(Buffer.add_stringbuffk;Buffer.add_stringbuff":";Buffer.add_stringbuff(String.trimv))else(Buffer.add_stringbuffk;Buffer.add_stringbuff":";Buffer.add_stringbuff(String.trimv);Buffer.add_stringbuff";"));Buffer.contentsbuff(* TODO: Remove conversion to sequences, can do List.combine *)letcombine(styles1:t)(styles2:t):t=letseq1=styles1|>List.to_seqinletseq2=styles2|>List.to_seqinSeq.appendseq1seq2|>List.of_seqletstring_of_charschars=letbuf=Buffer.create16inList.iter(Buffer.add_charbuf)chars;Buffer.contentsbufletchars_of_stringstr=List.init(String.lengthstr)(String.getstr)letcamelcaseToKebabcasestr=letrecloopacc=function|[]->acc|[x]->x::acc|x::y::xs->ifChar.uppercase_asciiy==ythenloop('-'::x::acc)(Char.lowercase_asciiy::xs)elseloop(x::acc)(y::xs)instr|>chars_of_string|>loop[]|>List.rev|>string_of_charsletunsafeAddPropstyleskeyvalue:t=(* Adds the (key, value) into last position *)(camelcaseToKebabcasekey,key,value)::styles(* Since we don't have a proper representation of `< .. > Js.t` yet,
we can't make the unsafeAddStyle
external unsafeAddStyle :
((_)[@mel.as {json|{}|json}]) -> t -> < .. > Js.t -> t = "Object.assign" *)