anentrypoint-design 0.0.121 → 0.0.124
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 +253 -253
- package/app-shell.css +931 -594
- package/colors_and_type.css +226 -226
- package/community.css +817 -1222
- package/dist/247420.css +2202 -2084
- package/dist/247420.js +13 -13
- package/package.json +80 -80
- package/src/bootstrap.js +25 -25
- package/src/components/chat.js +199 -199
- package/src/components/community.js +190 -208
- package/src/components/content.js +269 -269
- package/src/components/editor-primitives.js +100 -0
- package/src/components/files-modals.js +107 -107
- package/src/components/files.js +118 -118
- package/src/components/freddie/helpers.js +50 -50
- package/src/components/freddie.js +33 -33
- package/src/components/shell.js +117 -117
- package/src/components/theme-toggle.js +70 -70
- package/src/components.js +59 -57
- package/src/debug.js +30 -30
- package/src/deck-stage.js +21 -21
- package/src/highlight.js +65 -32
- package/src/index.js +86 -86
- package/src/kits/os/about-app.js +52 -52
- package/src/kits/os/app-panes.css +152 -152
- package/src/kits/os/browser-app.js +58 -58
- package/src/kits/os/files-app.js +44 -44
- package/src/kits/os/freddie/helpers.js +59 -59
- package/src/kits/os/freddie/pages-chat.js +143 -143
- package/src/kits/os/freddie/pages-core.js +101 -101
- package/src/kits/os/freddie/pages-os.js +51 -51
- package/src/kits/os/freddie/pages-tools.js +183 -183
- package/src/kits/os/freddie/routes.js +24 -24
- package/src/kits/os/freddie-dashboard.css +51 -51
- package/src/kits/os/freddie-dashboard.js +101 -101
- package/src/kits/os/icons.js +17 -17
- package/src/kits/os/index.js +17 -17
- package/src/kits/os/launcher.css +61 -61
- package/src/kits/os/launcher.js +79 -79
- package/src/kits/os/monitor-app.js +34 -34
- package/src/kits/os/shell.js +214 -214
- package/src/kits/os/terminal-app.js +45 -45
- package/src/kits/os/theme.css +450 -450
- package/src/kits/os/validate.css +19 -19
- package/src/kits/os/validator-app.js +55 -55
- package/src/kits/os/wm.css +115 -115
- package/src/kits/os/wm.js +111 -111
- package/src/markdown.js +39 -39
- package/src/motion.js +35 -35
- package/src/page-html.js +196 -196
- package/src/styles.js +25 -25
- package/src/theme.js +99 -99
- package/src/web-components/ds-chat.js +116 -116
- package/dist/.nojekyll +0 -0
- package/dist/app-shell.css +0 -594
- package/dist/colors_and_type.css +0 -197
- package/dist/favicon.svg +0 -1
- package/dist/index.html +0 -308
- package/dist/preview/buttons.html +0 -28
- package/dist/preview/colors-core.html +0 -45
- package/dist/preview/colors-lore.html +0 -28
- package/dist/preview/colors-semantic.html +0 -34
- package/dist/preview/dateline.html +0 -19
- package/dist/preview/dropzone.html +0 -30
- package/dist/preview/file-grid.html +0 -19
- package/dist/preview/file-row.html +0 -20
- package/dist/preview/file-toolbar.html +0 -40
- package/dist/preview/file-viewer.html +0 -31
- package/dist/preview/header.html +0 -24
- package/dist/preview/icons-unicode.html +0 -26
- package/dist/preview/index-row.html +0 -25
- package/dist/preview/inputs.html +0 -22
- package/dist/preview/manifesto.html +0 -52
- package/dist/preview/motion-default.js +0 -106
- package/dist/preview/rules.html +0 -16
- package/dist/preview/spacing.html +0 -18
- package/dist/preview/stamps-lore.html +0 -20
- package/dist/preview/stamps.html +0 -14
- package/dist/preview/theme-ink.html +0 -15
- package/dist/preview/type-display.html +0 -16
- package/dist/preview/type-mono.html +0 -15
- package/dist/preview/type-prose.html +0 -11
- package/dist/preview/type-scale.html +0 -20
- package/dist/preview/wordmarks.html +0 -28
- package/dist/robots.txt +0 -8
- package/dist/site/content/globals/navigation.yaml +0 -5
- package/dist/site/content/globals/site.yaml +0 -16
- package/dist/site/content/pages/freddie.yaml +0 -88
- package/dist/site/content/pages/home.yaml +0 -190
- package/dist/site/theme.mjs +0 -368
- package/dist/sitemap.xml +0 -31
- package/dist/slides/deck-stage-overlay.js +0 -63
- package/dist/slides/deck-stage-state.js +0 -81
- package/dist/slides/deck-stage-style.js +0 -117
- package/dist/slides/deck-stage.js +0 -159
- package/dist/slides/index.html +0 -276
- package/dist/src/bootstrap.js +0 -25
- package/dist/src/components/chat.js +0 -199
- package/dist/src/components/community.js +0 -167
- package/dist/src/components/content.js +0 -213
- package/dist/src/components/files-modals.js +0 -107
- package/dist/src/components/files.js +0 -118
- package/dist/src/components/freddie/helpers.js +0 -50
- package/dist/src/components/freddie.js +0 -33
- package/dist/src/components/shell.js +0 -117
- package/dist/src/components/theme-toggle.js +0 -70
- package/dist/src/components.js +0 -52
- package/dist/src/debug.js +0 -30
- package/dist/src/deck-stage.js +0 -21
- package/dist/src/highlight.js +0 -32
- package/dist/src/index.js +0 -86
- package/dist/src/kits/os/about-app.js +0 -52
- package/dist/src/kits/os/app-panes.css +0 -152
- package/dist/src/kits/os/browser-app.js +0 -58
- package/dist/src/kits/os/files-app.js +0 -44
- package/dist/src/kits/os/freddie/helpers.js +0 -59
- package/dist/src/kits/os/freddie/pages-chat.js +0 -143
- package/dist/src/kits/os/freddie/pages-core.js +0 -101
- package/dist/src/kits/os/freddie/pages-os.js +0 -51
- package/dist/src/kits/os/freddie/pages-tools.js +0 -183
- package/dist/src/kits/os/freddie/routes.js +0 -24
- package/dist/src/kits/os/freddie-dashboard.css +0 -51
- package/dist/src/kits/os/freddie-dashboard.js +0 -101
- package/dist/src/kits/os/icons.js +0 -17
- package/dist/src/kits/os/index.js +0 -5
- package/dist/src/kits/os/launcher.css +0 -61
- package/dist/src/kits/os/launcher.js +0 -79
- package/dist/src/kits/os/monitor-app.js +0 -34
- package/dist/src/kits/os/shell.js +0 -214
- package/dist/src/kits/os/terminal-app.js +0 -45
- package/dist/src/kits/os/theme.css +0 -412
- package/dist/src/kits/os/validate.css +0 -19
- package/dist/src/kits/os/validator-app.js +0 -55
- package/dist/src/kits/os/wm.css +0 -115
- package/dist/src/kits/os/wm.js +0 -111
- package/dist/src/markdown.js +0 -39
- package/dist/src/motion.js +0 -35
- package/dist/src/page-html.js +0 -196
- package/dist/src/styles.js +0 -25
- package/dist/src/theme.js +0 -99
- package/dist/src/web-components/ds-chat.js +0 -45
- package/dist/ui_kits/aicat/README.md +0 -7
- package/dist/ui_kits/aicat/app.js +0 -156
- package/dist/ui_kits/aicat/index.html +0 -26
- package/dist/ui_kits/aicat/sample-square.png +0 -0
- package/dist/ui_kits/aicat/sample-svg.svg +0 -1
- package/dist/ui_kits/aicat/sample.pdf +0 -32
- package/dist/ui_kits/blog/README.md +0 -3
- package/dist/ui_kits/blog/index.html +0 -90
- package/dist/ui_kits/chat/README.md +0 -5
- package/dist/ui_kits/chat/app.js +0 -110
- package/dist/ui_kits/chat/index.html +0 -26
- package/dist/ui_kits/chat/sample-square.png +0 -0
- package/dist/ui_kits/chat/sample-svg.svg +0 -1
- package/dist/ui_kits/chat/sample.pdf +0 -32
- package/dist/ui_kits/community/app.js +0 -134
- package/dist/ui_kits/community/index.html +0 -24
- package/dist/ui_kits/dashboard/app.js +0 -92
- package/dist/ui_kits/dashboard/index.html +0 -26
- package/dist/ui_kits/docs/README.md +0 -3
- package/dist/ui_kits/docs/index.html +0 -123
- package/dist/ui_kits/error_404/app.js +0 -56
- package/dist/ui_kits/error_404/index.html +0 -26
- package/dist/ui_kits/file_browser/README.md +0 -48
- package/dist/ui_kits/file_browser/app.js +0 -231
- package/dist/ui_kits/file_browser/index.html +0 -33
- package/dist/ui_kits/gallery/app.js +0 -121
- package/dist/ui_kits/gallery/index.html +0 -26
- package/dist/ui_kits/homepage/README.md +0 -7
- package/dist/ui_kits/homepage/app.js +0 -167
- package/dist/ui_kits/homepage/index.html +0 -46
- package/dist/ui_kits/project_page/README.md +0 -3
- package/dist/ui_kits/project_page/app.js +0 -154
- package/dist/ui_kits/project_page/index.html +0 -45
- package/dist/ui_kits/search/app.js +0 -107
- package/dist/ui_kits/search/index.html +0 -26
- package/dist/ui_kits/settings/app.js +0 -133
- package/dist/ui_kits/settings/index.html +0 -26
- package/dist/ui_kits/signin/app.js +0 -115
- package/dist/ui_kits/signin/index.html +0 -26
- package/dist/ui_kits/slide_deck/app.js +0 -174
- package/dist/ui_kits/slide_deck/index.html +0 -26
- package/dist/ui_kits/system_primer/app.js +0 -152
- package/dist/ui_kits/system_primer/index.html +0 -26
- package/dist/ui_kits/terminal/app.js +0 -150
- package/dist/ui_kits/terminal/index.html +0 -26
- package/dist/vendor/webjsx/applyDiff.js +0 -182
- package/dist/vendor/webjsx/attributes.js +0 -154
- package/dist/vendor/webjsx/constants.js +0 -4
- package/dist/vendor/webjsx/createDOMElement.js +0 -52
- package/dist/vendor/webjsx/createElement.js +0 -75
- package/dist/vendor/webjsx/elementTags.js +0 -115
- package/dist/vendor/webjsx/factory.js +0 -6
- package/dist/vendor/webjsx/index.js +0 -6
- package/dist/vendor/webjsx/jsx-dev-runtime.js +0 -2
- package/dist/vendor/webjsx/jsx-runtime.js +0 -30
- package/dist/vendor/webjsx/jsx.js +0 -2
- package/dist/vendor/webjsx/package.json +0 -39
- package/dist/vendor/webjsx/renderSuspension.js +0 -25
- package/dist/vendor/webjsx/types.js +0 -5
- package/dist/vendor/webjsx/utils.js +0 -84
- package/src/components/overlays.js +0 -151
package/src/highlight.js
CHANGED
|
@@ -1,32 +1,65 @@
|
|
|
1
|
-
// Syntax highlighting — lazy-loads Prism on first call. No-op safe.
|
|
2
|
-
|
|
3
|
-
let _prism = null;
|
|
4
|
-
let _ready = null;
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
// Syntax highlighting — lazy-loads Prism + common language grammars on first call. No-op safe.
|
|
2
|
+
|
|
3
|
+
let _prism = null;
|
|
4
|
+
let _ready = null;
|
|
5
|
+
|
|
6
|
+
const PRISM_BASE = 'https://cdn.jsdelivr.net/npm/prismjs@1.30.0/components/';
|
|
7
|
+
const PRISM_CORE = PRISM_BASE + 'prism-core.min.js';
|
|
8
|
+
const PRISM_LANGS = [
|
|
9
|
+
'prism-markup.min.js',
|
|
10
|
+
'prism-css.min.js',
|
|
11
|
+
'prism-clike.min.js',
|
|
12
|
+
'prism-javascript.min.js',
|
|
13
|
+
'prism-typescript.min.js',
|
|
14
|
+
'prism-json.min.js',
|
|
15
|
+
'prism-bash.min.js',
|
|
16
|
+
'prism-yaml.min.js',
|
|
17
|
+
'prism-markdown.min.js',
|
|
18
|
+
'prism-python.min.js',
|
|
19
|
+
'prism-rust.min.js',
|
|
20
|
+
'prism-go.min.js',
|
|
21
|
+
'prism-jsx.min.js',
|
|
22
|
+
'prism-tsx.min.js',
|
|
23
|
+
'prism-diff.min.js',
|
|
24
|
+
'prism-sql.min.js',
|
|
25
|
+
'prism-toml.min.js',
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
async function loadIntoGlobal(url) {
|
|
29
|
+
try {
|
|
30
|
+
const res = await fetch(url);
|
|
31
|
+
if (!res.ok) throw new Error('http ' + res.status);
|
|
32
|
+
const code = await res.text();
|
|
33
|
+
// eslint-disable-next-line no-new-func
|
|
34
|
+
new Function('window', code)(window);
|
|
35
|
+
} catch (err) {
|
|
36
|
+
console.warn('[247420] prism part failed:', url, err.message);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export async function ensurePrism() {
|
|
41
|
+
if (_prism) return _prism;
|
|
42
|
+
if (_ready) return _ready;
|
|
43
|
+
_ready = (async () => {
|
|
44
|
+
try {
|
|
45
|
+
await loadIntoGlobal(PRISM_CORE);
|
|
46
|
+
_prism = window.Prism || null;
|
|
47
|
+
if (_prism) {
|
|
48
|
+
for (const f of PRISM_LANGS) {
|
|
49
|
+
await loadIntoGlobal(PRISM_BASE + f);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return _prism;
|
|
53
|
+
} catch (err) {
|
|
54
|
+
console.warn('[247420] prism loader failed:', err);
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
})();
|
|
58
|
+
return _ready;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function highlightAllUnder(root) {
|
|
62
|
+
const Prism = await ensurePrism();
|
|
63
|
+
if (!Prism || !root) return;
|
|
64
|
+
if (typeof Prism.highlightAllUnder === 'function') Prism.highlightAllUnder(root);
|
|
65
|
+
}
|
package/src/index.js
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
// 247420 design system — main entry.
|
|
2
|
-
// Drop-in replacement: same export surface as the published SDK.
|
|
3
|
-
// import { mount, components as C, h, applyDiff, scope } from 'anentrypoint-design';
|
|
4
|
-
|
|
5
|
-
import * as webjsx from '../vendor/webjsx/index.js';
|
|
6
|
-
import { loadCss, scope } from './styles.js';
|
|
7
|
-
import { registerDeckStage, getDeckStage } from './deck-stage.js';
|
|
8
|
-
import * as components from './components.js';
|
|
9
|
-
import * as motion from './motion.js';
|
|
10
|
-
import * as debug from './debug.js';
|
|
11
|
-
import { renderMarkdown, ensureReady as ensureMarkdownReady } from './markdown.js';
|
|
12
|
-
import { ensurePrism, highlightAllUnder } from './highlight.js';
|
|
13
|
-
import { renderPageHtml } from './page-html.js';
|
|
14
|
-
import { mountKit } from './bootstrap.js';
|
|
15
|
-
import * as theme from './theme.js';
|
|
16
|
-
import { registerChatElement, DsChat } from './web-components/ds-chat.js';
|
|
17
|
-
|
|
18
|
-
let _installed = false;
|
|
19
|
-
export async function installStyles(target) {
|
|
20
|
-
if (_installed && !target) return;
|
|
21
|
-
if (typeof document === 'undefined') return;
|
|
22
|
-
const css = await loadCss();
|
|
23
|
-
const root = target || document.head;
|
|
24
|
-
if (!target && document.querySelector('style[data-247420]')) { _installed = true; return; }
|
|
25
|
-
const tag = document.createElement('style');
|
|
26
|
-
tag.setAttribute('data-247420', '');
|
|
27
|
-
tag.textContent = css;
|
|
28
|
-
root.appendChild(tag);
|
|
29
|
-
if (!target) {
|
|
30
|
-
motion.installMotion();
|
|
31
|
-
_installed = true;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function mount(rootEl, viewFn, { autoScope = true } = {}) {
|
|
36
|
-
if (!rootEl) throw new Error('mount: rootEl required');
|
|
37
|
-
if (typeof viewFn !== 'function') throw new Error('mount: viewFn required');
|
|
38
|
-
if (autoScope && rootEl.classList && !rootEl.classList.contains(scope.slice(1))) {
|
|
39
|
-
const cls = scope.slice(1);
|
|
40
|
-
const inheritedFromAncestor = rootEl.closest && rootEl.closest('.' + cls);
|
|
41
|
-
if (!inheritedFromAncestor) rootEl.classList.add(cls);
|
|
42
|
-
}
|
|
43
|
-
// Auto-inject styles (idempotent) so single-line consumers don't need
|
|
44
|
-
// to remember installStyles() before mount.
|
|
45
|
-
installStyles().catch(() => {});
|
|
46
|
-
const render = () => {
|
|
47
|
-
webjsx.applyDiff(rootEl, viewFn(render));
|
|
48
|
-
requestAnimationFrame(() => motion.animateTree(rootEl));
|
|
49
|
-
};
|
|
50
|
-
render();
|
|
51
|
-
return render;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Side-effect: register <ds-chat> as soon as the SDK loads in a browser.
|
|
55
|
-
if (typeof window !== 'undefined' && typeof customElements !== 'undefined') {
|
|
56
|
-
registerChatElement();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export {
|
|
60
|
-
webjsx, loadCss, scope,
|
|
61
|
-
registerDeckStage, getDeckStage,
|
|
62
|
-
components, motion, debug, mountKit,
|
|
63
|
-
renderMarkdown, ensureMarkdownReady,
|
|
64
|
-
ensurePrism, highlightAllUnder,
|
|
65
|
-
registerChatElement, DsChat,
|
|
66
|
-
renderPageHtml,
|
|
67
|
-
theme
|
|
68
|
-
};
|
|
69
|
-
export { applyTheme, getTheme, resolvedTheme, onThemeChange, initTheme } from './theme.js';
|
|
70
|
-
export const h = webjsx.createElement;
|
|
71
|
-
export const applyDiff = webjsx.applyDiff;
|
|
72
|
-
|
|
73
|
-
// Re-export freddie helpers so consumers can `import { FREDDIE_PAGES } from
|
|
74
|
-
// 'anentrypoint-design'` directly.
|
|
75
|
-
export {
|
|
76
|
-
FREDDIE_PAGES,
|
|
77
|
-
home, chat, voice, sessions, projects, agents, analytics,
|
|
78
|
-
models, cron, skills, config, env, tools, batch, gateway, chains,
|
|
79
|
-
skillLabel, getRecentPaths, saveRecentPath, renderChatMessages
|
|
80
|
-
} from './components.js';
|
|
81
|
-
|
|
82
|
-
export default {
|
|
83
|
-
webjsx, loadCss, scope, installStyles, mount, h, applyDiff,
|
|
84
|
-
registerDeckStage, getDeckStage, components, motion, debug, mountKit,
|
|
85
|
-
renderMarkdown, ensurePrism, registerChatElement, renderPageHtml
|
|
86
|
-
};
|
|
1
|
+
// 247420 design system — main entry.
|
|
2
|
+
// Drop-in replacement: same export surface as the published SDK.
|
|
3
|
+
// import { mount, components as C, h, applyDiff, scope } from 'anentrypoint-design';
|
|
4
|
+
|
|
5
|
+
import * as webjsx from '../vendor/webjsx/index.js';
|
|
6
|
+
import { loadCss, scope } from './styles.js';
|
|
7
|
+
import { registerDeckStage, getDeckStage } from './deck-stage.js';
|
|
8
|
+
import * as components from './components.js';
|
|
9
|
+
import * as motion from './motion.js';
|
|
10
|
+
import * as debug from './debug.js';
|
|
11
|
+
import { renderMarkdown, ensureReady as ensureMarkdownReady } from './markdown.js';
|
|
12
|
+
import { ensurePrism, highlightAllUnder } from './highlight.js';
|
|
13
|
+
import { renderPageHtml } from './page-html.js';
|
|
14
|
+
import { mountKit } from './bootstrap.js';
|
|
15
|
+
import * as theme from './theme.js';
|
|
16
|
+
import { registerChatElement, DsChat } from './web-components/ds-chat.js';
|
|
17
|
+
|
|
18
|
+
let _installed = false;
|
|
19
|
+
export async function installStyles(target) {
|
|
20
|
+
if (_installed && !target) return;
|
|
21
|
+
if (typeof document === 'undefined') return;
|
|
22
|
+
const css = await loadCss();
|
|
23
|
+
const root = target || document.head;
|
|
24
|
+
if (!target && document.querySelector('style[data-247420]')) { _installed = true; return; }
|
|
25
|
+
const tag = document.createElement('style');
|
|
26
|
+
tag.setAttribute('data-247420', '');
|
|
27
|
+
tag.textContent = css;
|
|
28
|
+
root.appendChild(tag);
|
|
29
|
+
if (!target) {
|
|
30
|
+
motion.installMotion();
|
|
31
|
+
_installed = true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function mount(rootEl, viewFn, { autoScope = true } = {}) {
|
|
36
|
+
if (!rootEl) throw new Error('mount: rootEl required');
|
|
37
|
+
if (typeof viewFn !== 'function') throw new Error('mount: viewFn required');
|
|
38
|
+
if (autoScope && rootEl.classList && !rootEl.classList.contains(scope.slice(1))) {
|
|
39
|
+
const cls = scope.slice(1);
|
|
40
|
+
const inheritedFromAncestor = rootEl.closest && rootEl.closest('.' + cls);
|
|
41
|
+
if (!inheritedFromAncestor) rootEl.classList.add(cls);
|
|
42
|
+
}
|
|
43
|
+
// Auto-inject styles (idempotent) so single-line consumers don't need
|
|
44
|
+
// to remember installStyles() before mount.
|
|
45
|
+
installStyles().catch(() => {});
|
|
46
|
+
const render = () => {
|
|
47
|
+
webjsx.applyDiff(rootEl, viewFn(render));
|
|
48
|
+
requestAnimationFrame(() => motion.animateTree(rootEl));
|
|
49
|
+
};
|
|
50
|
+
render();
|
|
51
|
+
return render;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Side-effect: register <ds-chat> as soon as the SDK loads in a browser.
|
|
55
|
+
if (typeof window !== 'undefined' && typeof customElements !== 'undefined') {
|
|
56
|
+
registerChatElement();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
webjsx, loadCss, scope,
|
|
61
|
+
registerDeckStage, getDeckStage,
|
|
62
|
+
components, motion, debug, mountKit,
|
|
63
|
+
renderMarkdown, ensureMarkdownReady,
|
|
64
|
+
ensurePrism, highlightAllUnder,
|
|
65
|
+
registerChatElement, DsChat,
|
|
66
|
+
renderPageHtml,
|
|
67
|
+
theme
|
|
68
|
+
};
|
|
69
|
+
export { applyTheme, getTheme, resolvedTheme, onThemeChange, initTheme } from './theme.js';
|
|
70
|
+
export const h = webjsx.createElement;
|
|
71
|
+
export const applyDiff = webjsx.applyDiff;
|
|
72
|
+
|
|
73
|
+
// Re-export freddie helpers so consumers can `import { FREDDIE_PAGES } from
|
|
74
|
+
// 'anentrypoint-design'` directly.
|
|
75
|
+
export {
|
|
76
|
+
FREDDIE_PAGES,
|
|
77
|
+
home, chat, voice, sessions, projects, agents, analytics,
|
|
78
|
+
models, cron, skills, config, env, tools, batch, gateway, chains,
|
|
79
|
+
skillLabel, getRecentPaths, saveRecentPath, renderChatMessages
|
|
80
|
+
} from './components.js';
|
|
81
|
+
|
|
82
|
+
export default {
|
|
83
|
+
webjsx, loadCss, scope, installStyles, mount, h, applyDiff,
|
|
84
|
+
registerDeckStage, getDeckStage, components, motion, debug, mountKit,
|
|
85
|
+
renderMarkdown, ensurePrism, registerChatElement, renderPageHtml
|
|
86
|
+
};
|
package/src/kits/os/about-app.js
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
// About-app paint surface — static info card, bible classes.
|
|
2
|
-
// renderAboutApp({brand, tagline, bullets, links}) -> {node, dispose}.
|
|
3
|
-
// Consumer provides content; module owns layout + classes.
|
|
4
|
-
|
|
5
|
-
export function renderAboutApp(opts = {}) {
|
|
6
|
-
const {
|
|
7
|
-
brand = 'thebird / web os',
|
|
8
|
-
tagline = 'browser-native web OS. multi-instance, per-instance fs / worker / shell / browser. no server.',
|
|
9
|
-
bullets = [
|
|
10
|
-
'POSIX terminal · IndexedDB filesystem',
|
|
11
|
-
'OffscreenCanvas worker per instance',
|
|
12
|
-
'CDP-shaped browser pane',
|
|
13
|
-
'libsql via sql.js · freddie host',
|
|
14
|
-
'responsive: phone / tablet / desktop',
|
|
15
|
-
],
|
|
16
|
-
footer = 'open <code>validator</code> to run isolation harness · click apps menu for more.',
|
|
17
|
-
links = [
|
|
18
|
-
{ href: 'https://github.com/AnEntrypoint/thebird', text: 'source' },
|
|
19
|
-
{ href: './validate.html', text: 'validate' },
|
|
20
|
-
],
|
|
21
|
-
} = opts;
|
|
22
|
-
|
|
23
|
-
const node = document.createElement('div');
|
|
24
|
-
node.className = 'app-pane';
|
|
25
|
-
node.dataset.component = 'about-app';
|
|
26
|
-
|
|
27
|
-
const h2 = document.createElement('h2');
|
|
28
|
-
h2.textContent = brand;
|
|
29
|
-
const p = document.createElement('p');
|
|
30
|
-
p.textContent = tagline;
|
|
31
|
-
const ul = document.createElement('ul');
|
|
32
|
-
for (const b of bullets) {
|
|
33
|
-
const li = document.createElement('li');
|
|
34
|
-
li.textContent = b;
|
|
35
|
-
ul.appendChild(li);
|
|
36
|
-
}
|
|
37
|
-
const foot = document.createElement('p');
|
|
38
|
-
foot.innerHTML = footer;
|
|
39
|
-
const meta = document.createElement('p');
|
|
40
|
-
meta.className = 'meta';
|
|
41
|
-
links.forEach((l, i) => {
|
|
42
|
-
const a = document.createElement('a');
|
|
43
|
-
a.href = l.href;
|
|
44
|
-
a.textContent = l.text;
|
|
45
|
-
meta.appendChild(a);
|
|
46
|
-
if (i < links.length - 1) meta.appendChild(document.createTextNode(' · '));
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
node.append(h2, p, ul, foot, meta);
|
|
50
|
-
|
|
51
|
-
return { node, dispose() {} };
|
|
52
|
-
}
|
|
1
|
+
// About-app paint surface — static info card, bible classes.
|
|
2
|
+
// renderAboutApp({brand, tagline, bullets, links}) -> {node, dispose}.
|
|
3
|
+
// Consumer provides content; module owns layout + classes.
|
|
4
|
+
|
|
5
|
+
export function renderAboutApp(opts = {}) {
|
|
6
|
+
const {
|
|
7
|
+
brand = 'thebird / web os',
|
|
8
|
+
tagline = 'browser-native web OS. multi-instance, per-instance fs / worker / shell / browser. no server.',
|
|
9
|
+
bullets = [
|
|
10
|
+
'POSIX terminal · IndexedDB filesystem',
|
|
11
|
+
'OffscreenCanvas worker per instance',
|
|
12
|
+
'CDP-shaped browser pane',
|
|
13
|
+
'libsql via sql.js · freddie host',
|
|
14
|
+
'responsive: phone / tablet / desktop',
|
|
15
|
+
],
|
|
16
|
+
footer = 'open <code>validator</code> to run isolation harness · click apps menu for more.',
|
|
17
|
+
links = [
|
|
18
|
+
{ href: 'https://github.com/AnEntrypoint/thebird', text: 'source' },
|
|
19
|
+
{ href: './validate.html', text: 'validate' },
|
|
20
|
+
],
|
|
21
|
+
} = opts;
|
|
22
|
+
|
|
23
|
+
const node = document.createElement('div');
|
|
24
|
+
node.className = 'app-pane';
|
|
25
|
+
node.dataset.component = 'about-app';
|
|
26
|
+
|
|
27
|
+
const h2 = document.createElement('h2');
|
|
28
|
+
h2.textContent = brand;
|
|
29
|
+
const p = document.createElement('p');
|
|
30
|
+
p.textContent = tagline;
|
|
31
|
+
const ul = document.createElement('ul');
|
|
32
|
+
for (const b of bullets) {
|
|
33
|
+
const li = document.createElement('li');
|
|
34
|
+
li.textContent = b;
|
|
35
|
+
ul.appendChild(li);
|
|
36
|
+
}
|
|
37
|
+
const foot = document.createElement('p');
|
|
38
|
+
foot.innerHTML = footer;
|
|
39
|
+
const meta = document.createElement('p');
|
|
40
|
+
meta.className = 'meta';
|
|
41
|
+
links.forEach((l, i) => {
|
|
42
|
+
const a = document.createElement('a');
|
|
43
|
+
a.href = l.href;
|
|
44
|
+
a.textContent = l.text;
|
|
45
|
+
meta.appendChild(a);
|
|
46
|
+
if (i < links.length - 1) meta.appendChild(document.createTextNode(' · '));
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
node.append(h2, p, ul, foot, meta);
|
|
50
|
+
|
|
51
|
+
return { node, dispose() {} };
|
|
52
|
+
}
|