@threadlabs/looma 0.13.4 → 0.13.5
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/components/ui-combobox/ui-combobox.html +8 -1
- package/components/ui-combobox/ui-combobox.js +45 -16
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/vanilla/UiCombobox.d.ts +2 -0
- package/vanilla/UiCombobox.js +1 -1
- package/vue/UiCombobox.d.ts +11 -0
- package/vue/UiCombobox.vue +20 -1
- package/vue/chunks/UiCombobox.js +13 -4
- package/vue/components.css +42 -42
package/vue/components.css
CHANGED
|
@@ -1327,7 +1327,7 @@ input[data-v-e122df08]:focus-visible {
|
|
|
1327
1327
|
syntax: "*";
|
|
1328
1328
|
inherits: false;
|
|
1329
1329
|
}
|
|
1330
|
-
[data-component~="ui-combobox"][data-v-
|
|
1330
|
+
[data-component~="ui-combobox"][data-v-1482f333] {
|
|
1331
1331
|
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
1332
1332
|
--_ui-combobox-label-text: var(--ui-combobox-label-text);
|
|
1333
1333
|
--_ui-combobox-label-font-size: var(--ui-combobox-label-font-size);
|
|
@@ -1346,20 +1346,20 @@ input[data-v-e122df08]:focus-visible {
|
|
|
1346
1346
|
color: var(--ui-text-primary);
|
|
1347
1347
|
font: inherit;
|
|
1348
1348
|
}
|
|
1349
|
-
label[data-v-
|
|
1349
|
+
label[data-v-1482f333] {
|
|
1350
1350
|
color: var(--_ui-combobox-label-text, var(--ui-text-primary));
|
|
1351
1351
|
font-size: var(--_ui-combobox-label-font-size, var(--ui-font-size-sm));
|
|
1352
1352
|
font-weight: 500;
|
|
1353
1353
|
}
|
|
1354
1354
|
/* The field and anything that annotates it sit on one row; the help button is beside the box,
|
|
1355
1355
|
not inside it, because a control's box holds its value. */
|
|
1356
|
-
.control[data-v-
|
|
1356
|
+
.control[data-v-1482f333] {
|
|
1357
1357
|
display: flex;
|
|
1358
1358
|
align-items: center;
|
|
1359
1359
|
gap: var(--ui-space-2);
|
|
1360
1360
|
min-inline-size: 0;
|
|
1361
1361
|
}
|
|
1362
|
-
.field[data-v-
|
|
1362
|
+
.field[data-v-1482f333] {
|
|
1363
1363
|
flex: 1 1 auto;
|
|
1364
1364
|
display: flex;
|
|
1365
1365
|
min-inline-size: 0;
|
|
@@ -1371,14 +1371,14 @@ label[data-v-7616cc1c] {
|
|
|
1371
1371
|
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
1372
1372
|
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
1373
1373
|
}
|
|
1374
|
-
.field[data-v-
|
|
1374
|
+
.field[data-v-1482f333]:focus-within {
|
|
1375
1375
|
border-color: var(--ui-control-focus, var(--ui-accent-solid));
|
|
1376
1376
|
box-shadow:
|
|
1377
1377
|
var(--ui-control-inset),
|
|
1378
1378
|
var(--ui-control-focus-halo-shadow);
|
|
1379
1379
|
}
|
|
1380
1380
|
/* A ghost icon button: the affordance is the mark, not a box around it. */
|
|
1381
|
-
.help[data-v-
|
|
1381
|
+
.help[data-v-1482f333] {
|
|
1382
1382
|
flex: none;
|
|
1383
1383
|
display: inline-flex;
|
|
1384
1384
|
align-items: center;
|
|
@@ -1395,28 +1395,28 @@ label[data-v-7616cc1c] {
|
|
|
1395
1395
|
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
1396
1396
|
color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
1397
1397
|
}
|
|
1398
|
-
.help[data-v-
|
|
1399
|
-
.help[aria-expanded="true"][data-v-
|
|
1398
|
+
.help[data-v-1482f333]:hover:enabled,
|
|
1399
|
+
.help[aria-expanded="true"][data-v-1482f333] {
|
|
1400
1400
|
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
1401
1401
|
color: var(--ui-text-primary);
|
|
1402
1402
|
}
|
|
1403
|
-
.help[data-v-
|
|
1403
|
+
.help[data-v-1482f333]:focus-visible {
|
|
1404
1404
|
outline: none;
|
|
1405
1405
|
box-shadow: var(--ui-focus-halo);
|
|
1406
1406
|
}
|
|
1407
|
-
.help[data-v-
|
|
1407
|
+
.help[data-v-1482f333]:disabled {
|
|
1408
1408
|
color: var(--ui-disabled-text);
|
|
1409
1409
|
cursor: not-allowed;
|
|
1410
1410
|
}
|
|
1411
|
-
.help-icon[data-v-
|
|
1411
|
+
.help-icon[data-v-1482f333] {
|
|
1412
1412
|
inline-size: var(--ui-icon-size-sm);
|
|
1413
1413
|
block-size: var(--ui-icon-size-sm);
|
|
1414
1414
|
}
|
|
1415
|
-
input[data-v-
|
|
1415
|
+
input[data-v-1482f333]::selection {
|
|
1416
1416
|
background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
|
|
1417
1417
|
color: inherit;
|
|
1418
1418
|
}
|
|
1419
|
-
input[data-v-
|
|
1419
|
+
input[data-v-1482f333] {
|
|
1420
1420
|
appearance: none;
|
|
1421
1421
|
width: 100%;
|
|
1422
1422
|
min-inline-size: 0;
|
|
@@ -1432,11 +1432,11 @@ input[data-v-7616cc1c] {
|
|
|
1432
1432
|
margin: 0;
|
|
1433
1433
|
outline: none;
|
|
1434
1434
|
}
|
|
1435
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] input[data-v-
|
|
1435
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] input[data-v-1482f333] {
|
|
1436
1436
|
min-block-size: calc(var(--ui-control-size-sm) - 2px);
|
|
1437
1437
|
padding: var(--ui-space-1) var(--ui-space-2);
|
|
1438
1438
|
}
|
|
1439
|
-
button[data-v-
|
|
1439
|
+
button[data-v-1482f333] {
|
|
1440
1440
|
appearance: none;
|
|
1441
1441
|
display: inline-grid;
|
|
1442
1442
|
place-items: center;
|
|
@@ -1451,31 +1451,31 @@ button[data-v-7616cc1c] {
|
|
|
1451
1451
|
padding: 0 var(--ui-space-1);
|
|
1452
1452
|
cursor: pointer;
|
|
1453
1453
|
}
|
|
1454
|
-
.affordance-icon[data-v-
|
|
1454
|
+
.affordance-icon[data-v-1482f333] {
|
|
1455
1455
|
display: block;
|
|
1456
1456
|
inline-size: var(--ui-icon-size-sm);
|
|
1457
1457
|
block-size: var(--ui-icon-size-sm);
|
|
1458
1458
|
}
|
|
1459
|
-
button[data-v-
|
|
1459
|
+
button[data-v-1482f333]:hover:enabled {
|
|
1460
1460
|
background: var(--ui-surface-muted);
|
|
1461
1461
|
color: var(--ui-text-primary);
|
|
1462
1462
|
}
|
|
1463
|
-
button[data-v-
|
|
1463
|
+
button[data-v-1482f333]:focus-visible {
|
|
1464
1464
|
outline: none;
|
|
1465
1465
|
background: var(--ui-surface-muted);
|
|
1466
1466
|
box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
|
|
1467
1467
|
}
|
|
1468
|
-
input[data-v-
|
|
1468
|
+
input[data-v-1482f333]:disabled, button[data-v-1482f333]:disabled {
|
|
1469
1469
|
color: var(--ui-disabled-text);
|
|
1470
1470
|
cursor: not-allowed;
|
|
1471
1471
|
}
|
|
1472
|
-
.field[data-v-
|
|
1472
|
+
.field[data-v-1482f333]:has(input:disabled) {
|
|
1473
1473
|
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
1474
1474
|
}
|
|
1475
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="validationStatus=error"] .field[data-v-
|
|
1475
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="validationStatus=error"] .field[data-v-1482f333] {
|
|
1476
1476
|
border-color: var(--ui-danger-solid, var(--ui-accent-active));
|
|
1477
1477
|
}
|
|
1478
|
-
.popup[data-v-
|
|
1478
|
+
.popup[data-v-1482f333] {
|
|
1479
1479
|
box-sizing: border-box;
|
|
1480
1480
|
min-inline-size: 12rem;
|
|
1481
1481
|
max-inline-size: calc(100vw - 1rem);
|
|
@@ -1489,40 +1489,40 @@ input[data-v-7616cc1c]:disabled, button[data-v-7616cc1c]:disabled {
|
|
|
1489
1489
|
color: var(--ui-text-primary);
|
|
1490
1490
|
box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
|
|
1491
1491
|
}
|
|
1492
|
-
[hidden][data-v-
|
|
1492
|
+
[hidden][data-v-1482f333] {
|
|
1493
1493
|
display: none;
|
|
1494
1494
|
}
|
|
1495
|
-
.option[data-v-
|
|
1495
|
+
.option[data-v-1482f333] {
|
|
1496
1496
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
1497
1497
|
border-radius: var(--ui-radius-sm);
|
|
1498
1498
|
cursor: pointer;
|
|
1499
1499
|
overflow-wrap: anywhere;
|
|
1500
1500
|
}
|
|
1501
|
-
.option[data-v-
|
|
1501
|
+
.option[data-v-1482f333]:hover, .option.active[data-v-1482f333] {
|
|
1502
1502
|
background: var(--ui-surface-muted);
|
|
1503
1503
|
outline: 1px solid var(--ui-focus-ring);
|
|
1504
1504
|
outline-offset: -1px;
|
|
1505
1505
|
}
|
|
1506
|
-
.option[aria-disabled="true"][data-v-
|
|
1506
|
+
.option[aria-disabled="true"][data-v-1482f333] {
|
|
1507
1507
|
color: var(--ui-disabled-text);
|
|
1508
1508
|
cursor: not-allowed;
|
|
1509
1509
|
}
|
|
1510
|
-
.primary[data-v-
|
|
1510
|
+
.primary[data-v-1482f333] {
|
|
1511
1511
|
display: block;
|
|
1512
1512
|
color: var(--_ui-combobox-option-text, var(--ui-text-primary));
|
|
1513
1513
|
font-weight: 500;
|
|
1514
1514
|
}
|
|
1515
|
-
.message[data-v-
|
|
1515
|
+
.message[data-v-1482f333], .group[data-v-1482f333] {
|
|
1516
1516
|
color: var(--_ui-combobox-message-text, var(--ui-text-secondary));
|
|
1517
1517
|
font-weight: 400;
|
|
1518
1518
|
font-size: var(--ui-font-size-sm);
|
|
1519
1519
|
line-height: var(--ui-line-height-md);
|
|
1520
1520
|
overflow-wrap: anywhere;
|
|
1521
1521
|
}
|
|
1522
|
-
.group[data-v-
|
|
1522
|
+
.group[data-v-1482f333], .popup .message[data-v-1482f333] {
|
|
1523
1523
|
padding: var(--ui-space-2) var(--ui-space-3);
|
|
1524
1524
|
}
|
|
1525
|
-
.sr-only[data-v-
|
|
1525
|
+
.sr-only[data-v-1482f333] {
|
|
1526
1526
|
position: absolute;
|
|
1527
1527
|
inline-size: 1px;
|
|
1528
1528
|
block-size: 1px;
|
|
@@ -1531,16 +1531,16 @@ input[data-v-7616cc1c]:disabled, button[data-v-7616cc1c]:disabled {
|
|
|
1531
1531
|
white-space: nowrap;
|
|
1532
1532
|
}
|
|
1533
1533
|
@media (pointer: coarse) {
|
|
1534
|
-
button[data-v-
|
|
1534
|
+
button[data-v-1482f333] {
|
|
1535
1535
|
min-inline-size: 2.75rem;
|
|
1536
1536
|
min-block-size: 2.75rem;
|
|
1537
1537
|
}
|
|
1538
1538
|
}
|
|
1539
1539
|
@media (forced-colors: active) {
|
|
1540
|
-
.field[data-v-
|
|
1540
|
+
.field[data-v-1482f333], .popup[data-v-1482f333] {
|
|
1541
1541
|
border-color: CanvasText;
|
|
1542
1542
|
}
|
|
1543
|
-
.option.active[data-v-
|
|
1543
|
+
.option.active[data-v-1482f333] {
|
|
1544
1544
|
outline-color: Highlight;
|
|
1545
1545
|
}
|
|
1546
1546
|
}
|
|
@@ -1548,12 +1548,12 @@ button[data-v-7616cc1c] {
|
|
|
1548
1548
|
/* Multiple mode: every option carries a checkbox, so a list that takes several answers says so
|
|
1549
1549
|
before anything is picked. aria-selected is the state; this draws it.
|
|
1550
1550
|
Longhands, not shorthands: lowering drops a shorthand that omits a component. */
|
|
1551
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-
|
|
1551
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-1482f333] {
|
|
1552
1552
|
display: flex;
|
|
1553
1553
|
gap: var(--ui-space-2);
|
|
1554
1554
|
align-items: center;
|
|
1555
1555
|
}
|
|
1556
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-
|
|
1556
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .option[data-v-1482f333]::before {
|
|
1557
1557
|
content: "";
|
|
1558
1558
|
flex: none;
|
|
1559
1559
|
inline-size: 1.125rem;
|
|
@@ -1568,7 +1568,7 @@ button[data-v-7616cc1c] {
|
|
|
1568
1568
|
background-size: 0.7rem;
|
|
1569
1569
|
}
|
|
1570
1570
|
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"]
|
|
1571
|
-
.option[aria-selected="true"][data-v-
|
|
1571
|
+
.option[aria-selected="true"][data-v-1482f333]::before {
|
|
1572
1572
|
border-color: var(--ui-accent-solid);
|
|
1573
1573
|
background-color: var(--ui-accent-solid);
|
|
1574
1574
|
background-image: var(
|
|
@@ -1578,20 +1578,20 @@ button[data-v-7616cc1c] {
|
|
|
1578
1578
|
}
|
|
1579
1579
|
|
|
1580
1580
|
/* Multiple mode: chips wrap before the cursor on one flexible field line. */
|
|
1581
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .field[data-v-
|
|
1581
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .field[data-v-1482f333] {
|
|
1582
1582
|
flex-wrap: wrap;
|
|
1583
1583
|
align-items: center;
|
|
1584
1584
|
gap: var(--ui-space-1);
|
|
1585
1585
|
min-block-size: var(--_ui-combobox-item-min-block-size, 2.5rem);
|
|
1586
1586
|
padding: var(--ui-space-1);
|
|
1587
1587
|
}
|
|
1588
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] input[data-v-
|
|
1588
|
+
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] input[data-v-1482f333] {
|
|
1589
1589
|
flex: 1 0 var(--_ui-combobox-item-input-min-inline-size, 5rem);
|
|
1590
1590
|
width: auto;
|
|
1591
1591
|
min-block-size: 1.75rem;
|
|
1592
1592
|
padding: var(--ui-space-0-5) var(--ui-space-1);
|
|
1593
1593
|
}
|
|
1594
|
-
.item[data-v-
|
|
1594
|
+
.item[data-v-1482f333] {
|
|
1595
1595
|
appearance: none;
|
|
1596
1596
|
display: inline-flex;
|
|
1597
1597
|
min-inline-size: 0;
|
|
@@ -1605,16 +1605,16 @@ button[data-v-7616cc1c] {
|
|
|
1605
1605
|
font: inherit;
|
|
1606
1606
|
cursor: default;
|
|
1607
1607
|
}
|
|
1608
|
-
.item[data-v-
|
|
1608
|
+
.item[data-v-1482f333]:focus-visible {
|
|
1609
1609
|
outline: 2px solid var(--ui-focus-ring);
|
|
1610
1610
|
outline-offset: 1px;
|
|
1611
1611
|
}
|
|
1612
|
-
.item[data-v-
|
|
1612
|
+
.item[data-v-1482f333]:disabled {
|
|
1613
1613
|
opacity: 0.6;
|
|
1614
1614
|
}
|
|
1615
1615
|
|
|
1616
1616
|
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
1617
|
-
[data-component~="ui-combobox"][hidden][data-v-
|
|
1617
|
+
[data-component~="ui-combobox"][hidden][data-v-1482f333] {
|
|
1618
1618
|
display: none;
|
|
1619
1619
|
}
|
|
1620
1620
|
|