@effindomv2/fui-rs 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Cargo.toml CHANGED
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "fui-rs"
3
- version = "0.1.9"
3
+ version = "0.1.10"
4
4
  edition = "2021"
5
5
  license = "AGPL-3.0-only OR LicenseRef-EffinDom-Commercial"
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effindomv2/fui-rs",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "private": false,
5
5
  "license": "AGPL-3.0-only OR LicenseRef-EffinDom-Commercial",
6
6
  "description": "EffinDom v2 Rust frontend framework SDK and host generators",
@@ -59,7 +59,6 @@ impl NavLink {
59
59
  label_node
60
60
  .font_family(theme.fonts.body_family.clone())
61
61
  .font_size(15.0)
62
- .text_color(theme.colors.accent)
63
62
  .cursor(CursorStyle::Pointer);
64
63
  root.justify_content(JustifyContent::Start)
65
64
  .align_items(AlignItems::Center)
@@ -293,6 +292,7 @@ impl Node for NavLink {
293
292
 
294
293
  fn build_self(&self) {
295
294
  self.root.build_self();
295
+ self.sync_visual_state();
296
296
  }
297
297
  }
298
298
 
@@ -407,13 +407,15 @@ impl NavLinkEventTarget {
407
407
  }
408
408
 
409
409
  fn sync_visual_state(&self) {
410
- let color = self.text_color_override.get().unwrap_or_else(|| {
411
- if self.hovered.get() {
412
- current_theme().colors.accent_hovered
413
- } else {
414
- current_theme().colors.accent
415
- }
416
- });
410
+ let theme = current_theme();
411
+ let color = if self.hovered.get() {
412
+ theme.colors.accent_hovered
413
+ } else {
414
+ self.text_color_override
415
+ .get()
416
+ .or_else(|| self.label.configured_text_color())
417
+ .unwrap_or(theme.colors.accent)
418
+ };
417
419
  if self.label.handle() != NodeHandle::INVALID {
418
420
  ui::set_text_color(self.label.handle().raw(), color);
419
421
  }
package/src/node/core.rs CHANGED
@@ -1791,6 +1791,9 @@ pub trait Node: Clone {
1791
1791
  Self: Sized,
1792
1792
  {
1793
1793
  let node_ref = self.node_ref();
1794
+ if enabled {
1795
+ node_ref.require_interactive();
1796
+ }
1794
1797
  let mut core = node_ref.inner.borrow_mut();
1795
1798
  core.behavior.focusable = Some((enabled, tab_index));
1796
1799
  let interactive = core.behavior.enabled && core.behavior.inherited_enabled;
@@ -476,6 +476,9 @@ impl FlexBox {
476
476
  }
477
477
 
478
478
  pub fn focusable(&self, enabled: bool, tab_index: i32) -> &Self {
479
+ if enabled {
480
+ self.retained_node_ref().require_interactive();
481
+ }
479
482
  let mut core = self.core.borrow_mut();
480
483
  core.behavior.focusable = Some((enabled, tab_index));
481
484
  let interactive = core.behavior.enabled && core.behavior.inherited_enabled;
@@ -249,6 +249,9 @@ impl ScrollView {
249
249
  }
250
250
 
251
251
  pub fn focusable(&self, enabled: bool, tab_index: i32) -> &Self {
252
+ if enabled {
253
+ self.retained_node_ref().require_interactive();
254
+ }
252
255
  let mut core = self.core.borrow_mut();
253
256
  core.behavior.focusable = Some((enabled, tab_index));
254
257
  let interactive = core.behavior.enabled && core.behavior.inherited_enabled;
@@ -177,6 +177,10 @@ impl TextNode {
177
177
  self
178
178
  }
179
179
 
180
+ pub(crate) fn configured_text_color(&self) -> Option<u32> {
181
+ self.props.borrow().text_color
182
+ }
183
+
180
184
  pub fn style_runs(&self, words: Vec<u32>) -> &Self {
181
185
  {
182
186
  let mut props = self.props.borrow_mut();
@@ -418,6 +422,9 @@ impl TextNode {
418
422
  }
419
423
 
420
424
  pub fn focusable(&self, enabled: bool, tab_index: i32) -> &Self {
425
+ if enabled {
426
+ self.retained_node_ref().require_interactive();
427
+ }
421
428
  let mut core = self.core.borrow_mut();
422
429
  core.behavior.focusable = Some((enabled, tab_index));
423
430
  let interactive = core.behavior.enabled && core.behavior.inherited_enabled;