anentrypoint-design 0.0.166 → 0.0.168
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/README.md +1 -1
- package/app-shell.css +7 -7
- package/chat.css +13 -13
- package/colors_and_type.css +69 -0
- package/community.css +3 -3
- package/dist/247420.css +192 -63
- package/dist/247420.js +68 -36
- package/package.json +9 -3
- package/src/community-app.js +1 -1
- package/src/components/chat.js +1 -1
- package/src/components/content.js +2 -2
- package/src/components/freddie.js +3 -3
- package/src/components/shell.js +2 -2
- package/src/index.js +5 -1
- package/src/kits/os/freddie/pages-core.js +3 -3
- package/src/kits/os/freddie/pages-os.js +1 -1
- package/src/kits/os/freddie/pages-tools.js +1 -1
- package/src/kits/os/freddie/routes.js +1 -1
- package/src/kits/os/freddie-dashboard.css +7 -7
- package/src/kits/os/theme.css +129 -135
- package/src/kits/spoint/index.js +8 -0
- package/src/kits/spoint/loading-screen.css +67 -0
- package/src/kits/spoint/loading-screen.js +75 -0
- package/src/markdown-cache-perf-test.js +2 -2
- package/src/page-html.js +44 -12
- package/src/theme.js +62 -9
- package/src/web-components/ds-chat.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "anentrypoint-design",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.168",
|
|
4
4
|
"description": "247420 design system SDK — webjsx + modified ripple-ui, single-file ESM bundle for reproducible use of the AnEntrypoint design.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/247420.js",
|
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
"default": "./dist/247420.js"
|
|
12
12
|
},
|
|
13
13
|
"./css": "./dist/247420.css",
|
|
14
|
+
"./kits/spoint": {
|
|
15
|
+
"import": "./src/kits/spoint/index.js",
|
|
16
|
+
"default": "./src/kits/spoint/index.js"
|
|
17
|
+
},
|
|
18
|
+
"./kits/spoint/loading-screen.js": "./src/kits/spoint/loading-screen.js",
|
|
19
|
+
"./kits/spoint/loading-screen.css": "./src/kits/spoint/loading-screen.css",
|
|
14
20
|
"./kits/os": {
|
|
15
21
|
"import": "./src/kits/os/index.js",
|
|
16
22
|
"default": "./src/kits/os/index.js"
|
|
@@ -56,8 +62,8 @@
|
|
|
56
62
|
"README.md"
|
|
57
63
|
],
|
|
58
64
|
"scripts": {
|
|
59
|
-
"
|
|
60
|
-
"
|
|
65
|
+
"lint:tokens": "node scripts/lint-tokens.mjs",
|
|
66
|
+
"build": "node scripts/build.mjs"
|
|
61
67
|
},
|
|
62
68
|
"repository": {
|
|
63
69
|
"type": "git",
|
package/src/community-app.js
CHANGED
|
@@ -186,7 +186,7 @@ export function mountCommunityApp(root, adapter = {}) {
|
|
|
186
186
|
h('nav', {},
|
|
187
187
|
h('a', { href: '../', title: 'Home', onclick: (e) => { if (A.goHome) { e.preventDefault(); A.goHome(); } } }, 'home'),
|
|
188
188
|
h('a', { href: '#', title: 'Servers', onclick: (e) => { e.preventDefault(); A.openServers && A.openServers(); } }, 'servers'),
|
|
189
|
-
h('a', { href: 'https://github.com/AnEntrypoint/zellous', target: '_blank', rel: 'noopener' }, 'source
|
|
189
|
+
h('a', { href: 'https://github.com/AnEntrypoint/zellous', target: '_blank', rel: 'noopener' }, 'source ->'),
|
|
190
190
|
),
|
|
191
191
|
),
|
|
192
192
|
MobileHeader({ channelType: ch.type || 'text', channelName: ch.name || '', onMenu: () => A.openMobileMenu && A.openMobileMenu(), onMembers: () => A.toggleMembers && A.toggleMembers() }),
|
package/src/components/chat.js
CHANGED
|
@@ -82,7 +82,7 @@ const PART_RENDERERS = {
|
|
|
82
82
|
h('span', { class: 'glyph', 'aria-hidden': 'true' }, '▤'),
|
|
83
83
|
h('span', { class: 'name' }, p.name || 'document.pdf'),
|
|
84
84
|
p.size != null ? h('span', { class: 'size' }, fmtBytes(p.size)) : null,
|
|
85
|
-
h('a', { class: 'open', href: p.src, target: '_blank', rel: 'noopener', 'aria-label': `open PDF: ${p.name || 'document.pdf'}` }, 'open
|
|
85
|
+
h('a', { class: 'open', href: p.src, target: '_blank', rel: 'noopener', 'aria-label': `open PDF: ${p.name || 'document.pdf'}` }, 'open ->')
|
|
86
86
|
),
|
|
87
87
|
h('embed', { src: p.src, type: 'application/pdf', 'aria-label': `PDF document: ${p.name || 'document.pdf'}` })),
|
|
88
88
|
file: (p) => h('a', { class: 'chat-file', href: p.src, target: '_blank', rel: 'noopener', download: p.name || true, 'aria-label': `download file: ${p.name || 'attachment'} (${p.kindLabel || (p.name || '').split('.').pop().toUpperCase()})` },
|
|
@@ -109,7 +109,7 @@ export function WorksList({ works = [], openedIndex = -1, onToggle }) {
|
|
|
109
109
|
Row({
|
|
110
110
|
code: w.code,
|
|
111
111
|
title: w.title, sub: w.sub,
|
|
112
|
-
meta: w.meta + ' ' + (isOpen ? '
|
|
112
|
+
meta: w.meta + ' ' + (isOpen ? '-' : '+'),
|
|
113
113
|
active: isOpen,
|
|
114
114
|
onClick: () => onToggle && onToggle(isOpen ? -1 : i)
|
|
115
115
|
}),
|
|
@@ -118,7 +118,7 @@ export function WorksList({ works = [], openedIndex = -1, onToggle }) {
|
|
|
118
118
|
h('p', { class: 'ds-work-body' }, w.body)
|
|
119
119
|
),
|
|
120
120
|
h('div', { class: 'ds-work-actions' },
|
|
121
|
-
Btn({ primary: true, href: w.href || '#', children: 'open
|
|
121
|
+
Btn({ primary: true, href: w.href || '#', children: 'open ->' }),
|
|
122
122
|
Btn({ href: w.source || '#', children: 'source' })
|
|
123
123
|
)
|
|
124
124
|
) : null
|
|
@@ -147,7 +147,7 @@ export const voice = makePage((ctx) => {
|
|
|
147
147
|
PageHeader({ eyebrow: 'freddie', title: 'voice', lede: 'voice surfaces', right: enabled ? Chip({ tone: 'ok', children: 'enabled' }) : Chip({ tone: 'neutral', children: 'not configured' }) }),
|
|
148
148
|
enabled
|
|
149
149
|
? section('backends', Table({ headers: ['capability', 'status'], rows: [['transcription', v.transcription ? Chip({ tone: 'ok', children: 'on' }) : Chip({ tone: 'neutral', children: 'off' })], ['tts', v.tts ? Chip({ tone: 'ok', children: 'on' }) : Chip({ tone: 'neutral', children: 'off' })]] }))
|
|
150
|
-
: section('status', emptyState('no voice backend wired in this build. configure a transcription/tts plugin to enable.'
|
|
150
|
+
: section('status', emptyState('no voice backend wired in this build. configure a transcription/tts plugin to enable.')),
|
|
151
151
|
];
|
|
152
152
|
};
|
|
153
153
|
});
|
|
@@ -405,7 +405,7 @@ export const config = makePage((ctx) => {
|
|
|
405
405
|
}
|
|
406
406
|
async function setSkin(name) {
|
|
407
407
|
ctx.set({ busy: true, note: null });
|
|
408
|
-
try { await api('/api/config', { method: 'POST', body: { skin: name } }); await load(); ctx.set({ note: { kind: 'success', msg: 'skin
|
|
408
|
+
try { await api('/api/config', { method: 'POST', body: { skin: name } }); await load(); ctx.set({ note: { kind: 'success', msg: 'skin -> ' + name } }); }
|
|
409
409
|
catch (e) { ctx.set({ note: { kind: 'error', msg: String(e.message || e) } }); }
|
|
410
410
|
ctx.set({ busy: false });
|
|
411
411
|
}
|
|
@@ -574,7 +574,7 @@ export const chains = makePage((ctx) => {
|
|
|
574
574
|
PageHeader({ eyebrow: 'freddie', title: 'chains', lede: 'acptoapi fallback chains', right: up ? Chip({ tone: 'ok', children: 'acptoapi up' }) : Chip({ tone: 'miss', children: 'acptoapi down' }) }),
|
|
575
575
|
noteAlert(s.note),
|
|
576
576
|
section('chains', Array.isArray(chainsList) && chainsList.length ? chainsList.map((c, i) => Row({
|
|
577
|
-
key: i, title: c.name || c, sub: Array.isArray(c.links) ? c.links.join('
|
|
577
|
+
key: i, title: c.name || c, sub: Array.isArray(c.links) ? c.links.join(' -> ') : '',
|
|
578
578
|
trailing: Btn({ danger: true, children: 'delete', onClick: () => del(c.name || c) }),
|
|
579
579
|
})) : emptyState('no chains defined')),
|
|
580
580
|
section('new chain',
|
package/src/components/shell.js
CHANGED
|
@@ -117,7 +117,7 @@ export function Topbar({ brand = '247420', leaf = '', items = [], active = '', o
|
|
|
117
117
|
h('input', { type: 'search', placeholder: search, 'aria-label': `search ${search}` })
|
|
118
118
|
) : null,
|
|
119
119
|
h('nav', { 'aria-label': 'main navigation' }, ...items.map(([label, href]) => {
|
|
120
|
-
const cleanLabel = String(label).replace('
|
|
120
|
+
const cleanLabel = String(label).replace(' ->', '');
|
|
121
121
|
return h('a', {
|
|
122
122
|
key: label,
|
|
123
123
|
href,
|
|
@@ -181,7 +181,7 @@ export function Status({ left = [], right = [] } = {}) {
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
// Toggle the mobile sidebar drawer. Pure-DOM because AppShell is stateless
|
|
184
|
-
// chrome; the class lives on .app-body and is read by the
|
|
184
|
+
// chrome; the class lives on .app-body and is read by the <=900px media query.
|
|
185
185
|
function toggleSide(open) {
|
|
186
186
|
const body = document.querySelector('.app-body');
|
|
187
187
|
if (!body) return;
|
package/src/index.js
CHANGED
|
@@ -69,10 +69,14 @@ export {
|
|
|
69
69
|
renderPageHtml,
|
|
70
70
|
theme
|
|
71
71
|
};
|
|
72
|
-
export { applyTheme, getTheme, resolvedTheme, onThemeChange, initTheme
|
|
72
|
+
export { applyTheme, getTheme, resolvedTheme, onThemeChange, initTheme,
|
|
73
|
+
applyAccent, getAccent, applyDensity, getDensity } from './theme.js';
|
|
73
74
|
export const h = webjsx.createElement;
|
|
74
75
|
export const applyDiff = webjsx.applyDiff;
|
|
75
76
|
|
|
77
|
+
// spoint kit paint surfaces (loading screen, HUD, editor chrome).
|
|
78
|
+
export { renderLoadingScreen } from './kits/spoint/loading-screen.js';
|
|
79
|
+
|
|
76
80
|
// Re-export freddie helpers so consumers can `import { FREDDIE_PAGES } from
|
|
77
81
|
// 'anentrypoint-design'` directly.
|
|
78
82
|
export {
|
|
@@ -51,9 +51,9 @@ export function makeCorePages(ctx) {
|
|
|
51
51
|
['open chat', "click 'chat' in sidebar — set a working directory and pick a skill"],
|
|
52
52
|
['pick skill', "software dev, research, planning — shown with descriptions"],
|
|
53
53
|
['pick model', "select a configured provider + model in the chat bar"],
|
|
54
|
-
['list tools', '/tools in chat
|
|
55
|
-
['set api key', 'keys tab
|
|
56
|
-
['add cron', 'cron tab
|
|
54
|
+
['list tools', '/tools in chat -> tools tab'],
|
|
55
|
+
['set api key', 'keys tab -> click chip to set value'],
|
|
56
|
+
['add cron', 'cron tab -> form'],
|
|
57
57
|
] }) }),
|
|
58
58
|
Panel({ title: 'host', children: Receipt({ rows: Object.entries(health).map(([k, v]) => [k, String(v)]) }) }),
|
|
59
59
|
];
|
|
@@ -43,7 +43,7 @@ export function makeOsPages(ctx) {
|
|
|
43
43
|
return [
|
|
44
44
|
Kpi({ items: [[list.length, 'paths'], [instance.id, 'instance']] }),
|
|
45
45
|
Panel({ title: 'paths', count: list.length, children: list.length === 0
|
|
46
|
-
? EmptyState({ text: 'empty fs', glyph: '
|
|
46
|
+
? EmptyState({ text: 'empty fs', glyph: '◫' })
|
|
47
47
|
: pre(list.join('\n')) }),
|
|
48
48
|
];
|
|
49
49
|
},
|
|
@@ -115,7 +115,7 @@ export function makeToolsPages(ctx) {
|
|
|
115
115
|
if (typeof h0.pi.env.set === 'function') { h0.pi.env.set(k.key, v); rerender(); }
|
|
116
116
|
},
|
|
117
117
|
},
|
|
118
|
-
Chip({ tone: k.set ? 'ok' : 'miss', children: k.key + (k.set ? '
|
|
118
|
+
Chip({ tone: k.set ? 'ok' : 'miss', children: k.key + (k.set ? ' [x]' : ' [ ]') })
|
|
119
119
|
));
|
|
120
120
|
return [
|
|
121
121
|
Kpi({ items: [[setCount, 'set'], [list.length - setCount, 'missing'], [list.length, 'total known']] }),
|
|
@@ -20,5 +20,5 @@ export const OS_ROUTE_DEFS = [
|
|
|
20
20
|
{ path: 'os-instances', label: 'instances', glyph: '◫' },
|
|
21
21
|
{ path: 'os-windows', label: 'windows', glyph: '▭' },
|
|
22
22
|
{ path: 'os-x', label: 'x-server', glyph: '✕' },
|
|
23
|
-
{ path: 'os-fs', label: 'fs', glyph: '
|
|
23
|
+
{ path: 'os-fs', label: 'fs', glyph: '◫' },
|
|
24
24
|
];
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
margin: 0;
|
|
16
16
|
max-height: 320px;
|
|
17
17
|
overflow: auto;
|
|
18
|
-
background: var(--os-bg-2
|
|
18
|
+
background: var(--os-bg-2);
|
|
19
19
|
padding: var(--space-2, 8px) var(--space-3, 16px);
|
|
20
20
|
border-radius: var(--os-radius-sm, 6px);
|
|
21
21
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
.fd-chat-row { display: flex; gap: var(--space-3, 16px); flex-wrap: wrap; }
|
|
30
30
|
.fd-chat-field { display: flex; flex-direction: column; gap: var(--space-1, 4px); min-width: 120px; }
|
|
31
31
|
.fd-chat-field-grow { flex: 2; min-width: 140px; }
|
|
32
|
-
.fd-chat-field > label { font-family: var(--os-mono, JetBrains Mono, monospace); font-size: var(--fs-micro, 11px); color: var(--os-fg-3
|
|
32
|
+
.fd-chat-field > label { font-family: var(--os-mono, JetBrains Mono, monospace); font-size: var(--fs-micro, 11px); color: var(--os-fg-3); letter-spacing: var(--tr-label, 0.10em); text-transform: uppercase; }
|
|
33
33
|
.fd-chat-field > input { width: 100%; box-sizing: border-box; }
|
|
34
34
|
.fd-chat-submit { display: flex; gap: var(--space-3, 16px); align-items: flex-end; }
|
|
35
35
|
.fd-chat-submit textarea { flex: 1; resize: none; min-height: 80px; }
|
|
@@ -38,14 +38,14 @@
|
|
|
38
38
|
/* chatlog (legacy fd-chat-msgs container) */
|
|
39
39
|
.fd-chatlog {
|
|
40
40
|
max-height: 420px; overflow-y: auto;
|
|
41
|
-
background: var(--os-bg-2
|
|
41
|
+
background: var(--os-bg-2);
|
|
42
42
|
border-radius: var(--os-radius-sm, 6px);
|
|
43
43
|
padding: var(--space-1, 4px); margin-top: var(--space-2, 8px);
|
|
44
44
|
}
|
|
45
|
-
.fd-chatlog-msg { padding: var(--space-1, 4px) var(--space-3, 16px); background: var(--os-bg-2
|
|
46
|
-
.fd-chatlog-assistant { color: var(--os-accent
|
|
47
|
-
.fd-chatlog-tool { margin: var(--space-1, 4px) 0; padding: var(--space-1, 4px) var(--space-2, 8px); background: var(--os-bg-3
|
|
48
|
-
.fd-chatlog-tool-sum { cursor: pointer; color: var(--os-red
|
|
45
|
+
.fd-chatlog-msg { padding: var(--space-1, 4px) var(--space-3, 16px); background: var(--os-bg-2); white-space: pre-wrap; word-break: break-word; }
|
|
46
|
+
.fd-chatlog-assistant { color: var(--os-accent); }
|
|
47
|
+
.fd-chatlog-tool { margin: var(--space-1, 4px) 0; padding: var(--space-1, 4px) var(--space-2, 8px); background: var(--os-bg-3); border-radius: var(--os-radius-sm, 6px); font-family: var(--os-mono, JetBrains Mono, monospace); font-size: var(--fs-tiny, 12px); }
|
|
48
|
+
.fd-chatlog-tool-sum { cursor: pointer; color: var(--os-red); padding: var(--space-1, 4px) 0; }
|
|
49
49
|
.fd-chatlog-tool-body { margin: var(--space-1, 4px) 0 0; white-space: pre-wrap; word-break: break-all; max-height: 200px; overflow-y: auto; }
|
|
50
50
|
|
|
51
51
|
/* chip wraps (providers, env) */
|