@jsenv/navi 0.27.63 → 0.27.64

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.
@@ -6494,9 +6494,6 @@ const DIMENSION_PROPS = {
6494
6494
  if (parentBoxFlow === "flex-y" || parentBoxFlow === "inline-flex-y") {
6495
6495
  return {
6496
6496
  alignSelf: "stretch",
6497
- // ensure we override any with: 'fit-content' for instance
6498
- // also useful for ".navi_text_sizer" to inherit the full size
6499
- width: "100%",
6500
6497
  };
6501
6498
  }
6502
6499
  // Can't use flexGrow — parent is not flex-x
@@ -6515,9 +6512,6 @@ const DIMENSION_PROPS = {
6515
6512
  if (parentBoxFlow === "flex-x" || parentBoxFlow === "inline-flex-x") {
6516
6513
  return {
6517
6514
  alignSelf: "stretch",
6518
- // ensure we override any with: 'fit-content' for instance
6519
- // also useful for ".navi_text_sizer" to inherit the full size
6520
- height: "100%",
6521
6515
  };
6522
6516
  }
6523
6517
  // Can't use flexGrow — parent is not flex-y
@@ -28315,6 +28309,7 @@ installImportMetaCssBuild(import.meta);const css$J = /* css */`
28315
28309
  --button-color-disabled: var(--button-color-readonly);
28316
28310
 
28317
28311
  /* Here to be easy to override */
28312
+ display: inline-block; /* So box css can override when wanting to put button inline flex */
28318
28313
  font-size: var(--button-font-size);
28319
28314
  font-family: var(--button-font-family);
28320
28315
  }
@@ -28347,7 +28342,6 @@ installImportMetaCssBuild(import.meta);const css$J = /* css */`
28347
28342
  touch-action: manipulation;
28348
28343
  user-select: none;
28349
28344
  -webkit-tap-highlight-color: var(--navi-control-tap-highlight-color);
28350
- display: inline-flex;
28351
28345
 
28352
28346
  .navi_button_content {
28353
28347
  position: relative;
@@ -28535,6 +28529,7 @@ installImportMetaCssBuild(import.meta);const css$J = /* css */`
28535
28529
  }
28536
28530
  &[data-icon] {
28537
28531
  --button-padding: 0;
28532
+ display: inline-flex;
28538
28533
  }
28539
28534
  /* cta: call-to-action — special background, border matches background */
28540
28535
  &[data-cta] {
@@ -28623,7 +28618,7 @@ const ButtonUI = props => {
28623
28618
  });
28624
28619
  return jsxs(Box, {
28625
28620
  inline: true,
28626
- flex: true,
28621
+ block: true,
28627
28622
  ...buttonControlRootProps,
28628
28623
  ...buttonControlHostProps,
28629
28624
  // eslint-disable-next-line react/no-children-prop
@@ -36115,6 +36110,11 @@ const PickerCustom = props => {
36115
36110
  ref,
36116
36111
  mode: modeProp
36117
36112
  } = props;
36113
+ // Resolve the id the same way useControlProps does (own id > Field's id > generated id)
36114
+ // before computing popupId below, so two Pickers without an explicit id never collide.
36115
+ const idDefault = useId();
36116
+ const controlId = useContext(ControlIdContext);
36117
+ props.id = props.id || controlId || idDefault;
36118
36118
  // Freeze the mode for the lifetime of an opening: compute it when closed,
36119
36119
  // keep it stable while open so a screen resize mid-session doesn't switch
36120
36120
  // between Popover and Dialog.
@@ -39962,7 +39962,7 @@ installImportMetaCssBuild(import.meta);const css$l = /* css */`
39962
39962
  --x-color: var(--color, white);
39963
39963
 
39964
39964
  position: relative;
39965
- display: inline-flex;
39965
+ display: inline;
39966
39966
  max-width: 200px;
39967
39967
  padding-top: var(--padding-y);
39968
39968
  padding-right: var(--padding-x);
@@ -39971,7 +39971,6 @@ installImportMetaCssBuild(import.meta);const css$l = /* css */`
39971
39971
  align-items: stretch;
39972
39972
  color: var(--x-color);
39973
39973
  font-size: var(--font-size);
39974
- line-height: normal;
39975
39974
  background: var(--x-background);
39976
39975
  background-color: var(--x-background-color);
39977
39976
  border-radius: 1em;
@@ -39982,7 +39981,7 @@ installImportMetaCssBuild(import.meta);const css$l = /* css */`
39982
39981
  }
39983
39982
 
39984
39983
  &[data-text-overflow] {
39985
- display: flex;
39984
+ display: inline;
39986
39985
 
39987
39986
  .navi_text_overflow_wrapper {
39988
39987
  /* Keep badge text and button together */
@@ -39994,10 +39993,13 @@ installImportMetaCssBuild(import.meta);const css$l = /* css */`
39994
39993
  display: inline-flex;
39995
39994
  margin-top: calc(-1 * var(--padding-y));
39996
39995
  margin-bottom: calc(-1 * var(--padding-y));
39996
+ padding-top: var(--padding-y);
39997
39997
  padding-right: calc(var(--padding-x) / 2);
39998
+ padding-bottom: var(--padding-y);
39998
39999
  padding-left: calc(var(--padding-x) / 2);
39999
40000
  align-items: center;
40000
40001
  cursor: pointer;
40002
+ pointer-events: auto;
40001
40003
  user-select: none;
40002
40004
 
40003
40005
  &:first-child {
@@ -40109,6 +40111,11 @@ const BadgeList = ({
40109
40111
  const measure = () => {
40110
40112
  visibleEl.style.width = "";
40111
40113
  if (shrinkWrap) {
40114
+ // Clone the already-rendered DOM nodes instead of letting React/Preact
40115
+ // render the children a second time into the ghost: re-rendering would
40116
+ // instantiate Badge/Badge.Button a second time, double-registering
40117
+ // their controllers (and any other mount side effect) under the same id.
40118
+ measureEl.replaceChildren(...Array.from(visibleEl.children, child => child.cloneNode(true)));
40112
40119
  const optimalWidth = measureWidestChildRow(measureEl);
40113
40120
  if (optimalWidth !== null) {
40114
40121
  visibleEl.style.width = `${Math.ceil(optimalWidth)}px`;
@@ -40150,8 +40157,7 @@ const BadgeList = ({
40150
40157
  ...sharedProps,
40151
40158
  ref: measureRef,
40152
40159
  "aria-hidden": "true",
40153
- "navi-badge-list-clone": "",
40154
- children: childArray
40160
+ "navi-badge-list-clone": ""
40155
40161
  }), jsxs(Box, {
40156
40162
  baseClassName: "navi_badge_list",
40157
40163
  ...sharedProps,