@jsenv/navi 0.29.169 → 0.29.170

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.
@@ -34779,12 +34779,15 @@ const useUIGroupStateController = (
34779
34779
  if (notifyExternal === true || notifyExternal === "if-it-moves") {
34780
34780
  if (
34781
34781
  notifyExternal === "if-it-moves" &&
34782
- compareTwoJsValues(groupUIState, controller.uiState)
34782
+ compareTwoJsValues(groupUIState, controller.announcedUIState)
34783
34783
  ) {
34784
- // A child confirming what it already shows, to a group already
34785
- // worth it: the value arrived while the popup was open and the
34786
- // group reacted then. One trip through a picker is one answer, so
34787
- // there is nothing left to say here.
34784
+ // A child confirming what it already shows, to a group that has
34785
+ // already said it: the value arrived while the popup was open and
34786
+ // the group reacted then. One trip through a picker is one answer,
34787
+ // so there is nothing left to say here. Measured against what was
34788
+ // announced rather than against what the group holds — a picker
34789
+ // mounting into a form folds its suggestion into that silently, and
34790
+ // a value nobody was ever told is not one that has been said.
34788
34791
  return;
34789
34792
  }
34790
34793
  // Somebody answered: what the group is worth is what its children say
@@ -34873,6 +34876,11 @@ const useUIGroupStateController = (
34873
34876
  const { controller } = s;
34874
34877
  const currentUIState = controller.uiState;
34875
34878
  controller.uiState = newUIState;
34879
+ // What the outside was last told, which is not what the group is worth:
34880
+ // a child mounting into a group that derived its own value moves that
34881
+ // value through syncInternalState, deliberately without telling anybody
34882
+ // (see onChange). Only what goes through here has been said out loud.
34883
+ controller.announcedUIState = newUIState;
34876
34884
  uiStateSignal.value = newUIState;
34877
34885
  debugUIGroup(
34878
34886
  e,
@@ -34905,6 +34913,7 @@ const useUIGroupStateController = (
34905
34913
  hasDefaultValueProp,
34906
34914
  props,
34907
34915
  uiState: stateInitial,
34916
+ announcedUIState: stateInitial,
34908
34917
  // Whether what the group holds was HANDED to it (a parent distributing,
34909
34918
  // a picker filling its popup, a value prop) rather than worked out from
34910
34919
  // its children. What it protects is read in onChange.
@@ -41940,10 +41949,8 @@ const css$W = /* css */`@layer navi {
41940
41949
  }
41941
41950
  }
41942
41951
 
41943
- &[data-expand-x] {
41944
- flex-grow: 1;
41945
-
41946
- &:not([data-vertical]):not([data-scrollable]) .navi_link {
41952
+ &[data-expand-x]:not([data-vertical]):not([data-scrollable]) {
41953
+ & .navi_link {
41947
41954
  flex: 1;
41948
41955
  justify-content: center;
41949
41956
  }