├── Xakpc.RazorHtmx ├── Pages │ ├── _ViewStart.cshtml │ ├── LazyLoad │ │ ├── _Image.cshtml │ │ ├── _Image.cshtml.cs │ │ ├── LazyLoad.cshtml │ │ └── LazyLoad.cshtml.cs │ ├── ProgressBar │ │ ├── _ProgressBarPartial.cshtml │ │ ├── Progress.cs │ │ ├── ProgressBar.cshtml │ │ ├── _ProgressPartial.cshtml │ │ └── ProgressBar.cshtml.cs │ ├── ValueSelect │ │ ├── _SelectPartial.cshtml │ │ ├── ValueSelect.cshtml │ │ └── ValueSelect.cshtml.cs │ ├── Animations │ │ ├── _FadeInPartial.cshtml │ │ ├── _ColorSwapPartial.cshtml │ │ ├── _SwapContentPartial.cshtml │ │ ├── Animations.cshtml.cs │ │ └── Animations.cshtml │ ├── ImageUpload │ │ ├── _ImagePartial.cshtml │ │ ├── ImageUpload.cshtml │ │ └── ImageUpload.cshtml.cs │ ├── ClickToEdit │ │ ├── ClickToEdit.cshtml │ │ ├── _Partial.cshtml │ │ ├── _Edit.cshtml │ │ └── ClickToEdit.cshtml.cs │ ├── ClickToLoad │ │ ├── PagedTableViewModel.cs │ │ ├── ClickToLoad.cshtml │ │ ├── _TableBody.cshtml │ │ └── ClickToLoad.cshtml.cs │ ├── Privacy.cshtml │ ├── _ViewImports.cshtml │ ├── Tabs │ │ ├── Tabs.cshtml │ │ ├── Tabs.cshtml.cs │ │ ├── _Tab2Partial.cshtml │ │ ├── _Tab1Partial.cshtml │ │ └── _Tab3Partial.cshtml │ ├── ActiveSearch │ │ ├── _TableBody.cshtml │ │ ├── ActiveSearch.cshtml.cs │ │ └── ActiveSearch.cshtml │ ├── DialogsHtml │ │ ├── _ModalPartial.cshtml │ │ ├── DialogsHtml.cshtml.cs │ │ └── DialogsHtml.cshtml │ ├── EditRow │ │ ├── _TableRow.cshtml │ │ ├── _TableRowForm.cshtml │ │ ├── EditRow.cshtml │ │ └── EditRow.cshtml.cs │ ├── Privacy.cshtml.cs │ ├── DeleteRow │ │ ├── _TableRow.cshtml │ │ ├── DeleteRow.cshtml.cs │ │ └── DeleteRow.cshtml │ ├── Dialogs │ │ ├── Dialogs.cshtml │ │ └── Dialogs.cshtml.cs │ ├── BulkUpdate │ │ ├── UsersTableViewModel.cs │ │ ├── _TableBody.cshtml │ │ ├── BulkUpdate.cshtml │ │ └── BulkUpdate.cshtml.cs │ ├── FileUpload │ │ ├── FileUpload.cshtml.cs │ │ └── FileUpload.cshtml │ ├── KeyboardShortcuts │ │ ├── KeyboardShortcuts.cshtml │ │ └── KeyboardShortcuts.cshtml.cs │ ├── Index.cshtml.cs │ ├── InlineValidation │ │ ├── _EmailPartial.cshtml │ │ ├── InlineValidation.cshtml │ │ └── InlineValidation.cshtml.cs │ ├── InfiniteScroll │ │ ├── InfiniteScroll.cshtml │ │ ├── _TableBody.cshtml │ │ └── InfiniteScroll.cshtml.cs │ ├── Error.cshtml.cs │ ├── Error.cshtml │ ├── Shared │ │ └── _Layout.cshtml │ └── Index.cshtml ├── wwwroot │ ├── scss │ │ ├── error.scss │ │ └── site.scss │ ├── favicon.ico │ ├── lib │ │ └── pico-1.5.10 │ │ │ ├── scss │ │ │ ├── _functions.scss │ │ │ ├── layout │ │ │ │ ├── _section.scss │ │ │ │ ├── _scroller.scss │ │ │ │ ├── _grid.scss │ │ │ │ ├── _container.scss │ │ │ │ ├── _document.scss │ │ │ │ └── _sectioning.scss │ │ │ ├── postcss.config.js │ │ │ ├── pico.classless.scss │ │ │ ├── pico.fluid.classless.scss │ │ │ ├── content │ │ │ │ ├── _miscs.scss │ │ │ │ ├── _embedded.scss │ │ │ │ ├── _table.scss │ │ │ │ ├── _code.scss │ │ │ │ ├── _form-checkbox-radio.scss │ │ │ │ ├── _button.scss │ │ │ │ ├── _typography.scss │ │ │ │ └── _form-alt-input-types.scss │ │ │ ├── themes │ │ │ │ ├── default.scss │ │ │ │ └── default │ │ │ │ │ ├── _colors.scss │ │ │ │ │ └── _styles.scss │ │ │ ├── utilities │ │ │ │ ├── _reduce-motion.scss │ │ │ │ ├── _accessibility.scss │ │ │ │ ├── _loading.scss │ │ │ │ └── _tooltip.scss │ │ │ ├── components │ │ │ │ ├── _card.scss │ │ │ │ ├── _progress.scss │ │ │ │ ├── _accordion.scss │ │ │ │ ├── _nav.scss │ │ │ │ ├── _modal.scss │ │ │ │ └── _dropdown.scss │ │ │ ├── pico.slim.scss │ │ │ ├── pico.scss │ │ │ └── _variables.scss │ │ │ └── LICENSE.md │ └── js │ │ └── site.js ├── compilerconfig.json ├── appsettings.json ├── appsettings.Development.json ├── Xakpc.RazorHtmx.csproj ├── Data │ ├── UserInfoViewModel.cs │ └── TestData.cs ├── TagHelpers │ ├── UrlHandlerExtensions.cs │ └── AntiForgeryHeaderTagHelper.cs ├── Program.cs └── compilerconfig.json.defaults ├── Xakpc.RazorHtmx.Validation ├── Pages │ ├── _ViewStart.cshtml │ ├── _ViewImports.cshtml │ ├── Success.cshtml │ ├── Shared │ │ ├── _ValidationScriptsPartial.cshtml │ │ ├── _Form.cshtml │ │ ├── _SuccessUser.cshtml │ │ ├── _FormContent.cshtml │ │ ├── _Layout.cshtml │ │ └── _HypermediaForm.cshtml │ ├── Index.cshtml.cs │ ├── RazorPageForm.cshtml │ ├── Success.cshtml.cs │ ├── Error.cshtml.cs │ ├── HypermediaForm.cshtml.cs │ ├── Error.cshtml │ ├── Html5Htmx.cshtml.cs │ ├── Html5Form.cshtml.cs │ ├── RazorPageForm.cshtml.cs │ ├── UnobtrusiveHtmx.cshtml.cs │ ├── Index.cshtml │ ├── HypermediaForm.cshtml │ ├── UnobtrusiveHtmx.cshtml │ ├── Html5Form.cshtml │ └── Html5Htmx.cshtml ├── wwwroot │ ├── favicon.ico │ ├── css │ │ └── site.css │ └── lib │ │ ├── jquery │ │ └── LICENSE.txt │ │ ├── jquery-validation │ │ └── LICENSE.md │ │ └── jquery-validation-unobtrusive │ │ ├── LICENSE.txt │ │ └── jquery.validate.unobtrusive.min.js ├── appsettings.json ├── appsettings.Development.json ├── Xakpc.RazorHtmx.Validation.csproj ├── Program.cs ├── TagHelpers │ ├── RangeInputTagHelper.cs │ ├── RequiredInputTagHelper.cs │ ├── StringLengthExInputTagHelper.cs │ └── ValidationStateInputTagHelper.cs └── UserRegistrationForm.cs ├── Xakpc.MinimalApiHtmx ├── appsettings.Development.json ├── appsettings.json ├── Xakpc.MinimalApiHtmx.csproj └── Program.cs ├── README.md ├── Xakpc.RazorHtmx.sln └── .gitignore /Xakpc.RazorHtmx/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } -------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/LazyLoad/_Image.cshtml: -------------------------------------------------------------------------------- 1 | Kitten -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/wwwroot/scss/error.scss: -------------------------------------------------------------------------------- 1 | .error { 2 | h1, h2{ 3 | --color: #dc3545; 4 | } 5 | } -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xakpc/RazorHtmx/HEAD/Xakpc.RazorHtmx/wwwroot/favicon.ico -------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xakpc/RazorHtmx/HEAD/Xakpc.RazorHtmx.Validation/wwwroot/favicon.ico -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ProgressBar/_ProgressBarPartial.cshtml: -------------------------------------------------------------------------------- 1 | @model int 2 | 3 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ProgressBar/Progress.cs: -------------------------------------------------------------------------------- 1 | namespace Xakpc.RazorHtmx.Pages.ProgressBar; 2 | 3 | public record Progress(int Value, bool Done); -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/compilerconfig.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "outputFile": "wwwroot/css/site.css", 4 | "inputFile": "wwwroot/scss/site.scss" 5 | } 6 | ] -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ValueSelect/_SelectPartial.cshtml: -------------------------------------------------------------------------------- 1 | @model List 2 | 3 | @foreach (var item in Model) 4 | { 5 | 6 | } -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/Animations/_FadeInPartial.cshtml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Xakpc.MinimalApiHtmx/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ImageUpload/_ImagePartial.cshtml: -------------------------------------------------------------------------------- 1 | @model string 2 | 3 | Uploaded Image -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ClickToEdit/ClickToEdit.cshtml: -------------------------------------------------------------------------------- 1 | @page "/click-to-edit" 2 | @model ClickToEditModel 3 | 4 |
5 | @await Html.PartialAsync("_Partial", Model.UserInfoViewModel) 6 |
-------------------------------------------------------------------------------- /Xakpc.RazorHtmx/wwwroot/lib/pico-1.5.10/scss/_functions.scss: -------------------------------------------------------------------------------- 1 | // Output color in RGB format 2 | @function to-rgb($color) { 3 | @return unquote("rgb(#{red($color)}, #{green($color)}, #{blue($color)})"); 4 | } -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Trace", 5 | "Microsoft.AspNetCore": "Trace" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/wwwroot/lib/pico-1.5.10/scss/layout/_section.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Section 3 | * Responsive spacings for section 4 | */ 5 | 6 | section { 7 | margin-bottom: var(--block-spacing-vertical); 8 | } 9 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ClickToLoad/PagedTableViewModel.cs: -------------------------------------------------------------------------------- 1 | using Xakpc.RazorHtmx.Data; 2 | 3 | namespace Xakpc.RazorHtmx.Pages.ClickToLoad; 4 | 5 | public record PagedTableViewModel(List Users, int Page); -------------------------------------------------------------------------------- /Xakpc.MinimalApiHtmx/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model PrivacyModel 3 | @{ 4 | ViewData["Title"] = "Privacy Policy"; 5 | } 6 |

@ViewData["Title"]

7 | 8 |

Use this page to detail your site's privacy policy.

-------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } 10 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Xakpc.RazorHtmx 2 | @using Xakpc.RazorHtmx.TagHelpers; 3 | @namespace Xakpc.RazorHtmx.Pages 4 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 5 | @addTagHelper *, Xakpc.RazorHtmx -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/wwwroot/lib/pico-1.5.10/scss/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | syntax: "postcss-scss", 3 | map: false, 4 | plugins: { 5 | "css-declaration-sorter": { 6 | order: "smacss" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Xakpc.RazorHtmx.Validation 2 | @namespace Xakpc.RazorHtmx.Validation.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | @addTagHelper *, Xakpc.RazorHtmx.Validation 5 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DetailedErrors": true, 3 | "Logging": { 4 | "LogLevel": { 5 | "Default": "Information", 6 | "Microsoft.AspNetCore": "Warning" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/Animations/_ColorSwapPartial.cshtml: -------------------------------------------------------------------------------- 1 | @model string 2 | 3 |
5 | Color Swap Demo 6 |
-------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/LazyLoad/_Image.cshtml.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc.RazorPages; 2 | 3 | namespace Xakpc.RazorHtmx.Pages.LazyLoad; 4 | 5 | public class _ImageModel : PageModel 6 | { 7 | public void OnGet() 8 | { 9 | } 10 | } -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/Animations/_SwapContentPartial.cshtml: -------------------------------------------------------------------------------- 1 | @model (string Title, string Button) 2 | 3 |
@Model.Title
4 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/LazyLoad/LazyLoad.cshtml: -------------------------------------------------------------------------------- 1 | @page "/lazy-load" 2 | @model LazyLoadModel 3 | @{ 4 | } 5 | 6 |
7 |
8 |
9 |
10 |
-------------------------------------------------------------------------------- /Xakpc.RazorHtmx/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/Tabs/Tabs.cshtml: -------------------------------------------------------------------------------- 1 | @page "/tabs-hateoas" 2 | @model TabsModel 3 | @{ 4 | } 5 | 6 |
11 |
-------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/Pages/Success.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model Xakpc.RazorHtmx.Validation.Pages.SuccessModel 3 | @{ 4 | } 5 | 6 |

Registration Successful

7 | 8 |
9 | 10 |
-------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/Pages/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ActiveSearch/_TableBody.cshtml: -------------------------------------------------------------------------------- 1 | @model List 2 | 3 | @foreach (var userInfo in Model) 4 | { 5 | 6 | @userInfo.FirstName 7 | @userInfo.LastName 8 | @userInfo.Email 9 | 10 | } -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/DialogsHtml/_ModalPartial.cshtml: -------------------------------------------------------------------------------- 1 | @model (string Header, string Text) 2 | 3 |
4 | 5 | @Model.Header 6 |
7 |
8 |

9 | @Model.Text 10 |

11 |
-------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/EditRow/_TableRow.cshtml: -------------------------------------------------------------------------------- 1 | @model Xakpc.RazorHtmx.Data.UserInfoViewModel 2 | 3 | 4 | 5 | @Model.FirstName 6 | @Model.Email 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx.Validation/wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | .text-danger { 2 | color: var(--pico-del-color); 3 | } 4 | 5 | :where(input, select, textarea, fieldset, .grid) + span.text-danger { 6 | display: block; 7 | width: 100%; 8 | margin-top: calc(var(--pico-spacing) * -.75); 9 | margin-bottom: var(--pico-spacing); 10 | font-size: 0.875em; 11 | } 12 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/Pages/ProgressBar/ProgressBar.cshtml: -------------------------------------------------------------------------------- 1 | @page "/progress-bar" 2 | @model ProgressBarModel 3 | 4 |
5 |
6 |

Start Progress

7 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /Xakpc.RazorHtmx/wwwroot/lib/pico-1.5.10/scss/pico.classless.scss: -------------------------------------------------------------------------------- 1 | // Config 2 | // -------------------- 3 | 4 | // Enable
,
,