123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764typet=(string*string*string)list[@@@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
*)letacc=[]inletacc=matchazimuthwithSomev->("azimuth","azimuth",v)::acc|None->accinletacc=matchbackgroundwithSomev->("background","background",v)::acc|None->accinletacc=matchbackgroundAttachmentwithSomev->("background-attachment","backgroundAttachment",v)::acc|None->accinletacc=matchbackgroundColorwithSomev->("background-color","backgroundColor",v)::acc|None->accinletacc=matchbackgroundImagewithSomev->("background-image","backgroundImage",v)::acc|None->accinletacc=matchbackgroundPositionwithSomev->("background-position","backgroundPosition",v)::acc|None->accinletacc=matchbackgroundRepeatwithSomev->("background-repeat","backgroundRepeat",v)::acc|None->accinletacc=matchborderwithSomev->("border","border",v)::acc|None->accinletacc=matchborderCollapsewithSomev->("border-collapse","borderCollapse",v)::acc|None->accinletacc=matchborderColorwithSomev->("border-color","borderColor",v)::acc|None->accinletacc=matchborderSpacingwithSomev->("border-spacing","borderSpacing",v)::acc|None->accinletacc=matchborderStylewithSomev->("border-style","borderStyle",v)::acc|None->accinletacc=matchborderTopwithSomev->("border-top","borderTop",v)::acc|None->accinletacc=matchborderRightwithSomev->("border-right","borderRight",v)::acc|None->accinletacc=matchborderBottomwithSomev->("border-bottom","borderBottom",v)::acc|None->accinletacc=matchborderLeftwithSomev->("border-left","borderLeft",v)::acc|None->accinletacc=matchborderTopColorwithSomev->("border-top-color","borderTopColor",v)::acc|None->accinletacc=matchborderRightColorwithSomev->("border-right-color","borderRightColor",v)::acc|None->accinletacc=matchborderBottomColorwithSomev->("border-bottom-color","borderBottomColor",v)::acc|None->accinletacc=matchborderLeftColorwithSomev->("border-left-color","borderLeftColor",v)::acc|None->accinletacc=matchborderTopStylewithSomev->("border-top-style","borderTopStyle",v)::acc|None->accinletacc=matchborderRightStylewithSomev->("border-right-style","borderRightStyle",v)::acc|None->accinletacc=matchborderBottomStylewithSomev->("border-bottom-style","borderBottomStyle",v)::acc|None->accinletacc=matchborderLeftStylewithSomev->("border-left-style","borderLeftStyle",v)::acc|None->accinletacc=matchborderTopWidthwithSomev->("border-top-width","borderTopWidth",v)::acc|None->accinletacc=matchborderRightWidthwithSomev->("border-right-width","borderRightWidth",v)::acc|None->accinletacc=matchborderBottomWidthwithSomev->("border-bottom-width","borderBottomWidth",v)::acc|None->accinletacc=matchborderLeftWidthwithSomev->("border-left-width","borderLeftWidth",v)::acc|None->accinletacc=matchborderWidthwithSomev->("border-width","borderWidth",v)::acc|None->accinletacc=matchbottomwithSomev->("bottom","bottom",v)::acc|None->accinletacc=matchcaptionSidewithSomev->("caption-side","captionSide",v)::acc|None->accinletacc=matchclearwithSomev->("clear","clear",v)::acc|None->accinletacc=matchclipwithSomev->("clip","clip",v)::acc|None->accinletacc=matchcolorwithSomev->("color","color",v)::acc|None->accinletacc=matchcontentwithSomev->("content","content",v)::acc|None->accinletacc=matchcounterIncrementwithSomev->("counter-increment","counterIncrement",v)::acc|None->accinletacc=matchcounterResetwithSomev->("counter-reset","counterReset",v)::acc|None->accinletacc=matchcuewithSomev->("cue","cue",v)::acc|None->accinletacc=matchcueAfterwithSomev->("cue-after","cueAfter",v)::acc|None->accinletacc=matchcueBeforewithSomev->("cue-before","cueBefore",v)::acc|None->accinletacc=matchcursorwithSomev->("cursor","cursor",v)::acc|None->accinletacc=matchdirectionwithSomev->("direction","direction",v)::acc|None->accinletacc=matchdisplaywithSomev->("display","display",v)::acc|None->accinletacc=matchelevationwithSomev->("elevation","elevation",v)::acc|None->accinletacc=matchemptyCellswithSomev->("empty-cells","emptyCells",v)::acc|None->accinletacc=matchfloatwithSomev->("float","float",v)::acc|None->accinletacc=matchfontwithSomev->("font","font",v)::acc|None->accinletacc=matchfontFamilywithSomev->("font-family","fontFamily",v)::acc|None->accinletacc=matchfontSizewithSomev->("font-size","fontSize",v)::acc|None->accinletacc=matchfontSizeAdjustwithSomev->("font-size-adjust","fontSizeAdjust",v)::acc|None->accinletacc=matchfontStretchwithSomev->("font-stretch","fontStretch",v)::acc|None->accinletacc=matchfontStylewithSomev->("font-style","fontStyle",v)::acc|None->accinletacc=matchfontVariantwithSomev->("font-variant","fontVariant",v)::acc|None->accinletacc=matchfontWeightwithSomev->("font-weight","fontWeight",v)::acc|None->accinletacc=matchheightwithSomev->("height","height",v)::acc|None->accinletacc=matchleftwithSomev->("left","left",v)::acc|None->accinletacc=matchletterSpacingwithSomev->("letter-spacing","letterSpacing",v)::acc|None->accinletacc=matchlineHeightwithSomev->("line-height","lineHeight",v)::acc|None->accinletacc=matchlistStylewithSomev->("list-style","listStyle",v)::acc|None->accinletacc=matchlistStyleImagewithSomev->("list-style-image","listStyleImage",v)::acc|None->accinletacc=matchlistStylePositionwithSomev->("list-style-position","listStylePosition",v)::acc|None->accinletacc=matchlistStyleTypewithSomev->("list-style-type","listStyleType",v)::acc|None->accinletacc=matchmarginwithSomev->("margin","margin",v)::acc|None->accinletacc=matchmarginTopwithSomev->("margin-top","marginTop",v)::acc|None->accinletacc=matchmarginRightwithSomev->("margin-right","marginRight",v)::acc|None->accinletacc=matchmarginBottomwithSomev->("margin-bottom","marginBottom",v)::acc|None->accinletacc=matchmarginLeftwithSomev->("margin-left","marginLeft",v)::acc|None->accinletacc=matchmarkerOffsetwithSomev->("marker-offset","markerOffset",v)::acc|None->accinletacc=matchmarkswithSomev->("marks","marks",v)::acc|None->accinletacc=matchmaxHeightwithSomev->("max-height","maxHeight",v)::acc|None->accinletacc=matchmaxWidthwithSomev->("max-width","maxWidth",v)::acc|None->accinletacc=matchminHeightwithSomev->("min-height","minHeight",v)::acc|None->accinletacc=matchminWidthwithSomev->("min-width","minWidth",v)::acc|None->accinletacc=matchorphanswithSomev->("orphans","orphans",v)::acc|None->accinletacc=matchoutlinewithSomev->("outline","outline",v)::acc|None->accinletacc=matchoutlineColorwithSomev->("outline-color","outlineColor",v)::acc|None->accinletacc=matchoutlineStylewithSomev->("outline-style","outlineStyle",v)::acc|None->accinletacc=matchoutlineWidthwithSomev->("outline-width","outlineWidth",v)::acc|None->accinletacc=matchoverflowwithSomev->("overflow","overflow",v)::acc|None->accinletacc=matchoverflowXwithSomev->("overflow-x","overflowX",v)::acc|None->accinletacc=matchoverflowYwithSomev->("overflow-y","overflowY",v)::acc|None->accinletacc=matchpaddingwithSomev->("padding","padding",v)::acc|None->accinletacc=matchpaddingTopwithSomev->("padding-top","paddingTop",v)::acc|None->accinletacc=matchpaddingRightwithSomev->("padding-right","paddingRight",v)::acc|None->accinletacc=matchpaddingBottomwithSomev->("padding-bottom","paddingBottom",v)::acc|None->accinletacc=matchpaddingLeftwithSomev->("padding-left","paddingLeft",v)::acc|None->accinletacc=matchpagewithSomev->("page","page",v)::acc|None->accinletacc=matchpageBreakAfterwithSomev->("page-break-after","pageBreakAfter",v)::acc|None->accinletacc=matchpageBreakBeforewithSomev->("page-break-before","pageBreakBefore",v)::acc|None->accinletacc=matchpageBreakInsidewithSomev->("page-break-inside","pageBreakInside",v)::acc|None->accinletacc=matchpausewithSomev->("pause","pause",v)::acc|None->accinletacc=matchpauseAfterwithSomev->("pause-after","pauseAfter",v)::acc|None->accinletacc=matchpauseBeforewithSomev->("pause-before","pauseBefore",v)::acc|None->accinletacc=matchpitchwithSomev->("pitch","pitch",v)::acc|None->accinletacc=matchpitchRangewithSomev->("pitch-range","pitchRange",v)::acc|None->accinletacc=matchplayDuringwithSomev->("play-during","playDuring",v)::acc|None->accinletacc=matchpositionwithSomev->("position","position",v)::acc|None->accinletacc=matchquoteswithSomev->("quotes","quotes",v)::acc|None->accinletacc=matchrichnesswithSomev->("richness","richness",v)::acc|None->accinletacc=matchrightwithSomev->("right","right",v)::acc|None->accinletacc=matchsizewithSomev->("size","size",v)::acc|None->accinletacc=matchspeakwithSomev->("speak","speak",v)::acc|None->accinletacc=matchspeakHeaderwithSomev->("speak-header","speakHeader",v)::acc|None->accinletacc=matchspeakNumeralwithSomev->("speak-numeral","speakNumeral",v)::acc|None->accinletacc=matchspeakPunctuationwithSomev->("speak-punctuation","speakPunctuation",v)::acc|None->accinletacc=matchspeechRatewithSomev->("speech-rate","speechRate",v)::acc|None->accinletacc=matchstresswithSomev->("stress","stress",v)::acc|None->accinletacc=matchtableLayoutwithSomev->("table-layout","tableLayout",v)::acc|None->accinletacc=matchtextAlignwithSomev->("text-align","textAlign",v)::acc|None->accinletacc=matchtextDecorationwithSomev->("text-decoration","textDecoration",v)::acc|None->accinletacc=matchtextIndentwithSomev->("text-indent","textIndent",v)::acc|None->accinletacc=matchtextShadowwithSomev->("text-shadow","textShadow",v)::acc|None->accinletacc=matchtextTransformwithSomev->("text-transform","textTransform",v)::acc|None->accinletacc=matchtopwithSomev->("top","top",v)::acc|None->accinletacc=matchunicodeBidiwithSomev->("unicode-bidi","unicodeBidi",v)::acc|None->accinletacc=matchverticalAlignwithSomev->("vertical-align","verticalAlign",v)::acc|None->accinletacc=matchvisibilitywithSomev->("visibility","visibility",v)::acc|None->accinletacc=matchvoiceFamilywithSomev->("voice-family","voiceFamily",v)::acc|None->accinletacc=matchvolumewithSomev->("volume","volume",v)::acc|None->accinletacc=matchwhiteSpacewithSomev->("white-space","whiteSpace",v)::acc|None->accinletacc=matchwidowswithSomev->("widows","widows",v)::acc|None->accinletacc=matchwidthwithSomev->("width","width",v)::acc|None->accinletacc=matchwordSpacingwithSomev->("word-spacing","wordSpacing",v)::acc|None->accinletacc=matchzIndexwithSomev->("z-index","zIndex",v)::acc|None->accinletacc=matchopacitywithSomev->("opacity","opacity",v)::acc|None->accinletacc=matchbackgroundOriginwithSomev->("background-origin","backgroundOrigin",v)::acc|None->accinletacc=matchbackgroundSizewithSomev->("background-size","backgroundSize",v)::acc|None->accinletacc=matchbackgroundClipwithSomev->("background-clip","backgroundClip",v)::acc|None->accinletacc=matchborderRadiuswithSomev->("border-radius","borderRadius",v)::acc|None->accinletacc=matchborderTopLeftRadiuswithSomev->("border-top-left-radius","borderTopLeftRadius",v)::acc|None->accinletacc=matchborderTopRightRadiuswithSomev->("border-top-right-radius","borderTopRightRadius",v)::acc|None->accinletacc=matchborderBottomLeftRadiuswithSomev->("border-bottom-left-radius","borderBottomLeftRadius",v)::acc|None->accinletacc=matchborderBottomRightRadiuswithSomev->("border-bottom-right-radius","borderBottomRightRadius",v)::acc|None->accinletacc=matchborderImagewithSomev->("border-image","borderImage",v)::acc|None->accinletacc=matchborderImageSourcewithSomev->("border-image-source","borderImageSource",v)::acc|None->accinletacc=matchborderImageSlicewithSomev->("border-image-slice","borderImageSlice",v)::acc|None->accinletacc=matchborderImageWidthwithSomev->("border-image-width","borderImageWidth",v)::acc|None->accinletacc=matchborderImageOutsetwithSomev->("border-image-outset","borderImageOutset",v)::acc|None->accinletacc=matchborderImageRepeatwithSomev->("border-image-repeat","borderImageRepeat",v)::acc|None->accinletacc=matchboxShadowwithSomev->("box-shadow","boxShadow",v)::acc|None->accinletacc=matchcolumnswithSomev->("columns","columns",v)::acc|None->accinletacc=matchcolumnCountwithSomev->("column-count","columnCount",v)::acc|None->accinletacc=matchcolumnFillwithSomev->("column-fill","columnFill",v)::acc|None->accinletacc=matchcolumnGapwithSomev->("column-gap","columnGap",v)::acc|None->accinletacc=matchcolumnRulewithSomev->("column-rule","columnRule",v)::acc|None->accinletacc=matchcolumnRuleColorwithSomev->("column-rule-color","columnRuleColor",v)::acc|None->accinletacc=matchcolumnRuleStylewithSomev->("column-rule-style","columnRuleStyle",v)::acc|None->accinletacc=matchcolumnRuleWidthwithSomev->("column-rule-width","columnRuleWidth",v)::acc|None->accinletacc=matchcolumnSpanwithSomev->("column-span","columnSpan",v)::acc|None->accinletacc=matchcolumnWidthwithSomev->("column-width","columnWidth",v)::acc|None->accinletacc=matchbreakAfterwithSomev->("break-after","breakAfter",v)::acc|None->accinletacc=matchbreakBeforewithSomev->("break-before","breakBefore",v)::acc|None->accinletacc=matchbreakInsidewithSomev->("break-inside","breakInside",v)::acc|None->accinletacc=matchrestwithSomev->("rest","rest",v)::acc|None->accinletacc=matchrestAfterwithSomev->("rest-after","restAfter",v)::acc|None->accinletacc=matchrestBeforewithSomev->("rest-before","restBefore",v)::acc|None->accinletacc=matchspeakAswithSomev->("speak-as","speakAs",v)::acc|None->accinletacc=matchvoiceBalancewithSomev->("voice-balance","voiceBalance",v)::acc|None->accinletacc=matchvoiceDurationwithSomev->("voice-duration","voiceDuration",v)::acc|None->accinletacc=matchvoicePitchwithSomev->("voice-pitch","voicePitch",v)::acc|None->accinletacc=matchvoiceRangewithSomev->("voice-range","voiceRange",v)::acc|None->accinletacc=matchvoiceRatewithSomev->("voice-rate","voiceRate",v)::acc|None->accinletacc=matchvoiceStresswithSomev->("voice-stress","voiceStress",v)::acc|None->accinletacc=matchvoiceVolumewithSomev->("voice-volume","voiceVolume",v)::acc|None->accinletacc=matchobjectFitwithSomev->("object-fit","objectFit",v)::acc|None->accinletacc=matchobjectPositionwithSomev->("object-position","objectPosition",v)::acc|None->accinletacc=matchimageResolutionwithSomev->("image-resolution","imageResolution",v)::acc|None->accinletacc=matchimageOrientationwithSomev->("image-orientation","imageOrientation",v)::acc|None->accinletacc=matchalignContentwithSomev->("align-content","alignContent",v)::acc|None->accinletacc=matchalignItemswithSomev->("align-items","alignItems",v)::acc|None->accinletacc=matchalignSelfwithSomev->("align-self","alignSelf",v)::acc|None->accinletacc=matchflexwithSomev->("flex","flex",v)::acc|None->accinletacc=matchflexBasiswithSomev->("flex-basis","flexBasis",v)::acc|None->accinletacc=matchflexDirectionwithSomev->("flex-direction","flexDirection",v)::acc|None->accinletacc=matchflexFlowwithSomev->("flex-flow","flexFlow",v)::acc|None->accinletacc=matchflexGrowwithSomev->("flex-grow","flexGrow",v)::acc|None->accinletacc=matchflexShrinkwithSomev->("flex-shrink","flexShrink",v)::acc|None->accinletacc=matchflexWrapwithSomev->("flex-wrap","flexWrap",v)::acc|None->accinletacc=matchjustifyContentwithSomev->("justify-content","justifyContent",v)::acc|None->accinletacc=matchorderwithSomev->("order","order",v)::acc|None->accinletacc=matchtextDecorationColorwithSomev->("text-decoration-color","textDecorationColor",v)::acc|None->accinletacc=matchtextDecorationLinewithSomev->("text-decoration-line","textDecorationLine",v)::acc|None->accinletacc=matchtextDecorationSkipwithSomev->("text-decoration-skip","textDecorationSkip",v)::acc|None->accinletacc=matchtextDecorationStylewithSomev->("text-decoration-style","textDecorationStyle",v)::acc|None->accinletacc=matchtextEmphasiswithSomev->("text-emphasis","textEmphasis",v)::acc|None->accinletacc=matchtextEmphasisColorwithSomev->("text-emphasis-color","textEmphasisColor",v)::acc|None->accinletacc=matchtextEmphasisPositionwithSomev->("text-emphasis-position","textEmphasisPosition",v)::acc|None->accinletacc=matchtextEmphasisStylewithSomev->("text-emphasis-style","textEmphasisStyle",v)::acc|None->accinletacc=matchtextUnderlinePositionwithSomev->("text-underline-position","textUnderlinePosition",v)::acc|None->accinletacc=matchfontFeatureSettingswithSomev->("font-feature-settings","fontFeatureSettings",v)::acc|None->accinletacc=matchfontKerningwithSomev->("font-kerning","fontKerning",v)::acc|None->accinletacc=matchfontLanguageOverridewithSomev->("font-language-override","fontLanguageOverride",v)::acc|None->accinletacc=matchfontSynthesiswithSomev->("font-synthesis","fontSynthesis",v)::acc|None->accinletacc=matchforntVariantAlternateswithSomev->("fornt-variant-alternates","forntVariantAlternates",v)::acc|None->accinletacc=matchfontVariantCapswithSomev->("font-variant-caps","fontVariantCaps",v)::acc|None->accinletacc=matchfontVariantEastAsianwithSomev->("font-variant-east-asian","fontVariantEastAsian",v)::acc|None->accinletacc=matchfontVariantLigatureswithSomev->("font-variant-ligatures","fontVariantLigatures",v)::acc|None->accinletacc=matchfontVariantNumericwithSomev->("font-variant-numeric","fontVariantNumeric",v)::acc|None->accinletacc=matchfontVariantPositionwithSomev->("font-variant-position","fontVariantPosition",v)::acc|None->accinletacc=matchallwithSomev->("all","all",v)::acc|None->accinletacc=matchglyphOrientationVerticalwithSomev->("glyph-orientation-vertical","glyphOrientationVertical",v)::acc|None->accinletacc=matchtextCombineUprightwithSomev->("text-combine-upright","textCombineUpright",v)::acc|None->accinletacc=matchtextOrientationwithSomev->("text-orientation","textOrientation",v)::acc|None->accinletacc=matchwritingModewithSomev->("writing-mode","writingMode",v)::acc|None->accinletacc=matchshapeImageThresholdwithSomev->("shape-image-threshold","shapeImageThreshold",v)::acc|None->accinletacc=matchshapeMarginwithSomev->("shape-margin","shapeMargin",v)::acc|None->accinletacc=matchshapeOutsidewithSomev->("shape-outside","shapeOutside",v)::acc|None->accinletacc=matchclipPathwithSomev->("clip-path","clipPath",v)::acc|None->accinletacc=matchclipRulewithSomev->("clip-rule","clipRule",v)::acc|None->accinletacc=matchmaskwithSomev->("mask","mask",v)::acc|None->accinletacc=matchmaskBorderwithSomev->("mask-border","maskBorder",v)::acc|None->accinletacc=matchmaskBorderModewithSomev->("mask-border-mode","maskBorderMode",v)::acc|None->accinletacc=matchmaskBorderOutsetwithSomev->("mask-border-outset","maskBorderOutset",v)::acc|None->accinletacc=matchmaskBorderRepeatwithSomev->("mask-border-repeat","maskBorderRepeat",v)::acc|None->accinletacc=matchmaskBorderSlicewithSomev->("mask-border-slice","maskBorderSlice",v)::acc|None->accinletacc=matchmaskBorderSourcewithSomev->("mask-border-source","maskBorderSource",v)::acc|None->accinletacc=matchmaskBorderWidthwithSomev->("mask-border-width","maskBorderWidth",v)::acc|None->accinletacc=matchmaskClipwithSomev->("mask-clip","maskClip",v)::acc|None->accinletacc=matchmaskCompositewithSomev->("mask-composite","maskComposite",v)::acc|None->accinletacc=matchmaskImagewithSomev->("mask-image","maskImage",v)::acc|None->accinletacc=matchmaskModewithSomev->("mask-mode","maskMode",v)::acc|None->accinletacc=matchmaskOriginwithSomev->("mask-origin","maskOrigin",v)::acc|None->accinletacc=matchmaskPositionwithSomev->("mask-position","maskPosition",v)::acc|None->accinletacc=matchmaskRepeatwithSomev->("mask-repeat","maskRepeat",v)::acc|None->accinletacc=matchmaskSizewithSomev->("mask-size","maskSize",v)::acc|None->accinletacc=matchmaskTypewithSomev->("mask-type","maskType",v)::acc|None->accinletacc=matchbackgroundBlendModewithSomev->("background-blend-mode","backgroundBlendMode",v)::acc|None->accinletacc=matchisolationwithSomev->("isolation","isolation",v)::acc|None->accinletacc=matchmixBlendModewithSomev->("mix-blend-mode","mixBlendMode",v)::acc|None->accinletacc=matchboxDecorationBreakwithSomev->("box-decoration-break","boxDecorationBreak",v)::acc|None->accinletacc=matchboxSizingwithSomev->("box-sizing","boxSizing",v)::acc|None->accinletacc=matchcaretColorwithSomev->("caret-color","caretColor",v)::acc|None->accinletacc=matchnavDownwithSomev->("nav-down","navDown",v)::acc|None->accinletacc=matchnavLeftwithSomev->("nav-left","navLeft",v)::acc|None->accinletacc=matchnavRightwithSomev->("nav-right","navRight",v)::acc|None->accinletacc=matchnavUpwithSomev->("nav-up","navUp",v)::acc|None->accinletacc=matchoutlineOffsetwithSomev->("outline-offset","outlineOffset",v)::acc|None->accinletacc=matchresizewithSomev->("resize","resize",v)::acc|None->accinletacc=matchtextOverflowwithSomev->("text-overflow","textOverflow",v)::acc|None->accinletacc=matchgridwithSomev->("grid","grid",v)::acc|None->accinletacc=matchgridAreawithSomev->("grid-area","gridArea",v)::acc|None->accinletacc=matchgridAutoColumnswithSomev->("grid-auto-columns","gridAutoColumns",v)::acc|None->accinletacc=matchgridAutoFlowwithSomev->("grid-auto-flow","gridAutoFlow",v)::acc|None->accinletacc=matchgridAutoRowswithSomev->("grid-auto-rows","gridAutoRows",v)::acc|None->accinletacc=matchgridColumnwithSomev->("grid-column","gridColumn",v)::acc|None->accinletacc=matchgridColumnEndwithSomev->("grid-column-end","gridColumnEnd",v)::acc|None->accinletacc=matchgridColumnGapwithSomev->("grid-column-gap","gridColumnGap",v)::acc|None->accinletacc=matchgridColumnStartwithSomev->("grid-column-start","gridColumnStart",v)::acc|None->accinletacc=matchgridGapwithSomev->("grid-gap","gridGap",v)::acc|None->accinletacc=matchgridRowwithSomev->("grid-row","gridRow",v)::acc|None->accinletacc=matchgridRowEndwithSomev->("grid-row-end","gridRowEnd",v)::acc|None->accinletacc=matchgridRowGapwithSomev->("grid-row-gap","gridRowGap",v)::acc|None->accinletacc=matchgridRowStartwithSomev->("grid-row-start","gridRowStart",v)::acc|None->accinletacc=matchgridTemplatewithSomev->("grid-template","gridTemplate",v)::acc|None->accinletacc=matchgridTemplateAreaswithSomev->("grid-template-areas","gridTemplateAreas",v)::acc|None->accinletacc=matchgridTemplateColumnswithSomev->("grid-template-columns","gridTemplateColumns",v)::acc|None->accinletacc=matchgridTemplateRowswithSomev->("grid-template-rows","gridTemplateRows",v)::acc|None->accinletacc=matchwillChangewithSomev->("will-change","willChange",v)::acc|None->accinletacc=matchhangingPunctuationwithSomev->("hanging-punctuation","hangingPunctuation",v)::acc|None->accinletacc=matchhyphenswithSomev->("hyphens","hyphens",v)::acc|None->accinletacc=matchlineBreakwithSomev->("line-break","lineBreak",v)::acc|None->accinletacc=matchoverflowWrapwithSomev->("overflow-wrap","overflowWrap",v)::acc|None->accinletacc=matchtabSizewithSomev->("tab-size","tabSize",v)::acc|None->accinletacc=matchtextAlignLastwithSomev->("text-align-last","textAlignLast",v)::acc|None->accinletacc=matchtextJustifywithSomev->("text-justify","textJustify",v)::acc|None->accinletacc=matchwordBreakwithSomev->("word-break","wordBreak",v)::acc|None->accinletacc=matchwordWrapwithSomev->("word-wrap","wordWrap",v)::acc|None->accinletacc=matchanimationwithSomev->("animation","animation",v)::acc|None->accinletacc=matchanimationDelaywithSomev->("animation-delay","animationDelay",v)::acc|None->accinletacc=matchanimationDirectionwithSomev->("animation-direction","animationDirection",v)::acc|None->accinletacc=matchanimationDurationwithSomev->("animation-duration","animationDuration",v)::acc|None->accinletacc=matchanimationFillModewithSomev->("animation-fill-mode","animationFillMode",v)::acc|None->accinletacc=matchanimationIterationCountwithSomev->("animation-iteration-count","animationIterationCount",v)::acc|None->accinletacc=matchanimationNamewithSomev->("animation-name","animationName",v)::acc|None->accinletacc=matchanimationPlayStatewithSomev->("animation-play-state","animationPlayState",v)::acc|None->accinletacc=matchanimationTimingFunctionwithSomev->("animation-timing-function","animationTimingFunction",v)::acc|None->accinletacc=matchtransitionwithSomev->("transition","transition",v)::acc|None->accinletacc=matchtransitionDelaywithSomev->("transition-delay","transitionDelay",v)::acc|None->accinletacc=matchtransitionDurationwithSomev->("transition-duration","transitionDuration",v)::acc|None->accinletacc=matchtransitionPropertywithSomev->("transition-property","transitionProperty",v)::acc|None->accinletacc=matchtransitionTimingFunctionwithSomev->("transition-timing-function","transitionTimingFunction",v)::acc|None->accinletacc=matchbackfaceVisibilitywithSomev->("backface-visibility","backfaceVisibility",v)::acc|None->accinletacc=matchperspectivewithSomev->("perspective","perspective",v)::acc|None->accinletacc=matchperspectiveOriginwithSomev->("perspective-origin","perspectiveOrigin",v)::acc|None->accinletacc=matchtransformwithSomev->("transform","transform",v)::acc|None->accinletacc=matchtransformOriginwithSomev->("transform-origin","transformOrigin",v)::acc|None->accinletacc=matchtransformStylewithSomev->("transform-style","transformStyle",v)::acc|None->accinletacc=matchjustifyItemswithSomev->("justify-items","justifyItems",v)::acc|None->accinletacc=matchjustifySelfwithSomev->("justify-self","justifySelf",v)::acc|None->accinletacc=matchplaceContentwithSomev->("place-content","placeContent",v)::acc|None->accinletacc=matchplaceItemswithSomev->("place-items","placeItems",v)::acc|None->accinletacc=matchplaceSelfwithSomev->("place-self","placeSelf",v)::acc|None->accinletacc=matchappearancewithSomev->("appearance","appearance",v)::acc|None->accinletacc=matchcaretwithSomev->("caret","caret",v)::acc|None->accinletacc=matchcaretAnimationwithSomev->("caret-animation","caretAnimation",v)::acc|None->accinletacc=matchcaretShapewithSomev->("caret-shape","caretShape",v)::acc|None->accinletacc=matchuserSelectwithSomev->("user-select","userSelect",v)::acc|None->accinletacc=matchmaxLineswithSomev->("max-lines","maxLines",v)::acc|None->accinletacc=matchmarqueeDirectionwithSomev->("marquee-direction","marqueeDirection",v)::acc|None->accinletacc=matchmarqueeLoopwithSomev->("marquee-loop","marqueeLoop",v)::acc|None->accinletacc=matchmarqueeSpeedwithSomev->("marquee-speed","marqueeSpeed",v)::acc|None->accinletacc=matchmarqueeStylewithSomev->("marquee-style","marqueeStyle",v)::acc|None->accinletacc=matchoverflowStylewithSomev->("overflow-style","overflowStyle",v)::acc|None->accinletacc=matchrotationwithSomev->("rotation","rotation",v)::acc|None->accinletacc=matchrotationPointwithSomev->("rotation-point","rotationPoint",v)::acc|None->accinletacc=matchalignmentBaselinewithSomev->("alignment-baseline","alignmentBaseline",v)::acc|None->accinletacc=matchbaselineShiftwithSomev->("baseline-shift","baselineShift",v)::acc|None->accinletacc=matchclipwithSomev->("clip","clip",v)::acc|None->accinletacc=matchclipPathwithSomev->("clip-path","clipPath",v)::acc|None->accinletacc=matchclipRulewithSomev->("clip-rule","clipRule",v)::acc|None->accinletacc=matchcolorInterpolationwithSomev->("color-interpolation","colorInterpolation",v)::acc|None->accinletacc=matchcolorInterpolationFilterswithSomev->("color-interpolation-filters","colorInterpolationFilters",v)::acc|None->accinletacc=matchcolorProfilewithSomev->("color-profile","colorProfile",v)::acc|None->accinletacc=matchcolorRenderingwithSomev->("color-rendering","colorRendering",v)::acc|None->accinletacc=matchcursorwithSomev->("cursor","cursor",v)::acc|None->accinletacc=matchdominantBaselinewithSomev->("dominant-baseline","dominantBaseline",v)::acc|None->accinletacc=matchfillwithSomev->("fill","fill",v)::acc|None->accinletacc=matchfillOpacitywithSomev->("fill-opacity","fillOpacity",v)::acc|None->accinletacc=matchfillRulewithSomev->("fill-rule","fillRule",v)::acc|None->accinletacc=matchfilterwithSomev->("filter","filter",v)::acc|None->accinletacc=matchfloodColorwithSomev->("flood-color","floodColor",v)::acc|None->accinletacc=matchfloodOpacitywithSomev->("flood-opacity","floodOpacity",v)::acc|None->accinletacc=matchglyphOrientationHorizontalwithSomev->("glyph-orientation-horizontal","glyphOrientationHorizontal",v)::acc|None->accinletacc=matchglyphOrientationVerticalwithSomev->("glyph-orientation-vertical","glyphOrientationVertical",v)::acc|None->accinletacc=matchimageRenderingwithSomev->("image-rendering","imageRendering",v)::acc|None->accinletacc=matchkerningwithSomev->("kerning","kerning",v)::acc|None->accinletacc=matchlightingColorwithSomev->("lighting-color","lightingColor",v)::acc|None->accinletacc=matchmarkerEndwithSomev->("marker-end","markerEnd",v)::acc|None->accinletacc=matchmarkerMidwithSomev->("marker-mid","markerMid",v)::acc|None->accinletacc=matchmarkerStartwithSomev->("marker-start","markerStart",v)::acc|None->accinletacc=matchpointerEventswithSomev->("pointer-events","pointerEvents",v)::acc|None->accinletacc=matchshapeRenderingwithSomev->("shape-rendering","shapeRendering",v)::acc|None->accinletacc=matchstopColorwithSomev->("stop-color","stopColor",v)::acc|None->accinletacc=matchstopOpacitywithSomev->("stop-opacity","stopOpacity",v)::acc|None->accinletacc=matchstrokewithSomev->("stroke","stroke",v)::acc|None->accinletacc=matchstrokeDasharraywithSomev->("stroke-dasharray","strokeDasharray",v)::acc|None->accinletacc=matchstrokeDashoffsetwithSomev->("stroke-dashoffset","strokeDashoffset",v)::acc|None->accinletacc=matchstrokeLinecapwithSomev->("stroke-linecap","strokeLinecap",v)::acc|None->accinletacc=matchstrokeLinejoinwithSomev->("stroke-linejoin","strokeLinejoin",v)::acc|None->accinletacc=matchstrokeMiterlimitwithSomev->("stroke-miterlimit","strokeMiterlimit",v)::acc|None->accinletacc=matchstrokeOpacitywithSomev->("stroke-opacity","strokeOpacity",v)::acc|None->accinletacc=matchstrokeWidthwithSomev->("stroke-width","strokeWidth",v)::acc|None->accinletacc=matchtextAnchorwithSomev->("text-anchor","textAnchor",v)::acc|None->accinletacc=matchtextRenderingwithSomev->("text-rendering","textRendering",v)::acc|None->accinletacc=matchrubyAlignwithSomev->("ruby-align","rubyAlign",v)::acc|None->accinletacc=matchrubyMergewithSomev->("ruby-merge","rubyMerge",v)::acc|None->accinletacc=matchrubyPositionwithSomev->("ruby-position","rubyPosition",v)::acc|None->accinList.revacc[@@@ocamlformat"enable"]letwrite_to_bufferbuf(styles:t):unit=letrecloopfirst=function|[]->()|(k,_,v)::rest->(* Skip empty values structurally, not with [==]: it must match the
PPX static fold. *)ifString.lengthv=0thenloopfirstrestelse(ifnotfirstthenBuffer.add_charbuf';';Buffer.add_stringbufk;Buffer.add_charbuf':';Buffer.add_stringbuf(String.trimv);loopfalserest)inlooptruestylesletto_string(styles:t):string=letbuf=Buffer.create64inwrite_to_bufferbufstyles;Buffer.contentsbuf(* 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_seqletcamelcaseToKebabcasestr=letlen=String.lengthstrinletis_uppercasec=c>='A'&&c<='Z'inletis_custom_propertystr=len>=2&&str.[0]='-'&&str.[1]='-'inifis_custom_propertystrthenstrelseletbuf=Buffer.create(len+4)infori=0tolen-1doletc=str.[i]inifi>0&&is_uppercasecthenbeginBuffer.add_charbuf'-';Buffer.add_charbuf(Char.lowercase_asciic)endelseBuffer.add_charbufcdone;Buffer.contentsbufletunsafeAddPropstyleskeyvalue:t=(* Adds the (key, value) into last position, mirroring reason-react's
Object.assign semantics where a new key lands at the end. *)styles@[(camelcaseToKebabcasekey,key,value)](* 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" *)