codicent-app-sdk 0.3.111 → 0.3.113
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 +9 -0
- package/dist/cjs/components/Footer.js +1 -1
- package/dist/cjs/components/HtmlView.d.ts.map +1 -1
- package/dist/cjs/components/HtmlView.js +1 -1
- package/dist/esm/components/Footer.js +1 -1
- package/dist/esm/components/HtmlView.d.ts.map +1 -1
- package/dist/esm/components/HtmlView.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -95,6 +95,15 @@ USE_REALTIME_SESSION_ENDPOINT: boolean // Use secure session endpoint (default:
|
|
|
95
95
|
|
|
96
96
|
For AI voice configuration and security, see the [Voice Upgrade Guide](VOICE_UPGRADE_GUIDE.md).
|
|
97
97
|
|
|
98
|
+
### CRUD Operations
|
|
99
|
+
|
|
100
|
+
The SDK provides comprehensive CRUD (Create, Read, Update, Delete) methods for managing structured data. For detailed documentation and examples, see:
|
|
101
|
+
|
|
102
|
+
📄 **[CRUD Method Usage Guide](../CRUD_METHOD_USAGE.md)** - Complete guide covering:
|
|
103
|
+
- CodicentService CRUD methods
|
|
104
|
+
- Usage patterns for project/task management and business records
|
|
105
|
+
- JavaScript library (codicentjs) API
|
|
106
|
+
- Best practices and complete examples
|
|
98
107
|
|
|
99
108
|
### Example: Simple Chat App
|
|
100
109
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),r=require("react-router-dom");require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var i=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Page.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js");var o=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.js");var n=require("../node_modules/@griffel/react/makeStyles.esm.js"),a=require("../node_modules/@griffel/core/index.esm.js"),t=require("../node_modules/@fluentui/tokens/lib/tokens.js"),l=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js"),u=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js"),c=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js"),d=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js"),j=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js"),g=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js");const p=n.makeStyles({footer:{...a.shorthands.padding("14px"),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:t.tokens.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...a.shorthands.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),m=()=>{const n=p(),a=r.useLocation(),[m,x]=s.useState(null),{t:h}=o.default(),q={backgroundColor:i.getConfigValue("APP_FOOTER_COLOR")||t.tokens.colorBrandBackground,color:i.getConfigValue("APP_FOOTER_TEXT_COLOR")||t.tokens.colorNeutralForegroundOnBrand},
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),s=require("react"),r=require("react-router-dom");require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js");var i=require("../config/index.js");require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./HtmlView.js"),require("./Page.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js");var o=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.js");var n=require("../node_modules/@griffel/react/makeStyles.esm.js"),a=require("../node_modules/@griffel/core/index.esm.js"),t=require("../node_modules/@fluentui/tokens/lib/tokens.js"),l=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js"),u=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js"),c=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js"),d=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js"),j=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js"),g=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js");const p=n.makeStyles({footer:{...a.shorthands.padding("14px"),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:t.tokens.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...a.shorthands.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),m=()=>{const n=p(),a=r.useLocation(),[m,x]=s.useState(null),{t:h}=o.default(),q={backgroundColor:i.getConfigValue("APP_FOOTER_COLOR")||t.tokens.colorBrandBackground,color:i.getConfigValue("APP_FOOTER_TEXT_COLOR")||t.tokens.colorNeutralForegroundOnBrand},C=i.getConfigValue("APP_FOOTER_SELECTED_COLOR")||void 0;return s.useEffect((()=>{const e=a.pathname;"/"===e?x("home"):"/chat"===e?x("chat"):"/new"===e?x("save"):"/menu"===e?x("menu"):"/log"===e?x("log"):"/canvas"===e?x("canvas"):"/snap"===e&&x("snap")}),[a]),s.useEffect((()=>{m&&console.log(`footer-button: ${m}`)}),[m]),e.jsx("footer",{className:n.footer,style:q,children:e.jsxs("div",{className:n.container,children:[e.jsxs(r.Link,{to:"/",className:`${n.link} ${"home"===m?"selected":""}`,onClick:()=>x("home"),style:"home"===m?{color:C}:void 0,children:["home"===m?e.jsx(l.Home24Filled,{}):e.jsx(l.Home24Regular,{}),e.jsx("p",{className:n.buttonText,children:h("Hem")})]}),!i.getConfigValue("HIDE_CHAT_BUTTON")&&e.jsxs(r.Link,{to:"/chat",className:`${n.link} ${"chat"===m?"selected":""}`,onClick:()=>x("chat"),style:"chat"===m?{color:C}:void 0,children:["chat"===m?e.jsx(u.Chat24Filled,{}):e.jsx(u.Chat24Regular,{}),e.jsx("p",{className:n.buttonText,children:h(i.getConfigValue("APP_CHAT_TITLE")||"Chatt")})]}),!i.getConfigValue("HIDE_SAVE_BUTTON")&&e.jsxs(r.Link,{to:"/new",className:`${n.link} ${"save"===m?"selected":""}`,onClick:()=>x("save"),style:"save"===m?{color:C}:void 0,children:["save"===m?e.jsx(c.AddSquare24Filled,{}):e.jsx(c.AddSquare24Regular,{}),e.jsx("p",{className:n.buttonText,children:h(i.getConfigValue("APP_SAVE_TITLE")||"Spara")})]}),i.getConfigValue("SHOW_SNAP_BUTTON")&&e.jsxs(r.Link,{to:"/snap",className:`${n.link} ${"snap"===m?"selected":""}`,onClick:()=>x("snap"),style:"snap"===m?{color:C}:void 0,children:["snap"===m?e.jsx(d.ClipboardDay24Filled,{}):e.jsx(d.ClipboardDay24Regular,{}),e.jsx("p",{className:n.buttonText,children:h("Snap")})]}),i.getConfigValue("SHOW_LOGBOOK_BUTTON")&&e.jsxs(r.Link,{to:"/log",className:`${n.link} ${"log"===m?"selected":""}`,onClick:()=>x("log"),style:"log"===m?{color:C}:void 0,children:["log"===m?e.jsx(j.SlideText24Filled,{}):e.jsx(j.SlideText24Regular,{}),e.jsx("p",{className:n.buttonText,children:h(i.getConfigValue("APP_LOGBOOK_TITLE")||"Loggbok")})]}),i.getConfigValue("SHOW_CANVAS_BUTTON")&&e.jsxs(r.Link,{to:"/canvas",className:`${n.link} ${"canvas"===m?"selected":""}`,onClick:()=>x("canvas"),style:"canvas"===m?{color:C}:void 0,children:["canvas"===m?e.jsx(g.Whiteboard24Filled,{}):e.jsx(g.Whiteboard24Regular,{}),e.jsx("p",{className:n.buttonText,children:h("Kanvas")})]}),!i.getConfigValue("HIDE_MENU_BUTTON")&&e.jsxs(r.Link,{to:"/menu",className:`${n.link} ${"menu"===m?"selected":""}`,onClick:()=>x("menu"),style:"menu"===m?{color:C}:void 0,children:["menu"===m?e.jsx(c.Apps24Filled,{}):e.jsx(c.Apps24Regular,{}),e.jsx("p",{className:n.buttonText,children:h("Meny")})]})]})})};exports.Footer=m,exports.default=m;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlView.d.ts","sourceRoot":"","sources":["../../../src/components/HtmlView.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"HtmlView.d.ts","sourceRoot":"","sources":["../../../src/components/HtmlView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,UAAU,aAAa;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,IAAI,CAAC;CACxB;AAgDD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8RrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react");require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./Footer.js"),require("./Page.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js");var r=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react");require("../services/codicent.js"),require("./Markdown.js"),require("./Textarea.js"),require("./Button.js"),require("./CompoundButton.js"),require("./Spinner.js"),require("./TextHeader.js"),require("./TypingIndicator.js"),require("./Dialog.js"),require("./ChatInput.js"),require("./CombinedPlaceholderDialog.js"),require("./ChatMessage.js"),require("./Header.js"),require("../utils/MessageContent.js"),require("../node_modules/tinycolor2/esm/tinycolor.js"),require("../_virtual/index.js"),require("../config/index.js"),require("../utils/cacheManager.js"),require("../lib/wavtools/lib/wav_packer.js"),require("../lib/wavtools/lib/analysis/audio_analysis.js"),require("../lib/wavtools/lib/wav_stream_player.js"),require("../lib/wavtools/lib/wav_recorder.js"),require("./FileThumbnail.js"),require("./MessageInput.js"),require("./UploadFile.js"),require("./SnapFooter.js"),require("./Profile.js"),require("./MessageItem.js"),require("./Content.js"),require("./AiInput.js"),require("./SearchBox.js"),require("./Footer.js"),require("./Page.js"),require("../pages/AppFrame.js"),require("../pages/Chat.js"),require("../pages/Compose.js"),require("../pages/Snap.js"),require("../pages/Search.js"),require("../pages/Login.js"),require("../pages/CrmPage.js"),require("../pages/CrmPagePersistent.js"),require("../pages/ImageView.js"),require("../pages/FormInvite.js"),require("../pages/FormAccept.js"),require("../pages/Sales.js"),require("../pages/Purchase.js");var r=require("../hooks/useLocalization.js");require("../hooks/useAppStyles.js");var n=require("../node_modules/@griffel/react/makeStyles.esm.js"),o=require("../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js"),i=require("../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/MenuTrigger.js"),s=require("../node_modules/@fluentui/react-button/lib/components/Button/Button.js"),a=require("../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js"),u=require("../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js"),c=require("../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js"),l=require("../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js"),d=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js"),m=require("../node_modules/@fluentui/tokens/lib/tokens.js"),p=require("../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js");const h=n.makeStyles({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:m.tokens.colorNeutralBackground1,boxShadow:m.tokens.shadow16}});exports.default=({html:n,onDismiss:m})=>{const g=t.useRef(null),j=t.useRef(null),[q,f]=t.useState(1),b=h(),{t:x}=r.default();t.useEffect((()=>{const e=e=>{try{const t=e.contentDocument||e.contentWindow?.document;if(!t)return;if(t.getElementById("print-color-preserve-styles"))return;const r=t.createElement("style");r.id="print-color-preserve-styles",r.textContent="\n @media print {\n /* Force browsers to preserve colors when printing */\n * {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n color-adjust: exact !important;\n }\n \n /* Ensure backgrounds and colors are preserved */\n body, html {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n color-adjust: exact !important;\n }\n }\n ",t.head.appendChild(r)}catch(e){console.warn("Failed to inject print styles into iframe:",e)}},t=g.current,r=j.current;let n,o;return t&&(n=()=>e(t),t.addEventListener("load",n),"complete"===t.contentDocument?.readyState&&e(t)),r&&(o=()=>e(r),r.addEventListener("load",o),"complete"===r.contentDocument?.readyState&&e(r)),()=>{t&&n&&t.removeEventListener("load",n),r&&o&&r.removeEventListener("load",o)}}),[n]);return e.jsxs("div",{className:b.container,onTouchStart:e=>{if(2===e.touches.length){const t=e.touches[0],r=e.touches[1],n=Math.sqrt(Math.pow(r.clientX-t.clientX,2)+Math.pow(r.clientY-t.clientY,2));g.current?.setAttribute("data-initial-distance",n.toString()),g.current?.setAttribute("data-initial-scale",q.toString())}},onTouchMove:e=>{if(2===e.touches.length){const t=e.touches[0],r=e.touches[1],n=parseFloat(g.current?.getAttribute("data-initial-distance")||"0"),o=parseFloat(g.current?.getAttribute("data-initial-scale")||"1"),i=Math.sqrt(Math.pow(r.clientX-t.clientX,2)+Math.pow(r.clientY-t.clientY,2));if(n>0){const e=Math.min(Math.max(o*(i/n),.5),3);f(e),g.current&&(g.current.style.transform=`scale(${e})`),j.current&&(j.current.style.transform=`scale(${e})`)}}},onTouchEnd:()=>{g.current?.removeAttribute("data-initial-distance"),g.current?.removeAttribute("data-initial-scale")},children:[e.jsx("iframe",{ref:g,className:b.iframe,title:"html",srcDoc:n}),e.jsx("iframe",{ref:j,className:b.iframe2,title:"html",srcDoc:n})," ",e.jsxs(o.Menu,{children:[e.jsx(i.MenuTrigger,{children:e.jsx(s.Button,{icon:e.jsx(a.MoreHorizontal24Regular,{}),className:b.menuButton})}),e.jsx(u.MenuPopover,{className:b.menuPopover,children:e.jsxs(c.MenuList,{children:[e.jsx(l.MenuItem,{icon:e.jsx(p.DismissRegular,{}),onClick:m,children:x("Stäng")}),e.jsx(l.MenuItem,{icon:e.jsx(d.PrintRegular,{}),onClick:()=>{g.current&&g.current.contentWindow?.print()},children:x("Skriv ut")}),e.jsx(l.MenuItem,{icon:e.jsx(p.CopyRegular,{}),onClick:async()=>{if(j.current)try{const e=j.current,t=e.contentWindow,r=e.contentDocument||t?.document;if(!r||!t)return;r.querySelectorAll("canvas").forEach((e=>{const t=r.createElement("img");t.src=e.toDataURL("image/png"),t.style.cssText=window.getComputedStyle(e).cssText,t.width=e.width,t.height=e.height,e.parentNode?.insertBefore(t,e),e.parentNode?.removeChild(e)}));let n="";Array.from(r.styleSheets).forEach((e=>{try{Array.from(e.cssRules||[]).forEach((e=>{n+=e.cssText+"\n"}))}catch(e){console.warn("Could not access stylesheet",e)}}));r.body.querySelectorAll("*").forEach((e=>{const r=t.getComputedStyle(e);let n="";if(["fontFamily","fontSize","fontWeight","color","backgroundColor","margin","padding","border","textAlign","lineHeight","letterSpacing","display","width","height"].forEach((e=>{r[e]&&"initial"!==r[e]&&"none"!==r[e]&&"normal"!==r[e]&&(n+=`${String(e)}:${r[e]};`)})),n){const t=e.getAttribute("style")||"";e.setAttribute("style",t+n)}}));const o=r.createElement("style");o.textContent=n,r.head.appendChild(o);const i=r.documentElement.outerHTML,s=r.body.innerText,a=document.createElement("div");a.innerHTML=i;const u=window.location.href;if(a.querySelectorAll("img").forEach((e=>{!e.src||e.src.startsWith("http")||e.src.startsWith("data:")||(e.src=new URL(e.src,u).href)})),navigator.clipboard&&window.ClipboardItem){const e=new Blob([a.outerHTML],{type:"text/html"}),t=new Blob([s],{type:"text/plain"}),r=new ClipboardItem({"text/html":e,"text/plain":t});await navigator.clipboard.write([r])}else{const e=t.getSelection();if(e){e.removeAllRanges();const t=r.createRange();t.selectNodeContents(r.body),e.addRange(t),r.execCommand("copy"),e.removeAllRanges()}}}catch(e){console.error("Copy failed:",e),navigator.clipboard.writeText(n)}},children:x("Kopiera")})]})})]})]})};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as e}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 a from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as l}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as c}from"../node_modules/@griffel/core/index.esm.js";import{tokens as m}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 v}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js";import{SlideText24Filled as b,SlideText24Regular as k}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js";import{Whiteboard24Filled as x,Whiteboard24Regular as O}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js";const C=l({footer:{...c.padding("14px"),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:m.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...c.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),N=()=>{const l=C(),c=i(),[N,y]=t(null),{t:I}=a(),
|
|
1
|
+
import{jsx as o,jsxs as e}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 a from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as l}from"../node_modules/@griffel/react/makeStyles.esm.js";import{shorthands as c}from"../node_modules/@griffel/core/index.esm.js";import{tokens as m}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 v}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js";import{SlideText24Filled as b,SlideText24Regular as k}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-14.js";import{Whiteboard24Filled as x,Whiteboard24Regular as O}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-18.js";const C=l({footer:{...c.padding("14px"),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:m.colorNeutralForegroundOnBrand,height:"24px",width:"24px",...c.borderWidth("0")},link:{textDecoration:"none",color:"inherit",display:"flex",flexDirection:"column",alignItems:"center","&.selected":{border:"none"},"&:hover":{textDecoration:"none"}},buttonText:{fontSize:"12px"}}),N=()=>{const l=C(),c=i(),[N,y]=t(null),{t:I}=a(),P={backgroundColor:r("APP_FOOTER_COLOR")||m.colorBrandBackground,color:r("APP_FOOTER_TEXT_COLOR")||m.colorNeutralForegroundOnBrand},S=r("APP_FOOTER_SELECTED_COLOR")||void 0;return s((()=>{const o=c.pathname;"/"===o?y("home"):"/chat"===o?y("chat"):"/new"===o?y("save"):"/menu"===o?y("menu"):"/log"===o?y("log"):"/canvas"===o?y("canvas"):"/snap"===o&&y("snap")}),[c]),s((()=>{N&&console.log(`footer-button: ${N}`)}),[N]),o("footer",{className:l.footer,style:P,children:e("div",{className:l.container,children:[e(n,{to:"/",className:`${l.link} ${"home"===N?"selected":""}`,onClick:()=>y("home"),style:"home"===N?{color:S}:void 0,children:[o("home"===N?p:d,{}),o("p",{className:l.buttonText,children:I("Hem")})]}),!r("HIDE_CHAT_BUTTON")&&e(n,{to:"/chat",className:`${l.link} ${"chat"===N?"selected":""}`,onClick:()=>y("chat"),style:"chat"===N?{color:S}:void 0,children:[o("chat"===N?u:j,{}),o("p",{className:l.buttonText,children:I(r("APP_CHAT_TITLE")||"Chatt")})]}),!r("HIDE_SAVE_BUTTON")&&e(n,{to:"/new",className:`${l.link} ${"save"===N?"selected":""}`,onClick:()=>y("save"),style:"save"===N?{color:S}:void 0,children:[o("save"===N?h:g,{}),o("p",{className:l.buttonText,children:I(r("APP_SAVE_TITLE")||"Spara")})]}),r("SHOW_SNAP_BUTTON")&&e(n,{to:"/snap",className:`${l.link} ${"snap"===N?"selected":""}`,onClick:()=>y("snap"),style:"snap"===N?{color:S}:void 0,children:[o("snap"===N?T:v,{}),o("p",{className:l.buttonText,children:I("Snap")})]}),r("SHOW_LOGBOOK_BUTTON")&&e(n,{to:"/log",className:`${l.link} ${"log"===N?"selected":""}`,onClick:()=>y("log"),style:"log"===N?{color:S}:void 0,children:[o("log"===N?b:k,{}),o("p",{className:l.buttonText,children:I(r("APP_LOGBOOK_TITLE")||"Loggbok")})]}),r("SHOW_CANVAS_BUTTON")&&e(n,{to:"/canvas",className:`${l.link} ${"canvas"===N?"selected":""}`,onClick:()=>y("canvas"),style:"canvas"===N?{color:S}:void 0,children:[o("canvas"===N?x:O,{}),o("p",{className:l.buttonText,children:I("Kanvas")})]}),!r("HIDE_MENU_BUTTON")&&e(n,{to:"/menu",className:`${l.link} ${"menu"===N?"selected":""}`,onClick:()=>y("menu"),style:"menu"===N?{color:S}:void 0,children:[o("menu"===N?_:f,{}),o("p",{className:l.buttonText,children:I("Meny")})]})]})})};export{N as Footer,N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlView.d.ts","sourceRoot":"","sources":["../../../src/components/HtmlView.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"HtmlView.d.ts","sourceRoot":"","sources":["../../../src/components/HtmlView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,UAAU,aAAa;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,IAAI,CAAC;CACxB;AAgDD,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8RrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -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"../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 i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as
|
|
1
|
+
import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useRef as o,useState as r,useEffect as n}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 i from"../hooks/useLocalization.js";import"../hooks/useAppStyles.js";import{makeStyles as s}from"../node_modules/@griffel/react/makeStyles.esm.js";import{Menu as a}from"../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js";import{MenuTrigger as c}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 m}from"../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js";import{MenuPopover as p}from"../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js";import{MenuList as u}from"../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js";import{MenuItem as d}from"../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js";import{PrintRegular as h}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js";import{tokens as g}from"../node_modules/@fluentui/tokens/lib/tokens.js";import{DismissRegular as f,CopyRegular as j}from"../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js";const b=s({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:g.colorNeutralBackground1,boxShadow:g.shadow16}}),w=({html:s,onDismiss:g})=>{const w=o(null),y=o(null),[v,x]=r(1),C=b(),{t:M}=i();n((()=>{const t=t=>{try{const e=t.contentDocument||t.contentWindow?.document;if(!e)return;if(e.getElementById("print-color-preserve-styles"))return;const o=e.createElement("style");o.id="print-color-preserve-styles",o.textContent="\n @media print {\n /* Force browsers to preserve colors when printing */\n * {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n color-adjust: exact !important;\n }\n \n /* Ensure backgrounds and colors are preserved */\n body, html {\n -webkit-print-color-adjust: exact !important;\n print-color-adjust: exact !important;\n color-adjust: exact !important;\n }\n }\n ",e.head.appendChild(o)}catch(t){console.warn("Failed to inject print styles into iframe:",t)}},e=w.current,o=y.current;let r,n;return e&&(r=()=>t(e),e.addEventListener("load",r),"complete"===e.contentDocument?.readyState&&t(e)),o&&(n=()=>t(o),o.addEventListener("load",n),"complete"===o.contentDocument?.readyState&&t(o)),()=>{e&&r&&e.removeEventListener("load",r),o&&n&&o.removeEventListener("load",n)}}),[s]);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));w.current?.setAttribute("data-initial-distance",r.toString()),w.current?.setAttribute("data-initial-scale",v.toString())}},onTouchMove:t=>{if(2===t.touches.length){const e=t.touches[0],o=t.touches[1],r=parseFloat(w.current?.getAttribute("data-initial-distance")||"0"),n=parseFloat(w.current?.getAttribute("data-initial-scale")||"1"),i=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(n*(i/r),.5),3);x(t),w.current&&(w.current.style.transform=`scale(${t})`),y.current&&(y.current.style.transform=`scale(${t})`)}}},onTouchEnd:()=>{w.current?.removeAttribute("data-initial-distance"),w.current?.removeAttribute("data-initial-scale")},children:[e("iframe",{ref:w,className:C.iframe,title:"html",srcDoc:s}),e("iframe",{ref:y,className:C.iframe2,title:"html",srcDoc:s})," ",t(a,{children:[e(c,{children:e(l,{icon:e(m,{}),className:C.menuButton})}),e(p,{className:C.menuPopover,children:t(u,{children:[e(d,{icon:e(f,{}),onClick:g,children:M("Stäng")}),e(d,{icon:e(h,{}),onClick:()=>{w.current&&w.current.contentWindow?.print()},children:M("Skriv ut")}),e(d,{icon:e(j,{}),onClick:async()=>{if(y.current)try{const t=y.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 n=o.createElement("style");n.textContent=r,o.head.appendChild(n);const i=o.documentElement.outerHTML,s=o.body.innerText,a=document.createElement("div");a.innerHTML=i;const c=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,c).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(s)}},children:M("Kopiera")})]})})]})]})};export{w as default};
|