anentrypoint-design 0.0.127 → 0.0.130
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/app-shell.css +893 -32
- package/colors_and_type.css +43 -4
- package/community.css +133 -14
- package/dist/247420.css +1289 -52
- package/dist/247420.js +15 -15
- package/package.json +1 -1
- package/src/components/chat.js +124 -56
- package/src/components/community.js +76 -18
- package/src/components/content.js +67 -13
- package/src/components/editor-primitives.js +423 -10
- package/src/components/files-modals.js +49 -0
- package/src/components/files.js +64 -20
- package/src/components/shell.js +50 -20
- package/src/components.js +9 -2
- package/src/kits/os/theme.css +6 -2
- package/src/markdown-cache-perf-test.js +173 -0
- package/src/markdown-cache.js +172 -0
package/colors_and_type.css
CHANGED
|
@@ -136,13 +136,50 @@
|
|
|
136
136
|
--measure: 68ch;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
+
/* ============================================================
|
|
140
|
+
Focus-visible styles for keyboard navigation
|
|
141
|
+
============================================================ */
|
|
142
|
+
:focus-visible {
|
|
143
|
+
outline: 2px solid var(--accent);
|
|
144
|
+
outline-offset: 2px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* Button variants with focus-visible */
|
|
148
|
+
.btn:focus-visible,
|
|
149
|
+
.btn-primary:focus-visible,
|
|
150
|
+
.btn-ghost:focus-visible {
|
|
151
|
+
outline: 2px solid var(--accent);
|
|
152
|
+
outline-offset: 2px;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Link focus-visible */
|
|
156
|
+
a:focus-visible,
|
|
157
|
+
[role="link"]:focus-visible {
|
|
158
|
+
outline: 2px solid var(--accent);
|
|
159
|
+
outline-offset: 2px;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* Form inputs with focus-visible */
|
|
163
|
+
input:focus-visible,
|
|
164
|
+
textarea:focus-visible,
|
|
165
|
+
select:focus-visible {
|
|
166
|
+
outline: 2px solid var(--accent);
|
|
167
|
+
outline-offset: 1px;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/* Interactive element focus-visible */
|
|
171
|
+
[tabindex]:focus-visible {
|
|
172
|
+
outline: 2px solid var(--accent);
|
|
173
|
+
outline-offset: 2px;
|
|
174
|
+
}
|
|
175
|
+
|
|
139
176
|
[data-theme="ink"] {
|
|
140
177
|
--bg: var(--ink);
|
|
141
178
|
--bg-2: var(--ink-2);
|
|
142
|
-
--bg-3: #
|
|
179
|
+
--bg-3: #464650;
|
|
143
180
|
--fg: var(--paper);
|
|
144
181
|
--fg-2: var(--paper-2);
|
|
145
|
-
--fg-3: #
|
|
182
|
+
--fg-3: #B4B4BC;
|
|
146
183
|
--panel-bg: var(--bg);
|
|
147
184
|
--panel-bg-2: var(--bg-2);
|
|
148
185
|
--panel-0: var(--bg);
|
|
@@ -154,16 +191,17 @@
|
|
|
154
191
|
--panel-text-3: var(--fg-3);
|
|
155
192
|
--accent: var(--accent-bright, var(--green-2));
|
|
156
193
|
--accent-fg: var(--ink);
|
|
194
|
+
--accent-bright: var(--green-2);
|
|
157
195
|
}
|
|
158
196
|
|
|
159
197
|
@media (prefers-color-scheme: dark) {
|
|
160
198
|
[data-theme="auto"] {
|
|
161
199
|
--bg: var(--ink);
|
|
162
200
|
--bg-2: var(--ink-2);
|
|
163
|
-
--bg-3: #
|
|
201
|
+
--bg-3: #464650;
|
|
164
202
|
--fg: var(--paper);
|
|
165
203
|
--fg-2: var(--paper-2);
|
|
166
|
-
--fg-3: #
|
|
204
|
+
--fg-3: #B4B4BC;
|
|
167
205
|
--panel-bg: var(--bg);
|
|
168
206
|
--panel-bg-2: var(--bg-2);
|
|
169
207
|
--panel-0: var(--bg);
|
|
@@ -175,6 +213,7 @@
|
|
|
175
213
|
--panel-text-3: var(--fg-3);
|
|
176
214
|
--accent: var(--accent-bright, var(--green-2));
|
|
177
215
|
--accent-fg: var(--ink);
|
|
216
|
+
--accent-bright: var(--green-2);
|
|
178
217
|
}
|
|
179
218
|
}
|
|
180
219
|
|
package/community.css
CHANGED
|
@@ -275,8 +275,9 @@
|
|
|
275
275
|
display: inline-flex;
|
|
276
276
|
align-items: center;
|
|
277
277
|
justify-content: center;
|
|
278
|
-
width:
|
|
279
|
-
height:
|
|
278
|
+
width: 44px;
|
|
279
|
+
height: 44px;
|
|
280
|
+
padding: 8px;
|
|
280
281
|
border: 0;
|
|
281
282
|
background: transparent;
|
|
282
283
|
color: var(--fg-3);
|
|
@@ -290,6 +291,10 @@
|
|
|
290
291
|
color: var(--fg);
|
|
291
292
|
background: color-mix(in oklab, var(--fg) 8%, transparent);
|
|
292
293
|
}
|
|
294
|
+
.cm-cat-add:focus-visible {
|
|
295
|
+
outline: 2px solid var(--accent);
|
|
296
|
+
outline-offset: 2px;
|
|
297
|
+
}
|
|
293
298
|
|
|
294
299
|
.cm-cat-channels {
|
|
295
300
|
display: flex;
|
|
@@ -374,11 +379,42 @@
|
|
|
374
379
|
border-radius: 50%;
|
|
375
380
|
border: 2px solid color-mix(in oklab, var(--sun) 30%, transparent);
|
|
376
381
|
border-top-color: var(--sun);
|
|
377
|
-
animation: cm-spin 700ms linear infinite;
|
|
378
382
|
flex-shrink: 0;
|
|
379
383
|
}
|
|
380
|
-
|
|
381
|
-
|
|
384
|
+
|
|
385
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
386
|
+
.cm-ch-spinner {
|
|
387
|
+
animation: cm-spin var(--dur-slow) steps(8, end) infinite;
|
|
388
|
+
will-change: transform;
|
|
389
|
+
contain: layout;
|
|
390
|
+
}
|
|
391
|
+
@keyframes cm-spin {
|
|
392
|
+
to { transform: rotate(360deg); }
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.cm-ch-icon.voice-active-badge {
|
|
397
|
+
color: var(--green-2);
|
|
398
|
+
text-shadow: 0 0 8px var(--green-2);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
.cm-ch-voice-badge {
|
|
402
|
+
width: 6px;
|
|
403
|
+
height: 6px;
|
|
404
|
+
border-radius: 50%;
|
|
405
|
+
background: var(--green-2);
|
|
406
|
+
flex-shrink: 0;
|
|
407
|
+
position: relative;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
411
|
+
.cm-ch-voice-badge {
|
|
412
|
+
animation: cm-voice-pulse 2s ease-in-out infinite;
|
|
413
|
+
}
|
|
414
|
+
@keyframes cm-voice-pulse {
|
|
415
|
+
0%, 100% { opacity: 1; transform: scale(1); }
|
|
416
|
+
50% { opacity: 0.5; transform: scale(1.3); }
|
|
417
|
+
}
|
|
382
418
|
}
|
|
383
419
|
|
|
384
420
|
.cm-ch-name {
|
|
@@ -418,8 +454,9 @@
|
|
|
418
454
|
.cm-channel-item.active .cm-ch-actions { opacity: 0.6; }
|
|
419
455
|
|
|
420
456
|
.cm-ch-action-btn {
|
|
421
|
-
width:
|
|
422
|
-
height:
|
|
457
|
+
width: 44px;
|
|
458
|
+
height: 44px;
|
|
459
|
+
padding: 8px;
|
|
423
460
|
display: inline-flex;
|
|
424
461
|
align-items: center;
|
|
425
462
|
justify-content: center;
|
|
@@ -435,6 +472,10 @@
|
|
|
435
472
|
color: var(--fg);
|
|
436
473
|
background: color-mix(in oklab, var(--fg) 10%, transparent);
|
|
437
474
|
}
|
|
475
|
+
.cm-ch-action-btn:focus-visible {
|
|
476
|
+
outline: 2px solid var(--accent);
|
|
477
|
+
outline-offset: 2px;
|
|
478
|
+
}
|
|
438
479
|
|
|
439
480
|
/* Voice users nested under a voice channel */
|
|
440
481
|
.cm-ch-voice-users {
|
|
@@ -529,11 +570,16 @@
|
|
|
529
570
|
border-radius: 50%;
|
|
530
571
|
background: var(--green-2);
|
|
531
572
|
box-shadow: 0 0 0 3px color-mix(in oklab, var(--green-2) 30%, transparent);
|
|
532
|
-
animation: cm-pulse 1.6s ease-in-out infinite;
|
|
533
573
|
}
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
574
|
+
|
|
575
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
576
|
+
.cm-vs-label::before {
|
|
577
|
+
animation: cm-pulse 1.6s ease-in-out infinite;
|
|
578
|
+
}
|
|
579
|
+
@keyframes cm-pulse {
|
|
580
|
+
0%, 100% { box-shadow: 0 0 0 3px color-mix(in oklab, var(--green-2) 30%, transparent); }
|
|
581
|
+
50% { box-shadow: 0 0 0 6px color-mix(in oklab, var(--green-2) 0%, transparent); }
|
|
582
|
+
}
|
|
537
583
|
}
|
|
538
584
|
|
|
539
585
|
.cm-vs-channel {
|
|
@@ -752,12 +798,16 @@
|
|
|
752
798
|
scrollbar-width: thin;
|
|
753
799
|
scrollbar-color: color-mix(in oklab, var(--fg) 18%, transparent) transparent;
|
|
754
800
|
transition: width var(--dur-base) var(--ease), flex-basis var(--dur-base) var(--ease);
|
|
801
|
+
will-change: width, flex-basis, opacity, transform; contain: layout style;
|
|
755
802
|
}
|
|
756
803
|
.cm-member-list:not(.open) {
|
|
757
804
|
width: 0;
|
|
758
805
|
flex-basis: 0;
|
|
759
806
|
padding: 0;
|
|
760
807
|
overflow: hidden;
|
|
808
|
+
visibility: hidden;
|
|
809
|
+
opacity: 0;
|
|
810
|
+
transform: translateX(100%);
|
|
761
811
|
}
|
|
762
812
|
.cm-member-list::-webkit-scrollbar { width: 8px; }
|
|
763
813
|
.cm-member-list::-webkit-scrollbar-thumb {
|
|
@@ -785,6 +835,8 @@
|
|
|
785
835
|
color: var(--fg-2);
|
|
786
836
|
cursor: pointer;
|
|
787
837
|
transition: background var(--dur-snap) var(--ease), color var(--dur-snap) var(--ease);
|
|
838
|
+
max-width: 100%;
|
|
839
|
+
min-width: 0;
|
|
788
840
|
}
|
|
789
841
|
.cm-member-item:hover {
|
|
790
842
|
background: color-mix(in oklab, var(--fg) 6%, transparent);
|
|
@@ -926,8 +978,75 @@
|
|
|
926
978
|
.cm-server-icon,
|
|
927
979
|
.cm-server-add,
|
|
928
980
|
.cm-server-back {
|
|
929
|
-
width:
|
|
930
|
-
height:
|
|
981
|
+
width: 44px;
|
|
982
|
+
height: 44px;
|
|
983
|
+
padding: 4px;
|
|
984
|
+
}
|
|
985
|
+
.cm-channel-sidebar {
|
|
986
|
+
left: 56px;
|
|
987
|
+
width: 80vw;
|
|
988
|
+
max-width: 200px;
|
|
989
|
+
}
|
|
990
|
+
.cm-channel-sidebar.open {
|
|
991
|
+
width: 80vw;
|
|
992
|
+
max-width: 200px;
|
|
993
|
+
}
|
|
994
|
+
|
|
995
|
+
/* Mobile touch target fixes for icon buttons */
|
|
996
|
+
.cm-cat-add,
|
|
997
|
+
.cm-ch-action-btn {
|
|
998
|
+
width: 44px;
|
|
999
|
+
height: 44px;
|
|
1000
|
+
padding: 8px;
|
|
1001
|
+
}
|
|
1002
|
+
.cm-ch-icon {
|
|
1003
|
+
flex: 0 0 24px;
|
|
1004
|
+
width: 24px;
|
|
1005
|
+
height: 24px;
|
|
1006
|
+
}
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
/* ---------- a11y polish: focus-visible coverage on community interactive elements ---------- */
|
|
1010
|
+
/* Every interactive surface with a :hover state must also have a :focus-visible state so
|
|
1011
|
+
keyboard users get equivalent feedback. The selectors here mirror the existing :hover rules. */
|
|
1012
|
+
|
|
1013
|
+
.cm-server-icon:focus-visible,
|
|
1014
|
+
.cm-server-back:focus-visible,
|
|
1015
|
+
.cm-server-add:focus-visible {
|
|
1016
|
+
outline: 2px solid var(--accent);
|
|
1017
|
+
outline-offset: 2px;
|
|
1018
|
+
border-radius: var(--r-2);
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
.cm-channel-item:focus-visible {
|
|
1022
|
+
outline: 2px solid var(--accent);
|
|
1023
|
+
outline-offset: -2px;
|
|
1024
|
+
border-radius: var(--r-1);
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
.cm-member-item:focus-visible {
|
|
1028
|
+
outline: 2px solid var(--accent);
|
|
1029
|
+
outline-offset: -2px;
|
|
1030
|
+
border-radius: var(--r-1);
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
.cm-vs-btn:focus-visible,
|
|
1034
|
+
.cm-user-btn:focus-visible {
|
|
1035
|
+
outline: 2px solid var(--accent);
|
|
1036
|
+
outline-offset: 2px;
|
|
1037
|
+
border-radius: var(--r-1);
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
/* ---------- prefers-reduced-motion: kill the transitions that were not previously guarded ---------- */
|
|
1041
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1042
|
+
.cm-server-icon,
|
|
1043
|
+
.cm-channel-item,
|
|
1044
|
+
.cm-member-item,
|
|
1045
|
+
.cm-vs-btn,
|
|
1046
|
+
.cm-user-btn,
|
|
1047
|
+
.cm-ch-spinner,
|
|
1048
|
+
.cm-ch-voice-badge {
|
|
1049
|
+
transition: none !important;
|
|
1050
|
+
animation: none !important;
|
|
931
1051
|
}
|
|
932
|
-
.cm-channel-sidebar { left: 56px; }
|
|
933
1052
|
}
|