From a42d3d137d8a660615190b136c26a25c1d5f1a32 Mon Sep 17 00:00:00 2001 From: Jakob <67110757+spj2401Dev@users.noreply.github.com> Date: Tue, 11 Nov 2025 15:26:32 +0100 Subject: [PATCH 1/2] Added Blazor :O --- README.md | 72 ++++++++++++---- build/lib/highlighter.ts | 5 +- .../1-declare-state/blazor/Name.razor | 5 ++ .../2-update-state/blazor/Name.razor | 10 +++ .../3-computed-state/blazor/DoubleCount.razor | 6 ++ .../blazor/HelloWorld.razor | 1 + .../2-styling/blazor/CssStyle.razor | 8 ++ .../2-templating/3-loop/blazor/Colors.razor | 10 +++ .../4-event-click/blazor/Counter.razor | 11 +++ .../5-dom-ref/blazor/InputFocused.razor | 13 +++ .../6-conditional/blazor/TrafficLight.razor | 28 +++++++ .../1-on-mount/blazor/PageTitle.razor | 12 +++ .../2-on-unmount/blazor/Time.razor | 31 +++++++ .../1-props/blazor/App.razor | 6 ++ .../1-props/blazor/UserProfile.razor | 18 ++++ .../blazor/AnswerButton.razor | 8 ++ .../2-emit-to-parent/blazor/App.razor | 17 ++++ .../3-slot/blazor/App.razor | 1 + .../3-slot/blazor/FunnyButton.razor | 8 ++ .../4-slot-fallback/blazor/App.razor | 2 + .../4-slot-fallback/blazor/FunnyButton.razor | 15 ++++ .../5-context/blazor/App.razor | 25 ++++++ .../5-context/blazor/UserProfile.razor | 16 ++++ .../1-input-text/blazor/InputHello.razor | 6 ++ .../2-checkbox/blazor/IsAvailable.razor | 6 ++ .../3-radio/blazor/PickPill.razor | 19 +++++ .../4-select/blazor/ColorSelect.razor | 25 ++++++ frameworks.ts | 17 ++++ public/framework/blazor.svg | 1 + public/sitemap.xml | 82 ++++++++++--------- 30 files changed, 428 insertions(+), 56 deletions(-) create mode 100644 content/1-reactivity/1-declare-state/blazor/Name.razor create mode 100644 content/1-reactivity/2-update-state/blazor/Name.razor create mode 100644 content/1-reactivity/3-computed-state/blazor/DoubleCount.razor create mode 100644 content/2-templating/1-minimal-template/blazor/HelloWorld.razor create mode 100644 content/2-templating/2-styling/blazor/CssStyle.razor create mode 100644 content/2-templating/3-loop/blazor/Colors.razor create mode 100644 content/2-templating/4-event-click/blazor/Counter.razor create mode 100644 content/2-templating/5-dom-ref/blazor/InputFocused.razor create mode 100644 content/2-templating/6-conditional/blazor/TrafficLight.razor create mode 100644 content/3-lifecycle/1-on-mount/blazor/PageTitle.razor create mode 100644 content/3-lifecycle/2-on-unmount/blazor/Time.razor create mode 100644 content/4-component-composition/1-props/blazor/App.razor create mode 100644 content/4-component-composition/1-props/blazor/UserProfile.razor create mode 100644 content/4-component-composition/2-emit-to-parent/blazor/AnswerButton.razor create mode 100644 content/4-component-composition/2-emit-to-parent/blazor/App.razor create mode 100644 content/4-component-composition/3-slot/blazor/App.razor create mode 100644 content/4-component-composition/3-slot/blazor/FunnyButton.razor create mode 100644 content/4-component-composition/4-slot-fallback/blazor/App.razor create mode 100644 content/4-component-composition/4-slot-fallback/blazor/FunnyButton.razor create mode 100644 content/4-component-composition/5-context/blazor/App.razor create mode 100644 content/4-component-composition/5-context/blazor/UserProfile.razor create mode 100644 content/6-form-input/1-input-text/blazor/InputHello.razor create mode 100644 content/6-form-input/2-checkbox/blazor/IsAvailable.razor create mode 100644 content/6-form-input/3-radio/blazor/PickPill.razor create mode 100644 content/6-form-input/4-select/blazor/ColorSelect.razor create mode 100644 public/framework/blazor.svg diff --git a/README.md b/README.md index 76aa0a22..bbc06523 100644 --- a/README.md +++ b/README.md @@ -277,11 +277,11 @@ How do we solve this ? Developers love having framework overview by examples. It - [x] Fetch data - +
- - Ember Polaris + + Solid.js @@ -318,8 +318,8 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Solid.js + + Svelte 4 @@ -356,8 +356,8 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Svelte 4 + + Vue 2 @@ -394,9 +394,9 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Vue 2 - + + Alpine + - [x] Reactivity @@ -413,12 +413,12 @@ How do we solve this ? Developers love having framework overview by examples. It - [x] Lifecycle - [x] On mount - [x] On unmount -- [x] Component composition +- [ ] Component composition - [x] Props - [x] Emit to parent - [x] Slot - [x] Slot fallback - - [x] Context + - [ ] Context - [x] Form input - [x] Input text - [x] Checkbox @@ -432,9 +432,9 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Alpine - + + Ember Polaris + - [x] Reactivity @@ -451,12 +451,12 @@ How do we solve this ? Developers love having framework overview by examples. It - [x] Lifecycle - [x] On mount - [x] On unmount -- [ ] Component composition +- [x] Component composition - [x] Props - [x] Emit to parent - [x] Slot - [x] Slot fallback - - [ ] Context + - [x] Context - [x] Form input - [x] Input text - [x] Checkbox @@ -695,6 +695,44 @@ How do we solve this ? Developers love having framework overview by examples. It - [ ] Fetch data
+ +
+ + + Blazor + + + +- [x] Reactivity + - [x] Declare state + - [x] Update state + - [x] Computed state +- [x] Templating + - [x] Minimal template + - [x] Styling + - [x] Loop + - [x] Event click + - [x] Dom ref + - [x] Conditional +- [x] Lifecycle + - [x] On mount + - [x] On unmount +- [x] Component composition + - [x] Props + - [x] Emit to parent + - [x] Slot + - [x] Slot fallback + - [x] Context +- [x] Form input + - [x] Input text + - [x] Checkbox + - [x] Radio + - [x] Select +- [ ] Webapp features + - [ ] Render app + - [ ] Fetch data + +
diff --git a/build/lib/highlighter.ts b/build/lib/highlighter.ts index 5b66fca9..6816362b 100644 --- a/build/lib/highlighter.ts +++ b/build/lib/highlighter.ts @@ -32,9 +32,12 @@ async function getHighlighter(): Promise< "jsx", "vue", "marko", + "csharp", ], langAlias: { - ripple: "jsx", // until ripple is supported by shiki + ripple: "jsx", + razor: "csharp", // Csharp might not be ideal, but better? than nothing + cs: "csharp", }, }); } diff --git a/content/1-reactivity/1-declare-state/blazor/Name.razor b/content/1-reactivity/1-declare-state/blazor/Name.razor new file mode 100644 index 00000000..76383b90 --- /dev/null +++ b/content/1-reactivity/1-declare-state/blazor/Name.razor @@ -0,0 +1,5 @@ +

Hello @name

+ +@code { + private string name = "John"; +} diff --git a/content/1-reactivity/2-update-state/blazor/Name.razor b/content/1-reactivity/2-update-state/blazor/Name.razor new file mode 100644 index 00000000..1d9d5fa0 --- /dev/null +++ b/content/1-reactivity/2-update-state/blazor/Name.razor @@ -0,0 +1,10 @@ +

Hello @name

+ +@code { + private string name = "John"; + + protected override void OnInitialized() + { + name = "Jane"; + } +} diff --git a/content/1-reactivity/3-computed-state/blazor/DoubleCount.razor b/content/1-reactivity/3-computed-state/blazor/DoubleCount.razor new file mode 100644 index 00000000..f33f7a87 --- /dev/null +++ b/content/1-reactivity/3-computed-state/blazor/DoubleCount.razor @@ -0,0 +1,6 @@ +
@doubleCount
+ +@code { + private int count = 10; + private int doubleCount => count * 2; +} diff --git a/content/2-templating/1-minimal-template/blazor/HelloWorld.razor b/content/2-templating/1-minimal-template/blazor/HelloWorld.razor new file mode 100644 index 00000000..159202e8 --- /dev/null +++ b/content/2-templating/1-minimal-template/blazor/HelloWorld.razor @@ -0,0 +1 @@ +

Hello world

diff --git a/content/2-templating/2-styling/blazor/CssStyle.razor b/content/2-templating/2-styling/blazor/CssStyle.razor new file mode 100644 index 00000000..e41c14d0 --- /dev/null +++ b/content/2-templating/2-styling/blazor/CssStyle.razor @@ -0,0 +1,8 @@ +

I am red

+ + + diff --git a/content/2-templating/3-loop/blazor/Colors.razor b/content/2-templating/3-loop/blazor/Colors.razor new file mode 100644 index 00000000..a3032f15 --- /dev/null +++ b/content/2-templating/3-loop/blazor/Colors.razor @@ -0,0 +1,10 @@ +
    + @foreach (var color in colors) + { +
  • @color
  • + } +
+ +@code { + private string[] colors = { "red", "green", "blue" }; +} diff --git a/content/2-templating/4-event-click/blazor/Counter.razor b/content/2-templating/4-event-click/blazor/Counter.razor new file mode 100644 index 00000000..ff37548a --- /dev/null +++ b/content/2-templating/4-event-click/blazor/Counter.razor @@ -0,0 +1,11 @@ +

Counter: @count

+ + +@code { + private int count = 0; + + private void IncrementCount() + { + count++; + } +} diff --git a/content/2-templating/5-dom-ref/blazor/InputFocused.razor b/content/2-templating/5-dom-ref/blazor/InputFocused.razor new file mode 100644 index 00000000..f389bbf4 --- /dev/null +++ b/content/2-templating/5-dom-ref/blazor/InputFocused.razor @@ -0,0 +1,13 @@ + + +@code { + private ElementReference inputElement; + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + await inputElement.FocusAsync(); + } + } +} diff --git a/content/2-templating/6-conditional/blazor/TrafficLight.razor b/content/2-templating/6-conditional/blazor/TrafficLight.razor new file mode 100644 index 00000000..a52beb03 --- /dev/null +++ b/content/2-templating/6-conditional/blazor/TrafficLight.razor @@ -0,0 +1,28 @@ + +

Light is: @light

+

+ You must + @if (light == "red") + { + STOP + } + else if (light == "orange") + { + SLOW DOWN + } + else if (light == "green") + { + GO + } +

+ +@code { + private readonly string[] trafficLights = { "red", "orange", "green" }; + private int lightIndex = 0; + private string light => trafficLights[lightIndex]; + + private void NextLight() + { + lightIndex = (lightIndex + 1) % trafficLights.Length; + } +} diff --git a/content/3-lifecycle/1-on-mount/blazor/PageTitle.razor b/content/3-lifecycle/1-on-mount/blazor/PageTitle.razor new file mode 100644 index 00000000..0d25c19d --- /dev/null +++ b/content/3-lifecycle/1-on-mount/blazor/PageTitle.razor @@ -0,0 +1,12 @@ +

Page title: @pageTitle

+ +@inject IJSRuntime JSRuntime + +@code { + private string pageTitle = string.Empty; + + protected override async Task OnInitializedAsync() + { + pageTitle = await JSRuntime.InvokeAsync("eval", "document.title"); + } +} diff --git a/content/3-lifecycle/2-on-unmount/blazor/Time.razor b/content/3-lifecycle/2-on-unmount/blazor/Time.razor new file mode 100644 index 00000000..1b2c2403 --- /dev/null +++ b/content/3-lifecycle/2-on-unmount/blazor/Time.razor @@ -0,0 +1,31 @@ +@implements IDisposable + +

Current time: @currentTime

+ +@code { + private string currentTime = string.Empty; + private Timer? timer; + + protected override void OnInitialized() + { + currentTime = DateTime.Now.ToLongTimeString(); + + timer = new Timer( + callback: _ => UpdateTime(), + state: null, + dueTime: TimeSpan.Zero, + period: TimeSpan.FromSeconds(1) + ); + } + + private void UpdateTime() + { + currentTime = DateTime.Now.ToLongTimeString(); + StateHasChanged(); + } + + public void Dispose() + { + timer?.Dispose(); + } +} \ No newline at end of file diff --git a/content/4-component-composition/1-props/blazor/App.razor b/content/4-component-composition/1-props/blazor/App.razor new file mode 100644 index 00000000..bf92f4a8 --- /dev/null +++ b/content/4-component-composition/1-props/blazor/App.razor @@ -0,0 +1,6 @@ + + diff --git a/content/4-component-composition/1-props/blazor/UserProfile.razor b/content/4-component-composition/1-props/blazor/UserProfile.razor new file mode 100644 index 00000000..9733c90c --- /dev/null +++ b/content/4-component-composition/1-props/blazor/UserProfile.razor @@ -0,0 +1,18 @@ +

My name is @Name!

+

My age is @Age!

+

My favourite colors are @string.Join(", ", FavouriteColors)!

+

I am @(IsAvailable ? "available" : "not available")

+ +@code { + [Parameter] + public string Name { get; set; } = ""; + + [Parameter] + public int Age { get; set; } + + [Parameter] + public string[] FavouriteColors { get; set; } = Array.Empty(); + + [Parameter] + public bool IsAvailable { get; set; } +} diff --git a/content/4-component-composition/2-emit-to-parent/blazor/AnswerButton.razor b/content/4-component-composition/2-emit-to-parent/blazor/AnswerButton.razor new file mode 100644 index 00000000..8d6ef9ff --- /dev/null +++ b/content/4-component-composition/2-emit-to-parent/blazor/AnswerButton.razor @@ -0,0 +1,8 @@ + + +@code { + [Parameter] + public EventCallback OnYes { get; set; } + [Parameter] + public EventCallback OnNo { get; set; } +} \ No newline at end of file diff --git a/content/4-component-composition/2-emit-to-parent/blazor/App.razor b/content/4-component-composition/2-emit-to-parent/blazor/App.razor new file mode 100644 index 00000000..03599a71 --- /dev/null +++ b/content/4-component-composition/2-emit-to-parent/blazor/App.razor @@ -0,0 +1,17 @@ +

Are you happy?

+ +

@(isHappy ? "😀" : "😥")

+ +@code { + private bool isHappy = true; + + private void OnAnswerNo() + { + isHappy = false; + } + + private void OnAnswerYes() + { + isHappy = true; + } +} diff --git a/content/4-component-composition/3-slot/blazor/App.razor b/content/4-component-composition/3-slot/blazor/App.razor new file mode 100644 index 00000000..63cea083 --- /dev/null +++ b/content/4-component-composition/3-slot/blazor/App.razor @@ -0,0 +1 @@ +Click me! diff --git a/content/4-component-composition/3-slot/blazor/FunnyButton.razor b/content/4-component-composition/3-slot/blazor/FunnyButton.razor new file mode 100644 index 00000000..61662e44 --- /dev/null +++ b/content/4-component-composition/3-slot/blazor/FunnyButton.razor @@ -0,0 +1,8 @@ + + +@code { + [Parameter] + public RenderFragment? ChildContent { get; set; } +} diff --git a/content/4-component-composition/4-slot-fallback/blazor/App.razor b/content/4-component-composition/4-slot-fallback/blazor/App.razor new file mode 100644 index 00000000..385cd230 --- /dev/null +++ b/content/4-component-composition/4-slot-fallback/blazor/App.razor @@ -0,0 +1,2 @@ + +I got content! diff --git a/content/4-component-composition/4-slot-fallback/blazor/FunnyButton.razor b/content/4-component-composition/4-slot-fallback/blazor/FunnyButton.razor new file mode 100644 index 00000000..844101d0 --- /dev/null +++ b/content/4-component-composition/4-slot-fallback/blazor/FunnyButton.razor @@ -0,0 +1,15 @@ + + +@code { + [Parameter] + public RenderFragment? ChildContent { get; set; } +} diff --git a/content/4-component-composition/5-context/blazor/App.razor b/content/4-component-composition/5-context/blazor/App.razor new file mode 100644 index 00000000..13ddc755 --- /dev/null +++ b/content/4-component-composition/5-context/blazor/App.razor @@ -0,0 +1,25 @@ +

Welcome back, @user.Username

+ + + + +@code { + private UserInfo user = new() + { + Id = 1, + Username = "unicorn42", + Email = "unicorn42@example.com" + }; + + public class UserInfo + { + public int Id { get; set; } + public string Username { get; set; } = ""; + public string Email { get; set; } = ""; + + public void UpdateUsername(string newUsername) + { + Username = newUsername; + } + } +} diff --git a/content/4-component-composition/5-context/blazor/UserProfile.razor b/content/4-component-composition/5-context/blazor/UserProfile.razor new file mode 100644 index 00000000..0fcf43e5 --- /dev/null +++ b/content/4-component-composition/5-context/blazor/UserProfile.razor @@ -0,0 +1,16 @@ +
+

My Profile

+

Username: @user?.Username

+

Email: @user?.Email

+ +
+ +@code { + [CascadingParameter] + private App.UserInfo? user { get; set; } + + private void UpdateUsername() + { + user?.UpdateUsername("Jane"); + } +} diff --git a/content/6-form-input/1-input-text/blazor/InputHello.razor b/content/6-form-input/1-input-text/blazor/InputHello.razor new file mode 100644 index 00000000..607b1ca0 --- /dev/null +++ b/content/6-form-input/1-input-text/blazor/InputHello.razor @@ -0,0 +1,6 @@ +

@text

+ + +@code { + private string text = "Hello world"; +} diff --git a/content/6-form-input/2-checkbox/blazor/IsAvailable.razor b/content/6-form-input/2-checkbox/blazor/IsAvailable.razor new file mode 100644 index 00000000..9e923fd8 --- /dev/null +++ b/content/6-form-input/2-checkbox/blazor/IsAvailable.razor @@ -0,0 +1,6 @@ + + + +@code { + private bool isAvailable = false; +} diff --git a/content/6-form-input/3-radio/blazor/PickPill.razor b/content/6-form-input/3-radio/blazor/PickPill.razor new file mode 100644 index 00000000..75f2278e --- /dev/null +++ b/content/6-form-input/3-radio/blazor/PickPill.razor @@ -0,0 +1,19 @@ +
Picked: @picked
+ + + + + + + +@code { + private string picked = "red"; +} diff --git a/content/6-form-input/4-select/blazor/ColorSelect.razor b/content/6-form-input/4-select/blazor/ColorSelect.razor new file mode 100644 index 00000000..250d7c07 --- /dev/null +++ b/content/6-form-input/4-select/blazor/ColorSelect.razor @@ -0,0 +1,25 @@ + + +@code { + private class ColorOption + { + public int Id { get; set; } + public string Text { get; set; } = ""; + public bool IsDisabled { get; set; } + } + + private readonly ColorOption[] colors = new[] + { + new ColorOption { Id = 1, Text = "red" }, + new ColorOption { Id = 2, Text = "blue" }, + new ColorOption { Id = 3, Text = "green" }, + new ColorOption { Id = 4, Text = "gray", IsDisabled = true } + }; + + private int selectedColorId = 2; +} diff --git a/frameworks.ts b/frameworks.ts index 53db0b05..c8f2bb0d 100644 --- a/frameworks.ts +++ b/frameworks.ts @@ -338,6 +338,23 @@ export const frameworks: Framework[] = [ mainPackageName: "ripple", releaseDate: "2023-01-01", }, + { + id: "blazor", + title: "Blazor", + frameworkName: "Blazor", + frameworkNameId: "blazor", + isLatestStable: true, + img: "framework/blazor.svg", + playgroundURL: "https://try.dot.net/", + documentationURL: + "https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor", + filesSorter(files) { + return sortAllFilenames(files, ["App.razor", "App.razor.cs"]); + }, + repositoryLink: "https://github.com/dotnet/aspnetcore", + mainPackageName: "Microsoft.AspNetCore.Components.Web", + releaseDate: "2018-09-01", + }, ]; export function matchFrameworkId(id: string): Framework | undefined { diff --git a/public/framework/blazor.svg b/public/framework/blazor.svg new file mode 100644 index 00000000..2f5a30cf --- /dev/null +++ b/public/framework/blazor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml index 71d21dfd..aebc3e95 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -2,229 +2,235 @@ https://component-party.dev/ - 2025-09-21 + 2025-11-11 weekly 1 https://component-party.dev/?f=svelte5 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=vue3 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=angularRenaissance - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=angular - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=lit - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=emberOctane - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=solid - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=svelte4 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=vue2 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=alpine - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=emberPolaris - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=mithril - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=aurelia2 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=qwik - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=marko - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=aurelia1 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=ripple - 2025-09-21 + 2025-11-11 + weekly + 0.8 + + + https://component-party.dev/?f=blazor + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react,vue3 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react,angularRenaissance - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react,svelte5 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react,solid - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=vue3,angularRenaissance - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=vue3,svelte5 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=vue3,solid - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=angularRenaissance,svelte5 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=angularRenaissance,solid - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=svelte5,solid - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react,vue3,angularRenaissance - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react,svelte5,solid - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=vue3,svelte5,solid - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=react,vue3,svelte5 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=svelte4,svelte5 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=vue2,vue3 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=angular,angularRenaissance - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=aurelia1,aurelia2 - 2025-09-21 + 2025-11-11 weekly 0.8 https://component-party.dev/?f=emberOctane,emberPolaris - 2025-09-21 + 2025-11-11 weekly 0.8 From 85f5dfcaccee2da36fb85af0c28f5b34aa1e79d3 Mon Sep 17 00:00:00 2001 From: Jakob <67110757+spj2401Dev@users.noreply.github.com> Date: Tue, 11 Nov 2025 15:30:48 +0100 Subject: [PATCH 2/2] Kinda broke readme --- README.md | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index bbc06523..5fb63758 100644 --- a/README.md +++ b/README.md @@ -277,11 +277,11 @@ How do we solve this ? Developers love having framework overview by examples. It - [x] Fetch data
- +
- - Solid.js + + Ember Polaris @@ -318,8 +318,8 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Svelte 4 + + Solid.js @@ -356,8 +356,8 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Vue 2 + + Svelte 4 @@ -394,9 +394,9 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Alpine - + + Vue 2 + - [x] Reactivity @@ -413,12 +413,12 @@ How do we solve this ? Developers love having framework overview by examples. It - [x] Lifecycle - [x] On mount - [x] On unmount -- [ ] Component composition +- [x] Component composition - [x] Props - [x] Emit to parent - [x] Slot - [x] Slot fallback - - [ ] Context + - [x] Context - [x] Form input - [x] Input text - [x] Checkbox @@ -432,9 +432,9 @@ How do we solve this ? Developers love having framework overview by examples. It
- - Ember Polaris - + + Alpine + - [x] Reactivity @@ -451,12 +451,12 @@ How do we solve this ? Developers love having framework overview by examples. It - [x] Lifecycle - [x] On mount - [x] On unmount -- [x] Component composition +- [ ] Component composition - [x] Props - [x] Emit to parent - [x] Slot - [x] Slot fallback - - [x] Context + - [ ] Context - [x] Form input - [x] Input text - [x] Checkbox @@ -695,12 +695,12 @@ How do we solve this ? Developers love having framework overview by examples. It - [ ] Fetch data
- +
Blazor - + - [x] Reactivity