@threadlabs/looma 0.25.5 → 0.25.7

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.
@@ -1417,7 +1417,7 @@ html[data-ui-input-modality="touch"]
1417
1417
  syntax: "*";
1418
1418
  inherits: false;
1419
1419
  }
1420
- [data-component~="ui-checkbox"][data-v-ce204e6e] {
1420
+ [data-component~="ui-checkbox"][data-v-3bebca63] {
1421
1421
  /* Hooks do not inherit, so the parts below read them from the root. */
1422
1422
  --_ui-checkbox-size: var(--ui-checkbox-size);
1423
1423
  --_ui-checkbox-invalid-border: var(
@@ -1434,25 +1434,25 @@ html[data-ui-input-modality="touch"]
1434
1434
  }
1435
1435
 
1436
1436
  /* The label, and under it an optional line saying what the choice means. */
1437
- .text[data-v-ce204e6e] {
1437
+ .text[data-v-3bebca63] {
1438
1438
  display: flex;
1439
1439
  flex-direction: column;
1440
1440
  gap: var(--ui-space-1);
1441
1441
  min-inline-size: 0;
1442
1442
  }
1443
- .label[data-v-ce204e6e] {
1443
+ .label[data-v-3bebca63] {
1444
1444
  min-inline-size: 0;
1445
1445
  line-height: var(--ui-line-height-md);
1446
1446
  }
1447
- .description[data-v-ce204e6e] {
1447
+ .description[data-v-3bebca63] {
1448
1448
  color: var(--ui-text-secondary);
1449
1449
  font-size: var(--ui-font-size-sm);
1450
1450
  line-height: var(--ui-line-height);
1451
1451
  }
1452
- .description[data-v-ce204e6e]:empty {
1452
+ .description[data-v-3bebca63]:empty {
1453
1453
  display: none;
1454
1454
  }
1455
- input[data-v-ce204e6e] {
1455
+ input[data-v-3bebca63] {
1456
1456
  appearance: none;
1457
1457
  -webkit-appearance: none;
1458
1458
  position: relative;
@@ -1470,21 +1470,21 @@ input[data-v-ce204e6e] {
1470
1470
  border-color var(--ui-motion-fast) var(--ui-motion-ease),
1471
1471
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
1472
1472
  }
1473
- input[data-v-ce204e6e]::after {
1473
+ input[data-v-3bebca63]::after {
1474
1474
  content: "";
1475
1475
  position: absolute;
1476
1476
  opacity: 0;
1477
1477
  transition: opacity 120ms var(--ui-motion-ease);
1478
1478
  }
1479
- input[data-v-ce204e6e]:checked,
1480
- input[data-v-ce204e6e]:indeterminate {
1479
+ input[data-v-3bebca63]:checked,
1480
+ input[data-v-3bebca63]:indeterminate {
1481
1481
  border-color: var(--ui-accent-solid);
1482
1482
  background: var(--ui-accent-solid);
1483
1483
  box-shadow: var(--ui-control-inset);
1484
1484
  }
1485
1485
 
1486
1486
  /* Centre the tick's box and lift it slightly for the rotated check shape. */
1487
- input[data-v-ce204e6e]:checked::after {
1487
+ input[data-v-3bebca63]:checked::after {
1488
1488
  inset: 0;
1489
1489
  margin: auto;
1490
1490
  inline-size: 0.28rem;
@@ -1496,9 +1496,9 @@ input[data-v-ce204e6e]:checked::after {
1496
1496
  border-width: 0 0.125rem 0.125rem 0;
1497
1497
  opacity: 1;
1498
1498
  transform: translateY(-0.09rem) rotate(45deg);
1499
- animation: ui-checkbox-check-ce204e6e 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
1499
+ animation: ui-checkbox-check-3bebca63 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
1500
1500
  }
1501
- input[data-v-ce204e6e]:indeterminate::after {
1501
+ input[data-v-3bebca63]:indeterminate::after {
1502
1502
  inset: 50% 0.23rem auto;
1503
1503
  block-size: 0.125rem;
1504
1504
  border-radius: var(--ui-radius-round);
@@ -1506,7 +1506,7 @@ input[data-v-ce204e6e]:indeterminate::after {
1506
1506
  opacity: 1;
1507
1507
  transform: translateY(-50%);
1508
1508
  }
1509
- @keyframes ui-checkbox-check-ce204e6e {
1509
+ @keyframes ui-checkbox-check-3bebca63 {
1510
1510
  from {
1511
1511
  opacity: 0;
1512
1512
  transform: translateY(-0.09rem) rotate(45deg) scale(0.55);
@@ -1521,29 +1521,29 @@ to {
1521
1521
  }
1522
1522
  }
1523
1523
  @media (prefers-reduced-motion: reduce) {
1524
- input[data-v-ce204e6e]::after {
1524
+ input[data-v-3bebca63]::after {
1525
1525
  transition: none;
1526
1526
  animation: none;
1527
1527
  }
1528
1528
  }
1529
- input[data-v-ce204e6e]:hover:enabled {
1529
+ input[data-v-3bebca63]:hover:enabled {
1530
1530
  border-color: var(--ui-accent-solid);
1531
1531
  }
1532
- input[data-v-ce204e6e]:focus-visible {
1532
+ input[data-v-3bebca63]:focus-visible {
1533
1533
  outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
1534
1534
  outline-offset: var(--ui-focus-width);
1535
1535
  }
1536
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="invalid"] input[data-v-ce204e6e] {
1536
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="invalid"] input[data-v-3bebca63] {
1537
1537
  border-color: var(--_ui-checkbox-invalid-border);
1538
1538
  }
1539
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"][data-v-ce204e6e] {
1539
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"][data-v-3bebca63] {
1540
1540
  color: var(--ui-disabled-text);
1541
1541
  cursor: not-allowed;
1542
1542
  }
1543
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] .description[data-v-ce204e6e] {
1543
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] .description[data-v-3bebca63] {
1544
1544
  color: var(--ui-disabled-text);
1545
1545
  }
1546
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input[data-v-ce204e6e] {
1546
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input[data-v-3bebca63] {
1547
1547
  border-color: var(--ui-disabled-border);
1548
1548
  background: var(--ui-disabled-surface);
1549
1549
  box-shadow: none;
@@ -1553,32 +1553,32 @@ input[data-v-ce204e6e]:focus-visible {
1553
1553
  /* A sized choice keeps its box and aligns instead: the label takes that size's field type size,
1554
1554
  and the first line centres in that control height, so the label shares a row's baseline.
1555
1555
  Multi-line labels and descriptions still grow downward from that first line. */
1556
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"][data-v-ce204e6e] {
1556
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"][data-v-3bebca63] {
1557
1557
  --_font: var(--ui-font-size-sm);
1558
1558
  --_row: var(--ui-control-size-sm);
1559
1559
  }
1560
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"][data-v-ce204e6e] {
1560
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"][data-v-3bebca63] {
1561
1561
  --_font: var(--ui-font-size-md);
1562
1562
  --_row: var(--ui-control-size-lg);
1563
1563
  }
1564
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"][data-v-ce204e6e],
1565
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"][data-v-ce204e6e] {
1564
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"][data-v-3bebca63],
1565
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"][data-v-3bebca63] {
1566
1566
  --_line: calc(var(--_font) * var(--ui-line-height-md));
1567
1567
  font-size: var(--_font);
1568
1568
  padding-block: calc((var(--_row) - var(--_line)) / 2);
1569
1569
  }
1570
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] input[data-v-ce204e6e],
1571
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] input[data-v-ce204e6e] {
1570
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] input[data-v-3bebca63],
1571
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] input[data-v-3bebca63] {
1572
1572
  margin-top: calc((var(--_line) - var(--_ui-checkbox-size, 1.125rem)) / 2);
1573
1573
  }
1574
1574
  @media (pointer: coarse) {
1575
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"][data-v-ce204e6e] {
1575
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"][data-v-3bebca63] {
1576
1576
  --_row: var(--ui-control-min-block-size);
1577
1577
  }
1578
1578
  }
1579
1579
 
1580
1580
  /* A component that sets its display still honours the hidden attribute on its root. */
1581
- [data-component~="ui-checkbox"][hidden][data-v-ce204e6e] {
1581
+ [data-component~="ui-checkbox"][hidden][data-v-3bebca63] {
1582
1582
  display: none;
1583
1583
  }
1584
1584
 
@@ -1587,7 +1587,7 @@ input[data-v-ce204e6e]:focus-visible {
1587
1587
  syntax: "*";
1588
1588
  inherits: false;
1589
1589
  }
1590
- [data-component~="ui-cluster"][data-v-e3a64464] {
1590
+ [data-component~="ui-cluster"][data-v-acd23e4a] {
1591
1591
  --_layout-gap: var(--ui-space-3);
1592
1592
  display: flex;
1593
1593
  flex-wrap: wrap;
@@ -1597,69 +1597,72 @@ input[data-v-ce204e6e]:focus-visible {
1597
1597
  max-inline-size: 100%;
1598
1598
  margin: 0;
1599
1599
  }
1600
- [data-component~="ui-cluster"][data-ui-cluster-state~="fixed"][data-v-e3a64464] {
1600
+ [data-component~="ui-cluster"][data-ui-cluster-state~="fixed"][data-v-acd23e4a] {
1601
1601
  flex: none;
1602
1602
  }
1603
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=s"][data-v-e3a64464] {
1603
+ [data-component~="ui-cluster"][data-ui-cluster-state~="padding=s"][data-v-acd23e4a] {
1604
1604
  padding: var(--ui-space-2);
1605
1605
  }
1606
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=m"][data-v-e3a64464] {
1606
+ [data-component~="ui-cluster"][data-ui-cluster-state~="padding=m"][data-v-acd23e4a] {
1607
1607
  padding: var(--ui-space-3);
1608
1608
  }
1609
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=l"][data-v-e3a64464] {
1609
+ [data-component~="ui-cluster"][data-ui-cluster-state~="padding=l"][data-v-acd23e4a] {
1610
1610
  padding: var(--ui-space-4);
1611
1611
  }
1612
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=s"][data-v-e3a64464] {
1612
+ [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=s"][data-v-acd23e4a] {
1613
1613
  padding-inline-end: var(--ui-space-2);
1614
1614
  }
1615
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=m"][data-v-e3a64464] {
1615
+ [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=m"][data-v-acd23e4a] {
1616
1616
  padding-inline-end: var(--ui-space-3);
1617
1617
  }
1618
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=l"][data-v-e3a64464] {
1618
+ [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=l"][data-v-acd23e4a] {
1619
1619
  padding-inline-end: var(--ui-space-4);
1620
1620
  }
1621
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=xl"][data-v-e3a64464] {
1621
+ [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=xl"][data-v-acd23e4a] {
1622
1622
  padding-inline-end: calc(var(--ui-space-4) * 4);
1623
1623
  }
1624
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xs"][data-v-e3a64464] {
1624
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xs"][data-v-acd23e4a] {
1625
1625
  --_layout-gap: var(--ui-space-2);
1626
1626
  }
1627
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=s"][data-v-e3a64464] {
1627
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=s"][data-v-acd23e4a] {
1628
1628
  --_layout-gap: var(--ui-space-3);
1629
1629
  }
1630
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=m"][data-v-e3a64464] {
1630
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=m"][data-v-acd23e4a] {
1631
1631
  --_layout-gap: var(--ui-space-4);
1632
1632
  }
1633
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=l"][data-v-e3a64464] {
1633
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=l"][data-v-acd23e4a] {
1634
1634
  --_layout-gap: var(--ui-space-5);
1635
1635
  }
1636
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xl"][data-v-e3a64464] {
1636
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xl"][data-v-acd23e4a] {
1637
1637
  --_layout-gap: var(--ui-space-6);
1638
1638
  }
1639
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=start"][data-v-e3a64464] {
1639
+ [data-component~="ui-cluster"][data-ui-cluster-state~="align=start"][data-v-acd23e4a] {
1640
1640
  align-items: flex-start;
1641
1641
  }
1642
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=end"][data-v-e3a64464] {
1642
+ [data-component~="ui-cluster"][data-ui-cluster-state~="align=end"][data-v-acd23e4a] {
1643
1643
  align-items: flex-end;
1644
1644
  }
1645
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=stretch"][data-v-e3a64464] {
1645
+ [data-component~="ui-cluster"][data-ui-cluster-state~="align=baseline"][data-v-acd23e4a] {
1646
+ align-items: baseline;
1647
+ }
1648
+ [data-component~="ui-cluster"][data-ui-cluster-state~="align=stretch"][data-v-acd23e4a] {
1646
1649
  align-items: stretch;
1647
1650
  }
1648
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=center"][data-v-e3a64464] {
1651
+ [data-component~="ui-cluster"][data-ui-cluster-state~="justify=center"][data-v-acd23e4a] {
1649
1652
  justify-content: center;
1650
1653
  }
1651
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=end"][data-v-e3a64464] {
1654
+ [data-component~="ui-cluster"][data-ui-cluster-state~="justify=end"][data-v-acd23e4a] {
1652
1655
  justify-content: flex-end;
1653
1656
  }
1654
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=between"][data-v-e3a64464] {
1657
+ [data-component~="ui-cluster"][data-ui-cluster-state~="justify=between"][data-v-acd23e4a] {
1655
1658
  justify-content: space-between;
1656
1659
  }
1657
- [data-component~="ui-cluster"][data-ui-cluster-state~="wrap=nowrap"][data-v-e3a64464] {
1660
+ [data-component~="ui-cluster"][data-ui-cluster-state~="wrap=nowrap"][data-v-acd23e4a] {
1658
1661
  flex-wrap: nowrap;
1659
1662
  }
1660
1663
 
1661
1664
  /* A component that sets its display still honours the hidden attribute on its root. */
1662
- [data-component~="ui-cluster"][hidden][data-v-e3a64464] {
1665
+ [data-component~="ui-cluster"][hidden][data-v-acd23e4a] {
1663
1666
  display: none;
1664
1667
  }
1665
1668
 
@@ -5601,7 +5604,7 @@ svg[data-v-521a280a-s] {
5601
5604
  padding follow it too, and the item takes the link's focus ring. The link stays a real link, so
5602
5605
  a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
5603
5606
  stay their own. */
5604
- [data-component~="ui-list-item"][data-v-9f16562f] {
5607
+ [data-component~="ui-list-item"][data-v-8b9a3e2b] {
5605
5608
  /* Hooks do not inherit, so the parts below read them from the root. */
5606
5609
  --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
5607
5610
 
@@ -5626,91 +5629,97 @@ svg[data-v-521a280a-s] {
5626
5629
  background-color var(--ui-motion-fast) var(--ui-motion-ease),
5627
5630
  border-color var(--ui-motion-fast) var(--ui-motion-ease);
5628
5631
  }
5629
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-9f16562f] {
5632
+ [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-8b9a3e2b] {
5630
5633
  padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
5631
5634
  padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
5632
5635
  border: var(--ui-border-width) solid var(--ui-border-strong);
5633
5636
  border-radius: var(--ui-radius-lg);
5634
5637
  background: var(--ui-surface-raised);
5635
5638
  }
5636
- [data-component~="ui-list-item"][data-v-9f16562f]:has(.title a[href]:hover) {
5637
- background: var(--ui-surface-hover);
5639
+ [data-component~="ui-list-item"][data-v-8b9a3e2b]:where(:has(.title a[href])):hover {
5640
+ background: var(--ui-selection-surface);
5638
5641
  }
5639
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-9f16562f]:has(.title
5640
- a[href]:hover) {
5642
+ [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-8b9a3e2b]:where(:has(.title
5643
+ a[href])):hover {
5641
5644
  border-color: var(--ui-border-strong);
5642
5645
  }
5643
- [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-9f16562f] {
5646
+ [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-8b9a3e2b] {
5644
5647
  background: var(--ui-selection-surface);
5645
5648
  }
5646
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-9f16562f] {
5649
+ [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-8b9a3e2b] {
5647
5650
  background: var(--ui-selection-surface);
5648
5651
  color: var(--ui-selection-text);
5649
5652
  }
5650
- [data-component~="ui-list-item"][data-v-9f16562f]:has(.title a[href]:focus-visible) {
5653
+ [data-component~="ui-list-item"][data-v-8b9a3e2b]:has(.title a[href]:focus-visible) {
5651
5654
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
5652
5655
  }
5653
- .leading[data-v-9f16562f],
5654
- .trailing[data-v-9f16562f] {
5656
+ .leading[data-v-8b9a3e2b],
5657
+ .trailing[data-v-8b9a3e2b] {
5655
5658
  display: inline-flex;
5656
5659
  flex: none;
5657
5660
  align-items: center;
5658
5661
  gap: var(--ui-space-2);
5659
5662
  }
5660
- .leading[data-v-9f16562f] {
5663
+ .leading[data-v-8b9a3e2b] {
5661
5664
  color: var(--ui-text-muted);
5662
5665
  font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
5663
5666
  }
5664
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-9f16562f] {
5667
+ [data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-8b9a3e2b] {
5665
5668
  color: var(--ui-selection-text);
5666
5669
  }
5667
5670
 
5671
+ /* An explicitly independent leading control sits above the stretched row link. */
5672
+ [data-component~="ui-list-item"][data-ui-list-item-state~="leadingInteractive"] .leading[data-v-8b9a3e2b] {
5673
+ position: relative;
5674
+ z-index: 1;
5675
+ }
5676
+
5668
5677
  /* Trailing controls take their own clicks, above the title link's stretched hit area. */
5669
- .trailing[data-v-9f16562f] {
5678
+ .trailing[data-v-8b9a3e2b] {
5670
5679
  position: relative;
5671
5680
  z-index: 1;
5672
5681
  color: var(--ui-text-muted);
5673
5682
  font-size: var(--ui-font-size-sm);
5674
5683
  }
5675
- .content[data-v-9f16562f] {
5684
+ .content[data-v-8b9a3e2b] {
5676
5685
  display: flex;
5677
5686
  flex: 1;
5678
5687
  flex-direction: column;
5679
5688
  gap: var(--ui-space-0-5, 2px);
5680
5689
  min-inline-size: 0;
5681
5690
  }
5682
- .title[data-v-9f16562f],
5683
- .description[data-v-9f16562f] {
5691
+ .title[data-v-8b9a3e2b],
5692
+ .description[data-v-8b9a3e2b] {
5684
5693
  display: block;
5685
5694
  min-inline-size: 0;
5686
5695
  overflow: hidden;
5687
5696
  text-overflow: ellipsis;
5688
5697
  white-space: nowrap;
5689
5698
  }
5690
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title[data-v-9f16562f],
5691
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description[data-v-9f16562f] {
5699
+ [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title[data-v-8b9a3e2b],
5700
+ [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description[data-v-8b9a3e2b] {
5692
5701
  white-space: normal;
5693
5702
  overflow-wrap: anywhere;
5694
5703
  }
5695
- .title[data-v-9f16562f] {
5704
+ .title[data-v-8b9a3e2b] {
5696
5705
  font-size: var(--ui-font-size-md);
5697
5706
  font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
5698
5707
  line-height: var(--ui-line-height-tight);
5699
5708
  }
5700
- .description[data-v-9f16562f] {
5709
+ .description[data-v-8b9a3e2b] {
5701
5710
  color: var(--ui-text-muted);
5702
5711
  font-size: var(--ui-font-size-sm);
5703
5712
  line-height: var(--ui-line-height-tight);
5704
5713
  }
5705
- .title > a[data-v-9f16562f-s] {
5714
+ .title > a[data-v-8b9a3e2b-s] {
5706
5715
  color: inherit;
5707
5716
  text-decoration: none;
5708
5717
  }
5709
- .title > a[data-v-9f16562f-s]:focus-visible {
5718
+ .title > a[data-v-8b9a3e2b-s]:focus-visible {
5710
5719
  outline: none;
5711
5720
  box-shadow: none;
5712
5721
  }
5713
- .title > a[href][data-v-9f16562f-s]::after {
5722
+ .title > a[href][data-v-8b9a3e2b-s]::after {
5714
5723
  position: absolute;
5715
5724
  inset: 0;
5716
5725
  border-radius: inherit;
@@ -5718,24 +5727,24 @@ svg[data-v-521a280a-s] {
5718
5727
  }
5719
5728
 
5720
5729
  /* An unused region takes no space. */
5721
- .leading[data-v-9f16562f]:empty,
5722
- .description[data-v-9f16562f]:empty,
5723
- .trailing[data-v-9f16562f]:empty {
5730
+ .leading[data-v-8b9a3e2b]:empty,
5731
+ .description[data-v-8b9a3e2b]:empty,
5732
+ .trailing[data-v-8b9a3e2b]:empty {
5724
5733
  display: none;
5725
5734
  }
5726
5735
  @media (forced-colors: active) {
5727
- [data-component~="ui-list-item"][data-v-9f16562f]:has(a:focus-visible) {
5736
+ [data-component~="ui-list-item"][data-v-8b9a3e2b]:has(a:focus-visible) {
5728
5737
  outline: var(--ui-focus-width) solid Highlight;
5729
5738
  outline-offset: calc(-1 * var(--ui-focus-width));
5730
5739
  }
5731
- :is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-9f16562f], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-9f16562f]):not(:has(a:focus-visible)) {
5740
+ :is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-8b9a3e2b], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-8b9a3e2b]):not(:has(a:focus-visible)) {
5732
5741
  outline: var(--ui-border-width) solid Highlight;
5733
5742
  outline-offset: calc(-1 * var(--ui-border-width));
5734
5743
  }
5735
5744
  }
5736
5745
 
5737
5746
  /* A component that sets its display still honours the hidden attribute on its root. */
5738
- [data-component~="ui-list-item"][hidden][data-v-9f16562f] {
5747
+ [data-component~="ui-list-item"][hidden][data-v-8b9a3e2b] {
5739
5748
  display: none;
5740
5749
  }
5741
5750
 
@@ -8943,7 +8952,7 @@ to {
8943
8952
  syntax: "*";
8944
8953
  inherits: false;
8945
8954
  }
8946
- [data-component~="ui-tree-item"][data-v-f2ec0a81] {
8955
+ [data-component~="ui-tree-item"][data-v-dc15f210] {
8947
8956
  /* Hooks do not inherit, so the parts below read them from the root. The tree's density
8948
8957
  sets the defaults, in --_ui-default-*. */
8949
8958
  --_ui-tree-item-min-block-size: var(
@@ -8965,7 +8974,7 @@ to {
8965
8974
  min-inline-size: 0;
8966
8975
  margin-inline-start: calc(var(--_ui-tree-item-indent-step, 0) * var(--_ui-tree-indent, 16px));
8967
8976
  }
8968
- .row[data-v-f2ec0a81] {
8977
+ .row[data-v-dc15f210] {
8969
8978
  position: relative;
8970
8979
  display: grid;
8971
8980
  grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr);
@@ -8982,54 +8991,54 @@ to {
8982
8991
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
8983
8992
  min-block-size var(--ui-motion-base) var(--ui-motion-ease);
8984
8993
  }
8985
- .row[data-v-f2ec0a81]:hover,
8986
- .row[data-v-f2ec0a81]:focus-within {
8994
+ .row[data-v-dc15f210]:hover,
8995
+ .row[data-v-dc15f210]:focus-within {
8987
8996
  color: var(--ui-text-primary);
8988
8997
  background: var(--ui-surface-muted);
8989
8998
  }
8990
8999
 
8991
9000
  /* Selection is the same surface recipe as destination and choice rows. */
8992
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-f2ec0a81] {
9001
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-dc15f210] {
8993
9002
  color: var(--ui-selection-text);
8994
9003
  background: var(--ui-selection-surface);
8995
9004
  }
8996
9005
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not([aria-disabled="true"])
8997
9006
  > .row
8998
- > .leading[data-v-f2ec0a81] {
9007
+ > .leading[data-v-dc15f210] {
8999
9008
  color: var(--ui-selection-text);
9000
9009
  }
9001
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-f2ec0a81] {
9010
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-dc15f210] {
9002
9011
  color: var(--ui-disabled-text);
9003
9012
  background: var(--ui-disabled-surface);
9004
9013
  }
9005
- [data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-f2ec0a81] {
9014
+ [data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-dc15f210] {
9006
9015
  opacity: 0.42;
9007
9016
  }
9008
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81],
9009
- [data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-f2ec0a81] {
9017
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210],
9018
+ [data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-dc15f210] {
9010
9019
  opacity: 0.42;
9011
9020
  }
9012
- [data-component~="ui-tree-item"][data-v-f2ec0a81]:focus {
9021
+ [data-component~="ui-tree-item"][data-v-dc15f210]:focus {
9013
9022
  outline: none;
9014
9023
  }
9015
- [data-component~="ui-tree-item"]:focus-visible .row[data-v-f2ec0a81] {
9024
+ [data-component~="ui-tree-item"]:focus-visible .row[data-v-dc15f210] {
9016
9025
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
9017
9026
  }
9018
9027
 
9019
9028
  /* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
9020
- [data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-f2ec0a81] {
9029
+ [data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-dc15f210] {
9021
9030
  background: var(--ui-accent-subtle);
9022
9031
  box-shadow: inset 0 0 0 var(--ui-accent-line-width)
9023
9032
  var(--_ui-tree-drop-color, var(--ui-accent-solid));
9024
9033
  }
9025
- .disclosure[data-v-f2ec0a81],
9026
- .disclosure-spacer[data-v-f2ec0a81] {
9034
+ .disclosure[data-v-dc15f210],
9035
+ .disclosure-spacer[data-v-dc15f210] {
9027
9036
  grid-column: 1;
9028
9037
  grid-row: 1;
9029
9038
  inline-size: var(--_tree-disclosure-size);
9030
9039
  block-size: 28px;
9031
9040
  }
9032
- .disclosure[data-v-f2ec0a81] {
9041
+ .disclosure[data-v-dc15f210] {
9033
9042
  display: grid;
9034
9043
  /* Start-aligned: the chevron's ink, not its hit area, aligns with the content above it. */
9035
9044
  place-items: center start;
@@ -9040,10 +9049,10 @@ to {
9040
9049
  border-radius: var(--ui-radius-sm);
9041
9050
  cursor: pointer;
9042
9051
  }
9043
- .disclosure[hidden][data-v-f2ec0a81] {
9052
+ .disclosure[hidden][data-v-dc15f210] {
9044
9053
  display: none;
9045
9054
  }
9046
- .selection-hit[data-v-f2ec0a81] {
9055
+ .selection-hit[data-v-dc15f210] {
9047
9056
  display: none;
9048
9057
  grid-column: 2;
9049
9058
  grid-row: 1;
@@ -9052,29 +9061,29 @@ to {
9052
9061
  block-size: var(--_ui-tree-item-min-block-size, var(--_tree-row-min-height));
9053
9062
  cursor: pointer;
9054
9063
  }
9055
- .selection-checkbox[data-v-f2ec0a81] {
9064
+ .selection-checkbox[data-v-dc15f210] {
9056
9065
  inline-size: 1rem;
9057
9066
  block-size: 1rem;
9058
9067
  margin: 0;
9059
9068
  accent-color: var(--ui-accent-solid);
9060
9069
  }
9061
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-f2ec0a81] {
9070
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-dc15f210] {
9062
9071
  grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr);
9063
9072
  }
9064
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-f2ec0a81] {
9073
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-dc15f210] {
9065
9074
  display: grid;
9066
9075
  }
9067
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-f2ec0a81] {
9076
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-dc15f210] {
9068
9077
  grid-column: 3;
9069
9078
  }
9070
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-f2ec0a81] {
9079
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-dc15f210] {
9071
9080
  grid-column: 4;
9072
9081
  }
9073
- .disclosure[data-v-f2ec0a81]:hover {
9082
+ .disclosure[data-v-dc15f210]:hover {
9074
9083
  color: var(--ui-text-primary);
9075
9084
  background: var(--ui-surface-elevated);
9076
9085
  }
9077
- .disclosure-icon[data-v-f2ec0a81] {
9086
+ .disclosure-icon[data-v-dc15f210] {
9078
9087
  display: grid;
9079
9088
  place-items: center;
9080
9089
  inline-size: 12px;
@@ -9082,7 +9091,7 @@ to {
9082
9091
  transform: rotate(-90deg);
9083
9092
  transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
9084
9093
  }
9085
- .disclosure-icon[data-v-f2ec0a81]::before {
9094
+ .disclosure-icon[data-v-dc15f210]::before {
9086
9095
  display: block;
9087
9096
  inline-size: 0.375rem;
9088
9097
  block-size: 0.375rem;
@@ -9092,19 +9101,19 @@ to {
9092
9101
  /* A chevron's ink sits below its box centre; lift it so it centres optically (in either rotation). */
9093
9102
  transform: translateY(-20%) rotate(45deg);
9094
9103
  }
9095
- [data-component~="ui-tree-item"][aria-expanded="true"] > .row > .disclosure > .disclosure-icon[data-v-f2ec0a81] {
9104
+ [data-component~="ui-tree-item"][aria-expanded="true"] > .row > .disclosure > .disclosure-icon[data-v-dc15f210] {
9096
9105
  transform: rotate(0deg);
9097
9106
  }
9098
9107
 
9099
9108
  /* Lucide grip-vertical, filling the handle as in Looma 0.2. */
9100
- .drag-handle svg[data-v-f2ec0a81] {
9109
+ .drag-handle svg[data-v-dc15f210] {
9101
9110
  display: block;
9102
9111
  inline-size: 100%;
9103
9112
  block-size: 100%;
9104
9113
  }
9105
9114
 
9106
9115
  /* Slotted content is outside this scope, so :has() cannot see it; hide only a truly empty slot. */
9107
- .leading[data-v-f2ec0a81] {
9116
+ .leading[data-v-dc15f210] {
9108
9117
  display: inline-grid;
9109
9118
  place-items: center;
9110
9119
  grid-column: 2;
@@ -9117,12 +9126,12 @@ to {
9117
9126
  position: relative;
9118
9127
  z-index: 1;
9119
9128
  }
9120
- .leading[data-v-f2ec0a81]:empty {
9129
+ .leading[data-v-dc15f210]:empty {
9121
9130
  display: none;
9122
9131
  }
9123
9132
 
9124
9133
  /* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
9125
- svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9134
+ svg[data-v-dc15f210-s],img[data-v-dc15f210-s] {
9126
9135
  display: block;
9127
9136
  inline-size: 1em;
9128
9137
  block-size: 1em;
@@ -9131,7 +9140,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9131
9140
 
9132
9141
  /* The label spans the row's height and centres its content, so slotted content (a link) can
9133
9142
  stretch to fill the row as its own hit area; the padding tokens remove the inset. */
9134
- .label[data-v-f2ec0a81] {
9143
+ .label[data-v-dc15f210] {
9135
9144
  grid-column: 3;
9136
9145
  grid-row: 1;
9137
9146
  align-self: stretch;
@@ -9149,7 +9158,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9149
9158
 
9150
9159
  /* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
9151
9160
  its own text and reading as overflow. */
9152
- .label-text[data-v-f2ec0a81] {
9161
+ .label-text[data-v-dc15f210] {
9153
9162
  display: flex;
9154
9163
  align-items: center;
9155
9164
  /* Stretches, so slotted content can still be the row's full-height hit area. */
@@ -9159,16 +9168,17 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9159
9168
  inline-size: 100%;
9160
9169
  white-space: nowrap;
9161
9170
  }
9162
- .label-text > [data-v-f2ec0a81-s] {
9171
+ .label-text > [data-v-dc15f210-s] {
9163
9172
  flex: 1 1 auto;
9164
9173
  min-inline-size: 0;
9165
9174
  }
9166
9175
 
9167
9176
  /* The controls sit over the label's end, so the text fades out where they begin. The fade is
9168
9177
  the truncation mark while it shows: an ellipsis under it would read as a second one. */
9169
- .row:hover > .label[data-v-f2ec0a81],
9170
- .row:focus-within > .label[data-v-f2ec0a81],
9171
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81] {
9178
+ .row:hover > .label[data-v-dc15f210],
9179
+ .row:focus-within > .label[data-v-dc15f210],
9180
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-dc15f210],
9181
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210] {
9172
9182
  text-overflow: clip;
9173
9183
  mask-image: linear-gradient(
9174
9184
  to right,
@@ -9176,9 +9186,12 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9176
9186
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9177
9187
  );
9178
9188
  }
9179
- .row:hover > .label[data-v-f2ec0a81]:dir(rtl),
9180
- .row:focus-within > .label[data-v-f2ec0a81]:dir(rtl),
9181
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81]:dir(rtl) {
9189
+ .row:hover > .label[data-v-dc15f210]:dir(rtl),
9190
+ .row:focus-within > .label[data-v-dc15f210]:dir(rtl),
9191
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"]
9192
+ > .row
9193
+ > .label[data-v-dc15f210]:dir(rtl),
9194
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210]:dir(rtl) {
9182
9195
  mask-image: linear-gradient(
9183
9196
  to left,
9184
9197
  #000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
@@ -9190,10 +9203,10 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9190
9203
  there, and starts again. Only when it actually overflows — the controller measures by how
9191
9204
  much — after the controls have taken their place over its end — and hands over the distance
9192
9205
  and a duration from it, so every name moves at the same speed. */
9193
- .row[data-ui-marquee] > .label > .label-text[data-v-f2ec0a81] {
9206
+ .row[data-ui-marquee] > .label > .label-text[data-v-dc15f210] {
9194
9207
  /* Once per pass: the controller restarts it after a rest at the end, so the name holds still
9195
9208
  long enough to read rather than sliding back and forth. */
9196
- animation: ui-tree-item-marquee-f2ec0a81 var(--_marquee-duration) linear 0.5s 1 normal forwards;
9209
+ animation: ui-tree-item-marquee-dc15f210 var(--_marquee-duration) linear 0.5s 1 normal forwards;
9197
9210
  will-change: transform;
9198
9211
  }
9199
9212
 
@@ -9201,7 +9214,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9201
9214
  slides, the label reaches back under the icon (the controller measures how far) with its text
9202
9215
  where it was, and fades out across the gap before the icon, fully gone where the icon begins
9203
9216
  to cover it: the name slips under the icon rather than stopping at a hard edge beside it. */
9204
- .row[data-ui-marquee] > .label[data-v-f2ec0a81] {
9217
+ .row[data-ui-marquee] > .label[data-v-dc15f210] {
9205
9218
  margin-inline-start: calc(-1 * var(--_marquee-lead, 0px));
9206
9219
  padding-inline-start: calc(
9207
9220
  var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
@@ -9216,7 +9229,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9216
9229
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9217
9230
  );
9218
9231
  }
9219
- .row[data-ui-marquee] > .label[data-v-f2ec0a81]:dir(rtl) {
9232
+ .row[data-ui-marquee] > .label[data-v-dc15f210]:dir(rtl) {
9220
9233
  mask-image: linear-gradient(
9221
9234
  to left,
9222
9235
  transparent var(--_marquee-icon-width, 0px),
@@ -9227,7 +9240,7 @@ svg[data-v-f2ec0a81-s],img[data-v-f2ec0a81-s] {
9227
9240
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9228
9241
  );
9229
9242
  }
9230
- @keyframes ui-tree-item-marquee-f2ec0a81 {
9243
+ @keyframes ui-tree-item-marquee-dc15f210 {
9231
9244
  from {
9232
9245
  transform: translateX(0);
9233
9246
  }
@@ -9238,15 +9251,15 @@ to {
9238
9251
 
9239
9252
  /* Reduced motion keeps the fade, which already says the name continues. */
9240
9253
  @media (prefers-reduced-motion: reduce) {
9241
- .row[data-ui-marquee] > .label > .label-text[data-v-f2ec0a81] {
9254
+ .row[data-ui-marquee] > .label > .label-text[data-v-dc15f210] {
9242
9255
  animation: none;
9243
9256
  }
9244
9257
  }
9245
- .row:hover > .label > [data-v-f2ec0a81-s],
9246
- .row:focus-within > .label > [data-v-f2ec0a81-s] {
9258
+ .row:hover > .label > [data-v-dc15f210-s],
9259
+ .row:focus-within > .label > [data-v-dc15f210-s] {
9247
9260
  text-overflow: clip;
9248
9261
  }
9249
- .actions[data-v-f2ec0a81] {
9262
+ .actions[data-v-dc15f210] {
9250
9263
  position: absolute;
9251
9264
  z-index: 1;
9252
9265
  inset-block: 0;
@@ -9258,19 +9271,20 @@ to {
9258
9271
  pointer-events: none;
9259
9272
  transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
9260
9273
  }
9261
- .row:hover > .actions[data-v-f2ec0a81],
9262
- .row:focus-within > .actions[data-v-f2ec0a81],
9263
- [data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-f2ec0a81] {
9274
+ .row:hover > .actions[data-v-dc15f210],
9275
+ .row:focus-within > .actions[data-v-dc15f210],
9276
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .actions[data-v-dc15f210],
9277
+ [data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-dc15f210] {
9264
9278
  opacity: 1;
9265
9279
  pointer-events: auto;
9266
9280
  }
9267
9281
 
9268
9282
  /* Without hover there is no reveal, so the controls keep their own column. */
9269
9283
  @media (hover: none), (pointer: coarse) {
9270
- .row[data-v-f2ec0a81] {
9284
+ .row[data-v-dc15f210] {
9271
9285
  grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
9272
9286
  }
9273
- .actions[data-v-f2ec0a81] {
9287
+ .actions[data-v-dc15f210] {
9274
9288
  position: static;
9275
9289
  grid-column: 4;
9276
9290
  grid-row: 1;
@@ -9279,13 +9293,13 @@ to {
9279
9293
  opacity: 1;
9280
9294
  pointer-events: auto;
9281
9295
  }
9282
- .row:is(:hover, :focus-within) > .label[data-v-f2ec0a81],
9283
- .row:is(:hover, :focus-within) > .label[data-v-f2ec0a81]:dir(rtl),
9284
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81],
9285
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-f2ec0a81]:dir(rtl) {
9296
+ .row:is(:hover, :focus-within) > .label[data-v-dc15f210],
9297
+ .row:is(:hover, :focus-within) > .label[data-v-dc15f210]:dir(rtl),
9298
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210],
9299
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-dc15f210]:dir(rtl) {
9286
9300
  mask-image: none;
9287
9301
  }
9288
- .row[data-ui-marquee] > .label[data-v-f2ec0a81] {
9302
+ .row[data-ui-marquee] > .label[data-v-dc15f210] {
9289
9303
  mask-image: linear-gradient(
9290
9304
  to right,
9291
9305
  transparent var(--_marquee-icon-width, 0px),
@@ -9294,7 +9308,17 @@ to {
9294
9308
  )
9295
9309
  );
9296
9310
  }
9297
- .row[data-ui-marquee] > .label[data-v-f2ec0a81]:dir(rtl) {
9311
+
9312
+ /* Persistent content has its own column on touch. Fade only the label's end. */
9313
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-dc15f210] {
9314
+ mask-image: linear-gradient(to right, #000 calc(100% - var(--ui-space-1)), transparent 100%);
9315
+ }
9316
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"]
9317
+ > .row
9318
+ > .label[data-v-dc15f210]:dir(rtl) {
9319
+ mask-image: linear-gradient(to left, #000 calc(100% - var(--ui-space-1)), transparent 100%);
9320
+ }
9321
+ .row[data-ui-marquee] > .label[data-v-dc15f210]:dir(rtl) {
9298
9322
  mask-image: linear-gradient(
9299
9323
  to left,
9300
9324
  transparent var(--_marquee-icon-width, 0px),
@@ -9303,10 +9327,10 @@ to {
9303
9327
  )
9304
9328
  );
9305
9329
  }
9306
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-f2ec0a81] {
9330
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-dc15f210] {
9307
9331
  grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr) auto;
9308
9332
  }
9309
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .actions[data-v-f2ec0a81] {
9333
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .actions[data-v-dc15f210] {
9310
9334
  grid-column: 5;
9311
9335
  }
9312
9336
  }
@@ -9315,7 +9339,7 @@ to {
9315
9339
  empty column, right before the icon; a branch's disclosure is there, so its handle sits just
9316
9340
  outside the row. It is bare until pointed at: a resting surface behind it read as a faint
9317
9341
  patch rather than as a control. */
9318
- .drag-handle[data-v-f2ec0a81] {
9342
+ .drag-handle[data-v-dc15f210] {
9319
9343
  position: absolute;
9320
9344
  z-index: 2;
9321
9345
  inset-block-start: 50%;
@@ -9336,24 +9360,24 @@ to {
9336
9360
  transform: translateY(-50%);
9337
9361
  transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
9338
9362
  }
9339
- .row:hover .drag-handle[data-v-f2ec0a81],
9340
- .drag-handle[data-v-f2ec0a81]:hover,
9341
- .drag-handle[data-v-f2ec0a81]:focus-visible,
9342
- [data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-f2ec0a81] {
9363
+ .row:hover .drag-handle[data-v-dc15f210],
9364
+ .drag-handle[data-v-dc15f210]:hover,
9365
+ .drag-handle[data-v-dc15f210]:focus-visible,
9366
+ [data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-dc15f210] {
9343
9367
  opacity: 1;
9344
9368
  }
9345
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-f2ec0a81] {
9369
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-dc15f210] {
9346
9370
  inset-inline-start: calc(-1 * var(--_tree-disclosure-size) - 2px);
9347
9371
  }
9348
- .drag-handle[data-v-f2ec0a81]:hover,
9349
- .drag-handle[data-v-f2ec0a81]:focus-visible {
9372
+ .drag-handle[data-v-dc15f210]:hover,
9373
+ .drag-handle[data-v-dc15f210]:focus-visible {
9350
9374
  color: var(--ui-text-primary);
9351
9375
  background: var(--ui-surface-hover);
9352
9376
  }
9353
- .drag-handle[data-v-f2ec0a81]:active {
9377
+ .drag-handle[data-v-dc15f210]:active {
9354
9378
  cursor: grabbing;
9355
9379
  }
9356
- .drop-indicator[data-v-f2ec0a81] {
9380
+ .drop-indicator[data-v-dc15f210] {
9357
9381
  position: absolute;
9358
9382
  z-index: 3;
9359
9383
  inset-inline: 1px;
@@ -9363,8 +9387,8 @@ to {
9363
9387
  background: var(--_ui-tree-drop-color, var(--ui-accent-solid));
9364
9388
  pointer-events: none;
9365
9389
  }
9366
- .drop-indicator[data-v-f2ec0a81]::before,
9367
- .drop-indicator[data-v-f2ec0a81]::after {
9390
+ .drop-indicator[data-v-dc15f210]::before,
9391
+ .drop-indicator[data-v-dc15f210]::after {
9368
9392
  content: "";
9369
9393
  position: absolute;
9370
9394
  inset-block-start: 50%;
@@ -9375,34 +9399,34 @@ to {
9375
9399
  background: var(--ui-surface-elevated);
9376
9400
  transform: translateY(-50%);
9377
9401
  }
9378
- .drop-indicator[data-v-f2ec0a81]::before {
9402
+ .drop-indicator[data-v-dc15f210]::before {
9379
9403
  inset-inline-start: -1px;
9380
9404
  }
9381
- .drop-indicator[data-v-f2ec0a81]::after {
9405
+ .drop-indicator[data-v-dc15f210]::after {
9382
9406
  inset-inline-end: -1px;
9383
9407
  }
9384
- [data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-f2ec0a81] {
9408
+ [data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-dc15f210] {
9385
9409
  display: block;
9386
9410
  inset-block-start: calc(-0.5 * var(--ui-accent-line-width));
9387
9411
  }
9388
- [data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-f2ec0a81] {
9412
+ [data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-dc15f210] {
9389
9413
  display: block;
9390
9414
  inset-block-end: calc(-0.5 * var(--ui-accent-line-width));
9391
9415
  }
9392
- .children[hidden][data-v-f2ec0a81] {
9416
+ .children[hidden][data-v-dc15f210] {
9393
9417
  display: none;
9394
9418
  }
9395
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-f2ec0a81] {
9419
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-dc15f210] {
9396
9420
  --_tree-row-min-height: 44px;
9397
9421
  }
9398
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-f2ec0a81] {
9422
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-dc15f210] {
9399
9423
  grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr);
9400
9424
  }
9401
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-f2ec0a81],
9425
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-dc15f210],
9402
9426
  html[data-ui-input-modality="touch"]
9403
9427
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"]
9404
9428
  > .row
9405
- > .drag-handle[data-v-f2ec0a81] {
9429
+ > .drag-handle[data-v-dc15f210] {
9406
9430
  position: relative;
9407
9431
  grid-column: 1;
9408
9432
  grid-row: 1;
@@ -9414,24 +9438,24 @@ html[data-ui-input-modality="touch"]
9414
9438
  transform: none;
9415
9439
  cursor: pointer;
9416
9440
  }
9417
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-f2ec0a81] {
9441
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-dc15f210] {
9418
9442
  grid-column: 2;
9419
9443
  }
9420
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-f2ec0a81] {
9444
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-dc15f210] {
9421
9445
  grid-column: 3;
9422
9446
  }
9423
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-f2ec0a81] {
9447
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-dc15f210] {
9424
9448
  grid-column: 4;
9425
9449
  }
9426
9450
  html[data-ui-input-modality="touch"]
9427
9451
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9428
- > .row[data-v-f2ec0a81] {
9452
+ > .row[data-v-dc15f210] {
9429
9453
  grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr);
9430
9454
  }
9431
9455
  html[data-ui-input-modality="touch"]
9432
9456
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9433
9457
  > .row
9434
- > .selection-hit[data-v-f2ec0a81] {
9458
+ > .selection-hit[data-v-dc15f210] {
9435
9459
  grid-column: 3;
9436
9460
  inline-size: 44px;
9437
9461
  block-size: 44px;
@@ -9439,55 +9463,55 @@ html[data-ui-input-modality="touch"]
9439
9463
  html[data-ui-input-modality="touch"]
9440
9464
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9441
9465
  > .row
9442
- > .leading[data-v-f2ec0a81] {
9466
+ > .leading[data-v-dc15f210] {
9443
9467
  grid-column: 4;
9444
9468
  }
9445
9469
  html[data-ui-input-modality="touch"]
9446
9470
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9447
9471
  > .row
9448
- > .label[data-v-f2ec0a81] {
9472
+ > .label[data-v-dc15f210] {
9449
9473
  grid-column: 5;
9450
9474
  }
9451
9475
  @media (hover: none), (pointer: coarse) {
9452
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-f2ec0a81] {
9476
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-dc15f210] {
9453
9477
  grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
9454
9478
  }
9455
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .actions[data-v-f2ec0a81] {
9479
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .actions[data-v-dc15f210] {
9456
9480
  grid-column: 5;
9457
9481
  }
9458
9482
  html[data-ui-input-modality="touch"]
9459
9483
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9460
- > .row[data-v-f2ec0a81] {
9484
+ > .row[data-v-dc15f210] {
9461
9485
  grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr) auto;
9462
9486
  }
9463
9487
  html[data-ui-input-modality="touch"]
9464
9488
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9465
9489
  > .row
9466
- > .actions[data-v-f2ec0a81] {
9490
+ > .actions[data-v-dc15f210] {
9467
9491
  grid-column: 6;
9468
9492
  }
9469
9493
  }
9470
9494
  @media (prefers-reduced-motion: reduce) {
9471
- .row[data-v-f2ec0a81],
9472
- .disclosure-icon[data-v-f2ec0a81],
9473
- .drag-handle[data-v-f2ec0a81] {
9495
+ .row[data-v-dc15f210],
9496
+ .disclosure-icon[data-v-dc15f210],
9497
+ .drag-handle[data-v-dc15f210] {
9474
9498
  transition: none;
9475
9499
  }
9476
9500
  }
9477
9501
  @media (forced-colors: active) {
9478
- [data-component~="ui-tree-item"]:focus-visible > .row[data-v-f2ec0a81] {
9502
+ [data-component~="ui-tree-item"]:focus-visible > .row[data-v-dc15f210] {
9479
9503
  outline: var(--ui-focus-width) solid Highlight;
9480
9504
  outline-offset: calc(-1 * var(--ui-focus-width));
9481
9505
  }
9482
9506
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not(:focus-visible):not([aria-disabled="true"])
9483
- > .row[data-v-f2ec0a81] {
9507
+ > .row[data-v-dc15f210] {
9484
9508
  outline: var(--ui-border-width) solid Highlight;
9485
9509
  outline-offset: calc(-1 * var(--ui-border-width));
9486
9510
  }
9487
9511
  }
9488
9512
 
9489
9513
  /* A component that sets its display still honours the hidden attribute on its root. */
9490
- [data-component~="ui-tree-item"][hidden][data-v-f2ec0a81] {
9514
+ [data-component~="ui-tree-item"][hidden][data-v-dc15f210] {
9491
9515
  display: none;
9492
9516
  }
9493
9517
  /* The editor surface owns its renderer canvas. Existing hooks retain their defaults. */