@jsenv/navi 0.30.21 → 0.30.22

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.
@@ -64626,6 +64626,7 @@ const css$R = /* css */`.navi_control_swap {
64626
64626
  --x-control-swap-size: var(--navi-control-swap-size, calc(var(--navi-control-line-height) + 2 * var(--navi-s) + 2 *
64627
64627
  var(--navi-control-border-width)));
64628
64628
  --x-control-swap-gap: var(--navi-control-swap-gap, var(--navi-xs));
64629
+ --x-control-swap-seam-travel: calc(var(--x-control-swap-gap) + var(--navi-control-border-width));
64629
64630
  height: var(--x-control-swap-size);
64630
64631
  align-items: stretch;
64631
64632
  gap: var(--x-control-swap-gap);
@@ -64639,15 +64640,45 @@ const css$R = /* css */`.navi_control_swap {
64639
64640
  min-width: 0;
64640
64641
  height: 100%;
64641
64642
  position: relative;
64643
+
64644
+ &:has( ~ .navi_control_swap_stage)[aria-expanded="true"] {
64645
+ --x-corner-top-right-radius: 0;
64646
+ --x-corner-bottom-right-radius: 0;
64647
+ }
64648
+
64649
+ .navi_control_swap_stage ~ &[aria-expanded="true"] {
64650
+ --x-corner-top-left-radius: 0;
64651
+ --x-corner-bottom-left-radius: 0;
64652
+ }
64653
+
64654
+ &:focus-visible, &[data-focus-visible] {
64655
+ z-index: var(--navi-z-index-control-focused);
64656
+ }
64642
64657
  }
64643
64658
 
64644
64659
  & > .navi_control_swap_stage {
64660
+ min-width: 0;
64661
+ margin-left: calc(-1 * var(--x-control-swap-seam-travel));
64645
64662
  overflow-clip-margin: var(--navi-focus-outline-width);
64646
64663
  flex: 1 1 0;
64647
- min-width: 0;
64648
64664
  display: flex;
64649
64665
  overflow: clip;
64650
64666
  container-type: inline-size;
64667
+
64668
+ &:hover {
64669
+ z-index: var(--navi-z-index-control-hovered);
64670
+ position: relative;
64671
+ }
64672
+
64673
+ &:has(:focus-visible, [data-focus-visible]) {
64674
+ z-index: var(--navi-z-index-control-focused);
64675
+ position: relative;
64676
+ }
64677
+
64678
+ &:has([aria-expanded="true"]) {
64679
+ z-index: var(--navi-z-index-control-expanded);
64680
+ position: relative;
64681
+ }
64651
64682
  }
64652
64683
 
64653
64684
  & > .navi_control_swap_stage > .navi_control_swap_track {
@@ -64666,20 +64697,43 @@ const css$R = /* css */`.navi_control_swap {
64666
64697
  width: 100%;
64667
64698
  height: 100%;
64668
64699
  }
64700
+
64701
+ &:first-child > :not([navi-out-of-flow]) {
64702
+ --x-corner-top-left-radius: 0;
64703
+ --x-corner-bottom-left-radius: 0;
64704
+ border-top-left-radius: 0 !important;
64705
+ border-bottom-left-radius: 0 !important;
64706
+ }
64707
+
64708
+ &:last-child > :not([navi-out-of-flow]) {
64709
+ --x-corner-top-right-radius: 0;
64710
+ --x-corner-bottom-right-radius: 0;
64711
+ border-top-right-radius: 0 !important;
64712
+ border-bottom-right-radius: 0 !important;
64713
+ }
64669
64714
  }
64670
64715
  }
64671
64716
 
64717
+ &[data-active-index="1"] > .navi_control_swap_stage {
64718
+ transform: translateX(var(--x-control-swap-seam-travel));
64719
+ }
64720
+
64672
64721
  &[data-active-index="1"] > .navi_control_swap_stage > .navi_control_swap_track {
64673
64722
  transform: translateX(calc(-100cqw - var(--x-control-swap-gap)));
64674
64723
  }
64675
64724
 
64676
- &[data-animation] > .navi_control_swap_stage > .navi_control_swap_track {
64725
+ &[data-animation] > .navi_control_swap_stage, &[data-animation] > .navi_control_swap_stage > .navi_control_swap_track {
64677
64726
  transition: transform var(--navi-control-swap-animation-duration, .22s)
64678
64727
  ease;
64679
64728
  }
64680
64729
 
64730
+ &[data-animation] > .navi_control_swap_cap {
64731
+ transition: border-radius
64732
+ var(--navi-control-swap-animation-duration, .22s) ease;
64733
+ }
64734
+
64681
64735
  @media (prefers-reduced-motion: reduce) {
64682
- &[data-animation] > .navi_control_swap_stage > .navi_control_swap_track {
64736
+ &[data-animation] > .navi_control_swap_stage, &[data-animation] > .navi_control_swap_stage > .navi_control_swap_track, &[data-animation] > .navi_control_swap_cap {
64683
64737
  transition: none;
64684
64738
  }
64685
64739
  }
@@ -64710,8 +64764,9 @@ const css$R = /* css */`.navi_control_swap {
64710
64764
  *
64711
64765
  * The row is one length tall — `--navi-control-swap-size`, a line of text
64712
64766
  * between two `s` paddings — and everything in it is that tall: the caps are
64713
- * squares of it, the control holding the floor fills it. `--navi-control-swap-gap`
64714
- * is the space between the boxes.
64767
+ * squares of it, the control holding the floor fills it. The control is joined
64768
+ * to its cap by a shared border; `--navi-control-swap-gap` is the space between
64769
+ * it and the other cap.
64715
64770
  */
64716
64771
  const ControlSwap = props => {
64717
64772
  import.meta.css = [css$R, "@jsenv/navi/src/control/control_swap/control_swap.jsx"];
@@ -71852,6 +71907,12 @@ const SlideContainer = ({
71852
71907
  // names a slide, and the container standing on its first one is a fact only
71853
71908
  // the map knows (see the layout effect that paints it).
71854
71909
  const areaOnScreen = containerRef.current.getAttribute(SLIDE_CURRENT_ATTRIBUTE);
71910
+ // Standing on the first slide by default holds a rank, and the slide at
71911
+ // that rank changes with their order. Someone outside is naming slides, so
71912
+ // the one on screen is held by its name from this answer on.
71913
+ if (current !== areaOnScreen) {
71914
+ setCurrentAreaState(areaOnScreen);
71915
+ }
71855
71916
  if (areaAsked === areaOnScreen) {
71856
71917
  return;
71857
71918
  }