codicent-app-sdk 0.3.98 → 0.3.99
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 +7 -0
- package/dist/cjs/components/AiInput.js +1 -1
- package/dist/cjs/components/AudioIcon.js +1 -1
- package/dist/cjs/components/ChatInput.js +1 -1
- package/dist/cjs/components/ChatMessage.js +1 -1
- package/dist/cjs/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/cjs/components/Footer.js +1 -1
- package/dist/cjs/components/Header.js +1 -1
- package/dist/cjs/components/HtmlView.js +1 -1
- package/dist/cjs/components/MessageInput.js +1 -1
- package/dist/cjs/components/MessageItem.js +1 -1
- package/dist/cjs/components/Profile.js +1 -1
- package/dist/cjs/components/Prompt.js +1 -1
- package/dist/cjs/components/SnapFooter.js +1 -1
- package/dist/cjs/components/TextHeader.js +1 -1
- package/dist/cjs/components/TypingIndicator.js +1 -1
- package/dist/cjs/components/UploadFile.js +1 -1
- package/dist/cjs/components/UrlProcessor.js +1 -1
- package/dist/cjs/components/VoiceIcon.js +1 -1
- package/dist/cjs/config/index.d.ts +8 -0
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +1 -1
- package/dist/cjs/hooks/useAuthState.js +1 -1
- package/dist/cjs/hooks/useChat.js +1 -1
- package/dist/cjs/hooks/useCodicentApp.js +1 -1
- package/dist/cjs/hooks/useCodicentState.js +1 -1
- package/dist/cjs/hooks/useRealtimeVoiceAI.d.ts.map +1 -1
- package/dist/cjs/hooks/useRealtimeVoiceAI.js +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/node_modules/@openai/realtime-api-beta/lib/api.js +1 -0
- package/dist/cjs/node_modules/@openai/realtime-api-beta/lib/client.js +1 -0
- package/dist/cjs/node_modules/@openai/realtime-api-beta/lib/conversation.js +1 -0
- package/dist/cjs/node_modules/@openai/realtime-api-beta/lib/event_handler.js +1 -0
- package/dist/cjs/node_modules/@openai/realtime-api-beta/lib/utils.js +1 -0
- package/dist/cjs/pages/AppFrame.js +1 -1
- package/dist/cjs/pages/Chat.js +1 -1
- package/dist/cjs/pages/Compose.js +1 -1
- package/dist/cjs/pages/CrmPage.js +1 -1
- package/dist/cjs/pages/CrmPagePersistent.js +1 -1
- package/dist/cjs/pages/FormAccept.js +1 -1
- package/dist/cjs/pages/FormInvite.js +1 -1
- package/dist/cjs/pages/HtmlViewer.js +1 -1
- package/dist/cjs/pages/ImageView.js +1 -1
- package/dist/cjs/pages/Login.js +1 -1
- package/dist/cjs/pages/Purchase.js +1 -1
- package/dist/cjs/pages/Sales.js +1 -1
- package/dist/cjs/pages/Search.js +1 -1
- package/dist/cjs/pages/Snap.js +1 -1
- package/dist/cjs/services/codicent.js +1 -1
- package/dist/cjs/utils/appState.d.ts +45 -0
- package/dist/cjs/utils/appState.d.ts.map +1 -1
- package/dist/cjs/utils/appState.js +1 -1
- package/dist/cjs/utils/cacheManager.d.ts +85 -0
- package/dist/cjs/utils/cacheManager.d.ts.map +1 -0
- package/dist/cjs/utils/cacheManager.js +1 -0
- package/dist/cjs/utils/index.d.ts +2 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/esm/components/AiInput.js +1 -1
- package/dist/esm/components/AudioIcon.js +1 -1
- package/dist/esm/components/ChatInput.js +1 -1
- package/dist/esm/components/ChatMessage.js +1 -1
- package/dist/esm/components/CombinedPlaceholderDialog.js +1 -1
- package/dist/esm/components/Footer.js +1 -1
- package/dist/esm/components/Header.js +1 -1
- package/dist/esm/components/HtmlView.js +1 -1
- package/dist/esm/components/MessageInput.js +1 -1
- package/dist/esm/components/MessageItem.js +1 -1
- package/dist/esm/components/Profile.js +1 -1
- package/dist/esm/components/Prompt.js +1 -1
- package/dist/esm/components/SnapFooter.js +1 -1
- package/dist/esm/components/TextHeader.js +1 -1
- package/dist/esm/components/TypingIndicator.js +1 -1
- package/dist/esm/components/UploadFile.js +1 -1
- package/dist/esm/components/UrlProcessor.js +1 -1
- package/dist/esm/components/VoiceIcon.js +1 -1
- package/dist/esm/config/index.d.ts +8 -0
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +1 -1
- package/dist/esm/hooks/useAuthState.js +1 -1
- package/dist/esm/hooks/useChat.js +1 -1
- package/dist/esm/hooks/useCodicentApp.js +1 -1
- package/dist/esm/hooks/useCodicentState.js +1 -1
- package/dist/esm/hooks/useRealtimeVoiceAI.d.ts.map +1 -1
- package/dist/esm/hooks/useRealtimeVoiceAI.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/node_modules/@openai/realtime-api-beta/lib/api.js +1 -0
- package/dist/esm/node_modules/@openai/realtime-api-beta/lib/client.js +1 -0
- package/dist/esm/node_modules/@openai/realtime-api-beta/lib/conversation.js +1 -0
- package/dist/esm/node_modules/@openai/realtime-api-beta/lib/event_handler.js +1 -0
- package/dist/esm/node_modules/@openai/realtime-api-beta/lib/utils.js +1 -0
- package/dist/esm/pages/AppFrame.js +1 -1
- package/dist/esm/pages/Chat.js +1 -1
- package/dist/esm/pages/Compose.js +1 -1
- package/dist/esm/pages/CrmPage.js +1 -1
- package/dist/esm/pages/CrmPagePersistent.js +1 -1
- package/dist/esm/pages/FormAccept.js +1 -1
- package/dist/esm/pages/FormInvite.js +1 -1
- package/dist/esm/pages/HtmlViewer.js +1 -1
- package/dist/esm/pages/ImageView.js +1 -1
- package/dist/esm/pages/Login.js +1 -1
- package/dist/esm/pages/Purchase.js +1 -1
- package/dist/esm/pages/Sales.js +1 -1
- package/dist/esm/pages/Search.js +1 -1
- package/dist/esm/pages/Snap.js +1 -1
- package/dist/esm/services/codicent.js +1 -1
- package/dist/esm/utils/appState.d.ts +45 -0
- package/dist/esm/utils/appState.d.ts.map +1 -1
- package/dist/esm/utils/appState.js +1 -1
- package/dist/esm/utils/cacheManager.d.ts +85 -0
- package/dist/esm/utils/cacheManager.d.ts.map +1 -0
- package/dist/esm/utils/cacheManager.js +1 -0
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/index.d.ts +139 -1
- package/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export interface CacheEntry<T> {
|
|
2
|
+
data: T;
|
|
3
|
+
cachedAt: number;
|
|
4
|
+
expiresAt: number;
|
|
5
|
+
version: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CachedUserSession {
|
|
8
|
+
nickname: string;
|
|
9
|
+
name: string;
|
|
10
|
+
selectedApp: string;
|
|
11
|
+
apps: Array<{
|
|
12
|
+
id: string;
|
|
13
|
+
title: string;
|
|
14
|
+
logo: string;
|
|
15
|
+
}>;
|
|
16
|
+
hasValidPurchase: boolean;
|
|
17
|
+
isRegistered: boolean;
|
|
18
|
+
cachedAt: number;
|
|
19
|
+
expiresAt: number;
|
|
20
|
+
version: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* CacheManager handles localStorage-based caching for the state machine
|
|
24
|
+
*
|
|
25
|
+
* Features:
|
|
26
|
+
* - Type-safe caching with versioning
|
|
27
|
+
* - Automatic expiration based on TTL
|
|
28
|
+
* - Namespace support for multiple cache contexts
|
|
29
|
+
* - Storage quota management
|
|
30
|
+
*/
|
|
31
|
+
export declare class CacheManager {
|
|
32
|
+
private namespace;
|
|
33
|
+
constructor(namespace?: string);
|
|
34
|
+
private getKey;
|
|
35
|
+
/**
|
|
36
|
+
* Store data in cache with a TTL
|
|
37
|
+
*/
|
|
38
|
+
set<T>(key: string, data: T, ttlMs: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Retrieve data from cache
|
|
41
|
+
* Returns null if cache miss, expired, or version mismatch
|
|
42
|
+
*/
|
|
43
|
+
get<T>(key: string): CacheEntry<T> | null;
|
|
44
|
+
/**
|
|
45
|
+
* Check if a cache entry exists and is valid
|
|
46
|
+
*/
|
|
47
|
+
isValid(key: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Invalidate a specific cache entry
|
|
50
|
+
*/
|
|
51
|
+
invalidate(key: string): void;
|
|
52
|
+
/**
|
|
53
|
+
* Clear all cache entries for this namespace
|
|
54
|
+
*/
|
|
55
|
+
clear(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Clear all cache entries across all namespaces
|
|
58
|
+
*/
|
|
59
|
+
clearAll(): void;
|
|
60
|
+
/**
|
|
61
|
+
* Get all cache entries for debugging
|
|
62
|
+
*/
|
|
63
|
+
getAll(): {
|
|
64
|
+
[key: string]: any;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Get cache metrics for monitoring
|
|
68
|
+
*/
|
|
69
|
+
getMetrics(): {
|
|
70
|
+
totalEntries: number;
|
|
71
|
+
totalSize: number;
|
|
72
|
+
namespaceEntries: number;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Check if localStorage is available and functional
|
|
76
|
+
*/
|
|
77
|
+
private isStorageAvailable;
|
|
78
|
+
/**
|
|
79
|
+
* Clear oldest cache entries when quota is exceeded
|
|
80
|
+
* Attempts to free up space by removing the oldest entries
|
|
81
|
+
*/
|
|
82
|
+
private clearOldest;
|
|
83
|
+
}
|
|
84
|
+
export declare const stateMachineCacheManager: CacheManager;
|
|
85
|
+
//# sourceMappingURL=cacheManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cacheManager.d.ts","sourceRoot":"","sources":["../../../src/utils/cacheManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,GAAE,MAAkB;IAIzC,OAAO,CAAC,MAAM;IAId;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IA8BjD;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IA+BzC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI7B;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAgBb;;OAEG;IACH,QAAQ,IAAI,IAAI;IAehB;;OAEG;IACH,MAAM,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAyBhC;;OAEG;IACH,UAAU,IAAI;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAgCD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;;OAGG;IACH,OAAO,CAAC,WAAW;CAqCpB;AAGD,eAAO,MAAM,wBAAwB,cAAoC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e="1.0.0",t="codicent_cache_";class a{constructor(e="default"){this.namespace=e}getKey(e){return`${t}${this.namespace}_${e}`}set(t,a,r){if(!this.isStorageAvailable())return void console.warn("CacheManager: localStorage not available");const c={data:a,cachedAt:Date.now(),expiresAt:Date.now()+r,version:e};try{localStorage.setItem(this.getKey(t),JSON.stringify(c))}catch(e){if(console.warn("CacheManager: Failed to write cache:",e),e instanceof Error&&"QuotaExceededError"===e.name){this.clearOldest();try{localStorage.setItem(this.getKey(t),JSON.stringify(c))}catch{console.error("CacheManager: Still unable to write cache after cleanup")}}}}get(t){if(!this.isStorageAvailable())return null;try{const a=localStorage.getItem(this.getKey(t));if(!a)return null;const r=JSON.parse(a);return r.version!==e?(console.warn(`CacheManager: Version mismatch for ${t}. Expected ${e}, got ${r.version}`),this.invalidate(t),null):Date.now()>r.expiresAt?(this.invalidate(t),null):r}catch(e){return console.warn("CacheManager: Failed to read cache:",e),null}}isValid(e){return null!==this.get(e)}invalidate(e){if(this.isStorageAvailable())try{localStorage.removeItem(this.getKey(e))}catch(e){console.warn("CacheManager: Failed to invalidate cache:",e)}}clear(){if(this.isStorageAvailable())try{const e=Object.keys(localStorage),t=this.getKey("");e.forEach((e=>{e.startsWith(t)&&localStorage.removeItem(e)}))}catch(e){console.warn("CacheManager: Failed to clear cache:",e)}}clearAll(){if(this.isStorageAvailable())try{Object.keys(localStorage).forEach((e=>{e.startsWith(t)&&localStorage.removeItem(e)}))}catch(e){console.warn("CacheManager: Failed to clear all caches:",e)}}getAll(){if(!this.isStorageAvailable())return{};const e={};try{const t=Object.keys(localStorage),a=this.getKey("");t.forEach((t=>{if(t.startsWith(a)){const a=localStorage.getItem(t);if(a)try{e[t]=JSON.parse(a)}catch{e[t]=a}}}))}catch(e){console.warn("CacheManager: Failed to get all cache entries:",e)}return e}getMetrics(){if(!this.isStorageAvailable())return{totalEntries:0,totalSize:0,namespaceEntries:0};try{const e=Object.keys(localStorage),a=this.getKey("");let r=0,c=0,o=0;return e.forEach((e=>{if(e.startsWith(t)){c++;const t=localStorage.getItem(e);t&&(r+=t.length)}e.startsWith(a)&&o++})),{totalEntries:c,totalSize:r,namespaceEntries:o}}catch(e){return console.warn("CacheManager: Failed to get metrics:",e),{totalEntries:0,totalSize:0,namespaceEntries:0}}}isStorageAvailable(){try{const e="__storage_test__";return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch{return!1}}clearOldest(){if(this.isStorageAvailable())try{const e=[];Object.keys(localStorage).forEach((a=>{if(a.startsWith(t)){const t=localStorage.getItem(a);if(t)try{const r=JSON.parse(t);r.cachedAt&&e.push({key:a,cachedAt:r.cachedAt})}catch{}}})),e.sort(((e,t)=>e.cachedAt-t.cachedAt));const a=Math.max(1,Math.floor(.25*e.length));for(let t=0;t<a&&t<e.length;t++)localStorage.removeItem(e[t].key);console.log(`CacheManager: Cleared ${a} oldest cache entries`)}catch(e){console.warn("CacheManager: Failed to clear oldest entries:",e)}}}const r=new a("state_machine");"undefined"!=typeof window&&"development"===process.env.NODE_ENV&&(window.__CODICENT_CACHE_DEBUG__={inspect:()=>r.getAll(),clear:()=>r.clear(),invalidate:e=>r.invalidate(e),metrics:()=>r.getMetrics()}),exports.CacheManager=a,exports.stateMachineCacheManager=r;
|
|
@@ -10,4 +10,6 @@ export { getGpsLocation, isMobileDevice } from "./device";
|
|
|
10
10
|
export type { StateContext } from "./appState";
|
|
11
11
|
export type { AppStateDefinition } from "./appState";
|
|
12
12
|
export { getTimeString } from "./helpers";
|
|
13
|
+
export { CacheManager, stateMachineCacheManager } from "./cacheManager";
|
|
14
|
+
export type { CacheEntry, CachedUserSession } from "./cacheManager";
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as i,useEffect as r}from"react";import"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import{Text as a}from"./Text.js";import{Spinner as m}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../services/codicent.js";import p from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import l from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{useId as c}from"../node_modules/@fluentui/react-utilities/lib/hooks/useId.js";import{Combobox as j}from"../node_modules/@fluentui/react-combobox/lib/components/Combobox/Combobox.js";import{Option as d}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";const g=n({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}}),u=n=>{const{id:u,options:f,title:h,placeholder:b,onChangeValue:x,value:w="",prompt:v,service:C}=n,y=c(u+"-combo"),[S,_]=i([...f||[]]),[k,T]=i(),[z,I]=i(!1),F=g(),{t:P}=l();r((()=>{x(k)}),[k,x]);return o("div",{id:u,className:F.root,children:[o("div",{className:F.horizonal,children:[e(a,{size:400,id:y,children:h}),v&&o(t,{children:[!z&&e(s,{icon:"WandRegular",title:P("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{I(!0),await(async o=>{if(o){const e=await C.chat(o);if(e){const o=new p(e.content).content;x(o)}}})(v),I(!1)},appearance:"transparent",size:"small"}),z&&e(m,{size:"extra-small",style:{marginLeft:12},children:P("Arbetar...")})]})]}),o(j,{className:F.combo,"aria-labelledby":y,freeform:!0,placeholder:b||P("Välj..."),onChange:o=>{const e=o.target.value;T(e);const t=(f||[]).filter((o=>0===o.toLowerCase().indexOf(e.toLowerCase())));_(t)},onOptionSelect:(o,e)=>{e.optionText&&(f||[]).includes(e.optionText);T(e.optionText)},size:"large",value:w,children:[k?e(d,{text:k,children:P("Sök efter ")+k},"freeform"):null,S.map((o=>e(d,{children:o},o)))]})]})};export{u as default};
|
|
1
|
+
import{jsxs as o,jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as i,useEffect as r}from"react";import"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import{Text as a}from"./Text.js";import{Spinner as m}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../services/codicent.js";import p from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import l from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{useId as c}from"../node_modules/@fluentui/react-utilities/lib/hooks/useId.js";import{Combobox as j}from"../node_modules/@fluentui/react-combobox/lib/components/Combobox/Combobox.js";import{Option as d}from"../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js";const g=n({root:{display:"grid",gridTemplateRows:"repeat(1fr)",justifyItems:"start",gap:"2px",maxWidth:"400px",padding:"8px"},combo:{width:"100%"},horizonal:{display:"flex",flexDirection:"row",verticalAlign:"middle"}}),u=n=>{const{id:u,options:f,title:h,placeholder:b,onChangeValue:x,value:w="",prompt:v,service:C}=n,y=c(u+"-combo"),[S,_]=i([...f||[]]),[k,T]=i(),[z,I]=i(!1),F=g(),{t:P}=l();r((()=>{x(k)}),[k,x]);return o("div",{id:u,className:F.root,children:[o("div",{className:F.horizonal,children:[e(a,{size:400,id:y,children:h}),v&&o(t,{children:[!z&&e(s,{icon:"WandRegular",title:P("Autoskapa"),style:{fontSize:16,marginLeft:6},onClick:async()=>{I(!0),await(async o=>{if(o){const e=await C.chat(o);if(e){const o=new p(e.content).content;x(o)}}})(v),I(!1)},appearance:"transparent",size:"small"}),z&&e(m,{size:"extra-small",style:{marginLeft:12},children:P("Arbetar...")})]})]}),o(j,{className:F.combo,"aria-labelledby":y,freeform:!0,placeholder:b||P("Välj..."),onChange:o=>{const e=o.target.value;T(e);const t=(f||[]).filter((o=>0===o.toLowerCase().indexOf(e.toLowerCase())));_(t)},onOptionSelect:(o,e)=>{e.optionText&&(f||[]).includes(e.optionText);T(e.optionText)},size:"large",value:w,children:[k?e(d,{text:k,children:P("Sök efter ")+k},"freeform"):null,S.map((o=>e(d,{children:o},o)))]})]})};export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import s from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import t from"../hooks/useAppStyles.js";import{Mic24Regular as i,MicPulse24Filled as r,MicRecord24Filled as e}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";const p=s((({isSoundCaptured:s,stopRecording:i})=>{const{pointer:p}=t();return o(s?r:e,{onClick:i,className:p})})),a=({audio:s,disabled:r})=>{const{isRecording:e,isSoundCaptured:a,startRecording:m,stopRecording:n}=s,{pointer:j}=t();return r?o(i,{}):e?o(p,{isSoundCaptured:a,stopRecording:n}):o(i,{onClick:()=>m(""),className:j})};export{a as default};
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import s from"../utils/withWakeLock.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import t from"../hooks/useAppStyles.js";import{Mic24Regular as i,MicPulse24Filled as r,MicRecord24Filled as e}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";const p=s((({isSoundCaptured:s,stopRecording:i})=>{const{pointer:p}=t();return o(s?r:e,{onClick:i,className:p})})),a=({audio:s,disabled:r})=>{const{isRecording:e,isSoundCaptured:a,startRecording:m,stopRecording:n}=s,{pointer:j}=t();return r?o(i,{}):e?o(p,{isSoundCaptured:a,stopRecording:n}):o(i,{onClick:()=>m(""),className:j})};export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useRef as o,useState as i,useEffect as r}from"react";import{FileThumbnail as s}from"./FileThumbnail.js";import a from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"./Markdown.js";import{Textarea as n}from"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import p from"../hooks/useLocalization.js";import m from"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as d}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{Spinner as u}from"../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js";import{SendRegular as g,SendFilled as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{mergeClasses as j}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as h}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{AddRegular as b}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";const x=c({inputContainer:{display:"flex",flexDirection:"column",padding:"8px",width:"100%",position:"relative",gap:"8px"},textareaWrapper:{position:"relative",width:"100%",display:"flex",flexDirection:"column"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between",alignItems:"center"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px 0",maxWidth:"100%",boxSizing:"border-box",gap:"4px",minHeight:"72px",backgroundColor:h.colorNeutralBackground2,borderRadius:h.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:h.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:h.colorNeutralForeground2,"&:hover":{color:h.colorBrandBackground,backgroundColor:"transparent"}}}),_=({onSend:c,disableSend:h,onSelectFiles:_,getImageUrl:S,getFileInfo:k,codicent:v,defaultText:T,rows:w,noMemory:y,selectAll:C,id:N})=>{const D=x(),[B,F]=a("chatInput-"+v,""),I=o(null),[E,O]=i([]),[P,A]=i([]),[H,U]=i(!1),[L,W]=i([]),{t:
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useRef as o,useState as i,useEffect as r}from"react";import{FileThumbnail as s}from"./FileThumbnail.js";import a from"../hooks/useStateWithLocalStorage.js";import"../services/codicent.js";import"./Markdown.js";import{Textarea as n}from"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import p from"../hooks/useLocalization.js";import m from"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Button as d}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{Spinner as u}from"../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js";import{SendRegular as g,SendFilled as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{mergeClasses as j}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as h}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{AddRegular as b}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";const x=c({inputContainer:{display:"flex",flexDirection:"column",padding:"8px",width:"100%",position:"relative",gap:"8px"},textareaWrapper:{position:"relative",width:"100%",display:"flex",flexDirection:"column"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between",alignItems:"center"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px 0",maxWidth:"100%",boxSizing:"border-box",gap:"4px",minHeight:"72px",backgroundColor:h.colorNeutralBackground2,borderRadius:h.borderRadiusMedium,"&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:h.colorNeutralStroke1,borderRadius:"3px"}},hiddenInput:{display:"none"},button:{color:h.colorNeutralForeground2,"&:hover":{color:h.colorBrandBackground,backgroundColor:"transparent"}}}),_=({onSend:c,disableSend:h,onSelectFiles:_,getImageUrl:S,getFileInfo:k,codicent:v,defaultText:T,rows:w,noMemory:y,selectAll:C,id:N})=>{const D=x(),[B,F]=a("chatInput-"+v,""),I=o(null),[E,O]=i([]),[P,A]=i([]),[H,U]=i(!1),[L,W]=i([]),{t:M}=p(),R=m();r((()=>{T&&F(T)}),[F,T]),r((()=>{!0===y&&F("")}),[y,F]);const z=()=>{if(""===B.trim()&&0===L.length)return;const e=E.length>0?" #"+E.join(" #"):"",t=P.length>0?"\n#file:"+P.join("\n#file:"):"";c(e+B+t),F(""),O([]),A([]),W([])};return e("div",{className:D.inputContainer,children:[t("input",{title:M("Välj fil att ladda upp"),type:"file",ref:I,className:D.hiddenInput,onChange:async e=>{const t=e.target.files;if(t&&t.length>0&&_){U(!0);try{const e=await _(t),o=await Promise.all(e.map((e=>k(e))));A((t=>[...t,...e])),W((e=>[...e,...o]))}catch(e){console.error("Failed to upload files",e)}finally{U(!1),I.current&&(I.current.value="")}}},multiple:!0,accept:"image/*,.pdf,.doc,.docx,.xls,.xlsx,.txt"}),L.length>0&&t("div",{className:D.fileList,children:L.map((e=>t(s,{file:e,getImageUrl:S,onDelete:()=>{return t=e.id,A((e=>e.filter((e=>e!==t)))),void W((e=>e.filter((e=>e.id!==t))));var t}},e.id)))}),e("div",{className:D.textareaWrapper,onPaste:async e=>{for(const t of e.clipboardData.items)if(-1!==t.type.indexOf("image")){const o=t.getAsFile();if(o&&(e.preventDefault(),_))try{U(!0);const e=new DataTransfer;e.items.add(o);const t=await _(e.files),i=await Promise.all(t.map((e=>k(e))));A((e=>[...e,...t])),W((e=>[...e,...i]))}catch(e){console.error("Failed to upload pasted image",e)}finally{U(!1)}}},children:[t(n,{size:"large",id:N||"chat-input",placeholder:M(l("APP_CHAT_TEXT_PLACEHOLDER")||"Skriv ditt meddelande här..."),value:B,onChange:e=>F(e.target.value),onKeyDown:e=>{h||"Enter"!==e.key||e.shiftKey||(e.preventDefault(),z())},autoFocus:!1,rows:w||4,onFocus:e=>{if(!0===C){e.target.select()}}}),e("div",{className:D.actionButtonRow,children:[t("div",{children:!l("HIDE_CHAT_ADD_FILE_BUTTON")&&_&&t(d,{appearance:"subtle",size:"small",title:M("Lägg till fil"),icon:t(H?u:b,{}),onClick:()=>I.current?.click(),className:D.button})}),t(d,{appearance:l("SHOW_SEND_BUTTON_TEXT")?"primary":"subtle",size:l("SHOW_SEND_BUTTON_TEXT")?"small":"large",title:M("Skicka"),disabled:h,icon:""===B.trim()&&0===L.length?t(g,{}):t(f,{}),onClick:z,className:l("SEND_BUTTON_ROUND_BACKGROUND")?j(R.roundButton,D.button):l("SHOW_SEND_BUTTON_TEXT")?void 0:D.button,children:l("SHOW_SEND_BUTTON_TEXT")&&t("span",{children:M("Skicka")})})]})]})]})};export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import"react";import"../services/codicent.js";import o from"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import r from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as i}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import a from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{mergeClasses as p}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as m}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Text as l}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";import{ChannelRegular as
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import"react";import"../services/codicent.js";import o from"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./Header.js";import r from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as i}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import a from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{mergeClasses as p}from"../node_modules/@griffel/core/mergeClasses.esm.js";import{tokens as m}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Text as l}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";import{ChannelRegular as c}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const d=n({message:{display:"flex",marginBottom:"16px",webkitUserSelect:"text",userSelect:"text"},user:{justifyContent:"flex-end"},bot:{justifyContent:"flex-start"},messageContent:{maxWidth:"80%",padding:"12px 16px",borderRadius:"16px",fontSize:"1rem",lineHeight:"1.4",whiteSpace:"pre-wrap",wordBreak:"break-word",overflow:"auto"},userMessage:{borderTopRightRadius:"0"},botMessage:{borderTopLeftRadius:"0"},newMessage:{animation:"$fadeIn 0.5s ease-in-out"}}),u=({sender:n,content:u,isNew:g,children:j,showSuggestions:f,onSuggestionClicked:h})=>{const C=d(),{t:_}=a();let x=[];if("bot"===n&&u.includes("#suggested_questions")){const e=u.split("#suggested_questions");u=e[0],x=e[1].split("\n").filter((e=>""!==e.trim())).map((e=>e.trim()))}const b=new r(u);let w=b.content;"user"===n&&b.content.includes("---")&&(w=b.content.split("---")[0]);const T=b.content.startsWith("Error code: ")?_("Ett fel uppstod 😟 => starta en ny chatt"):null;return e("div",{className:p(C.message,"user"===n?C.user:C.bot),children:t("div",{className:p(C.messageContent,"user"===n?C.userMessage:C.botMessage,g&&C.newMessage),style:{backgroundColor:"user"===n?i("CHAT_USER_BACKGROUND_COLOR")||m.colorBrandBackground:i("CHAT_BOT_BACKGROUND_COLOR")||m.colorBrandBackground2,color:"user"===n?i("CHAT_USER_TEXT_COLOR")||m.colorNeutralForegroundInverted:i("CHAT_BOT_TEXT_COLOR")||m.colorNeutralForeground1},children:[t(l,{size:400,children:[T,!T&&e(o,{content:w}),b.files.length>0&&e(c,{}),f&&x&&x.length>0&&e("div",{style:{marginTop:"8px",display:"flex",gap:"8px",flexWrap:"wrap"},children:x.map(((t,o)=>e(s,{size:"small",shape:"circular",onClick:()=>h?.(t),style:{textAlign:"left"},children:t},o)))})]}),j]})})};export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as i}from"./Textarea.js";import{Button as t}from"./Button.js";import"./CompoundButton.js";import{Text as r}from"./Text.js";import"./Spinner.js";import{Label as a}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as s,DialogTitle as l,DialogContent as n,DialogActions as p}from"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import m from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as d}from"../node_modules/@griffel/core/index.esm.js";import{tokens as j}from"../node_modules/@fluentui/tokens/lib/tokens.js";const g=c({container:{display:"flex",flexDirection:"column",...d.gap("12px")},section:{display:"flex",flexDirection:"column",...d.gap("8px")},field:{display:"flex",flexDirection:"column",...d.gap("4px")},fileItem:{display:"flex",alignItems:"center",...d.gap("8px")},label:{fontWeight:j.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:j.colorNeutralBackground1,boxShadow:j.shadow16},dialogBody:{backgroundColor:"transparent"}}),f=({open:c,templateVariables:d,filePlaceholders:j,onTemplateVariablesChange:f,onFilePlaceholdersChange:h,onConfirm:u,onCancel:x,uploadFile:v})=>{const b=g(),{t:y}=m();return e(s,{open:c,children:[o(l,{children:y("Fyll i information")}),o(n,{children:e("div",{className:b.container,children:[d.length>0&&o("div",{className:b.section,children:d.map(((t,r)=>e("div",{className:b.field,children:[o(a,{className:b.label,children:t.name}),o(i,{className:b.textarea,value:t.value,onChange:e=>{const o=[...d];o[r].value=e.target.value,f(o)}})]},r)))}),j.length>0&&o("div",{className:b.section,children:j.map(((i,a)=>e("div",{className:b.fileItem,children:[o(r,{weight:"semibold",children:i.description}),o(t,{appearance:"primary",onClick:()=>(async e=>{const o=document.createElement("input");o.type="file";const i=await new Promise((e=>{o.onchange=o=>e(o.target.files),o.click()}));if(i&&i.length>0){const o=i[0],t=new FormData;t.append("file",o);const r=await v(o.name,t),a=[...j];a[e].fileId=r,h(a)}})(a),children:i.fileId?y("Fil vald"):y("Välj fil")})]},a)))})]})}),e(p,{children:[o(t,{appearance:"secondary",onClick:x,children:y("Avbryt")}),o(t,{appearance:"primary",onClick:u,children:y("OK")})]})]})};export{f as CombinedPlaceholderDialog};
|
|
1
|
+
import{jsxs as e,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as i}from"./Textarea.js";import{Button as t}from"./Button.js";import"./CompoundButton.js";import{Text as r}from"./Text.js";import"./Spinner.js";import{Label as a}from"./Label.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as s,DialogTitle as l,DialogContent as n,DialogActions as p}from"./Dialog.js";import"./ChatInput.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import m from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as c}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as d}from"../node_modules/@griffel/core/index.esm.js";import{tokens as j}from"../node_modules/@fluentui/tokens/lib/tokens.js";const g=c({container:{display:"flex",flexDirection:"column",...d.gap("12px")},section:{display:"flex",flexDirection:"column",...d.gap("8px")},field:{display:"flex",flexDirection:"column",...d.gap("4px")},fileItem:{display:"flex",alignItems:"center",...d.gap("8px")},label:{fontWeight:j.fontWeightSemibold},textarea:{minHeight:"100px",resize:"vertical"},dialogSurface:{backgroundColor:j.colorNeutralBackground1,boxShadow:j.shadow16},dialogBody:{backgroundColor:"transparent"}}),f=({open:c,templateVariables:d,filePlaceholders:j,onTemplateVariablesChange:f,onFilePlaceholdersChange:h,onConfirm:u,onCancel:x,uploadFile:v})=>{const b=g(),{t:y}=m();return e(s,{open:c,children:[o(l,{children:y("Fyll i information")}),o(n,{children:e("div",{className:b.container,children:[d.length>0&&o("div",{className:b.section,children:d.map(((t,r)=>e("div",{className:b.field,children:[o(a,{className:b.label,children:t.name}),o(i,{className:b.textarea,value:t.value,onChange:e=>{const o=[...d];o[r].value=e.target.value,f(o)}})]},r)))}),j.length>0&&o("div",{className:b.section,children:j.map(((i,a)=>e("div",{className:b.fileItem,children:[o(r,{weight:"semibold",children:i.description}),o(t,{appearance:"primary",onClick:()=>(async e=>{const o=document.createElement("input");o.type="file";const i=await new Promise((e=>{o.onchange=o=>e(o.target.files),o.click()}));if(i&&i.length>0){const o=i[0],t=new FormData;t.append("file",o);const r=await v(o.name,t),a=[...j];a[e].fileId=r,h(a)}})(a),children:i.fileId?y("Fil vald"):y("Välj fil")})]},a)))})]})}),e(p,{children:[o(t,{appearance:"secondary",onClick:x,children:y("Avbryt")}),o(t,{appearance:"primary",onClick:u,children:y("OK")})]})]})};export{f as CombinedPlaceholderDialog};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t,useEffect as s}from"react";import{useLocation as i,Link as n}from"react-router-dom";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as r}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import a from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as l}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as m}from"../node_modules/@griffel/core/index.esm.js";import{tokens as c}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Home24Filled as p,Home24Regular as d}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js";import{Chat24Filled as u,Chat24Regular as j}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js";import{AddSquare24Filled as h,AddSquare24Regular as g,Apps24Filled as _,Apps24Regular as f}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js";import{ClipboardDay24Filled as T,ClipboardDay24Regular as b}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js";import{SlideText24Filled as k,SlideText24Regular as x}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js";import{Whiteboard24Filled as O,Whiteboard24Regular as C}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js";const N=l({footer:{...m.padding("14px"),backgroundColor:r("APP_FOOTER_COLOR")||c.colorBrandBackground,color:r("APP_FOOTER_TEXT_COLOR")||c.colorNeutralForegroundOnBrand,textAlign:"center",display:"flex",justifyContent:"space-around",alignItems:"center",position:"sticky",bottom:0,zIndex:1e3,paddingBottom:"22px",width:"100%"},container:{display:"flex",justifyContent:"space-around",alignItems:"center",maxWidth:"480px",width:"100%"},button:{color:c.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...m.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none",color:r("APP_FOOTER_SELECTED_COLOR")||void 0},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),v=()=>{const l=N(),m=i(),[c,v]=t(null),{t:I}=a();return s((()=>{const e=m.pathname;"/"===e?v("home"):"/chat"===e?v("chat"):"/new"===e?v("save"):"/menu"===e?v("menu"):"/log"===e?v("log"):"/canvas"===e?v("canvas"):"/snap"===e&&v("snap")}),[m]),s((()=>{c&&console.log(`footer-button: ${c}`)}),[c]),e("footer",{className:l.footer,children:o("div",{className:l.container,children:[o(n,{to:"/",className:`${l.link} ${"home"===c?"selected":""}`,onClick:()=>v("home"),children:[e("home"===c?p:d,{}),e("p",{className:l.buttonText,children:I("Hem")})]}),!r("HIDE_CHAT_BUTTON")&&o(n,{to:"/chat",className:`${l.link} ${"chat"===c?"selected":""}`,onClick:()=>v("chat"),children:[e("chat"===c?u:j,{}),e("p",{className:l.buttonText,children:I("Chatt")})]}),!r("HIDE_SAVE_BUTTON")&&o(n,{to:"/new",className:`${l.link} ${"save"===c?"selected":""}`,onClick:()=>v("save"),children:[e("save"===c?h:g,{}),e("p",{className:l.buttonText,children:I(r("APP_SAVE_TITLE")||"Spara")})]}),r("SHOW_SNAP_BUTTON")&&o(n,{to:"/snap",className:`${l.link} ${"snap"===c?"selected":""}`,onClick:()=>v("snap"),children:[e("snap"===c?T:b,{}),e("p",{className:l.buttonText,children:I("Snap")})]}),r("SHOW_LOGBOOK_BUTTON")&&o(n,{to:"/log",className:`${l.link} ${"log"===c?"selected":""}`,onClick:()=>v("log"),children:[e("log"===c?k:x,{}),e("p",{className:l.buttonText,children:I(r("APP_LOGBOOK_TITLE")||"Loggbok")})]}),r("SHOW_CANVAS_BUTTON")&&o(n,{to:"/canvas",className:`${l.link} ${"canvas"===c?"selected":""}`,onClick:()=>v("canvas"),children:[e("canvas"===c?O:C,{}),e("p",{className:l.buttonText,children:I("Kanvas")})]}),!r("HIDE_MENU_BUTTON")&&o(n,{to:"/menu",className:`${l.link} ${"menu"===c?"selected":""}`,onClick:()=>v("menu"),children:[e("menu"===c?_:f,{}),e("p",{className:l.buttonText,children:I("Meny")})]})]})})};export{v as Footer,v as default};
|
|
1
|
+
import{jsx as e,jsxs as o}from"react/jsx-runtime";import{useState as t,useEffect as s}from"react";import{useLocation as i,Link as n}from"react-router-dom";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as r}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import a from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as l}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as m}from"../node_modules/@griffel/core/index.esm.js";import{tokens as c}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Home24Filled as p,Home24Regular as d}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js";import{Chat24Filled as u,Chat24Regular as j}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js";import{AddSquare24Filled as h,AddSquare24Regular as g,Apps24Filled as _,Apps24Regular as f}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js";import{ClipboardDay24Filled as T,ClipboardDay24Regular as b}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js";import{SlideText24Filled as k,SlideText24Regular as x}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js";import{Whiteboard24Filled as O,Whiteboard24Regular as C}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js";const N=l({footer:{...m.padding("14px"),backgroundColor:r("APP_FOOTER_COLOR")||c.colorBrandBackground,color:r("APP_FOOTER_TEXT_COLOR")||c.colorNeutralForegroundOnBrand,textAlign:"center",display:"flex",justifyContent:"space-around",alignItems:"center",position:"sticky",bottom:0,zIndex:1e3,paddingBottom:"22px",width:"100%"},container:{display:"flex",justifyContent:"space-around",alignItems:"center",maxWidth:"480px",width:"100%"},button:{color:c.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...m.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none",color:r("APP_FOOTER_SELECTED_COLOR")||void 0},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),v=()=>{const l=N(),m=i(),[c,v]=t(null),{t:I}=a();return s((()=>{const e=m.pathname;"/"===e?v("home"):"/chat"===e?v("chat"):"/new"===e?v("save"):"/menu"===e?v("menu"):"/log"===e?v("log"):"/canvas"===e?v("canvas"):"/snap"===e&&v("snap")}),[m]),s((()=>{c&&console.log(`footer-button: ${c}`)}),[c]),e("footer",{className:l.footer,children:o("div",{className:l.container,children:[o(n,{to:"/",className:`${l.link} ${"home"===c?"selected":""}`,onClick:()=>v("home"),children:[e("home"===c?p:d,{}),e("p",{className:l.buttonText,children:I("Hem")})]}),!r("HIDE_CHAT_BUTTON")&&o(n,{to:"/chat",className:`${l.link} ${"chat"===c?"selected":""}`,onClick:()=>v("chat"),children:[e("chat"===c?u:j,{}),e("p",{className:l.buttonText,children:I("Chatt")})]}),!r("HIDE_SAVE_BUTTON")&&o(n,{to:"/new",className:`${l.link} ${"save"===c?"selected":""}`,onClick:()=>v("save"),children:[e("save"===c?h:g,{}),e("p",{className:l.buttonText,children:I(r("APP_SAVE_TITLE")||"Spara")})]}),r("SHOW_SNAP_BUTTON")&&o(n,{to:"/snap",className:`${l.link} ${"snap"===c?"selected":""}`,onClick:()=>v("snap"),children:[e("snap"===c?T:b,{}),e("p",{className:l.buttonText,children:I("Snap")})]}),r("SHOW_LOGBOOK_BUTTON")&&o(n,{to:"/log",className:`${l.link} ${"log"===c?"selected":""}`,onClick:()=>v("log"),children:[e("log"===c?k:x,{}),e("p",{className:l.buttonText,children:I(r("APP_LOGBOOK_TITLE")||"Loggbok")})]}),r("SHOW_CANVAS_BUTTON")&&o(n,{to:"/canvas",className:`${l.link} ${"canvas"===c?"selected":""}`,onClick:()=>v("canvas"),children:[e("canvas"===c?O:C,{}),e("p",{className:l.buttonText,children:I("Kanvas")})]}),!r("HIDE_MENU_BUTTON")&&o(n,{to:"/menu",className:`${l.link} ${"menu"===c?"selected":""}`,onClick:()=>v("menu"),children:[e("menu"===c?_:f,{}),e("p",{className:l.buttonText,children:I("Meny")})]})]})})};export{v as Footer,v as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as o}from"react/jsx-runtime";import{Link as t}from"react-router-dom";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import i from"./VoiceIcon.js";import r from"./AudioIcon.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as s}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as m}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as a}from"../node_modules/@griffel/core/index.esm.js";import{tokens as p}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Image as n}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Title3 as l}from"../node_modules/@fluentui/react-text/lib/components/presets/Title3/Title3.js";import{Settings24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-13.js";const d=m({header:{...a.padding("14px"),backgroundColor:s("APP_HEADER_COLOR")||p.colorBrandBackground,color:s("APP_HEADER_TEXT_COLOR")||p.colorNeutralForegroundOnBrand,textAlign:"center",position:"sticky",top:0,zIndex:1e3,alignItems:"center",height:"64px",display:"flex",justifyContent:"space-between"},logo:{height:"40px",shape:"circular"},link:{textDecoration:"none",color:"inherit"},headerItem:{display:"flex",alignItems:"center",gap:"16px"}}),j=({imageUrl:m,title:a,audio:p,voice:j})=>{const g=d();return e("header",{className:g.header,children:[e("div",{className:g.headerItem,children:[m&&o(n,{className:g.logo,alt:"Logo",src:m,height:40}),a&&o(l,{children:a})]}),e("div",{className:g.headerItem,children:[p&&s("SHOW_MICROPHONE_BUTTON")&&o(r,{audio:p,disabled:j?.isConnected}),j&&s("SHOW_VOICE_BUTTON")&&o(i,{voice:j,disabled:p?.isRecording}),s("SHOW_SETTINGS_BUTTON")&&o(t,{to:"/menu",className:g.link,children:o(c,{})})]})]})};export{j as Header};
|
|
1
|
+
import{jsxs as e,jsx as o}from"react/jsx-runtime";import{Link as t}from"react-router-dom";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import i from"./VoiceIcon.js";import r from"./AudioIcon.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as s}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as m}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as a}from"../node_modules/@griffel/core/index.esm.js";import{tokens as p}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Image as n}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Title3 as l}from"../node_modules/@fluentui/react-text/lib/components/presets/Title3/Title3.js";import{Settings24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-13.js";const d=m({header:{...a.padding("14px"),backgroundColor:s("APP_HEADER_COLOR")||p.colorBrandBackground,color:s("APP_HEADER_TEXT_COLOR")||p.colorNeutralForegroundOnBrand,textAlign:"center",position:"sticky",top:0,zIndex:1e3,alignItems:"center",height:"64px",display:"flex",justifyContent:"space-between"},logo:{height:"40px",shape:"circular"},link:{textDecoration:"none",color:"inherit"},headerItem:{display:"flex",alignItems:"center",gap:"16px"}}),j=({imageUrl:m,title:a,audio:p,voice:j})=>{const g=d();return e("header",{className:g.header,children:[e("div",{className:g.headerItem,children:[m&&o(n,{className:g.logo,alt:"Logo",src:m,height:40}),a&&o(l,{children:a})]}),e("div",{className:g.headerItem,children:[p&&s("SHOW_MICROPHONE_BUTTON")&&o(r,{audio:p,disabled:j?.isConnected}),j&&s("SHOW_VOICE_BUTTON")&&o(i,{voice:j,disabled:p?.isRecording}),s("SHOW_SETTINGS_BUTTON")&&o(t,{to:"/menu",className:g.link,children:o(c,{})})]})]})};export{j as Header};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as o,useState as r}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Menu as s}from"../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js";import{MenuTrigger as a}from"../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/MenuTrigger.js";import{Button as l}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{MoreHorizontal24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";import{MenuPopover as m}from"../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js";import{MenuList as p}from"../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js";import{MenuItem as u}from"../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js";import{PrintRegular as d}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{tokens as h}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{DismissRegular as g,CopyRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const j=n({container:{position:"relative",width:"100%",height:"100%"},iframe:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:1e3,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},iframe2:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:0,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},menuButton:{position:"absolute",top:"10px",right:"10px",zIndex:1100},menuPopover:{backgroundColor:h.colorNeutralBackground1,boxShadow:h.shadow16}}),b=({html:n,onDismiss:h})=>{const b=o(null),w=o(null),[y,v]=r(1),C=j(),{t:M}=i();return t("div",{className:C.container,onTouchStart:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));b.current?.setAttribute("data-initial-distance",r.toString()),b.current?.setAttribute("data-initial-scale",y.toString())}},onTouchMove:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=parseFloat(b.current?.getAttribute("data-initial-distance")||"0"),i=parseFloat(b.current?.getAttribute("data-initial-scale")||"1"),n=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));if(r>0){const t=Math.min(Math.max(i*(n/r),.5),3);v(t),b.current&&(b.current.style.transform=`scale(${t})`),w.current&&(w.current.style.transform=`scale(${t})`)}}},onTouchEnd:()=>{b.current?.removeAttribute("data-initial-distance"),b.current?.removeAttribute("data-initial-scale")},children:[e("iframe",{ref:b,className:C.iframe,title:"html",srcDoc:n}),e("iframe",{ref:w,className:C.iframe2,title:"html",srcDoc:n})," ",t(s,{children:[e(a,{children:e(l,{icon:e(c,{}),className:C.menuButton})}),e(m,{className:C.menuPopover,children:t(p,{children:[e(u,{icon:e(g,{}),onClick:h,children:M("Stäng")}),e(u,{icon:e(d,{}),onClick:()=>{b.current&&b.current.contentWindow?.print()},children:M("Skriv ut")}),e(u,{icon:e(f,{}),onClick:async()=>{if(w.current)try{const t=w.current,e=t.contentWindow,o=t.contentDocument||e?.document;if(!o||!e)return;o.querySelectorAll("canvas").forEach((t=>{const e=o.createElement("img");e.src=t.toDataURL("image/png"),e.style.cssText=window.getComputedStyle(t).cssText,e.width=t.width,e.height=t.height,t.parentNode?.insertBefore(e,t),t.parentNode?.removeChild(t)}));let r="";Array.from(o.styleSheets).forEach((t=>{try{Array.from(t.cssRules||[]).forEach((t=>{r+=t.cssText+"\n"}))}catch(t){console.warn("Could not access stylesheet",t)}}));o.body.querySelectorAll("*").forEach((t=>{const o=e.getComputedStyle(t);let r="";if(["fontFamily","fontSize","fontWeight","color","backgroundColor","margin","padding","border","textAlign","lineHeight","letterSpacing","display","width","height"].forEach((t=>{o[t]&&"initial"!==o[t]&&"none"!==o[t]&&"normal"!==o[t]&&(r+=`${String(t)}:${o[t]};`)})),r){const e=t.getAttribute("style")||"";t.setAttribute("style",e+r)}}));const i=o.createElement("style");i.textContent=r,o.head.appendChild(i);const n=o.documentElement.outerHTML,s=o.body.innerText,a=document.createElement("div");a.innerHTML=n;const l=window.location.href;if(a.querySelectorAll("img").forEach((t=>{!t.src||t.src.startsWith("http")||t.src.startsWith("data:")||(t.src=new URL(t.src,l).href)})),navigator.clipboard&&window.ClipboardItem){const t=new Blob([a.outerHTML],{type:"text/html"}),e=new Blob([s],{type:"text/plain"}),o=new ClipboardItem({"text/html":t,"text/plain":e});await navigator.clipboard.write([o])}else{const t=e.getSelection();if(t){t.removeAllRanges();const e=o.createRange();e.selectNodeContents(o.body),t.addRange(e),o.execCommand("copy"),t.removeAllRanges()}}}catch(t){console.error("Copy failed:",t),navigator.clipboard.writeText(n)}},children:M("Kopiera")})]})})]})]})};export{b as default};
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as o,useState as r}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as n}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Menu as s}from"../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js";import{MenuTrigger as a}from"../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/MenuTrigger.js";import{Button as l}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{MoreHorizontal24Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";import{MenuPopover as m}from"../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js";import{MenuList as p}from"../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js";import{MenuItem as u}from"../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js";import{PrintRegular as d}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{tokens as h}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{DismissRegular as g,CopyRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const j=n({container:{position:"relative",width:"100%",height:"100%"},iframe:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:1e3,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},iframe2:{position:"absolute",top:0,left:0,bottom:0,right:0,zIndex:0,backgroundColor:"white",borderRadius:"0",border:"none",width:"100%",height:"100%",transformOrigin:"0 0"},menuButton:{position:"absolute",top:"10px",right:"10px",zIndex:1100},menuPopover:{backgroundColor:h.colorNeutralBackground1,boxShadow:h.shadow16}}),b=({html:n,onDismiss:h})=>{const b=o(null),w=o(null),[y,v]=r(1),C=j(),{t:M}=i();return t("div",{className:C.container,onTouchStart:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));b.current?.setAttribute("data-initial-distance",r.toString()),b.current?.setAttribute("data-initial-scale",y.toString())}},onTouchMove:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=parseFloat(b.current?.getAttribute("data-initial-distance")||"0"),i=parseFloat(b.current?.getAttribute("data-initial-scale")||"1"),n=Math.sqrt(Math.pow(o.clientX-e.clientX,2)+Math.pow(o.clientY-e.clientY,2));if(r>0){const t=Math.min(Math.max(i*(n/r),.5),3);v(t),b.current&&(b.current.style.transform=`scale(${t})`),w.current&&(w.current.style.transform=`scale(${t})`)}}},onTouchEnd:()=>{b.current?.removeAttribute("data-initial-distance"),b.current?.removeAttribute("data-initial-scale")},children:[e("iframe",{ref:b,className:C.iframe,title:"html",srcDoc:n}),e("iframe",{ref:w,className:C.iframe2,title:"html",srcDoc:n})," ",t(s,{children:[e(a,{children:e(l,{icon:e(c,{}),className:C.menuButton})}),e(m,{className:C.menuPopover,children:t(p,{children:[e(u,{icon:e(g,{}),onClick:h,children:M("Stäng")}),e(u,{icon:e(d,{}),onClick:()=>{b.current&&b.current.contentWindow?.print()},children:M("Skriv ut")}),e(u,{icon:e(f,{}),onClick:async()=>{if(w.current)try{const t=w.current,e=t.contentWindow,o=t.contentDocument||e?.document;if(!o||!e)return;o.querySelectorAll("canvas").forEach((t=>{const e=o.createElement("img");e.src=t.toDataURL("image/png"),e.style.cssText=window.getComputedStyle(t).cssText,e.width=t.width,e.height=t.height,t.parentNode?.insertBefore(e,t),t.parentNode?.removeChild(t)}));let r="";Array.from(o.styleSheets).forEach((t=>{try{Array.from(t.cssRules||[]).forEach((t=>{r+=t.cssText+"\n"}))}catch(t){console.warn("Could not access stylesheet",t)}}));o.body.querySelectorAll("*").forEach((t=>{const o=e.getComputedStyle(t);let r="";if(["fontFamily","fontSize","fontWeight","color","backgroundColor","margin","padding","border","textAlign","lineHeight","letterSpacing","display","width","height"].forEach((t=>{o[t]&&"initial"!==o[t]&&"none"!==o[t]&&"normal"!==o[t]&&(r+=`${String(t)}:${o[t]};`)})),r){const e=t.getAttribute("style")||"";t.setAttribute("style",e+r)}}));const i=o.createElement("style");i.textContent=r,o.head.appendChild(i);const n=o.documentElement.outerHTML,s=o.body.innerText,a=document.createElement("div");a.innerHTML=n;const l=window.location.href;if(a.querySelectorAll("img").forEach((t=>{!t.src||t.src.startsWith("http")||t.src.startsWith("data:")||(t.src=new URL(t.src,l).href)})),navigator.clipboard&&window.ClipboardItem){const t=new Blob([a.outerHTML],{type:"text/html"}),e=new Blob([s],{type:"text/plain"}),o=new ClipboardItem({"text/html":t,"text/plain":e});await navigator.clipboard.write([o])}else{const t=e.getSelection();if(t){t.removeAllRanges();const e=o.createRange();e.selectNodeContents(o.body),t.addRange(e),o.execCommand("copy"),t.removeAllRanges()}}}catch(t){console.error("Copy failed:",t),navigator.clipboard.writeText(n)}},children:M("Kopiera")})]})})]})]})};export{b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useEffect as a}from"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as r}from"./Textarea.js";import{Button as i}from"./Button.js";import"./CompoundButton.js";import{Spinner as s}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import n from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import m from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import c from"../hooks/useToaster.js";import{makeStyles as d}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as g}from"../node_modules/@fluentui/tokens/lib/tokens.js";const
|
|
1
|
+
import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useState as o,useEffect as a}from"react";import"../services/codicent.js";import"./Markdown.js";import{Textarea as r}from"./Textarea.js";import{Button as i}from"./Button.js";import"./CompoundButton.js";import{Spinner as s}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import n from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as l}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import m from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import c from"../hooks/useToaster.js";import{makeStyles as d}from"../node_modules/@griffel/react/makeStyles.esm.js";import{tokens as g}from"../node_modules/@fluentui/tokens/lib/tokens.js";const u=d({container:{display:"flex",padding:"8px",width:"100%",position:"relative"},textareaWrapper:{position:"relative",flexGrow:1,display:"flex",flexDirection:"column",maxWidth:"100%"},textarea:{width:"100%",paddingBottom:"40px"},actionButtonRow:{position:"absolute",left:"8px",bottom:"8px",right:"8px",zIndex:1,display:"flex",justifyContent:"space-between"},leftButtonGroup:{display:"flex",gap:"4px"},actionButton:{color:g.colorNeutralForeground2,"&:hover":{color:g.colorBrandBackground,backgroundColor:"transparent"}},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:g.colorNeutralStroke1,borderRadius:"3px"}}}),f=({defaultText:d,onSend:g,onLocationChange:f,hasLocation:j,files:h=[],onFilesChange:v,onUploadFile:b,onUploadImage:x,onUploadCamera:y,getImageUrl:k,isUploading:w,rows:S,size:C,disableSend:T,placeholder:B,onChange:_,onImagePasted:D,onHandleDefaultFiles:N})=>{const[F,I]=o(""),[z,A]=o([]),L=u(),P=c(),{t:U}=m();a((()=>{_?.(F)}),[F,_]),a((()=>{const e=new n(d||"");I(e.content||""),A(e.tags||[]),e.files.length>0&&N?.(e.files)}),[d]);const W=async()=>{if(""===F.trim()&&0===h.length)return void P.notify(U("Meddelandet får inte vara tomt"),"","","error");const e=z.length>0?`#${z.join(" #")} `:"#log ";g(e+F),I("");const t=new n(d||"");A(t.tags||[]),v?.([])};return e("div",{className:L.container,onDrop:async e=>{if(e.preventDefault(),!v)return;const t=Array.from(e.dataTransfer.files);if(t.length>0)if(D&&t.every((e=>e.type&&e.type.startsWith("image/"))))for(const e of t)D(e);else v(t)},onDragOver:e=>{e.preventDefault()},children:t("div",{className:L.textareaWrapper,children:[k&&h.length>0&&t("div",{className:L.fileList,children:[h.map((t=>e(p,{file:t,getImageUrl:k,onDelete:()=>{return e=t.id,void v?.(h.filter((t=>t.id!==e)));var e}},t.id))),w&&e(s,{})]}),e(r,{size:"large",resize:"vertical",rows:S||7,value:F,onChange:e=>I(e.target.value),placeholder:B||U("Skriv vad du vill spara här..."),onKeyDown:e=>{!0!==T?"Enter"!==e.key||e.shiftKey||(e.preventDefault(),W()):"Enter"===e.key&&e.ctrlKey&&(e.preventDefault(),W())},onPaste:e=>{if(!v&&!D)return;const t=e.clipboardData.items;for(const o of t)if("file"===o.kind){const t=o.getAsFile();t&&(D&&t.type.startsWith("image/")?(e.preventDefault(),D(t)):v&&(e.preventDefault(),v([t])))}},className:L.textarea}),t("div",{className:L.actionButtonRow,children:[t("div",{className:L.leftButtonGroup,children:[b&&e(i,{appearance:"transparent",icon:x?"AttachRegular":"AddRegular",size:"small",title:U("Lägg till fil"),onClick:b,className:L.actionButton}),x&&e(i,{appearance:"transparent",icon:"ImageRegular",size:"small",title:U("Lägg till bild"),onClick:x,className:L.actionButton}),y&&e(i,{appearance:"transparent",icon:"CameraRegular",size:"small",title:U("Ta kort"),onClick:y,className:L.actionButton}),f&&e(i,{appearance:"transparent",icon:j?"LocationFilled":"LocationRegular",size:"small",title:U("Spara plats"),onClick:()=>f(!j),className:L.actionButton})]}),e(i,{appearance:l("SHOW_SAVE_BUTTON_TEXT")?"primary":"subtle",onClick:W,icon:"SendFilled",iconPosition:"before",title:U("Spara"),size:C||(l("SHOW_SAVE_BUTTON_TEXT")?"small":"large"),children:l("SHOW_SAVE_BUTTON_TEXT")&&e("span",{children:U("Spara")})})]})]})})};export{f as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o,useRef as i,useEffect as r}from"react";import{useNavigate as n}from"react-router-dom";import{CodicentService as s}from"../services/codicent.js";import a from"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import c from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import{makeStyles as u}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Card as h}from"../node_modules/@fluentui/react-card/lib/components/Card/Card.js";import{Switch as g}from"../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js";import{FullScreenMaximizeRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js";import{ArrowCollapseAllRegular as j,ArrowExpandAllRegular as b}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";import{CardHeader as x}from"../node_modules/@fluentui/react-card/lib/components/CardHeader/CardHeader.js";import{Skeleton as w}from"../node_modules/@fluentui/react-skeleton/lib/components/Skeleton/Skeleton.js";import{SkeletonItem as S}from"../node_modules/@fluentui/react-skeleton/lib/components/SkeletonItem/SkeletonItem.js";import{Caption1 as k}from"../node_modules/@fluentui/react-text/lib/components/presets/Caption1/Caption1.js";import{tokens as _}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Edit20Regular as O}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";const I=u({iframe:{border:"none",width:"100%",height:"100%"},main:{gap:"36px",display:"flex",flexDirection:"column",flexWrap:"wrap"},card:{minWidth:"300px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",maxHeight:"11em",borderRadius:"10px",position:"relative"},expandedCard:{minWidth:"320px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",borderRadius:"10px",position:"relative"},text:{margin:"0.5em",whiteSpace:"normal",fontSize:"larger"},caption:{color:_.colorNeutralForeground3},headerImage:{borderRadius:"4px",maxWidth:"44px",maxHeight:"44px"},rectangle:{margin:0,top:"-5px",left:"-2px",width:"5px",position:"absolute",height:"100%"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:_.colorNeutralStroke1,borderRadius:"3px"}},htmlButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},headerButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},iconButtonRow:{position:"absolute",top:"0.5em",right:"0.5em",display:"flex",alignItems:"center",gap:"0.5em",zIndex:2},content:{overflow:"hidden",transition:"max-height 0.3s ease-out",userSelect:"text"},truncated:{maxHeight:"10em"},header:{display:"flex",flexDirection:"row",gap:"0.5em",alignItems:"center"},todoSwitch:{transform:"scale(0.8)","& .fui-Switch__label":{fontSize:"0.75rem"}}}),C=({header:u,description:_,timestamp:C,text:E,image:N,tags:v,id:T,fileIds:y,codicentService:A,busy:B,onEdit:F,onShowHtmlPreview:L})=>{const P=I(),R=n(),[H,D]=o(!1),[G,z]=o(!1),[M,K]=o("unknown"),[W,$]=o(!1),U=i(null),Y=Object.keys(d("LOGBOOK_TAG_DEFINITIONS")),V=Y.find((e=>v.includes(e)))||(y.length>0?Y.find((e=>"file"===e)):void 0),[X,q]=o([]),J=v.includes("todo"),{t:Q}=c(),Z=["TYPE","CUSTOMER","CONTACT","SALESPERSON","MESSAGE","COMPANY","PHONE","EMAIL","WEBSITE","INFO","FÖRETAG","ROLE","KONTAKT"],ee=[Q("Typ"),Q("Kund"),Q("Kontakt"),Q("Säljare"),Q("Meddelande"),Q("Företag"),Q("Telefon"),Q("E-post"),Q("Hemsida"),Q("Info"),Q("Företag"),Q("Roll"),Q("Kontakt")];r((()=>{Promise.all(y.map((e=>A.getFileInfo(e)))).then((e=>{q(e)}))}),[A,q,y]),r((()=>{const e=()=>{if(U.current){const e=U.current.scrollHeight>100+(X.length>0?-72:0);z(e)}};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[E,X]),r((()=>{if(J){(async()=>{try{const e=await A.getTodoStatus(T);K(e)}catch(e){console.error("Error loading todo status:",e),K("unknown")}})()}}),[J,T,A]);const te=()=>D(!H),oe=v.includes("chat")&&(E.includes("#function_result")||E.includes("#finish_reason_function_call")),ie=e=>{const t=e.indexOf("```html");if(-1===t)return e;const o=e.indexOf("```",t+7);if(-1===o)return e.substring(t+7);return e.substring(t+7,o)},re=new m(E).data,ne=V&&d("LOGBOOK_TAG_DEFINITIONS")[V].editable,se=V&&d("LOGBOOK_TAG_DEFINITIONS")[V].imageSize||void 0;return e(h,{className:H?P.expandedCard:P.card,style:{backgroundColor:d("MESSAGE_HIDE_BAR")?V?d("LOGBOOK_TAG_DEFINITIONS")[V].color:d("APP_HEADER_COLOR")||"#eee":"#eee"},onClick:v.includes("chat")?e=>{v.includes("chat")&&(e&&e.stopPropagation(),R("/chat?id="+T))}:void 0,children:[!d("MESSAGE_HIDE_BAR")&&t("div",{className:P.rectangle,style:{backgroundColor:V?d("LOGBOOK_TAG_DEFINITIONS")[V].color:d("APP_HEADER_COLOR")||void 0}}),e("div",{className:P.iconButtonRow,children:[J&&t(g,{className:P.todoSwitch,checked:"done"===M,onChange:(e,t)=>(async e=>{if(!W){$(!0);try{const t=e?"done":"undone";await A.updateTodoStatus(T,t)&&K(t)}catch(e){console.error("Error updating todo status:",e)}finally{$(!1)}}})(t.checked),disabled:W||"unknown"===M,label:Q("done"===M?"Done":"Todo")}),ne&&F&&t(O,{className:P.htmlButton,onClick:()=>F()}),L&&!ne&&v.includes("html")&&t(f,{className:P.htmlButton,onClick:e=>{e.stopPropagation(),L(ie(E))}}),G&&!v.includes("chat")&&H&&t(j,{className:P.headerButton,onClick:te}),G&&!v.includes("chat")&&!H&&t(b,{className:P.headerButton,onClick:te})]}),t(x,{image:N?t("img",{className:P.headerImage,src:"app_logo.svg",alt:"User"}):null,header:B?t(w,{style:{width:"50%"},children:t(S,{})}):e("div",{className:P.header,children:[t(l,{weight:"semibold",children:u}),C&&t(l,{weight:"regular",children:C})]}),description:t(k,{className:P.caption,children:_})}),e("div",{ref:U,className:`${P.content} ${H?"":P.truncated}`,children:[X.length>0&&t("div",{className:P.fileList,children:X.map((e=>t(p,{file:e,thumbnailSize:se,getImageUrl:s.getImageUrl,onClick:()=>{e.contentType.startsWith("image")?R(`/image?id=${T}&file=${e.id}`):s.downloadFile(e)}},e.id)))}),B?e(w,{style:{width:"100%"},children:[t(S,{}),t(S,{}),t(S,{}),t(S,{}),t(S,{})]}):t("div",{className:P.text,children:v.includes("html")?t("iframe",{className:P.iframe,title:"html",srcDoc:ie(E),sandbox:"allow-same-origin allow-scripts"}):v.includes("crm")&&0===Object.keys(re).length?t(a,{content:oe?"*"+Q("Tänker")+"...*":re?(()=>{const e=new RegExp(`(${Z.join("|")})\\s*:\\s*`,"gi");return E.replace(e,((e,t)=>{const o=Z.indexOf(t.toUpperCase());-1===o&&console.log("Field not found:",t);return`\n**${-1!==o?ee[o]:t}:** `})).trim()})():E}):t(a,{content:oe?"*"+Q("Tänker")+"...*":re&&re&&Object.keys(re).length>0?Object.keys(re).map((e=>{const t=Z.indexOf(e.toUpperCase());return`**${-1!==t?ee[t]:e}:** ${re[e]}\n`})).join("\n"):E})})]})]})};export{C as default};
|
|
1
|
+
import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as o,useRef as i,useEffect as r}from"react";import{useNavigate as n}from"react-router-dom";import{CodicentService as s}from"../services/codicent.js";import a from"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as l}from"./Text.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import m from"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as d}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import c from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{FileThumbnail as p}from"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import{makeStyles as u}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Card as h}from"../node_modules/@fluentui/react-card/lib/components/Card/Card.js";import{Switch as g}from"../node_modules/@fluentui/react-switch/lib/components/Switch/Switch.js";import{FullScreenMaximizeRegular as f}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js";import{ArrowCollapseAllRegular as j,ArrowExpandAllRegular as b}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js";import{CardHeader as x}from"../node_modules/@fluentui/react-card/lib/components/CardHeader/CardHeader.js";import{Skeleton as w}from"../node_modules/@fluentui/react-skeleton/lib/components/Skeleton/Skeleton.js";import{SkeletonItem as S}from"../node_modules/@fluentui/react-skeleton/lib/components/SkeletonItem/SkeletonItem.js";import{Caption1 as k}from"../node_modules/@fluentui/react-text/lib/components/presets/Caption1/Caption1.js";import{tokens as _}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Edit20Regular as O}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";const I=u({iframe:{border:"none",width:"100%",height:"100%"},main:{gap:"36px",display:"flex",flexDirection:"column",flexWrap:"wrap"},card:{minWidth:"300px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",maxHeight:"11em",borderRadius:"10px",position:"relative"},expandedCard:{minWidth:"320px",maxWidth:"100%",height:"fit-content",marginBottom:"1em",paddingLeft:"1em",borderRadius:"10px",position:"relative"},text:{margin:"0.5em",whiteSpace:"normal",fontSize:"larger"},caption:{color:_.colorNeutralForeground3},headerImage:{borderRadius:"4px",maxWidth:"44px",maxHeight:"44px"},rectangle:{margin:0,top:"-5px",left:"-2px",width:"5px",position:"absolute",height:"100%"},fileList:{display:"flex",overflowX:"auto",overflowY:"hidden",scrollbarWidth:"thin",msOverflowStyle:"none",padding:"4px",margin:"0 -4px",maxWidth:"100%",boxSizing:"border-box","&::-webkit-scrollbar":{height:"6px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:_.colorNeutralStroke1,borderRadius:"3px"}},htmlButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},headerButton:{fontSize:"1.5em",cursor:"pointer",marginLeft:"0.5em"},iconButtonRow:{position:"absolute",top:"0.5em",right:"0.5em",display:"flex",alignItems:"center",gap:"0.5em",zIndex:2},content:{overflow:"hidden",transition:"max-height 0.3s ease-out",userSelect:"text"},truncated:{maxHeight:"10em"},header:{display:"flex",flexDirection:"row",gap:"0.5em",alignItems:"center"},todoSwitch:{transform:"scale(0.8)","& .fui-Switch__label":{fontSize:"0.75rem"}}}),C=({header:u,description:_,timestamp:C,text:E,image:N,tags:v,id:T,fileIds:y,codicentService:A,busy:B,onEdit:F,onShowHtmlPreview:L})=>{const P=I(),R=n(),[H,D]=o(!1),[G,z]=o(!1),[M,K]=o("unknown"),[W,$]=o(!1),U=i(null),Y=Object.keys(d("LOGBOOK_TAG_DEFINITIONS")),V=Y.find((e=>v.includes(e)))||(y.length>0?Y.find((e=>"file"===e)):void 0),[X,q]=o([]),J=v.includes("todo"),{t:Q}=c(),Z=["TYPE","CUSTOMER","CONTACT","SALESPERSON","MESSAGE","COMPANY","PHONE","EMAIL","WEBSITE","INFO","FÖRETAG","ROLE","KONTAKT"],ee=[Q("Typ"),Q("Kund"),Q("Kontakt"),Q("Säljare"),Q("Meddelande"),Q("Företag"),Q("Telefon"),Q("E-post"),Q("Hemsida"),Q("Info"),Q("Företag"),Q("Roll"),Q("Kontakt")];r((()=>{Promise.all(y.map((e=>A.getFileInfo(e)))).then((e=>{q(e)}))}),[A,q,y]),r((()=>{const e=()=>{if(U.current){const e=U.current.scrollHeight>100+(X.length>0?-72:0);z(e)}};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[E,X]),r((()=>{if(J){(async()=>{try{const e=await A.getTodoStatus(T);K(e)}catch(e){console.error("Error loading todo status:",e),K("unknown")}})()}}),[J,T,A]);const te=()=>D(!H),oe=v.includes("chat")&&(E.includes("#function_result")||E.includes("#finish_reason_function_call")),ie=e=>{const t=e.indexOf("```html");if(-1===t)return e;const o=e.indexOf("```",t+7);if(-1===o)return e.substring(t+7);return e.substring(t+7,o)},re=new m(E).data,ne=V&&d("LOGBOOK_TAG_DEFINITIONS")[V].editable,se=V&&d("LOGBOOK_TAG_DEFINITIONS")[V].imageSize||void 0;return e(h,{className:H?P.expandedCard:P.card,style:{backgroundColor:d("MESSAGE_HIDE_BAR")?V?d("LOGBOOK_TAG_DEFINITIONS")[V].color:d("APP_HEADER_COLOR")||"#eee":"#eee"},onClick:v.includes("chat")?e=>{v.includes("chat")&&(e&&e.stopPropagation(),R("/chat?id="+T))}:void 0,children:[!d("MESSAGE_HIDE_BAR")&&t("div",{className:P.rectangle,style:{backgroundColor:V?d("LOGBOOK_TAG_DEFINITIONS")[V].color:d("APP_HEADER_COLOR")||void 0}}),e("div",{className:P.iconButtonRow,children:[J&&t(g,{className:P.todoSwitch,checked:"done"===M,onChange:(e,t)=>(async e=>{if(!W){$(!0);try{const t=e?"done":"undone";await A.updateTodoStatus(T,t)&&K(t)}catch(e){console.error("Error updating todo status:",e)}finally{$(!1)}}})(t.checked),disabled:W||"unknown"===M,label:Q("done"===M?"Done":"Todo")}),ne&&F&&t(O,{className:P.htmlButton,onClick:()=>F()}),L&&!ne&&v.includes("html")&&t(f,{className:P.htmlButton,onClick:e=>{e.stopPropagation(),L(ie(E))}}),G&&!v.includes("chat")&&H&&t(j,{className:P.headerButton,onClick:te}),G&&!v.includes("chat")&&!H&&t(b,{className:P.headerButton,onClick:te})]}),t(x,{image:N?t("img",{className:P.headerImage,src:"app_logo.svg",alt:"User"}):null,header:B?t(w,{style:{width:"50%"},children:t(S,{})}):e("div",{className:P.header,children:[t(l,{weight:"semibold",children:u}),C&&t(l,{weight:"regular",children:C})]}),description:t(k,{className:P.caption,children:_})}),e("div",{ref:U,className:`${P.content} ${H?"":P.truncated}`,children:[X.length>0&&t("div",{className:P.fileList,children:X.map((e=>t(p,{file:e,thumbnailSize:se,getImageUrl:s.getImageUrl,onClick:()=>{e.contentType.startsWith("image")?R(`/image?id=${T}&file=${e.id}`):s.downloadFile(e)}},e.id)))}),B?e(w,{style:{width:"100%"},children:[t(S,{}),t(S,{}),t(S,{}),t(S,{}),t(S,{})]}):t("div",{className:P.text,children:v.includes("html")?t("iframe",{className:P.iframe,title:"html",srcDoc:ie(E),sandbox:"allow-same-origin allow-scripts"}):v.includes("crm")&&0===Object.keys(re).length?t(a,{content:oe?"*"+Q("Tänker")+"...*":re?(()=>{const e=new RegExp(`(${Z.join("|")})\\s*:\\s*`,"gi");return E.replace(e,((e,t)=>{const o=Z.indexOf(t.toUpperCase());-1===o&&console.log("Field not found:",t);return`\n**${-1!==o?ee[o]:t}:** `})).trim()})():E}):t(a,{content:oe?"*"+Q("Tänker")+"...*":re&&re&&Object.keys(re).length>0?Object.keys(re).map((e=>{const t=Z.indexOf(e.toUpperCase());return`**${-1!==t?ee[t]:e}:** ${re[e]}\n`})).join("\n"):E})})]})]})};export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useState as o,useEffect as s}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import r from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as a}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Image as m}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Input as n}from"../node_modules/@fluentui/react-input/lib/components/Input/Input.js";import{Button as p}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{ArrowUndo20Regular as l}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-1.js";import{Edit20Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";import{Text as u}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";const
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import{useState as o,useEffect as s}from"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import r from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as a}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Image as m}from"../node_modules/@fluentui/react-image/lib/components/Image/Image.js";import{Input as n}from"../node_modules/@fluentui/react-input/lib/components/Input/Input.js";import{Button as p}from"../node_modules/@fluentui/react-button/lib/components/Button/Button.js";import{ArrowUndo20Regular as l}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-1.js";import{Edit20Regular as c}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js";import{Text as u}from"../node_modules/@fluentui/react-text/lib/components/Text/Text.js";const j=a({container:{display:"flex",flexDirection:"row",alignItems:"start",justifyContent:"start",gap:"1rem",marginBottom:"1rem"},properties:{display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"center",gap:"0.5rem",width:"100%"},editButton:{marginLeft:"0.5rem"},saveButton:{marginTop:"0.3rem"}}),d=({state:a})=>{const d=j(),{isAuthenticated:g,isLoading:h,user:f,nickname:v}=a.auth,[C,b]=o(),[I,x]=o(!1),[y,w]=o(!1),[_,k]=o(""),[B,S]=o(""),{t:z}=r();s((()=>{a.service.getUserInfo(v).then(b)}),[a.service,v]);const A=()=>{k(C?.name||f?.name||""),S(C?.email||f?.email||""),x(!1),w(!1)},F=async e=>{const t=await a.service.updateUserInfo({nickname:v,name:e.name,email:e.email||""});b(t)};return h?e("div",{children:z("Laddar...")}):g&&f&&t("div",{className:d.container,children:[e(m,{shape:"circular",width:100,src:C?.picture||f.picture,alt:f.name}),t("div",{className:d.properties,children:[e("h2",{children:I?e(i,{children:e(n,{type:"text",value:_,onChange:e=>{k(e.target.value)},contentAfter:e(p,{icon:e(l,{}),size:"small",onClick:A})})}):t(i,{children:[C?.name||f.name,e(p,{className:d.editButton,icon:e(c,{}),size:"small",onClick:()=>{x(!0),k(C?.name||f?.name||"")}})]})}),t(u,{children:[e(i,y?{children:e(n,{type:"text",value:B,onChange:e=>{S(e.target.value)},contentAfter:e(p,{icon:e(l,{}),size:"small",onClick:A})})}:{children:C?.email||f.email}),(I||y)&&e("div",{children:e(p,{className:d.saveButton,appearance:"primary",size:"small",onClick:()=>{x(!1),w(!1),F({...C,name:_,email:B})},children:"Spara"})})]})]})]})};export{d as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as t}from"react/jsx-runtime";import"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as i,DialogTitle as r,DialogContent as e,DialogActions as p}from"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";const a=({open:a,onYes:m,onNo:j,title:n,content:l})=>o(i,{open:a,children:[t(r,{children:n}),t(e,{children:l}),o(p,{children:[t(s,{appearance:"secondary",onClick:j,children:"Nej"}),t(s,{type:"submit",appearance:"primary",onClick:m,children:"Ja"})]})]});export{a as default};
|
|
1
|
+
import{jsxs as o,jsx as t}from"react/jsx-runtime";import"./Markdown.js";import"./Textarea.js";import{Button as s}from"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import{Dialog as i,DialogTitle as r,DialogContent as e,DialogActions as p}from"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"react";import"../services/codicent.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";const a=({open:a,onYes:m,onNo:j,title:n,content:l})=>o(i,{open:a,children:[t(r,{children:n}),t(e,{children:l}),o(p,{children:[t(s,{appearance:"secondary",onClick:j,children:"Nej"}),t(s,{type:"submit",appearance:"primary",onClick:m,children:"Ja"})]})]});export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as e}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as t}from"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as r}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as s}from"../node_modules/@griffel/core/index.esm.js";import{tokens as n}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Home24Regular as a}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js";import{Camera24Regular as m,CameraSwitch24Regular as p}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js";import{MicPulse24Filled as l,MicRecord24Filled as c,Mic24Regular as d}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";const j=r({footer:{...s.padding("14px"),backgroundColor:t("APP_HEADER_COLOR")||n.colorBrandBackground,color:t("APP_HEADER_TEXT_COLOR")||n.colorNeutralForegroundOnBrand,textAlign:"center",display:"flex",justifyContent:"space-around",alignItems:"center",position:"sticky",bottom:0,zIndex:1e3,paddingBottom:"22px",width:"100%"},container:{display:"flex",justifyContent:"space-around",alignItems:"center",maxWidth:"480px",width:"100%"},button:{color:n.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...s.borderWidth("0")},link:{textDecoration:"none",color:"inherit","&.selected":{border:"none"},"&:hover":{textDecoration:"none"},minWidth:"48px"},buttonText:{fontSize:"12px"}}),u=({onHome:r,onTakePhoto:s,onSwichCamera:n,audio:u,tag:g})=>{const h=j(),{isRecording:f,isSoundCaptured:k,startRecording:x,stopRecording:b}=u,{t:C}=i();return o("footer",{className:h.footer,children:e("div",{className:h.container,children:[e("div",{className:h.link,onClick:r,children:[o(a,{}),o("p",{className:h.buttonText,children:C("Hem")})]}),e("div",{className:h.link,children:[f&&k&&o(l,{onClick:b}),f&&!k&&o(c,{onClick:b}),!f&&o(d,{onClick:()=>x(g)}),o("p",{className:h.buttonText,children:C("Ljud")})]}),e("div",{className:h.link,onClick:()=>{t("RESTART_AUDIO_ON_TAKE_PHOTO")&&f?(b(),s(),x(g)):s()},children:[o(m,{}),o("p",{className:h.buttonText,children:C("Ta kort")})]}),e("div",{className:h.link,onClick:n,children:[o(p,{}),o("p",{className:h.buttonText,children:C("Byt kamera")})]})]})})};export{u as default};
|
|
1
|
+
import{jsx as o,jsxs as e}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import{getConfigValue as t}from"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as r}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as s}from"../node_modules/@griffel/core/index.esm.js";import{tokens as n}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{Home24Regular as a}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js";import{Camera24Regular as m,CameraSwitch24Regular as p}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js";import{MicPulse24Filled as l,MicRecord24Filled as c,Mic24Regular as d}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";const j=r({footer:{...s.padding("14px"),backgroundColor:t("APP_HEADER_COLOR")||n.colorBrandBackground,color:t("APP_HEADER_TEXT_COLOR")||n.colorNeutralForegroundOnBrand,textAlign:"center",display:"flex",justifyContent:"space-around",alignItems:"center",position:"sticky",bottom:0,zIndex:1e3,paddingBottom:"22px",width:"100%"},container:{display:"flex",justifyContent:"space-around",alignItems:"center",maxWidth:"480px",width:"100%"},button:{color:n.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...s.borderWidth("0")},link:{textDecoration:"none",color:"inherit","&.selected":{border:"none"},"&:hover":{textDecoration:"none"},minWidth:"48px"},buttonText:{fontSize:"12px"}}),u=({onHome:r,onTakePhoto:s,onSwichCamera:n,audio:u,tag:g})=>{const h=j(),{isRecording:f,isSoundCaptured:k,startRecording:x,stopRecording:b}=u,{t:C}=i();return o("footer",{className:h.footer,children:e("div",{className:h.container,children:[e("div",{className:h.link,onClick:r,children:[o(a,{}),o("p",{className:h.buttonText,children:C("Hem")})]}),e("div",{className:h.link,children:[f&&k&&o(l,{onClick:b}),f&&!k&&o(c,{onClick:b}),!f&&o(d,{onClick:()=>x(g)}),o("p",{className:h.buttonText,children:C("Ljud")})]}),e("div",{className:h.link,onClick:()=>{t("RESTART_AUDIO_ON_TAKE_PHOTO")&&f?(b(),s(),x(g)):s()},children:[o(m,{}),o("p",{className:h.buttonText,children:C("Ta kort")})]}),e("div",{className:h.link,onClick:n,children:[o(p,{}),o("p",{className:h.buttonText,children:C("Byt kamera")})]})]})})};export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as t,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import{Button as e}from"./Button.js";import"./CompoundButton.js";import{Title as s}from"./Title.js";import{Text as i}from"./Text.js";import"./Spinner.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import r from"../hooks/useLocalization.js";import p from"../hooks/useAppStyles.js";import{makeStyles as
|
|
1
|
+
import{jsxs as t,jsx as o}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import{Button as e}from"./Button.js";import"./CompoundButton.js";import{Title as s}from"./Title.js";import{Text as i}from"./Text.js";import"./Spinner.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import r from"../hooks/useLocalization.js";import p from"../hooks/useAppStyles.js";import{makeStyles as a}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as m}from"../node_modules/@griffel/core/index.esm.js";const l=a({header:{...m.padding("16px"),textAlign:"start",position:"sticky",top:0,zIndex:1e3,alignItems:"center",justifyContent:"space-between",width:"100%",display:"flex"}}),n=({title:a,onNewChat:m,subtitle:n})=>{const j=l(),c=p(),{t:g}=r();return t("header",{className:j.header,children:[a&&o(s,{children:a}),n&&o(i,{size:300,weight:"regular",children:n}),m&&o(e,{className:c.button,appearance:"primary",title:g("Ny chatt"),icon:"ArrowClockwiseRegular",onClick:m})]})};export{n as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as o,jsx as s}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as t}from"./Text.js";import{Spinner as r}from"./Spinner.js";import"./TextHeader.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as e}from"../node_modules/@griffel/react/makeStyles.esm.js";const p=e({typingContainer:{display:"flex",gap:"8px"}}),m=()=>{const e=p(),{t:m}=i();return o("div",{className:e.typingContainer,children:[s(r,{size:"extra-small"}),s(t,{size:400,children:m("Tänker...")})]})};export{m as default};
|
|
1
|
+
import{jsxs as o,jsx as s}from"react/jsx-runtime";import"react";import"../services/codicent.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Text as t}from"./Text.js";import{Spinner as r}from"./Spinner.js";import"./TextHeader.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./UploadFile.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as e}from"../node_modules/@griffel/react/makeStyles.esm.js";const p=e({typingContainer:{display:"flex",gap:"8px"}}),m=()=>{const e=p(),{t:m}=i();return o("div",{className:e.typingContainer,children:[s(r,{size:"extra-small"}),s(t,{size:400,children:m("Tänker...")})]})};export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import{forwardRef as e,useState as t,useRef as s,useEffect as r,useImperativeHandle as i}from"react";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{isMobileDevice as
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import{forwardRef as e,useState as t,useRef as s,useEffect as r,useImperativeHandle as i}from"react";import"../utils/MessageContent.js";import"../node_modules/tinycolor2/esm/tinycolor.js";import"../_virtual/index.js";import"../config/index.js";import"../utils/cacheManager.js";import"../lib/wavtools/lib/wav_packer.js";import"../lib/wavtools/lib/analysis/audio_analysis.js";import"../lib/wavtools/lib/wav_stream_player.js";import"../lib/wavtools/lib/wav_recorder.js";import{isMobileDevice as a}from"../utils/device.js";import"./Markdown.js";import"./Textarea.js";import"./Button.js";import"./CompoundButton.js";import{Spinner as p}from"./Spinner.js";import"./TextHeader.js";import"./TypingIndicator.js";import"./Dialog.js";import"./ChatInput.js";import"./CombinedPlaceholderDialog.js";import"./ChatMessage.js";import"./Header.js";import"../services/codicent.js";import"../pages/AppFrame.js";import"../pages/Chat.js";import"../pages/Compose.js";import"../pages/Snap.js";import"../pages/Search.js";import"../pages/Login.js";import"../pages/CrmPage.js";import"../pages/CrmPagePersistent.js";import"../pages/ImageView.js";import"../pages/FormInvite.js";import"../pages/FormAccept.js";import"../pages/Sales.js";import"../pages/Purchase.js";import"../stores/chatStore.js";import"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import"./FileThumbnail.js";import"./MessageInput.js";import"./SnapFooter.js";import"./Profile.js";import"./MessageItem.js";import"./Content.js";import"./AiInput.js";import"./SearchBox.js";import"./HtmlView.js";import"./Footer.js";import"./Page.js";import{makeStyles as m}from"../node_modules/@griffel/react/makeStyles.esm.js";const l=m({imageUpload:{display:"none"},spinner:{marginTop:"10px"}}),n=e((({onFileUploaded:e,accept:m,capture:n,multiple:c=!1,onUploading:j,className:g,id:d,codicentService:u},f)=>{const h=l(),[y,v]=t(!1),w=s(null);r((()=>{j(y)}),[y,j]);const b=async(o,e)=>{const t=new FormData;t.append("file",e),v(!0);try{const e=await u.uploadFile(o,t);return v(!1),e}catch(e){return console.error("Upload failed for file:",o,e),v(!1),null}},C=()=>{w.current?.click()};i(f,(()=>({triggerUpload:C})));const S=n&&a();return o("div",{id:d,className:g,children:y?o(p,{"aria-label":"Uploading...",className:h.spinner}):o("input",{ref:w,type:"file",className:h.imageUpload,onChange:async()=>{try{const o=w.current;if(o&&o.files){const t=[];for(let e=0;e<o.files.length;e++){const s=o.files[e],r=s.name.split("\\").pop()||s.name,i=await b(r,s);i&&t.push(i)}t.length>0&&e(t)}}catch(o){console.error("Error uploading files:",o)}},accept:m,multiple:c,...S?{capture:n}:{}})})}));export{n as default};
|