@livelayer/react 0.16.0 → 0.17.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.
Files changed (2) hide show
  1. package/dist/styles.css +58 -19
  2. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -589,22 +589,25 @@
589
589
  }
590
590
 
591
591
  .ll-expanded--mobile {
592
- /* Card layout same shape as desktop, sized to fit comfortably in
593
- a phone viewport with breathing room on every side. The min()
594
- calls bound the card on small phones (iPhone SE at 320×568 still
595
- gets a usable card with ~32px margins) while keeping a generous
596
- default on modern devices (iPhone 16 Pro at 402×874 gets the
597
- full 380×540 card). dvh accounts for the iOS dynamic toolbar so
598
- the card never gets clipped behind the URL bar or home indicator.
599
-
600
- Was previously `100vw × 80dvh` edge-to-edge bottom sheet covered
601
- ~60% of the screen in the idle state before the visitor had even
602
- tapped anything. The expanded layout is now position-aware on
603
- mobile too (see .ll-widget--mobile.ll-widget--expanded above) so
604
- the position prop anchors the card to the chosen corner. */
605
- width: min(380px, calc(100vw - 32px));
606
- height: min(540px, calc(100dvh - 32px));
607
- border-radius: 20px;
592
+ /* Mobile expanded is a thumbnail PiP 9:16 portrait, ~150px wide.
593
+ The visitor's website is the primary surface; the widget is a
594
+ persistent reachable affordance, not the focus. Sized so it fits
595
+ comfortably alongside content without blocking it.
596
+
597
+ Evolution:
598
+ v0: 100vw × 80dvh edge-to-edge sheet blocked 60% of screen
599
+ v0.16: 380 × 540 card → marginally smaller, still ~90% of phone width
600
+ v0.17: 150 × 267 (9:16) thumbnail properly out-of-the-way
601
+
602
+ The clamp lets the card scale slightly with viewport — tiny phones
603
+ (320px wide) get 140px, normal phones (393-430px) stay at the
604
+ 150px sweet spot, larger phones / foldables (500px+) can grow to
605
+ 180px. aspect-ratio derives height from width so the 9:16 portrait
606
+ framing stays exact regardless of where in the clamp range the
607
+ viewport lands. */
608
+ width: clamp(140px, 38vw, 180px);
609
+ aspect-ratio: 9 / 16;
610
+ border-radius: 16px;
608
611
  }
609
612
 
610
613
  /* ── Background layers ───────────────────────────────────────── */
@@ -816,6 +819,38 @@
816
819
  margin-left: auto;
817
820
  }
818
821
 
822
+ /* ── Mobile thumbnail chrome (0.18.0) ────────────────────────────
823
+ The 150px 9:16 widget is small enough that the standard 40px
824
+ header buttons + brand pill overcrowd the surface. On mobile we:
825
+ - Hide the "Live Layer" brand pill in the IDLE header. The
826
+ brand mark already lives in the minimized bottom bar that
827
+ appears once a session ends, and the surface is too small to
828
+ afford the wordmark gracefully.
829
+ - Hide the minimize button in the IDLE header. There's nothing
830
+ to minimize FROM until a call starts — minimizing a session-
831
+ less widget would just dismiss it, which is what the close
832
+ (X) button is for. Removes the redundant affordance.
833
+ - Shrink the close (X) button visual to 26×26 (still well
834
+ above the 18px touch-target floor the user specified). Icon
835
+ inside stays 12px. During an active call the same shrink
836
+ applies to the minimize button so the in-call header doesn't
837
+ crowd the thumbnail.
838
+
839
+ Selectors scope to .ll-widget--mobile so desktop is untouched. */
840
+ .ll-widget--mobile .ll-expanded__header--idle .ll-expanded__brand,
841
+ .ll-widget--mobile .ll-expanded__header--idle .ll-hbtn--ghost {
842
+ display: none;
843
+ }
844
+
845
+ .ll-widget--mobile .ll-hbtn {
846
+ width: 26px;
847
+ height: 26px;
848
+ }
849
+ .ll-widget--mobile .ll-hbtn svg {
850
+ width: 10px;
851
+ height: 10px;
852
+ }
853
+
819
854
  /* ── Active top bar (pills) ─────────────────────────────────── */
820
855
 
821
856
  .ll-expanded__topbar {
@@ -1548,9 +1583,13 @@
1548
1583
  }
1549
1584
 
1550
1585
  .ll-expanded--mobile .ll-expanded__pip {
1551
- right: 10px;
1552
- width: 96px;
1553
- height: 72px;
1586
+ /* Scaled down to fit the 0.17.0 mobile thumbnail card (~150px
1587
+ wide). A 96px PiP in a 150px card would cover nearly the entire
1588
+ surface during a call — defeats the point of the PiP. 48×36 is
1589
+ readable as "your camera preview" at the card scale. */
1590
+ right: 8px;
1591
+ width: 48px;
1592
+ height: 36px;
1554
1593
  }
1555
1594
 
1556
1595
  /* ── Error boundary fallback ─────────────────────────────────── */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livelayer/react",
3
- "version": "0.16.0",
3
+ "version": "0.17.1",
4
4
  "description": "LiveLayer agent widget for React — avatar video, team switching, responsive layouts, full-fidelity embed",
5
5
  "keywords": [
6
6
  "livelayer",