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.8 KiB
JSON
1 line
No EOL
9.8 KiB
JSON
{"themeName":"Ox Medium","themeBackgroundLightness":0.75,"themeColorLightness":0.25,"barGradient":[[160,160,160],[128,128,128]],"barHighlightColor":[0,0,0],"barHighlightGradient":[[255,255,0],[192,192,0]],"barSelectedColor":[255,255,255],"barSelectedGradient":[[128,128,128],[96,96,96]],"bodyBackground":[144,144,144],"bodyBorder":[128,128,128],"bodyColor":[0,0,0],"bodyBrightColor":[0,0,0],"bodyHighlightColor":[0,0,0],"bodyHighlightGradient":[[255,255,0],[255,255,0]],"bodyLightColor":[64,64,64],"bodyFocusSelectedLightColor":[192,192,192],"bodySelectedLightColor":[192,192,192],"bodyLinkColor":[0,0,128],"bodySpecialLinkColor":[0,0,128],"bodySpecialLinkGradient":[[160,160,160],[160,160,160]],"bodySpecialLinkActiveColor":[0,0,64],"bodySpecialLinkActiveGradient":[[176,176,176],[176,176,176]],"bodyReflectionGradient":[[144,144,144,0.75],[144,144,144,1]],"bodySelectionBackground":[112,112,112],"bodySelectionColor":[255,255,255],"bodyWarningBorder":[255,64,64],"buttonGradient":[[176,176,176],[144,144,144]],"buttonActiveColor":[0,0,0],"buttonActiveGradient":[[160,160,160],[160,160,160]],"buttonDisabledColor":[96,96,96],"buttonDisabledGradient":[[176,176,176],[144,144,144]],"buttonSelectedColor":[255,255,255],"buttonSelectedGradient":[[96,96,96],[128,128,128]],"buttonOverlayGradient":[[176,176,176,0.75],[144,144,144,0.75]],"buttonOverlayActiveColor":[255,255,255],"buttonOverlayActiveGradient":[[0,0,0,0.5],[0,0,0,0.5]],"buttonOverlayDisabledColor":[96,96,96],"buttonOverlayDisabledGradient":[[160,160,160,0.75],[160,160,160,0.75]],"buttonOverlaySelectedColor":[255,255,255],"buttonOverlaySelectedGradient":[[80,80,80,0.5],[80,80,80,0.5]],"calendarBackground":[128,128,128],"calendarControlBorder":[64,64,64],"calendarControlColor":[0,0,0],"calendarControlGradient":[[160,160,160,0.75],[160,160,160,0.75]],"calendarEventColor":[0,0,0],"calendarEventShadow":[0,0,0],"calendarEventDateGradient":[[128,128,255,0.9],[96,96,224,0.9]],"calendarEventOtherGradient":[[255,128,128,0.9],[224,96,96,0.9]],"calendarEventPersonGradient":[[255,128,0,0.9],[224,96,0,0.9]],"calendarEventPlaceGradient":[[0,192,96,0.9],[0,160,64,0.9]],"calendarLineBackground":[112,112,112],"calendarOverlayOddBackground":[255,255,255,0.25],"calendarOverlayEvenBackground":[0,0,0,0.25],"calendarOverlayEvenShadow":[0,0,0],"calendarTimelineOddGradient":[[176,176,176],[144,144,144]],"calendarTimelineEvenGradient":[[160,160,160],[128,128,128]],"colorBlue":[],"colorCyan":[],"colorGreen":[],"colorMagenta":[],"colorOrange":[],"colorRed":[],"colorYellow":[],"dialogBackground":[160,160,160,0.95],"dialogShadow":[0,0,0,0.75],"dialogBarGradient":[[176,176,176,0.95],[144,144,144,0.95]],"dialogImageLoadingGradient":[[176,176,176],[144,144,144]],"dialogLayerBackground":[0,0,0],"dialogReflectionGradient":[[160,160,160,0.75],[160,160,160,1]],"documentBorder":[128,128,128],"documentCodeColor":[0,0,64],"documentLabelBackground":[144,144,144],"documentWarningColor":[192,0,0],"formelementBorder":[128,128,128],"formelementColor":[0,0,0],"formelementFocusShadow":[192,192,192],"formelementOverlayBorder":[0,0,0,0.75],"formelementOverlayColor":[0,0,0],"formelementOverlayShadow":[160,160,160],"gridGradient":[[152,152,152],[136,136,136]],"imageLoadingGradient":[[160,160,160],[128,128,128]],"inputGradient":[[144,144,144],[176,176,176]],"inputActiveGradient":[[160,160,160],[192,192,192]],"inputDisabledColor":[96,96,96],"inputDisabledGradient":[[144,144,144],[144,144,144]],"inputErrorColor":[192,64,64],"inputFocusBorder":[192,192,192],"inputFocusShadow":[192,192,192],"inputPlaceholderColor":[96,96,96],"labelBackground":[160,160,160],"labelDisabledColor":[128,128,128],"labelOverlayBackground":[160,160,160,0.75],"labelOverlayDisabledColor":[128,128,128],"listHeadBorder":[128,128,128],"listHeadSelectedColor":[255,255,255],"listHeadSelectedGradient":[[128,128,128],[96,96,96]],"listIconLoadingBorder":[112,112,112],"listIconLoadingGradient":[[160,160,160],[128,128,128]],"listIconFocusSelectedBorder":[96,96,96],"listIconFocusSelectedShadow":[96,96,96],"listIconSelectedBorder":[112,112,112],"listIconSelectedShadow":[112,112,112],"listIconLabelFocusSelectedBorder":[96,96,96],"listIconLabelFocusSelectedGradient":[[112,112,112],[112,112,112]],"listIconLabelFocusSelectedShadow":[96,96,96],"listIconLabelSelectedBorder":[112,112,112],"listIconLabelSelectedGradient":[[128,128,128],[128,128,128]],"listIconLabelSelectedShadow":[112,112,112],"listIconTextShadow":[144,144,144],"listIconTextFocusSelectedShadow":[64,64,64],"listIconTextSelectedShadow":[64,64,64],"listIconTextHighlightColor":[255,255,0],"listIconTextHighlightGradient":[[0,0,0,0],[0,0,0,0]],"listItemBorder":[128,128,128],"listItemGradient":[[144,144,144],[144,144,144]],"listItemOddGradient":[[146,146,146],[146,146,146]],"listItemEvenGradient":[[142,142,142],[142,142,142]],"listItemDropBorder":[176,176,176],"listItemDropOddGradient":[[194,194,194],[194,194,194]],"listItemDropEvenGradient":[[190,190,190],[190,190,190]],"listItemFocusSelectedBorder":[96,96,96],"listItemFocusSelectedColor":[255,255,255],"listItemFocusSelectedGradient":[[112,112,112],[112,112,112]],"listItemFocusSelectedOddGradient":[[114,114,114],[114,114,114]],"listItemFocusSelectedEvenGradient":[[110,110,110],[110,110,110]],"listItemSelectedBorder":[112,112,112],"listItemSelectedColor":[255,255,255],"listItemSelectedGradient":[[128,128,128],[128,128,128]],"listItemSelectedOddGradient":[[130,130,130],[130,130,130]],"listItemSelectedEvenGradient":[[126,126,126],[126,126,126]],"mapControlBorder":[0,0,0],"mapControlColor":[0,0,0],"mapControlGradient":[[160,160,160,0.75],[160,160,160,0.75]],"mapPlaceBorder":[0,0,0],"mapPlaceEditingBorder":[64,128,192],"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":[144,144,144],"mediaColor":[0,0,0],"mediaReflectionGradient":[[144,144,144,0.75],[144,144,144,1]],"mediaListIconLoadingBorder":[112,112,112],"mediaListIconLoadingGradient":[[160,160,160],[128,128,128]],"mediaListIconFocusSelectedBorder":[96,96,96],"mediaListIconFocusSelectedShadow":[96,96,96],"mediaListIconSelectedBorder":[112,112,112],"mediaListIconSelectedShadow":[112,112,112],"mediaListIconLabelFocusSelectedBorder":[96,96,96],"mediaListIconLabelFocusSelectedGradient":[[112,112,112],[112,112,112]],"mediaListIconLabelFocusSelectedShadow":[96,96,96],"mediaListIconLabelSelectedBorder":[112,112,112],"mediaListIconLabelSelectedGradient":[[128,128,128],[128,128,128]],"mediaListIconLabelSelectedShadow":[112,112,112],"mediaListIconTextColor":[0,0,0],"mediaListIconTextFocusSelectedColor":[255,255,255],"mediaListIconTextSelectedColor":[255,255,255],"mediaListIconTextLightColor":[64,64,64],"mediaListIconTextFocusSelectedLightColor":[192,192,192],"mediaListIconTextSelectedLightColor":[192,192,192],"mediaListIconTextShadow":[144,144,144],"mediaListIconTextFocusSelectedShadow":[64,64,64],"mediaListIconTextSelectedShadow":[64,64,64],"menuBackground":[160,160,160,0.96],"menuBorder":[144,144,144,0.96],"menuShadow":[0,0,0,0.75],"menuDisabledColor":[96,96,96],"menuSelectedColor":[255,255,255],"menuSelectedGradient":[[128,128,128,0.96],[128,128,128,0.96]],"progressbarBackground":[0,0,0,0.05],"progressbarAnimateBackground":[0,0,0,0.1],"screenBackground":[128,128,128],"screenColor":[0,0,0],"screenReflectionGradient":[[128,128,128,0.75],[128,128,128,1],[128,128,128,1]],"scrollbarCornerGradient":[[176,176,176],[112,112,112]],"sourcecodeBackground":[160,160,160],"sourcecodeCommentColor":[96,96,96],"sourcecodeConstantColor":[128,0,0],"sourcecodeErrorBackground":[255,255,255],"sourcecodeErrorColor":[255,255,0],"sourcecodeIdentifierColor":[0,0,0],"sourcecodeKeywordColor":[0,0,128],"sourcecodeLinenumbersBackground":[176,176,176],"sourcecodeLinenumbersColor":[128,128,128],"sourcecodeMethodColor":[0,128,128],"sourcecodeNumberColor":[128,0,0],"sourcecodeObjectColor":[0,128,128],"sourcecodeOperatorColor":[0,0,128],"sourcecodePropertyColor":[0,128,0],"sourcecodeRegexpColor":[128,128,0],"sourcecodeStringColor":[0,128,0],"sourcecodeSpecialColor":[192,192,192],"sourcecodeWhitespaceBackground":[255,255,0],"sourceviewerCodeBackground":[160,160,160],"sourceviewerCodeShadow":[144,144,144],"symbolDefaultColor":[0,0,0],"symbolDisabledColor":[64,64,64],"symbolFailedColor":[192,64,64],"symbolOverlayColor":[0,0,0],"symbolOverlayDisabledColor":[80,80,80],"symbolOverlaySelectedColor":[255,255,255],"symbolPassedColor":[64,192,64],"symbolSelectedColor":[255,255,255],"symbolVideoColor":[0,0,0],"symbolVideoIconColor":[255,255,255],"symbolWarningColor":[255,0,0],"tooltipBorder":[128,128,128,0.96],"tooltipColor":[0,0,0],"tooltipGradient":[[160,160,160,0.96],[160,160,160,0.96]],"tooltipShadow":[0,0,0,0.5],"videoBarGradient":[[160,160,160,0.5],[128,128,128,0.5]],"videoButtonGradient":[[160,160,160,0.75],[128,128,128,0.75]],"videoButtonActiveGradient":[[160,160,160],[128,128,128]],"videoInputGradient":[[128,128,128,0.75],[160,160,160,0.75]],"videoMenuBackground":[160,160,160,0.5],"videoMenuBorder":[144,144,144,0.5],"videoMenuDisabledColor":[0,0,0,0.5],"videoMenuSelectedGradient":[[128,128,128,0.5],[128,128,128,0.5]],"videoAnnotationEditableEditingBackground":[64,192,64],"videoAnnotationEditableEditingColor":[0,0,0],"videoAnnotationEditableSelectedBackground":[64,128,192],"videoAnnotationEditableSelectedShadow":[64,64,64],"videoAnnotationSelectedBackground":[112,112,112],"videoAnnotationSeparatorColor":[96,96,96],"videoMarkerBackground":[255,255,255],"videoMarkerBorder":[0,0,0],"videoTimelineDefaultGradient":[[64,64,64],[192,192,192]],"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]} |