murmur-rag 2.0.0 → 2.1.1
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/dist/cdn/{anthropic-1y1mb77z.js → anthropic-p21yv83k.js} +1 -1
- package/dist/cdn/{embed-s9zy3aav.js → embed-3vb4wcng.js} +1 -1
- package/dist/cdn/{embed-3swpcbya.js → embed-52n5pm9t.js} +3 -3
- package/dist/cdn/{embed-7xhp36fz.js → embed-f7gzw56s.js} +1 -1
- package/dist/cdn/{embed-hhcax25m.js → embed-xdftb0b2.js} +5 -5
- package/dist/cdn/{google-b4zxgp7g.js → google-df5pjzyw.js} +1 -1
- package/dist/cdn/{index-q38abctd.js → index-0yvq5pe3.js} +1 -1
- package/dist/cdn/{index-k0v6as0z.js → index-arpy64fv.js} +1 -1
- package/dist/cdn/index-r7h9ewgp.js +1 -0
- package/dist/cdn/{mistral-e1jxb6vy.js → mistral-0tm1pmab.js} +1 -1
- package/dist/cdn/{murmur-yjgc7apa.js → murmur-krwan2e5.js} +1 -1
- package/dist/cdn/murmur.js +7 -6
- package/dist/cdn/{openai-compatible-8byk6wkm.js → openai-compatible-vqp1sqdg.js} +1 -1
- package/dist/cdn/{openai-q9byakt1.js → openai-t1hcmmxm.js} +6 -6
- package/dist/lib/chunks/{index-ekxks9vp.js → index-6j52e72a.js} +10 -1
- package/dist/lib/embed.js +2 -2
- package/dist/lib/widget/index.js +2 -2
- package/dist/types/widget/styles.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cdn/index-ev3304hr.js +0 -1
|
@@ -220,7 +220,15 @@ function inline(doc, text, cite, out) {
|
|
|
220
220
|
out.appendChild(doc.createTextNode(label));
|
|
221
221
|
} else {
|
|
222
222
|
const node = cite(Number(token.slice(1, -1)));
|
|
223
|
-
|
|
223
|
+
const tail = node ? /^[.,;:!?)»]+/.exec(text.slice(last))?.[0] : undefined;
|
|
224
|
+
if (node && tail) {
|
|
225
|
+
const keep = doc.createElement("span");
|
|
226
|
+
keep.className = "nowrap";
|
|
227
|
+
keep.append(node, doc.createTextNode(tail));
|
|
228
|
+
out.appendChild(keep);
|
|
229
|
+
last += tail.length;
|
|
230
|
+
} else
|
|
231
|
+
out.appendChild(node ?? doc.createTextNode(token));
|
|
224
232
|
}
|
|
225
233
|
}
|
|
226
234
|
if (last < text.length)
|
|
@@ -771,6 +779,7 @@ header .icon-btn:focus-visible { outline-color: var(--accent-ink); }
|
|
|
771
779
|
.bot { align-self: stretch; }
|
|
772
780
|
.greeting { color: var(--muted); }
|
|
773
781
|
|
|
782
|
+
.nowrap { white-space: nowrap; }
|
|
774
783
|
.cite {
|
|
775
784
|
display: inline-grid; place-items: center; min-width: 1.45em; height: 1.45em; padding: 0 0.3em;
|
|
776
785
|
margin: 0 0.1em; vertical-align: 0.12em;
|
package/dist/lib/embed.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
__chunks,
|
|
3
3
|
mountMurmur2
|
|
4
|
-
} from "./chunks/index-
|
|
5
|
-
__chunks(import.meta.url,["
|
|
4
|
+
} from "./chunks/index-6j52e72a.js";
|
|
5
|
+
__chunks(import.meta.url,["dsxhtbwf","6j52e72a","t36hd4vt","wxshtnm0","dj4321kh","vb9smwta","qfx1tgz2","kaeec41p","b77xqap3","8h9c8ekq","p86sy3y4","1zk822m5"],[["./embed.js",1],["./chunks/index-6j52e72a.js",8],["./chunks/murmur-t36hd4vt.js",9,10],["./chunks/retriever-wxshtnm0.js",10],["./indexer/index.js",11],["./llm/index.js"],["./local/index.js"],["./chunks/chunk-kaeec41p.js",11],["./chunks/index-b77xqap3.js"],["./chunks/index-8h9c8ekq.js",10,8],["./chunks/index-p86sy3y4.js",8],["./chunks/index-1zk822m5.js"]],0);
|
|
6
6
|
|
|
7
7
|
// src/embed.ts
|
|
8
8
|
function optionsFromDataset(data, base) {
|
package/dist/lib/widget/index.js
CHANGED
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
MurmurChat2,
|
|
9
9
|
defineMurmurChat2,
|
|
10
10
|
mountMurmur2
|
|
11
|
-
} from "../chunks/index-
|
|
12
|
-
__chunks(import.meta.url,["
|
|
11
|
+
} from "../chunks/index-6j52e72a.js";
|
|
12
|
+
__chunks(import.meta.url,["ypfyqj9s","6j52e72a","t36hd4vt","wxshtnm0","dj4321kh","vb9smwta","qfx1tgz2","kaeec41p","b77xqap3","8h9c8ekq","p86sy3y4","1zk822m5"],[["./index.js",1],["../chunks/index-6j52e72a.js",8],["../chunks/murmur-t36hd4vt.js",9,10],["../chunks/retriever-wxshtnm0.js",10],["../indexer/index.js",11],["../llm/index.js"],["../local/index.js"],["../chunks/chunk-kaeec41p.js",11],["../chunks/index-b77xqap3.js"],["../chunks/index-8h9c8ekq.js",10,8],["../chunks/index-p86sy3y4.js",8],["../chunks/index-1zk822m5.js"]],0);
|
|
13
13
|
export {
|
|
14
14
|
MESSAGES2 as MESSAGES,
|
|
15
15
|
MurmurChat2 as MurmurChat,
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* custom properties on the element: --murmur-accent, --murmur-accent-ink, --murmur-font,
|
|
4
4
|
* --murmur-radius, --murmur-z.
|
|
5
5
|
*/
|
|
6
|
-
export declare const STYLES = "\n:host {\n --accent: var(--murmur-accent, #211c17);\n --accent-ink: var(--murmur-accent-ink, #f6efe0);\n --lamp: var(--murmur-lamp, #e0a032);\n --surface: #fbf8f1;\n --raised: #f2ece0;\n --ink: #211c17;\n --muted: #675c4f;\n --line: #e2d8c5;\n --focus: #b4541d;\n --danger: #a1301f;\n --radius: var(--murmur-radius, 16px);\n --shadow: 0 18px 48px -12px rgb(33 28 23 / 0.28), 0 4px 12px -4px rgb(33 28 23 / 0.16);\n --ease: cubic-bezier(0.16, 1, 0.3, 1);\n all: initial;\n position: fixed;\n z-index: var(--murmur-z, 2147483000);\n inset: auto 20px 20px auto;\n font-family: var(--murmur-font, inherit);\n font-size: 15px;\n line-height: 1.5;\n color: var(--ink);\n color-scheme: light;\n -webkit-font-smoothing: antialiased;\n}\n:host([position=\"bottom-left\"]) { inset: auto auto 20px 20px; }\n:host([inline]) { position: relative; inset: auto; z-index: auto; display: block; height: 100%; }\n:host([theme=\"dark\"]) { --surface: #1c1814; --raised: #26211b; --ink: #f2ead9; --muted: #b8ab95; --line: #3b342b; --focus: #f0a35c; --danger: #f08a73; color-scheme: dark; }\n@media (prefers-color-scheme: dark) {\n :host(:not([theme=\"light\"])) { --surface: #1c1814; --raised: #26211b; --ink: #f2ead9; --muted: #b8ab95; --line: #3b342b; --focus: #f0a35c; --danger: #f08a73; color-scheme: dark; }\n :host(:not([theme=\"light\"])) { --murmur-accent-default: #f2ead9; }\n}\n@media print { :host { display: none !important; } }\n* { box-sizing: border-box; }\n[hidden] { display: none !important; }\n::selection { background: color-mix(in oklab, var(--lamp) 45%, transparent); color: inherit; }\nbutton, input, select, textarea { font: inherit; color: inherit; }\nbutton { cursor: pointer; }\n:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }\na { color: inherit; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }\n\n/* Launcher */\n.launcher {\n display: inline-flex; align-items: center; gap: 10px;\n height: 52px; padding: 0 20px 0 16px; border: 0; border-radius: 26px;\n background: var(--accent); color: var(--accent-ink);\n box-shadow: var(--shadow); font-weight: 600; letter-spacing: 0.01em;\n transition: transform 220ms var(--ease), box-shadow 220ms var(--ease);\n}\n.launcher:hover { transform: translateY(-2px); }\n.launcher:active { transform: translateY(0); }\n.launcher[aria-expanded=\"true\"] { display: none; }\n.lamp {\n width: 8px; height: 8px; border-radius: 50%; flex: none;\n background: var(--lamp); box-shadow: 0 0 0 3px color-mix(in oklab, var(--lamp) 28%, transparent);\n}\n.lamp.off { background: transparent; box-shadow: inset 0 0 0 1.5px var(--muted); }\n.lamp.busy { animation: blink 1.1s steps(2, jump-none) infinite; }\n@keyframes blink { 50% { opacity: 0.25; } }\n\n/* Panel */\n.panel {\n position: absolute; right: 0; bottom: 0;\n display: flex; flex-direction: column;\n width: min(400px, calc(100vw - 40px)); height: min(640px, calc(100dvh - 40px));\n background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow);\n overflow: hidden; transform-origin: bottom right;\n animation: rise 320ms var(--ease);\n}\n:host([position=\"bottom-left\"]) .panel { right: auto; left: 0; transform-origin: bottom left; }\n:host([inline]) .panel { position: static; width: 100%; height: 100%; box-shadow: none; animation: none; border-radius: inherit; }\n@keyframes rise { from { opacity: 0; transform: translateY(12px) scale(0.98); } }\n@media (max-width: 480px) {\n :host(:not([inline])) { inset: auto 12px 12px auto; }\n :host(:not([inline])[position=\"bottom-left\"]) { inset: auto auto 12px 12px; }\n :host(:not([inline])) .panel { position: fixed; inset: 0; width: 100%; height: 100dvh; border-radius: 0; }\n}\n\nheader {\n display: flex; align-items: center; gap: 10px;\n padding: 14px 10px 14px 18px; background: var(--accent); color: var(--accent-ink);\n}\nheader h2 { flex: 1; margin: 0; font-size: 16px; font-weight: 650; letter-spacing: 0.005em; line-height: 1.25; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.icon-btn {\n display: inline-grid; place-items: center; width: 36px; height: 36px; flex: none;\n border: 0; border-radius: 10px; background: transparent; color: inherit;\n transition: background 160ms;\n}\n.icon-btn:hover { background: color-mix(in oklab, currentColor 14%, transparent); }\nheader .icon-btn:focus-visible { outline-color: var(--accent-ink); }\n\n/* Conversation */\n.log {\n flex: 1; overflow-y: auto; overscroll-behavior: contain;\n padding: 18px 18px 8px; display: flex; flex-direction: column; gap: 16px;\n scrollbar-width: thin; scrollbar-color: var(--line) transparent;\n}\n.msg { max-width: 100%; overflow-wrap: anywhere; }\n.msg p { margin: 0 0 0.6em; }\n.msg p:last-child { margin-bottom: 0; }\n.msg ul, .msg ol { margin: 0 0 0.6em; padding-left: 1.3em; }\n.msg li + li { margin-top: 0.2em; }\n.msg code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88em; background: var(--raised); padding: 0.1em 0.35em; border-radius: 5px; }\n.msg pre { margin: 0 0 0.6em; padding: 10px 12px; background: var(--raised); border-radius: 10px; overflow-x: auto; }\n.msg pre code { background: none; padding: 0; }\n.msg .table { margin: 0 0 0.6em; overflow-x: auto; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--line); }\n.msg table { width: 100%; border-collapse: collapse; font-size: 14px; }\n.msg th, .msg td { padding: 6px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }\n.msg tr:last-child td { border-bottom: 0; }\n.msg th { font-weight: 650; background: var(--raised); }\n.msg blockquote { margin: 0 0 0.6em; padding: 2px 0 2px 12px; color: var(--muted); box-shadow: inset 1px 0 0 var(--line); }\n.msg hr { margin: 0.8em 0; border: 0; border-top: 1px solid var(--line); }\n.user {\n align-self: flex-end; max-width: 85%;\n padding: 9px 14px; border-radius: 16px 16px 4px 16px;\n background: var(--accent); color: var(--accent-ink); white-space: pre-wrap;\n}\n.bot { align-self: stretch; }\n.greeting { color: var(--muted); }\n\n.cite {\n display: inline-grid; place-items: center; min-width: 1.45em; height: 1.45em; padding: 0 0.3em;\n margin: 0 0.1em; vertical-align: 0.12em;\n border-radius: 1em; box-shadow: inset 0 0 0 1.25px currentColor;\n font-size: 0.72em; font-weight: 700; line-height: 1; text-decoration: none;\n font-variant-numeric: tabular-nums; color: var(--muted);\n transition: background 160ms, color 160ms;\n}\n.cite:hover, .cite:focus-visible { background: var(--lamp); color: #211c17; box-shadow: none; }\n\n.sources { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 2px; }\n.sources-label { margin: 18px 0 2px; font-size: 12px; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }\n.sources a {\n display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 10px;\n padding: 7px 10px; margin: 0 -10px; border-radius: 10px; text-decoration: none;\n}\n.sources a:hover { background: var(--raised); }\n.sources .cite { margin: 0; }\n.sources .where { min-width: 0; font-size: 14px; line-height: 1.35; }\n.sources .where span { color: var(--muted); }\n\n.status { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 14px; }\n.error { color: var(--danger); }\n.error p { margin: 0 0 8px; }\n.text-btn {\n display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 9px;\n border: 0; background: var(--raised); color: var(--ink); font-size: 14px; font-weight: 600;\n}\n.text-btn:hover { background: var(--line); }\n\n/* Composer */\nform.composer {\n display: flex; align-items: flex-end; gap: 8px; margin: 8px 12px 0; padding: 6px 6px 6px 14px;\n border-radius: 14px; background: var(--raised);\n box-shadow: inset 0 0 0 1px var(--line); transition: box-shadow 160ms;\n}\nform.composer:focus-within { box-shadow: inset 0 0 0 1.5px var(--focus); }\ntextarea {\n flex: 1; min-height: 38px; max-height: 140px; padding: 8px 0; resize: none;\n border: 0; background: transparent; outline: none; line-height: 1.4;\n}\ntextarea:focus-visible { outline: none; }\ntextarea::placeholder, input::placeholder { color: var(--muted); opacity: 1; }\n.send {\n display: inline-grid; place-items: center; width: 38px; height: 38px; flex: none;\n border: 0; border-radius: 10px; background: var(--accent); color: var(--accent-ink);\n transition: opacity 160ms;\n}\n.send:disabled { opacity: 0.35; cursor: default; }\nfooter { padding: 8px 18px 12px; font-size: 12px; color: var(--muted); text-align: center; }\nfooter a { text-decoration: none; }\nfooter a:hover { text-decoration: underline; }\n\n/* Settings */\n.setup { flex: 1; overflow-y: auto; padding: 18px; display: grid; gap: 16px; align-content: start; }\n.setup p.intro { margin: 0; color: var(--muted); font-size: 14px; }\n.field { display: grid; gap: 6px; }\n.field > span { font-size: 13px; font-weight: 650; }\n.field small { color: var(--muted); font-size: 12.5px; }\n.field input:not([type=\"checkbox\"]), .field select {\n width: 100%; height: 40px; padding: 0 12px; border-radius: 10px;\n border: 0; background: var(--raised); box-shadow: inset 0 0 0 1px var(--line);\n}\n.field input:focus-visible, .field select:focus-visible { outline: none; box-shadow: inset 0 0 0 1.5px var(--focus); }\n.check { display: flex; align-items: center; gap: 10px; font-size: 14px; }\n.check input { width: 18px; height: 18px; accent-color: var(--accent); margin: 0; }\n.presets { display: flex; gap: 8px; flex-wrap: wrap; }\n.row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }\n.primary {\n display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n height: 42px; padding: 0 18px; border: 0; border-radius: 11px;\n background: var(--accent); color: var(--accent-ink); font-weight: 650;\n}\n.primary:disabled { opacity: 0.4; cursor: default; }\n.result { font-size: 14px; }\n.result.ok { color: inherit; }\n.result.ok::before { content: \"\"; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--lamp); }\n.result.fail { color: var(--danger); }\n.local-choice { display: grid; gap: 6px; padding: 14px; border-radius: 12px; background: var(--raised); }\n.local-choice small { color: var(--muted); font-size: 12.5px; }\n.local-choice .link-btn { margin-top: 2px; }\np.or { margin: 0; color: var(--muted); font-size: 13px; text-align: center; }\n.consent { display: grid; gap: 10px; padding: 14px; border-radius: 12px; background: var(--raised); }\n.consent p { margin: 0; }\n.loadbar { display: grid; gap: 6px; margin: 4px 12px 0; padding: 8px 12px; border-radius: 10px; background: var(--raised); color: var(--muted); font-size: 13px; }\nprogress { width: 100%; height: 6px; appearance: none; border: 0; border-radius: 3px; background: var(--line); overflow: hidden; }\nprogress::-webkit-progress-bar { background: var(--line); }\nprogress::-webkit-progress-value { background: var(--lamp); }\nprogress::-moz-progress-bar { background: var(--lamp); }\n.link-btn { padding: 0; border: 0; background: none; color: var(--muted); font-size: 13px; text-decoration: underline; text-underline-offset: 0.2em; justify-self: start; }\n\n.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }\n\n@media (prefers-reduced-motion: reduce) {\n *, .panel { animation: none !important; transition: none !important; }\n}\n";
|
|
6
|
+
export declare const STYLES = "\n:host {\n --accent: var(--murmur-accent, #211c17);\n --accent-ink: var(--murmur-accent-ink, #f6efe0);\n --lamp: var(--murmur-lamp, #e0a032);\n --surface: #fbf8f1;\n --raised: #f2ece0;\n --ink: #211c17;\n --muted: #675c4f;\n --line: #e2d8c5;\n --focus: #b4541d;\n --danger: #a1301f;\n --radius: var(--murmur-radius, 16px);\n --shadow: 0 18px 48px -12px rgb(33 28 23 / 0.28), 0 4px 12px -4px rgb(33 28 23 / 0.16);\n --ease: cubic-bezier(0.16, 1, 0.3, 1);\n all: initial;\n position: fixed;\n z-index: var(--murmur-z, 2147483000);\n inset: auto 20px 20px auto;\n font-family: var(--murmur-font, inherit);\n font-size: 15px;\n line-height: 1.5;\n color: var(--ink);\n color-scheme: light;\n -webkit-font-smoothing: antialiased;\n}\n:host([position=\"bottom-left\"]) { inset: auto auto 20px 20px; }\n:host([inline]) { position: relative; inset: auto; z-index: auto; display: block; height: 100%; }\n:host([theme=\"dark\"]) { --surface: #1c1814; --raised: #26211b; --ink: #f2ead9; --muted: #b8ab95; --line: #3b342b; --focus: #f0a35c; --danger: #f08a73; color-scheme: dark; }\n@media (prefers-color-scheme: dark) {\n :host(:not([theme=\"light\"])) { --surface: #1c1814; --raised: #26211b; --ink: #f2ead9; --muted: #b8ab95; --line: #3b342b; --focus: #f0a35c; --danger: #f08a73; color-scheme: dark; }\n :host(:not([theme=\"light\"])) { --murmur-accent-default: #f2ead9; }\n}\n@media print { :host { display: none !important; } }\n* { box-sizing: border-box; }\n[hidden] { display: none !important; }\n::selection { background: color-mix(in oklab, var(--lamp) 45%, transparent); color: inherit; }\nbutton, input, select, textarea { font: inherit; color: inherit; }\nbutton { cursor: pointer; }\n:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }\na { color: inherit; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }\n\n/* Launcher */\n.launcher {\n display: inline-flex; align-items: center; gap: 10px;\n height: 52px; padding: 0 20px 0 16px; border: 0; border-radius: 26px;\n background: var(--accent); color: var(--accent-ink);\n box-shadow: var(--shadow); font-weight: 600; letter-spacing: 0.01em;\n transition: transform 220ms var(--ease), box-shadow 220ms var(--ease);\n}\n.launcher:hover { transform: translateY(-2px); }\n.launcher:active { transform: translateY(0); }\n.launcher[aria-expanded=\"true\"] { display: none; }\n.lamp {\n width: 8px; height: 8px; border-radius: 50%; flex: none;\n background: var(--lamp); box-shadow: 0 0 0 3px color-mix(in oklab, var(--lamp) 28%, transparent);\n}\n.lamp.off { background: transparent; box-shadow: inset 0 0 0 1.5px var(--muted); }\n.lamp.busy { animation: blink 1.1s steps(2, jump-none) infinite; }\n@keyframes blink { 50% { opacity: 0.25; } }\n\n/* Panel */\n.panel {\n position: absolute; right: 0; bottom: 0;\n display: flex; flex-direction: column;\n width: min(400px, calc(100vw - 40px)); height: min(640px, calc(100dvh - 40px));\n background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow);\n overflow: hidden; transform-origin: bottom right;\n animation: rise 320ms var(--ease);\n}\n:host([position=\"bottom-left\"]) .panel { right: auto; left: 0; transform-origin: bottom left; }\n:host([inline]) .panel { position: static; width: 100%; height: 100%; box-shadow: none; animation: none; border-radius: inherit; }\n@keyframes rise { from { opacity: 0; transform: translateY(12px) scale(0.98); } }\n@media (max-width: 480px) {\n :host(:not([inline])) { inset: auto 12px 12px auto; }\n :host(:not([inline])[position=\"bottom-left\"]) { inset: auto auto 12px 12px; }\n :host(:not([inline])) .panel { position: fixed; inset: 0; width: 100%; height: 100dvh; border-radius: 0; }\n}\n\nheader {\n display: flex; align-items: center; gap: 10px;\n padding: 14px 10px 14px 18px; background: var(--accent); color: var(--accent-ink);\n}\nheader h2 { flex: 1; margin: 0; font-size: 16px; font-weight: 650; letter-spacing: 0.005em; line-height: 1.25; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.icon-btn {\n display: inline-grid; place-items: center; width: 36px; height: 36px; flex: none;\n border: 0; border-radius: 10px; background: transparent; color: inherit;\n transition: background 160ms;\n}\n.icon-btn:hover { background: color-mix(in oklab, currentColor 14%, transparent); }\nheader .icon-btn:focus-visible { outline-color: var(--accent-ink); }\n\n/* Conversation */\n.log {\n flex: 1; overflow-y: auto; overscroll-behavior: contain;\n padding: 18px 18px 8px; display: flex; flex-direction: column; gap: 16px;\n scrollbar-width: thin; scrollbar-color: var(--line) transparent;\n}\n.msg { max-width: 100%; overflow-wrap: anywhere; }\n.msg p { margin: 0 0 0.6em; }\n.msg p:last-child { margin-bottom: 0; }\n.msg ul, .msg ol { margin: 0 0 0.6em; padding-left: 1.3em; }\n.msg li + li { margin-top: 0.2em; }\n.msg code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88em; background: var(--raised); padding: 0.1em 0.35em; border-radius: 5px; }\n.msg pre { margin: 0 0 0.6em; padding: 10px 12px; background: var(--raised); border-radius: 10px; overflow-x: auto; }\n.msg pre code { background: none; padding: 0; }\n.msg .table { margin: 0 0 0.6em; overflow-x: auto; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--line); }\n.msg table { width: 100%; border-collapse: collapse; font-size: 14px; }\n.msg th, .msg td { padding: 6px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }\n.msg tr:last-child td { border-bottom: 0; }\n.msg th { font-weight: 650; background: var(--raised); }\n.msg blockquote { margin: 0 0 0.6em; padding: 2px 0 2px 12px; color: var(--muted); box-shadow: inset 1px 0 0 var(--line); }\n.msg hr { margin: 0.8em 0; border: 0; border-top: 1px solid var(--line); }\n.user {\n align-self: flex-end; max-width: 85%;\n padding: 9px 14px; border-radius: 16px 16px 4px 16px;\n background: var(--accent); color: var(--accent-ink); white-space: pre-wrap;\n}\n.bot { align-self: stretch; }\n.greeting { color: var(--muted); }\n\n.nowrap { white-space: nowrap; }\n.cite {\n display: inline-grid; place-items: center; min-width: 1.45em; height: 1.45em; padding: 0 0.3em;\n margin: 0 0.1em; vertical-align: 0.12em;\n border-radius: 1em; box-shadow: inset 0 0 0 1.25px currentColor;\n font-size: 0.72em; font-weight: 700; line-height: 1; text-decoration: none;\n font-variant-numeric: tabular-nums; color: var(--muted);\n transition: background 160ms, color 160ms;\n}\n.cite:hover, .cite:focus-visible { background: var(--lamp); color: #211c17; box-shadow: none; }\n\n.sources { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 2px; }\n.sources-label { margin: 18px 0 2px; font-size: 12px; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }\n.sources a {\n display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 10px;\n padding: 7px 10px; margin: 0 -10px; border-radius: 10px; text-decoration: none;\n}\n.sources a:hover { background: var(--raised); }\n.sources .cite { margin: 0; }\n.sources .where { min-width: 0; font-size: 14px; line-height: 1.35; }\n.sources .where span { color: var(--muted); }\n\n.status { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 14px; }\n.error { color: var(--danger); }\n.error p { margin: 0 0 8px; }\n.text-btn {\n display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 9px;\n border: 0; background: var(--raised); color: var(--ink); font-size: 14px; font-weight: 600;\n}\n.text-btn:hover { background: var(--line); }\n\n/* Composer */\nform.composer {\n display: flex; align-items: flex-end; gap: 8px; margin: 8px 12px 0; padding: 6px 6px 6px 14px;\n border-radius: 14px; background: var(--raised);\n box-shadow: inset 0 0 0 1px var(--line); transition: box-shadow 160ms;\n}\nform.composer:focus-within { box-shadow: inset 0 0 0 1.5px var(--focus); }\ntextarea {\n flex: 1; min-height: 38px; max-height: 140px; padding: 8px 0; resize: none;\n border: 0; background: transparent; outline: none; line-height: 1.4;\n}\ntextarea:focus-visible { outline: none; }\ntextarea::placeholder, input::placeholder { color: var(--muted); opacity: 1; }\n.send {\n display: inline-grid; place-items: center; width: 38px; height: 38px; flex: none;\n border: 0; border-radius: 10px; background: var(--accent); color: var(--accent-ink);\n transition: opacity 160ms;\n}\n.send:disabled { opacity: 0.35; cursor: default; }\nfooter { padding: 8px 18px 12px; font-size: 12px; color: var(--muted); text-align: center; }\nfooter a { text-decoration: none; }\nfooter a:hover { text-decoration: underline; }\n\n/* Settings */\n.setup { flex: 1; overflow-y: auto; padding: 18px; display: grid; gap: 16px; align-content: start; }\n.setup p.intro { margin: 0; color: var(--muted); font-size: 14px; }\n.field { display: grid; gap: 6px; }\n.field > span { font-size: 13px; font-weight: 650; }\n.field small { color: var(--muted); font-size: 12.5px; }\n.field input:not([type=\"checkbox\"]), .field select {\n width: 100%; height: 40px; padding: 0 12px; border-radius: 10px;\n border: 0; background: var(--raised); box-shadow: inset 0 0 0 1px var(--line);\n}\n.field input:focus-visible, .field select:focus-visible { outline: none; box-shadow: inset 0 0 0 1.5px var(--focus); }\n.check { display: flex; align-items: center; gap: 10px; font-size: 14px; }\n.check input { width: 18px; height: 18px; accent-color: var(--accent); margin: 0; }\n.presets { display: flex; gap: 8px; flex-wrap: wrap; }\n.row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }\n.primary {\n display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n height: 42px; padding: 0 18px; border: 0; border-radius: 11px;\n background: var(--accent); color: var(--accent-ink); font-weight: 650;\n}\n.primary:disabled { opacity: 0.4; cursor: default; }\n.result { font-size: 14px; }\n.result.ok { color: inherit; }\n.result.ok::before { content: \"\"; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--lamp); }\n.result.fail { color: var(--danger); }\n.local-choice { display: grid; gap: 6px; padding: 14px; border-radius: 12px; background: var(--raised); }\n.local-choice small { color: var(--muted); font-size: 12.5px; }\n.local-choice .link-btn { margin-top: 2px; }\np.or { margin: 0; color: var(--muted); font-size: 13px; text-align: center; }\n.consent { display: grid; gap: 10px; padding: 14px; border-radius: 12px; background: var(--raised); }\n.consent p { margin: 0; }\n.loadbar { display: grid; gap: 6px; margin: 4px 12px 0; padding: 8px 12px; border-radius: 10px; background: var(--raised); color: var(--muted); font-size: 13px; }\nprogress { width: 100%; height: 6px; appearance: none; border: 0; border-radius: 3px; background: var(--line); overflow: hidden; }\nprogress::-webkit-progress-bar { background: var(--line); }\nprogress::-webkit-progress-value { background: var(--lamp); }\nprogress::-moz-progress-bar { background: var(--lamp); }\n.link-btn { padding: 0; border: 0; background: none; color: var(--muted); font-size: 13px; text-decoration: underline; text-underline-offset: 0.2em; justify-self: start; }\n\n.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }\n\n@media (prefers-reduced-motion: reduce) {\n *, .panel { animation: none !important; transition: none !important; }\n}\n";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "murmur-rag",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Embeddable AI chat for static sites: one script tag, a mini RAG over your own pages, any LLM through llm-connect (your proxy or the visitor's own key). No backend.",
|
|
5
5
|
"author": "maxgfr",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{xn,St}from"./embed-hhcax25m.js";export{xn as generateText,St as streamText};
|