@zeyos/zx 3.0.0 → 4.0.0

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.
Files changed (88) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/DESIGN-SYSTEM.md +28 -68
  3. package/README.md +16 -37
  4. package/dist/types/components/app-sidebar/app-sidebar.d.ts +106 -32
  5. package/dist/types/components/card/card.d.ts +128 -0
  6. package/dist/types/components/chart/chart.d.ts +1 -0
  7. package/dist/types/components/launcher/launcher.d.ts +65 -6
  8. package/dist/types/components/select/select.d.ts +51 -0
  9. package/dist/types/components/table/table.d.ts +4 -3
  10. package/dist/types/core/dom.d.ts +8 -0
  11. package/dist/types/index.d.ts +2 -1
  12. package/dist/types/{components/app-rail → internal}/app-rail.d.ts +34 -19
  13. package/dist/types/zeyos/icons.d.ts +5 -0
  14. package/dist/types/zeyos/index.d.ts +2 -1
  15. package/dist/types/zeyos/launcher.d.ts +147 -0
  16. package/dist/types/zeyos/select.d.ts +39 -0
  17. package/dist/zx-zeyos.esm.js +1324 -46
  18. package/dist/zx-zeyos.esm.min.js +1 -1
  19. package/dist/zx.css +400 -12
  20. package/dist/zx.esm.js +1059 -189
  21. package/dist/zx.esm.min.js +3 -3
  22. package/dist/zx.global.js +1059 -189
  23. package/dist/zx.global.min.js +3 -3
  24. package/dist/zx.min.css +1 -1
  25. package/docs/api.json +258 -145
  26. package/docs/llms.md +93 -112
  27. package/docs/llms.txt +16 -15
  28. package/package.json +8 -17
  29. package/src/components/app-sidebar/app-sidebar.css +12 -0
  30. package/src/components/app-sidebar/app-sidebar.js +310 -110
  31. package/src/components/card/card.css +149 -0
  32. package/src/components/card/card.js +285 -0
  33. package/src/components/chart/chart.js +8 -3
  34. package/src/components/grid/grid.js +10 -3
  35. package/src/components/launcher/launcher.css +113 -3
  36. package/src/components/launcher/launcher.js +234 -26
  37. package/src/components/select/field-adapter.js +9 -4
  38. package/src/components/select/select.css +144 -10
  39. package/src/components/select/select.js +259 -27
  40. package/src/components/table/table.js +8 -7
  41. package/src/core/dom.js +20 -0
  42. package/src/index.js +2 -1
  43. package/src/{components/app-rail → internal}/app-rail.js +80 -30
  44. package/src/zeyos/icons.js +8 -3
  45. package/src/zeyos/index.js +7 -1
  46. package/src/zeyos/launcher.js +338 -0
  47. package/src/zeyos/modules.js +1 -0
  48. package/src/zeyos/select.js +115 -1
  49. package/styles/tokens/global.css +1 -1
  50. package/styles/tokens/modules.css +1 -0
  51. package/styles/zx.css +1 -0
  52. package/MIGRATION.md +0 -749
  53. package/dist/types/compat/base.d.ts +0 -156
  54. package/dist/types/compat/globals.d.ts +0 -20
  55. package/dist/types/compat/index.d.ts +0 -128
  56. package/dist/types/compat/map/basic.d.ts +0 -175
  57. package/dist/types/compat/map/data.d.ts +0 -103
  58. package/dist/types/compat/map/date-time.d.ts +0 -80
  59. package/dist/types/compat/map/factory.d.ts +0 -9
  60. package/dist/types/compat/map/form.d.ts +0 -98
  61. package/dist/types/compat/map/helpers.d.ts +0 -12
  62. package/dist/types/compat/map/http.d.ts +0 -36
  63. package/dist/types/compat/map/layout.d.ts +0 -106
  64. package/dist/types/compat/map/options.d.ts +0 -80
  65. package/dist/types/compat/map/select.d.ts +0 -95
  66. package/dist/types/compat/map/stubs.d.ts +0 -32
  67. package/dist/types/compat/map/utilities.d.ts +0 -37
  68. package/dist/types/compat-entry.d.ts +0 -5
  69. package/dist/zx-compat.esm.js +0 -17848
  70. package/dist/zx-compat.esm.min.js +0 -1
  71. package/dist/zx-compat.global.js +0 -29008
  72. package/dist/zx-compat.global.min.js +0 -3
  73. package/src/compat/base.js +0 -291
  74. package/src/compat/globals.js +0 -167
  75. package/src/compat/index.js +0 -84
  76. package/src/compat/map/basic.js +0 -464
  77. package/src/compat/map/data.js +0 -254
  78. package/src/compat/map/date-time.js +0 -177
  79. package/src/compat/map/factory.js +0 -45
  80. package/src/compat/map/form.js +0 -330
  81. package/src/compat/map/helpers.js +0 -46
  82. package/src/compat/map/http.js +0 -117
  83. package/src/compat/map/layout.js +0 -256
  84. package/src/compat/map/options.js +0 -267
  85. package/src/compat/map/select.js +0 -198
  86. package/src/compat/map/stubs.js +0 -26
  87. package/src/compat/map/utilities.js +0 -113
  88. package/src/compat-entry.js +0 -11
package/dist/zx.css CHANGED
@@ -340,6 +340,7 @@
340
340
  --zx-module-linecoupon: var(--zx-module-line);
341
341
  --zx-module-logins: var(--zx-module-auth);
342
342
  --zx-module-mailservers: var(--zx-module-channels);
343
+ --zx-module-main: var(--zx-module-zeyos);
343
344
  --zx-module-notifications: var(--zx-module-messages);
344
345
  --zx-module-participants-campaigns: var(--zx-module-participants);
345
346
  --zx-module-participants-mailinglists: var(--zx-module-participants);
@@ -1391,6 +1392,133 @@ svg.zx-icon {
1391
1392
  }
1392
1393
  }
1393
1394
 
1395
+ /* src/components/card/card.css */
1396
+ .zx-card {
1397
+ --zx-card-media-size: 8rem;
1398
+ position: relative;
1399
+ inline-size: 100%;
1400
+ container-type: inline-size;
1401
+ overflow: hidden;
1402
+ border-radius: var(--zx-radius-lg);
1403
+ color: var(--zx-color-text);
1404
+ }
1405
+ .zx-card[data-variant=outlined] {
1406
+ border: 1px solid var(--zx-color-border);
1407
+ background: var(--zx-color-bg-surface);
1408
+ }
1409
+ .zx-card[data-variant=raised] {
1410
+ border: 1px solid transparent;
1411
+ background: var(--zx-color-bg-surface);
1412
+ box-shadow: var(--zx-overlay-shadow);
1413
+ }
1414
+ .zx-card[data-variant=filled] {
1415
+ border: 1px solid transparent;
1416
+ background: var(--zx-color-bg-muted);
1417
+ }
1418
+ .zx-card[data-linked=true]:hover {
1419
+ background: var(--zx-color-bg-hover);
1420
+ }
1421
+ .zx-card:has(.zx-card__primary:focus-visible) {
1422
+ outline: 0;
1423
+ box-shadow: var(--zx-focus-ring);
1424
+ }
1425
+ .zx-card__layout,
1426
+ .zx-card__inner {
1427
+ min-inline-size: 0;
1428
+ }
1429
+ .zx-card__inner {
1430
+ display: grid;
1431
+ gap: var(--zx-space-3);
1432
+ padding: var(--zx-space-5);
1433
+ }
1434
+ .zx-card[data-orientation=horizontal] .zx-card__layout {
1435
+ display: grid;
1436
+ grid-template-columns: var(--zx-card-media-size) minmax(0, 1fr);
1437
+ align-items: stretch;
1438
+ }
1439
+ .zx-card__media {
1440
+ min-inline-size: 0;
1441
+ overflow: hidden;
1442
+ }
1443
+ .zx-card[data-orientation=horizontal] .zx-card__media {
1444
+ min-block-size: var(--zx-card-media-size);
1445
+ }
1446
+ .zx-card__media > :is(img, video, svg) {
1447
+ display: block;
1448
+ inline-size: 100%;
1449
+ block-size: 100%;
1450
+ object-fit: cover;
1451
+ }
1452
+ .zx-card__header {
1453
+ display: flex;
1454
+ align-items: start;
1455
+ justify-content: space-between;
1456
+ gap: var(--zx-space-3);
1457
+ }
1458
+ .zx-card__header[hidden],
1459
+ .zx-card__media[hidden],
1460
+ .zx-card__content[hidden],
1461
+ .zx-card__footer[hidden],
1462
+ .zx-card__actions[hidden] {
1463
+ display: none;
1464
+ }
1465
+ .zx-card__heading {
1466
+ min-inline-size: 0;
1467
+ margin: 0;
1468
+ font-size: var(--zx-text-lg);
1469
+ font-weight: 700;
1470
+ line-height: 1.3;
1471
+ letter-spacing: -0.012em;
1472
+ }
1473
+ .zx-card__primary,
1474
+ .zx-card__title {
1475
+ color: inherit;
1476
+ }
1477
+ .zx-card__primary {
1478
+ text-decoration: none;
1479
+ }
1480
+ .zx-card[data-linked=true] .zx-card__primary::after {
1481
+ content: "";
1482
+ position: absolute;
1483
+ inset: 0;
1484
+ z-index: 1;
1485
+ }
1486
+ .zx-card__primary:focus-visible {
1487
+ outline: 0;
1488
+ }
1489
+ .zx-card__actions,
1490
+ .zx-card__content :is(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])),
1491
+ .zx-card__footer :is(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])) {
1492
+ position: relative;
1493
+ z-index: 2;
1494
+ }
1495
+ .zx-card__actions {
1496
+ display: flex;
1497
+ flex: none;
1498
+ flex-wrap: wrap;
1499
+ align-items: center;
1500
+ justify-content: end;
1501
+ gap: var(--zx-space-2);
1502
+ }
1503
+ .zx-card__content {
1504
+ color: var(--zx-color-text-muted);
1505
+ line-height: 1.6;
1506
+ }
1507
+ .zx-card__footer {
1508
+ padding-block-start: var(--zx-space-3);
1509
+ border-block-start: 1px solid var(--zx-color-border);
1510
+ color: var(--zx-color-text-muted);
1511
+ font-size: var(--zx-text-sm);
1512
+ }
1513
+ @container (max-width: 28rem) {
1514
+ .zx-card[data-orientation=horizontal] .zx-card__layout {
1515
+ grid-template-columns: minmax(0, 1fr);
1516
+ }
1517
+ .zx-card[data-orientation=horizontal] .zx-card__media {
1518
+ min-block-size: 0;
1519
+ }
1520
+ }
1521
+
1394
1522
  /* src/components/panel/panel.css */
1395
1523
  .zx-panel {
1396
1524
  overflow: hidden;
@@ -1925,7 +2053,7 @@ button.zx-panel__toggle:focus-visible {
1925
2053
 
1926
2054
  /* src/components/launcher/launcher.css */
1927
2055
  .zx-launcher {
1928
- inline-size: min(680px, calc(100vw - (2 * var(--zx-space-4))));
2056
+ inline-size: min(760px, calc(100vw - (2 * var(--zx-space-4))));
1929
2057
  max-block-size: min(720px, calc(100vh - (2 * var(--zx-space-6))));
1930
2058
  border: 1px solid var(--zx-color-border);
1931
2059
  border-radius: var(--zx-radius-xl);
@@ -1939,17 +2067,20 @@ button.zx-panel__toggle:focus-visible {
1939
2067
  }
1940
2068
  .zx-launcher__surface {
1941
2069
  display: grid;
1942
- grid-template-rows: auto auto minmax(0, 1fr);
2070
+ grid-template-rows: auto auto minmax(0, 1fr) auto;
1943
2071
  max-block-size: inherit;
1944
2072
  }
1945
2073
  .zx-launcher__search {
1946
2074
  display: grid;
1947
- grid-template-columns: auto 1fr auto;
2075
+ grid-template-columns: auto minmax(0, 1fr) auto auto;
1948
2076
  align-items: center;
1949
2077
  gap: var(--zx-space-3);
1950
2078
  border-block-end: 1px solid var(--zx-color-border);
1951
2079
  padding: var(--zx-space-3) var(--zx-space-4);
1952
2080
  }
2081
+ .zx-launcher__search[data-shortcut=false] {
2082
+ grid-template-columns: auto minmax(0, 1fr) auto;
2083
+ }
1953
2084
  .zx-launcher__input {
1954
2085
  min-inline-size: 0;
1955
2086
  border: 0;
@@ -1964,6 +2095,21 @@ button.zx-panel__toggle:focus-visible {
1964
2095
  .zx-launcher__input::-webkit-search-cancel-button {
1965
2096
  display: none;
1966
2097
  }
2098
+ .zx-launcher__shortcut,
2099
+ .zx-launcher__hints kbd {
2100
+ border: 1px solid var(--zx-color-border-control);
2101
+ border-radius: var(--zx-radius-sm);
2102
+ background: var(--zx-color-bg-muted);
2103
+ color: var(--zx-color-text-muted);
2104
+ font-family: var(--zx-font-mono);
2105
+ font-size: var(--zx-text-xs);
2106
+ font-weight: 600;
2107
+ line-height: 1.5;
2108
+ }
2109
+ .zx-launcher__shortcut {
2110
+ padding-inline: var(--zx-space-2);
2111
+ white-space: nowrap;
2112
+ }
1967
2113
  .zx-launcher__status {
1968
2114
  margin: 0;
1969
2115
  padding: var(--zx-space-5);
@@ -1986,6 +2132,16 @@ button.zx-panel__toggle:focus-visible {
1986
2132
  letter-spacing: .04em;
1987
2133
  text-transform: uppercase;
1988
2134
  }
2135
+ .zx-launcher__group[data-layout=grid] {
2136
+ display: grid;
2137
+ grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
2138
+ gap: var(--zx-space-2);
2139
+ padding: 0 var(--zx-space-1) var(--zx-space-2);
2140
+ }
2141
+ .zx-launcher__group[data-layout=grid] .zx-launcher__group-label {
2142
+ grid-column: 1 / -1;
2143
+ padding-inline: var(--zx-space-2);
2144
+ }
1989
2145
  .zx-launcher__option {
1990
2146
  display: flex;
1991
2147
  align-items: center;
@@ -2004,6 +2160,35 @@ button.zx-panel__toggle:focus-visible {
2004
2160
  .zx-launcher__option:hover {
2005
2161
  background: var(--zx-color-bg-hover);
2006
2162
  }
2163
+ .zx-launcher__option[aria-current=page] {
2164
+ box-shadow: inset 2px 0 var(--zx-color-accent);
2165
+ }
2166
+ .zx-launcher__option[data-kind=application] {
2167
+ display: grid;
2168
+ grid-template-rows: auto minmax(0, auto);
2169
+ justify-items: center;
2170
+ align-content: center;
2171
+ min-block-size: 92px;
2172
+ padding: var(--zx-space-3) var(--zx-space-2);
2173
+ text-align: center;
2174
+ }
2175
+ .zx-launcher__option[data-kind=application][aria-current=page] {
2176
+ box-shadow: inset 0 -2px var(--zx-color-accent);
2177
+ }
2178
+ .zx-launcher__option[data-kind=application] .zx-launcher__icon {
2179
+ min-block-size: 36px;
2180
+ align-items: center;
2181
+ }
2182
+ .zx-launcher__option[data-kind=application] .zx-launcher__copy {
2183
+ inline-size: 100%;
2184
+ }
2185
+ .zx-launcher__option[data-kind=application] .zx-launcher__description,
2186
+ .zx-launcher__option[data-kind=application] .zx-launcher__badge {
2187
+ display: none;
2188
+ }
2189
+ .zx-launcher__option[data-kind=application] .zx-launcher__label {
2190
+ font-size: var(--zx-text-sm);
2191
+ }
2007
2192
  .zx-launcher__option[aria-disabled=true] {
2008
2193
  color: var(--zx-color-text-muted);
2009
2194
  cursor: not-allowed;
@@ -2036,6 +2221,40 @@ button.zx-panel__toggle:focus-visible {
2036
2221
  color: var(--zx-color-text-muted);
2037
2222
  font-size: var(--zx-text-xs);
2038
2223
  }
2224
+ .zx-launcher__hints {
2225
+ display: flex;
2226
+ flex-wrap: wrap;
2227
+ justify-content: end;
2228
+ gap: var(--zx-space-4);
2229
+ padding: var(--zx-space-2) var(--zx-space-4);
2230
+ border-block-start: 1px solid var(--zx-color-border);
2231
+ color: var(--zx-color-text-muted);
2232
+ font-size: var(--zx-text-xs);
2233
+ }
2234
+ .zx-launcher__hints span {
2235
+ display: inline-flex;
2236
+ align-items: center;
2237
+ gap: var(--zx-space-1);
2238
+ }
2239
+ .zx-launcher__hints kbd {
2240
+ min-inline-size: 1.5rem;
2241
+ padding-inline: 4px;
2242
+ text-align: center;
2243
+ }
2244
+ @media (max-width: 520px) {
2245
+ .zx-launcher__group[data-layout=grid] {
2246
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2247
+ }
2248
+ .zx-launcher__shortcut {
2249
+ display: none;
2250
+ }
2251
+ .zx-launcher__search {
2252
+ grid-template-columns: auto minmax(0, 1fr) auto;
2253
+ }
2254
+ .zx-launcher__hints {
2255
+ justify-content: center;
2256
+ }
2257
+ }
2039
2258
 
2040
2259
  /* src/components/avatar/avatar.css */
2041
2260
  .zx-avatar {
@@ -2348,6 +2567,15 @@ button.zx-panel__toggle:focus-visible {
2348
2567
  background: var(--zx-color-bg-raised);
2349
2568
  color: var(--zx-color-text);
2350
2569
  }
2570
+ .zx-app-sidebar[data-orientation=horizontal] {
2571
+ inline-size: 100%;
2572
+ }
2573
+ .zx-app-sidebar[data-orientation=horizontal] > .zx-app-sidebar__rail {
2574
+ inline-size: 100%;
2575
+ }
2576
+ .zx-app-sidebar__rail.zx-app-rail {
2577
+ border: 0;
2578
+ }
2351
2579
  .zx-app-sidebar__expanded {
2352
2580
  display: grid;
2353
2581
  grid-template-rows: auto minmax(0, 1fr) auto;
@@ -3375,7 +3603,7 @@ body:has(> .zx-modal:modal) {
3375
3603
  }
3376
3604
  .zx-select__control {
3377
3605
  display: grid;
3378
- grid-template-columns: minmax(0, 1fr) auto auto auto;
3606
+ grid-template-columns: auto minmax(0, 1fr) auto auto auto;
3379
3607
  align-items: center;
3380
3608
  min-block-size: var(--zx-control-height);
3381
3609
  overflow: hidden;
@@ -3383,6 +3611,17 @@ body:has(> .zx-modal:modal) {
3383
3611
  border-radius: var(--zx-control-radius);
3384
3612
  background: var(--zx-color-bg-control);
3385
3613
  }
3614
+ .zx-select__value-adornment {
3615
+ display: inline-flex;
3616
+ align-items: center;
3617
+ padding-inline-start: var(--zx-control-pad-x);
3618
+ }
3619
+ .zx-select__value-adornment[hidden] {
3620
+ display: none;
3621
+ }
3622
+ .zx-select__value-adornment:not([hidden]) + .zx-select__input {
3623
+ padding-inline-start: var(--zx-space-2) !important;
3624
+ }
3386
3625
  .zx-select__control:has(.zx-select__input:focus-visible) {
3387
3626
  box-shadow: var(--zx-focus-ring);
3388
3627
  }
@@ -3501,19 +3740,168 @@ body:has(> .zx-modal:modal) {
3501
3740
  gap: var(--zx-space-2);
3502
3741
  }
3503
3742
  .zx-select__priority-icon {
3504
- inline-size: 10px;
3505
- block-size: 10px;
3743
+ display: inline-flex;
3744
+ gap: 2px;
3506
3745
  flex: none;
3507
- border-radius: var(--zx-radius-sm);
3508
- background: var(--zx-color-warning);
3746
+ color: var(--zx-color-warning);
3747
+ }
3748
+ .zx-select__priority-icon > span {
3749
+ inline-size: 7px;
3750
+ block-size: 7px;
3751
+ border: 1px solid currentColor;
3752
+ border-radius: 2px;
3753
+ }
3754
+ .zx-select__priority-icon > span[data-filled=true] {
3755
+ background: currentColor;
3756
+ }
3757
+ .zx-select__priority-icon[data-level="0"] {
3758
+ color: var(--zx-color-success);
3509
3759
  }
3510
- .zx-select__priority-icon[data-level="0"],
3511
3760
  .zx-select__priority-icon[data-level="1"] {
3512
- background: var(--zx-color-success);
3761
+ color: color-mix(in srgb, var(--zx-color-success) 35%, var(--zx-color-warning));
3762
+ }
3763
+ .zx-select__priority-icon[data-level="2"] {
3764
+ color: var(--zx-color-warning);
3765
+ }
3766
+ .zx-select__priority-icon[data-level="3"] {
3767
+ color: color-mix(in srgb, var(--zx-color-warning) 35%, var(--zx-color-danger));
3513
3768
  }
3514
- .zx-select__priority-icon[data-level="3"],
3515
3769
  .zx-select__priority-icon[data-level="4"] {
3516
- background: var(--zx-color-danger);
3770
+ color: var(--zx-color-danger);
3771
+ }
3772
+ .zx-select__status {
3773
+ display: grid;
3774
+ grid-template-columns: auto minmax(0, 1fr) auto;
3775
+ align-items: center;
3776
+ gap: var(--zx-space-2);
3777
+ }
3778
+ .zx-select__status-copy,
3779
+ .zx-select__action-copy {
3780
+ display: grid;
3781
+ min-inline-size: 0;
3782
+ }
3783
+ .zx-select__status-description,
3784
+ .zx-select__action-description {
3785
+ overflow: hidden;
3786
+ color: var(--zx-color-text-muted);
3787
+ font-size: var(--zx-text-xs);
3788
+ text-overflow: ellipsis;
3789
+ white-space: nowrap;
3790
+ }
3791
+ .zx-select__status-shortcut {
3792
+ border: 0;
3793
+ background: transparent;
3794
+ color: var(--zx-color-text-muted);
3795
+ font-family: var(--zx-font-mono);
3796
+ font-size: var(--zx-text-xs);
3797
+ }
3798
+ .zx-select__status-indicator {
3799
+ position: relative;
3800
+ display: inline-grid;
3801
+ place-items: center;
3802
+ inline-size: 14px;
3803
+ block-size: 14px;
3804
+ flex: none;
3805
+ border: 2px solid currentColor;
3806
+ border-radius: var(--zx-radius-full);
3807
+ color: var(--zx-color-text-muted);
3808
+ }
3809
+ .zx-select__status-indicator[data-tone=neutral] {
3810
+ color: var(--zx-color-border-strong);
3811
+ }
3812
+ .zx-select__status-indicator[data-tone=warning] {
3813
+ color: var(--zx-color-warning);
3814
+ }
3815
+ .zx-select__status-indicator[data-tone=info] {
3816
+ color: var(--zx-color-info);
3817
+ }
3818
+ .zx-select__status-indicator[data-tone=accent] {
3819
+ color: var(--zx-color-accent);
3820
+ }
3821
+ .zx-select__status-indicator[data-tone=success] {
3822
+ color: var(--zx-color-success);
3823
+ }
3824
+ .zx-select__status-indicator[data-tone=danger] {
3825
+ color: var(--zx-color-danger);
3826
+ }
3827
+ .zx-select__status-indicator[data-indicator=dotted] {
3828
+ border-style: dotted;
3829
+ }
3830
+ .zx-select__status-indicator[data-indicator=progress]::after {
3831
+ content: "";
3832
+ inline-size: 4px;
3833
+ block-size: 4px;
3834
+ border-radius: inherit;
3835
+ background: currentColor;
3836
+ }
3837
+ .zx-select__status-indicator[data-indicator=review] {
3838
+ background:
3839
+ linear-gradient(
3840
+ 90deg,
3841
+ currentColor 50%,
3842
+ transparent 50%);
3843
+ }
3844
+ .zx-select__status-indicator[data-indicator=ready] {
3845
+ background: conic-gradient(currentColor 0 35%, transparent 35% 100%);
3846
+ }
3847
+ .zx-select__status-indicator[data-indicator=waiting] {
3848
+ background: conic-gradient(currentColor 0 70%, transparent 70% 100%);
3849
+ }
3850
+ .zx-select__status-indicator:is([data-indicator=done], [data-indicator=canceled]) {
3851
+ background: currentColor;
3852
+ }
3853
+ .zx-select__status-indicator:is([data-indicator=done], [data-indicator=canceled]) > .zx-icon {
3854
+ color: var(--zx-color-bg-raised);
3855
+ }
3856
+ .zx-select__status-indicator[data-indicator=duplicate]::after {
3857
+ content: "";
3858
+ inline-size: 8px;
3859
+ block-size: 2px;
3860
+ border-radius: var(--zx-radius-full);
3861
+ background: currentColor;
3862
+ transform: rotate(-45deg);
3863
+ }
3864
+ .zx-select__action-content {
3865
+ display: flex;
3866
+ align-items: center;
3867
+ gap: var(--zx-space-2);
3868
+ }
3869
+ .zx-select__action-icon {
3870
+ display: inline-flex;
3871
+ color: var(--zx-color-text-muted);
3872
+ }
3873
+ .zx-select__entity,
3874
+ .zx-select__entity-none {
3875
+ display: flex;
3876
+ align-items: center;
3877
+ gap: var(--zx-space-2);
3878
+ }
3879
+ .zx-select__entity-icon {
3880
+ display: inline-flex;
3881
+ flex: none;
3882
+ }
3883
+ .zx-select__entity-copy {
3884
+ display: grid;
3885
+ min-inline-size: 0;
3886
+ }
3887
+ .zx-select__entity-label {
3888
+ overflow: hidden;
3889
+ text-overflow: ellipsis;
3890
+ white-space: nowrap;
3891
+ }
3892
+ .zx-select__entity-subtitle {
3893
+ overflow: hidden;
3894
+ color: var(--zx-color-text-muted);
3895
+ font-size: var(--zx-text-xs);
3896
+ text-overflow: ellipsis;
3897
+ white-space: nowrap;
3898
+ }
3899
+ .zx-select__entity-none-icon {
3900
+ inline-size: 14px;
3901
+ block-size: 14px;
3902
+ flex: none;
3903
+ border: 2px dotted var(--zx-color-text-muted);
3904
+ border-radius: var(--zx-radius-full);
3517
3905
  }
3518
3906
  @media (prefers-reduced-motion: no-preference) {
3519
3907
  .zx-select__loading {