mnfst 0.5.146 → 0.5.147

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,169 @@
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 */
1502
+ &> :where(input:not([type=hidden]), textarea) {
1503
+ flex: 1 0 auto;
1504
+ width: auto;
1505
+ min-width: 7rem;
1506
+ height: auto;
1507
+ margin: 0;
1508
+ padding: 0;
1509
+ color: inherit;
1508
1510
  background: transparent;
1509
- box-shadow: none
1511
+ field-sizing: content;
1512
+
1513
+ &:hover,
1514
+ &:focus-visible {
1515
+ background: transparent;
1516
+ box-shadow: none
1517
+ }
1510
1518
  }
1511
- }
1512
1519
 
1513
- /* Textarea editor — vertical auto-grow, full-width line */
1514
- :where(textarea.combobox-editor):not(.unstyle) {
1515
- flex-basis: 100%;
1516
- resize: none
1520
+ &>textarea {
1521
+ resize: none
1522
+ }
1517
1523
  }
1518
1524
 
1519
1525
  /* Chips */
1520
1526
  :where(.combobox-chip):not(.unstyle) {
1521
1527
  display: inline-flex;
1522
1528
  align-items: center;
1523
- gap: calc(var(--spacing, 0.25rem) * 1.5);
1529
+ gap: var(--spacing, 0.25rem);
1524
1530
  max-width: 100%;
1525
1531
  height: calc(var(--spacing-field-height, 2.25rem) - var(--spacing, 0.25rem) * 2.5);
1526
- padding-inline: calc(var(--spacing, 0.25rem) * 2);
1532
+ padding-inline-start: calc(var(--spacing, 0.25rem) * 2);
1527
1533
  font-size: 0.875rem;
1528
1534
  color: var(--color-content-stark, oklch(43.9% 0 0));
1529
- background-color: var(--color-surface-2, var(--color-field-surface-hover));
1535
+ background-color: var(--color-popover-surface, oklch(100% 0 0));
1530
1536
  border-radius: calc(var(--radius, 0.5rem) * 0.7);
1531
- user-select: none
1532
- }
1533
-
1534
- :where(.combobox-chip-label):not(.unstyle) {
1535
1537
  overflow: hidden;
1536
- text-overflow: ellipsis;
1537
- white-space: nowrap
1538
+ user-select: none;
1539
+
1540
+ /* Label */
1541
+ &>span {
1542
+ overflow: hidden;
1543
+ text-overflow: ellipsis;
1544
+ white-space: nowrap
1545
+ }
1546
+
1547
+ /* Remove button */
1548
+ &>button {
1549
+ display: inline-flex;
1550
+ align-items: center;
1551
+ justify-content: center;
1552
+ min-width: 0;
1553
+ height: 100%;
1554
+ aspect-ratio: 1 / 1;
1555
+ padding: 0;
1556
+ font-size: 1em;
1557
+ line-height: 1;
1558
+ color: var(--color-content-neutral, oklch(43.9% 0 0));
1559
+ background: transparent;
1560
+ border-radius: 0;
1561
+ cursor: pointer;
1562
+
1563
+ &:hover {
1564
+ color: var(--color-content-stark, oklch(43.9% 0 0));
1565
+ background: color-mix(in oklch, var(--color-content-stark, oklch(43.9% 0 0)) 12%, transparent)
1566
+ }
1567
+ }
1568
+
1569
+ /* Failed validation */
1570
+ &[aria-invalid="true"] {
1571
+ color: var(--color-negative-inverse, oklch(44.4% 0.177 26.899));
1572
+ background-color: var(--color-negative-surface, oklch(80.8% 0.114 19.571))
1573
+ }
1538
1574
  }
1539
1575
 
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;
1576
+ /* Trigger (editor:none button mode) — transparent; the shell is the field.
1577
+ Fills the row like the input editor, with a select-style caret. */
1578
+ :where(.combobox) > button:not(.unstyle) {
1579
+ flex: 1 1 auto;
1580
+ align-self: stretch;
1581
+ min-width: 7rem;
1582
+ justify-content: flex-start;
1583
+ gap: var(--spacing, 0.25rem);
1584
+ height: auto;
1585
+ min-height: calc(var(--spacing-field-height, 2.25rem) - var(--spacing, 0.25rem) * 2.5);
1546
1586
  padding: 0;
1547
- font-size: 1em;
1548
- line-height: 1;
1549
- color: var(--color-content-neutral, oklch(43.9% 0 0));
1587
+ color: inherit;
1550
1588
  background: transparent;
1551
- border-radius: 50%;
1552
1589
  cursor: pointer;
1553
1590
 
1554
1591
  &: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)
1592
+ background: transparent
1557
1593
  }
1558
- }
1559
1594
 
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)
1595
+ /* Caret */
1596
+ &::after {
1597
+ content: '';
1598
+ flex: none;
1599
+ width: 1em;
1600
+ height: 1em;
1601
+ margin-inline-start: auto;
1602
+ background-color: var(--color-content-subtle, oklch(55.6% 0 0));
1603
+ 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
1604
+ }
1564
1605
  }
1565
1606
 
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)
1607
+ /* Button-only field (no chips): the button IS the field it fills the whole
1608
+ wrapper and carries the padding, so the entire area is the click target. */
1609
+ :where(.combobox):has(> button:not(.unstyle)):not(:has(.combobox-chip)) {
1610
+ padding: 0;
1611
+
1612
+ &>button:not(.unstyle) {
1613
+ min-height: var(--spacing-field-height, 2.25rem);
1614
+ padding: calc(var(--spacing, 0.25rem) * 1.25) var(--spacing-field-padding, 0.625rem)
1615
+ }
1570
1616
  }
1571
1617
 
1572
1618
  /* Listbox — base look comes from menu[popover]; these are combobox-only extras */
1573
- :where(.combobox-menu):not(.unstyle) {
1619
+ :where(menu[role=listbox]):not(.unstyle) {
1574
1620
 
1575
- /* Active descendant mirrors hover */
1576
- & :where(li.is-active) {
1621
+ /* Active descendant (mirrors hover) */
1622
+ & :where([role=option][aria-current="true"]) {
1577
1623
  color: var(--color-field-inverse, oklch(43.9% 0 0));
1578
1624
  background-color: var(--color-field-surface, color-mix(in oklch, oklch(20.5% 0 0) 10%, transparent))
1579
1625
  }
1580
1626
 
1581
1627
  /* Filtered out */
1582
- & :where(li[hidden]) {
1628
+ & :where([role=option][hidden]) {
1583
1629
  display: none
1584
1630
  }
1585
1631
 
1586
1632
  /* Selected (multiple) */
1587
- & :where(li[aria-selected="true"]) {
1633
+ & :where([role=option][aria-selected="true"]) {
1588
1634
  font-weight: 600
1589
1635
  }
1590
1636
 
1591
1637
  /* "Add …" create row */
1592
- & :where(li.combobox-create) {
1638
+ & :where(.combobox-create) {
1593
1639
  color: var(--color-content-neutral, oklch(43.9% 0 0))
1594
1640
  }
1595
1641
 
@@ -1606,7 +1652,7 @@
1606
1652
  }
1607
1653
 
1608
1654
  /* Screen-reader-only live region */
1609
- :where(.combobox-live):not(.unstyle) {
1655
+ :where(.combobox)> :where([role=status]) {
1610
1656
  position: absolute;
1611
1657
  width: 1px;
1612
1658
  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',