From 3175f9e2835a3bf00b6e59402f88d9da4a6b3439 Mon Sep 17 00:00:00 2001 From: rameel Date: Sun, 30 Aug 2026 23:42:09 +0500 Subject: [PATCH 1/7] Remove impractical StopPolling property from HtmxResponseAttribute The attribute stopped polling unconditionally whenever the action was invoked. Useful polling termination is normally conditional, while making this property work required a dedicated action and additional routing complexity for a very narrow use case --- README.md | 4 +--- .../HtmxResponseAttribute.cs | 8 ------- .../HtmxResponseAttributeTests.cs | 23 ------------------- 3 files changed, 1 insertion(+), 34 deletions(-) diff --git a/README.md b/README.md index aa8c142..29eb877 100644 --- a/README.md +++ b/README.md @@ -406,9 +406,7 @@ to a controller or action: public class UserController : ControllerBase { [HtmxRequest] - [HtmxResponse( - StopPolling = true, - Reswap = HtmxSwap.OuterHtml)] + [HtmxResponse(Reswap = HtmxSwap.OuterHtml)] public IActionResult UpdateProfile(UserProfile profile) { ... diff --git a/src/Ramstack.HtmxToolkit/HtmxResponseAttribute.cs b/src/Ramstack.HtmxToolkit/HtmxResponseAttribute.cs index 8770ba6..f5d4a9b 100644 --- a/src/Ramstack.HtmxToolkit/HtmxResponseAttribute.cs +++ b/src/Ramstack.HtmxToolkit/HtmxResponseAttribute.cs @@ -68,20 +68,12 @@ public string Reselect set => SetValue(HtmxResponseHeaderNames.Reselect, value); } - /// - /// Gets or sets a value indicating whether to set HTTP status code 286 to stop polling. - /// - public bool StopPolling { get; set; } - /// public void OnResultExecuting(ResultExecutingContext context) { if (context.HttpContext.Request.IsHtmxRequest()) { var response = context.HttpContext.Response; - if (StopPolling) - response.StatusCode = HtmxResponse.StopPollingStatusCode; - var headers = response.Headers; foreach (ref var kvp in CollectionsMarshal.AsSpan(_headers)) headers[kvp.Key] = kvp.Value; diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxResponseAttributeTests.cs b/tests/Ramstack.HtmxToolkit.Tests/HtmxResponseAttributeTests.cs index cf711bb..1e29013 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxResponseAttributeTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/HtmxResponseAttributeTests.cs @@ -40,29 +40,6 @@ public void OnResultExecuting_SetsNoHeaders_ForNonHtmxRequest() Assert.That(ctx.Response.Headers.ContainsKey(HtmxResponseHeaderNames.Retarget), Is.False); } - [Test] - public void OnResultExecuting_SetsStopPollingStatusCode_WhenStopPolling() - { - var ctx = TestHelper.CreateHtmxRequestContext(); - var res = new HtmxResponseAttribute { StopPolling = true }; - - res.OnResultExecuting(CreateContext(ctx)); - - Assert.That(ctx.Response.StatusCode, Is.EqualTo(HtmxResponse.StopPollingStatusCode)); - } - - [Test] - public void OnResultExecuting_DoesNotSetStatusCode_WhenNotStopPolling() - { - var ctx = TestHelper.CreateHtmxRequestContext(); - var res = new HtmxResponseAttribute(); - - res.OnResultExecuting(CreateContext(ctx)); - - Assert.That(ctx.Response.StatusCode, Is.EqualTo(200)); - Assert.That(ctx.Response.StatusCode, Is.Not.EqualTo(HtmxResponse.StopPollingStatusCode)); - } - [Test] public void Properties_RoundTrips() { From 0512596d14d469387da6ee2a16139a1087b68491 Mon Sep 17 00:00:00 2001 From: rameel Date: Sun, 30 Aug 2026 23:55:25 +0500 Subject: [PATCH 2/7] Remove redundant IActionResult Htmx wrappers Using HttpResponse.Htmx(...) provides the same programming model for MVC, Razor Pages, and Minimal APIs. It also avoids introducing a parallel family of IResult wrappers for Minimal APIs, where wrapping TypedResults would require additional machinery to preserve endpoint and OpenAPI metadata. --- README.md | 10 ++- .../Pages/Examples/Headers.cshtml.cs | 9 +-- .../ActionResultExtensions.cs | 34 --------- src/Ramstack.HtmxToolkit/HtmxResult.cs | 24 ------ src/Ramstack.HtmxToolkit/HtmxResult`1.cs | 30 -------- .../HtmxResultTests.cs | 74 ------------------- 6 files changed, 11 insertions(+), 170 deletions(-) delete mode 100644 src/Ramstack.HtmxToolkit/ActionResultExtensions.cs delete mode 100644 src/Ramstack.HtmxToolkit/HtmxResult.cs delete mode 100644 src/Ramstack.HtmxToolkit/HtmxResult`1.cs delete mode 100644 tests/Ramstack.HtmxToolkit.Tests/HtmxResultTests.cs diff --git a/README.md b/README.md index 29eb877..60b752d 100644 --- a/README.md +++ b/README.md @@ -365,7 +365,7 @@ public static class HtmxResponseHeaderNames } ``` -The most convenient approach is to use one of the `Htmx` extension methods. +The most convenient approach is to use one of the `HttpResponse.Htmx` extension methods. Its callback receives an `HtmxResponse`, allowing you to configure response headers in a fluent style: ```csharp @@ -388,10 +388,14 @@ Response.Htmx( ShouldStopPolling); ``` -:bulb: The `Htmx` extension methods are also available for `IActionResult`, allowing you to write: +:bulb: The same API works in Minimal API handlers by binding `HttpResponse`: ```csharp -return Json(profile).Htmx(h => h.StopPolling(ShouldStopPolling)); +app.MapGet("/profile", (HttpResponse response) => +{ + response.Htmx(h => h.Retarget("#profile")); + return TypedResults.Content("
Profile
", "text/html"); +}); ``` In all these examples, headers are set only for an HTMX request. For a regular request, diff --git a/samples/Ramstack.HtmxToolkit.Demo/Pages/Examples/Headers.cshtml.cs b/samples/Ramstack.HtmxToolkit.Demo/Pages/Examples/Headers.cshtml.cs index 813b0c8..146eb8a 100644 --- a/samples/Ramstack.HtmxToolkit.Demo/Pages/Examples/Headers.cshtml.cs +++ b/samples/Ramstack.HtmxToolkit.Demo/Pages/Examples/Headers.cshtml.cs @@ -9,11 +9,10 @@ public IActionResult OnGetCustomHeader() { Response.Htmx(h => h .TriggerEvent("customEvent", new { message = "#1 Fired from server!" }) - .TriggerEvent("logEvent", new { message = $"Custom-Header = {Request.Headers["Custom-Header"]}" })); + .TriggerEvent("logEvent", new { message = $"Custom-Header = {Request.Headers["Custom-Header"]}" }) + .TriggerEvent("customEvent", new { message = "#2 Fired from server!" }) + .TriggerEvent("customEvent", new { message = "#3 Fired from server!" })); - return Content("Custom headers sent!") - .Htmx(h => h - .TriggerEvent("customEvent", new { message = "#2 Fired from server!" }) - .TriggerEvent("customEvent", new { message = "#3 Fired from server!" })); + return Content("Custom headers sent!"); } } diff --git a/src/Ramstack.HtmxToolkit/ActionResultExtensions.cs b/src/Ramstack.HtmxToolkit/ActionResultExtensions.cs deleted file mode 100644 index 6c9bf3a..0000000 --- a/src/Ramstack.HtmxToolkit/ActionResultExtensions.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace Ramstack.HtmxToolkit; - -/// -/// Provides extension methods for the interface -/// that configures HTMX response headers. -/// -public static class ActionResultExtensions -{ - /// - /// Configures HTMX response headers for the specified . - /// - /// The to configure. - /// The delegate that configures the HTMX response headers. - /// - /// An that wraps . - /// - public static HtmxResult Htmx(this IActionResult result, Action configure) => - new(result, configure); - - /// - /// Configures HTMX response headers for the specified using a state object. - /// - /// The type of the state object passed to the configuration delegate. - /// The to configure. - /// The delegate that configures the HTMX response headers using the state object. - /// The state object passed to the delegate. - /// - /// An that wraps . - /// - public static HtmxResult Htmx(this IActionResult result, Action configure, TState state) => - new(result, configure, state); -} diff --git a/src/Ramstack.HtmxToolkit/HtmxResult.cs b/src/Ramstack.HtmxToolkit/HtmxResult.cs deleted file mode 100644 index 6d8c9ac..0000000 --- a/src/Ramstack.HtmxToolkit/HtmxResult.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace Ramstack.HtmxToolkit; - -/// -/// Represents an that when executed configures HTMX response headers -/// before executing the wrapped result. -/// -/// The action result to execute. -/// The delegate that configures the HTMX response headers. -public sealed class HtmxResult(IActionResult result, Action configure) : IActionResult -{ - /// - public Task ExecuteResultAsync(ActionContext context) - { - if (context.HttpContext.Request.IsHtmxRequest()) - { - var response = new HtmxResponse(context.HttpContext.Response); - configure(response); - } - - return result.ExecuteResultAsync(context); - } -} diff --git a/src/Ramstack.HtmxToolkit/HtmxResult`1.cs b/src/Ramstack.HtmxToolkit/HtmxResult`1.cs deleted file mode 100644 index cbbadce..0000000 --- a/src/Ramstack.HtmxToolkit/HtmxResult`1.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Microsoft.AspNetCore.Mvc; - -namespace Ramstack.HtmxToolkit; - -/// -/// Represents an that when executed configures HTMX response headers -/// before executing the wrapped result. -/// -/// The type of state passed to . -/// The action result to execute. -/// The delegate that configures the HTMX response headers -/// using . -/// The state passed to . -/// -/// The state parameter enables callers to avoid closure allocations. -/// -public sealed class HtmxResult(IActionResult result, Action configure, TState state) : IActionResult -{ - /// - public Task ExecuteResultAsync(ActionContext context) - { - if (context.HttpContext.Request.IsHtmxRequest()) - { - var response = new HtmxResponse(context.HttpContext.Response); - configure(response, state); - } - - return result.ExecuteResultAsync(context); - } -} diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxResultTests.cs b/tests/Ramstack.HtmxToolkit.Tests/HtmxResultTests.cs deleted file mode 100644 index eb59949..0000000 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxResultTests.cs +++ /dev/null @@ -1,74 +0,0 @@ -using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; - -namespace Ramstack.HtmxToolkit.Tests; - -[TestFixture] -public class HtmxResultTests -{ - [Test] - public async Task ExecuteResultAsync_ConfiguresHeaders_ForHtmxRequest() - { - var context = TestHelper.CreateHtmxRequestContext(); - var recording = new RecordingResult(); - var result = new HtmxResult(recording, r => r.Retarget("#content")); - - await result.ExecuteResultAsync(CreateActionContext(context)); - - Assert.That(recording.Executed, Is.True); - Assert.That(context.Response.Headers[HtmxResponseHeaderNames.Retarget], Is.EqualTo("#content")); - } - - [Test] - public async Task ExecuteResultAsync_SkipsConfiguration_ForNonHtmxRequest() - { - var context = TestHelper.CreateHttpContext(); - var recording = new RecordingResult(); - var result = new HtmxResult(recording, r => r.Retarget("#content")); - - await result.ExecuteResultAsync(CreateActionContext(context)); - - Assert.That(recording.Executed, Is.True); - Assert.That(context.Response.Headers.ContainsKey(HtmxResponseHeaderNames.Retarget), Is.False); - } - - [Test] - public async Task ExecuteResultAsync_PassesStateToConfigure() - { - var context = TestHelper.CreateHtmxRequestContext(); - var recording = new RecordingResult(); - var result = new HtmxResult(recording, (r, s) => r.Redirect(s), "/foo"); - - await result.ExecuteResultAsync(CreateActionContext(context)); - - Assert.That(context.Response.Headers[HtmxResponseHeaderNames.Redirect], Is.EqualTo("/foo")); - } - - [Test] - public async Task HtmxExtension_WithState_CallbackReceivesProvidedState() - { - var context = TestHelper.CreateHtmxRequestContext(); - var recording = new RecordingResult(); - var result = recording.Htmx((r, s) => r.Redirect(s), "/foo"); - - await result.ExecuteResultAsync(CreateActionContext(context)); - - Assert.That( - context.Response.Headers[HtmxResponseHeaderNames.Redirect], - Is.EqualTo("/foo")); - } - - private static ActionContext CreateActionContext(HttpContext httpContext) => - new(httpContext, new Microsoft.AspNetCore.Routing.RouteData(), new Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor()); - - private sealed class RecordingResult : IActionResult - { - public bool Executed { get; private set; } - - public Task ExecuteResultAsync(ActionContext context) - { - Executed = true; - return Task.CompletedTask; - } - } -} From c883257f1128aa287eceac5854f4b6d43cb3bf97 Mon Sep 17 00:00:00 2001 From: rameel Date: Mon, 31 Aug 2026 00:30:25 +0500 Subject: [PATCH 3/7] Improve HTMX configuration examples in README --- README.md | 69 ++++++++++++++++++++++++------------------------------- 1 file changed, 30 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 60b752d..f0dd73c 100644 --- a/README.md +++ b/README.md @@ -33,27 +33,15 @@ to your project with the following command: dotnet add package Ramstack.HtmxToolkit ``` -Register the toolkit and select the HTMX version used by the application: - -```csharp -builder.Services.AddHtmxToolkit(options => -{ - options.UseHtmxV2(config => - { - config.DefaultSwapStyle = HtmxSwap.OuterHtml; - config.Timeout = 5000; - config.GlobalViewTransitions = true; - }); -}); -``` - -HTMX 2.x is used by default. Calling `UseHtmxV2` is optional when no version-specific -settings are required: +Register the toolkit. HTMX 2.x is used by default: ```csharp builder.Services.AddHtmxToolkit(); ``` +To select another major version or override HTMX defaults, see +[`HtmxConfigTagHelper`](#htmxconfigtaghelper). + ## HttpRequest The library provides the `HttpRequestExtensions` class for working with `HttpRequest`. @@ -404,16 +392,18 @@ the callback passed to `Htmx` is not executed, avoiding unnecessary work. ### The declarative way of setting response headers Some response headers can be set declaratively by applying `HtmxResponseAttribute` -to a controller or action: +to a controller or action. For example, an action that renders one new comment can append +it to the element targeted by the request: ```csharp -public class UserController : ControllerBase +public class CommentController : Controller { [HtmxRequest] - [HtmxResponse(Reswap = HtmxSwap.OuterHtml)] - public IActionResult UpdateProfile(UserProfile profile) + [HtmxResponse(Reswap = HtmxSwap.BeforeEnd)] + public IActionResult Add(CommentInput input) { - ... + var comment = ...; + return PartialView("_Comment", comment); } } ``` @@ -691,16 +681,17 @@ With HTMX 4.x selected, the following HTML will be generated: ### HtmxConfigTagHelper HTMX configuration is defined at application startup through `AddHtmxToolkit`. -The version-specific callback exposes only settings supported by the selected HTMX version: +The values apply application-wide and override HTMX defaults, so configure only behavior +the application relies on. For example, a form-oriented application can report native +validation failures before sending a request and scroll restored focus into view after a swap: ```csharp builder.Services.AddHtmxToolkit(options => { options.UseHtmxV2(config => { - config.DefaultSwapStyle = HtmxSwap.OuterHtml; - config.Timeout = 5000; - config.GlobalViewTransitions = true; + config.ReportValidityOfForms = true; + config.DefaultFocusScroll = true; }); }); ``` @@ -718,7 +709,7 @@ The following markup will be generated: ```html @@ -736,20 +727,10 @@ version explicitly. Each configuration type follows the names used by that HTMX and 2.x expose `DefaultSwapStyle` and `Timeout`, while HTMX 4.x exposes `DefaultSwap` and `DefaultTimeout`. Selecting different versions in the same configuration throws an exception. -HTMX 4.x is currently in beta. To target it, select it explicitly and use its version-specific -settings: +HTMX 4.x is currently in beta. To target it, select it explicitly: ```csharp -builder.Services.AddHtmxToolkit(options => -{ - options.UseHtmxV4(config => - { - config.DefaultSwap = HtmxSwap.OuterHtml; - config.DefaultTimeout = 5000; - config.Transitions = true; - config.NoSwap = ["204", "304", "4xx", "5xx"]; - }); -}); +builder.Services.AddHtmxToolkit(options => options.UseHtmxV4()); ``` The configured values remain available through dependency injection: @@ -786,7 +767,17 @@ builder.Services.AddHtmxToolkit(options => ``` HTMX 4.x removes `responseHandling`. To retain HTMX 2.x behavior that does not swap error -responses, configure `NoSwap` as shown in the HTMX 4.x example above. +responses, configure `NoSwap` explicitly: + +```csharp +builder.Services.AddHtmxToolkit(options => +{ + options.UseHtmxV4(config => + { + config.NoSwap = ["204", "304", "4xx", "5xx"]; + }); +}); +``` ## Toolkit Script From 6c3f112600289b730ae422f6f1aac4b86b80a19c Mon Sep 17 00:00:00 2001 From: rameel Date: Mon, 31 Aug 2026 01:16:42 +0500 Subject: [PATCH 4/7] Move JSON serialization types to Serializarion --- src/Ramstack.HtmxToolkit/HtmxFieldValues.cs | 2 ++ src/Ramstack.HtmxToolkit/HtmxLocationOptions.cs | 2 ++ src/Ramstack.HtmxToolkit/HtmxResponse.cs | 1 + src/Ramstack.HtmxToolkit/HtmxV1Config.cs | 2 ++ src/Ramstack.HtmxToolkit/HtmxV2Config.cs | 1 + src/Ramstack.HtmxToolkit/HtmxV4Config.cs | 2 ++ src/Ramstack.HtmxToolkit/PendingEvents.cs | 2 +- .../{ => Serialization}/HtmxBinaryTypeJsonConverter.cs | 2 +- .../{ => Serialization}/HtmxConfigJsonSerializerContext.cs | 4 +--- .../HtmxDictionaryJsonSerializerContext.cs | 4 +--- .../{ => Serialization}/HtmxFetchModeJsonConverter.cs | 2 +- .../{ => Serialization}/HtmxFieldValuesJsonConverter.cs | 2 +- .../{ => Serialization}/HtmxHistoryModeJsonConverter.cs | 2 +- .../HtmxLocationOptionsJsonSerializerContext.cs | 4 +--- .../HtmxRequestJsonSerializerContext.cs | 4 ++-- .../{ => Serialization}/HtmxScrollBehaviorJsonConverter.cs | 2 +- .../{ => Serialization}/HtmxSwapJsonConverter.cs | 2 +- .../{ => Serialization}/HtmxTriggerSpecsCacheJsonConverter.cs | 2 +- .../{ => Serialization}/HttpVerbArrayJsonConverter.cs | 2 +- .../{Internal => Serialization}/JsonOptions.cs | 2 +- src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs | 1 - src/Ramstack.HtmxToolkit/TagHelpers/HtmxHeaderTagHelper.cs | 1 + src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs | 2 ++ src/Ramstack.HtmxToolkit/TagHelpers/HtmxValsTagHelper.cs | 1 + 24 files changed, 29 insertions(+), 22 deletions(-) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxBinaryTypeJsonConverter.cs (95%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxConfigJsonSerializerContext.cs (92%) rename src/Ramstack.HtmxToolkit/{TagHelpers => Serialization}/HtmxDictionaryJsonSerializerContext.cs (90%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxFetchModeJsonConverter.cs (95%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxFieldValuesJsonConverter.cs (95%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxHistoryModeJsonConverter.cs (96%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxLocationOptionsJsonSerializerContext.cs (92%) rename src/Ramstack.HtmxToolkit/{TagHelpers => Serialization}/HtmxRequestJsonSerializerContext.cs (91%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxScrollBehaviorJsonConverter.cs (95%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxSwapJsonConverter.cs (94%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HtmxTriggerSpecsCacheJsonConverter.cs (94%) rename src/Ramstack.HtmxToolkit/{ => Serialization}/HttpVerbArrayJsonConverter.cs (95%) rename src/Ramstack.HtmxToolkit/{Internal => Serialization}/JsonOptions.cs (96%) diff --git a/src/Ramstack.HtmxToolkit/HtmxFieldValues.cs b/src/Ramstack.HtmxToolkit/HtmxFieldValues.cs index b552d3b..206f026 100644 --- a/src/Ramstack.HtmxToolkit/HtmxFieldValues.cs +++ b/src/Ramstack.HtmxToolkit/HtmxFieldValues.cs @@ -2,6 +2,8 @@ using System.Runtime.CompilerServices; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Serialization; + namespace Ramstack.HtmxToolkit; /// diff --git a/src/Ramstack.HtmxToolkit/HtmxLocationOptions.cs b/src/Ramstack.HtmxToolkit/HtmxLocationOptions.cs index 4277559..713130b 100644 --- a/src/Ramstack.HtmxToolkit/HtmxLocationOptions.cs +++ b/src/Ramstack.HtmxToolkit/HtmxLocationOptions.cs @@ -1,5 +1,7 @@ using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Serialization; + namespace Ramstack.HtmxToolkit; /// diff --git a/src/Ramstack.HtmxToolkit/HtmxResponse.cs b/src/Ramstack.HtmxToolkit/HtmxResponse.cs index 986c128..8ea5c5d 100644 --- a/src/Ramstack.HtmxToolkit/HtmxResponse.cs +++ b/src/Ramstack.HtmxToolkit/HtmxResponse.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Http; using Ramstack.HtmxToolkit.Internal; +using Ramstack.HtmxToolkit.Serialization; namespace Ramstack.HtmxToolkit; diff --git a/src/Ramstack.HtmxToolkit/HtmxV1Config.cs b/src/Ramstack.HtmxToolkit/HtmxV1Config.cs index 88753c3..7838d57 100644 --- a/src/Ramstack.HtmxToolkit/HtmxV1Config.cs +++ b/src/Ramstack.HtmxToolkit/HtmxV1Config.cs @@ -1,6 +1,8 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Serialization; + namespace Ramstack.HtmxToolkit; /// diff --git a/src/Ramstack.HtmxToolkit/HtmxV2Config.cs b/src/Ramstack.HtmxToolkit/HtmxV2Config.cs index 2f76af9..34eba20 100644 --- a/src/Ramstack.HtmxToolkit/HtmxV2Config.cs +++ b/src/Ramstack.HtmxToolkit/HtmxV2Config.cs @@ -2,6 +2,7 @@ using System.Text.Json.Serialization; using Ramstack.HtmxToolkit.TagHelpers; +using Ramstack.HtmxToolkit.Serialization; namespace Ramstack.HtmxToolkit; diff --git a/src/Ramstack.HtmxToolkit/HtmxV4Config.cs b/src/Ramstack.HtmxToolkit/HtmxV4Config.cs index 84653aa..4d3fe95 100644 --- a/src/Ramstack.HtmxToolkit/HtmxV4Config.cs +++ b/src/Ramstack.HtmxToolkit/HtmxV4Config.cs @@ -1,6 +1,8 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Serialization; + namespace Ramstack.HtmxToolkit; /// diff --git a/src/Ramstack.HtmxToolkit/PendingEvents.cs b/src/Ramstack.HtmxToolkit/PendingEvents.cs index 27fe7d4..a513e65 100644 --- a/src/Ramstack.HtmxToolkit/PendingEvents.cs +++ b/src/Ramstack.HtmxToolkit/PendingEvents.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Http; using Ramstack.HtmxToolkit.Collections; -using Ramstack.HtmxToolkit.Internal; +using Ramstack.HtmxToolkit.Serialization; namespace Ramstack.HtmxToolkit; diff --git a/src/Ramstack.HtmxToolkit/HtmxBinaryTypeJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxBinaryTypeJsonConverter.cs similarity index 95% rename from src/Ramstack.HtmxToolkit/HtmxBinaryTypeJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxBinaryTypeJsonConverter.cs index b1fbd5c..9dcbd96 100644 --- a/src/Ramstack.HtmxToolkit/HtmxBinaryTypeJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxBinaryTypeJsonConverter.cs @@ -3,7 +3,7 @@ using Ramstack.HtmxToolkit.Internal; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Represents a for nullable values. diff --git a/src/Ramstack.HtmxToolkit/HtmxConfigJsonSerializerContext.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxConfigJsonSerializerContext.cs similarity index 92% rename from src/Ramstack.HtmxToolkit/HtmxConfigJsonSerializerContext.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxConfigJsonSerializerContext.cs index 7dfcc3d..d409702 100644 --- a/src/Ramstack.HtmxToolkit/HtmxConfigJsonSerializerContext.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxConfigJsonSerializerContext.cs @@ -1,8 +1,6 @@ using System.Text.Json.Serialization; -using Ramstack.HtmxToolkit.Internal; - -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Represents source-generated JSON serialization metadata for HTMX configuration data. diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxDictionaryJsonSerializerContext.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxDictionaryJsonSerializerContext.cs similarity index 90% rename from src/Ramstack.HtmxToolkit/TagHelpers/HtmxDictionaryJsonSerializerContext.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxDictionaryJsonSerializerContext.cs index 5aea042..1ed83c4 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxDictionaryJsonSerializerContext.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxDictionaryJsonSerializerContext.cs @@ -1,8 +1,6 @@ using System.Text.Json.Serialization; -using Ramstack.HtmxToolkit.Internal; - -namespace Ramstack.HtmxToolkit.TagHelpers; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Provides source-generated JSON serialization metadata for HTMX string dictionaries. diff --git a/src/Ramstack.HtmxToolkit/HtmxFetchModeJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxFetchModeJsonConverter.cs similarity index 95% rename from src/Ramstack.HtmxToolkit/HtmxFetchModeJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxFetchModeJsonConverter.cs index 7ce7875..3a414d5 100644 --- a/src/Ramstack.HtmxToolkit/HtmxFetchModeJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxFetchModeJsonConverter.cs @@ -3,7 +3,7 @@ using Ramstack.HtmxToolkit.Internal; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Represents a for nullable values. diff --git a/src/Ramstack.HtmxToolkit/HtmxFieldValuesJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxFieldValuesJsonConverter.cs similarity index 95% rename from src/Ramstack.HtmxToolkit/HtmxFieldValuesJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxFieldValuesJsonConverter.cs index c40bddf..c11ad57 100644 --- a/src/Ramstack.HtmxToolkit/HtmxFieldValuesJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxFieldValuesJsonConverter.cs @@ -2,7 +2,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Represents a JSON converter for . diff --git a/src/Ramstack.HtmxToolkit/HtmxHistoryModeJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxHistoryModeJsonConverter.cs similarity index 96% rename from src/Ramstack.HtmxToolkit/HtmxHistoryModeJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxHistoryModeJsonConverter.cs index 881e684..c5e288c 100644 --- a/src/Ramstack.HtmxToolkit/HtmxHistoryModeJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxHistoryModeJsonConverter.cs @@ -1,7 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Converts values to the JSON representation expected diff --git a/src/Ramstack.HtmxToolkit/HtmxLocationOptionsJsonSerializerContext.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxLocationOptionsJsonSerializerContext.cs similarity index 92% rename from src/Ramstack.HtmxToolkit/HtmxLocationOptionsJsonSerializerContext.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxLocationOptionsJsonSerializerContext.cs index 90e5059..63e57f8 100644 --- a/src/Ramstack.HtmxToolkit/HtmxLocationOptionsJsonSerializerContext.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxLocationOptionsJsonSerializerContext.cs @@ -1,8 +1,6 @@ using System.Text.Json.Serialization; -using Ramstack.HtmxToolkit.Internal; - -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Provides source-generated JSON serialization metadata for HX-Location options. diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestJsonSerializerContext.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxRequestJsonSerializerContext.cs similarity index 91% rename from src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestJsonSerializerContext.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxRequestJsonSerializerContext.cs index 09a65ef..3d215a6 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestJsonSerializerContext.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxRequestJsonSerializerContext.cs @@ -1,8 +1,8 @@ using System.Text.Json.Serialization; -using Ramstack.HtmxToolkit.Internal; +using Ramstack.HtmxToolkit.TagHelpers; -namespace Ramstack.HtmxToolkit.TagHelpers; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Provides source-generated JSON serialization metadata for HTMX request configuration data. diff --git a/src/Ramstack.HtmxToolkit/HtmxScrollBehaviorJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxScrollBehaviorJsonConverter.cs similarity index 95% rename from src/Ramstack.HtmxToolkit/HtmxScrollBehaviorJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxScrollBehaviorJsonConverter.cs index aa4f63d..b32b447 100644 --- a/src/Ramstack.HtmxToolkit/HtmxScrollBehaviorJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxScrollBehaviorJsonConverter.cs @@ -3,7 +3,7 @@ using Ramstack.HtmxToolkit.Internal; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Represents a for nullable values. diff --git a/src/Ramstack.HtmxToolkit/HtmxSwapJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxSwapJsonConverter.cs similarity index 94% rename from src/Ramstack.HtmxToolkit/HtmxSwapJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxSwapJsonConverter.cs index 44878f2..69c8f5d 100644 --- a/src/Ramstack.HtmxToolkit/HtmxSwapJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxSwapJsonConverter.cs @@ -3,7 +3,7 @@ using Ramstack.HtmxToolkit.Internal; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Represents a for nullable values. diff --git a/src/Ramstack.HtmxToolkit/HtmxTriggerSpecsCacheJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxTriggerSpecsCacheJsonConverter.cs similarity index 94% rename from src/Ramstack.HtmxToolkit/HtmxTriggerSpecsCacheJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HtmxTriggerSpecsCacheJsonConverter.cs index 627e5db..3252d4c 100644 --- a/src/Ramstack.HtmxToolkit/HtmxTriggerSpecsCacheJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxTriggerSpecsCacheJsonConverter.cs @@ -1,7 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Converts the boolean triggerSpecsCache abstraction to its HTMX JSON representation. diff --git a/src/Ramstack.HtmxToolkit/HttpVerbArrayJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HttpVerbArrayJsonConverter.cs similarity index 95% rename from src/Ramstack.HtmxToolkit/HttpVerbArrayJsonConverter.cs rename to src/Ramstack.HtmxToolkit/Serialization/HttpVerbArrayJsonConverter.cs index fa00f8d..e926765 100644 --- a/src/Ramstack.HtmxToolkit/HttpVerbArrayJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HttpVerbArrayJsonConverter.cs @@ -3,7 +3,7 @@ using Ramstack.HtmxToolkit.Internal; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Represents a for arrays of values. diff --git a/src/Ramstack.HtmxToolkit/Internal/JsonOptions.cs b/src/Ramstack.HtmxToolkit/Serialization/JsonOptions.cs similarity index 96% rename from src/Ramstack.HtmxToolkit/Internal/JsonOptions.cs rename to src/Ramstack.HtmxToolkit/Serialization/JsonOptions.cs index f25eac3..00a0b72 100644 --- a/src/Ramstack.HtmxToolkit/Internal/JsonOptions.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/JsonOptions.cs @@ -3,7 +3,7 @@ using System.Text.Json.Serialization; using System.Text.Unicode; -namespace Ramstack.HtmxToolkit.Internal; +namespace Ramstack.HtmxToolkit.Serialization; /// /// Provides preconfigured for JSON serialization. diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs index cf2b5cd..56d9f15 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs +++ b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs @@ -1,5 +1,4 @@ using Microsoft.AspNetCore.Antiforgery; -using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Razor.TagHelpers; diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxHeaderTagHelper.cs b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxHeaderTagHelper.cs index 5f7347d..359bfdd 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxHeaderTagHelper.cs +++ b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxHeaderTagHelper.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Ramstack.HtmxToolkit.Collections; +using Ramstack.HtmxToolkit.Serialization; namespace Ramstack.HtmxToolkit.TagHelpers; diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs index 6420a9d..d7b6350 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs +++ b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs @@ -4,6 +4,8 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Options; +using Ramstack.HtmxToolkit.Serialization; + namespace Ramstack.HtmxToolkit.TagHelpers; /// diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxValsTagHelper.cs b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxValsTagHelper.cs index ad60952..8723f8c 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxValsTagHelper.cs +++ b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxValsTagHelper.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Ramstack.HtmxToolkit.Collections; +using Ramstack.HtmxToolkit.Serialization; namespace Ramstack.HtmxToolkit.TagHelpers; From b87382698d710d67d78c2fcb094a8a6e50dbfef9 Mon Sep 17 00:00:00 2001 From: rameel Date: Mon, 31 Aug 2026 01:29:20 +0500 Subject: [PATCH 5/7] Move hosting extensions to Hosting --- samples/Ramstack.HtmxToolkit.Demo/Program.cs | 2 +- .../{Builder => Hosting}/EndpointRouteBuilderExtensions.cs | 2 +- .../{Builder => Hosting}/ServiceCollectionExtensions.cs | 2 +- src/Ramstack.HtmxToolkit/HtmlHelperExtensions.cs | 2 +- tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename src/Ramstack.HtmxToolkit/{Builder => Hosting}/EndpointRouteBuilderExtensions.cs (98%) rename src/Ramstack.HtmxToolkit/{Builder => Hosting}/ServiceCollectionExtensions.cs (95%) diff --git a/samples/Ramstack.HtmxToolkit.Demo/Program.cs b/samples/Ramstack.HtmxToolkit.Demo/Program.cs index 45b7c64..424da5b 100644 --- a/samples/Ramstack.HtmxToolkit.Demo/Program.cs +++ b/samples/Ramstack.HtmxToolkit.Demo/Program.cs @@ -1,5 +1,5 @@ using Ramstack.HtmxToolkit; -using Ramstack.HtmxToolkit.Builder; +using Ramstack.HtmxToolkit.Hosting; var builder = WebApplication.CreateBuilder(args); diff --git a/src/Ramstack.HtmxToolkit/Builder/EndpointRouteBuilderExtensions.cs b/src/Ramstack.HtmxToolkit/Hosting/EndpointRouteBuilderExtensions.cs similarity index 98% rename from src/Ramstack.HtmxToolkit/Builder/EndpointRouteBuilderExtensions.cs rename to src/Ramstack.HtmxToolkit/Hosting/EndpointRouteBuilderExtensions.cs index 9718fad..2897402 100644 --- a/src/Ramstack.HtmxToolkit/Builder/EndpointRouteBuilderExtensions.cs +++ b/src/Ramstack.HtmxToolkit/Hosting/EndpointRouteBuilderExtensions.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; -namespace Ramstack.HtmxToolkit.Builder; +namespace Ramstack.HtmxToolkit.Hosting; /// /// Provides HTMX Toolkit endpoint mappings for an . diff --git a/src/Ramstack.HtmxToolkit/Builder/ServiceCollectionExtensions.cs b/src/Ramstack.HtmxToolkit/Hosting/ServiceCollectionExtensions.cs similarity index 95% rename from src/Ramstack.HtmxToolkit/Builder/ServiceCollectionExtensions.cs rename to src/Ramstack.HtmxToolkit/Hosting/ServiceCollectionExtensions.cs index d6fd5e6..ebe0a5c 100644 --- a/src/Ramstack.HtmxToolkit/Builder/ServiceCollectionExtensions.cs +++ b/src/Ramstack.HtmxToolkit/Hosting/ServiceCollectionExtensions.cs @@ -1,6 +1,6 @@ using Microsoft.Extensions.DependencyInjection; -namespace Ramstack.HtmxToolkit.Builder; +namespace Ramstack.HtmxToolkit.Hosting; /// /// Provides HTMX Toolkit service registration for an . diff --git a/src/Ramstack.HtmxToolkit/HtmlHelperExtensions.cs b/src/Ramstack.HtmxToolkit/HtmlHelperExtensions.cs index 3d6f8f7..1f7cca2 100644 --- a/src/Ramstack.HtmxToolkit/HtmlHelperExtensions.cs +++ b/src/Ramstack.HtmxToolkit/HtmlHelperExtensions.cs @@ -1,7 +1,7 @@ using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Mvc.Rendering; -using Ramstack.HtmxToolkit.Builder; +using Ramstack.HtmxToolkit.Hosting; namespace Ramstack.HtmxToolkit; diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs b/tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs index 1a11d62..47e1832 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using Ramstack.HtmxToolkit.Builder; +using Ramstack.HtmxToolkit.Hosting; namespace Ramstack.HtmxToolkit.Tests; From aff614f9572fa5e15d16cb06cfff1d5d4b45505b Mon Sep 17 00:00:00 2001 From: rameel Date: Mon, 31 Aug 2026 02:45:20 +0500 Subject: [PATCH 6/7] Move configuration types to Configuration --- samples/Ramstack.HtmxToolkit.Demo/Program.cs | 1 + src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxBinaryType.cs | 2 +- src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxConfig.cs | 2 +- src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxFetchMode.cs | 2 +- .../{ => Configuration}/HtmxHistoryMode.cs | 2 +- .../{ => Configuration}/HtmxScrollBehavior.cs | 2 +- .../{ => Configuration}/HtmxTargetVersion.cs | 2 +- .../{ => Configuration}/HtmxToolkitOptions.cs | 2 +- src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxV1Config.cs | 2 +- src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxV2Config.cs | 3 +-- src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxV4Config.cs | 2 +- src/Ramstack.HtmxToolkit/{ => Configuration}/HttpVerb.cs | 2 +- .../{TagHelpers => Configuration}/ResponseHandlingConfig.cs | 2 +- .../Hosting/ServiceCollectionExtensions.cs | 2 ++ src/Ramstack.HtmxToolkit/Internal/EnumHelper.cs | 2 ++ .../Serialization/HtmxBinaryTypeJsonConverter.cs | 1 + .../Serialization/HtmxConfigJsonSerializerContext.cs | 2 ++ .../Serialization/HtmxFetchModeJsonConverter.cs | 1 + .../Serialization/HtmxHistoryModeJsonConverter.cs | 2 ++ .../Serialization/HtmxScrollBehaviorJsonConverter.cs | 1 + .../Serialization/HttpVerbArrayJsonConverter.cs | 1 + src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs | 2 ++ src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs | 1 + .../{ => Configuration}/HtmxToolkitOptionsTests.cs | 3 ++- tests/Ramstack.HtmxToolkit.Tests/EnumHelperTests.cs | 2 ++ tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs | 2 ++ tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs | 2 ++ 27 files changed, 36 insertions(+), 14 deletions(-) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxBinaryType.cs (94%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxConfig.cs (97%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxFetchMode.cs (95%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxHistoryMode.cs (90%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxScrollBehavior.cs (91%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxTargetVersion.cs (87%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxToolkitOptions.cs (99%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxV1Config.cs (99%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxV2Config.cs (99%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HtmxV4Config.cs (99%) rename src/Ramstack.HtmxToolkit/{ => Configuration}/HttpVerb.cs (96%) rename src/Ramstack.HtmxToolkit/{TagHelpers => Configuration}/ResponseHandlingConfig.cs (96%) rename tests/Ramstack.HtmxToolkit.Tests/{ => Configuration}/HtmxToolkitOptionsTests.cs (98%) diff --git a/samples/Ramstack.HtmxToolkit.Demo/Program.cs b/samples/Ramstack.HtmxToolkit.Demo/Program.cs index 424da5b..28b1fea 100644 --- a/samples/Ramstack.HtmxToolkit.Demo/Program.cs +++ b/samples/Ramstack.HtmxToolkit.Demo/Program.cs @@ -1,4 +1,5 @@ using Ramstack.HtmxToolkit; +using Ramstack.HtmxToolkit.Configuration; using Ramstack.HtmxToolkit.Hosting; var builder = WebApplication.CreateBuilder(args); diff --git a/src/Ramstack.HtmxToolkit/HtmxBinaryType.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxBinaryType.cs similarity index 94% rename from src/Ramstack.HtmxToolkit/HtmxBinaryType.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxBinaryType.cs index 13f16fc..f95730a 100644 --- a/src/Ramstack.HtmxToolkit/HtmxBinaryType.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxBinaryType.cs @@ -1,4 +1,4 @@ -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Specifies how binary data received over a WebSocket connection is represented. diff --git a/src/Ramstack.HtmxToolkit/HtmxConfig.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxConfig.cs similarity index 97% rename from src/Ramstack.HtmxToolkit/HtmxConfig.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxConfig.cs index e467dc1..712743e 100644 --- a/src/Ramstack.HtmxToolkit/HtmxConfig.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxConfig.cs @@ -2,7 +2,7 @@ using Microsoft.AspNetCore.Html; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Represents configuration for a specific major version of HTMX. diff --git a/src/Ramstack.HtmxToolkit/HtmxFetchMode.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxFetchMode.cs similarity index 95% rename from src/Ramstack.HtmxToolkit/HtmxFetchMode.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxFetchMode.cs index 3ec8c7f..c2fd9a0 100644 --- a/src/Ramstack.HtmxToolkit/HtmxFetchMode.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxFetchMode.cs @@ -1,4 +1,4 @@ -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Specifies the request mode used by HTMX. diff --git a/src/Ramstack.HtmxToolkit/HtmxHistoryMode.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxHistoryMode.cs similarity index 90% rename from src/Ramstack.HtmxToolkit/HtmxHistoryMode.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxHistoryMode.cs index 58dc23f..4e26a2a 100644 --- a/src/Ramstack.HtmxToolkit/HtmxHistoryMode.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxHistoryMode.cs @@ -1,4 +1,4 @@ -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Specifies how HTMX history restoration is handled. diff --git a/src/Ramstack.HtmxToolkit/HtmxScrollBehavior.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxScrollBehavior.cs similarity index 91% rename from src/Ramstack.HtmxToolkit/HtmxScrollBehavior.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxScrollBehavior.cs index a29e312..e332ddb 100644 --- a/src/Ramstack.HtmxToolkit/HtmxScrollBehavior.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxScrollBehavior.cs @@ -1,4 +1,4 @@ -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Specifies the scrolling behavior for a boosted link during page transitions. diff --git a/src/Ramstack.HtmxToolkit/HtmxTargetVersion.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxTargetVersion.cs similarity index 87% rename from src/Ramstack.HtmxToolkit/HtmxTargetVersion.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxTargetVersion.cs index 3a0d111..511c1eb 100644 --- a/src/Ramstack.HtmxToolkit/HtmxTargetVersion.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxTargetVersion.cs @@ -1,4 +1,4 @@ -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Specifies the HTMX major version targeted by generated markup. diff --git a/src/Ramstack.HtmxToolkit/HtmxToolkitOptions.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxToolkitOptions.cs similarity index 99% rename from src/Ramstack.HtmxToolkit/HtmxToolkitOptions.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxToolkitOptions.cs index 4aff53e..fd66d17 100644 --- a/src/Ramstack.HtmxToolkit/HtmxToolkitOptions.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxToolkitOptions.cs @@ -1,7 +1,7 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Represents configuration options for services provided by HTMX Toolkit. diff --git a/src/Ramstack.HtmxToolkit/HtmxV1Config.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxV1Config.cs similarity index 99% rename from src/Ramstack.HtmxToolkit/HtmxV1Config.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxV1Config.cs index 7838d57..6c83cd9 100644 --- a/src/Ramstack.HtmxToolkit/HtmxV1Config.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxV1Config.cs @@ -3,7 +3,7 @@ using Ramstack.HtmxToolkit.Serialization; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Represents the configuration for HTMX 1.x. diff --git a/src/Ramstack.HtmxToolkit/HtmxV2Config.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxV2Config.cs similarity index 99% rename from src/Ramstack.HtmxToolkit/HtmxV2Config.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxV2Config.cs index 34eba20..0b6b95a 100644 --- a/src/Ramstack.HtmxToolkit/HtmxV2Config.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxV2Config.cs @@ -1,10 +1,9 @@ using System.Text.Json; using System.Text.Json.Serialization; -using Ramstack.HtmxToolkit.TagHelpers; using Ramstack.HtmxToolkit.Serialization; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Represents the configuration for HTMX 2.x. diff --git a/src/Ramstack.HtmxToolkit/HtmxV4Config.cs b/src/Ramstack.HtmxToolkit/Configuration/HtmxV4Config.cs similarity index 99% rename from src/Ramstack.HtmxToolkit/HtmxV4Config.cs rename to src/Ramstack.HtmxToolkit/Configuration/HtmxV4Config.cs index 4d3fe95..02d5eae 100644 --- a/src/Ramstack.HtmxToolkit/HtmxV4Config.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HtmxV4Config.cs @@ -3,7 +3,7 @@ using Ramstack.HtmxToolkit.Serialization; -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Represents the configuration for HTMX 4.x. diff --git a/src/Ramstack.HtmxToolkit/HttpVerb.cs b/src/Ramstack.HtmxToolkit/Configuration/HttpVerb.cs similarity index 96% rename from src/Ramstack.HtmxToolkit/HttpVerb.cs rename to src/Ramstack.HtmxToolkit/Configuration/HttpVerb.cs index 201f931..bf0ea86 100644 --- a/src/Ramstack.HtmxToolkit/HttpVerb.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/HttpVerb.cs @@ -1,4 +1,4 @@ -namespace Ramstack.HtmxToolkit; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Defines the HTTP methods that can be used in HTMX configuration. diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/ResponseHandlingConfig.cs b/src/Ramstack.HtmxToolkit/Configuration/ResponseHandlingConfig.cs similarity index 96% rename from src/Ramstack.HtmxToolkit/TagHelpers/ResponseHandlingConfig.cs rename to src/Ramstack.HtmxToolkit/Configuration/ResponseHandlingConfig.cs index 29f617a..7e3ee82 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/ResponseHandlingConfig.cs +++ b/src/Ramstack.HtmxToolkit/Configuration/ResponseHandlingConfig.cs @@ -1,4 +1,4 @@ -namespace Ramstack.HtmxToolkit.TagHelpers; +namespace Ramstack.HtmxToolkit.Configuration; /// /// Represents the response handling configuration for responses that match diff --git a/src/Ramstack.HtmxToolkit/Hosting/ServiceCollectionExtensions.cs b/src/Ramstack.HtmxToolkit/Hosting/ServiceCollectionExtensions.cs index ebe0a5c..607e972 100644 --- a/src/Ramstack.HtmxToolkit/Hosting/ServiceCollectionExtensions.cs +++ b/src/Ramstack.HtmxToolkit/Hosting/ServiceCollectionExtensions.cs @@ -1,5 +1,7 @@ using Microsoft.Extensions.DependencyInjection; +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.Hosting; /// diff --git a/src/Ramstack.HtmxToolkit/Internal/EnumHelper.cs b/src/Ramstack.HtmxToolkit/Internal/EnumHelper.cs index 5d56111..8a13b89 100644 --- a/src/Ramstack.HtmxToolkit/Internal/EnumHelper.cs +++ b/src/Ramstack.HtmxToolkit/Internal/EnumHelper.cs @@ -1,3 +1,5 @@ +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.Internal; /// diff --git a/src/Ramstack.HtmxToolkit/Serialization/HtmxBinaryTypeJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxBinaryTypeJsonConverter.cs index 9dcbd96..4d56482 100644 --- a/src/Ramstack.HtmxToolkit/Serialization/HtmxBinaryTypeJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxBinaryTypeJsonConverter.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Configuration; using Ramstack.HtmxToolkit.Internal; namespace Ramstack.HtmxToolkit.Serialization; diff --git a/src/Ramstack.HtmxToolkit/Serialization/HtmxConfigJsonSerializerContext.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxConfigJsonSerializerContext.cs index d409702..9b3a430 100644 --- a/src/Ramstack.HtmxToolkit/Serialization/HtmxConfigJsonSerializerContext.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxConfigJsonSerializerContext.cs @@ -1,5 +1,7 @@ using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.Serialization; /// diff --git a/src/Ramstack.HtmxToolkit/Serialization/HtmxFetchModeJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxFetchModeJsonConverter.cs index 3a414d5..73542f2 100644 --- a/src/Ramstack.HtmxToolkit/Serialization/HtmxFetchModeJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxFetchModeJsonConverter.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Configuration; using Ramstack.HtmxToolkit.Internal; namespace Ramstack.HtmxToolkit.Serialization; diff --git a/src/Ramstack.HtmxToolkit/Serialization/HtmxHistoryModeJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxHistoryModeJsonConverter.cs index c5e288c..7321292 100644 --- a/src/Ramstack.HtmxToolkit/Serialization/HtmxHistoryModeJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxHistoryModeJsonConverter.cs @@ -1,6 +1,8 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.Serialization; /// diff --git a/src/Ramstack.HtmxToolkit/Serialization/HtmxScrollBehaviorJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HtmxScrollBehaviorJsonConverter.cs index b32b447..67963ff 100644 --- a/src/Ramstack.HtmxToolkit/Serialization/HtmxScrollBehaviorJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HtmxScrollBehaviorJsonConverter.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Configuration; using Ramstack.HtmxToolkit.Internal; namespace Ramstack.HtmxToolkit.Serialization; diff --git a/src/Ramstack.HtmxToolkit/Serialization/HttpVerbArrayJsonConverter.cs b/src/Ramstack.HtmxToolkit/Serialization/HttpVerbArrayJsonConverter.cs index e926765..51efde3 100644 --- a/src/Ramstack.HtmxToolkit/Serialization/HttpVerbArrayJsonConverter.cs +++ b/src/Ramstack.HtmxToolkit/Serialization/HttpVerbArrayJsonConverter.cs @@ -1,6 +1,7 @@ using System.Text.Json; using System.Text.Json.Serialization; +using Ramstack.HtmxToolkit.Configuration; using Ramstack.HtmxToolkit.Internal; namespace Ramstack.HtmxToolkit.Serialization; diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs index 56d9f15..4f31f6d 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs +++ b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxConfigTagHelper.cs @@ -4,6 +4,8 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Options; +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.TagHelpers; /// diff --git a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs index d7b6350..e23cd69 100644 --- a/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs +++ b/src/Ramstack.HtmxToolkit/TagHelpers/HtmxRequestTagHelper.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Options; +using Ramstack.HtmxToolkit.Configuration; using Ramstack.HtmxToolkit.Serialization; namespace Ramstack.HtmxToolkit.TagHelpers; diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs b/tests/Ramstack.HtmxToolkit.Tests/Configuration/HtmxToolkitOptionsTests.cs similarity index 98% rename from tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs rename to tests/Ramstack.HtmxToolkit.Tests/Configuration/HtmxToolkitOptionsTests.cs index 47e1832..adc4c3a 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxToolkitOptionsTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/Configuration/HtmxToolkitOptionsTests.cs @@ -1,9 +1,10 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; +using Ramstack.HtmxToolkit.Configuration; using Ramstack.HtmxToolkit.Hosting; -namespace Ramstack.HtmxToolkit.Tests; +namespace Ramstack.HtmxToolkit.Tests.Configuration; [TestFixture] public class HtmxToolkitOptionsTests diff --git a/tests/Ramstack.HtmxToolkit.Tests/EnumHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/EnumHelperTests.cs index 4b5e135..486dcc5 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/EnumHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/EnumHelperTests.cs @@ -1,3 +1,5 @@ +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.Tests; [TestFixture] diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs index da22898..4e43fd1 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs @@ -5,6 +5,8 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Options; +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.Tests; [TestFixture] diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs index 8673b2e..dc8001b 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs @@ -2,6 +2,8 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.Extensions.Options; +using Ramstack.HtmxToolkit.Configuration; + namespace Ramstack.HtmxToolkit.Tests; [TestFixture] From f6679424bde9da85a131fba1751d03ef0a703d69 Mon Sep 17 00:00:00 2001 From: rameel Date: Mon, 31 Aug 2026 02:47:52 +0500 Subject: [PATCH 7/7] Align test structure with source namespaces --- .../{ => TagHelpers}/HtmxConfigTagHelperTests.cs | 2 +- .../{ => TagHelpers}/HtmxHeaderTagHelperTests.cs | 2 +- .../{ => TagHelpers}/HtmxRequestTagHelperTests.cs | 2 +- .../{ => TagHelpers}/HtmxUrlTagHelperTests.cs | 2 +- .../{ => TagHelpers}/HtmxValsTagHelperTests.cs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename tests/Ramstack.HtmxToolkit.Tests/{ => TagHelpers}/HtmxConfigTagHelperTests.cs (99%) rename tests/Ramstack.HtmxToolkit.Tests/{ => TagHelpers}/HtmxHeaderTagHelperTests.cs (97%) rename tests/Ramstack.HtmxToolkit.Tests/{ => TagHelpers}/HtmxRequestTagHelperTests.cs (99%) rename tests/Ramstack.HtmxToolkit.Tests/{ => TagHelpers}/HtmxUrlTagHelperTests.cs (99%) rename tests/Ramstack.HtmxToolkit.Tests/{ => TagHelpers}/HtmxValsTagHelperTests.cs (97%) diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxConfigTagHelperTests.cs similarity index 99% rename from tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs rename to tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxConfigTagHelperTests.cs index 4e43fd1..5eef6ab 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxConfigTagHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxConfigTagHelperTests.cs @@ -7,7 +7,7 @@ using Ramstack.HtmxToolkit.Configuration; -namespace Ramstack.HtmxToolkit.Tests; +namespace Ramstack.HtmxToolkit.Tests.TagHelpers; [TestFixture] public class HtmxConfigTagHelperTests diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxHeaderTagHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxHeaderTagHelperTests.cs similarity index 97% rename from tests/Ramstack.HtmxToolkit.Tests/HtmxHeaderTagHelperTests.cs rename to tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxHeaderTagHelperTests.cs index 1a4e163..77b4dc7 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxHeaderTagHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxHeaderTagHelperTests.cs @@ -1,7 +1,7 @@ using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Razor.TagHelpers; -namespace Ramstack.HtmxToolkit.Tests; +namespace Ramstack.HtmxToolkit.Tests.TagHelpers; [TestFixture] public class HtmxHeaderTagHelperTests diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxRequestTagHelperTests.cs similarity index 99% rename from tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs rename to tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxRequestTagHelperTests.cs index dc8001b..07d5123 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxRequestTagHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxRequestTagHelperTests.cs @@ -4,7 +4,7 @@ using Ramstack.HtmxToolkit.Configuration; -namespace Ramstack.HtmxToolkit.Tests; +namespace Ramstack.HtmxToolkit.Tests.TagHelpers; [TestFixture] public class HtmxRequestTagHelperTests diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxUrlTagHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxUrlTagHelperTests.cs similarity index 99% rename from tests/Ramstack.HtmxToolkit.Tests/HtmxUrlTagHelperTests.cs rename to tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxUrlTagHelperTests.cs index edf544f..c3a9ad1 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxUrlTagHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxUrlTagHelperTests.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Razor.TagHelpers; using Microsoft.AspNetCore.Routing; -namespace Ramstack.HtmxToolkit.Tests; +namespace Ramstack.HtmxToolkit.Tests.TagHelpers; [TestFixture] public class HtmxUrlTagHelperTests diff --git a/tests/Ramstack.HtmxToolkit.Tests/HtmxValsTagHelperTests.cs b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxValsTagHelperTests.cs similarity index 97% rename from tests/Ramstack.HtmxToolkit.Tests/HtmxValsTagHelperTests.cs rename to tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxValsTagHelperTests.cs index c884e04..1211e25 100644 --- a/tests/Ramstack.HtmxToolkit.Tests/HtmxValsTagHelperTests.cs +++ b/tests/Ramstack.HtmxToolkit.Tests/TagHelpers/HtmxValsTagHelperTests.cs @@ -1,7 +1,7 @@ using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Razor.TagHelpers; -namespace Ramstack.HtmxToolkit.Tests; +namespace Ramstack.HtmxToolkit.Tests.TagHelpers; [TestFixture] public class HtmxValsTagHelperTests