codicent-app-sdk 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/pages/Home.d.ts +2 -0
- package/dist/cjs/pages/Home.d.ts.map +1 -1
- package/dist/cjs/pages/Home.js +1 -1
- package/dist/cjs/pages/Menu.d.ts +2 -0
- package/dist/cjs/pages/Menu.d.ts.map +1 -1
- package/dist/cjs/pages/Menu.js +1 -1
- package/dist/esm/pages/Home.d.ts +2 -0
- package/dist/esm/pages/Home.d.ts.map +1 -1
- package/dist/esm/pages/Home.js +1 -1
- package/dist/esm/pages/Menu.d.ts +2 -0
- package/dist/esm/pages/Menu.d.ts.map +1 -1
- package/dist/esm/pages/Menu.js +1 -1
- package/dist/index.d.ts +4 -0
- package/package.json +1 -1
package/dist/cjs/pages/Home.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ export interface HomePageProps {
|
|
|
35
35
|
buttonStyles?: HomeButtonStyles;
|
|
36
36
|
/** App name used when sending an invite request. */
|
|
37
37
|
appName?: string;
|
|
38
|
+
/** URL for a support link shown at the bottom of the home screen. */
|
|
39
|
+
supportUrl?: string;
|
|
38
40
|
}
|
|
39
41
|
export declare const Home: React.FC<HomePageProps>;
|
|
40
42
|
export default Home;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../../../src/pages/Home.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../../../src/pages/Home.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA2BnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAA+D,MAAM,UAAU,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAmCD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmJD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sGAAsG;IACtG,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gHAAgH;IAChH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmbxC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/cjs/pages/Home.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("@fluentui/react-components"),n=require("@fluentui/react-icons"),i=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var s=require("../components/Button.js");require("../components/CompoundButton.js");var o=require("../components/Title.js"),a=require("../components/Text.js"),l=require("../components/Spinner.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var c=require("../hooks/useStateWithLocalStorage.js");require("../services/codicent.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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js");var u=require("../components/Content.js"),d=require("../components/Page.js");require("./QrScan.js");var p=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var m=require("../hooks/useCodicentState.js");require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var g=require("../components/UrlProcessor.js");require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js");var j=require("../components/BulkUploadDialog.js");function h(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js");var x=h(n);const q=t=>{if(!t)return null;const r=x[t];if(r&&("function"==typeof r||"object"==typeof r))try{return e.jsx(r,{})}catch{return null}return null},v=t=>{switch(t){case"Start Your CV AI Assistant":return e.jsx(n.Rocket24Regular,{});case"Smart CV Matching":return e.jsx(n.Briefcase24Regular,{});case"Enhance & Optimize CVs":return e.jsx(n.Sparkle24Regular,{});case"View CV Database":return e.jsx(n.Database24Regular,{});case"Create Job Requirements":return e.jsx(n.Target24Regular,{});case"Chat with CV AI":return e.jsx(n.Chat24Regular,{});default:return null}},f=r.makeStyles({main:{flexGrow:1,...r.shorthands.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...r.shorthands.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...r.shorthands.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"}}),b=({state:h,audio:x,voice:b,buttons:k,backgroundImageUrl:C,welcomeText:S,slogan:w,indexTitle:y,developerMode:A,onEditClick:I,buttonStyles:D={},appName:P})=>{const{selectedApp:T,nickname:B,apps:N,name:z}=h.context,{service:M,error:R,stateMachine:_,currentStateName:E,fixAppUrl:F}=h,L=f(),[W,$]=c.default("app-buttons_"+T,[]),[U,V]=t.useState(!1),[O,H]=t.useState(!1),[Q,Y]=t.useState([]),[G,K]=t.useState(""),[J,X]=t.useState(""),[Z,ee]=t.useState(""),[te,re]=t.useState(new Set),{updating:ne,welcomeStatusText:ie}=m.default(_),{t:se}=p.default();t.useEffect((()=>{void 0!==k?$(k):T&&M.getAppButtons().then((e=>$(e))).catch(console.warn)}),[M,$,T,k]);const oe=e=>{e.preventDefault(),e.stopPropagation()},ae=!T||"hasAccess"!==E,le=!T||"hasAccess"!==E,ce=T&&"hasAccess"===E,ue=!T&&"hasAccess"===E&&N.length>1,de=!R&&!T&&!P,pe="noAccess"===E&&(1===N.length||!!P),me=T&&"hasAccess"===E;return e.jsx(d.Page,{hideHeader:ae,hideFooter:le,audio:x,voice:b,children:e.jsxs("div",{className:L.root,style:{backgroundImage:C?`url(${C})`:void 0},children:[A&&I&&"hasAccess"===E&&e.jsx("div",{className:L.editButton,children:e.jsx(r.Tooltip,{content:se("Edit settings")||"Edit settings",relationship:"label",children:e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.Edit24Regular,{}),"aria-label":se("Edit settings")||"Edit settings",onClick:I,size:"small"})})}),e.jsx("div",{className:L.item,children:e.jsx("div",{className:L.item,children:e.jsxs("div",{className:L.buttonsList,children:[ue&&e.jsxs(e.Fragment,{children:[e.jsx(o.Title,{children:se("Välkommen, vart vill du gå?")}),N.map(((t,n)=>e.jsx("div",{children:e.jsx(s.Button,{size:"large",appearance:"primary",onClick:()=>_.setSelectedApp(t.id),children:e.jsxs("div",{className:L.buttonContent,children:[t.logo&&e.jsx(r.Image,{src:t.logo,height:24}),t.title||t.id]})})},"codicent_button_"+n)))]}),de&&e.jsxs(e.Fragment,{children:[e.jsx(o.Title,{children:se("Skapa ny?")}),e.jsx(a.Text,{size:400,children:se("Här går du vidare för att skapa din egna privata digitala assistent.")}),e.jsx(s.Button,{size:"large",appearance:"primary",onClick:()=>_.update(),children:se("Kör!")})]}),pe&&e.jsx("div",{children:e.jsxs(u.default,{children:[e.jsx(o.Title,{children:`${se("Välkommen till")} ${y}`}),!U&&e.jsx(a.Text,{size:400,children:se("Du är inte medlem än. Skicka begäran för att komma in!")}),!U&&e.jsx(s.Button,{size:"large",appearance:"primary",onClick:async()=>{if(V(!0),!P)return console.error("appName prop not provided."),alert("appName not defined."),void V(!1);await M.requestInvite(B,P)?alert(se("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(V(!1),alert(se("Misslyckades att skicka begäran. Försök igen senare.")))},children:se("Skicka begäran")}),!U&&e.jsxs(a.Text,{size:300,children:[se("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e.jsx(i.Link,{to:"/logout",children:se("Logga ut")})," ",se("och sedan in igen för att komma igång.")]}),U&&e.jsx(a.Text,{size:400,children:se("Begäran skickad till ägaren.")}),U&&e.jsx(s.Button,{size:"large",onClick:()=>{window.location.href="./"},children:se("Kontrollera åtkomst")})]})}),me&&e.jsxs("div",{className:L.welcomeInfo,children:[e.jsx(a.Text,{weight:"semibold",size:500,align:"center",children:S?S.replace("{{username}}",z||B||""):se("Välkommen")}),w&&e.jsx(a.Text,{weight:"semibold",italic:!0,size:400,align:"center",children:w}),ne&&e.jsx(l.Spinner,{}),!ne&&ie&&e.jsx(a.Text,{size:400,align:"center",children:se(ie)})]}),ce&&W.map(((t,n)=>{const i="file_drop"===t.type,o="multi_option"===t.type,a=t.options&&Array.isArray(t.options)?t.options:[],l=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){K(t[0]?.trim()||""),X(t[1]?.trim()||""),ee(t[2]?.trim()||"");const e=t[3]?.trim()||"";Y(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{K(""),X(""),ee("");const e=t[0]?.trim()||"";Y(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}H(!0)},c=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&b?.updateInstructions(t),b?.connectConversation()}else e.startsWith("upload:")?l(e):e.startsWith("app:")?t(e.replace("app:",F("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e.jsx("div",{children:i?e.jsx("div",{className:`${L.item} ${te.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${D.textColor||"#ccc"}`,backgroundColor:te.has(n)?D.activeColor||void 0:D.backgroundColor||void 0,color:D.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),re((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),re((e=>{const r=new Set(e);return r.delete(t),r}))})(e,n),onDragOver:oe,onDrop:e=>(async(e,t,r)=>{e.preventDefault(),e.stopPropagation(),re((e=>{const t=new Set(e);return t.delete(r),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),r=(e.length>=4?e[3]:e[0])?.trim()||"";i=r?r.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const r=await M.uploadFile(e.name,t);if(!r)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await M.sendMessage(`@${T} ${n}\n\n${e.name}\n#file:${r}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,t,n),onClick:()=>t.url.startsWith("upload:")&&l(t.url),children:e.jsxs("div",{className:L.buttonContentColumn,children:[e.jsxs("div",{className:L.buttonContentRow,children:[q(t.icon)||v(t.title),e.jsx("span",{children:se(t.title)})]}),e.jsx("div",{className:L.buttonSubtitle,children:te.has(n)?se("Drop files here..."):se("Drag files here or click")})]})}):o?e.jsxs(r.Menu,{children:[e.jsx(r.MenuTrigger,{children:e.jsx(r.MenuButton,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:D.backgroundColor||void 0,color:D.textColor||void 0,padding:"1.2rem 1rem"},children:e.jsxs("div",{className:L.buttonContentColumn,children:[e.jsxs("div",{className:L.buttonContentRow,children:[q(t.icon)||v(t.title),e.jsx("span",{children:se(t.title)})]}),t.subtitle&&e.jsx("div",{className:L.buttonSubtitle,children:se(t.subtitle)})]})})}),e.jsx(r.MenuPopover,{className:L.menuPopover,children:e.jsx(r.MenuList,{children:a.map(((t,i)=>e.jsx(g.UrlProcessor,{service:M,children:n=>e.jsx(r.MenuItem,{onClick:()=>c(t.url,n),children:e.jsxs("div",{children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[q(t.icon)&&e.jsx("div",{className:L.menuItemIconBadge,children:q(t.icon)}),e.jsx("span",{className:L.menuItemTitle,children:se(t.title)})]}),t.subtitle&&e.jsx("div",{className:L.menuItemSubtitle,children:se(t.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e.jsx(g.UrlProcessor,{service:M,children:r=>e.jsx(s.Button,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:D.backgroundColor||void 0,color:D.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>c(t.url,r),children:e.jsxs("div",{className:L.buttonContentColumn,children:[e.jsxs("div",{className:L.buttonContentRow,children:[q(t.icon)||v(t.title),e.jsx("span",{children:se(t.title)})]}),t.subtitle&&e.jsx("div",{className:L.buttonSubtitle,children:se(t.subtitle)})]})})})},"button_"+n)}))]})})}),R&&e.jsx("div",{className:"error",children:R}),e.jsx(j.default,{project:T||"",hidden:!O,onDismiss:()=>{H(!1),K(""),X(""),ee(""),Y([])},sendMessage:async e=>{try{return await M.sendMessage(e)}catch{return}},onUploaded:()=>{H(!1),K(""),X(""),ee(""),Y([])},service:M,tags:Q,title:G,description:J,dropText:Z})]})})};exports.Home=b,exports.default=b;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("@fluentui/react-components"),n=require("@fluentui/react-icons"),i=require("react-router-dom");require("../components/Markdown.js"),require("../components/Textarea.js");var s=require("../components/Button.js");require("../components/CompoundButton.js");var o=require("../components/Title.js"),a=require("../components/Text.js"),l=require("../components/Spinner.js");require("../components/TextHeader.js"),require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js");var c=require("../hooks/useStateWithLocalStorage.js");require("../services/codicent.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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Menu.js"),require("./Log.js"),require("./Login.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js");var u=require("../components/Content.js"),d=require("../components/Page.js");require("./QrScan.js");var p=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var m=require("../hooks/useCodicentState.js");require("../hooks/useAppStyles.js"),require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js"),require("../components/Profile.js"),require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js");var g=require("../components/UrlProcessor.js");require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js"),require("../components/LanguageSelector.js"),require("../components/ListView.js"),require("../components/RecordModal.js");var j=require("../components/BulkUploadDialog.js");function h(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js");var x=h(n);const f=t=>{if(!t)return null;const r=x[t];if(r&&("function"==typeof r||"object"==typeof r))try{return e.jsx(r,{})}catch{return null}return null},v=t=>{switch(t){case"Start Your CV AI Assistant":return e.jsx(n.Rocket24Regular,{});case"Smart CV Matching":return e.jsx(n.Briefcase24Regular,{});case"Enhance & Optimize CVs":return e.jsx(n.Sparkle24Regular,{});case"View CV Database":return e.jsx(n.Database24Regular,{});case"Create Job Requirements":return e.jsx(n.Target24Regular,{});case"Chat with CV AI":return e.jsx(n.Chat24Regular,{});default:return null}},q=r.makeStyles({main:{flexGrow:1,...r.shorthands.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...r.shorthands.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...r.shorthands.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"},supportLink:{position:"absolute",top:"80px",right:"52px",zIndex:10,display:"flex",alignItems:"center",gap:"4px",fontSize:"0.8rem",opacity:.6,textDecoration:"none",color:"inherit",pointerEvents:"auto","&:hover":{opacity:1}}}),b=({state:h,audio:x,voice:b,buttons:k,backgroundImageUrl:C,welcomeText:S,slogan:y,indexTitle:w,developerMode:A,onEditClick:I,buttonStyles:D={},appName:N,supportUrl:P})=>{const{selectedApp:T,nickname:B,apps:z,name:M}=h.context,{service:R,error:_,stateMachine:E,currentStateName:L,fixAppUrl:F}=h,W=q(),[U,$]=c.default("app-buttons_"+T,[]),[V,O]=t.useState(!1),[H,Q]=t.useState(!1),[Y,G]=t.useState([]),[K,J]=t.useState(""),[X,Z]=t.useState(""),[ee,te]=t.useState(""),[re,ne]=t.useState(new Set),{updating:ie,welcomeStatusText:se}=m.default(E),{t:oe}=p.default();t.useEffect((()=>{void 0!==k?$(k):T&&R.getAppButtons().then((e=>$(e))).catch(console.warn)}),[R,$,T,k]);const ae=e=>{e.preventDefault(),e.stopPropagation()},le=!T||"hasAccess"!==L,ce=!T||"hasAccess"!==L,ue=T&&"hasAccess"===L,de=!T&&"hasAccess"===L&&z.length>1,pe=!_&&!T&&!N,me="noAccess"===L&&(1===z.length||!!N),ge=T&&"hasAccess"===L;return e.jsx(d.Page,{hideHeader:le,hideFooter:ce,audio:x,voice:b,children:e.jsxs("div",{className:W.root,style:{backgroundImage:C?`url(${C})`:void 0},children:[P&&e.jsx("a",{href:P,target:"_blank",rel:"noopener noreferrer",className:W.supportLink,children:e.jsx(n.QuestionCircle24Regular,{})}),A&&I&&"hasAccess"===L&&e.jsx("div",{className:W.editButton,children:e.jsx(r.Tooltip,{content:oe("Edit settings")||"Edit settings",relationship:"label",children:e.jsx(r.Button,{appearance:"subtle",icon:e.jsx(n.Edit24Regular,{}),"aria-label":oe("Edit settings")||"Edit settings",onClick:I,size:"small"})})}),e.jsx("div",{className:W.item,children:e.jsx("div",{className:W.item,children:e.jsxs("div",{className:W.buttonsList,children:[de&&e.jsxs(e.Fragment,{children:[e.jsx(o.Title,{children:oe("Välkommen, vart vill du gå?")}),z.map(((t,n)=>e.jsx("div",{children:e.jsx(s.Button,{size:"large",appearance:"primary",onClick:()=>E.setSelectedApp(t.id),children:e.jsxs("div",{className:W.buttonContent,children:[t.logo&&e.jsx(r.Image,{src:t.logo,height:24}),t.title||t.id]})})},"codicent_button_"+n)))]}),pe&&e.jsxs(e.Fragment,{children:[e.jsx(o.Title,{children:oe("Skapa ny?")}),e.jsx(a.Text,{size:400,children:oe("Här går du vidare för att skapa din egna privata digitala assistent.")}),e.jsx(s.Button,{size:"large",appearance:"primary",onClick:()=>E.update(),children:oe("Kör!")})]}),me&&e.jsx("div",{children:e.jsxs(u.default,{children:[e.jsx(o.Title,{children:`${oe("Välkommen till")} ${w}`}),!V&&e.jsx(a.Text,{size:400,children:oe("Du är inte medlem än. Skicka begäran för att komma in!")}),!V&&e.jsx(s.Button,{size:"large",appearance:"primary",onClick:async()=>{if(O(!0),!N)return console.error("appName prop not provided."),alert("appName not defined."),void O(!1);await R.requestInvite(B,N)?alert(oe("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(O(!1),alert(oe("Misslyckades att skicka begäran. Försök igen senare.")))},children:oe("Skicka begäran")}),!V&&e.jsxs(a.Text,{size:300,children:[oe("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e.jsx(i.Link,{to:"/logout",children:oe("Logga ut")})," ",oe("och sedan in igen för att komma igång.")]}),V&&e.jsx(a.Text,{size:400,children:oe("Begäran skickad till ägaren.")}),V&&e.jsx(s.Button,{size:"large",onClick:()=>{window.location.href="./"},children:oe("Kontrollera åtkomst")})]})}),ge&&e.jsxs("div",{className:W.welcomeInfo,children:[e.jsx(a.Text,{weight:"semibold",size:500,align:"center",children:S?S.replace("{{username}}",M||B||""):oe("Välkommen")}),y&&e.jsx(a.Text,{weight:"semibold",italic:!0,size:400,align:"center",children:y}),ie&&e.jsx(l.Spinner,{}),!ie&&se&&e.jsx(a.Text,{size:400,align:"center",children:oe(se)})]}),ue&&U.map(((t,n)=>{const i="file_drop"===t.type,o="multi_option"===t.type,a=t.options&&Array.isArray(t.options)?t.options:[],l=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){J(t[0]?.trim()||""),Z(t[1]?.trim()||""),te(t[2]?.trim()||"");const e=t[3]?.trim()||"";G(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{J(""),Z(""),te("");const e=t[0]?.trim()||"";G(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}Q(!0)},c=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&b?.updateInstructions(t),b?.connectConversation()}else e.startsWith("upload:")?l(e):e.startsWith("app:")?t(e.replace("app:",F("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e.jsx("div",{children:i?e.jsx("div",{className:`${W.item} ${re.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${D.textColor||"#ccc"}`,backgroundColor:re.has(n)?D.activeColor||void 0:D.backgroundColor||void 0,color:D.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ne((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ne((e=>{const r=new Set(e);return r.delete(t),r}))})(e,n),onDragOver:ae,onDrop:e=>(async(e,t,r)=>{e.preventDefault(),e.stopPropagation(),ne((e=>{const t=new Set(e);return t.delete(r),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),r=(e.length>=4?e[3]:e[0])?.trim()||"";i=r?r.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const r=await R.uploadFile(e.name,t);if(!r)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await R.sendMessage(`@${T} ${n}\n\n${e.name}\n#file:${r}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,t,n),onClick:()=>t.url.startsWith("upload:")&&l(t.url),children:e.jsxs("div",{className:W.buttonContentColumn,children:[e.jsxs("div",{className:W.buttonContentRow,children:[f(t.icon)||v(t.title),e.jsx("span",{children:oe(t.title)})]}),e.jsx("div",{className:W.buttonSubtitle,children:re.has(n)?oe("Drop files here..."):oe("Drag files here or click")})]})}):o?e.jsxs(r.Menu,{children:[e.jsx(r.MenuTrigger,{children:e.jsx(r.MenuButton,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:D.backgroundColor||void 0,color:D.textColor||void 0,padding:"1.2rem 1rem"},children:e.jsxs("div",{className:W.buttonContentColumn,children:[e.jsxs("div",{className:W.buttonContentRow,children:[f(t.icon)||v(t.title),e.jsx("span",{children:oe(t.title)})]}),t.subtitle&&e.jsx("div",{className:W.buttonSubtitle,children:oe(t.subtitle)})]})})}),e.jsx(r.MenuPopover,{className:W.menuPopover,children:e.jsx(r.MenuList,{children:a.map(((t,i)=>e.jsx(g.UrlProcessor,{service:R,children:n=>e.jsx(r.MenuItem,{onClick:()=>c(t.url,n),children:e.jsxs("div",{children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[f(t.icon)&&e.jsx("div",{className:W.menuItemIconBadge,children:f(t.icon)}),e.jsx("span",{className:W.menuItemTitle,children:oe(t.title)})]}),t.subtitle&&e.jsx("div",{className:W.menuItemSubtitle,children:oe(t.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e.jsx(g.UrlProcessor,{service:R,children:r=>e.jsx(s.Button,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:D.backgroundColor||void 0,color:D.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>c(t.url,r),children:e.jsxs("div",{className:W.buttonContentColumn,children:[e.jsxs("div",{className:W.buttonContentRow,children:[f(t.icon)||v(t.title),e.jsx("span",{children:oe(t.title)})]}),t.subtitle&&e.jsx("div",{className:W.buttonSubtitle,children:oe(t.subtitle)})]})})})},"button_"+n)}))]})})}),P&&e.jsx("a",{href:P,target:"_blank",rel:"noopener noreferrer",className:W.supportLink,children:e.jsx(n.QuestionCircle24Regular,{})}),_&&e.jsx("div",{className:"error",children:_}),e.jsx(j.default,{project:T||"",hidden:!H,onDismiss:()=>{Q(!1),J(""),Z(""),te(""),G([])},sendMessage:async e=>{try{return await R.sendMessage(e)}catch{return}},onUploaded:()=>{Q(!1),J(""),Z(""),te(""),G([])},service:R,tags:Y,title:K,description:X,dropText:ee})]})})};exports.Home=b,exports.default=b;
|
package/dist/cjs/pages/Menu.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface MenuPageProps {
|
|
|
17
17
|
stripeCustomerPortal?: string;
|
|
18
18
|
/** Show the app selector widget (multi-app instances). */
|
|
19
19
|
showAppSelector?: boolean;
|
|
20
|
+
/** URL for a support link shown at the top of the menu list. */
|
|
21
|
+
supportUrl?: string;
|
|
20
22
|
}
|
|
21
23
|
export declare const Menu: React.FC<MenuPageProps>;
|
|
22
24
|
export default Menu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/pages/Menu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA8B3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/pages/Menu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA8B3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuIxC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/cjs/pages/Menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),t=require("react-router-dom"),o=require("../components/Markdown.js");require("../components/Textarea.js");var i=require("../components/Button.js");require("../components/CompoundButton.js"),require("../components/Spinner.js");var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@fluentui/react-components"),t=require("react-router-dom"),o=require("../components/Markdown.js");require("../components/Textarea.js");var i=require("../components/Button.js");require("../components/CompoundButton.js"),require("../components/Spinner.js");var n=require("../components/TextHeader.js");require("../components/TypingIndicator.js"),require("../components/Dialog.js"),require("../components/ChatInput.js"),require("../components/CombinedPlaceholderDialog.js"),require("../components/ChatMessage.js"),require("../components/Header.js"),require("react"),require("@fluentui/react-icons"),require("../services/codicent.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("exceljs"),require("./AppFrame.js"),require("./Canvas.js"),require("./Chat.js"),require("./Compose.js"),require("./Snap.js"),require("./Search.js"),require("./Log.js"),require("./Login.js"),require("./Home.js"),require("./ListPage.js"),require("./CrmPage.js"),require("./CrmPagePersistent.js"),require("./ImageView.js"),require("./FormInvite.js"),require("./FormAccept.js"),require("./Sales.js"),require("./Purchase.js"),require("../components/Content.js");var s=require("../components/Page.js");require("./QrScan.js");var a=require("../hooks/useLocalization.js");require("../components/FileThumbnail.js"),require("react-dom/client"),require("../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js");var u=require("../hooks/useAppStyles.js");require("../components/MessageInput.js"),require("../components/UploadFile.js"),require("../components/SnapFooter.js");var c=require("../components/Profile.js");require("../components/MessageItem.js"),require("../components/AiInput.js"),require("../components/SearchBox.js"),require("../components/DataMessagePicker.js"),require("../components/HtmlView.js"),require("../components/Footer.js"),require("../components/QrCodeDialog.js"),require("../components/QrScanner.js"),require("../components/OfflineMessage.js");var l=require("../components/LanguageSelector.js");require("../components/ListView.js"),require("../components/RecordModal.js"),require("../components/BulkUploadDialog.js"),require("../components/CookieBanner.js"),require("../components/audit/AuditCircularProgress.js"),require("../components/audit/AuditHorizontalProgress.js"),require("../components/audit/AuditRoleIndicator.js"),require("../components/audit/AuditUnitSwitcher.js"),require("../components/audit/AuditAnswerCell.js"),require("../components/audit/AuditSearchBar.js"),require("../components/audit/AuditFilterChips.js"),require("../components/audit/AuditFilterBar.js"),require("../components/audit/AuditGroupsProgress.js"),require("../components/audit/AuditSummaryDashboard.js"),require("../components/audit/AuditRequirementDialog.js"),require("../components/audit/AuditUnitExportDialog.js"),require("../components/audit/AuditUnitImportDialog.js"),require("../components/audit/AuditBulkExportDialog.js"),require("../components/audit/AuditBulkUploadDialog.js"),require("../components/audit/AuditSortPresets.js");const p=r.makeStyles({container:{backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",touchAction:"pan-y",margin:"0 auto",maxWidth:"800px"},menu_items:{overflowY:"auto",height:"calc(100vh - 130px)",paddingLeft:"10px",paddingRight:"10px"},divider:{fontSize:"20px",fontWeight:"bold",marginTop:"32px",marginBottom:"20px"},appButton:{margin:"2px"}}),d=({state:d,title:j,aboutText:m,version:q,backgroundImageUrl:g,showHelpButton:h,showLogbookButton:x,stripeCustomerPortal:v,showAppSelector:C=!0,supportUrl:b})=>{const A=t.useNavigate(),B=u.default(),S=p(),{auth:f}=d,{t:k}=a.default(),w=m?m.replace("{{version}}",(()=>{const e=new Date,r=e.toISOString().split("T")[0],t=e.getHours().toString().padStart(2,"0");return q||`v${r}.${t}`})()):void 0;return e.jsx(s.Page,{hideHeader:!0,children:e.jsxs("div",{className:S.container,style:{backgroundImage:g?`url(${g})`:void 0},children:[e.jsx(n.default,{title:j||k("Meny")}),e.jsxs("div",{className:S.menu_items,children:[e.jsx(c.default,{state:d}),e.jsx(l.LanguageSelector,{}),e.jsx("hr",{}),b&&e.jsx("div",{children:e.jsx(i.Button,{icon:"QuestionCircle24Regular",size:"large",className:B.menuButton,onClick:()=>window.open(b,"_blank","noopener,noreferrer"),iconPosition:"after",appearance:"transparent",children:k("Support")})}),e.jsx("div",{children:e.jsx(i.Button,{icon:"ChevronRightFilled",size:"large",className:B.menuButton,onClick:()=>{f.logout(),d.stateMachine.logout()},iconPosition:"after",appearance:"transparent",children:k("Logga ut")})}),v&&e.jsx(i.Button,{icon:"Payment24Regular",size:"large",className:B.menuButton,onClick:()=>window.location.href=v,iconPosition:"after",appearance:"transparent",children:k("Abonnemang")}),C&&d.context.apps&&d.context.apps.length>1&&e.jsxs(e.Fragment,{children:[e.jsx("h3",{children:k("Mina codicents")}),d.context.apps.map((t=>e.jsx(i.Button,{className:S.appButton,image:t.logo?e.jsx(r.Image,{src:t.logo,height:"24px"}):void 0,onClick:()=>d.stateMachine.setSelectedApp(t.id),title:t.title||t.id,children:t.title||t.id},t.id)))]}),x&&e.jsxs(e.Fragment,{children:[e.jsx("hr",{}),e.jsx(i.Button,{className:B.menuButton,icon:"ChevronRightFilled",size:"large",appearance:"subtle",iconPosition:"after",onClick:()=>A("/log"),children:k("Loggboken")})]}),e.jsx("hr",{}),w&&e.jsx(o.default,{content:w}),h&&e.jsxs(e.Fragment,{children:[e.jsx("h3",{children:k("Behöver du hjälp?")}),e.jsx(i.Button,{icon:"QuestionCircle24Regular",className:B.button,size:"large",appearance:"subtle",onClick:()=>A("/help"),children:k("Visa hjälp")})]})]})]})})};exports.Menu=d,exports.default=d;
|
package/dist/esm/pages/Home.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ export interface HomePageProps {
|
|
|
35
35
|
buttonStyles?: HomeButtonStyles;
|
|
36
36
|
/** App name used when sending an invite request. */
|
|
37
37
|
appName?: string;
|
|
38
|
+
/** URL for a support link shown at the bottom of the home screen. */
|
|
39
|
+
supportUrl?: string;
|
|
38
40
|
}
|
|
39
41
|
export declare const Home: React.FC<HomePageProps>;
|
|
40
42
|
export default Home;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../../../src/pages/Home.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Home.d.ts","sourceRoot":"","sources":["../../../src/pages/Home.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AA2BnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAA+D,MAAM,UAAU,CAAC;AACrH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAmCD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmJD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sGAAsG;IACtG,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gHAAgH;IAChH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmbxC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/esm/pages/Home.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{makeStyles as r,shorthands as a,Tooltip as s,Button as l,Image as c,Menu as p,MenuTrigger as m,MenuButton as d,MenuPopover as u,MenuList as h,MenuItem as g}from"@fluentui/react-components";import*as f from"@fluentui/react-icons";import{Edit24Regular as j,Chat24Regular as b,Target24Regular as v,Database24Regular as x,Sparkle24Regular as k,Briefcase24Regular as C,Rocket24Regular as w}from"@fluentui/react-icons";import{Link as y}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as S}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as A}from"../components/Title.js";import{Text as I}from"../components/Text.js";import{Spinner as D}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import N from"../hooks/useStateWithLocalStorage.js";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"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import z from"../components/Content.js";import{Page as P}from"../components/Page.js";import"./QrScan.js";import B from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import M from"../hooks/useCodicentState.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{UrlProcessor as _}from"../components/UrlProcessor.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import T from"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const E=t=>{if(!t)return null;const o=f[t];if(o&&("function"==typeof o||"object"==typeof o))try{return e(o,{})}catch{return null}return null},F=t=>{switch(t){case"Start Your CV AI Assistant":return e(w,{});case"Smart CV Matching":return e(C,{});case"Enhance & Optimize CVs":return e(k,{});case"View CV Database":return e(x,{});case"Create Job Requirements":return e(v,{});case"Chat with CV AI":return e(b,{});default:return null}},W=r({main:{flexGrow:1,...a.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...a.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...a.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"}}),L=({state:r,audio:a,voice:f,buttons:b,backgroundImageUrl:v,welcomeText:x,slogan:k,indexTitle:C,developerMode:w,onEditClick:L,buttonStyles:$={},appName:R})=>{const{selectedApp:V,nickname:U,apps:H,name:q}=r.context,{service:O,error:Q,stateMachine:Y,currentStateName:G,fixAppUrl:K}=r,J=W(),[X,Z]=N("app-buttons_"+V,[]),[ee,te]=n(!1),[oe,ne]=n(!1),[ie,re]=n([]),[ae,se]=n(""),[le,ce]=n(""),[pe,me]=n(""),[de,ue]=n(new Set),{updating:he,welcomeStatusText:ge}=M(Y),{t:fe}=B();i((()=>{void 0!==b?Z(b):V&&O.getAppButtons().then((e=>Z(e))).catch(console.warn)}),[O,Z,V,b]);const je=e=>{e.preventDefault(),e.stopPropagation()},be=!V||"hasAccess"!==G,ve=!V||"hasAccess"!==G,xe=V&&"hasAccess"===G,ke=!V&&"hasAccess"===G&&H.length>1,Ce=!Q&&!V&&!R,we="noAccess"===G&&(1===H.length||!!R),ye=V&&"hasAccess"===G;return e(P,{hideHeader:be,hideFooter:ve,audio:a,voice:f,children:t("div",{className:J.root,style:{backgroundImage:v?`url(${v})`:void 0},children:[w&&L&&"hasAccess"===G&&e("div",{className:J.editButton,children:e(s,{content:fe("Edit settings")||"Edit settings",relationship:"label",children:e(l,{appearance:"subtle",icon:e(j,{}),"aria-label":fe("Edit settings")||"Edit settings",onClick:L,size:"small"})})}),e("div",{className:J.item,children:e("div",{className:J.item,children:t("div",{className:J.buttonsList,children:[ke&&t(o,{children:[e(A,{children:fe("Välkommen, vart vill du gå?")}),H.map(((o,n)=>e("div",{children:e(S,{size:"large",appearance:"primary",onClick:()=>Y.setSelectedApp(o.id),children:t("div",{className:J.buttonContent,children:[o.logo&&e(c,{src:o.logo,height:24}),o.title||o.id]})})},"codicent_button_"+n)))]}),Ce&&t(o,{children:[e(A,{children:fe("Skapa ny?")}),e(I,{size:400,children:fe("Här går du vidare för att skapa din egna privata digitala assistent.")}),e(S,{size:"large",appearance:"primary",onClick:()=>Y.update(),children:fe("Kör!")})]}),we&&e("div",{children:t(z,{children:[e(A,{children:`${fe("Välkommen till")} ${C}`}),!ee&&e(I,{size:400,children:fe("Du är inte medlem än. Skicka begäran för att komma in!")}),!ee&&e(S,{size:"large",appearance:"primary",onClick:async()=>{if(te(!0),!R)return console.error("appName prop not provided."),alert("appName not defined."),void te(!1);await O.requestInvite(U,R)?alert(fe("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(te(!1),alert(fe("Misslyckades att skicka begäran. Försök igen senare.")))},children:fe("Skicka begäran")}),!ee&&t(I,{size:300,children:[fe("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e(y,{to:"/logout",children:fe("Logga ut")})," ",fe("och sedan in igen för att komma igång.")]}),ee&&e(I,{size:400,children:fe("Begäran skickad till ägaren.")}),ee&&e(S,{size:"large",onClick:()=>{window.location.href="./"},children:fe("Kontrollera åtkomst")})]})}),ye&&t("div",{className:J.welcomeInfo,children:[e(I,{weight:"semibold",size:500,align:"center",children:x?x.replace("{{username}}",q||U||""):fe("Välkommen")}),k&&e(I,{weight:"semibold",italic:!0,size:400,align:"center",children:k}),he&&e(D,{}),!he&&ge&&e(I,{size:400,align:"center",children:fe(ge)})]}),xe&&X.map(((o,n)=>{const i="file_drop"===o.type,r="multi_option"===o.type,a=o.options&&Array.isArray(o.options)?o.options:[],s=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){se(t[0]?.trim()||""),ce(t[1]?.trim()||""),me(t[2]?.trim()||"");const e=t[3]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{se(""),ce(""),me("");const e=t[0]?.trim()||"";re(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}ne(!0)},l=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&f?.updateInstructions(t),f?.connectConversation()}else e.startsWith("upload:")?s(e):e.startsWith("app:")?t(e.replace("app:",K("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e("div",{children:i?e("div",{className:`${J.item} ${de.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${$.textColor||"#ccc"}`,backgroundColor:de.has(n)?$.activeColor||void 0:$.backgroundColor||void 0,color:$.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const o=new Set(e);return o.delete(t),o}))})(e,n),onDragOver:je,onDrop:e=>(async(e,t,o)=>{e.preventDefault(),e.stopPropagation(),ue((e=>{const t=new Set(e);return t.delete(o),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),o=(e.length>=4?e[3]:e[0])?.trim()||"";i=o?o.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const o=await O.uploadFile(e.name,t);if(!o)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await O.sendMessage(`@${V} ${n}\n\n${e.name}\n#file:${o}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,o,n),onClick:()=>o.url.startsWith("upload:")&&s(o.url),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[E(o.icon)||F(o.title),e("span",{children:fe(o.title)})]}),e("div",{className:J.buttonSubtitle,children:de.has(n)?fe("Drop files here..."):fe("Drag files here or click")})]})}):r?t(p,{children:[e(m,{children:e(d,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:$.backgroundColor||void 0,color:$.textColor||void 0,padding:"1.2rem 1rem"},children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[E(o.icon)||F(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})}),e(u,{className:J.menuPopover,children:e(h,{children:a.map(((o,i)=>e(_,{service:O,children:n=>e(g,{onClick:()=>l(o.url,n),children:t("div",{children:[t("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[E(o.icon)&&e("div",{className:J.menuItemIconBadge,children:E(o.icon)}),e("span",{className:J.menuItemTitle,children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.menuItemSubtitle,children:fe(o.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e(_,{service:O,children:n=>e(S,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:$.backgroundColor||void 0,color:$.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>l(o.url,n),children:t("div",{className:J.buttonContentColumn,children:[t("div",{className:J.buttonContentRow,children:[E(o.icon)||F(o.title),e("span",{children:fe(o.title)})]}),o.subtitle&&e("div",{className:J.buttonSubtitle,children:fe(o.subtitle)})]})})})},"button_"+n)}))]})})}),Q&&e("div",{className:"error",children:Q}),e(T,{project:V||"",hidden:!oe,onDismiss:()=>{ne(!1),se(""),ce(""),me(""),re([])},sendMessage:async e=>{try{return await O.sendMessage(e)}catch{return}},onUploaded:()=>{ne(!1),se(""),ce(""),me(""),re([])},service:O,tags:ie,title:ae,description:le,dropText:pe})]})})};export{L as Home,L as default};
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as o}from"react/jsx-runtime";import{useState as n,useEffect as i}from"react";import{makeStyles as r,shorthands as a,Tooltip as s,Button as l,Image as p,Menu as c,MenuTrigger as m,MenuButton as d,MenuPopover as u,MenuList as h,MenuItem as g}from"@fluentui/react-components";import*as f from"@fluentui/react-icons";import{QuestionCircle24Regular as j,Edit24Regular as b,Chat24Regular as v,Target24Regular as x,Database24Regular as k,Sparkle24Regular as C,Briefcase24Regular as w,Rocket24Regular as y}from"@fluentui/react-icons";import{Link as S}from"react-router-dom";import"../components/Markdown.js";import"../components/Textarea.js";import{Button as A}from"../components/Button.js";import"../components/CompoundButton.js";import{Title as I}from"../components/Title.js";import{Text as D}from"../components/Text.js";import{Spinner as N}from"../components/Spinner.js";import"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import z from"../hooks/useStateWithLocalStorage.js";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"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Menu.js";import"./Log.js";import"./Login.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import P from"../components/Content.js";import{Page as B}from"../components/Page.js";import"./QrScan.js";import _ from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import M from"../hooks/useCodicentState.js";import"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import{UrlProcessor as L}from"../components/UrlProcessor.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import E from"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const T=t=>{if(!t)return null;const o=f[t];if(o&&("function"==typeof o||"object"==typeof o))try{return e(o,{})}catch{return null}return null},F=t=>{switch(t){case"Start Your CV AI Assistant":return e(y,{});case"Smart CV Matching":return e(w,{});case"Enhance & Optimize CVs":return e(C,{});case"View CV Database":return e(k,{});case"Create Job Requirements":return e(x,{});case"Chat with CV AI":return e(v,{});default:return null}},W=r({main:{flexGrow:1,...a.padding("10px"),overflowY:"auto",touchAction:"pan-y"},editButton:{position:"absolute",top:"80px",right:"16px",zIndex:10,background:"transparent",boxShadow:"none",border:"none",cursor:"pointer",padding:0,pointerEvents:"auto"},root:{height:"100%",backgroundPosition:"calc(50%) center",backgroundRepeat:"no-repeat",backgroundSize:"contain",touchAction:"pan-y",pointerEvents:"none"},item:{height:"auto",width:"auto",flexShrink:1},buttonsList:{display:"flex",flexWrap:"wrap",justifyContent:"space-between",flexDirection:"column",alignItems:"center",gap:"1.5rem",...a.padding("10px"),paddingTop:"30px",pointerEvents:"auto"},buttonContent:{display:"flex",alignItems:"center",gap:"8px"},buttonContentColumn:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"4px",width:"100%"},buttonContentRow:{display:"flex",alignItems:"center",gap:"8px","& > svg":{flexShrink:0,width:"24px"}},buttonSubtitle:{fontSize:"0.85em",opacity:.75,fontWeight:"normal",marginTop:"2px",paddingLeft:"32px"},menuPopover:{minWidth:"16rem",borderRadius:"12px",...a.padding("6px"),boxShadow:"0 8px 32px rgba(0,0,0,0.18), 0 2px 8px rgba(0,0,0,0.10)"},menuItemIconBadge:{display:"flex",alignItems:"center",justifyContent:"center",width:"32px",height:"32px",borderRadius:"8px",backgroundColor:"var(--colorBrandBackground2)",color:"var(--colorBrandForeground2)",flexShrink:0},menuItemTitle:{fontWeight:"500",fontSize:"0.95em"},menuItemSubtitle:{fontSize:"0.78em",opacity:.6,paddingLeft:"42px"},welcomeInfo:{display:"flex",flexDirection:"column",gap:"8px",alignItems:"center",textAlign:"center",maxWidth:"20rem",pointerEvents:"auto"},scrollableContent:{overflowY:"auto"},supportLink:{position:"absolute",top:"80px",right:"52px",zIndex:10,display:"flex",alignItems:"center",gap:"4px",fontSize:"0.8rem",opacity:.6,textDecoration:"none",color:"inherit",pointerEvents:"auto","&:hover":{opacity:1}}}),$=({state:r,audio:a,voice:f,buttons:v,backgroundImageUrl:x,welcomeText:k,slogan:C,indexTitle:w,developerMode:y,onEditClick:$,buttonStyles:R={},appName:V,supportUrl:U})=>{const{selectedApp:H,nickname:q,apps:O,name:Q}=r.context,{service:Y,error:G,stateMachine:K,currentStateName:J,fixAppUrl:X}=r,Z=W(),[ee,te]=z("app-buttons_"+H,[]),[oe,ne]=n(!1),[ie,re]=n(!1),[ae,se]=n([]),[le,pe]=n(""),[ce,me]=n(""),[de,ue]=n(""),[he,ge]=n(new Set),{updating:fe,welcomeStatusText:je}=M(K),{t:be}=_();i((()=>{void 0!==v?te(v):H&&Y.getAppButtons().then((e=>te(e))).catch(console.warn)}),[Y,te,H,v]);const ve=e=>{e.preventDefault(),e.stopPropagation()},xe=!H||"hasAccess"!==J,ke=!H||"hasAccess"!==J,Ce=H&&"hasAccess"===J,we=!H&&"hasAccess"===J&&O.length>1,ye=!G&&!H&&!V,Se="noAccess"===J&&(1===O.length||!!V),Ae=H&&"hasAccess"===J;return e(B,{hideHeader:xe,hideFooter:ke,audio:a,voice:f,children:t("div",{className:Z.root,style:{backgroundImage:x?`url(${x})`:void 0},children:[U&&e("a",{href:U,target:"_blank",rel:"noopener noreferrer",className:Z.supportLink,children:e(j,{})}),y&&$&&"hasAccess"===J&&e("div",{className:Z.editButton,children:e(s,{content:be("Edit settings")||"Edit settings",relationship:"label",children:e(l,{appearance:"subtle",icon:e(b,{}),"aria-label":be("Edit settings")||"Edit settings",onClick:$,size:"small"})})}),e("div",{className:Z.item,children:e("div",{className:Z.item,children:t("div",{className:Z.buttonsList,children:[we&&t(o,{children:[e(I,{children:be("Välkommen, vart vill du gå?")}),O.map(((o,n)=>e("div",{children:e(A,{size:"large",appearance:"primary",onClick:()=>K.setSelectedApp(o.id),children:t("div",{className:Z.buttonContent,children:[o.logo&&e(p,{src:o.logo,height:24}),o.title||o.id]})})},"codicent_button_"+n)))]}),ye&&t(o,{children:[e(I,{children:be("Skapa ny?")}),e(D,{size:400,children:be("Här går du vidare för att skapa din egna privata digitala assistent.")}),e(A,{size:"large",appearance:"primary",onClick:()=>K.update(),children:be("Kör!")})]}),Se&&e("div",{children:t(P,{children:[e(I,{children:`${be("Välkommen till")} ${w}`}),!oe&&e(D,{size:400,children:be("Du är inte medlem än. Skicka begäran för att komma in!")}),!oe&&e(A,{size:"large",appearance:"primary",onClick:async()=>{if(ne(!0),!V)return console.error("appName prop not provided."),alert("appName not defined."),void ne(!1);await Y.requestInvite(q,V)?alert(be("Begäran skickad! Du får åtkomst när ägaren godkänner.")):(ne(!1),alert(be("Misslyckades att skicka begäran. Försök igen senare.")))},children:be("Skicka begäran")}),!oe&&t(D,{size:300,children:[be("Har du redan ett abonnemang? Då kanske har du loggat in med fel konto.")," ",e(S,{to:"/logout",children:be("Logga ut")})," ",be("och sedan in igen för att komma igång.")]}),oe&&e(D,{size:400,children:be("Begäran skickad till ägaren.")}),oe&&e(A,{size:"large",onClick:()=>{window.location.href="./"},children:be("Kontrollera åtkomst")})]})}),Ae&&t("div",{className:Z.welcomeInfo,children:[e(D,{weight:"semibold",size:500,align:"center",children:k?k.replace("{{username}}",Q||q||""):be("Välkommen")}),C&&e(D,{weight:"semibold",italic:!0,size:400,align:"center",children:C}),fe&&e(N,{}),!fe&&je&&e(D,{size:400,align:"center",children:be(je)})]}),Ce&&ee.map(((o,n)=>{const i="file_drop"===o.type,r="multi_option"===o.type,a=o.options&&Array.isArray(o.options)?o.options:[],s=e=>{const t=e.replace("upload:","").split(":");if(t.length>=4){pe(t[0]?.trim()||""),me(t[1]?.trim()||""),ue(t[2]?.trim()||"");const e=t[3]?.trim()||"";se(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}else{pe(""),me(""),ue("");const e=t[0]?.trim()||"";se(e?e.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[])}re(!0)},l=(e,t)=>{if(e.startsWith("voice:")){const t=e.replace("voice:","").trim();t&&f?.updateInstructions(t),f?.connectConversation()}else e.startsWith("upload:")?s(e):e.startsWith("app:")?t(e.replace("app:",X("/app/index.html?token={token}&app={app}&nickname={nickname}")).trim()):t(e)};return e("div",{children:i?e("div",{className:`${Z.item} ${he.has(n)?"dragActive":""}`,style:{width:"16rem",minWidth:"15rem",border:`2px dashed ${R.textColor||"#ccc"}`,backgroundColor:he.has(n)?R.activeColor||void 0:R.backgroundColor||void 0,color:R.textColor||void 0,borderRadius:"8px",padding:"1.2rem 1rem",textAlign:"center",cursor:"pointer"},onDragEnter:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ge((e=>new Set(e.add(t))))})(e,n),onDragLeave:e=>((e,t)=>{e.preventDefault(),e.stopPropagation(),ge((e=>{const o=new Set(e);return o.delete(t),o}))})(e,n),onDragOver:ve,onDrop:e=>(async(e,t,o)=>{e.preventDefault(),e.stopPropagation(),ge((e=>{const t=new Set(e);return t.delete(o),t}));const n=Array.from(e.dataTransfer.files);if(0===n.length)return;let i=[];if(t.url.startsWith("upload:")){const e=t.url.replace("upload:","").split(":"),o=(e.length>=4?e[3]:e[0])?.trim()||"";i=o?o.split(",").map((e=>e.trim())).filter((e=>e.length>0)):[]}for(const e of n)try{const t=new FormData;t.append("file",e);const o=await Y.uploadFile(e.name,t);if(!o)continue;const n=i.length>0?i.map((e=>`#${e}`)).join(" "):"#index #summarize";await Y.sendMessage(`@${H} ${n}\n\n${e.name}\n#file:${o}\n`)}catch(t){console.error("Error processing file:",e.name,t)}})(e,o,n),onClick:()=>o.url.startsWith("upload:")&&s(o.url),children:t("div",{className:Z.buttonContentColumn,children:[t("div",{className:Z.buttonContentRow,children:[T(o.icon)||F(o.title),e("span",{children:be(o.title)})]}),e("div",{className:Z.buttonSubtitle,children:he.has(n)?be("Drop files here..."):be("Drag files here or click")})]})}):r?t(c,{children:[e(m,{children:e(d,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:R.backgroundColor||void 0,color:R.textColor||void 0,padding:"1.2rem 1rem"},children:t("div",{className:Z.buttonContentColumn,children:[t("div",{className:Z.buttonContentRow,children:[T(o.icon)||F(o.title),e("span",{children:be(o.title)})]}),o.subtitle&&e("div",{className:Z.buttonSubtitle,children:be(o.subtitle)})]})})}),e(u,{className:Z.menuPopover,children:e(h,{children:a.map(((o,i)=>e(L,{service:Y,children:n=>e(g,{onClick:()=>l(o.url,n),children:t("div",{children:[t("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[T(o.icon)&&e("div",{className:Z.menuItemIconBadge,children:T(o.icon)}),e("span",{className:Z.menuItemTitle,children:be(o.title)})]}),o.subtitle&&e("div",{className:Z.menuItemSubtitle,children:be(o.subtitle)})]})})},`option_${n}_${i}`)))})})]}):e(L,{service:Y,children:n=>e(A,{size:"large",appearance:"primary",style:{width:"16rem",minWidth:"15rem",border:"none",backgroundColor:R.backgroundColor||void 0,color:R.textColor||void 0,padding:"1.2rem 1rem"},onClick:()=>l(o.url,n),children:t("div",{className:Z.buttonContentColumn,children:[t("div",{className:Z.buttonContentRow,children:[T(o.icon)||F(o.title),e("span",{children:be(o.title)})]}),o.subtitle&&e("div",{className:Z.buttonSubtitle,children:be(o.subtitle)})]})})})},"button_"+n)}))]})})}),U&&e("a",{href:U,target:"_blank",rel:"noopener noreferrer",className:Z.supportLink,children:e(j,{})}),G&&e("div",{className:"error",children:G}),e(E,{project:H||"",hidden:!ie,onDismiss:()=>{re(!1),pe(""),me(""),ue(""),se([])},sendMessage:async e=>{try{return await Y.sendMessage(e)}catch{return}},onUploaded:()=>{re(!1),pe(""),me(""),ue(""),se([])},service:Y,tags:ae,title:le,description:ce,dropText:de})]})})};export{$ as Home,$ as default};
|
package/dist/esm/pages/Menu.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export interface MenuPageProps {
|
|
|
17
17
|
stripeCustomerPortal?: string;
|
|
18
18
|
/** Show the app selector widget (multi-app instances). */
|
|
19
19
|
showAppSelector?: boolean;
|
|
20
|
+
/** URL for a support link shown at the top of the menu list. */
|
|
21
|
+
supportUrl?: string;
|
|
20
22
|
}
|
|
21
23
|
export declare const Menu: React.FC<MenuPageProps>;
|
|
22
24
|
export default Menu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/pages/Menu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA8B3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../src/pages/Menu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AA8B3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,gBAAgB,CAAC;IACxB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uCAAuC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yCAAyC;IACzC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuIxC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/dist/esm/pages/Menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{makeStyles as i,Image as n}from"@fluentui/react-components";import{useNavigate as r}from"react-router-dom";import s from"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import"../components/Spinner.js";import
|
|
1
|
+
import{jsx as o,jsxs as t,Fragment as e}from"react/jsx-runtime";import{makeStyles as i,Image as n}from"@fluentui/react-components";import{useNavigate as r}from"react-router-dom";import s from"../components/Markdown.js";import"../components/Textarea.js";import{Button as p}from"../components/Button.js";import"../components/CompoundButton.js";import"../components/Spinner.js";import a from"../components/TextHeader.js";import"../components/TypingIndicator.js";import"../components/Dialog.js";import"../components/ChatInput.js";import"../components/CombinedPlaceholderDialog.js";import"../components/ChatMessage.js";import"../components/Header.js";import"react";import"@fluentui/react-icons";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"exceljs";import"./AppFrame.js";import"./Canvas.js";import"./Chat.js";import"./Compose.js";import"./Snap.js";import"./Search.js";import"./Log.js";import"./Login.js";import"./Home.js";import"./ListPage.js";import"./CrmPage.js";import"./CrmPagePersistent.js";import"./ImageView.js";import"./FormInvite.js";import"./FormAccept.js";import"./Sales.js";import"./Purchase.js";import"../components/Content.js";import{Page as m}from"../components/Page.js";import"./QrScan.js";import c from"../hooks/useLocalization.js";import"../components/FileThumbnail.js";import"react-dom/client";import"../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js";import l from"../hooks/useAppStyles.js";import"../components/MessageInput.js";import"../components/UploadFile.js";import"../components/SnapFooter.js";import d from"../components/Profile.js";import"../components/MessageItem.js";import"../components/AiInput.js";import"../components/SearchBox.js";import"../components/DataMessagePicker.js";import"../components/HtmlView.js";import"../components/Footer.js";import"../components/QrCodeDialog.js";import"../components/QrScanner.js";import"../components/OfflineMessage.js";import{LanguageSelector as u}from"../components/LanguageSelector.js";import"../components/ListView.js";import"../components/RecordModal.js";import"../components/BulkUploadDialog.js";import"../components/CookieBanner.js";import"../components/audit/AuditCircularProgress.js";import"../components/audit/AuditHorizontalProgress.js";import"../components/audit/AuditRoleIndicator.js";import"../components/audit/AuditUnitSwitcher.js";import"../components/audit/AuditAnswerCell.js";import"../components/audit/AuditSearchBar.js";import"../components/audit/AuditFilterChips.js";import"../components/audit/AuditFilterBar.js";import"../components/audit/AuditGroupsProgress.js";import"../components/audit/AuditSummaryDashboard.js";import"../components/audit/AuditRequirementDialog.js";import"../components/audit/AuditUnitExportDialog.js";import"../components/audit/AuditUnitImportDialog.js";import"../components/audit/AuditBulkExportDialog.js";import"../components/audit/AuditBulkUploadDialog.js";import"../components/audit/AuditSortPresets.js";const j=i({container:{backgroundRepeat:"no-repeat",backgroundSize:"contain",height:"100%",touchAction:"pan-y",margin:"0 auto",maxWidth:"800px"},menu_items:{overflowY:"auto",height:"calc(100vh - 130px)",paddingLeft:"10px",paddingRight:"10px"},divider:{fontSize:"20px",fontWeight:"bold",marginTop:"32px",marginBottom:"20px"},appButton:{margin:"2px"}}),g=({state:i,title:g,aboutText:h,version:f,backgroundImageUrl:v,showHelpButton:C,showLogbookButton:A,stripeCustomerPortal:b,showAppSelector:x=!0,supportUrl:S})=>{const k=r(),w=l(),B=j(),{auth:P}=i,{t:M}=c(),y=h?h.replace("{{version}}",(()=>{const o=new Date,t=o.toISOString().split("T")[0],e=o.getHours().toString().padStart(2,"0");return f||`v${t}.${e}`})()):void 0;return o(m,{hideHeader:!0,children:t("div",{className:B.container,style:{backgroundImage:v?`url(${v})`:void 0},children:[o(a,{title:g||M("Meny")}),t("div",{className:B.menu_items,children:[o(d,{state:i}),o(u,{}),o("hr",{}),S&&o("div",{children:o(p,{icon:"QuestionCircle24Regular",size:"large",className:w.menuButton,onClick:()=>window.open(S,"_blank","noopener,noreferrer"),iconPosition:"after",appearance:"transparent",children:M("Support")})}),o("div",{children:o(p,{icon:"ChevronRightFilled",size:"large",className:w.menuButton,onClick:()=>{P.logout(),i.stateMachine.logout()},iconPosition:"after",appearance:"transparent",children:M("Logga ut")})}),b&&o(p,{icon:"Payment24Regular",size:"large",className:w.menuButton,onClick:()=>window.location.href=b,iconPosition:"after",appearance:"transparent",children:M("Abonnemang")}),x&&i.context.apps&&i.context.apps.length>1&&t(e,{children:[o("h3",{children:M("Mina codicents")}),i.context.apps.map((t=>o(p,{className:B.appButton,image:t.logo?o(n,{src:t.logo,height:"24px"}):void 0,onClick:()=>i.stateMachine.setSelectedApp(t.id),title:t.title||t.id,children:t.title||t.id},t.id)))]}),A&&t(e,{children:[o("hr",{}),o(p,{className:w.menuButton,icon:"ChevronRightFilled",size:"large",appearance:"subtle",iconPosition:"after",onClick:()=>k("/log"),children:M("Loggboken")})]}),o("hr",{}),y&&o(s,{content:y}),C&&t(e,{children:[o("h3",{children:M("Behöver du hjälp?")}),o(p,{icon:"QuestionCircle24Regular",className:w.button,size:"large",appearance:"subtle",onClick:()=>k("/help"),children:M("Visa hjälp")})]})]})]})})};export{g as Menu,g as default};
|
package/dist/index.d.ts
CHANGED
|
@@ -2477,6 +2477,8 @@ interface MenuPageProps {
|
|
|
2477
2477
|
stripeCustomerPortal?: string;
|
|
2478
2478
|
/** Show the app selector widget (multi-app instances). */
|
|
2479
2479
|
showAppSelector?: boolean;
|
|
2480
|
+
/** URL for a support link shown at the top of the menu list. */
|
|
2481
|
+
supportUrl?: string;
|
|
2480
2482
|
}
|
|
2481
2483
|
declare const Menu: React.FC<MenuPageProps>;
|
|
2482
2484
|
|
|
@@ -2541,6 +2543,8 @@ interface HomePageProps {
|
|
|
2541
2543
|
buttonStyles?: HomeButtonStyles;
|
|
2542
2544
|
/** App name used when sending an invite request. */
|
|
2543
2545
|
appName?: string;
|
|
2546
|
+
/** URL for a support link shown at the bottom of the home screen. */
|
|
2547
|
+
supportUrl?: string;
|
|
2544
2548
|
}
|
|
2545
2549
|
declare const Home: React__default.FC<HomePageProps>;
|
|
2546
2550
|
|