anentrypoint-design 0.0.130 → 0.0.134

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/src/index.js CHANGED
@@ -14,6 +14,7 @@ import { renderPageHtml } from './page-html.js';
14
14
  import { mountKit } from './bootstrap.js';
15
15
  import * as theme from './theme.js';
16
16
  import { registerChatElement, DsChat } from './web-components/ds-chat.js';
17
+ import { registerFreddieChatElement, FreddieChat } from './web-components/freddie-chat.js';
17
18
 
18
19
  let _installed = false;
19
20
  export async function installStyles(target) {
@@ -51,9 +52,10 @@ export function mount(rootEl, viewFn, { autoScope = true } = {}) {
51
52
  return render;
52
53
  }
53
54
 
54
- // Side-effect: register <ds-chat> as soon as the SDK loads in a browser.
55
+ // Side-effect: register <ds-chat> + <freddie-chat> as soon as the SDK loads in a browser.
55
56
  if (typeof window !== 'undefined' && typeof customElements !== 'undefined') {
56
57
  registerChatElement();
58
+ registerFreddieChatElement();
57
59
  }
58
60
 
59
61
  export {
@@ -63,6 +65,7 @@ export {
63
65
  renderMarkdown, ensureMarkdownReady,
64
66
  ensurePrism, highlightAllUnder,
65
67
  registerChatElement, DsChat,
68
+ registerFreddieChatElement, FreddieChat,
66
69
  renderPageHtml,
67
70
  theme
68
71
  };
@@ -0,0 +1,38 @@
1
+ // <freddie-chat> — thin subclass of <ds-chat> with freddie-flavored defaults
2
+ // (title, sub, composer placeholder). Auto-registers in browsers.
3
+
4
+ import { DsChat, registerChatElement } from './ds-chat.js';
5
+ import { register } from '../debug.js';
6
+
7
+ let _stats = { mounts: 0, sends: 0 };
8
+
9
+ class FreddieChat extends DsChat {
10
+ constructor() {
11
+ super();
12
+ this._title = 'freddie';
13
+ this._sub = '';
14
+ this._placeholder = 'message freddie · /tools · /tool name {json} · /run …';
15
+ }
16
+
17
+ connectedCallback() {
18
+ _stats.mounts += 1;
19
+ super.connectedCallback();
20
+ }
21
+ }
22
+
23
+ let _registered = false;
24
+ export function registerFreddieChatElement() {
25
+ registerChatElement();
26
+ if (_registered) return;
27
+ if (typeof customElements === 'undefined') return;
28
+ if (!customElements.get('freddie-chat')) customElements.define('freddie-chat', FreddieChat);
29
+ _registered = true;
30
+ }
31
+
32
+ if (typeof window !== 'undefined' && typeof customElements !== 'undefined') {
33
+ registerFreddieChatElement();
34
+ }
35
+
36
+ register('freddie-chat', () => ({ registered: _registered, ..._stats, instances: typeof document !== 'undefined' ? document.querySelectorAll('freddie-chat').length : 0 }));
37
+
38
+ export { FreddieChat };