anentrypoint-design 0.0.478 → 0.0.481
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/chat.css +4 -4
- package/colors_and_type.css +33 -3
- package/community.css +22 -8
- package/dist/247420.css +195 -59
- package/dist/247420.js +24 -24
- package/package.json +1 -1
- package/src/community-app.js +4 -2
- package/src/components/community/navigation.js +2 -2
- package/src/components/community/presence.js +10 -4
- package/src/components/community/views.js +8 -2
- package/src/components/content/avatar.js +30 -0
- package/src/components/content.js +2 -2
- package/src/components/overlay-primitives/emoji-picker.js +15 -3
- package/src/components/shell/workspace-shell.js +1 -1
- package/src/components/theme-toggle.js +8 -3
- package/src/css/app-shell/base.css +18 -0
- package/src/css/app-shell/catalog-theme.css +14 -2
- package/src/css/app-shell/chat-polish.css +12 -0
- package/src/css/app-shell/collab.css +5 -0
- package/src/css/app-shell/data-density.css +4 -0
- package/src/css/app-shell/files.css +1 -1
- package/src/css/app-shell/hero-content.css +1 -1
- package/src/css/app-shell/loading-alerts.css +14 -12
- package/src/css/app-shell/otp-input.css +2 -2
- package/src/css/app-shell/plugins-config.css +3 -0
- package/src/css/app-shell/primitives.css +13 -4
- package/src/css/app-shell/responsive.css +13 -0
- package/src/css/app-shell/responsive2-workspace.css +4 -1
- package/src/css/app-shell/states-interactions.css +20 -4
- package/src/kits/os/app-panes.css +3 -2
- package/src/kits/os/icons.js +16 -0
- package/src/kits/os/shell-geometry.js +2 -2
- package/src/kits/os/shell.js +24 -3
- package/src/kits/os/theme.css +251 -78
- package/src/kits/os/wm.css +19 -6
- package/src/kits/spoint/host-join-lobby.css +3 -3
- package/src/web-components/freddie-chat.js +2 -2
- package/types/components.d.ts +4 -0
package/src/kits/os/icons.js
CHANGED
|
@@ -29,6 +29,22 @@ const OS_PATHS = {
|
|
|
29
29
|
// other icon in this kit instead of raw ASCII glyph text (-/+/x).
|
|
30
30
|
minimize: '<path d="M5 12h14"/>',
|
|
31
31
|
maximize: '<rect x="5" y="5" width="14" height="14" rx="1"/>',
|
|
32
|
+
// Remaining os-app glyphs, added so every app-menu entry in the shared
|
|
33
|
+
// registry (thebird's apps.js) resolves a real icon instead of falling
|
|
34
|
+
// through buildAppEntries()'s `icons[app.id] || ''` empty-span case.
|
|
35
|
+
// Concepts that already exist in ICON_PATHS are reused directly; the rest
|
|
36
|
+
// get their own path data following this module's own house style.
|
|
37
|
+
workspaces: ICON_PATHS.grid,
|
|
38
|
+
gm: ICON_PATHS.activity,
|
|
39
|
+
todo: ICON_PATHS['check-check'],
|
|
40
|
+
config: ICON_PATHS.settings,
|
|
41
|
+
notes: ICON_PATHS['file-text'],
|
|
42
|
+
counter: ICON_PATHS.plus,
|
|
43
|
+
snake: '<path d="M4 6c0 4 3 2 3 6s-3 2-3 6M17 6a3 3 0 0 1 0 6h-6a3 3 0 0 0 0 6h6"/>',
|
|
44
|
+
'snake-ecs': '<path d="M4 6c0 4 3 2 3 6s-3 2-3 6M17 6a3 3 0 0 1 0 6h-6a3 3 0 0 0 0 6h6"/><circle cx="19" cy="6" r="1.5" fill="currentColor"/>',
|
|
45
|
+
boids: '<path d="M12 4l4 8-4-2-4 2z"/><path d="M5 15l3 5-3-1-2 1z"/><path d="M19 15l-3 5 3-1 2 1z"/>',
|
|
46
|
+
'level-editor': '<rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18M3 9h18"/>',
|
|
47
|
+
'game-player': '<rect x="2" y="7" width="20" height="10" rx="4"/><path d="M8 10v4M6 12h4"/><circle cx="16" cy="10.5" r="1"/><circle cx="18.5" cy="13" r="1"/>',
|
|
32
48
|
};
|
|
33
49
|
|
|
34
50
|
// iconMarkup() only resolves names already registered in the shared
|
|
@@ -37,8 +37,8 @@ export function computeSpawnRect(sz, openCount) {
|
|
|
37
37
|
const scaled = small ? sz : scaleSpawnSize(sz, vw, vh);
|
|
38
38
|
const w = Math.min(scaled.w, vw);
|
|
39
39
|
const h = Math.min(scaled.h, vh);
|
|
40
|
-
const x = Math.max(0, Math.min(100 + (openCount *
|
|
41
|
-
const y = Math.max(0, Math.min(80 + (openCount *
|
|
40
|
+
const x = Math.max(0, Math.min(100 + (openCount * 36) % 288, vw - w));
|
|
41
|
+
const y = Math.max(0, Math.min(80 + (openCount * 28) % 224, vh - h));
|
|
42
42
|
return { w, h, x, y, maximized: small };
|
|
43
43
|
}
|
|
44
44
|
|
package/src/kits/os/shell.js
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
8
|
ensureCss, buildMenubar, buildAppsMenu, buildSideRail, buildDrawer,
|
|
9
|
-
buildTaskbar, buildAppEntries,
|
|
9
|
+
buildTaskbar, buildAppEntries, ic,
|
|
10
10
|
} from './shell-chrome.js';
|
|
11
|
+
import { icons } from './icons.js';
|
|
11
12
|
import { computeSpawnRect, reflowWindows } from './shell-geometry.js';
|
|
12
13
|
|
|
13
14
|
export function createDesktopShell({ root = document.body, wm, registry, brand = 'desktop', themeUrl, onNewInstance, autoBoot = false } = {}) {
|
|
@@ -171,8 +172,15 @@ export function createDesktopShell({ root = document.body, wm, registry, brand =
|
|
|
171
172
|
const t = document.createElement('button');
|
|
172
173
|
t.className = 'os-task' + (w.focused ? ' focused' : '');
|
|
173
174
|
t.type = 'button';
|
|
174
|
-
t.textContent = w.title;
|
|
175
175
|
t.dataset.winId = w.id;
|
|
176
|
+
// Same icon-resolution order as buildAppEntries (menu/rail/drawer):
|
|
177
|
+
// the registered app's own icon, falling back to the id-keyed
|
|
178
|
+
// default set — so a taskbar entry always matches its apps-menu
|
|
179
|
+
// counterpart instead of reading as unrelated text-only chrome.
|
|
180
|
+
const app = w.appId && (typeof registry.get === 'function' ? registry.get(w.appId) : registry[w.appId]);
|
|
181
|
+
const iconSvg = (app && app.icon) || icons[w.appId] || '';
|
|
182
|
+
if (iconSvg) t.append(ic(iconSvg));
|
|
183
|
+
t.append(Object.assign(document.createElement('span'), { className: 'os-task-label', textContent: w.title }));
|
|
176
184
|
// aria-current announces which window is the active one; a
|
|
177
185
|
// sighted user reads this from the .focused visual state alone.
|
|
178
186
|
if (w.focused) t.setAttribute('aria-current', 'true');
|
|
@@ -194,7 +202,20 @@ export function createDesktopShell({ root = document.body, wm, registry, brand =
|
|
|
194
202
|
function makeLoadingNode() {
|
|
195
203
|
const n = document.createElement('div');
|
|
196
204
|
n.className = 'app-pane os-app-loading';
|
|
197
|
-
n.
|
|
205
|
+
n.setAttribute('role', 'status');
|
|
206
|
+
n.setAttribute('aria-live', 'polite');
|
|
207
|
+
n.setAttribute('aria-label', 'loading');
|
|
208
|
+
const spinner = document.createElement('div');
|
|
209
|
+
spinner.className = 'ds-spinner';
|
|
210
|
+
spinner.setAttribute('aria-hidden', 'true');
|
|
211
|
+
spinner.appendChild(document.createElement('span'));
|
|
212
|
+
spinner.appendChild(document.createElement('span'));
|
|
213
|
+
spinner.appendChild(document.createElement('span'));
|
|
214
|
+
const label = document.createElement('span');
|
|
215
|
+
label.className = 'os-app-loading-label';
|
|
216
|
+
label.textContent = 'loading…';
|
|
217
|
+
n.appendChild(spinner);
|
|
218
|
+
n.appendChild(label);
|
|
198
219
|
return n;
|
|
199
220
|
}
|
|
200
221
|
|