@@ -300,7 +300,16 @@ This change makes your API more secure by requiring explicit opt-in for all RPC
300300- [Quick Start](#quick-start)
301301- [Core Concepts](#core-concepts)
302302- [Usage Examples](#usage-examples)
303- - [Advanced Features](#advanced-features)
303+ - [Embedded Resources](#embedded-resources)
304+ - [Union Types](#union-types)
305+ - [Multitenancy Support](#multitenancy-support)
306+ - [Calculations and Aggregates](#calculations-and-aggregates)
307+ - [Action Metadata Support](#action-metadata-support)
308+ - [Zod Runtime Validation](#zod-runtime-validation)
309+ - [Form Validation Functions](#form-validation-functions)
310+ - [Type-Safe Filtering](#type-safe-filtering)
311+ - [Typed Queries for SSR](#typed-queries-for-ssr)
312+ - [Flexible Field Formatting](#flexible-field-formatting)
304313- [Configuration](#configuration)
305314- [Mix Tasks](#mix-tasks)
306315- [API Reference](#api-reference)
@@ -814,9 +823,7 @@ if (result.success) {
814823}
815824` ` `
816825
817- # # 🔧 Advanced Features
818-
819- # ## Embedded Resources
826+ # # 📦 Embedded Resources
820827
821828Full support for embedded resources with type safety:
822829
@@ -838,7 +845,7 @@ const todo = await getTodo({
838845});
839846` ` `
840847
841- # ## Union Types
848+ # # 🔀 Union Types
842849
843850Support for Ash union types with selective field access:
844851
@@ -863,7 +870,7 @@ const todo = await getTodo({
863870});
864871` ` `
865872
866- # ## Multitenancy Support
873+ # # 🏢 Multitenancy Support
867874
868875Automatic tenant parameter handling for multitenant resources:
869876
@@ -880,7 +887,7 @@ const todos = await listTodos({
880887});
881888` ` `
882889
883- # ## Calculations and Aggregates
890+ # # 🧮 Calculations and Aggregates
884891
885892Full support for Ash calculations with type inference:
886893
@@ -900,9 +907,7 @@ const users = await listUsers({
900907});
901908` ` `
902909
903- # # 🚀 Advanced Features
904-
905- # ## Action Metadata Support
910+ # # 📊 Action Metadata Support
906911
907912AshTypescript provides full support for [Ash action metadata](https://hexdocs.pm/ash/dsl-ash-resource.html#actions-read-metadata).
908913
@@ -1153,7 +1158,7 @@ Suggested mapping: is_cached? → isCached
11531158Use the metadata_field_names option to provide valid TypeScript identifiers.
11541159```
11551160
1156- ### Zod Runtime Validation
1161+ ## 🧪 Zod Runtime Validation
11571162
11581163AshTypescript generates Zod schemas for all your actions, enabling runtime type checking and form validation.
11591164
@@ -1184,7 +1189,7 @@ export const createTodoZodSchema = z.object({
11841189});
11851190```
11861191
1187- ### Form Validation Functions
1192+ ## 📋 Form Validation Functions
11881193
11891194AshTypescript generates dedicated validation functions for client-side form validation when `generate_validation_functions` is enabled:
11901195
@@ -1236,7 +1241,7 @@ validateCreateTodoChannel({
12361241});
12371242```
12381243
1239- ### Type-Safe Filtering
1244+ ## 🔍 Type-Safe Filtering
12401245
12411246AshTypescript automatically generates comprehensive filter types for all resources:
12421247
@@ -1269,7 +1274,7 @@ const todos = await listTodos({
12691274- **Logic**: `and`, `or`, `not`
12701275- **Relationships**: Nested filtering on related resources
12711276
1272- ### Typed Queries for SSR
1277+ ## 🎯 Typed Queries for SSR
12731278
12741279Define reusable, type-safe queries for server-side rendering and optimized data fetching:
12751280
@@ -1356,7 +1361,7 @@ const refreshedTodos = await listTodos({
13561361});
13571362```
13581363
1359- ### Flexible Field Formatting
1364+ ## 🎨 Flexible Field Formatting
13601365
13611366Configure separate formatters for input parsing and output generation:
13621367
0 commit comments