@jsenv/navi 0.29.410 → 0.29.411

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.
@@ -71188,6 +71188,11 @@ const css$x = /* css */`@layer navi {
71188
71188
  display: flex;
71189
71189
  overflow: hidden;
71190
71190
 
71191
+ &[data-borderless] {
71192
+ --x-list-border-radius: 0px;
71193
+ overflow: visible;
71194
+ }
71195
+
71191
71196
  &[data-overflow-visible="both"] {
71192
71197
  overflow: visible;
71193
71198
  }
@@ -71872,6 +71877,7 @@ const ListUI = props => {
71872
71877
  "data-item-transition": itemTransition ? "" : undefined,
71873
71878
  popover: popover,
71874
71879
  "data-horizontal": horizontal ? "" : undefined,
71880
+ "data-borderless": isBorderless(rest) ? "" : undefined,
71875
71881
  "data-scroller": getScrollerAttribute(scroller),
71876
71882
  "data-overflow-visible": getOverflowVisibleAttribute(overflow, overflowX, overflowY),
71877
71883
  "navi-hover-while-scrolling": hoverWhileScrolling ? "" : undefined,
@@ -73341,6 +73347,25 @@ const getScrollerAttribute = scroller => {
73341
73347
  return "parent";
73342
73348
  };
73343
73349
 
73350
+ // A radius asked for explicitly is kept: a borderless list painting a
73351
+ // background of its own may want that surface rounded, and clipped to it.
73352
+ const isBorderless = ({
73353
+ border,
73354
+ borderWidth,
73355
+ borderRadius
73356
+ }) => {
73357
+ if (borderRadius !== undefined) {
73358
+ return false;
73359
+ }
73360
+ if (borderWidth !== undefined) {
73361
+ return parseFloat(borderWidth) === 0;
73362
+ }
73363
+ if (border === undefined) {
73364
+ return false;
73365
+ }
73366
+ return border === "none" || parseFloat(border) === 0;
73367
+ };
73368
+
73344
73369
  // overflow lands as an inline style on the inner scroll element, which is
73345
73370
  // enough for every value but "visible": that one only means anything once the
73346
73371
  // frame around it stops clipping too. Reading the per-axis props over the