@threadlabs/looma 0.35.0 → 0.35.1

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.
@@ -8,7 +8,8 @@
8
8
  scrolls sideways once they overflow.</prop>
9
9
  <prop name="snap" type="keyword" values="start, center"
10
10
  >Snaps scrolling to items: start comes to rest with an item's start edge at the reel's start, and center with an item centred in the reel. Unset, the reel
11
- scrolls freely.</prop>
11
+ scrolls freely. Wrap a component item in a plain element when snapping: the wrapper receives snap alignment while the component keeps ownership of its
12
+ root styles.</prop>
12
13
  </defs>
13
14
  <div role="region" tabindex="0"><slot></slot></div>
14
15
  <style>
@@ -98,10 +98,9 @@
98
98
  max-inline-size: 100%;
99
99
  /* Tabs that do not fit scroll sideways rather than wrapping or squeezing. */
100
100
  overflow-x: auto;
101
- /* overflow-x: auto would make the block axis scrollable too; a sideways swipe must not scroll the
102
- strip or the page vertically. */
101
+ /* Contain sideways overscroll without trapping vertical page scrolling. */
103
102
  overflow-y: hidden;
104
- overscroll-behavior: contain;
103
+ overscroll-behavior-inline: contain;
105
104
  scrollbar-width: thin;
106
105
  border-block-end: var(--ui-border-width) solid var(--ui-border-divider);
107
106
  }
@@ -122,17 +122,9 @@ export function connect(host) {
122
122
  if (list.contains(event.relatedTarget)) return;
123
123
  for (const button of tabButtons()) button.tabIndex = button.value === host.state.internalValue ? 0 : -1;
124
124
  };
125
- // A vertical mouse wheel over an overflowing strip scrolls it sideways instead of the page.
126
- // Trackpad gestures already carry a horizontal delta and are left to the browser.
127
- const onWheel = (event) => {
128
- if (list.scrollWidth <= list.clientWidth || event.deltaX !== 0 || event.ctrlKey) return;
129
- event.preventDefault();
130
- list.scrollLeft += event.deltaY;
131
- };
132
125
  list.addEventListener("click", onClick);
133
126
  list.addEventListener("keydown", onKeydown);
134
127
  list.addEventListener("focusout", onFocusout);
135
- list.addEventListener("wheel", onWheel, { passive: false });
136
128
  const observer = new MutationObserver(readPanels);
137
129
  observer.observe(container, { childList: true });
138
130
  const tabObserver = new MutationObserver(syncButtons);
@@ -153,6 +145,5 @@ export function connect(host) {
153
145
  list.removeEventListener("click", onClick);
154
146
  list.removeEventListener("keydown", onKeydown);
155
147
  list.removeEventListener("focusout", onFocusout);
156
- list.removeEventListener("wheel", onWheel);
157
148
  };
158
149
  }
@@ -238,7 +238,8 @@
238
238
  border-inline-end-width: var(--ui-border-width);
239
239
  border-block-end-width: var(--ui-border-width);
240
240
  border-end-end-radius: var(--ui-border-width);
241
- transform: rotate(45deg) scaleX(1.25) scaleY(0.85);
241
+ /* Stretch in screen axes after rotation so both arrow shoulders stay level. */
242
+ transform: scale(1.25, 0.85) rotate(45deg);
242
243
  }
243
244
 
244
245
  :host[data-ui-actual-placement="bottom"] .surface::after {