* [PATCH yew-widget-toolkit 0/4] small cleanups/fixes
@ 2026-07-17 12:55 Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 1/4] widget: form: radio button: fix property comments Dominik Csapak
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Dominik Csapak @ 2026-07-17 12:55 UTC (permalink / raw)
To: yew-devel
some smaller cleanups/fixes for the radio button and one for dom/align.
Dominik Csapak (4):
widget: form: radio button: fix property comments
widget: form: radio button: dim boxlabel when disabled
widget: form: radio button: use 'radio' aria role instead of
'checkbox'
dom: align: fix fallback check for placements
src/dom/align.rs | 7 +++----
src/widget/form/radio_button.rs | 14 +++++++++-----
2 files changed, 12 insertions(+), 9 deletions(-)
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH yew-widget-toolkit 1/4] widget: form: radio button: fix property comments
2026-07-17 12:55 [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Dominik Csapak
@ 2026-07-17 12:55 ` Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 2/4] widget: form: radio button: dim boxlabel when disabled Dominik Csapak
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Dominik Csapak @ 2026-07-17 12:55 UTC (permalink / raw)
To: yew-devel
They were copied from the checkbox, but not updated. Change the
'checkbox' mentions to 'radio button'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/widget/form/radio_button.rs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/widget/form/radio_button.rs b/src/widget/form/radio_button.rs
index 753a71c..1f409c2 100644
--- a/src/widget/form/radio_button.rs
+++ b/src/widget/form/radio_button.rs
@@ -69,14 +69,14 @@ pub struct RadioButton {
///
/// Called on user interaction:
///
- /// - Click on the checkbox.
+ /// - Click on the radio button.
/// - Click on the associated input label.
/// - Activation by keyboard (space press).
#[builder_cb(IntoEventCallback, into_event_callback, String)]
#[prop_or_default]
pub on_input: Option<Callback<String>>,
- /// A right side label for the checkbox, to display additional information
+ /// A right side label for the radio button, to display additional information
#[prop_or_default]
pub box_label: Option<FieldLabel>,
}
@@ -102,7 +102,7 @@ impl RadioButton {
/// Method to set the box label.
///
- /// A right side label for the checkbox to display additional information
+ /// A right side label for the radio buton to display additional information
pub fn set_box_label(&mut self, box_label: impl Into<FieldLabel>) {
self.box_label = Some(box_label.into());
}
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH yew-widget-toolkit 2/4] widget: form: radio button: dim boxlabel when disabled
2026-07-17 12:55 [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 1/4] widget: form: radio button: fix property comments Dominik Csapak
@ 2026-07-17 12:55 ` Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 3/4] widget: form: radio button: use 'radio' aria role instead of 'checkbox' Dominik Csapak
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Dominik Csapak @ 2026-07-17 12:55 UTC (permalink / raw)
To: yew-devel
Fix it the same way as in the checkbox, where it was recently fixed.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/widget/form/radio_button.rs | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/widget/form/radio_button.rs b/src/widget/form/radio_button.rs
index 1f409c2..3620add 100644
--- a/src/widget/form/radio_button.rs
+++ b/src/widget/form/radio_button.rs
@@ -282,7 +282,11 @@ impl ManagedField for RadioButtonField {
.into_html_with_ref(self.node_ref.clone()),
);
- let box_label = props.box_label.clone().map(|label| label.padding_start(2));
+ let box_label = props.box_label.clone().map(|label| {
+ label
+ .padding_start(2)
+ .class(disabled.then_some("pwt-opacity-disabled"))
+ });
let checkbox = Row::new()
.class(AlignItems::Center)
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH yew-widget-toolkit 3/4] widget: form: radio button: use 'radio' aria role instead of 'checkbox'
2026-07-17 12:55 [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 1/4] widget: form: radio button: fix property comments Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 2/4] widget: form: radio button: dim boxlabel when disabled Dominik Csapak
@ 2026-07-17 12:55 ` Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 4/4] dom: align: fix fallback check for placements Dominik Csapak
2026-07-17 21:59 ` applied: [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Thomas Lamprecht
4 siblings, 0 replies; 6+ messages in thread
From: Dominik Csapak @ 2026-07-17 12:55 UTC (permalink / raw)
To: yew-devel
According to MDN[0], this is the correct aria role for a radio button.
0: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/radio_role
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/widget/form/radio_button.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/widget/form/radio_button.rs b/src/widget/form/radio_button.rs
index 3620add..ab3ffb8 100644
--- a/src/widget/form/radio_button.rs
+++ b/src/widget/form/radio_button.rs
@@ -276,7 +276,7 @@ impl ManagedField for RadioButtonField {
"tabindex",
props.input_props.tabindex.unwrap_or(0).to_string(),
)
- .attribute("role", "checkbox")
+ .attribute("role", "radio")
.attribute("aria-checked", checked.then_some("true"))
.onkeyup(onkeyup)
.into_html_with_ref(self.node_ref.clone()),
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH yew-widget-toolkit 4/4] dom: align: fix fallback check for placements
2026-07-17 12:55 [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Dominik Csapak
` (2 preceding siblings ...)
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 3/4] widget: form: radio button: use 'radio' aria role instead of 'checkbox' Dominik Csapak
@ 2026-07-17 12:55 ` Dominik Csapak
2026-07-17 21:59 ` applied: [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Thomas Lamprecht
4 siblings, 0 replies; 6+ messages in thread
From: Dominik Csapak @ 2026-07-17 12:55 UTC (permalink / raw)
To: yew-devel
'try_fit_rect' takes a 'has_fallback' parameter, and it was intended
that this is false only for the last placement in the list.
Since `skip(1)` was done before `enumerate()`, the index was off by one.
Also the index is always smaller than `len()` so we have to compensate
by 1 for that.
Fix this by changing the order of `enumerate` and `skip` so the index is
the 'correct' one, and add +1 before checking against the length.
While at it, reuse `num_placements` instead of calculating the length
again.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
src/dom/align.rs | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/src/dom/align.rs b/src/dom/align.rs
index a20cc6e..7d7fea8 100644
--- a/src/dom/align.rs
+++ b/src/dom/align.rs
@@ -480,16 +480,15 @@ where
);
// try fallback placements if the first one does not fit
- if options.placements.len() > 1 && !fits(&rect, &window_rect, &options.placements[0].direction)
- {
- for (idx, placement) in options.placements.iter().skip(1).enumerate() {
+ if num_placements > 1 && !fits(&rect, &window_rect, &options.placements[0].direction) {
+ for (idx, placement) in options.placements.iter().enumerate().skip(1) {
let new_rect = try_fit_rect(
&base,
&element,
&window_rect,
placement,
options.offset,
- idx < num_placements,
+ idx + 1 < num_placements,
);
if fits(&new_rect, &window_rect, &placement.direction) {
--
2.47.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* applied: [PATCH yew-widget-toolkit 0/4] small cleanups/fixes
2026-07-17 12:55 [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Dominik Csapak
` (3 preceding siblings ...)
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 4/4] dom: align: fix fallback check for placements Dominik Csapak
@ 2026-07-17 21:59 ` Thomas Lamprecht
4 siblings, 0 replies; 6+ messages in thread
From: Thomas Lamprecht @ 2026-07-17 21:59 UTC (permalink / raw)
To: yew-devel, Dominik Csapak
On Fri, 17 Jul 2026 14:55:27 +0200, Dominik Csapak wrote:
> some smaller cleanups/fixes for the radio button and one for dom/align.
>
> Dominik Csapak (4):
> widget: form: radio button: fix property comments
> widget: form: radio button: dim boxlabel when disabled
> widget: form: radio button: use 'radio' aria role instead of
> 'checkbox'
> dom: align: fix fallback check for placements
>
> [...]
Applied, thanks!
[1/4] widget: form: radio button: fix property comments
commit: aad60daea7249d0856890814105989296b1dd5b6
[2/4] widget: form: radio button: dim boxlabel when disabled
commit: 139e75ee89da41060d5863c2325cf272623c918b
[3/4] widget: form: radio button: use 'radio' aria role instead of 'checkbox'
commit: 675cda18d67ac73f845b7c7633effcc5e1b8b387
[4/4] dom: align: fix fallback check for placements
commit: 792bb99eefb58beafc52c0a17a24bc685cc94d63
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-07-17 21:59 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-17 12:55 [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 1/4] widget: form: radio button: fix property comments Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 2/4] widget: form: radio button: dim boxlabel when disabled Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 3/4] widget: form: radio button: use 'radio' aria role instead of 'checkbox' Dominik Csapak
2026-07-17 12:55 ` [PATCH yew-widget-toolkit 4/4] dom: align: fix fallback check for placements Dominik Csapak
2026-07-17 21:59 ` applied: [PATCH yew-widget-toolkit 0/4] small cleanups/fixes Thomas Lamprecht
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.