juneau 0.1.0
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 +320 -0
- package/dist/adapters/dashboardAdapter.d.ts +10 -0
- package/dist/adapters/dashboardAdapter.d.ts.map +1 -0
- package/dist/adapters/mockAdapter.d.ts +8 -0
- package/dist/adapters/mockAdapter.d.ts.map +1 -0
- package/dist/components/AiChat/AiChat.d.ts +39 -0
- package/dist/components/AiChat/AiChat.d.ts.map +1 -0
- package/dist/components/AiChatHeader/AiChatHeader.d.ts +10 -0
- package/dist/components/AiChatHeader/AiChatHeader.d.ts.map +1 -0
- package/dist/components/AiError/AiError.d.ts +7 -0
- package/dist/components/AiError/AiError.d.ts.map +1 -0
- package/dist/components/AiInput/AiInput.d.ts +29 -0
- package/dist/components/AiInput/AiInput.d.ts.map +1 -0
- package/dist/components/AiMessageBubble/AiMessageBubble.d.ts +12 -0
- package/dist/components/AiMessageBubble/AiMessageBubble.d.ts.map +1 -0
- package/dist/components/AiMessageList/AiMessageList.d.ts +13 -0
- package/dist/components/AiMessageList/AiMessageList.d.ts.map +1 -0
- package/dist/components/AiSidebar/AiSidebar.d.ts +26 -0
- package/dist/components/AiSidebar/AiSidebar.d.ts.map +1 -0
- package/dist/components/AiTypingIndicator/AiTypingIndicator.d.ts +2 -0
- package/dist/components/AiTypingIndicator/AiTypingIndicator.d.ts.map +1 -0
- package/dist/components/JuneauProvider/JuneauProvider.d.ts +43 -0
- package/dist/components/JuneauProvider/JuneauProvider.d.ts.map +1 -0
- package/dist/components/icons.d.ts +17 -0
- package/dist/components/icons.d.ts.map +1 -0
- package/dist/components/parts/AiMessagePartRenderer.d.ts +9 -0
- package/dist/components/parts/AiMessagePartRenderer.d.ts.map +1 -0
- package/dist/components/parts/AiProposalCard.d.ts +9 -0
- package/dist/components/parts/AiProposalCard.d.ts.map +1 -0
- package/dist/components/parts/AiTablePart.d.ts +7 -0
- package/dist/components/parts/AiTablePart.d.ts.map +1 -0
- package/dist/core/stream.d.ts +8 -0
- package/dist/core/stream.d.ts.map +1 -0
- package/dist/core/types.d.ts +59 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/hooks/useAiChat.d.ts +33 -0
- package/dist/hooks/useAiChat.d.ts.map +1 -0
- package/dist/i18n/context.d.ts +8 -0
- package/dist/i18n/context.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/locales/cs.d.ts +3 -0
- package/dist/i18n/locales/cs.d.ts.map +1 -0
- package/dist/i18n/locales/en.d.ts +3 -0
- package/dist/i18n/locales/en.d.ts.map +1 -0
- package/dist/i18n/types.d.ts +24 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/index.cjs +49 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9513 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +1 -0
- package/package.json +80 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--juneau-color-primary: #000000;--juneau-color-primary-dark: #252528;--juneau-color-primary-light: #ECECEC;--juneau-color-primary-border: #E8E8EC;--juneau-color-accent: #FF49A4;--juneau-color-accent-dark: #FF6BB3;--juneau-color-accent-light: #FFF0F7;--juneau-color-accent-border: #FFBDD9;--juneau-color-surface: #FFFFFF;--juneau-color-surface-raised: #F4F4F6;--juneau-color-surface-hover: #ECECEC;--juneau-color-border: #E8E8EC;--juneau-color-border-subtle: #ECECEC;--juneau-color-text-primary: #000000;--juneau-color-text-secondary: #474747;--juneau-color-text-muted: #474747;--juneau-color-text-faint: #9090A0;--juneau-color-text-inverse: #FFFFFF;--juneau-color-assistant-avatar: #FF49A4;--juneau-color-error-bg: #FFF0F7;--juneau-color-error-border: #E6244A;--juneau-color-error-text: #C41A3B;--juneau-color-success-bg: #F4FDE8;--juneau-color-success-text: #3F7528;--juneau-color-warning-bg: #FFF6E5;--juneau-color-warning-text: #B37400;--juneau-color-danger-bg: #FFF0F7;--juneau-color-danger-text: #C41A3B;--juneau-radius-sm: 6px;--juneau-radius-md: 8px;--juneau-radius-lg: 12px;--juneau-radius-full: 9999px;--juneau-font-size-xs: 11px;--juneau-font-size-sm: 12px;--juneau-font-size-base: 13px;--juneau-font-size-md: 14px;--juneau-font-size-lg: 15px;--juneau-font-size-xl: 16px;--juneau-font-size-2xl: 22px;--juneau-font-size-3xl: 24px;--juneau-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--juneau-transition-fast: .15s}._root_14q8g_1{display:contents;font-family:var(--juneau-font-family)}._wrapper_v5oy7_1{overflow-x:auto;margin:8px 0;border-radius:var(--juneau-radius-md);border:1px solid var(--juneau-color-border)}._table_v5oy7_8{width:100%;border-collapse:collapse;font-size:var(--juneau-font-size-base)}._th_v5oy7_14{background-color:var(--juneau-color-surface-raised);padding:8px 12px;text-align:left;font-weight:600;color:var(--juneau-color-text-secondary);border-bottom:1px solid var(--juneau-color-border);white-space:nowrap}._tr_v5oy7_24:nth-child(2n){background-color:var(--juneau-color-surface-raised)}._tr_v5oy7_24:hover{background-color:var(--juneau-color-surface-hover)}._td_v5oy7_32{padding:7px 12px;color:var(--juneau-color-text-primary);border-bottom:1px solid var(--juneau-color-border-subtle)}._card_q8nsq_1{background:linear-gradient(135deg,var(--juneau-color-accent-light) 0%,var(--juneau-color-accent-border) 100%);border:1px solid var(--juneau-color-accent-border);border-radius:var(--juneau-radius-lg);padding:14px 16px;margin:8px 0}._header_q8nsq_9{display:flex;align-items:center;gap:8px;margin-bottom:6px}._icon_q8nsq_16{flex-shrink:0;width:16px;height:16px;color:var(--juneau-color-accent)}._title_q8nsq_23{font-weight:600;font-size:var(--juneau-font-size-md);color:var(--juneau-color-accent-dark)}._description_q8nsq_29{font-size:var(--juneau-font-size-base);color:var(--juneau-color-text-secondary);margin:0 0 12px;line-height:1.5}._actions_q8nsq_36{display:flex;gap:8px}._confirm_q8nsq_41{padding:7px 16px;background-color:var(--juneau-color-accent);color:var(--juneau-color-text-inverse);border:none;border-radius:var(--juneau-radius-sm);font-size:var(--juneau-font-size-base);font-weight:500;cursor:pointer;transition:background-color var(--juneau-transition-fast)}._confirm_q8nsq_41:hover{background-color:var(--juneau-color-accent-dark)}._cancel_q8nsq_57{padding:7px 16px;background-color:transparent;color:var(--juneau-color-text-muted);border:1px solid var(--juneau-color-border);border-radius:var(--juneau-radius-sm);font-size:var(--juneau-font-size-base);font-weight:500;cursor:pointer;transition:background-color var(--juneau-transition-fast),color var(--juneau-transition-fast)}._cancel_q8nsq_57:hover{background-color:var(--juneau-color-surface-hover);color:var(--juneau-color-text-secondary)}._markdown_187bn_1{line-height:1.6;font-size:var(--juneau-font-size-md)}._markdown_187bn_1 p{margin:0 0 .5em}._markdown_187bn_1 p:last-child{margin-bottom:0}._markdown_187bn_1 strong{font-weight:700}._markdown_187bn_1 em{font-style:italic}._markdown_187bn_1 code{font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:.9em;background:var(--juneau-color-surface-raised);border:1px solid var(--juneau-color-border);border-radius:var(--juneau-radius-sm);padding:.1em .35em}._markdown_187bn_1 pre{background:var(--juneau-color-surface-raised);border:1px solid var(--juneau-color-border);border-radius:var(--juneau-radius-md);padding:10px 14px;overflow-x:auto;margin:.5em 0}._markdown_187bn_1 pre code{background:none;border:none;padding:0;font-size:var(--juneau-font-size-sm)}._markdown_187bn_1 ul,._markdown_187bn_1 ol{margin:.25em 0 .5em;padding-left:1.4em}._markdown_187bn_1 li{margin-bottom:.2em}._markdown_187bn_1 blockquote{margin:.5em 0;padding-left:.75em;border-left:3px solid var(--juneau-color-border);color:var(--juneau-color-text-secondary)}._markdown_187bn_1 a{color:var(--juneau-color-accent);text-decoration:underline}._markdown_187bn_1 h1,._markdown_187bn_1 h2,._markdown_187bn_1 h3,._markdown_187bn_1 h4{margin:.6em 0 .3em;font-weight:700;line-height:1.3}._markdown_187bn_1 h1{font-size:var(--juneau-font-size-xl)}._markdown_187bn_1 h2{font-size:var(--juneau-font-size-lg)}._markdown_187bn_1 h3,._markdown_187bn_1 h4{font-size:var(--juneau-font-size-md)}._errorText_187bn_83{display:inline-flex;align-items:center;gap:5px;color:var(--juneau-color-error-text);font-size:var(--juneau-font-size-base)}._errorIcon_187bn_91{width:14px;height:14px;flex-shrink:0}._wrapper_13l1e_1{display:flex;align-items:flex-start;gap:8px;padding:4px 0}._user_13l1e_8{flex-direction:row-reverse}._assistant_13l1e_12{flex-direction:row}._avatar_13l1e_16{flex-shrink:0;width:30px;height:30px;border-radius:var(--juneau-radius-full);font-size:var(--juneau-font-size-xs);font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:2px}._user_13l1e_8 ._avatar_13l1e_16{background-color:var(--juneau-color-primary);color:var(--juneau-color-text-inverse)}._assistant_13l1e_12 ._avatar_13l1e_16{background-color:var(--juneau-color-assistant-avatar);color:var(--juneau-color-text-inverse)}._bubble_13l1e_39{max-width:85%;padding:10px 14px;border-radius:var(--juneau-radius-lg);font-size:var(--juneau-font-size-md);line-height:1.6;word-break:break-word}._user_13l1e_8 ._bubble_13l1e_39{background-color:var(--juneau-color-primary);color:var(--juneau-color-text-inverse);border-bottom-right-radius:3px}._assistant_13l1e_12 ._bubble_13l1e_39{background-color:var(--juneau-color-surface-raised);color:var(--juneau-color-text-primary);border:1px solid var(--juneau-color-border);border-bottom-left-radius:3px}._empty_13l1e_61{display:inline-block;width:4px;height:16px}._wrapper_c5015_1{display:flex;align-items:center;gap:4px;padding:10px 14px}._dot_c5015_8{width:7px;height:7px;border-radius:var(--juneau-radius-full);background-color:var(--juneau-color-text-faint);animation:_bounce_c5015_1 1.2s infinite ease-in-out}._dot_c5015_8:nth-child(2){animation-delay:.2s}._dot_c5015_8:nth-child(3){animation-delay:.4s}@keyframes _bounce_c5015_1{0%,80%,to{transform:translateY(0);opacity:.5}40%{transform:translateY(-5px);opacity:1}}._list_1f8gn_1{flex:1;overflow-y:auto;padding:16px 12px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}._empty_1f8gn_11{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--juneau-color-text-faint);font-size:var(--juneau-font-size-md);gap:6px;padding:40px 20px}._hint_1f8gn_24{font-size:var(--juneau-font-size-sm);color:var(--juneau-color-text-faint)}._typing_1f8gn_31{display:flex;align-items:flex-start;gap:8px;padding:2px 0}._wrapper_v8iyr_1{display:flex;flex-direction:column;border-top:1px solid var(--juneau-color-border);background-color:var(--juneau-color-surface);flex-shrink:0}._textarea_v8iyr_11{resize:none;border:none;outline:none;padding:12px 14px 6px;font-size:var(--juneau-font-size-md);font-family:inherit;line-height:1.6;color:var(--juneau-color-text-primary);background-color:var(--juneau-color-surface);width:100%}._textarea_v8iyr_11::placeholder{color:var(--juneau-color-text-faint)}._textarea_v8iyr_11:disabled{opacity:.6;cursor:not-allowed}._toolbar_v8iyr_35{display:flex;align-items:center;justify-content:space-between;padding:6px 10px 10px;gap:8px}._actions_v8iyr_45{display:flex;align-items:center;gap:2px;flex-wrap:wrap}._actionBtn_v8iyr_52{display:flex;align-items:center;gap:5px;padding:5px 8px;border:none;border-radius:var(--juneau-radius-sm);background:transparent;color:var(--juneau-color-text-muted);font-size:var(--juneau-font-size-sm);font-family:inherit;cursor:pointer;white-space:nowrap;transition:background-color var(--juneau-transition-fast),color var(--juneau-transition-fast)}._actionBtn_v8iyr_52 svg{font-size:11px;opacity:.8}._actionBtn_v8iyr_52:hover:not(:disabled){background:var(--juneau-color-surface-raised);color:var(--juneau-color-text-primary)}._actionBtn_v8iyr_52:disabled{opacity:.4;cursor:not-allowed}._sendBtn_v8iyr_85{display:flex;align-items:center;gap:7px;padding:7px 14px;border:none;border-radius:var(--juneau-radius-md);background-color:var(--juneau-color-primary);color:var(--juneau-color-text-inverse);font-size:var(--juneau-font-size-base);font-family:inherit;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background-color var(--juneau-transition-fast),opacity var(--juneau-transition-fast)}._sendBtn_v8iyr_85 svg{font-size:12px}._sendBtn_v8iyr_85:hover:not(:disabled){background-color:var(--juneau-color-primary-dark)}._sendBtn_v8iyr_85:disabled{opacity:.4;cursor:not-allowed}._spinnerIcon_v8iyr_116{width:14px;height:14px;animation:_spin_v8iyr_116 .8s linear infinite}@keyframes _spin_v8iyr_116{to{transform:rotate(360deg)}}._stopBtn_v8iyr_126{display:flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid var(--juneau-color-border);border-radius:var(--juneau-radius-md);background-color:var(--juneau-color-surface);color:var(--juneau-color-text-secondary);font-size:var(--juneau-font-size-base);font-family:inherit;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background-color var(--juneau-transition-fast),color var(--juneau-transition-fast)}._stopBtn_v8iyr_126:hover{background-color:var(--juneau-color-surface-raised);color:var(--juneau-color-text-primary)}._stopIcon_v8iyr_149{width:14px;height:14px}._wrapper_1kefv_1{display:flex;align-items:center;gap:8px;padding:10px 14px;background-color:var(--juneau-color-error-bg);border:1px solid var(--juneau-color-error-border);border-radius:var(--juneau-radius-md);margin:4px 12px;font-size:var(--juneau-font-size-base);color:var(--juneau-color-error-text)}._icon_1kefv_14{flex-shrink:0;width:16px;height:16px}._message_1kefv_20{flex:1}._dismiss_1kefv_24{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--juneau-color-error-text);padding:0 2px;opacity:.7;transition:opacity var(--juneau-transition-fast)}._dismiss_1kefv_24 svg{width:14px;height:14px}._dismiss_1kefv_24:hover{opacity:1}._chat_1acbe_1{display:flex;flex-direction:column;height:100%;overflow:hidden}._header_3rkjl_1{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--juneau-color-border);background:var(--juneau-color-primary);color:var(--juneau-color-text-inverse);flex-shrink:0}._left_3rkjl_12{display:flex;align-items:center;gap:8px}._icon_3rkjl_18{font-size:14px;opacity:.9}._title_3rkjl_23{font-size:var(--juneau-font-size-base);font-weight:600;letter-spacing:.02em}._resetBtn_3rkjl_29{background:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:var(--juneau-radius-sm);color:var(--juneau-color-text-inverse);width:26px;height:26px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color var(--juneau-transition-fast)}._resetBtn_3rkjl_29:hover{background:#ffffff40}._sidebar_1ukfc_1{display:flex;flex-direction:column;width:380px;min-width:320px;height:100%;background-color:var(--juneau-color-surface);border-left:1px solid var(--juneau-color-border);overflow:hidden}
|
package/package.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "juneau",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Open-source React/TypeScript library for AI chat UI components",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
},
|
|
15
|
+
"./dist/style.css": "./dist/style.css"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": [
|
|
21
|
+
"dist/style.css"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"dev": "vite",
|
|
25
|
+
"build": "npm run build:types && vite build --mode lib",
|
|
26
|
+
"build:types": "tsc --project tsconfig.build.json",
|
|
27
|
+
"build:demo": "vite build",
|
|
28
|
+
"preview": "vite preview --outDir dist-demo",
|
|
29
|
+
"typecheck": "tsc --noEmit",
|
|
30
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
31
|
+
"storybook": "storybook dev -p 6006",
|
|
32
|
+
"build-storybook": "storybook build",
|
|
33
|
+
"test": "vitest"
|
|
34
|
+
},
|
|
35
|
+
"peerDependencies": {
|
|
36
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
37
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"react-markdown": "^10.1.0",
|
|
41
|
+
"remark-gfm": "^4.0.1"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@chromatic-com/storybook": "latest",
|
|
45
|
+
"@fortawesome/fontawesome-svg-core": "^7.3.1",
|
|
46
|
+
"@fortawesome/free-regular-svg-icons": "^7.3.1",
|
|
47
|
+
"@fortawesome/free-solid-svg-icons": "^7.3.1",
|
|
48
|
+
"@fortawesome/react-fontawesome": "^3.5.0",
|
|
49
|
+
"@storybook/addon-a11y": "^10.5.7",
|
|
50
|
+
"@storybook/addon-docs": "^10.5.7",
|
|
51
|
+
"@storybook/addon-mcp": "latest",
|
|
52
|
+
"@storybook/addon-vitest": "^10.5.7",
|
|
53
|
+
"@storybook/react-vite": "^10.5.7",
|
|
54
|
+
"@testing-library/react": "^16.3.2",
|
|
55
|
+
"@types/react": "^19.0.0",
|
|
56
|
+
"@types/react-dom": "^19.0.0",
|
|
57
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
58
|
+
"@vitest/browser-playwright": "latest",
|
|
59
|
+
"@vitest/coverage-v8": "latest",
|
|
60
|
+
"jsdom": "^30.0.1",
|
|
61
|
+
"playwright": "latest",
|
|
62
|
+
"storybook": "^10.5.7",
|
|
63
|
+
"typescript": "^5.7.0",
|
|
64
|
+
"vite": "^6.0.0",
|
|
65
|
+
"vitest": "latest"
|
|
66
|
+
},
|
|
67
|
+
"keywords": [
|
|
68
|
+
"react",
|
|
69
|
+
"ai",
|
|
70
|
+
"chat",
|
|
71
|
+
"ui",
|
|
72
|
+
"copilot",
|
|
73
|
+
"streaming"
|
|
74
|
+
],
|
|
75
|
+
"license": "MIT",
|
|
76
|
+
"allowScripts": {
|
|
77
|
+
"esbuild@0.25.12": true,
|
|
78
|
+
"fsevents@2.3.3": true
|
|
79
|
+
}
|
|
80
|
+
}
|