Skip to content

Commit b381a87

Browse files
Updated page content
1 parent ee81b68 commit b381a87

File tree

6 files changed

+140
-6
lines changed

6 files changed

+140
-6
lines changed

OnixLabs.Web/Areas/Home/Pages/Index.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
</div>
2323
<Paragraph Class="sr-only">Image for illustration purposes only</Paragraph>
2424
<Paragraph Class="mt-5 animate__animated animate__fadeInDown" Lead="true">
25-
<strong>Aero is the .NET platform for fast, scalable, enterprise-grade engineering.</strong>
25+
<strong>Aero is a modular suite of .NET APIs designed for fast, scalable, enterprise engineering.</strong>
2626
<br/>
2727
<span>It helps teams ship quickly, scale confidently, and modernize everything from cloud-native apps to legacy systems.</span>
2828
</Paragraph>

OnixLabs.Web/Areas/Products/Pages/Aero/AeroPlatform.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
UrlLight="onixlabs/images/logo/aero-dark.svg"
1010
UrlDark="onixlabs/images/logo/aero-light.svg"/>
1111
</div>
12-
<Callout>The modular platform for enterprise .NET development</Callout>
12+
<Callout>The modular .NET suite for enterprise engineering</Callout>
1313
<div class="col-12 col-md-6 offset-md-3 mt-5">
1414
<ThemeImage
1515
Class="img-fluid" Description="Aero Platform"
1616
UrlDark="onixlabs/images/marketing/macbook-pro-dark.svg"
1717
UrlLight="onixlabs/images/marketing/macbook-pro.svg"/>
1818
</div>
1919
<Paragraph class="mt-5" Lead="true">
20-
<strong>Aero is the .NET platform for fast, scalable, enterprise-grade engineering.</strong>
20+
<strong>Aero is a modular suite of .NET APIs designed for fast, scalable, enterprise engineering.</strong>
2121
<br/>
2222
<span>It helps teams ship quickly, scale confidently, and modernize everything from cloud-native apps to legacy systems.</span>
2323
</Paragraph>

OnixLabs.Web/Areas/Products/Pages/Index.razor

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818
</Section>
1919

2020
<Section Class="bg-secondary-subtle bloom-reverse" Centered="true">
21-
<Headline Class="text-white">Meet Aero Platform</Headline>
22-
<Callout Class="text-white-50">The modular .NET platform for enterprise development</Callout>
21+
<Headline Class="text-white">Introducing AERO</Headline>
22+
<Callout Class="text-white-50">The modular .NET suite for enterprise engineering</Callout>
2323
<div class="col-12 col-md-6 offset-md-3 mt-5">
2424
<ThemeImage
2525
Class="img-fluid" Description="ONIXLabs Aero"
2626
UrlDark="onixlabs/images/marketing/macbook-pro-dark.svg"
2727
UrlLight="onixlabs/images/marketing/macbook-pro.svg"/>
2828
</div>
2929
<Paragraph class="mt-5" Lead="true">
30-
<strong>Aero is the .NET platform for fast, scalable, enterprise-grade engineering.</strong>
30+
<strong>Aero is a modular suite of .NET APIs designed for fast, scalable, enterprise engineering.</strong>
3131
<br/>
3232
<span>It helps teams ship quickly, scale confidently, and modernize everything from cloud-native apps to legacy systems.</span>
3333
</Paragraph>

OnixLabs.Web/Areas/Products/Pages/Kotlin/KotlinCoreLibrary.razor

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,55 @@
2727
<Section>
2828
<Headline Centered="true">APIs at a Glance</Headline>
2929
<Callout Centered="true">Discover the capabilities built to elevate your Kotlin applications</Callout>
30+
31+
<Row>
32+
<Summary Title="Primitive Type Extensions">
33+
<Paragraph>
34+
Extension functions for Int, Float, Double, Long, Short, Byte, and BigDecimal provide constants
35+
like ZERO and ONE, as well as numeric utilities such as isInteger, toBigDecimal, toBigInteger, and more.
36+
These help express numeric logic clearly and idiomatically across different scales and types.
37+
</Paragraph>
38+
</Summary>
39+
<Summary Title="String & Text Utilities">
40+
<Paragraph>
41+
Adds the String.EMPTY constant and methods like wrap, toUpperSnakeCase, toLowerSnakeCase, toUpperKebabCase, and
42+
toLowerKebabCase. These provide fluent transformations for formatting, serialization, and identifier generation.
43+
</Paragraph>
44+
</Summary>
45+
</Row>
46+
47+
<Row>
48+
<Summary Title="Reflection Extensions">
49+
<Paragraph>
50+
Extension support for KClass, and KType helps bridge Kotlin's reflection and sequence APIs with
51+
concise, reusable operations. These utilities enable safer introspection patterns.
52+
</Paragraph>
53+
</Summary>
54+
<Summary Title="Date and Time Utilities">
55+
<Paragraph>
56+
Utility functions in and domain types like DayOfMonth and DayOfMonthOccurrence provide
57+
expressive ways to model time-related logic, such as monthly scheduling and ISO duration formatting.
58+
</Paragraph>
59+
</Summary>
60+
</Row>
61+
62+
<Row>
63+
<Summary Title="Console Color">
64+
<Paragraph>
65+
Console styling is powered by the ConsoleColor enum, which defines a full palette of ANSI-compatible foreground and
66+
background colors. Paired with ConsoleColorModifier, these colors can be dynamically formatted using escape sequences for
67+
terminal output. Extensions to the Console API make it easy to apply structured styles in CLI applications, ideal for
68+
highlighting logs, prompts, errors, and results with clear visual cues.
69+
</Paragraph>
70+
</Summary>
71+
<Summary Title="Type Conversion API">
72+
<Paragraph>
73+
A robust set of type converters; for example, IntTypeConverter, UUIDTypeConverter, BigDecimalTypeConverter, and more,
74+
enable safe, declarative casting between primitives and complex types. Includes custom exception handling via
75+
IllegalTypeConversionException for reliable validation.
76+
</Paragraph>
77+
</Summary>
78+
</Row>
3079
</Section>
3180

3281
<Section Class="bg-kotlin text-white">

OnixLabs.Web/Areas/Products/Pages/Kotlin/KotlinProjectionLibrary.razor

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,40 @@
2626
<Section>
2727
<Headline Centered="true">APIs at a Glance</Headline>
2828
<Callout Centered="true">Discover the capabilities built to elevate your Kotlin applications</Callout>
29+
30+
<Row>
31+
<Summary Title="Type-Safe Projection">
32+
<Paragraph>
33+
The Kotlin Projection API provides a robust, type-safe mechanism for mapping one object to another using Kotlin reflection.
34+
At its core is the Projector abstract class, which drives the transformation logic by inspecting constructor parameters
35+
and applying registered type converters. Projections can be fully automatic or manually customized through builder lambdas.
36+
</Paragraph>
37+
</Summary>
38+
<Summary Title="Projection Builder DSL">
39+
<Paragraph>
40+
The ProjectionBuilder offers a fluent DSL for defining projection rules, including support for custom value injection,
41+
conditional mapping, and cross-property conversions. It supports multiple syntaxes (e.g., by property, by name, or via
42+
lambda), enabling fine-grained control over how data flows from source to target types.
43+
</Paragraph>
44+
</Summary>
45+
</Row>
46+
47+
<Row>
48+
<Summary Title="Type Converter Configuration">
49+
<Paragraph>
50+
Projections rely on a flexible TypeConverterConfiguration registry that resolves appropriate converters between types.
51+
Default behavior includes identity conversion for matching types and custom error handling for unknown mappings. You can
52+
register your own converters or override defaults for granular control of how values are translated.
53+
</Paragraph>
54+
</Summary>
55+
<Summary Title="Projection Safety">
56+
<Paragraph>
57+
Projection failures are wrapped in ProjectionException, with contextual diagnostics such as mismatched types, missing
58+
parameters, and nullability violations. ProjectionContext ensures every value is validated against its target parameter's
59+
constraints, enforcing safe, predictable transformation logic during runtime.
60+
</Paragraph>
61+
</Summary>
62+
</Row>
2963
</Section>
3064

3165
<Section Class="bg-kotlin text-white">

OnixLabs.Web/Areas/Products/Pages/Kotlin/KotlinValidationLibrary.razor

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,57 @@
2525
<Section>
2626
<Headline Centered="true">APIs at a Glance</Headline>
2727
<Callout Centered="true">Discover the capabilities built to elevate your Kotlin applications</Callout>
28+
29+
<Row>
30+
<Summary Title="Validator & Validation Builder">
31+
<Paragraph>
32+
The Validator class orchestrates object validation through a builder DSL. The ValidationBuilder exposes concise
33+
property, function, and allProperties entry points that bind validations to data points. Assertions can be
34+
applied to any callable—including functions with up to 9 parameters—enabling flexible, expressive validation rules.
35+
</Paragraph>
36+
</Summary>
37+
<Summary Title="Member Assertion Context">
38+
<Paragraph>
39+
Each member under validation operates in a scoped MemberAssertionContext, which provides DSL-style syntax for
40+
expressing constraints using validate(condition, message) or nesting validations using validateWith(...).
41+
This enables clear local reasoning for both leaf and nested properties in complex object graphs.
42+
</Paragraph>
43+
</Summary>
44+
</Row>
45+
46+
<Row>
47+
<Summary Title="Tree-Structured Validation Results">
48+
<Paragraph>
49+
Validation results are composed into a graph of ValidationResult and MemberResult nodes. These support deep
50+
inspection of validation failures across nested models, with automatic tracking of callables, types, and locations
51+
in the graph. Each assertion captures its exact position and semantics, ideal for debugging or UI feedback.
52+
</Paragraph>
53+
</Summary>
54+
<Summary Title="Assertion Semantics & Types">
55+
<Paragraph>
56+
Assertions are represented by MemberAssertion, which includes a failure message, type (relative or absolute),
57+
and a ValidationCondition. This allows layering of contextualized error messaging while supporting flexible
58+
validation modes.
59+
</Paragraph>
60+
</Summary>
61+
</Row>
62+
63+
<Row>
64+
<Summary Title="Validation Modes & Exception Handling">
65+
<Paragraph>
66+
The engine supports multiple modes: STOP_ON_ERROR halts validation at the first failure, while EMULATION
67+
collects all failures into a complete result set. Exceptions are thrown as ValidationException or
68+
ValidationGraphException, and include detailed paths to the failing assertion within the graph.
69+
</Paragraph>
70+
</Summary>
71+
<Summary Title="Collection & Map Validations">
72+
<Paragraph>
73+
The API includes specialized support for Iterable, Map, String, Boolean, and Comparable extensions.
74+
These offer idiomatic assertions like isNullOrEmpty(), isTrue(), hasSize(...), isGreaterThan(...),
75+
and more, enabling readable, type-safe validation logic across domain types.
76+
</Paragraph>
77+
</Summary>
78+
</Row>
2879
</Section>
2980

3081
<Section Class="bg-kotlin text-white">

0 commit comments

Comments
 (0)