@zeyos/zx 4.1.0 → 4.1.1
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/CHANGELOG.md +17 -0
- package/dist/types/zeyos/icons.d.ts +2 -2
- package/dist/zx-zeyos.esm.js +7 -6
- package/dist/zx-zeyos.esm.min.js +1 -1
- package/dist/zx.css +162 -18
- package/dist/zx.esm.js +5 -4
- package/dist/zx.esm.min.js +1 -1
- package/dist/zx.global.js +5 -4
- package/dist/zx.global.min.js +1 -1
- package/dist/zx.min.css +1 -1
- package/docs/llms.md +5 -3
- package/package.json +1 -1
- package/src/components/app-icon/app-icon.css +92 -8
- package/src/components/app-icon/app-icon.js +7 -4
- package/src/components/button/button.css +34 -2
- package/src/components/card/card.css +25 -3
- package/src/components/message/message.css +7 -3
- package/src/zeyos/icons.js +5 -5
- package/styles/tokens/semantic.css +10 -2
package/dist/zx.css
CHANGED
|
@@ -143,6 +143,8 @@
|
|
|
143
143
|
--zx-color-text-muted: var(--zx-gray-500);
|
|
144
144
|
--zx-color-text-placeholder: var(--zx-gray-400);
|
|
145
145
|
--zx-color-text-invert: var(--zx-gray-50);
|
|
146
|
+
--zx-color-app-icon-glyph: var(--zx-gray-0);
|
|
147
|
+
--zx-color-app-icon-shade: var(--zx-gray-950);
|
|
146
148
|
--zx-color-accent: var(--zx-accent-600);
|
|
147
149
|
--zx-color-accent-hover: var(--zx-accent-700);
|
|
148
150
|
--zx-color-accent-active: var(--zx-accent-700);
|
|
@@ -168,15 +170,24 @@
|
|
|
168
170
|
--zx-color-glass-border: color-mix(in srgb, var(--zx-gray-0) 24%, transparent);
|
|
169
171
|
--zx-color-glass-highlight: color-mix(in srgb, var(--zx-gray-0) 24%, transparent);
|
|
170
172
|
--zx-color-glass-highlight-strong: color-mix(in srgb, var(--zx-gray-0) 38%, transparent);
|
|
173
|
+
--zx-color-app-icon-depth: color-mix(in srgb, var(--zx-color-app-icon-shade) 26%, transparent);
|
|
171
174
|
--zx-color-glass-surface: color-mix(in srgb, var(--zx-color-bg-raised) 78%, transparent);
|
|
175
|
+
--zx-color-glass-control: color-mix(in srgb, var(--zx-color-bg-control) 88%, transparent);
|
|
176
|
+
--zx-color-glass-control-hover: color-mix(in srgb, var(--zx-color-bg-hover) 76%, var(--zx-color-glass-surface));
|
|
172
177
|
--zx-glass-blur: 8px;
|
|
173
178
|
--zx-glass-saturation: 130%;
|
|
174
179
|
--zx-glass-color-strength: 82%;
|
|
175
180
|
--zx-app-icon-shadow:
|
|
176
181
|
inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 28%, transparent),
|
|
177
182
|
inset 0 -1px 0 color-mix(in srgb, var(--zx-gray-950) 16%, transparent),
|
|
178
|
-
0 5px 14px color-mix(in srgb, var(--zx-app-icon-
|
|
179
|
-
--zx-
|
|
183
|
+
0 5px 14px color-mix(in srgb, var(--zx-color-app-icon-shade) 28%, transparent);
|
|
184
|
+
--zx-app-icon-shadow-hover:
|
|
185
|
+
inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 40%, transparent),
|
|
186
|
+
inset 0 -1px 0 color-mix(in srgb, var(--zx-gray-950) 20%, transparent),
|
|
187
|
+
0 9px 22px color-mix(in srgb, var(--zx-color-app-icon-shade) 36%, transparent);
|
|
188
|
+
--zx-glass-control-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 18%, transparent), var(--zx-shadow-1);
|
|
189
|
+
--zx-glass-raised-shadow: inset 0 1px 0 color-mix(in srgb, var(--zx-gray-0) 18%, transparent), var(--zx-overlay-shadow);
|
|
190
|
+
--zx-glass-glyph-shadow: 0 1px 2px color-mix(in srgb, var(--zx-gray-950) 58%, transparent);
|
|
180
191
|
--zx-header-bg: var(--zx-gray-900);
|
|
181
192
|
--zx-header-text: var(--zx-gray-50);
|
|
182
193
|
}
|
|
@@ -508,7 +519,7 @@ svg.zx-icon {
|
|
|
508
519
|
min-block-size: var(--zx-control-height);
|
|
509
520
|
border: 1px solid var(--zx-color-border-control);
|
|
510
521
|
border-radius: var(--zx-button-radius, var(--zx-control-radius));
|
|
511
|
-
background: var(--zx-color-
|
|
522
|
+
background: var(--zx-color-glass-control);
|
|
512
523
|
color: var(--zx-color-text);
|
|
513
524
|
padding-inline: var(--zx-control-pad-x);
|
|
514
525
|
font: inherit;
|
|
@@ -516,6 +527,9 @@ svg.zx-icon {
|
|
|
516
527
|
font-weight: var(--zx-control-font-weight);
|
|
517
528
|
line-height: 1;
|
|
518
529
|
cursor: pointer;
|
|
530
|
+
-webkit-backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
531
|
+
backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
532
|
+
box-shadow: var(--zx-glass-control-shadow);
|
|
519
533
|
transition:
|
|
520
534
|
color var(--zx-dur-fast) var(--zx-ease),
|
|
521
535
|
background-color var(--zx-dur-fast) var(--zx-ease),
|
|
@@ -523,7 +537,7 @@ svg.zx-icon {
|
|
|
523
537
|
box-shadow var(--zx-dur-fast) var(--zx-ease);
|
|
524
538
|
}
|
|
525
539
|
.zx-btn:hover:not(:disabled) {
|
|
526
|
-
background: var(--zx-color-
|
|
540
|
+
background: var(--zx-color-glass-control-hover);
|
|
527
541
|
}
|
|
528
542
|
.zx-btn:active:not(:disabled) {
|
|
529
543
|
border-color: var(--zx-color-border-strong);
|
|
@@ -559,6 +573,9 @@ svg.zx-icon {
|
|
|
559
573
|
.zx-btn[data-kind=ghost] {
|
|
560
574
|
border-color: transparent;
|
|
561
575
|
background: none;
|
|
576
|
+
-webkit-backdrop-filter: none;
|
|
577
|
+
backdrop-filter: none;
|
|
578
|
+
box-shadow: none;
|
|
562
579
|
}
|
|
563
580
|
.zx-btn[data-kind=ghost]:hover:not(:disabled) {
|
|
564
581
|
border-color: transparent;
|
|
@@ -587,6 +604,29 @@ svg.zx-icon {
|
|
|
587
604
|
.zx-btn-group > .zx-btn:focus-visible {
|
|
588
605
|
z-index: 1;
|
|
589
606
|
}
|
|
607
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
608
|
+
.zx-btn {
|
|
609
|
+
background: var(--zx-color-bg-control);
|
|
610
|
+
-webkit-backdrop-filter: none;
|
|
611
|
+
backdrop-filter: none;
|
|
612
|
+
box-shadow: none;
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
@media (forced-colors: active) {
|
|
616
|
+
.zx-btn {
|
|
617
|
+
border-color: ButtonText;
|
|
618
|
+
background: ButtonFace;
|
|
619
|
+
color: ButtonText;
|
|
620
|
+
box-shadow: none;
|
|
621
|
+
-webkit-backdrop-filter: none;
|
|
622
|
+
backdrop-filter: none;
|
|
623
|
+
}
|
|
624
|
+
.zx-btn[data-kind=primary] {
|
|
625
|
+
border-color: Highlight;
|
|
626
|
+
background: Highlight;
|
|
627
|
+
color: HighlightText;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
590
630
|
|
|
591
631
|
/* src/components/badge/badge.css */
|
|
592
632
|
.zx-badge {
|
|
@@ -1419,14 +1459,34 @@ svg.zx-icon {
|
|
|
1419
1459
|
background: var(--zx-color-bg-surface);
|
|
1420
1460
|
}
|
|
1421
1461
|
.zx-card[data-variant=raised] {
|
|
1422
|
-
border: 1px solid
|
|
1423
|
-
background: var(--zx-color-
|
|
1424
|
-
|
|
1462
|
+
border: 1px solid var(--zx-color-glass-border);
|
|
1463
|
+
background: var(--zx-color-glass-surface);
|
|
1464
|
+
-webkit-backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
1465
|
+
backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
1466
|
+
box-shadow: var(--zx-glass-raised-shadow);
|
|
1425
1467
|
}
|
|
1426
1468
|
.zx-card[data-variant=filled] {
|
|
1427
1469
|
border: 1px solid transparent;
|
|
1428
1470
|
background: var(--zx-color-bg-muted);
|
|
1429
1471
|
}
|
|
1472
|
+
@media (prefers-reduced-transparency: reduce) {
|
|
1473
|
+
.zx-card[data-variant=raised] {
|
|
1474
|
+
border-color: var(--zx-color-border);
|
|
1475
|
+
background: var(--zx-color-bg-surface);
|
|
1476
|
+
-webkit-backdrop-filter: none;
|
|
1477
|
+
backdrop-filter: none;
|
|
1478
|
+
box-shadow: var(--zx-overlay-shadow);
|
|
1479
|
+
}
|
|
1480
|
+
}
|
|
1481
|
+
@media (forced-colors: active) {
|
|
1482
|
+
.zx-card[data-variant=raised] {
|
|
1483
|
+
border-color: ButtonText;
|
|
1484
|
+
background: Canvas;
|
|
1485
|
+
box-shadow: none;
|
|
1486
|
+
-webkit-backdrop-filter: none;
|
|
1487
|
+
backdrop-filter: none;
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1430
1490
|
.zx-card[data-linked=true]:hover {
|
|
1431
1491
|
background: var(--zx-color-bg-hover);
|
|
1432
1492
|
}
|
|
@@ -2077,23 +2137,31 @@ button.zx-panel__toggle:focus-visible {
|
|
|
2077
2137
|
block-size: var(--zx-app-icon-size);
|
|
2078
2138
|
overflow: hidden;
|
|
2079
2139
|
border: 1px solid var(--zx-color-glass-border);
|
|
2080
|
-
border-radius: max(var(--zx-radius-
|
|
2140
|
+
border-radius: max(var(--zx-radius-sm), calc(var(--zx-app-icon-size) * .12));
|
|
2081
2141
|
background: var(--zx-app-icon-color);
|
|
2082
2142
|
box-shadow: var(--zx-app-icon-shadow);
|
|
2083
|
-
color: var(--zx-app-icon-glyph, var(--zx-color-
|
|
2143
|
+
color: var(--zx-app-icon-glyph, var(--zx-color-app-icon-glyph));
|
|
2084
2144
|
font-size: var(--zx-app-icon-size);
|
|
2085
2145
|
vertical-align: middle;
|
|
2146
|
+
transform: translateZ(0);
|
|
2086
2147
|
}
|
|
2087
2148
|
.zx-app-icon[data-glass=subtle],
|
|
2088
2149
|
.zx-app-icon[data-glass=strong] {
|
|
2089
2150
|
background:
|
|
2090
2151
|
linear-gradient(
|
|
2091
2152
|
145deg,
|
|
2092
|
-
var(--zx-color-glass-highlight),
|
|
2093
|
-
transparent
|
|
2153
|
+
var(--zx-color-glass-highlight-strong),
|
|
2154
|
+
transparent 38%),
|
|
2155
|
+
linear-gradient(
|
|
2156
|
+
to bottom right,
|
|
2157
|
+
transparent 42%,
|
|
2158
|
+
var(--zx-color-app-icon-depth)),
|
|
2094
2159
|
color-mix(in srgb, var(--zx-app-icon-color) var(--zx-glass-color-strength), transparent);
|
|
2160
|
+
-webkit-backdrop-filter: blur(calc(var(--zx-glass-blur) * .55)) saturate(var(--zx-glass-saturation));
|
|
2161
|
+
backdrop-filter: blur(calc(var(--zx-glass-blur) * .55)) saturate(var(--zx-glass-saturation));
|
|
2095
2162
|
}
|
|
2096
2163
|
.zx-app-icon[data-glass=strong] {
|
|
2164
|
+
-webkit-backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
2097
2165
|
backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
2098
2166
|
}
|
|
2099
2167
|
.zx-app-icon[data-glass=none] {
|
|
@@ -2103,41 +2171,79 @@ button.zx-panel__toggle:focus-visible {
|
|
|
2103
2171
|
.zx-app-icon[data-glass=none] .zx-app-icon__shine {
|
|
2104
2172
|
display: none;
|
|
2105
2173
|
}
|
|
2174
|
+
.zx-app-icon[data-glass=none]::after {
|
|
2175
|
+
display: none;
|
|
2176
|
+
}
|
|
2106
2177
|
.zx-app-icon[data-selected] {
|
|
2107
2178
|
outline: 2px solid var(--zx-color-bg-page);
|
|
2108
2179
|
box-shadow: 0 0 0 3px var(--zx-color-ring), var(--zx-overlay-shadow);
|
|
2109
2180
|
}
|
|
2110
2181
|
.zx-app-icon__shine {
|
|
2111
2182
|
position: absolute;
|
|
2112
|
-
z-index:
|
|
2113
|
-
inset: 1px
|
|
2114
|
-
block-size:
|
|
2183
|
+
z-index: 1;
|
|
2184
|
+
inset: 1px 13% auto;
|
|
2185
|
+
block-size: 38%;
|
|
2115
2186
|
border-radius: 999px;
|
|
2116
2187
|
background:
|
|
2117
2188
|
linear-gradient(
|
|
2118
2189
|
to bottom,
|
|
2119
2190
|
var(--zx-color-glass-highlight-strong),
|
|
2120
2191
|
transparent);
|
|
2121
|
-
filter: blur(
|
|
2192
|
+
filter: blur(1px);
|
|
2193
|
+
pointer-events: none;
|
|
2194
|
+
}
|
|
2195
|
+
.zx-app-icon::after {
|
|
2196
|
+
content: "";
|
|
2197
|
+
position: absolute;
|
|
2198
|
+
z-index: 1;
|
|
2199
|
+
inset: 0;
|
|
2200
|
+
border-radius: inherit;
|
|
2201
|
+
box-shadow: inset 0 0 0 1px var(--zx-color-glass-highlight);
|
|
2122
2202
|
pointer-events: none;
|
|
2123
2203
|
}
|
|
2124
2204
|
.zx-app-icon__glyph {
|
|
2125
|
-
|
|
2205
|
+
position: absolute;
|
|
2206
|
+
z-index: 2;
|
|
2207
|
+
inset-block-start: 50%;
|
|
2208
|
+
inset-inline-start: 50%;
|
|
2209
|
+
display: grid;
|
|
2126
2210
|
place-items: center;
|
|
2127
2211
|
inline-size: var(--zx-app-icon-glyph-size);
|
|
2128
2212
|
block-size: var(--zx-app-icon-glyph-size);
|
|
2213
|
+
margin: 0;
|
|
2214
|
+
padding: 0;
|
|
2129
2215
|
font-size: var(--zx-app-icon-glyph-size);
|
|
2130
2216
|
line-height: 1;
|
|
2131
2217
|
filter: drop-shadow(var(--zx-glass-glyph-shadow));
|
|
2218
|
+
transform: translate(-50%, -50%);
|
|
2132
2219
|
}
|
|
2133
2220
|
.zx-app-icon__glyph > .zx-icon,
|
|
2134
2221
|
.zx-app-icon__glyph > svg,
|
|
2135
2222
|
.zx-app-icon__glyph > i {
|
|
2223
|
+
display: grid;
|
|
2224
|
+
place-items: center;
|
|
2136
2225
|
inline-size: 1em;
|
|
2137
2226
|
block-size: 1em;
|
|
2227
|
+
margin: 0;
|
|
2228
|
+
color: inherit;
|
|
2229
|
+
font-size: 1em;
|
|
2230
|
+
line-height: 1;
|
|
2231
|
+
text-align: center;
|
|
2232
|
+
vertical-align: middle;
|
|
2233
|
+
}
|
|
2234
|
+
.zx-app-icon__glyph > i::before {
|
|
2235
|
+
display: block;
|
|
2236
|
+
line-height: 1;
|
|
2237
|
+
}
|
|
2238
|
+
.zx-app-icon__glyph svg [fill]:not([fill=none]) {
|
|
2239
|
+
fill: currentColor;
|
|
2240
|
+
}
|
|
2241
|
+
.zx-app-icon__glyph svg [stroke]:not([stroke=none]) {
|
|
2242
|
+
stroke: currentColor;
|
|
2138
2243
|
}
|
|
2139
2244
|
.zx-app-icon__badge {
|
|
2140
2245
|
position: absolute;
|
|
2246
|
+
z-index: 3;
|
|
2141
2247
|
inset-block-end: 1px;
|
|
2142
2248
|
inset-inline-end: 1px;
|
|
2143
2249
|
display: grid;
|
|
@@ -2153,9 +2259,37 @@ button.zx-panel__toggle:focus-visible {
|
|
|
2153
2259
|
font-weight: 700;
|
|
2154
2260
|
line-height: 1;
|
|
2155
2261
|
}
|
|
2262
|
+
.zx-app-icon:hover {
|
|
2263
|
+
border-color: var(--zx-color-glass-highlight-strong);
|
|
2264
|
+
box-shadow: var(--zx-app-icon-shadow-hover);
|
|
2265
|
+
filter: brightness(1.06) saturate(1.08);
|
|
2266
|
+
}
|
|
2267
|
+
.zx-app-icon:focus-visible,
|
|
2268
|
+
:is(a, button, [role=button]):focus-visible > .zx-app-icon {
|
|
2269
|
+
outline: none;
|
|
2270
|
+
box-shadow: var(--zx-focus-ring), var(--zx-app-icon-shadow-hover);
|
|
2271
|
+
}
|
|
2272
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
2273
|
+
.zx-app-icon {
|
|
2274
|
+
transition:
|
|
2275
|
+
border-color var(--zx-dur-fast) var(--zx-ease),
|
|
2276
|
+
box-shadow var(--zx-dur-fast) var(--zx-ease),
|
|
2277
|
+
filter var(--zx-dur-fast) var(--zx-ease),
|
|
2278
|
+
transform var(--zx-dur-fast) var(--zx-ease);
|
|
2279
|
+
}
|
|
2280
|
+
.zx-app-icon:hover {
|
|
2281
|
+
transform: translateY(-2px) scale(1.035);
|
|
2282
|
+
}
|
|
2283
|
+
}
|
|
2156
2284
|
@media (prefers-reduced-transparency: reduce) {
|
|
2157
2285
|
.zx-app-icon[data-glass=strong] {
|
|
2158
2286
|
background: var(--zx-app-icon-color);
|
|
2287
|
+
-webkit-backdrop-filter: none;
|
|
2288
|
+
backdrop-filter: none;
|
|
2289
|
+
}
|
|
2290
|
+
.zx-app-icon[data-glass=subtle] {
|
|
2291
|
+
background: var(--zx-app-icon-color);
|
|
2292
|
+
-webkit-backdrop-filter: none;
|
|
2159
2293
|
backdrop-filter: none;
|
|
2160
2294
|
}
|
|
2161
2295
|
}
|
|
@@ -2165,6 +2299,14 @@ button.zx-panel__toggle:focus-visible {
|
|
|
2165
2299
|
background: ButtonFace;
|
|
2166
2300
|
color: ButtonText;
|
|
2167
2301
|
box-shadow: none;
|
|
2302
|
+
filter: none;
|
|
2303
|
+
transform: none;
|
|
2304
|
+
-webkit-backdrop-filter: none;
|
|
2305
|
+
backdrop-filter: none;
|
|
2306
|
+
}
|
|
2307
|
+
.zx-app-icon::after,
|
|
2308
|
+
.zx-app-icon__shine {
|
|
2309
|
+
display: none;
|
|
2168
2310
|
}
|
|
2169
2311
|
}
|
|
2170
2312
|
|
|
@@ -2842,8 +2984,9 @@ button.zx-panel__toggle:focus-visible {
|
|
|
2842
2984
|
@supports (backdrop-filter: blur(1px)) {
|
|
2843
2985
|
.zx-message__toast {
|
|
2844
2986
|
background: color-mix(in srgb, var(--zx-color-info-bg) 38%, var(--zx-color-glass-surface));
|
|
2845
|
-
backdrop-filter: blur(var(--zx-
|
|
2846
|
-
|
|
2987
|
+
-webkit-backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
2988
|
+
backdrop-filter: blur(var(--zx-glass-blur)) saturate(var(--zx-glass-saturation));
|
|
2989
|
+
box-shadow: var(--zx-glass-raised-shadow);
|
|
2847
2990
|
}
|
|
2848
2991
|
.zx-message__toast[data-kind=success] {
|
|
2849
2992
|
background: color-mix(in srgb, var(--zx-color-success-bg) 38%, var(--zx-color-glass-surface));
|
|
@@ -2857,6 +3000,7 @@ button.zx-panel__toggle:focus-visible {
|
|
|
2857
3000
|
}
|
|
2858
3001
|
@media (prefers-reduced-transparency: reduce) {
|
|
2859
3002
|
.zx-message__toast {
|
|
3003
|
+
-webkit-backdrop-filter: none;
|
|
2860
3004
|
backdrop-filter: none;
|
|
2861
3005
|
}
|
|
2862
3006
|
.zx-message__toast[data-kind=info] {
|
package/dist/zx.esm.js
CHANGED
|
@@ -19646,11 +19646,12 @@ var AppIcon = class extends Component {
|
|
|
19646
19646
|
class: "zx-app-icon__badge",
|
|
19647
19647
|
ariaHidden: "true"
|
|
19648
19648
|
}, String(state.badge));
|
|
19649
|
-
|
|
19649
|
+
const children = [
|
|
19650
19650
|
h("span", { class: "zx-app-icon__shine", ariaHidden: "true" }),
|
|
19651
|
-
h("span", { class: "zx-app-icon__glyph", ariaHidden: "true" }, visual)
|
|
19652
|
-
|
|
19653
|
-
);
|
|
19651
|
+
h("span", { class: "zx-app-icon__glyph", ariaHidden: "true" }, visual)
|
|
19652
|
+
];
|
|
19653
|
+
if (badge2) children.push(badge2);
|
|
19654
|
+
this.el.replaceChildren(...children);
|
|
19654
19655
|
}
|
|
19655
19656
|
};
|
|
19656
19657
|
function appIcon(options = {}) {
|