@threadlabs/looma 0.26.10 → 0.26.12

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.
@@ -1461,13 +1461,43 @@ html[data-ui-input-modality="touch"]
1461
1461
  syntax: "*";
1462
1462
  inherits: false;
1463
1463
  }
1464
- [data-component~="ui-callout"][data-v-ca7a11cb] {
1464
+ [data-component~="ui-callout"][data-v-c8674799] {
1465
1465
  /* Hooks do not inherit, so the parts below read them from the root. */
1466
1466
  --_ui-callout-icon-column: var(--ui-callout-icon-column);
1467
1467
  --_ui-callout-icon: var(--ui-callout-icon);
1468
1468
  --_ui-callout-icon-size: var(--ui-callout-icon-size);
1469
1469
 
1470
1470
  --_callout-surface: var(--ui-info-soft);
1471
+ --_ui-selection-context-surface: light-dark(
1472
+ oklch(
1473
+ from var(--ui-callout-surface, var(--_callout-surface))
1474
+ calc(l - 0.045)
1475
+ calc(max(c, min(0.045, c * 3)))
1476
+ h
1477
+ ),
1478
+ oklch(
1479
+ from var(--ui-callout-surface, var(--_callout-surface))
1480
+ calc(l + 0.045)
1481
+ calc(max(c, min(0.045, c * 3)))
1482
+ h
1483
+ )
1484
+ );
1485
+ --_ui-selection-context-border: light-dark(
1486
+ oklch(
1487
+ from var(--ui-callout-surface, var(--_callout-surface))
1488
+ calc(l - 0.085)
1489
+ calc(max(c, min(0.045, c * 3)))
1490
+ h
1491
+ ),
1492
+ oklch(
1493
+ from var(--ui-callout-surface, var(--_callout-surface))
1494
+ calc(l + 0.085)
1495
+ calc(max(c, min(0.045, c * 3)))
1496
+ h
1497
+ )
1498
+ );
1499
+ --_ui-selection-context-text: var(--ui-text-primary);
1500
+
1471
1501
  --_callout-border: var(--ui-info-solid);
1472
1502
  --_callout-icon: var(--ui-info-solid);
1473
1503
 
@@ -1495,44 +1525,47 @@ html[data-ui-input-modality="touch"]
1495
1525
  }
1496
1526
 
1497
1527
  /* One line box tall, so the icon centres on the first line of text. */
1498
- .icon[data-v-ca7a11cb] {
1528
+ .icon[data-v-c8674799] {
1499
1529
  display: grid;
1500
1530
  place-items: center;
1501
1531
  inline-size: var(--_ui-callout-icon-column, 1.125rem);
1502
1532
  block-size: 1lh;
1503
1533
  color: var(--_ui-callout-icon, var(--_callout-icon));
1504
1534
  }
1505
- .icon svg[data-v-ca7a11cb] {
1535
+ .icon svg[data-v-c8674799] {
1506
1536
  inline-size: var(--_ui-callout-icon-size, 1.125rem);
1507
1537
  block-size: var(--_ui-callout-icon-size, 1.125rem);
1508
1538
  }
1509
- .content[data-v-ca7a11cb] {
1539
+ .content[data-v-c8674799] {
1510
1540
  min-inline-size: 0;
1511
1541
  }
1512
- [data-component~="ui-callout"][data-ui-callout-state~="tone=neutral"][data-v-ca7a11cb],
1513
- [data-component~="ui-callout"][data-ui-callout-state~="tone=note"][data-v-ca7a11cb] {
1542
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=neutral"][data-v-c8674799],
1543
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=note"][data-v-c8674799] {
1544
+ --_ui-selection-context-surface: initial;
1545
+ --_ui-selection-context-border: initial;
1546
+ --_ui-selection-context-text: initial;
1514
1547
  --_callout-surface: var(--ui-surface-muted);
1515
1548
  --_callout-border: var(--ui-border-strong);
1516
1549
  --_callout-icon: var(--ui-text-secondary);
1517
1550
  }
1518
- [data-component~="ui-callout"][data-ui-callout-state~="tone=warning"][data-v-ca7a11cb] {
1551
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=warning"][data-v-c8674799] {
1519
1552
  --_callout-surface: var(--ui-warning-soft);
1520
1553
  --_callout-border: var(--ui-warning-solid);
1521
1554
  --_callout-icon: var(--ui-warning-solid);
1522
1555
  }
1523
- [data-component~="ui-callout"][data-ui-callout-state~="tone=success"][data-v-ca7a11cb] {
1556
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=success"][data-v-c8674799] {
1524
1557
  --_callout-surface: var(--ui-success-soft);
1525
1558
  --_callout-border: var(--ui-success-solid);
1526
1559
  --_callout-icon: var(--ui-success-solid);
1527
1560
  }
1528
- [data-component~="ui-callout"][data-ui-callout-state~="tone=danger"][data-v-ca7a11cb] {
1561
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=danger"][data-v-c8674799] {
1529
1562
  --_callout-surface: var(--ui-danger-soft);
1530
1563
  --_callout-border: var(--ui-danger-solid);
1531
1564
  --_callout-icon: var(--ui-danger-solid);
1532
1565
  }
1533
1566
 
1534
1567
  /* A link in the callout's text is underlined, so it reads as a link by more than colour. */
1535
- .content a[data-v-ca7a11cb-s] {
1568
+ .content a[data-v-c8674799-s] {
1536
1569
  color: var(--ui-accent-active);
1537
1570
  text-decoration: underline;
1538
1571
  text-decoration-thickness: 0.06em;
@@ -1540,13 +1573,17 @@ html[data-ui-input-modality="touch"]
1540
1573
  }
1541
1574
 
1542
1575
  /* A component that sets its display still honours the hidden attribute on its root. */
1543
- [data-component~="ui-callout"][hidden][data-v-ca7a11cb] {
1576
+ [data-component~="ui-callout"][hidden][data-v-c8674799] {
1544
1577
  display: none;
1545
1578
  }
1546
1579
 
1547
1580
  /* A surface that groups content. Its children stack with even space between them, so a card
1548
1581
  needs no layout of its own. */
1549
- [data-component~="ui-card"][data-v-aeaaae4a] {
1582
+ [data-component~="ui-card"][data-v-150bfc3d] {
1583
+ --_ui-card-surface: var(--ui-surface-raised);
1584
+ --_ui-selection-context-surface: initial;
1585
+ --_ui-selection-context-border: initial;
1586
+ --_ui-selection-context-text: initial;
1550
1587
  display: flex;
1551
1588
  flex-direction: column;
1552
1589
  gap: var(--ui-space-4);
@@ -1555,67 +1592,84 @@ html[data-ui-input-modality="touch"]
1555
1592
  padding: var(--ui-space-5);
1556
1593
  border: var(--ui-border-width) solid var(--ui-border-strong);
1557
1594
  border-radius: var(--ui-radius-lg);
1558
- background: var(--ui-surface-raised);
1595
+ background: var(--_ui-card-surface);
1559
1596
  color: var(--ui-text-primary);
1560
1597
  }
1561
- [data-component~="ui-card"][data-ui-card-state~="padding=xs"][data-v-aeaaae4a] {
1598
+ [data-component~="ui-card"][data-ui-card-state~="padding=xs"][data-v-150bfc3d] {
1562
1599
  gap: var(--ui-space-1);
1563
1600
  padding: var(--ui-space-2);
1564
1601
  }
1565
- [data-component~="ui-card"][data-ui-card-state~="padding=sm"][data-v-aeaaae4a] {
1602
+ [data-component~="ui-card"][data-ui-card-state~="padding=sm"][data-v-150bfc3d] {
1566
1603
  gap: var(--ui-space-2);
1567
1604
  padding: var(--ui-space-3);
1568
1605
  }
1569
- [data-component~="ui-card"][data-ui-card-state~="padding=lg"][data-v-aeaaae4a] {
1606
+ [data-component~="ui-card"][data-ui-card-state~="padding=lg"][data-v-150bfc3d] {
1570
1607
  padding: var(--ui-space-6);
1571
1608
  }
1572
- [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-aeaaae4a] {
1609
+ [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-150bfc3d] {
1573
1610
  border-color: transparent;
1574
- background: var(--ui-surface-muted);
1611
+ --_ui-card-surface: var(--ui-surface-muted);
1575
1612
  }
1576
- [data-component~="ui-card"][data-ui-card-state~="variant=elevated"][data-v-aeaaae4a] {
1613
+ [data-component~="ui-card"][data-ui-card-state~="variant=elevated"][data-v-150bfc3d] {
1577
1614
  border-color: var(--ui-border-subtle);
1578
1615
  box-shadow: var(--ui-shadow-lg);
1579
1616
  }
1580
- [data-component~="ui-card"][data-ui-card-state~="tone=accent"][data-v-aeaaae4a] {
1617
+ [data-component~="ui-card"][data-ui-card-state~="tone=accent"][data-v-150bfc3d] {
1581
1618
  border-color: color-mix(in srgb, var(--ui-accent) 25%, var(--ui-border-default));
1582
- background: color-mix(in srgb, var(--ui-accent) 6%, var(--ui-surface-default));
1619
+ --_ui-card-surface: color-mix(in srgb, var(--ui-accent) 6%, var(--ui-surface-default));
1583
1620
  }
1584
- [data-component~="ui-card"][data-ui-card-state~="tone=info"][data-v-aeaaae4a] {
1621
+ [data-component~="ui-card"][data-ui-card-state~="tone=info"][data-v-150bfc3d] {
1585
1622
  border-color: color-mix(in srgb, var(--ui-info) 25%, var(--ui-border-default));
1586
- background: color-mix(in srgb, var(--ui-info) 6%, var(--ui-surface-default));
1623
+ --_ui-card-surface: color-mix(in srgb, var(--ui-info) 6%, var(--ui-surface-default));
1587
1624
  }
1588
- [data-component~="ui-card"][data-ui-card-state~="tone=success"][data-v-aeaaae4a] {
1625
+ [data-component~="ui-card"][data-ui-card-state~="tone=success"][data-v-150bfc3d] {
1589
1626
  border-color: color-mix(in srgb, var(--ui-success) 25%, var(--ui-border-default));
1590
- background: color-mix(in srgb, var(--ui-success) 6%, var(--ui-surface-default));
1627
+ --_ui-card-surface: color-mix(in srgb, var(--ui-success) 6%, var(--ui-surface-default));
1591
1628
  }
1592
- [data-component~="ui-card"][data-ui-card-state~="tone=warning"][data-v-aeaaae4a] {
1629
+ [data-component~="ui-card"][data-ui-card-state~="tone=warning"][data-v-150bfc3d] {
1593
1630
  border-color: color-mix(in srgb, var(--ui-warning) 25%, var(--ui-border-default));
1594
- background: color-mix(in srgb, var(--ui-warning) 6%, var(--ui-surface-default));
1631
+ --_ui-card-surface: color-mix(in srgb, var(--ui-warning) 6%, var(--ui-surface-default));
1595
1632
  }
1596
- [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-aeaaae4a]:is([data-ui-card-state~="tone=accent"], [data-ui-card-state~="tone=info"], [data-ui-card-state~="tone=success"], [data-ui-card-state~="tone=warning"]) {
1633
+ [data-component~="ui-card"][data-ui-card-state~="variant=subtle"][data-v-150bfc3d]:is([data-ui-card-state~="tone=accent"], [data-ui-card-state~="tone=info"], [data-ui-card-state~="tone=success"], [data-ui-card-state~="tone=warning"]) {
1597
1634
  border-color: transparent;
1598
1635
  }
1599
- [data-component~="ui-card"][data-ui-card-state~="tone=danger"][data-v-aeaaae4a] {
1636
+ [data-component~="ui-card"][data-ui-card-state~="tone=danger"][data-v-150bfc3d] {
1600
1637
  border-color: color-mix(in srgb, var(--ui-danger) 45%, var(--ui-border-default));
1601
1638
  border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger);
1602
- background: var(--ui-danger-soft);
1639
+ --_ui-card-surface: var(--ui-danger-soft);
1640
+ }
1641
+
1642
+ /* A colored panel shades rows in its own hue, without changing button intent. */
1643
+ [data-component~="ui-card"][data-ui-card-state~="tone=accent"][data-v-150bfc3d],
1644
+ [data-component~="ui-card"][data-ui-card-state~="tone=info"][data-v-150bfc3d],
1645
+ [data-component~="ui-card"][data-ui-card-state~="tone=success"][data-v-150bfc3d],
1646
+ [data-component~="ui-card"][data-ui-card-state~="tone=warning"][data-v-150bfc3d],
1647
+ [data-component~="ui-card"][data-ui-card-state~="tone=danger"][data-v-150bfc3d] {
1648
+ --_ui-selection-context-surface: light-dark(
1649
+ oklch(from var(--_ui-card-surface) calc(l - 0.045) calc(max(c, min(0.045, c * 3))) h),
1650
+ oklch(from var(--_ui-card-surface) calc(l + 0.045) calc(max(c, min(0.045, c * 3))) h)
1651
+ );
1652
+ --_ui-selection-context-border: light-dark(
1653
+ oklch(from var(--_ui-card-surface) calc(l - 0.085) calc(max(c, min(0.045, c * 3))) h),
1654
+ oklch(from var(--_ui-card-surface) calc(l + 0.085) calc(max(c, min(0.045, c * 3))) h)
1655
+ );
1656
+ --_ui-selection-context-text: var(--ui-text-primary);
1603
1657
  }
1604
- [data-component~="ui-card"][data-ui-card-state~="size=sm"][data-v-aeaaae4a] {
1658
+ [data-component~="ui-card"][data-ui-card-state~="size=sm"][data-v-150bfc3d] {
1605
1659
  inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
1606
1660
  max-inline-size: min(22rem, calc(100vw - var(--ui-space-2) * 2));
1607
1661
  }
1608
- [data-component~="ui-card"][data-ui-card-state~="size=md"][data-v-aeaaae4a] {
1662
+ [data-component~="ui-card"][data-ui-card-state~="size=md"][data-v-150bfc3d] {
1609
1663
  inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
1610
1664
  max-inline-size: min(28rem, calc(100vw - var(--ui-space-2) * 2));
1611
1665
  }
1612
- [data-component~="ui-card"][data-ui-card-state~="size=lg"][data-v-aeaaae4a] {
1666
+ [data-component~="ui-card"][data-ui-card-state~="size=lg"][data-v-150bfc3d] {
1613
1667
  inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
1614
1668
  max-inline-size: min(36rem, calc(100vw - var(--ui-space-2) * 2));
1615
1669
  }
1616
1670
 
1617
1671
  /* A component that sets its display still honours the hidden attribute on its root. */
1618
- [data-component~="ui-card"][hidden][data-v-aeaaae4a] {
1672
+ [data-component~="ui-card"][hidden][data-v-150bfc3d] {
1619
1673
  display: none;
1620
1674
  }
1621
1675
 
@@ -5933,7 +5987,7 @@ svg[data-v-219fa683-s] {
5933
5987
  padding follow it too, and the item takes the link's focus ring. The link stays a real link, so
5934
5988
  a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
5935
5989
  stay their own. */
5936
- [data-component~="ui-list-item"][data-v-deeac109] {
5990
+ [data-component~="ui-list-item"][data-v-2363907e] {
5937
5991
  /* Hooks do not inherit, so the parts below read them from the root. */
5938
5992
  --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
5939
5993
 
@@ -5958,110 +6012,111 @@ svg[data-v-219fa683-s] {
5958
6012
  background-color var(--ui-motion-fast) var(--ui-motion-ease),
5959
6013
  border-color var(--ui-motion-fast) var(--ui-motion-ease);
5960
6014
  }
5961
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-deeac109] {
6015
+ [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-2363907e] {
5962
6016
  padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
5963
6017
  padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
5964
6018
  border: var(--ui-border-width) solid var(--ui-border-strong);
5965
6019
  border-radius: var(--ui-radius-lg);
5966
6020
  background: var(--ui-surface-raised);
5967
6021
  }
5968
- [data-component~="ui-list-item"][data-v-deeac109]:where(:has(.title a[href])):hover,
5969
- [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-deeac109],
5970
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-deeac109] {
5971
- background: var(--ui-selection-surface);
5972
- box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-border);
6022
+ [data-component~="ui-list-item"][data-v-2363907e]:where(:has(.title a[href])):hover,
6023
+ [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-2363907e],
6024
+ [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-2363907e] {
6025
+ background: var(--_ui-selection-context-surface, var(--ui-selection-surface));
6026
+ box-shadow: inset 0 0 0 var(--ui-border-width)
6027
+ var(--_ui-selection-context-border, var(--ui-selection-border));
5973
6028
  }
5974
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-deeac109]:where(:has(.title
6029
+ [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-2363907e]:where(:has(.title
5975
6030
  a[href])):hover {
5976
6031
  border-color: var(--ui-border-strong);
5977
6032
  }
5978
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-deeac109] {
5979
- color: var(--ui-selection-text);
6033
+ [data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-2363907e] {
6034
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
5980
6035
  }
5981
6036
 
5982
6037
  /* Framed cards already have their own edge; the stronger focus ring stays separate. */
5983
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-deeac109] {
6038
+ [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"][data-v-2363907e] {
5984
6039
  box-shadow: none;
5985
6040
  }
5986
- [data-component~="ui-list-item"][data-v-deeac109]:has(.title a[href]:focus-visible) {
6041
+ [data-component~="ui-list-item"][data-v-2363907e]:has(.title a[href]:focus-visible) {
5987
6042
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
5988
6043
  }
5989
- .leading[data-v-deeac109],
5990
- .trailing[data-v-deeac109] {
6044
+ .leading[data-v-2363907e],
6045
+ .trailing[data-v-2363907e] {
5991
6046
  display: inline-flex;
5992
6047
  flex: none;
5993
6048
  align-items: center;
5994
6049
  gap: var(--ui-space-2);
5995
6050
  }
5996
- .leading[data-v-deeac109] {
6051
+ .leading[data-v-2363907e] {
5997
6052
  color: var(--ui-text-muted);
5998
6053
  font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
5999
6054
  }
6000
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-deeac109] {
6001
- color: var(--ui-selection-text);
6055
+ [data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading[data-v-2363907e] {
6056
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
6002
6057
  }
6003
6058
 
6004
6059
  /* An explicitly independent leading control sits above the stretched row link. */
6005
- [data-component~="ui-list-item"][data-ui-list-item-state~="leadingInteractive"] .leading[data-v-deeac109] {
6060
+ [data-component~="ui-list-item"][data-ui-list-item-state~="leadingInteractive"] .leading[data-v-2363907e] {
6006
6061
  position: relative;
6007
6062
  z-index: 1;
6008
6063
  }
6009
6064
 
6010
6065
  /* Trailing controls take their own clicks, above the title link's stretched hit area. */
6011
- .trailing[data-v-deeac109] {
6066
+ .trailing[data-v-2363907e] {
6012
6067
  position: relative;
6013
6068
  z-index: 1;
6014
6069
  color: var(--ui-text-muted);
6015
6070
  font-size: var(--ui-font-size-sm);
6016
6071
  }
6017
- .content[data-v-deeac109] {
6072
+ .content[data-v-2363907e] {
6018
6073
  display: flex;
6019
6074
  flex: 1;
6020
6075
  flex-direction: column;
6021
6076
  gap: var(--ui-space-0-5, 2px);
6022
6077
  min-inline-size: 0;
6023
6078
  }
6024
- .title[data-v-deeac109],
6025
- .description[data-v-deeac109] {
6079
+ .title[data-v-2363907e],
6080
+ .description[data-v-2363907e] {
6026
6081
  display: block;
6027
6082
  min-inline-size: 0;
6028
6083
  overflow: hidden;
6029
6084
  text-overflow: ellipsis;
6030
6085
  white-space: nowrap;
6031
6086
  }
6032
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title[data-v-deeac109],
6033
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description[data-v-deeac109] {
6087
+ [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title[data-v-2363907e],
6088
+ [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description[data-v-2363907e] {
6034
6089
  white-space: normal;
6035
6090
  overflow-wrap: anywhere;
6036
6091
  }
6037
- .title[data-v-deeac109] {
6092
+ .title[data-v-2363907e] {
6038
6093
  font-size: var(--ui-font-size-md);
6039
6094
  font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
6040
6095
  line-height: var(--ui-line-height-tight);
6041
6096
  }
6042
6097
 
6043
6098
  /* Keep identity and disclosure marks beside the first line, even with a long description. */
6044
- [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"][data-v-deeac109] {
6099
+ [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"][data-v-2363907e] {
6045
6100
  align-items: flex-start;
6046
6101
  }
6047
- [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .leading[data-v-deeac109],
6048
- [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .trailing[data-v-deeac109] {
6102
+ [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .leading[data-v-2363907e],
6103
+ [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .trailing[data-v-2363907e] {
6049
6104
  min-block-size: calc(var(--ui-font-size-md) * var(--ui-line-height-tight));
6050
6105
  }
6051
- .description[data-v-deeac109] {
6106
+ .description[data-v-2363907e] {
6052
6107
  color: var(--ui-text-muted);
6053
6108
  font-size: var(--ui-font-size-sm);
6054
6109
  line-height: var(--ui-line-height-tight);
6055
6110
  }
6056
- .title > a[data-v-deeac109-s] {
6111
+ .title > a[data-v-2363907e-s] {
6057
6112
  color: inherit;
6058
6113
  text-decoration: none;
6059
6114
  }
6060
- .title > a[data-v-deeac109-s]:focus-visible {
6115
+ .title > a[data-v-2363907e-s]:focus-visible {
6061
6116
  outline: none;
6062
6117
  box-shadow: none;
6063
6118
  }
6064
- .title > a[href][data-v-deeac109-s]::after {
6119
+ .title > a[href][data-v-2363907e-s]::after {
6065
6120
  position: absolute;
6066
6121
  inset: 0;
6067
6122
  border-radius: inherit;
@@ -6069,24 +6124,24 @@ svg[data-v-219fa683-s] {
6069
6124
  }
6070
6125
 
6071
6126
  /* An unused region takes no space. */
6072
- .leading[data-v-deeac109]:empty,
6073
- .description[data-v-deeac109]:empty,
6074
- .trailing[data-v-deeac109]:empty {
6127
+ .leading[data-v-2363907e]:empty,
6128
+ .description[data-v-2363907e]:empty,
6129
+ .trailing[data-v-2363907e]:empty {
6075
6130
  display: none;
6076
6131
  }
6077
6132
  @media (forced-colors: active) {
6078
- [data-component~="ui-list-item"][data-v-deeac109]:has(a:focus-visible) {
6133
+ [data-component~="ui-list-item"][data-v-2363907e]:has(a:focus-visible) {
6079
6134
  outline: var(--ui-focus-width) solid Highlight;
6080
6135
  outline-offset: calc(-1 * var(--ui-focus-width));
6081
6136
  }
6082
- :is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-deeac109], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-deeac109]):not(:has(a:focus-visible)) {
6137
+ :is([data-component~="ui-list-item"][data-ui-list-item-state~="current"][data-v-2363907e], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"][data-v-2363907e]):not(:has(a:focus-visible)) {
6083
6138
  outline: var(--ui-border-width) solid Highlight;
6084
6139
  outline-offset: calc(-1 * var(--ui-border-width));
6085
6140
  }
6086
6141
  }
6087
6142
 
6088
6143
  /* A component that sets its display still honours the hidden attribute on its root. */
6089
- [data-component~="ui-list-item"][hidden][data-v-deeac109] {
6144
+ [data-component~="ui-list-item"][hidden][data-v-2363907e] {
6090
6145
  display: none;
6091
6146
  }
6092
6147
 
@@ -6623,7 +6678,7 @@ svg[data-v-219fa683-s] {
6623
6678
  default slot), and an optional line under it (description), such as the record a section
6624
6679
  belongs to. Label and description are one line each and end in an ellipsis, so every item in a
6625
6680
  navigation has the same height and the rail never grows sideways. */
6626
- [data-component~="ui-nav-item"][data-v-e4b23866] {
6681
+ [data-component~="ui-nav-item"][data-v-f82c0272] {
6627
6682
  --_indicator-width: var(--ui-nav-item-indicator-width, var(--ui-accent-line-width));
6628
6683
  --_indicator-color: var(--ui-nav-item-indicator-color, var(--ui-accent));
6629
6684
  position: relative;
@@ -6651,27 +6706,31 @@ svg[data-v-219fa683-s] {
6651
6706
  background-color var(--ui-motion-fast) var(--ui-motion-ease),
6652
6707
  color var(--ui-motion-fast) var(--ui-motion-ease);
6653
6708
  }
6654
- [data-component~="ui-nav-item"][data-v-e4b23866]:hover:not([aria-current]) {
6655
- background: var(--ui-nav-hover-surface);
6709
+ [data-component~="ui-nav-item"][data-v-f82c0272]:hover:not([aria-current]) {
6710
+ background: var(--_ui-selection-context-surface, var(--ui-nav-hover-surface));
6656
6711
  color: var(--ui-text-primary);
6657
6712
  }
6658
6713
 
6659
6714
  /* The ring is an outline, drawn inside the item: forced colors keep an outline where they drop a
6660
6715
  box shadow, and a scrolling rail cannot clip a ring that stays within the item. */
6661
- [data-component~="ui-nav-item"][data-v-e4b23866]:focus-visible {
6716
+ [data-component~="ui-nav-item"][data-v-f82c0272]:focus-visible {
6662
6717
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
6663
6718
  outline-offset: calc(-1 * var(--ui-focus-width));
6664
6719
  }
6665
- [data-component~="ui-nav-item"][aria-current][data-v-e4b23866] {
6666
- background: var(--ui-nav-item-current-surface, var(--ui-selection-surface));
6667
- color: var(--ui-selection-text);
6720
+ [data-component~="ui-nav-item"][aria-current][data-v-f82c0272] {
6721
+ background: var(
6722
+ --ui-nav-item-current-surface,
6723
+ var(--_ui-selection-context-surface, var(--ui-selection-surface))
6724
+ );
6725
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
6668
6726
  }
6669
6727
 
6670
6728
  /* A complete inset edge separates pale fills without changing rail geometry. */
6671
- [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=surface"][data-v-e4b23866]:is(:hover, [aria-current]) {
6672
- box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-border);
6729
+ [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=surface"][data-v-f82c0272]:is(:hover, [aria-current]) {
6730
+ box-shadow: inset 0 0 0 var(--ui-border-width)
6731
+ var(--_ui-selection-context-border, var(--ui-selection-border));
6673
6732
  }
6674
- [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=line"][data-v-e4b23866] {
6733
+ [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=line"][data-v-f82c0272] {
6675
6734
  border-radius: 0;
6676
6735
  }
6677
6736
 
@@ -6680,29 +6739,29 @@ svg[data-v-219fa683-s] {
6680
6739
  The line is a border, not a fill: forced colors replace backgrounds but keep a
6681
6740
  border, so the current item stays marked in high contrast. Logical edges mirror it in a
6682
6741
  right-to-left page. */
6683
- .indicator[data-v-e4b23866] {
6742
+ .indicator[data-v-f82c0272] {
6684
6743
  position: absolute;
6685
6744
  inset-block: 0;
6686
6745
  inset-inline-start: 0;
6687
6746
  display: none;
6688
6747
  border-inline-start: var(--_indicator-width) solid var(--_indicator-color);
6689
6748
  }
6690
- [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=line"][aria-current] .indicator[data-v-e4b23866] {
6749
+ [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=line"][aria-current] .indicator[data-v-f82c0272] {
6691
6750
  display: block;
6692
6751
  }
6693
6752
  @media (forced-colors: active) {
6694
6753
  /* System colors may erase the selected fill. Trace the complete surface, without
6695
6754
  creating an edge stripe; the stronger keyboard focus outline keeps precedence. */
6696
- [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=surface"][aria-current][data-v-e4b23866]:not(:focus-visible) {
6755
+ [data-component~="ui-nav-item"][data-ui-nav-item-state~="variant=surface"][aria-current][data-v-f82c0272]:not(:focus-visible) {
6697
6756
  outline: var(--ui-border-width) solid Highlight;
6698
6757
  outline-offset: calc(-1 * var(--ui-border-width));
6699
6758
  }
6700
- .indicator[data-v-e4b23866] {
6759
+ .indicator[data-v-f82c0272] {
6701
6760
  border-inline-start-color: Highlight;
6702
6761
  }
6703
6762
  }
6704
- .leading[data-v-e4b23866],
6705
- .trailing[data-v-e4b23866] {
6763
+ .leading[data-v-f82c0272],
6764
+ .trailing[data-v-f82c0272] {
6706
6765
  display: inline-flex;
6707
6766
  flex: none;
6708
6767
  align-items: center;
@@ -6711,54 +6770,54 @@ svg[data-v-219fa683-s] {
6711
6770
  color: inherit;
6712
6771
  font-size: var(--ui-nav-icon-size);
6713
6772
  }
6714
- .content[data-v-e4b23866] {
6773
+ .content[data-v-f82c0272] {
6715
6774
  display: flex;
6716
6775
  flex: 1;
6717
6776
  flex-direction: column;
6718
6777
  gap: var(--ui-space-0-5, 2px);
6719
6778
  min-inline-size: 0;
6720
6779
  }
6721
- .label[data-v-e4b23866],
6722
- .description[data-v-e4b23866] {
6780
+ .label[data-v-f82c0272],
6781
+ .description[data-v-f82c0272] {
6723
6782
  display: block;
6724
6783
  min-inline-size: 0;
6725
6784
  overflow: hidden;
6726
6785
  text-overflow: ellipsis;
6727
6786
  white-space: nowrap;
6728
6787
  }
6729
- .label[data-v-e4b23866] {
6788
+ .label[data-v-f82c0272] {
6730
6789
  font-size: var(--ui-font-size-md);
6731
6790
  line-height: var(--ui-line-height-tight);
6732
6791
  }
6733
- .description[data-v-e4b23866] {
6792
+ .description[data-v-f82c0272] {
6734
6793
  color: var(--ui-text-muted);
6735
6794
  font-size: var(--ui-font-size-sm);
6736
6795
  font-weight: var(--ui-font-normal);
6737
6796
  line-height: var(--ui-line-height-tight);
6738
6797
  }
6739
- [data-component~="ui-nav-item"][data-ui-nav-item-state~="density=compact"][data-v-e4b23866] {
6798
+ [data-component~="ui-nav-item"][data-ui-nav-item-state~="density=compact"][data-v-f82c0272] {
6740
6799
  min-block-size: var(--ui-nav-compact-min-block-size);
6741
6800
  padding-block: var(--ui-nav-compact-padding-block);
6742
6801
  padding-inline: var(--ui-nav-compact-padding-inline);
6743
6802
  }
6744
- [data-component~="ui-nav-item"][data-ui-nav-item-state~="density=compact"] .label[data-v-e4b23866] {
6803
+ [data-component~="ui-nav-item"][data-ui-nav-item-state~="density=compact"] .label[data-v-f82c0272] {
6745
6804
  font-size: var(--ui-font-size-sm);
6746
6805
  }
6747
6806
  @media (pointer: coarse) {
6748
- [data-component~="ui-nav-item"][data-ui-nav-item-state~="density=compact"][data-v-e4b23866] {
6807
+ [data-component~="ui-nav-item"][data-ui-nav-item-state~="density=compact"][data-v-f82c0272] {
6749
6808
  min-block-size: var(--ui-control-min-block-size);
6750
6809
  }
6751
6810
  }
6752
6811
 
6753
6812
  /* An unused region takes no space. */
6754
- .leading[data-v-e4b23866]:empty,
6755
- .trailing[data-v-e4b23866]:empty,
6756
- .description[data-v-e4b23866]:empty {
6813
+ .leading[data-v-f82c0272]:empty,
6814
+ .trailing[data-v-f82c0272]:empty,
6815
+ .description[data-v-f82c0272]:empty {
6757
6816
  display: none;
6758
6817
  }
6759
6818
 
6760
6819
  /* A component that sets its display still honours the hidden attribute on its root. */
6761
- [data-component~="ui-nav-item"][hidden][data-v-e4b23866] {
6820
+ [data-component~="ui-nav-item"][hidden][data-v-f82c0272] {
6762
6821
  display: none;
6763
6822
  }
6764
6823
 
@@ -7208,7 +7267,7 @@ legend[data-v-0bead1b5] + * {
7208
7267
  syntax: "*";
7209
7268
  inherits: false;
7210
7269
  }
7211
- [data-component~="ui-search-result-row"][data-v-6ea384f9] {
7270
+ [data-component~="ui-search-result-row"][data-v-3f6b9d17] {
7212
7271
  appearance: none;
7213
7272
  inline-size: 100%;
7214
7273
  min-block-size: var(--ui-search-result-row-min-height, 56px);
@@ -7226,7 +7285,7 @@ legend[data-v-0bead1b5] + * {
7226
7285
  text-align: left;
7227
7286
  transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
7228
7287
  }
7229
- [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"][data-v-6ea384f9] {
7288
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"][data-v-3f6b9d17] {
7230
7289
  min-block-size: var(--ui-search-result-row-min-height, 3.125rem);
7231
7290
  padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-1));
7232
7291
  padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-2));
@@ -7237,75 +7296,75 @@ legend[data-v-0bead1b5] + * {
7237
7296
 
7238
7297
  /* Slot wrappers own their line boxes even when an app makes buttons inherit body typography. */
7239
7298
  [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"]
7240
- .title[data-v-6ea384f9] {
7299
+ .title[data-v-3f6b9d17] {
7241
7300
  font-size: var(--ui-font-size-sm);
7242
7301
  line-height: var(--ui-line-height);
7243
7302
  }
7244
- [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"] .meta[data-v-6ea384f9] {
7303
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="density=compact"] .meta[data-v-3f6b9d17] {
7245
7304
  font-size: var(--ui-font-size-xs);
7246
7305
  line-height: var(--ui-line-height);
7247
7306
  }
7248
- [data-component~="ui-search-result-row"][data-v-6ea384f9]:hover:enabled {
7307
+ [data-component~="ui-search-result-row"][data-v-3f6b9d17]:hover:enabled {
7249
7308
  background: var(
7250
7309
  --ui-search-result-row-hover-surface,
7251
- color-mix(in srgb, var(--ui-surface) 85%, black 3%)
7310
+ var(--_ui-selection-context-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%))
7252
7311
  );
7253
7312
  }
7254
- [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-6ea384f9] {
7313
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-3f6b9d17] {
7255
7314
  background: var(
7256
7315
  --ui-search-result-row-selected-bg,
7257
- var(--ui-selection-surface)
7316
+ var(--_ui-selection-context-surface, var(--ui-selection-surface))
7258
7317
  );
7259
- color: var(--ui-selection-text);
7318
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
7260
7319
  }
7261
- [data-component~="ui-search-result-row"][data-v-6ea384f9]:focus-visible {
7320
+ [data-component~="ui-search-result-row"][data-v-3f6b9d17]:focus-visible {
7262
7321
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
7263
7322
  outline-offset: calc(-1 * var(--ui-focus-width));
7264
7323
  }
7265
- [data-component~="ui-search-result-row"][data-v-6ea384f9]:disabled {
7324
+ [data-component~="ui-search-result-row"][data-v-3f6b9d17]:disabled {
7266
7325
  background: var(--ui-disabled-surface);
7267
7326
  color: var(--ui-disabled-text);
7268
7327
  cursor: not-allowed;
7269
7328
  }
7270
- .leading[data-v-6ea384f9],
7271
- .trailing[data-v-6ea384f9] {
7329
+ .leading[data-v-3f6b9d17],
7330
+ .trailing[data-v-3f6b9d17] {
7272
7331
  display: inline-flex;
7273
7332
  align-items: flex-start;
7274
7333
  flex-shrink: 0;
7275
7334
  }
7276
- .content[data-v-6ea384f9] {
7335
+ .content[data-v-3f6b9d17] {
7277
7336
  min-inline-size: 0;
7278
7337
  flex: 1;
7279
7338
  display: flex;
7280
7339
  flex-direction: column;
7281
7340
  }
7282
- .title[data-v-6ea384f9],
7283
- .meta[data-v-6ea384f9],
7284
- .excerpt[data-v-6ea384f9] {
7341
+ .title[data-v-3f6b9d17],
7342
+ .meta[data-v-3f6b9d17],
7343
+ .excerpt[data-v-3f6b9d17] {
7285
7344
  display: block;
7286
7345
  min-inline-size: 0;
7287
7346
  }
7288
7347
 
7289
7348
  /* An unused region takes no space. */
7290
- .leading[data-v-6ea384f9]:empty,
7291
- .meta[data-v-6ea384f9]:empty,
7292
- .excerpt[data-v-6ea384f9]:empty,
7293
- .trailing[data-v-6ea384f9]:empty {
7349
+ .leading[data-v-3f6b9d17]:empty,
7350
+ .meta[data-v-3f6b9d17]:empty,
7351
+ .excerpt[data-v-3f6b9d17]:empty,
7352
+ .trailing[data-v-3f6b9d17]:empty {
7294
7353
  display: none;
7295
7354
  }
7296
- [slot="title"][data-v-6ea384f9-s],[slot="meta"][data-v-6ea384f9-s],[slot="excerpt"][data-v-6ea384f9-s] {
7355
+ [slot="title"][data-v-3f6b9d17-s],[slot="meta"][data-v-3f6b9d17-s],[slot="excerpt"][data-v-3f6b9d17-s] {
7297
7356
  display: block;
7298
7357
  margin: 0;
7299
7358
  }
7300
7359
  @media (forced-colors: active) {
7301
- [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-6ea384f9]:not(:focus-visible):not(:disabled) {
7360
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-3f6b9d17]:not(:focus-visible):not(:disabled) {
7302
7361
  outline: var(--ui-border-width) solid Highlight;
7303
7362
  outline-offset: calc(-1 * var(--ui-border-width));
7304
7363
  }
7305
7364
  }
7306
7365
 
7307
7366
  /* A component that sets its display still honours the hidden attribute on its root. */
7308
- [data-component~="ui-search-result-row"][hidden][data-v-6ea384f9] {
7367
+ [data-component~="ui-search-result-row"][hidden][data-v-3f6b9d17] {
7309
7368
  display: none;
7310
7369
  }
7311
7370
 
@@ -7503,77 +7562,89 @@ dialog[data-v-0778ed20] {
7503
7562
 
7504
7563
  /* A part of a view: a heading, an optional line under it, actions for the whole section at its
7505
7564
  end, and the content. Sections space themselves out through the Stack around them. */
7506
- [data-component~="ui-section"][data-v-efbbec43] {
7565
+ [data-component~="ui-section"][data-v-93e8cb94] {
7507
7566
  display: flex;
7508
7567
  flex-direction: column;
7509
7568
  gap: var(--ui-space-4);
7510
7569
  min-inline-size: 0;
7511
7570
  }
7512
- [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-v-efbbec43] {
7571
+ [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-v-93e8cb94] {
7572
+ --_ui-selection-context-surface: initial;
7573
+ --_ui-selection-context-border: initial;
7574
+ --_ui-selection-context-text: initial;
7513
7575
  padding: var(--ui-space-5);
7514
7576
  border: var(--ui-border-width) solid var(--ui-border-strong);
7515
7577
  border-radius: var(--ui-radius-lg);
7516
7578
  background: var(--ui-surface-raised);
7517
7579
  }
7518
- [data-component~="ui-section"][data-ui-section-state~="variant=divided"][data-v-efbbec43] {
7580
+ [data-component~="ui-section"][data-ui-section-state~="variant=divided"][data-v-93e8cb94] {
7519
7581
  padding-block-start: var(--ui-space-6);
7520
7582
  border-block-start: var(--ui-border-width) solid var(--ui-border-divider);
7521
7583
  }
7522
- [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-ui-section-state~="tone=danger"][data-v-efbbec43] {
7584
+ [data-component~="ui-section"][data-ui-section-state~="variant=card"][data-ui-section-state~="tone=danger"][data-v-93e8cb94] {
7585
+ --_ui-selection-context-surface: light-dark(
7586
+ oklch(from var(--ui-danger-soft) calc(l - 0.045) calc(max(c, min(0.045, c * 3))) h),
7587
+ oklch(from var(--ui-danger-soft) calc(l + 0.045) calc(max(c, min(0.045, c * 3))) h)
7588
+ );
7589
+ --_ui-selection-context-border: light-dark(
7590
+ oklch(from var(--ui-danger-soft) calc(l - 0.085) calc(max(c, min(0.045, c * 3))) h),
7591
+ oklch(from var(--ui-danger-soft) calc(l + 0.085) calc(max(c, min(0.045, c * 3))) h)
7592
+ );
7593
+ --_ui-selection-context-text: var(--ui-text-primary);
7523
7594
  border-color: color-mix(in srgb, var(--ui-danger) 45%, var(--ui-border-default));
7524
7595
  border-inline-start: var(--ui-accent-line-width) solid var(--ui-danger);
7525
7596
  background: var(--ui-danger-soft);
7526
7597
  }
7527
- .head[data-v-efbbec43] {
7598
+ .head[data-v-93e8cb94] {
7528
7599
  display: flex;
7529
7600
  flex-wrap: wrap;
7530
7601
  align-items: flex-start;
7531
7602
  justify-content: space-between;
7532
7603
  gap: var(--ui-space-2) var(--ui-space-4);
7533
7604
  }
7534
- .copy[data-v-efbbec43] {
7605
+ .copy[data-v-93e8cb94] {
7535
7606
  display: flex;
7536
7607
  flex: 1 1 16rem;
7537
7608
  flex-direction: column;
7538
7609
  gap: var(--ui-space-1);
7539
7610
  min-inline-size: 0;
7540
7611
  }
7541
- .heading[data-v-efbbec43] {
7612
+ .heading[data-v-93e8cb94] {
7542
7613
  margin: 0;
7543
7614
  color: var(--ui-text-primary);
7544
7615
  font-size: var(--ui-font-size-lg);
7545
7616
  font-weight: var(--ui-font-semibold);
7546
7617
  line-height: var(--ui-line-height-tight);
7547
7618
  }
7548
- [data-component~="ui-section"][data-ui-section-state~="tone=danger"] .heading[data-v-efbbec43] {
7619
+ [data-component~="ui-section"][data-ui-section-state~="tone=danger"] .heading[data-v-93e8cb94] {
7549
7620
  color: var(--ui-danger);
7550
7621
  }
7551
- .description[data-v-efbbec43] {
7622
+ .description[data-v-93e8cb94] {
7552
7623
  color: var(--ui-text-secondary);
7553
7624
  font-size: var(--ui-font-size-sm);
7554
7625
  line-height: var(--ui-line-height);
7555
7626
  }
7556
- .actions[data-v-efbbec43] {
7627
+ .actions[data-v-93e8cb94] {
7557
7628
  display: inline-flex;
7558
7629
  flex-wrap: wrap;
7559
7630
  gap: var(--ui-space-2);
7560
7631
  }
7561
- .body[data-v-efbbec43] {
7632
+ .body[data-v-93e8cb94] {
7562
7633
  display: flex;
7563
7634
  flex-direction: column;
7564
7635
  gap: var(--ui-space-4);
7565
7636
  min-inline-size: 0;
7566
7637
  }
7567
- .description[data-v-efbbec43]:empty,
7568
- .actions[data-v-efbbec43]:empty {
7638
+ .description[data-v-93e8cb94]:empty,
7639
+ .actions[data-v-93e8cb94]:empty {
7569
7640
  display: none;
7570
7641
  }
7571
- .head[data-v-efbbec43]:has(.heading[hidden]):has(.description:empty):has(.actions:empty) {
7642
+ .head[data-v-93e8cb94]:has(.heading[hidden]):has(.description:empty):has(.actions:empty) {
7572
7643
  display: none;
7573
7644
  }
7574
7645
 
7575
7646
  /* A component that sets its display still honours the hidden attribute on its root. */
7576
- [data-component~="ui-section"][hidden][data-v-efbbec43] {
7647
+ [data-component~="ui-section"][hidden][data-v-93e8cb94] {
7577
7648
  display: none;
7578
7649
  }
7579
7650
 
@@ -9319,7 +9390,7 @@ to {
9319
9390
  syntax: "*";
9320
9391
  inherits: false;
9321
9392
  }
9322
- [data-component~="ui-tree-item"][data-v-b69b9249] {
9393
+ [data-component~="ui-tree-item"][data-v-8f2cc947] {
9323
9394
  /* Hooks do not inherit, so the parts below read them from the root. The tree's density
9324
9395
  sets the defaults, in --_ui-default-*. */
9325
9396
  --_ui-tree-item-min-block-size: var(
@@ -9341,7 +9412,7 @@ to {
9341
9412
  min-inline-size: 0;
9342
9413
  margin-inline-start: calc(var(--_ui-tree-item-indent-step, 0) * var(--_ui-tree-indent, 16px));
9343
9414
  }
9344
- .row[data-v-b69b9249] {
9415
+ .row[data-v-8f2cc947] {
9345
9416
  position: relative;
9346
9417
  display: grid;
9347
9418
  grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr);
@@ -9358,57 +9429,59 @@ to {
9358
9429
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
9359
9430
  min-block-size var(--ui-motion-base) var(--ui-motion-ease);
9360
9431
  }
9361
- .row[data-v-b69b9249]:hover,
9362
- .row[data-v-b69b9249]:focus-within {
9432
+ .row[data-v-8f2cc947]:hover,
9433
+ .row[data-v-8f2cc947]:focus-within {
9363
9434
  color: var(--ui-text-primary);
9364
- background: var(--ui-surface-muted);
9365
- box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-border);
9435
+ background: var(--_ui-selection-context-surface, var(--ui-surface-muted));
9436
+ box-shadow: inset 0 0 0 var(--ui-border-width)
9437
+ var(--_ui-selection-context-border, var(--ui-selection-border));
9366
9438
  }
9367
9439
 
9368
9440
  /* Selection is the same surface recipe as destination and choice rows. */
9369
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-b69b9249] {
9370
- color: var(--ui-selection-text);
9371
- background: var(--ui-selection-surface);
9372
- box-shadow: inset 0 0 0 var(--ui-border-width) var(--ui-selection-border);
9441
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] > .row[data-v-8f2cc947] {
9442
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
9443
+ background: var(--_ui-selection-context-surface, var(--ui-selection-surface));
9444
+ box-shadow: inset 0 0 0 var(--ui-border-width)
9445
+ var(--_ui-selection-context-border, var(--ui-selection-border));
9373
9446
  }
9374
9447
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not([aria-disabled="true"])
9375
9448
  > .row
9376
- > .leading[data-v-b69b9249] {
9377
- color: var(--ui-selection-text);
9449
+ > .leading[data-v-8f2cc947] {
9450
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
9378
9451
  }
9379
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-b69b9249] {
9452
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-8f2cc947] {
9380
9453
  color: var(--ui-disabled-text);
9381
9454
  background: var(--ui-disabled-surface);
9382
9455
  box-shadow: none;
9383
9456
  }
9384
- [data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-b69b9249] {
9457
+ [data-component~="ui-tree-item"][data-dragging]:not([data-move-source]) .row[data-v-8f2cc947] {
9385
9458
  opacity: 0.42;
9386
9459
  }
9387
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-b69b9249],
9388
- [data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-b69b9249] {
9460
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-8f2cc947],
9461
+ [data-component~="ui-tree-item"][data-move-source] > .row > .leading[data-v-8f2cc947] {
9389
9462
  opacity: 0.42;
9390
9463
  }
9391
- [data-component~="ui-tree-item"][data-v-b69b9249]:focus {
9464
+ [data-component~="ui-tree-item"][data-v-8f2cc947]:focus {
9392
9465
  outline: none;
9393
9466
  }
9394
- [data-component~="ui-tree-item"]:focus-visible .row[data-v-b69b9249] {
9467
+ [data-component~="ui-tree-item"]:focus-visible .row[data-v-8f2cc947] {
9395
9468
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
9396
9469
  }
9397
9470
 
9398
9471
  /* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
9399
- [data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-b69b9249] {
9472
+ [data-component~="ui-tree-item"][data-drop-position="inside"] > .row[data-v-8f2cc947] {
9400
9473
  background: var(--ui-accent-subtle);
9401
9474
  box-shadow: inset 0 0 0 var(--ui-accent-line-width)
9402
9475
  var(--_ui-tree-drop-color, var(--ui-accent-solid));
9403
9476
  }
9404
- .disclosure[data-v-b69b9249],
9405
- .disclosure-spacer[data-v-b69b9249] {
9477
+ .disclosure[data-v-8f2cc947],
9478
+ .disclosure-spacer[data-v-8f2cc947] {
9406
9479
  grid-column: 1;
9407
9480
  grid-row: 1;
9408
9481
  inline-size: var(--_tree-disclosure-size);
9409
9482
  block-size: 28px;
9410
9483
  }
9411
- .disclosure[data-v-b69b9249] {
9484
+ .disclosure[data-v-8f2cc947] {
9412
9485
  display: grid;
9413
9486
  /* Start-aligned: the chevron's ink, not its hit area, aligns with the content above it. */
9414
9487
  place-items: center start;
@@ -9419,10 +9492,10 @@ to {
9419
9492
  border-radius: var(--ui-radius-sm);
9420
9493
  cursor: pointer;
9421
9494
  }
9422
- .disclosure[hidden][data-v-b69b9249] {
9495
+ .disclosure[hidden][data-v-8f2cc947] {
9423
9496
  display: none;
9424
9497
  }
9425
- .selection-hit[data-v-b69b9249] {
9498
+ .selection-hit[data-v-8f2cc947] {
9426
9499
  display: none;
9427
9500
  grid-column: 2;
9428
9501
  grid-row: 1;
@@ -9431,29 +9504,29 @@ to {
9431
9504
  block-size: var(--_ui-tree-item-min-block-size, var(--_tree-row-min-height));
9432
9505
  cursor: pointer;
9433
9506
  }
9434
- .selection-checkbox[data-v-b69b9249] {
9507
+ .selection-checkbox[data-v-8f2cc947] {
9435
9508
  inline-size: 1rem;
9436
9509
  block-size: 1rem;
9437
9510
  margin: 0;
9438
9511
  accent-color: var(--ui-accent-solid);
9439
9512
  }
9440
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-b69b9249] {
9513
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-8f2cc947] {
9441
9514
  grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr);
9442
9515
  }
9443
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-b69b9249] {
9516
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .selection-hit[data-v-8f2cc947] {
9444
9517
  display: grid;
9445
9518
  }
9446
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-b69b9249] {
9519
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .leading[data-v-8f2cc947] {
9447
9520
  grid-column: 3;
9448
9521
  }
9449
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-b69b9249] {
9522
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .label[data-v-8f2cc947] {
9450
9523
  grid-column: 4;
9451
9524
  }
9452
- .disclosure[data-v-b69b9249]:hover {
9525
+ .disclosure[data-v-8f2cc947]:hover {
9453
9526
  color: var(--ui-text-primary);
9454
9527
  background: var(--ui-surface-elevated);
9455
9528
  }
9456
- .disclosure-icon[data-v-b69b9249] {
9529
+ .disclosure-icon[data-v-8f2cc947] {
9457
9530
  display: grid;
9458
9531
  place-items: center;
9459
9532
  inline-size: 12px;
@@ -9461,7 +9534,7 @@ to {
9461
9534
  transform: rotate(-90deg);
9462
9535
  transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
9463
9536
  }
9464
- .disclosure-icon[data-v-b69b9249]::before {
9537
+ .disclosure-icon[data-v-8f2cc947]::before {
9465
9538
  display: block;
9466
9539
  inline-size: 0.375rem;
9467
9540
  block-size: 0.375rem;
@@ -9471,19 +9544,19 @@ to {
9471
9544
  /* A chevron's ink sits below its box centre; lift it so it centres optically (in either rotation). */
9472
9545
  transform: translateY(-20%) rotate(45deg);
9473
9546
  }
9474
- [data-component~="ui-tree-item"][aria-expanded="true"] > .row > .disclosure > .disclosure-icon[data-v-b69b9249] {
9547
+ [data-component~="ui-tree-item"][aria-expanded="true"] > .row > .disclosure > .disclosure-icon[data-v-8f2cc947] {
9475
9548
  transform: rotate(0deg);
9476
9549
  }
9477
9550
 
9478
9551
  /* Lucide grip-vertical, filling the handle as in Looma 0.2. */
9479
- .drag-handle svg[data-v-b69b9249] {
9552
+ .drag-handle svg[data-v-8f2cc947] {
9480
9553
  display: block;
9481
9554
  inline-size: 100%;
9482
9555
  block-size: 100%;
9483
9556
  }
9484
9557
 
9485
9558
  /* Slotted content is outside this scope, so :has() cannot see it; hide only a truly empty slot. */
9486
- .leading[data-v-b69b9249] {
9559
+ .leading[data-v-8f2cc947] {
9487
9560
  display: inline-grid;
9488
9561
  place-items: center;
9489
9562
  grid-column: 2;
@@ -9496,12 +9569,12 @@ to {
9496
9569
  position: relative;
9497
9570
  z-index: 1;
9498
9571
  }
9499
- .leading[data-v-b69b9249]:empty {
9572
+ .leading[data-v-8f2cc947]:empty {
9500
9573
  display: none;
9501
9574
  }
9502
9575
 
9503
9576
  /* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
9504
- svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9577
+ svg[data-v-8f2cc947-s],img[data-v-8f2cc947-s] {
9505
9578
  display: block;
9506
9579
  inline-size: 1em;
9507
9580
  block-size: 1em;
@@ -9510,7 +9583,7 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9510
9583
 
9511
9584
  /* The label spans the row's height and centres its content, so slotted content (a link) can
9512
9585
  stretch to fill the row as its own hit area; the padding tokens remove the inset. */
9513
- .label[data-v-b69b9249] {
9586
+ .label[data-v-8f2cc947] {
9514
9587
  grid-column: 3;
9515
9588
  grid-row: 1;
9516
9589
  align-self: stretch;
@@ -9528,7 +9601,7 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9528
9601
 
9529
9602
  /* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
9530
9603
  its own text and reading as overflow. */
9531
- .label-text[data-v-b69b9249] {
9604
+ .label-text[data-v-8f2cc947] {
9532
9605
  display: flex;
9533
9606
  align-items: center;
9534
9607
  /* Stretches, so slotted content can still be the row's full-height hit area. */
@@ -9538,17 +9611,17 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9538
9611
  inline-size: 100%;
9539
9612
  white-space: nowrap;
9540
9613
  }
9541
- .label-text > [data-v-b69b9249-s] {
9614
+ .label-text > [data-v-8f2cc947-s] {
9542
9615
  flex: 1 1 auto;
9543
9616
  min-inline-size: 0;
9544
9617
  }
9545
9618
 
9546
9619
  /* The controls sit over the label's end, so the text fades out where they begin. The fade is
9547
9620
  the truncation mark while it shows: an ellipsis under it would read as a second one. */
9548
- .row:hover > .label[data-v-b69b9249],
9549
- .row:focus-within > .label[data-v-b69b9249],
9550
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-b69b9249],
9551
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-b69b9249] {
9621
+ .row:hover > .label[data-v-8f2cc947],
9622
+ .row:focus-within > .label[data-v-8f2cc947],
9623
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-8f2cc947],
9624
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-8f2cc947] {
9552
9625
  text-overflow: clip;
9553
9626
  mask-image: linear-gradient(
9554
9627
  to right,
@@ -9556,12 +9629,12 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9556
9629
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9557
9630
  );
9558
9631
  }
9559
- .row:hover > .label[data-v-b69b9249]:dir(rtl),
9560
- .row:focus-within > .label[data-v-b69b9249]:dir(rtl),
9632
+ .row:hover > .label[data-v-8f2cc947]:dir(rtl),
9633
+ .row:focus-within > .label[data-v-8f2cc947]:dir(rtl),
9561
9634
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"]
9562
9635
  > .row
9563
- > .label[data-v-b69b9249]:dir(rtl),
9564
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-b69b9249]:dir(rtl) {
9636
+ > .label[data-v-8f2cc947]:dir(rtl),
9637
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-8f2cc947]:dir(rtl) {
9565
9638
  mask-image: linear-gradient(
9566
9639
  to left,
9567
9640
  #000 calc(100% - var(--_tree-actions-width, 1.75rem) - var(--ui-space-1)),
@@ -9573,10 +9646,10 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9573
9646
  there, and starts again. Only when it actually overflows — the controller measures by how
9574
9647
  much — after the controls have taken their place over its end — and hands over the distance
9575
9648
  and a duration from it, so every name moves at the same speed. */
9576
- .row[data-ui-marquee] > .label > .label-text[data-v-b69b9249] {
9649
+ .row[data-ui-marquee] > .label > .label-text[data-v-8f2cc947] {
9577
9650
  /* Once per pass: the controller restarts it after a rest at the end, so the name holds still
9578
9651
  long enough to read rather than sliding back and forth. */
9579
- animation: ui-tree-item-marquee-b69b9249 var(--_marquee-duration) linear 0.5s 1 normal forwards;
9652
+ animation: ui-tree-item-marquee-8f2cc947 var(--_marquee-duration) linear 0.5s 1 normal forwards;
9580
9653
  will-change: transform;
9581
9654
  }
9582
9655
 
@@ -9584,7 +9657,7 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9584
9657
  slides, the label reaches back under the icon (the controller measures how far) with its text
9585
9658
  where it was, and fades out across the gap before the icon, fully gone where the icon begins
9586
9659
  to cover it: the name slips under the icon rather than stopping at a hard edge beside it. */
9587
- .row[data-ui-marquee] > .label[data-v-b69b9249] {
9660
+ .row[data-ui-marquee] > .label[data-v-8f2cc947] {
9588
9661
  margin-inline-start: calc(-1 * var(--_marquee-lead, 0px));
9589
9662
  padding-inline-start: calc(
9590
9663
  var(--_marquee-lead, 0px) + var(--_ui-tree-item-label-padding-inline, var(--ui-space-2))
@@ -9599,7 +9672,7 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9599
9672
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9600
9673
  );
9601
9674
  }
9602
- .row[data-ui-marquee] > .label[data-v-b69b9249]:dir(rtl) {
9675
+ .row[data-ui-marquee] > .label[data-v-8f2cc947]:dir(rtl) {
9603
9676
  mask-image: linear-gradient(
9604
9677
  to left,
9605
9678
  transparent var(--_marquee-icon-width, 0px),
@@ -9610,7 +9683,7 @@ svg[data-v-b69b9249-s],img[data-v-b69b9249-s] {
9610
9683
  transparent calc(100% - var(--_tree-actions-width, 1.75rem))
9611
9684
  );
9612
9685
  }
9613
- @keyframes ui-tree-item-marquee-b69b9249 {
9686
+ @keyframes ui-tree-item-marquee-8f2cc947 {
9614
9687
  from {
9615
9688
  transform: translateX(0);
9616
9689
  }
@@ -9621,15 +9694,15 @@ to {
9621
9694
 
9622
9695
  /* Reduced motion keeps the fade, which already says the name continues. */
9623
9696
  @media (prefers-reduced-motion: reduce) {
9624
- .row[data-ui-marquee] > .label > .label-text[data-v-b69b9249] {
9697
+ .row[data-ui-marquee] > .label > .label-text[data-v-8f2cc947] {
9625
9698
  animation: none;
9626
9699
  }
9627
9700
  }
9628
- .row:hover > .label > [data-v-b69b9249-s],
9629
- .row:focus-within > .label > [data-v-b69b9249-s] {
9701
+ .row:hover > .label > [data-v-8f2cc947-s],
9702
+ .row:focus-within > .label > [data-v-8f2cc947-s] {
9630
9703
  text-overflow: clip;
9631
9704
  }
9632
- .actions[data-v-b69b9249] {
9705
+ .actions[data-v-8f2cc947] {
9633
9706
  position: absolute;
9634
9707
  z-index: 1;
9635
9708
  inset-block: 0;
@@ -9641,20 +9714,20 @@ to {
9641
9714
  pointer-events: none;
9642
9715
  transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
9643
9716
  }
9644
- .row:hover > .actions[data-v-b69b9249],
9645
- .row:focus-within > .actions[data-v-b69b9249],
9646
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .actions[data-v-b69b9249],
9647
- [data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-b69b9249] {
9717
+ .row:hover > .actions[data-v-8f2cc947],
9718
+ .row:focus-within > .actions[data-v-8f2cc947],
9719
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .actions[data-v-8f2cc947],
9720
+ [data-component~="ui-tree-item"][data-move-source] > .row > .actions[data-v-8f2cc947] {
9648
9721
  opacity: 1;
9649
9722
  pointer-events: auto;
9650
9723
  }
9651
9724
 
9652
9725
  /* Without hover there is no reveal, so the controls keep their own column. */
9653
9726
  @media (hover: none), (pointer: coarse) {
9654
- .row[data-v-b69b9249] {
9727
+ .row[data-v-8f2cc947] {
9655
9728
  grid-template-columns: var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
9656
9729
  }
9657
- .actions[data-v-b69b9249] {
9730
+ .actions[data-v-8f2cc947] {
9658
9731
  position: static;
9659
9732
  grid-column: 4;
9660
9733
  grid-row: 1;
@@ -9663,13 +9736,13 @@ to {
9663
9736
  opacity: 1;
9664
9737
  pointer-events: auto;
9665
9738
  }
9666
- .row:is(:hover, :focus-within) > .label[data-v-b69b9249],
9667
- .row:is(:hover, :focus-within) > .label[data-v-b69b9249]:dir(rtl),
9668
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-b69b9249],
9669
- [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-b69b9249]:dir(rtl) {
9739
+ .row:is(:hover, :focus-within) > .label[data-v-8f2cc947],
9740
+ .row:is(:hover, :focus-within) > .label[data-v-8f2cc947]:dir(rtl),
9741
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-8f2cc947],
9742
+ [data-component~="ui-tree-item"][data-move-source] > .row > .label[data-v-8f2cc947]:dir(rtl) {
9670
9743
  mask-image: none;
9671
9744
  }
9672
- .row[data-ui-marquee] > .label[data-v-b69b9249] {
9745
+ .row[data-ui-marquee] > .label[data-v-8f2cc947] {
9673
9746
  mask-image: linear-gradient(
9674
9747
  to right,
9675
9748
  transparent var(--_marquee-icon-width, 0px),
@@ -9680,15 +9753,15 @@ to {
9680
9753
  }
9681
9754
 
9682
9755
  /* Persistent content has its own column on touch. Fade only the label's end. */
9683
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-b69b9249] {
9756
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"] > .row > .label[data-v-8f2cc947] {
9684
9757
  mask-image: linear-gradient(to right, #000 calc(100% - var(--ui-space-1)), transparent 100%);
9685
9758
  }
9686
9759
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="actionsVisible"]
9687
9760
  > .row
9688
- > .label[data-v-b69b9249]:dir(rtl) {
9761
+ > .label[data-v-8f2cc947]:dir(rtl) {
9689
9762
  mask-image: linear-gradient(to left, #000 calc(100% - var(--ui-space-1)), transparent 100%);
9690
9763
  }
9691
- .row[data-ui-marquee] > .label[data-v-b69b9249]:dir(rtl) {
9764
+ .row[data-ui-marquee] > .label[data-v-8f2cc947]:dir(rtl) {
9692
9765
  mask-image: linear-gradient(
9693
9766
  to left,
9694
9767
  transparent var(--_marquee-icon-width, 0px),
@@ -9697,10 +9770,10 @@ to {
9697
9770
  )
9698
9771
  );
9699
9772
  }
9700
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-b69b9249] {
9773
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row[data-v-8f2cc947] {
9701
9774
  grid-template-columns: var(--_tree-disclosure-size) 1.25rem auto minmax(0, 1fr) auto;
9702
9775
  }
9703
- [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .actions[data-v-b69b9249] {
9776
+ [data-component~="ui-tree-item"][data-selection-mode="multiple"] > .row > .actions[data-v-8f2cc947] {
9704
9777
  grid-column: 5;
9705
9778
  }
9706
9779
  }
@@ -9709,7 +9782,7 @@ to {
9709
9782
  empty column, right before the icon; a branch's disclosure is there, so its handle sits just
9710
9783
  outside the row. It is bare until pointed at: a resting surface behind it read as a faint
9711
9784
  patch rather than as a control. */
9712
- .drag-handle[data-v-b69b9249] {
9785
+ .drag-handle[data-v-8f2cc947] {
9713
9786
  position: absolute;
9714
9787
  z-index: 2;
9715
9788
  inset-block-start: 50%;
@@ -9730,24 +9803,24 @@ to {
9730
9803
  transform: translateY(-50%);
9731
9804
  transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
9732
9805
  }
9733
- .row:hover .drag-handle[data-v-b69b9249],
9734
- .drag-handle[data-v-b69b9249]:hover,
9735
- .drag-handle[data-v-b69b9249]:focus-visible,
9736
- [data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-b69b9249] {
9806
+ .row:hover .drag-handle[data-v-8f2cc947],
9807
+ .drag-handle[data-v-8f2cc947]:hover,
9808
+ .drag-handle[data-v-8f2cc947]:focus-visible,
9809
+ [data-component~="ui-tree-item"][data-dragging] > .row > .drag-handle[data-v-8f2cc947] {
9737
9810
  opacity: 1;
9738
9811
  }
9739
- [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-b69b9249] {
9812
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"] > .row > .drag-handle[data-v-8f2cc947] {
9740
9813
  inset-inline-start: calc(-1 * var(--_tree-disclosure-size) - 2px);
9741
9814
  }
9742
- .drag-handle[data-v-b69b9249]:hover,
9743
- .drag-handle[data-v-b69b9249]:focus-visible {
9815
+ .drag-handle[data-v-8f2cc947]:hover,
9816
+ .drag-handle[data-v-8f2cc947]:focus-visible {
9744
9817
  color: var(--ui-text-primary);
9745
9818
  background: var(--ui-surface-hover);
9746
9819
  }
9747
- .drag-handle[data-v-b69b9249]:active {
9820
+ .drag-handle[data-v-8f2cc947]:active {
9748
9821
  cursor: grabbing;
9749
9822
  }
9750
- .drop-indicator[data-v-b69b9249] {
9823
+ .drop-indicator[data-v-8f2cc947] {
9751
9824
  position: absolute;
9752
9825
  z-index: 3;
9753
9826
  inset-inline: 1px;
@@ -9757,8 +9830,8 @@ to {
9757
9830
  background: var(--_ui-tree-drop-color, var(--ui-accent-solid));
9758
9831
  pointer-events: none;
9759
9832
  }
9760
- .drop-indicator[data-v-b69b9249]::before,
9761
- .drop-indicator[data-v-b69b9249]::after {
9833
+ .drop-indicator[data-v-8f2cc947]::before,
9834
+ .drop-indicator[data-v-8f2cc947]::after {
9762
9835
  content: "";
9763
9836
  position: absolute;
9764
9837
  inset-block-start: 50%;
@@ -9769,34 +9842,34 @@ to {
9769
9842
  background: var(--ui-surface-elevated);
9770
9843
  transform: translateY(-50%);
9771
9844
  }
9772
- .drop-indicator[data-v-b69b9249]::before {
9845
+ .drop-indicator[data-v-8f2cc947]::before {
9773
9846
  inset-inline-start: -1px;
9774
9847
  }
9775
- .drop-indicator[data-v-b69b9249]::after {
9848
+ .drop-indicator[data-v-8f2cc947]::after {
9776
9849
  inset-inline-end: -1px;
9777
9850
  }
9778
- [data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-b69b9249] {
9851
+ [data-component~="ui-tree-item"][data-drop-position="before"] > .row > .row-drop-indicator[data-v-8f2cc947] {
9779
9852
  display: block;
9780
9853
  inset-block-start: calc(-0.5 * var(--ui-accent-line-width));
9781
9854
  }
9782
- [data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-b69b9249] {
9855
+ [data-component~="ui-tree-item"][data-drop-position="after"] > .subtree-drop-indicator[data-v-8f2cc947] {
9783
9856
  display: block;
9784
9857
  inset-block-end: calc(-0.5 * var(--ui-accent-line-width));
9785
9858
  }
9786
- .children[hidden][data-v-b69b9249] {
9859
+ .children[hidden][data-v-8f2cc947] {
9787
9860
  display: none;
9788
9861
  }
9789
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-b69b9249] {
9862
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-8f2cc947] {
9790
9863
  --_tree-row-min-height: 44px;
9791
9864
  }
9792
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-b69b9249] {
9865
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-8f2cc947] {
9793
9866
  grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr);
9794
9867
  }
9795
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-b69b9249],
9868
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-8f2cc947],
9796
9869
  html[data-ui-input-modality="touch"]
9797
9870
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="isContainer"]
9798
9871
  > .row
9799
- > .drag-handle[data-v-b69b9249] {
9872
+ > .drag-handle[data-v-8f2cc947] {
9800
9873
  position: relative;
9801
9874
  grid-column: 1;
9802
9875
  grid-row: 1;
@@ -9808,24 +9881,24 @@ html[data-ui-input-modality="touch"]
9808
9881
  transform: none;
9809
9882
  cursor: pointer;
9810
9883
  }
9811
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-b69b9249] {
9884
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .disclosure[data-v-8f2cc947] {
9812
9885
  grid-column: 2;
9813
9886
  }
9814
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-b69b9249] {
9887
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .leading[data-v-8f2cc947] {
9815
9888
  grid-column: 3;
9816
9889
  }
9817
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-b69b9249] {
9890
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .label[data-v-8f2cc947] {
9818
9891
  grid-column: 4;
9819
9892
  }
9820
9893
  html[data-ui-input-modality="touch"]
9821
9894
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9822
- > .row[data-v-b69b9249] {
9895
+ > .row[data-v-8f2cc947] {
9823
9896
  grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr);
9824
9897
  }
9825
9898
  html[data-ui-input-modality="touch"]
9826
9899
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9827
9900
  > .row
9828
- > .selection-hit[data-v-b69b9249] {
9901
+ > .selection-hit[data-v-8f2cc947] {
9829
9902
  grid-column: 3;
9830
9903
  inline-size: 44px;
9831
9904
  block-size: 44px;
@@ -9833,57 +9906,93 @@ html[data-ui-input-modality="touch"]
9833
9906
  html[data-ui-input-modality="touch"]
9834
9907
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9835
9908
  > .row
9836
- > .leading[data-v-b69b9249] {
9909
+ > .leading[data-v-8f2cc947] {
9837
9910
  grid-column: 4;
9838
9911
  }
9839
9912
  html[data-ui-input-modality="touch"]
9840
9913
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9841
9914
  > .row
9842
- > .label[data-v-b69b9249] {
9915
+ > .label[data-v-8f2cc947] {
9843
9916
  grid-column: 5;
9844
9917
  }
9845
9918
  @media (hover: none), (pointer: coarse) {
9846
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-b69b9249] {
9919
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .row[data-v-8f2cc947] {
9847
9920
  grid-template-columns: 44px var(--_tree-disclosure-size) auto minmax(0, 1fr) auto;
9848
9921
  }
9849
- html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .actions[data-v-b69b9249] {
9922
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .actions[data-v-8f2cc947] {
9850
9923
  grid-column: 5;
9851
9924
  }
9852
9925
  html[data-ui-input-modality="touch"]
9853
9926
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9854
- > .row[data-v-b69b9249] {
9927
+ > .row[data-v-8f2cc947] {
9855
9928
  grid-template-columns: 44px var(--_tree-disclosure-size) 44px auto minmax(0, 1fr) auto;
9856
9929
  }
9857
9930
  html[data-ui-input-modality="touch"]
9858
9931
  [data-component~="ui-tree-item"][data-selection-mode="multiple"]
9859
9932
  > .row
9860
- > .actions[data-v-b69b9249] {
9933
+ > .actions[data-v-8f2cc947] {
9861
9934
  grid-column: 6;
9862
9935
  }
9863
9936
  }
9864
9937
  @media (prefers-reduced-motion: reduce) {
9865
- .row[data-v-b69b9249],
9866
- .disclosure-icon[data-v-b69b9249],
9867
- .drag-handle[data-v-b69b9249] {
9938
+ .row[data-v-8f2cc947],
9939
+ .disclosure-icon[data-v-8f2cc947],
9940
+ .drag-handle[data-v-8f2cc947] {
9868
9941
  transition: none;
9869
9942
  }
9870
9943
  }
9871
9944
  @media (forced-colors: active) {
9872
- [data-component~="ui-tree-item"]:focus-visible > .row[data-v-b69b9249] {
9945
+ [data-component~="ui-tree-item"]:focus-visible > .row[data-v-8f2cc947] {
9873
9946
  outline: var(--ui-focus-width) solid Highlight;
9874
9947
  outline-offset: calc(-1 * var(--ui-focus-width));
9875
9948
  }
9876
9949
  [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"]:not(:focus-visible):not([aria-disabled="true"])
9877
- > .row[data-v-b69b9249] {
9950
+ > .row[data-v-8f2cc947] {
9878
9951
  outline: var(--ui-border-width) solid Highlight;
9879
9952
  outline-offset: calc(-1 * var(--ui-border-width));
9880
9953
  }
9881
9954
  }
9882
9955
 
9883
9956
  /* A component that sets its display still honours the hidden attribute on its root. */
9884
- [data-component~="ui-tree-item"][hidden][data-v-b69b9249] {
9957
+ [data-component~="ui-tree-item"][hidden][data-v-8f2cc947] {
9885
9958
  display: none;
9886
9959
  }
9960
+ /* Short-form field primitive: the same field tokens as Textarea. */
9961
+ .looma-compact-editor {
9962
+ min-inline-size: 0;
9963
+ border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
9964
+ border-radius: var(--ui-field-radius, var(--ui-radius-md));
9965
+ background: var(--ui-control-surface, var(--ui-surface-elevated));
9966
+ color: var(--ui-text-primary);
9967
+ box-shadow: var(--ui-control-inset);
9968
+ }
9969
+ .looma-compact-editor:focus-within {
9970
+ outline: var(--ui-focus-ring-width, 2px) solid var(--ui-focus-ring, var(--ui-accent-solid));
9971
+ outline-offset: var(--ui-focus-ring-offset, 2px);
9972
+ }
9973
+ .looma-compact-editor .ProseMirror {
9974
+ min-block-size: calc(3 * 1.5em);
9975
+ max-block-size: 12em;
9976
+ overflow-y: auto;
9977
+ padding: var(--ui-space-2) var(--ui-space-3);
9978
+ outline: none;
9979
+ }
9980
+ .looma-compact-editor, .looma-compact-content {
9981
+ font-size: var(--ui-font-size-sm);
9982
+ font-weight: var(--ui-font-normal, 400);
9983
+ line-height: var(--ui-line-height-md);
9984
+ overflow-wrap: anywhere;
9985
+ }
9986
+ .looma-compact-editor p, .looma-compact-content p { margin: 0; }
9987
+ .looma-compact-editor p + p, .looma-compact-content p + p { margin-block-start: var(--ui-space-2); }
9988
+ .looma-compact-editor strong, .looma-compact-content strong { font-weight: var(--ui-font-bold); }
9989
+ .looma-compact-editor code, .looma-compact-content code {
9990
+ font-family: var(--ui-font-mono);
9991
+ padding-inline: var(--ui-space-1);
9992
+ border-radius: var(--ui-radius-sm);
9993
+ background: var(--ui-surface-muted);
9994
+ }
9995
+ @media (pointer: coarse) { .looma-compact-editor { font-size: var(--ui-font-size-md); } }
9887
9996
  /* The editor surface owns its renderer canvas. Existing hooks retain their defaults. */
9888
9997
  [data-component~="ui-editor-surface"] .ProseMirror {
9889
9998
  min-height: var(--ui-editor-content-min-height, var(--_ui-editor-content-min-height, 300px));