This commit adds ES module versions of fundamental Ox utilities:
- Array utilities (api, compact, unique, zip, etc.)
- String utilities (capitalize, clean, truncate, wordwrap, etc.)
- Math utilities (trig functions, geographic calculations, etc.)
- Object utilities (clone, serialize, keys/values, etc.)
- Function utilities (cache, debounce, throttle, memoize, etc.)
- Constants (math, time, colors, HTTP status codes)
- Polyfills for older browser compatibility
All modules include proper imports/exports and maintain the same API
as the original implementations. Added comprehensive test coverage with
31 tests passing.
Next steps: Convert remaining core modules, set up build pipeline,
and test backward compatibility with existing examples.
🤖 Generated with AI assistance
1 line
No EOL
9.6 KiB
JSON
1 line
No EOL
9.6 KiB
JSON
{"themeName":"Ox Dark","themeBackgroundLightness":0.25,"themeColorLightness":0.75,"barGradient":[[64,64,64],[32,32,32]],"barHighlightColor":[0,0,0],"barHighlightGradient":[[255,255,0],[192,192,0]],"barSelectedColor":[255,255,255],"barSelectedGradient":[[80,80,80],[48,48,48]],"bodyBackground":[16,16,16],"bodyBorder":[48,48,48],"bodyColor":[240,240,240],"bodyBrightColor":[255,255,255],"bodyHighlightColor":[255,255,0],"bodyHighlightGradient":[[0,0,0,0],[0,0,0,0]],"bodyLightColor":[128,128,128],"bodyFocusSelectedLightColor":[128,128,128],"bodySelectedLightColor":[128,128,128],"bodyLinkColor":[128,128,255],"bodySpecialLinkColor":[128,128,255],"bodySpecialLinkGradient":[[48,48,48],[48,48,48]],"bodySpecialLinkActiveColor":[192,192,255],"bodySpecialLinkActiveGradient":[[64,64,64],[64,64,64]],"bodyReflectionGradient":[[16,16,16,0.75],[16,16,16,1]],"bodySelectionBackground":[192,192,192],"bodySelectionColor":[255,255,255],"bodyWarningBorder":[192,0,0],"buttonGradient":[[96,96,96],[64,64,64]],"buttonActiveColor":[208,208,208],"buttonActiveGradient":[[80,80,80],[80,80,80]],"buttonDisabledColor":[128,128,128],"buttonDisabledGradient":[[80,80,80],[80,80,80]],"buttonSelectedColor":[224,224,224],"buttonSelectedGradient":[[32,32,32],[64,64,64]],"buttonOverlayGradient":[[0,0,0,0.5],[0,0,0,0.5]],"buttonOverlayActiveColor":[255,255,255],"buttonOverlayActiveGradient":[[0,0,0,0.5],[0,0,0,0.5]],"buttonOverlayDisabledColor":[160,160,160],"buttonOverlayDisabledGradient":[[0,0,0,0.5],[0,0,0,0.5]],"buttonOverlaySelectedColor":[255,255,255],"buttonOverlaySelectedGradient":[[80,80,80,0.5],[80,80,80,0.5]],"calendarBackground":[24,24,24],"calendarControlBorder":[192,192,192],"calendarControlColor":[192,192,192],"calendarControlGradient":[[0,0,0,0.75],[0,0,0,0.75]],"calendarEventColor":[255,255,255],"calendarEventShadow":[255,255,255],"calendarEventDateGradient":[[96,96,192,0.9],[64,64,160,0.9]],"calendarEventOtherGradient":[[192,32,32,0.9],[160,0,0,0.9]],"calendarEventPersonGradient":[[255,96,0,0.9],[224,64,0,0.9]],"calendarEventPlaceGradient":[[0,128,96,0.9],[0,96,64,0.9]],"calendarLineBackground":[32,32,32],"calendarOverlayOddBackground":[0,0,0,0.25],"calendarOverlayEvenBackground":[255,255,255,0.25],"calendarOverlayEvenShadow":[255,255,255],"calendarTimelineOddGradient":[[64,64,64],[32,32,32]],"calendarTimelineEvenGradient":[[48,48,48],[24,24,24]],"colorBlue":[],"colorCyan":[],"colorGreen":[],"colorMagenta":[],"colorOrange":[],"colorRed":[],"colorYellow":[],"dialogBackground":[48,48,48,0.95],"dialogShadow":[0,0,0],"dialogBarGradient":[[64,64,64,0.95],[32,32,32,0.95]],"dialogImageLoadingGradient":[[64,64,64],[32,32,32]],"dialogLayerBackground":[0,0,0],"dialogReflectionGradient":[[48,48,48,0.75],[48,48,48,1]],"documentBorder":[48,48,48],"documentCodeColor":[192,192,255],"documentLabelBackground":[16,16,16],"documentWarningColor":[192,0,0],"formelementBorder":[48,48,48],"formelementColor":[192,192,192],"formelementFocusShadow":[128,128,128],"formelementOverlayBorder":[255,255,255,0.75],"formelementOverlayColor":[255,255,255],"formelementOverlayShadow":[0,0,0],"gridGradient":[[8,8,8],[24,24,24]],"imageLoadingGradient":[[32,32,32],[0,0,0]],"inputGradient":[[0,0,0],[32,32,32]],"inputActiveGradient":[[16,16,16],[48,48,48]],"inputDisabledColor":[64,64,64],"inputDisabledGradient":[[16,16,16],[16,16,16]],"inputErrorColor":[255,64,64],"inputFocusBorder":[48,48,48],"inputFocusShadow":[0,0,0,0],"inputPlaceholderColor":[96,96,96],"labelBackground":[80,80,80],"labelDisabledColor":[128,128,128],"labelOverlayBackground":[0,0,0,0.5],"labelOverlayDisabledColor":[160,160,160],"listHeadBorder":[24,24,24],"listHeadSelectedColor":[255,255,255],"listHeadSelectedGradient":[[80,80,80],[48,48,48]],"listIconLoadingBorder":[48,48,48],"listIconLoadingGradient":[[32,32,32],[0,0,0]],"listIconFocusSelectedBorder":[128,128,128],"listIconFocusSelectedShadow":[128,128,128],"listIconSelectedBorder":[96,96,96],"listIconSelectedShadow":[96,96,96],"listIconLabelFocusSelectedBorder":[128,128,128],"listIconLabelFocusSelectedGradient":[[128,128,128,0.5],[128,128,128,0.5]],"listIconLabelFocusSelectedShadow":[128,128,128],"listIconLabelSelectedBorder":[96,96,96],"listIconLabelSelectedGradient":[[96,96,96,0.5],[96,96,96,0.5]],"listIconLabelSelectedShadow":[96,96,96],"listIconTextShadow":[16,16,16],"listIconTextFocusSelectedShadow":[0,0,0],"listIconTextSelectedShadow":[16,16,16],"listIconTextHighlightColor":[255,255,0],"listIconTextHighlightGradient":[[0,0,0,0],[0,0,0,0]],"listItemBorder":[24,24,24],"listItemGradient":[[16,16,16],[16,16,16]],"listItemOddGradient":[[14,14,14],[14,14,14]],"listItemEvenGradient":[[18,18,18],[18,18,18]],"listItemDropBorder":[88,88,88],"listItemDropOddGradient":[[78,78,78],[78,78,78]],"listItemDropEvenGradient":[[82,82,82],[82,82,82]],"listItemFocusSelectedBorder":[72,72,72],"listItemFocusSelectedColor":[255,255,255],"listItemFocusSelectedGradient":[[64,64,64],[64,64,64]],"listItemFocusSelectedOddGradient":[[62,62,62],[62,62,62]],"listItemFocusSelectedEvenGradient":[[66,66,66],[66,66,66]],"listItemSelectedBorder":[56,56,56],"listItemSelectedColor":[240,240,240],"listItemSelectedGradient":[[48,48,48],[48,48,48]],"listItemSelectedOddGradient":[[46,46,46],[46,46,46]],"listItemSelectedEvenGradient":[[50,50,50],[50,50,50]],"mapControlBorder":[192,192,192],"mapControlColor":[192,192,192],"mapControlGradient":[[0,0,0,0.5],[0,0,0,0.5]],"mapPlaceBorder":[0,0,0],"mapPlaceEditingBorder":[128,128,255],"mapPlaceSelectedBorder":[255,255,255],"mapPlaceBoroughColor":[255,128,0],"mapPlaceBuildingColor":[255,64,128],"mapPlaceCityColor":[255,0,0],"mapPlaceCountryColor":[64,64,255],"mapPlaceFeatureColor":[0,192,0],"mapPlaceRegionColor":[0,192,192],"mapPlaceStreetColor":[255,255,0],"mediaBackground":[16,16,16],"mediaColor":[240,240,240],"mediaReflectionGradient":[[16,16,16,0.75],[16,16,16,1]],"mediaListIconLoadingBorder":[48,48,48],"mediaListIconLoadingGradient":[[32,32,32],[0,0,0]],"mediaListIconFocusSelectedBorder":[128,128,128],"mediaListIconFocusSelectedShadow":[128,128,128],"mediaListIconSelectedBorder":[96,96,96],"mediaListIconSelectedShadow":[96,96,96],"mediaListIconLabelFocusSelectedBorder":[128,128,128],"mediaListIconLabelFocusSelectedGradient":[[128,128,128,0.5],[128,128,128,0.5]],"mediaListIconLabelFocusSelectedShadow":[128,128,128],"mediaListIconLabelSelectedBorder":[96,96,96],"mediaListIconLabelSelectedGradient":[[96,96,96,0.5],[96,96,96,0.5]],"mediaListIconLabelSelectedShadow":[96,96,96],"mediaListIconTextColor":[240,240,240],"mediaListIconTextFocusSelectedColor":[255,255,255],"mediaListIconTextSelectedColor":[240,240,240],"mediaListIconTextLightColor":[128,128,128],"mediaListIconTextFocusSelectedLightColor":[128,128,128],"mediaListIconTextSelectedLightColor":[128,128,128],"mediaListIconTextShadow":[16,16,16],"mediaListIconTextFocusSelectedShadow":[0,0,0],"mediaListIconTextSelectedShadow":[16,16,16],"menuBackground":[48,48,48,0.96],"menuBorder":[64,64,64,0.96],"menuShadow":[0,0,0,0.75],"menuDisabledColor":[128,128,128],"menuSelectedColor":[255,255,255],"menuSelectedGradient":[[64,64,64,0.96],[64,64,64,0.96]],"progressbarBackground":[255,255,255,0.05],"progressbarAnimateBackground":[255,255,255,0.1],"screenBackground":[32,32,32],"screenColor":[224,224,224],"screenReflectionGradient":[[32,32,32,0.75],[32,32,32,1],[32,32,32,1]],"scrollbarCornerGradient":[[96,96,96],[32,32,32]],"sourcecodeBackground":[0,0,0],"sourcecodeCommentColor":[128,128,128],"sourcecodeConstantColor":[192,64,64],"sourcecodeErrorBackground":[255,0,0],"sourcecodeErrorColor":[255,255,255],"sourcecodeIdentifierColor":[192,192,192],"sourcecodeKeywordColor":[128,128,255],"sourcecodeLinenumbersBackground":[32,32,32],"sourcecodeLinenumbersColor":[128,128,128],"sourcecodeMethodColor":[64,192,192],"sourcecodeNumberColor":[192,64,64],"sourcecodeObjectColor":[64,192,192],"sourcecodeOperatorColor":[128,128,255],"sourcecodePropertyColor":[64,192,64],"sourcecodeRegexpColor":[192,192,64],"sourcecodeSpecialColor":[64,64,64],"sourcecodeStringColor":[64,192,64],"sourcecodeWhitespaceBackground":[255,255,0],"sourceviewerCodeBackground":[0,0,0],"sourceviewerCodeShadow":[255,255,255],"symbolDefaultColor":[192,192,192],"symbolDisabledColor":[128,128,128],"symbolFailedColor":[192,0,0],"symbolOverlayColor":[255,255,255],"symbolOverlayDisabledColor":[160,160,160],"symbolOverlaySelectedColor":[255,255,255],"symbolPassedColor":[0,192,0],"symbolSelectedColor":[255,255,255],"symbolVideoColor":[255,255,255],"symbolVideoIconColor":[255,255,255],"symbolWarningColor":[255,0,0],"tooltipBorder":[128,128,128,0.96],"tooltipColor":[128,128,128],"tooltipGradient":[[0,0,0,0.96],[0,0,0,0.96]],"tooltipShadow":[0,0,0,0.5],"videoBarGradient":[[64,64,64,0.5],[0,0,0,0.5]],"videoButtonGradient":[[64,64,64,0.75],[0,0,0,0.75]],"videoButtonActiveGradient":[[64,64,64],[0,0,0]],"videoInputGradient":[[32,32,32,0.75],[64,64,64,0.75]],"videoMenuBackground":[32,32,32,0.5],"videoMenuBorder":[64,64,64,0.5],"videoMenuDisabledColor":[255,255,255,0.5],"videoMenuSelectedGradient":[[64,64,64,0.5],[32,32,32,0.5]],"videoAnnotationEditableEditingBackground":[64,128,64],"videoAnnotationEditableEditingColor":[255,255,255],"videoAnnotationEditableSelectedBackground":[64,64,192],"videoAnnotationEditableSelectedShadow":[255,255,255],"videoAnnotationSelectedBackground":[48,48,48],"videoAnnotationSeparatorColor":[160,160,160],"videoMarkerBackground":[0,0,0],"videoMarkerBorder":[255,255,255],"videoTimelineDefaultGradient":[[32,32,32],[244,244,244]],"videoTimelineEditableGradient":[[0,0,128],[128,128,255]],"videoTimelineEditingGradient":[[0,128,0],[128,255,128]],"videoTimelineResultGradient":[[0,0,0],[255,255,0]],"videoTimelineSelectedGradient":[[0,0,0],[255,255,255]],"videoTimelineMarkerShadow":[0,0,0,0.5],"videoTimelineMarkerPausedBorder":[255,255,255,0.5],"videoTimelineMarkerPlayingBorder":[255,255,255]} |