mnfst 0.5.146 → 0.5.148

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.
package/lib/manifest.css CHANGED
@@ -1473,123 +1473,171 @@
1473
1473
  color: var(--color-field-inverse, oklch(43.9% 0 0));
1474
1474
  background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1475
1475
  border-radius: var(--radius, 0.5rem);
1476
- transition: var(--transition, all .05s ease-in-out);
1476
+ transition: var(--transition);
1477
1477
  cursor: text;
1478
1478
 
1479
- &:hover {
1479
+ &:hover:has(> :where(input:not([type=hidden]), textarea, button):not([hidden])) {
1480
1480
  background-color: var(--color-field-surface-hover, color-mix(in oklch, oklch(20.5% 0 0) 15%, transparent))
1481
1481
  }
1482
1482
 
1483
+ &:not(:has(> :where(input:not([type=hidden]), textarea, button):not([hidden]))) {
1484
+ cursor: default
1485
+ }
1486
+
1483
1487
  &:focus-within {
1484
1488
  background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent));
1485
1489
  box-shadow: 0 0 0 2px color-mix(in oklch, var(--color-content-stark, oklch(43.9% 0 0)) 30%, transparent)
1486
1490
  }
1487
1491
 
1488
- &.is-disabled {
1489
- opacity: .6;
1490
- pointer-events: none
1492
+ &:has(.combobox-chip) {
1493
+ padding-inline: calc(var(--spacing, 0.25rem) * 1.25)
1491
1494
  }
1492
- }
1493
1495
 
1494
- /* Inner typing surface — transparent, grows with content */
1495
- :where(.combobox-editor):not(.unstyle) {
1496
- flex: 1 1 4rem;
1497
- width: auto;
1498
- min-width: 4rem;
1499
- height: auto;
1500
- margin: 0;
1501
- padding: 0;
1502
- color: inherit;
1503
- background: transparent;
1504
- field-sizing: content;
1496
+ &:has(> :where(input, textarea):disabled) {
1497
+ opacity: .5;
1498
+ pointer-events: none
1499
+ }
1505
1500
 
1506
- &:hover,
1507
- &:focus-visible {
1501
+ /* Inner typing surface. The :not(.unstyle) lifts specificity above
1502
+ manifest.input.css, which sorts after this file in the bundled CSS and
1503
+ would otherwise re-apply its own width/background/hover to the editor. */
1504
+ &> :where(input:not([type=hidden]), textarea):not(.unstyle) {
1505
+ flex: 1 0 auto;
1506
+ width: auto;
1507
+ min-width: 7rem;
1508
+ height: auto;
1509
+ margin: 0;
1510
+ padding: 0;
1511
+ color: inherit;
1508
1512
  background: transparent;
1509
- box-shadow: none
1513
+ field-sizing: content;
1514
+
1515
+ &:hover,
1516
+ &:focus-visible {
1517
+ background: transparent;
1518
+ box-shadow: none
1519
+ }
1510
1520
  }
1511
- }
1512
1521
 
1513
- /* Textarea editor — vertical auto-grow, full-width line */
1514
- :where(textarea.combobox-editor):not(.unstyle) {
1515
- flex-basis: 100%;
1516
- resize: none
1522
+ &>textarea {
1523
+ resize: none
1524
+ }
1517
1525
  }
1518
1526
 
1519
1527
  /* Chips */
1520
1528
  :where(.combobox-chip):not(.unstyle) {
1521
1529
  display: inline-flex;
1522
1530
  align-items: center;
1523
- gap: calc(var(--spacing, 0.25rem) * 1.5);
1531
+ gap: var(--spacing, 0.25rem);
1524
1532
  max-width: 100%;
1525
1533
  height: calc(var(--spacing-field-height, 2.25rem) - var(--spacing, 0.25rem) * 2.5);
1526
- padding-inline: calc(var(--spacing, 0.25rem) * 2);
1534
+ padding-inline-start: calc(var(--spacing, 0.25rem) * 2);
1527
1535
  font-size: 0.875rem;
1528
1536
  color: var(--color-content-stark, oklch(43.9% 0 0));
1529
- background-color: var(--color-surface-2, var(--color-field-surface-hover));
1537
+ background-color: var(--color-popover-surface, oklch(100% 0 0));
1530
1538
  border-radius: calc(var(--radius, 0.5rem) * 0.7);
1531
- user-select: none
1532
- }
1533
-
1534
- :where(.combobox-chip-label):not(.unstyle) {
1535
1539
  overflow: hidden;
1536
- text-overflow: ellipsis;
1537
- white-space: nowrap
1540
+ user-select: none;
1541
+
1542
+ /* Label */
1543
+ &>span {
1544
+ overflow: hidden;
1545
+ text-overflow: ellipsis;
1546
+ white-space: nowrap
1547
+ }
1548
+
1549
+ /* Remove button */
1550
+ &>button {
1551
+ display: inline-flex;
1552
+ align-items: center;
1553
+ justify-content: center;
1554
+ min-width: 0;
1555
+ height: 100%;
1556
+ aspect-ratio: 1 / 1;
1557
+ padding: 0;
1558
+ font-size: 1em;
1559
+ line-height: 1;
1560
+ color: var(--color-content-neutral, oklch(43.9% 0 0));
1561
+ background: transparent;
1562
+ border-radius: 0;
1563
+ cursor: pointer;
1564
+
1565
+ &:hover {
1566
+ color: var(--color-content-stark, oklch(43.9% 0 0));
1567
+ background: color-mix(in oklch, var(--color-content-stark, oklch(43.9% 0 0)) 12%, transparent)
1568
+ }
1569
+ }
1570
+
1571
+ /* Failed validation */
1572
+ &[aria-invalid="true"] {
1573
+ color: var(--color-negative-inverse, oklch(44.4% 0.177 26.899));
1574
+ background-color: var(--color-negative-surface, oklch(80.8% 0.114 19.571))
1575
+ }
1538
1576
  }
1539
1577
 
1540
- :where(.combobox-chip-remove):not(.unstyle) {
1541
- display: inline-flex;
1542
- align-items: center;
1543
- justify-content: center;
1544
- width: 1.15em;
1545
- height: 1.15em;
1578
+ /* Trigger (editor:none button mode) — transparent; the shell is the field.
1579
+ Fills the row like the input editor, with a select-style caret. */
1580
+ :where(.combobox) > button:not(.unstyle) {
1581
+ flex: 1 1 auto;
1582
+ align-self: stretch;
1583
+ min-width: 7rem;
1584
+ justify-content: flex-start;
1585
+ gap: var(--spacing, 0.25rem);
1586
+ height: auto;
1587
+ min-height: calc(var(--spacing-field-height, 2.25rem) - var(--spacing, 0.25rem) * 2.5);
1546
1588
  padding: 0;
1547
- font-size: 1em;
1548
- line-height: 1;
1549
- color: var(--color-content-neutral, oklch(43.9% 0 0));
1589
+ color: inherit;
1550
1590
  background: transparent;
1551
- border-radius: 50%;
1552
1591
  cursor: pointer;
1553
1592
 
1554
1593
  &:hover {
1555
- color: var(--color-content-stark, oklch(43.9% 0 0));
1556
- background: color-mix(in oklch, var(--color-content-stark, oklch(43.9% 0 0)) 12%, transparent)
1594
+ background: transparent
1557
1595
  }
1558
- }
1559
1596
 
1560
- /* Invalid chip (failed validation) */
1561
- :where(.combobox-chip.is-invalid):not(.unstyle) {
1562
- color: var(--color-red-700, crimson);
1563
- background-color: color-mix(in oklch, crimson 15%, transparent)
1597
+ /* Caret */
1598
+ &::after {
1599
+ content: '';
1600
+ flex: none;
1601
+ width: 1em;
1602
+ height: 1em;
1603
+ margin-inline-start: auto;
1604
+ background-color: var(--color-content-subtle, oklch(55.6% 0 0));
1605
+ mask: var(--icon-chevron-down, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9 6 6 6-6'/%3E%3C/svg%3E")) center / contain no-repeat
1606
+ }
1564
1607
  }
1565
1608
 
1566
- /* Trigger (editor:none button mode)reuses field look */
1567
- :where(.combobox-trigger):not(.unstyle) {
1568
- justify-content: space-between;
1569
- gap: var(--spacing, 0.25rem)
1609
+ /* Button-only field (no chips): the button IS the field it fills the whole
1610
+ wrapper and carries the padding, so the entire area is the click target. */
1611
+ :where(.combobox):has(> button:not(.unstyle)):not(:has(.combobox-chip)) {
1612
+ padding: 0;
1613
+
1614
+ &>button:not(.unstyle) {
1615
+ min-height: var(--spacing-field-height, 2.25rem);
1616
+ padding: calc(var(--spacing, 0.25rem) * 1.25) var(--spacing-field-padding, 0.625rem)
1617
+ }
1570
1618
  }
1571
1619
 
1572
1620
  /* Listbox — base look comes from menu[popover]; these are combobox-only extras */
1573
- :where(.combobox-menu):not(.unstyle) {
1621
+ :where(menu[role=listbox]):not(.unstyle) {
1574
1622
 
1575
- /* Active descendant mirrors hover */
1576
- & :where(li.is-active) {
1623
+ /* Active descendant (mirrors hover) */
1624
+ & :where([role=option][aria-current="true"]) {
1577
1625
  color: var(--color-field-inverse, oklch(43.9% 0 0));
1578
1626
  background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
1579
1627
  }
1580
1628
 
1581
1629
  /* Filtered out */
1582
- & :where(li[hidden]) {
1630
+ & :where([role=option][hidden]) {
1583
1631
  display: none
1584
1632
  }
1585
1633
 
1586
1634
  /* Selected (multiple) */
1587
- & :where(li[aria-selected="true"]) {
1635
+ & :where([role=option][aria-selected="true"]) {
1588
1636
  font-weight: 600
1589
1637
  }
1590
1638
 
1591
1639
  /* "Add …" create row */
1592
- & :where(li.combobox-create) {
1640
+ & :where(.combobox-create) {
1593
1641
  color: var(--color-content-neutral, oklch(43.9% 0 0))
1594
1642
  }
1595
1643
 
@@ -1606,7 +1654,7 @@
1606
1654
  }
1607
1655
 
1608
1656
  /* Screen-reader-only live region */
1609
- :where(.combobox-live):not(.unstyle) {
1657
+ :where(.combobox)> :where([role=status]) {
1610
1658
  position: absolute;
1611
1659
  width: 1px;
1612
1660
  height: 1px;
@@ -6,6 +6,7 @@
6
6
  "manifest.code.js": "sha384-nP6DncLx/UuJtloyVKMCOXwIBAq32DshTb/Lc0vVRBWX7kSbxiBnY5aEyqqvK8Kg",
7
7
  "manifest.color.js": "sha384-6Rv3LxyTcZNjrhtayQfqRdCx0uSZ4BiEbgEI98I62eTvp8Aw7LBIoNJ0Je1oktwL",
8
8
  "manifest.colorpicker.js": "sha384-Wqz0ZIbeIi7KarqqqSLsQk+7E/fMaKhb32hrq5/eWzX1yjqMrpPZKH8y+jZ3mfg+",
9
+ "manifest.combobox.js": "sha384-AEEtOVCcoGgCyKPbZSzKtRhz8G4VbE8BD5LC/urGqzxjMXNP9NrExeWrENXHCLsg",
9
10
  "manifest.components.js": "sha384-mzPFoM0vqL9dnTVLMN3OrmO+KCgSqGknM1fd7bM1xzYeCco5OaZi56IMR5RS5oad",
10
11
  "manifest.data.js": "sha384-bCYTYyAYNVkg5pSwGcoe07Dgf5B7JDN7GtOIQdS+BtrBStQwvjZtskiQ38Bncvrf",
11
12
  "manifest.datepicker.js": "sha384-NEb/H4vuR3CFtRcodHsm3jJjrcYW2JMpDlQKlgwTrzpMMTcDkFKYXzAYJD0gZ7Ov",
@@ -27,5 +28,5 @@
27
28
  "manifest.url.parameters.js": "sha384-FIufiClqDx1rJpU/QUc9z/D43qClQ6Qm8rBahipbJl9BDHUvhrOsUDegmTWW7Tuf",
28
29
  "manifest.utilities.js": "sha384-HWyVkjQoDRlWFKDBQw4RQOYODkBcU72NHW6l1p4bhQv1RtN0/XtnjwIb+lQK6+zv",
29
30
  "manifest.virtual.js": "sha384-J2+MpRskVH39R2DmHUib2bItuGsvSLEhPM+83iznrdfQFMZ63Ea6xwLeCsG04jOl",
30
- "manifest.js": "sha384-gt/s7g3VPNs5TkVUIsvS/t+iDfyl3+DUnkKvc/tUY1bxgHnNEsuuEweXW8A9bLBw"
31
+ "manifest.js": "sha384-IsNGBIHGuUF5ABO58nkkZJQq1Ilt0wIsz+X2qR5hx4cGEhZez7GCmB8rAowJmrHS"
31
32
  }
package/lib/manifest.js CHANGED
@@ -235,6 +235,7 @@
235
235
  'toasts',
236
236
  'tooltips',
237
237
  'dropdowns',
238
+ 'combobox',
238
239
  'tabs',
239
240
  'slides',
240
241
  'resize',