@threadlabs/looma 0.26.0 → 0.26.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.
@@ -2538,10 +2538,10 @@ dd[data-v-ac017b1f] {
2538
2538
  /* The controller sets each fade length from overflow and scroll position. The mask blends
2539
2539
  into whatever is behind the area without needing to know its colour. Before upgrade, its
2540
2540
  zero-length defaults leave the authored scroll area fully visible. */
2541
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="fill"][data-v-3aa9f4b3] {
2541
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="fill"][data-v-a1ccf697] {
2542
2542
  flex: 1;
2543
2543
  }
2544
- [data-component~="ui-scroll-area"][data-v-3aa9f4b3] {
2544
+ [data-component~="ui-scroll-area"][data-v-a1ccf697] {
2545
2545
  display: block;
2546
2546
  box-sizing: border-box;
2547
2547
  min-block-size: 0;
@@ -2560,29 +2560,41 @@ dd[data-v-ac017b1f] {
2560
2560
  transparent
2561
2561
  );
2562
2562
  }
2563
- .content[data-v-3aa9f4b3] {
2563
+ .content[data-v-a1ccf697] {
2564
2564
  display: flow-root;
2565
2565
  }
2566
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="orientation=horizontal"][data-v-3aa9f4b3] {
2566
+
2567
+ /* Trim projected edges without changing spacing inside an item. */
2568
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="trim"]
2569
+ .content
2570
+ > [data-v-a1ccf697-s]:first-child {
2571
+ margin-block-start: 0;
2572
+ }
2573
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="trim"]
2574
+ .content
2575
+ > [data-v-a1ccf697-s]:last-child {
2576
+ margin-block-end: 0;
2577
+ }
2578
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="orientation=horizontal"][data-v-a1ccf697] {
2567
2579
  overflow-x: auto;
2568
2580
  overflow-y: hidden;
2569
2581
  --_ui-scroll-fade-direction: var(--_ui-scroll-fade-inline);
2570
2582
  }
2571
- [data-component~="ui-scroll-area"][data-v-3aa9f4b3]:dir(rtl) {
2583
+ [data-component~="ui-scroll-area"][data-v-a1ccf697]:dir(rtl) {
2572
2584
  --_ui-scroll-fade-inline: to left;
2573
2585
  }
2574
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=sm"][data-v-3aa9f4b3] {
2586
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=sm"][data-v-a1ccf697] {
2575
2587
  max-block-size: calc(9.375rem + var(--ui-scroll-fade-size, 24px));
2576
2588
  }
2577
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=md"][data-v-3aa9f4b3] {
2589
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=md"][data-v-a1ccf697] {
2578
2590
  max-block-size: 20rem;
2579
2591
  }
2580
- [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=lg"][data-v-3aa9f4b3] {
2592
+ [data-component~="ui-scroll-area"][data-ui-scroll-area-state~="size=lg"][data-v-a1ccf697] {
2581
2593
  max-block-size: 30rem;
2582
2594
  }
2583
2595
 
2584
2596
  /* A component that sets its display still honours the hidden attribute on its root. */
2585
- [data-component~="ui-scroll-area"][hidden][data-v-3aa9f4b3] {
2597
+ [data-component~="ui-scroll-area"][hidden][data-v-a1ccf697] {
2586
2598
  display: none;
2587
2599
  }
2588
2600
 
@@ -2615,7 +2627,7 @@ dd[data-v-ac017b1f] {
2615
2627
  syntax: "*";
2616
2628
  inherits: false;
2617
2629
  }
2618
- [data-component~="ui-dialog"][data-v-f11b295f] {
2630
+ [data-component~="ui-dialog"][data-v-6d90ae32] {
2619
2631
  /* Hooks do not inherit, so the parts below read them from the root. */
2620
2632
  --_ui-dialog-duration: var(--ui-dialog-duration);
2621
2633
 
@@ -2651,21 +2663,21 @@ dd[data-v-ac017b1f] {
2651
2663
  display var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete,
2652
2664
  overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
2653
2665
  }
2654
- [data-component~="ui-dialog"][open][data-v-f11b295f] {
2666
+ [data-component~="ui-dialog"][open][data-v-6d90ae32] {
2655
2667
  display: flex;
2656
2668
  visibility: visible;
2657
2669
  pointer-events: auto;
2658
2670
  opacity: 1;
2659
2671
  transform: scale(1);
2660
- animation: ui-dialog-enter-f11b295f var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease);
2672
+ animation: ui-dialog-enter-6d90ae32 var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease);
2661
2673
  }
2662
- [data-component~="ui-dialog"][data-ui-dialog-state~="size=sm"][data-v-f11b295f] {
2674
+ [data-component~="ui-dialog"][data-ui-dialog-state~="size=sm"][data-v-6d90ae32] {
2663
2675
  --_ui-dialog-size: 360px;
2664
2676
  }
2665
- [data-component~="ui-dialog"][data-ui-dialog-state~="size=lg"][data-v-f11b295f] {
2677
+ [data-component~="ui-dialog"][data-ui-dialog-state~="size=lg"][data-v-6d90ae32] {
2666
2678
  --_ui-dialog-size: 640px;
2667
2679
  }
2668
- [data-component~="ui-dialog"][data-ui-dialog-state~="size=fullscreen"][data-v-f11b295f] {
2680
+ [data-component~="ui-dialog"][data-ui-dialog-state~="size=fullscreen"][data-v-6d90ae32] {
2669
2681
  inset: 0;
2670
2682
  inline-size: 100%;
2671
2683
  block-size: 100dvh;
@@ -2673,12 +2685,12 @@ dd[data-v-ac017b1f] {
2673
2685
  margin: 0;
2674
2686
  border-radius: var(--ui-dialog-radius, 0);
2675
2687
  }
2676
- [data-component~="ui-dialog"][data-ui-dialog-state~="alert"] .close[data-v-f11b295f] {
2688
+ [data-component~="ui-dialog"][data-ui-dialog-state~="alert"] .close[data-v-6d90ae32] {
2677
2689
  display: none;
2678
2690
  }
2679
2691
 
2680
- /* Header and actions stay pinned; only the body scrolls when content is long. */
2681
- header[data-v-f11b295f] {
2692
+ /* Own the layout wrapper; nested component roots are outside these scoped rules. */
2693
+ header[data-v-6d90ae32] {
2682
2694
  display: flex;
2683
2695
  align-items: center;
2684
2696
  gap: var(--ui-space-3);
@@ -2687,7 +2699,7 @@ header[data-v-f11b295f] {
2687
2699
  }
2688
2700
 
2689
2701
  /* :host-qualified so page heading rules that reach in cannot outrank the dialog chrome. */
2690
- [data-component~="ui-dialog"] .title[data-v-f11b295f] {
2702
+ [data-component~="ui-dialog"] .title[data-v-6d90ae32] {
2691
2703
  flex: 1;
2692
2704
  min-inline-size: 0;
2693
2705
  margin: 0;
@@ -2699,7 +2711,7 @@ header[data-v-f11b295f] {
2699
2711
  font-weight: var(--ui-font-semibold);
2700
2712
  line-height: var(--ui-line-height-tight);
2701
2713
  }
2702
- .close[data-v-f11b295f] {
2714
+ .close[data-v-6d90ae32] {
2703
2715
  display: inline-grid;
2704
2716
  place-items: center;
2705
2717
  flex: none;
@@ -2718,8 +2730,8 @@ header[data-v-f11b295f] {
2718
2730
  }
2719
2731
 
2720
2732
  /* A CSS-drawn X. */
2721
- .close[data-v-f11b295f]::before,
2722
- .close[data-v-f11b295f]::after {
2733
+ .close[data-v-6d90ae32]::before,
2734
+ .close[data-v-6d90ae32]::after {
2723
2735
  content: "";
2724
2736
  grid-area: 1 / 1;
2725
2737
  inline-size: 0.875rem;
@@ -2728,69 +2740,71 @@ header[data-v-f11b295f] {
2728
2740
  background: currentColor;
2729
2741
  transform: rotate(45deg);
2730
2742
  }
2731
- .close[data-v-f11b295f]::after {
2743
+ .close[data-v-6d90ae32]::after {
2732
2744
  transform: rotate(-45deg);
2733
2745
  }
2734
- .close[data-v-f11b295f]:hover {
2746
+ .close[data-v-6d90ae32]:hover {
2735
2747
  background: var(--ui-surface-muted);
2736
2748
  color: var(--ui-text-primary);
2737
2749
  }
2738
- .close[data-v-f11b295f]:focus-visible {
2750
+ .close[data-v-6d90ae32]:focus-visible {
2739
2751
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
2740
2752
  outline-offset: var(--ui-focus-width);
2741
2753
  }
2742
2754
 
2743
2755
  /* A touch target, like Button on coarse pointers. */
2744
2756
  @media (pointer: coarse) {
2745
- .close[data-v-f11b295f] {
2757
+ .close[data-v-6d90ae32] {
2746
2758
  inline-size: var(--ui-control-min-block-size);
2747
2759
  block-size: var(--ui-control-min-block-size);
2748
2760
  }
2749
2761
  }
2750
- html[data-ui-input-modality="touch"] [data-component~="ui-dialog"] .close[data-v-f11b295f] {
2762
+ html[data-ui-input-modality="touch"] [data-component~="ui-dialog"] .close[data-v-6d90ae32] {
2751
2763
  inline-size: var(--ui-control-min-block-size);
2752
2764
  block-size: var(--ui-control-min-block-size);
2753
2765
  }
2754
- .body[data-v-f11b295f] {
2766
+ .body[data-v-6d90ae32] {
2767
+ display: flex;
2768
+ flex-direction: column;
2755
2769
  flex: 1 1 auto;
2756
2770
  min-block-size: 0;
2757
- padding: var(--ui-space-5);
2771
+ padding: var(--ui-space-3) var(--ui-space-5) var(--ui-space-5);
2758
2772
  }
2759
- footer[data-v-f11b295f] {
2773
+ footer[data-v-6d90ae32] {
2760
2774
  display: flex;
2761
2775
  flex: none;
2762
2776
  flex-wrap: wrap;
2763
2777
  justify-content: flex-end;
2764
2778
  gap: var(--ui-space-2);
2765
- padding: var(--ui-space-3) var(--ui-space-5);
2779
+ padding: 0 var(--ui-space-5) var(--ui-space-5);
2766
2780
  }
2767
- footer[data-v-f11b295f]:empty {
2781
+ footer[data-v-6d90ae32]:empty {
2768
2782
  display: none;
2769
2783
  }
2770
- @keyframes ui-dialog-enter-f11b295f {
2784
+ @keyframes ui-dialog-enter-6d90ae32 {
2771
2785
  from {
2772
2786
  opacity: 0;
2773
2787
  transform: scale(0.96);
2774
2788
  }
2775
2789
  }
2776
- [data-component~="ui-dialog"][data-v-f11b295f]::backdrop {
2790
+ [data-component~="ui-dialog"][data-v-6d90ae32]::backdrop {
2777
2791
  background-color: transparent;
2778
2792
  transition:
2779
2793
  background-color var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease),
2780
2794
  display var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete,
2781
2795
  overlay var(--_ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
2782
2796
  }
2783
- [data-component~="ui-dialog"][open][data-v-f11b295f]::backdrop {
2797
+ [data-component~="ui-dialog"][open][data-v-6d90ae32]::backdrop {
2784
2798
  background-color: var(--ui-overlay-backdrop);
2785
- animation: ui-dialog-backdrop-enter-f11b295f var(--_ui-dialog-duration, var(--ui-motion-base))
2799
+ animation: ui-dialog-backdrop-enter-6d90ae32 var(--_ui-dialog-duration, var(--ui-motion-base))
2786
2800
  var(--ui-motion-ease);
2787
2801
  }
2788
- [data-component~="ui-dialog"][open][data-ui-backdrop-hidden][data-v-f11b295f]::backdrop {
2802
+ [data-component~="ui-dialog"][open][data-ui-backdrop-hidden][data-v-6d90ae32]::backdrop {
2789
2803
  background-color: transparent;
2790
2804
  animation: none;
2791
2805
  transition: none;
2792
2806
  }
2793
- @keyframes ui-dialog-backdrop-enter-f11b295f {
2807
+ @keyframes ui-dialog-backdrop-enter-6d90ae32 {
2794
2808
  from {
2795
2809
  background-color: transparent;
2796
2810
  }