@semiont/cli 0.4.12 → 0.4.14
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/cli.mjs +518 -67
- package/dist/dashboard/dashboard.css +1 -1
- package/dist/dashboard/dashboard.css.map +2 -2
- package/dist/frontend/dist/assets/CookiePreferences-Cbur0STI.js +2 -0
- package/dist/frontend/dist/assets/CookiePreferences-Cbur0STI.js.map +1 -0
- package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-CjRY6TID.js → PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js} +2 -2
- package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-CjRY6TID.js.map → PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js.map} +1 -1
- package/dist/frontend/dist/assets/ToolbarPanels-rN1MIRTV.js +2 -0
- package/dist/frontend/dist/assets/ToolbarPanels-rN1MIRTV.js.map +1 -0
- package/dist/frontend/dist/assets/XMarkIcon-6m9KVFaj.js +2 -0
- package/dist/frontend/dist/assets/XMarkIcon-6m9KVFaj.js.map +1 -0
- package/dist/frontend/dist/assets/client-BPbsU2tc.js +2 -0
- package/dist/frontend/dist/assets/{client-DZ-DNAU-.js.map → client-BPbsU2tc.js.map} +1 -1
- package/dist/frontend/dist/assets/client-BiL3eI7d.js +2 -0
- package/dist/frontend/dist/assets/{client-BbPyO59A.js.map → client-BiL3eI7d.js.map} +1 -1
- package/dist/frontend/dist/assets/client-BnL1es01.js +2 -0
- package/dist/frontend/dist/assets/{client-BsHptwGn.js.map → client-BnL1es01.js.map} +1 -1
- package/dist/frontend/dist/assets/client-DrQUcCJy.js +2 -0
- package/dist/frontend/dist/assets/{client-COY1ucYF.js.map → client-DrQUcCJy.js.map} +1 -1
- package/dist/frontend/dist/assets/en-IUV4ZXKH-BY1RKeLS.js +135 -0
- package/dist/frontend/dist/assets/en-IUV4ZXKH-BY1RKeLS.js.map +1 -0
- package/dist/frontend/dist/assets/{index-CwQxZp6g.css → index-CNb3PHS7.css} +1 -1
- package/dist/frontend/dist/assets/{index-DKq_l4UW.js → index-DA31r_0s.js} +3 -3
- package/dist/frontend/dist/assets/{index-DKq_l4UW.js.map → index-DA31r_0s.js.map} +1 -1
- package/dist/frontend/dist/assets/layout-B8IinUdt.js +2 -0
- package/dist/frontend/dist/assets/layout-B8IinUdt.js.map +1 -0
- package/dist/frontend/dist/assets/layout-BjpW078f.js +2 -0
- package/dist/frontend/dist/assets/layout-BjpW078f.js.map +1 -0
- package/dist/frontend/dist/assets/{layout-6uvM-QPR.js → layout-CDIjxs5a.js} +4 -4
- package/dist/frontend/dist/assets/layout-CDIjxs5a.js.map +1 -0
- package/dist/frontend/dist/assets/layout-DKm9XdRr.js +2 -0
- package/dist/frontend/dist/assets/{layout-D5Pjl6Q-.js.map → layout-DKm9XdRr.js.map} +1 -1
- package/dist/frontend/dist/assets/{not-found-CudKZDad.js → not-found-CwWw1pZc.js} +2 -2
- package/dist/frontend/dist/assets/{not-found-CudKZDad.js.map → not-found-CwWw1pZc.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-Bz2r7ufy.js → page-1BwlyTUj.js} +2 -2
- package/dist/frontend/dist/assets/{page-Bz2r7ufy.js.map → page-1BwlyTUj.js.map} +1 -1
- package/dist/frontend/dist/assets/page-BQ00VxR5.js +2 -0
- package/dist/frontend/dist/assets/page-BQ00VxR5.js.map +1 -0
- package/dist/frontend/dist/assets/page-BmHLf-7O.js +2 -0
- package/dist/frontend/dist/assets/{page-ESjXBvXd.js.map → page-BmHLf-7O.js.map} +1 -1
- package/dist/frontend/dist/assets/page-C5bIvv1V.js +2 -0
- package/dist/frontend/dist/assets/{page-CJFp0ZpS.js.map → page-C5bIvv1V.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-4gaXuuoi.js → page-CelRTchO.js} +3 -3
- package/dist/frontend/dist/assets/{page-4gaXuuoi.js.map → page-CelRTchO.js.map} +1 -1
- package/dist/frontend/dist/assets/page-Cf9cnqhC.js +2 -0
- package/dist/frontend/dist/assets/{page-uukho-t7.js.map → page-Cf9cnqhC.js.map} +1 -1
- package/dist/frontend/dist/assets/page-CslYhbgz.js +2 -0
- package/dist/frontend/dist/assets/{page-DK5bpgp9.js.map → page-CslYhbgz.js.map} +1 -1
- package/dist/frontend/dist/assets/page-DEjlNEY0.js +2 -0
- package/dist/frontend/dist/assets/{page-DIv5j5nE.js.map → page-DEjlNEY0.js.map} +1 -1
- package/dist/frontend/dist/assets/page-DLtwpo78.js +2 -0
- package/dist/frontend/dist/assets/{page-CGEmB0mm.js.map → page-DLtwpo78.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-CE8hOJlL.js → page-D_nHe9FT.js} +2 -2
- package/dist/frontend/dist/assets/{page-CE8hOJlL.js.map → page-D_nHe9FT.js.map} +1 -1
- package/dist/frontend/dist/assets/page-Deep7E5d.js +2 -0
- package/dist/frontend/dist/assets/{page-DVRMfAkS.js.map → page-Deep7E5d.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-C44nBk5U.js → page-Dv386AZD.js} +3 -3
- package/dist/frontend/dist/assets/{page-C44nBk5U.js.map → page-Dv386AZD.js.map} +1 -1
- package/dist/frontend/dist/assets/page-E99MPOn5.js +8 -0
- package/dist/frontend/dist/assets/{page-tb55k9Ji.js.map → page-E99MPOn5.js.map} +1 -1
- package/dist/frontend/dist/assets/page-KtkB4tEv.js +2 -0
- package/dist/frontend/dist/assets/{page-vzoIwpsS.js.map → page-KtkB4tEv.js.map} +1 -1
- package/dist/frontend/dist/assets/page-ZBwMTeR-.js +2 -0
- package/dist/frontend/dist/assets/page-ZBwMTeR-.js.map +1 -0
- package/dist/frontend/dist/assets/page-Zq6ARIvg.js +2 -0
- package/dist/frontend/dist/assets/{page-DjkPUxlb.js.map → page-Zq6ARIvg.js.map} +1 -1
- package/dist/frontend/dist/assets/page-iSL5E639.js +2 -0
- package/dist/frontend/dist/assets/page-iSL5E639.js.map +1 -0
- package/dist/frontend/dist/assets/page-xdXYx3nl.js +2 -0
- package/dist/frontend/dist/assets/{page-B9hPrBrN.js.map → page-xdXYx3nl.js.map} +1 -1
- package/dist/frontend/dist/assets/{privacy-W9SxWfL5.js → privacy-DO1oxJpM.js} +2 -2
- package/dist/frontend/dist/assets/{privacy-W9SxWfL5.js.map → privacy-DO1oxJpM.js.map} +1 -1
- package/dist/frontend/dist/assets/routing-DMdXWYXo.js +2 -0
- package/dist/frontend/dist/assets/{routing-BLuuVVPN.js.map → routing-DMdXWYXo.js.map} +1 -1
- package/dist/frontend/dist/assets/{routing-6lnx-g5H.js → routing-tJ_HbFRP.js} +2 -2
- package/dist/frontend/dist/assets/{routing-6lnx-g5H.js.map → routing-tJ_HbFRP.js.map} +1 -1
- package/dist/frontend/dist/assets/useAuth-yUx5lBP5.js +2 -0
- package/dist/frontend/dist/assets/useAuth-yUx5lBP5.js.map +1 -0
- package/dist/frontend/dist/index.html +2 -2
- package/dist/frontend/dist/messages/ar.json +29 -7
- package/dist/frontend/dist/messages/bn.json +29 -7
- package/dist/frontend/dist/messages/cs.json +29 -7
- package/dist/frontend/dist/messages/da.json +29 -7
- package/dist/frontend/dist/messages/de.json +29 -7
- package/dist/frontend/dist/messages/el.json +29 -7
- package/dist/frontend/dist/messages/en.json +29 -7
- package/dist/frontend/dist/messages/es.json +29 -7
- package/dist/frontend/dist/messages/fa.json +29 -7
- package/dist/frontend/dist/messages/fi.json +29 -7
- package/dist/frontend/dist/messages/fr.json +29 -7
- package/dist/frontend/dist/messages/he.json +29 -7
- package/dist/frontend/dist/messages/hi.json +29 -7
- package/dist/frontend/dist/messages/id.json +29 -7
- package/dist/frontend/dist/messages/it.json +29 -7
- package/dist/frontend/dist/messages/ja.json +29 -7
- package/dist/frontend/dist/messages/ko.json +29 -7
- package/dist/frontend/dist/messages/ms.json +29 -7
- package/dist/frontend/dist/messages/nl.json +29 -7
- package/dist/frontend/dist/messages/no.json +29 -7
- package/dist/frontend/dist/messages/pl.json +29 -7
- package/dist/frontend/dist/messages/pt.json +29 -7
- package/dist/frontend/dist/messages/ro.json +29 -7
- package/dist/frontend/dist/messages/sv.json +29 -7
- package/dist/frontend/dist/messages/th.json +29 -7
- package/dist/frontend/dist/messages/tr.json +29 -7
- package/dist/frontend/dist/messages/uk.json +29 -7
- package/dist/frontend/dist/messages/vi.json +29 -7
- package/dist/frontend/dist/messages/zh.json +29 -7
- package/dist/frontend/package.json +1 -1
- package/package.json +8 -8
- package/dist/frontend/dist/assets/AuthContext-CUx-cP7W.js +0 -2
- package/dist/frontend/dist/assets/AuthContext-CUx-cP7W.js.map +0 -1
- package/dist/frontend/dist/assets/CookiePreferences-BuRvkBwM.js +0 -2
- package/dist/frontend/dist/assets/CookiePreferences-BuRvkBwM.js.map +0 -1
- package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js +0 -2
- package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js.map +0 -1
- package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js +0 -2
- package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js.map +0 -1
- package/dist/frontend/dist/assets/ToolbarPanels-Drd8QG61.js +0 -2
- package/dist/frontend/dist/assets/ToolbarPanels-Drd8QG61.js.map +0 -1
- package/dist/frontend/dist/assets/client-BbPyO59A.js +0 -2
- package/dist/frontend/dist/assets/client-BsHptwGn.js +0 -2
- package/dist/frontend/dist/assets/client-COY1ucYF.js +0 -2
- package/dist/frontend/dist/assets/client-DZ-DNAU-.js +0 -2
- package/dist/frontend/dist/assets/en-IUV4ZXKH-eHunUM2g.js +0 -135
- package/dist/frontend/dist/assets/en-IUV4ZXKH-eHunUM2g.js.map +0 -1
- package/dist/frontend/dist/assets/layout-6uvM-QPR.js.map +0 -1
- package/dist/frontend/dist/assets/layout-CvaTeY53.js +0 -2
- package/dist/frontend/dist/assets/layout-CvaTeY53.js.map +0 -1
- package/dist/frontend/dist/assets/layout-D5Pjl6Q-.js +0 -2
- package/dist/frontend/dist/assets/layout-QZ56PNLk.js +0 -2
- package/dist/frontend/dist/assets/layout-QZ56PNLk.js.map +0 -1
- package/dist/frontend/dist/assets/page-B9hPrBrN.js +0 -2
- package/dist/frontend/dist/assets/page-BH5HMa4o.js +0 -2
- package/dist/frontend/dist/assets/page-BH5HMa4o.js.map +0 -1
- package/dist/frontend/dist/assets/page-CGEmB0mm.js +0 -2
- package/dist/frontend/dist/assets/page-CJFp0ZpS.js +0 -2
- package/dist/frontend/dist/assets/page-D1Di1cx-.js +0 -2
- package/dist/frontend/dist/assets/page-D1Di1cx-.js.map +0 -1
- package/dist/frontend/dist/assets/page-DIv5j5nE.js +0 -2
- package/dist/frontend/dist/assets/page-DK5bpgp9.js +0 -2
- package/dist/frontend/dist/assets/page-DVRMfAkS.js +0 -2
- package/dist/frontend/dist/assets/page-DjkPUxlb.js +0 -2
- package/dist/frontend/dist/assets/page-ESjXBvXd.js +0 -2
- package/dist/frontend/dist/assets/page-lbZaKDJf.js +0 -2
- package/dist/frontend/dist/assets/page-lbZaKDJf.js.map +0 -1
- package/dist/frontend/dist/assets/page-tb55k9Ji.js +0 -8
- package/dist/frontend/dist/assets/page-uukho-t7.js +0 -2
- package/dist/frontend/dist/assets/page-vzoIwpsS.js +0 -2
- package/dist/frontend/dist/assets/routing-BLuuVVPN.js +0 -2
- package/dist/frontend/dist/assets/useAuth-CAJolYxw.js +0 -2
- package/dist/frontend/dist/assets/useAuth-CAJolYxw.js.map +0 -1
- package/dist/templates/docker-compose.yml +0 -53
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./query-ATBhtd3K.js";import{r as l}from"./vendor-EnoIVk-c.js";import{l as A,$ as M,a0 as b,a1 as w,a2 as y,g as E,a3 as D,a4 as L,a5 as C}from"./en-IUV4ZXKH-eHunUM2g.js";import{u as z}from"./useAuth-CAJolYxw.js";import{u as T}from"./AuthContext-CUx-cP7W.js";import{a as I,u as k,b as R}from"./routing-BLuuVVPN.js";import{u as S}from"./i18n-BYxb14hm.js";import{u as _}from"./KnowledgeBaseContext-CgnF8K-_.js";import{F as U}from"./PlusIcon-qGFPUzg0.js";function O({title:i,titleId:s,...a},t){return l.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":s},a),i?l.createElement("title",{id:s},i):null,l.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const Z=l.forwardRef(O),f="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==";function P(){const{t:i}=S(),s=(d,v)=>i(`UserPanel.${d}`,v),{displayName:a,avatarUrl:t,userDomain:n,isAdmin:c,isModerator:r}=z(),{clearSession:o}=T(),p=A(),m=I(),[h,x]=l.useState(!1),{timeRemaining:u}=M(),g=w(u)??"Unknown",j=(()=>{if(!t||h)return f;const d=b(t);return d||(console.warn("Invalid profile image URL detected, using fallback"),f)})(),N=async()=>{try{await p.logout()}catch{}o(),m.push("/")};return e.jsxs("div",{className:"semiont-user-panel",children:[e.jsx("h3",{className:"semiont-user-panel__title",children:s("account")}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("img",{src:j,alt:s("profileAlt",{name:a||s("user")}),width:48,height:48,className:"w-12 h-12 rounded-full object-cover",onError:()=>x(!0)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"semiont-panel-text",children:a||s("user")}),n&&e.jsxs("div",{className:"semiont-panel-text-secondary",children:["@",n]})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"semiont-panel-label",children:s("session")}),e.jsx("div",{className:"semiont-session-box",children:e.jsx("div",{className:"semiont-panel-hint",children:s("expiresIn",{time:g})})})]}),(c||r)&&e.jsxs("div",{children:[e.jsx("label",{className:"semiont-panel-label",children:s("privileges")}),e.jsxs("div",{className:"space-y-1",children:[c&&e.jsx("div",{className:"semiont-privilege-badge semiont-privilege-badge--admin",children:e.jsx("span",{className:"semiont-privilege-text",children:s("administrator")})}),r&&e.jsx("div",{className:"semiont-privilege-badge semiont-privilege-badge--moderator",children:e.jsx("span",{className:"semiont-privilege-text",children:s("moderator")})})]})]}),e.jsx("div",{className:"semiont-panel-divider",children:e.jsx("button",{onClick:N,className:"semiont-signout-button",children:s("signOut")})})]})]})}function G(){const{knowledgeBases:i,activeKnowledgeBase:s,setActiveKnowledgeBase:a}=_(),t=I();return e.jsxs("div",{className:"semiont-panel",children:[e.jsx("div",{className:"semiont-panel-header",children:e.jsxs("h2",{className:"semiont-panel-header__title",children:[e.jsx("span",{className:"semiont-panel-header__text",children:"Knowledge Bases"}),e.jsxs("span",{className:"semiont-panel-header__count",children:["(",i.length,")"]})]})}),e.jsx("div",{className:"semiont-panel__content",children:e.jsx("div",{className:"semiont-panel__list",children:i.map(n=>e.jsxs("button",{onClick:()=>a(n.id),className:`semiont-panel-item semiont-panel-item--clickable${n.id===(s==null?void 0:s.id)?" semiont-panel-item--selected":""}`,style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[e.jsx("span",{className:"semiont-panel-text",style:{flex:1},children:n.label}),e.jsx("span",{className:"semiont-panel-text-secondary",children:n.backendUrl.replace(/^https?:\/\//,"")}),n.id===(s==null?void 0:s.id)&&e.jsx(Z,{style:{width:"1rem",height:"1rem",color:"var(--semiont-color-primary-500)",flexShrink:0}})]},n.id))})}),e.jsx("div",{className:"semiont-panel-footer",children:e.jsxs("button",{onClick:()=>t.push("/auth/connect"),className:"semiont-panel-item semiont-panel-item--clickable",style:{width:"100%",display:"flex",alignItems:"center",gap:"0.5rem",color:"var(--semiont-color-primary-600)"},children:[e.jsx(U,{style:{width:"1rem",height:"1rem",flexShrink:0}}),e.jsx("span",{className:"semiont-panel-text",style:{color:"inherit"},children:"Add knowledge base"})]})})]})}function V({activePanel:i,theme:s,showLineNumbers:a,hoverDelayMs:t,children:n}){const c=k(),r=I(),o=R(),[p,m]=l.useTransition(),{width:h,setWidth:x,minWidth:u,maxWidth:g}=y(),j=l.useCallback(({locale:N})=>{o&&m(()=>{r.replace(o,{locale:N})})},[o,r,m]);return E({"settings:locale-changed":j}),!i||!n&&!D.includes(i)?null:e.jsxs("div",{className:"semiont-toolbar-panels",style:{width:`${h}px`,position:"relative"},children:[e.jsx(L,{onResize:x,minWidth:u,maxWidth:g,position:"left",ariaLabel:"Resize right panel"}),e.jsxs("div",{className:"semiont-toolbar-panels__content",children:[n,i==="knowledge-base"&&e.jsx(G,{}),i==="user"&&e.jsx(P,{}),i==="settings"&&e.jsx(C,{showLineNumbers:a,theme:s,hoverDelayMs:t,locale:c,isPendingLocaleChange:p})]})]})}export{V as T};
|
|
2
|
-
//# sourceMappingURL=ToolbarPanels-Drd8QG61.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ToolbarPanels-Drd8QG61.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/CheckIcon.js","../../src/components/UserPanel.tsx","../../src/components/KnowledgeBasePanel.tsx","../../src/components/toolbar/ToolbarPanels.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction CheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"m4.5 12.75 6 6 9-13.5\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CheckIcon);\nexport default ForwardRef;","import React, { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { sanitizeImageURL, useSessionExpiry, formatTime, useApiClient } from '@semiont/react-ui';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useAuthContext } from '@/contexts/AuthContext';\nimport { useRouter } from '@/i18n/routing';\n\n// Fallback avatar when image fails to load or is invalid\nconst FALLBACK_AVATAR = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iMTYiIGZpbGw9IiM2QjcyODAiLz4KPHBhdGggZD0iTTE2IDE2QzE4LjIwOTEgMTYgMjAgMTQuMjA5MSAyMCAxMkMyMCA5Ljc5MDg2IDE4LjIwOTEgOCAxNiA4QzEzLjc5MDkgOCAxMiA5Ljc5MDg2IDEyIDEyQzEyIDE0LjIwOTEgMTMuNzkwOSAxNiAxNiAxNloiIGZpbGw9IiNFNUU3RUIiLz4KPHBhdGggZD0iTTI0IDI1QzI0IDIxLjY4NjMgMjAuNDE4MyAxOSAxNiAxOUMxMS41ODE3IDE5IDggMjEuNjg2MyA4IDI1IiBzdHJva2U9IiNFNUU3RUIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+Cjwvc3ZnPg==';\n\nexport function UserPanel() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`UserPanel.${k}`, p as any) as string;\n const { displayName, avatarUrl, userDomain, isAdmin, isModerator } = useAuth();\n const { clearSession } = useAuthContext();\n const apiClient = useApiClient();\n const router = useRouter();\n const [imageError, setImageError] = useState(false);\n const { timeRemaining } = useSessionExpiry();\n const sessionTimeFormatted = formatTime(timeRemaining) ?? 'Unknown';\n\n // Sanitize and validate the profile image URL\n const profileImageUrl = (() => {\n if (!avatarUrl || imageError) {\n return FALLBACK_AVATAR;\n }\n\n const sanitized = sanitizeImageURL(avatarUrl);\n if (!sanitized) {\n console.warn('Invalid profile image URL detected, using fallback');\n return FALLBACK_AVATAR;\n }\n\n return sanitized;\n })();\n\n const handleSignOut = async () => {\n try {\n await apiClient.logout();\n } catch {\n // best-effort — cookie already cleared server-side\n }\n clearSession();\n router.push('/');\n };\n\n return (\n <div className=\"semiont-user-panel\">\n <h3 className=\"semiont-user-panel__title\">\n {t('account')}\n </h3>\n\n <div className=\"space-y-4\">\n {/* User Profile */}\n <div className=\"flex items-center gap-3\">\n <img\n src={profileImageUrl}\n alt={t('profileAlt', { name: displayName || t('user') })}\n width={48}\n height={48}\n className=\"w-12 h-12 rounded-full object-cover\"\n onError={() => setImageError(true)}\n />\n <div className=\"flex-1 min-w-0\">\n <div className=\"semiont-panel-text\">\n {displayName || t('user')}\n </div>\n {userDomain && (\n <div className=\"semiont-panel-text-secondary\">\n @{userDomain}\n </div>\n )}\n </div>\n </div>\n\n {/* Session Info */}\n <div>\n <label className=\"semiont-panel-label\">\n {t('session')}\n </label>\n <div className=\"semiont-session-box\">\n <div className=\"semiont-panel-hint\">\n {t('expiresIn', { time: sessionTimeFormatted })}\n </div>\n </div>\n </div>\n\n {/* Privileges */}\n {(isAdmin || isModerator) && (\n <div>\n <label className=\"semiont-panel-label\">\n {t('privileges')}\n </label>\n <div className=\"space-y-1\">\n {isAdmin && (\n <div className=\"semiont-privilege-badge semiont-privilege-badge--admin\">\n <span className=\"semiont-privilege-text\">\n {t('administrator')}\n </span>\n </div>\n )}\n {isModerator && (\n <div className=\"semiont-privilege-badge semiont-privilege-badge--moderator\">\n <span className=\"semiont-privilege-text\">\n {t('moderator')}\n </span>\n </div>\n )}\n </div>\n </div>\n )}\n\n {/* Sign Out Button */}\n <div className=\"semiont-panel-divider\">\n <button\n onClick={handleSignOut}\n className=\"semiont-signout-button\"\n >\n {t('signOut')}\n </button>\n </div>\n </div>\n </div>\n );\n}\n","import { CheckIcon, PlusIcon } from '@heroicons/react/24/outline';\nimport { useKnowledgeBaseContext, type KnowledgeBase } from '@/contexts/KnowledgeBaseContext';\nimport { useRouter } from '@/i18n/routing';\n\nexport function KnowledgeBasePanel() {\n const { knowledgeBases, activeKnowledgeBase, setActiveKnowledgeBase } = useKnowledgeBaseContext();\n const router = useRouter();\n\n return (\n <div className=\"semiont-panel\">\n <div className=\"semiont-panel-header\">\n <h2 className=\"semiont-panel-header__title\">\n <span className=\"semiont-panel-header__text\">Knowledge Bases</span>\n <span className=\"semiont-panel-header__count\">({knowledgeBases.length})</span>\n </h2>\n </div>\n <div className=\"semiont-panel__content\">\n <div className=\"semiont-panel__list\">\n {knowledgeBases.map((kb: KnowledgeBase) => (\n <button\n key={kb.id}\n onClick={() => setActiveKnowledgeBase(kb.id)}\n className={`semiont-panel-item semiont-panel-item--clickable${kb.id === activeKnowledgeBase?.id ? ' semiont-panel-item--selected' : ''}`}\n style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}\n >\n <span className=\"semiont-panel-text\" style={{ flex: 1 }}>{kb.label}</span>\n <span className=\"semiont-panel-text-secondary\">\n {kb.backendUrl.replace(/^https?:\\/\\//, '')}\n </span>\n {kb.id === activeKnowledgeBase?.id && (\n <CheckIcon style={{ width: '1rem', height: '1rem', color: 'var(--semiont-color-primary-500)', flexShrink: 0 }} />\n )}\n </button>\n ))}\n </div>\n </div>\n <div className=\"semiont-panel-footer\">\n <button\n onClick={() => router.push('/auth/connect')}\n className=\"semiont-panel-item semiont-panel-item--clickable\"\n style={{ width: '100%', display: 'flex', alignItems: 'center', gap: '0.5rem', color: 'var(--semiont-color-primary-600)' }}\n >\n <PlusIcon style={{ width: '1rem', height: '1rem', flexShrink: 0 }} />\n <span className=\"semiont-panel-text\" style={{ color: 'inherit' }}>Add knowledge base</span>\n </button>\n </div>\n </div>\n );\n}\n","import React, { useTransition, useEffect, useCallback } from 'react';\nimport { SettingsPanel, ResizeHandle, usePanelWidth, EventBusProvider, useEventSubscriptions } from '@semiont/react-ui';\nimport { UserPanel } from '../UserPanel';\nimport { KnowledgeBasePanel } from '../KnowledgeBasePanel';\nimport { useLocale } from '@/i18n/routing';\nimport { usePathname, useRouter } from '@/i18n/routing';\nimport { COMMON_PANELS } from '@semiont/react-ui';\nimport type { ToolbarPanelType } from '@semiont/react-ui';\n\ninterface ToolbarPanelsProps {\n activePanel: ToolbarPanelType | null;\n /** Theme setting */\n theme: 'light' | 'dark' | 'system';\n /** Line numbers setting */\n showLineNumbers: boolean;\n /** Hover delay setting */\n hoverDelayMs: number;\n /** Custom panel content for context-specific panels */\n children?: React.ReactNode;\n}\n\n/**\n * Renders the toolbar panel container with common panels (user, settings)\n * and any context-specific panels passed as children.\n *\n * Settings changes are handled via GlobalSettingsEventBus - no callbacks needed.\n *\n * @example\n * // Simple context (compose, discover, moderate, admin pages)\n * <ToolbarPanels\n * activePanel={activePanel}\n * theme={theme}\n * showLineNumbers={showLineNumbers}\n * />\n *\n * @example\n * // Document context with custom panels\n * <ToolbarPanels\n * activePanel={activePanel}\n * theme={theme}\n * showLineNumbers={showLineNumbers}\n * >\n * {activePanel === 'annotations' && <UnifiedAnnotationsPanel ... />}\n * {activePanel === 'history' && <AnnotationHistory ... />}\n * {activePanel === 'info' && <ResourceInfoPanel ... />}\n * {activePanel === 'collaboration' && <CollaborationPanel ... />}\n * {activePanel === 'jsonld' && <JsonLdPanel ... />}\n * </ToolbarPanels>\n */\nexport function ToolbarPanels({\n activePanel,\n theme,\n showLineNumbers,\n hoverDelayMs,\n children\n}: ToolbarPanelsProps) {\n const locale = useLocale();\n const router = useRouter();\n const pathname = usePathname();\n const [isPending, startTransition] = useTransition();\n\n // Panel width management with localStorage persistence\n const { width, setWidth, minWidth, maxWidth } = usePanelWidth();\n\n // Handle locale change events\n const handleLocaleChanged = useCallback(({ locale: newLocale }: { locale: string }) => {\n if (!pathname) return;\n\n startTransition(() => {\n // The router from @/i18n/routing is locale-aware and will handle the locale prefix\n router.replace(pathname, { locale: newLocale });\n });\n }, [pathname, router, startTransition]);\n\n // Subscribe to locale change events\n useEventSubscriptions({\n 'settings:locale-changed': handleLocaleChanged,\n });\n\n // Don't render container if no panel is active\n if (!activePanel) {\n return null;\n }\n\n // In simple context (no children), only user and settings panels are valid.\n // If a resource-specific panel is still active from a previous route, hide the container.\n if (!children && !COMMON_PANELS.includes(activePanel)) {\n return null;\n }\n\n return (\n <div className=\"semiont-toolbar-panels\" style={{ width: `${width}px`, position: 'relative' }}>\n {/* Resize handle on left edge */}\n <ResizeHandle\n onResize={setWidth}\n minWidth={minWidth}\n maxWidth={maxWidth}\n position=\"left\"\n ariaLabel=\"Resize right panel\"\n />\n\n {/* Custom context-specific panels */}\n <div className=\"semiont-toolbar-panels__content\">\n {children}\n\n {/* Knowledge Base Panel - common to all contexts */}\n {activePanel === 'knowledge-base' && (\n <KnowledgeBasePanel />\n )}\n\n {/* User Panel - common to all contexts */}\n {activePanel === 'user' && (\n <UserPanel />\n )}\n\n {/* Settings Panel - common to all contexts */}\n {activePanel === 'settings' && (\n <SettingsPanel\n showLineNumbers={showLineNumbers}\n theme={theme}\n hoverDelayMs={hoverDelayMs}\n locale={locale}\n isPendingLocaleChange={isPending}\n />\n )}\n </div>\n </div>\n );\n}\n"],"names":["CheckIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","FALLBACK_AVATAR","UserPanel","_t","useTranslation","t","k","p","displayName","avatarUrl","userDomain","isAdmin","isModerator","useAuth","clearSession","useAuthContext","apiClient","useApiClient","router","useRouter","imageError","setImageError","useState","timeRemaining","useSessionExpiry","sessionTimeFormatted","formatTime","profileImageUrl","sanitized","sanitizeImageURL","handleSignOut","jsxs","jsx","KnowledgeBasePanel","knowledgeBases","activeKnowledgeBase","setActiveKnowledgeBase","useKnowledgeBaseContext","kb","PlusIcon","ToolbarPanels","activePanel","theme","showLineNumbers","hoverDelayMs","children","locale","useLocale","pathname","usePathname","isPending","startTransition","useTransition","width","setWidth","minWidth","maxWidth","usePanelWidth","handleLocaleChanged","useCallback","newLocale","useEventSubscriptions","COMMON_PANELS","ResizeHandle","SettingsPanel"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as h}from"./query-ATBhtd3K.js";import{r as t}from"./vendor-EnoIVk-c.js";import{d as b,e as v,f as C,g as y,w as P,y as T,T as w}from"./en-IUV4ZXKH-eHunUM2g.js";import{T as L}from"./ToolbarPanels-Drd8QG61.js";import{u as A}from"./i18n-BYxb14hm.js";import"./index-DKq_l4UW.js";import"./useAuth-CAJolYxw.js";import"./AuthContext-CUx-cP7W.js";import"./routing-BLuuVVPN.js";import"./KnowledgeBaseContext-CgnF8K-_.js";import"./PlusIcon-qGFPUzg0.js";function R(){const{t:a}=A(),o=(n,D)=>a(`AdminSecurity.${n}`,D),{activePanel:r}=b(),{theme:l,setTheme:i}=v(),{showLineNumbers:d,toggleLineNumbers:s}=C(),m=t.useCallback(({theme:n})=>{i(n)},[i]),c=t.useCallback(()=>{s()},[s]);y({"settings:theme-changed":m,"settings:line-numbers-toggled":c});const u=P(),{data:e,isLoading:g}=u.oauth.config.useQuery(),p=(e==null?void 0:e.allowedDomains)??[],f=(e==null?void 0:e.providers)??[];return h.jsx(T,{providers:f,allowedDomains:p,isLoading:g,theme:l,showLineNumbers:d,activePanel:r,translations:{title:o("title"),subtitle:o("subtitle"),oauthProviders:o("oauthProviders"),oauthProvidersDescription:o("oauthProvidersDescription"),clientId:o("clientId"),configured:o("configured"),noProvidersConfigured:o("noProvidersConfigured"),allowedDomains:o("allowedDomains"),allowedDomainsDescription:o("allowedDomainsDescription"),noDomainsConfigured:o("noDomainsConfigured"),configManagementTitle:o("configManagementTitle"),configManagementDescription:o("configManagementDescription"),configLocalDev:o("configLocalDev"),configCloudDeploy:o("configCloudDeploy"),configCloudDeployCommand:o("configCloudDeployCommand"),configCloudDeployEnd:o("configCloudDeployEnd"),configAWS:o("configAWS")},ToolbarPanels:L,Toolbar:w})}export{R as default};
|
|
2
|
-
//# sourceMappingURL=client-BbPyO59A.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as M}from"./query-ATBhtd3K.js";import{r as s}from"./vendor-EnoIVk-c.js";import{d as z,e as R,f as B,g as F,w as L,z as y,T as N}from"./en-IUV4ZXKH-eHunUM2g.js";import{T as j}from"./ToolbarPanels-Drd8QG61.js";import{u as D}from"./i18n-BYxb14hm.js";import"./index-DKq_l4UW.js";import"./useAuth-CAJolYxw.js";import"./AuthContext-CUx-cP7W.js";import"./routing-BLuuVVPN.js";import"./KnowledgeBaseContext-CgnF8K-_.js";import"./PlusIcon-qGFPUzg0.js";function Q(){const{t:d}=D(),e=(t,w)=>d(`AdminExchange.${t}`,w),{activePanel:g}=z(),{theme:b,setTheme:p}=R(),{showLineNumbers:C,toggleLineNumbers:m}=B(),x=s.useCallback(({theme:t})=>{p(t)},[p]),f=s.useCallback(()=>{m()},[m]);F({"settings:theme-changed":x,"settings:line-numbers-toggled":f});const c=L(),i=c.exchange.backup.useMutation(),l=c.exchange.restore.useMutation(),[o,u]=s.useState(null),[v,h]=s.useState(null),[T,n]=s.useState(null),[I,a]=s.useState(),[P,r]=s.useState(),E=s.useCallback(()=>{i.mutate()},[i]),k=s.useCallback(async t=>{u(t),n(null),a(void 0),r(void 0),h({format:t.name.endsWith(".tar.gz")||t.name.endsWith(".gz")?"semiont-backup":"unknown",version:1,sourceUrl:"",stats:{}})},[]),S=s.useCallback(()=>{o&&(n("started"),a(void 0),r(void 0),l.mutate({file:o,onProgress:t=>{n(t.phase),a(t.message),t.result&&r(t.result)}}))},[o,l]),A=s.useCallback(()=>{u(null),h(null),n(null),a(void 0),r(void 0)},[]);return M.jsx(y,{onExport:E,isExporting:i.isPending,onFileSelected:k,onImport:S,onCancelImport:A,selectedFile:o,preview:v,isImporting:l.isPending,importPhase:T,importMessage:I,importResult:P,theme:b,showLineNumbers:C,activePanel:g,translations:{title:e("title"),subtitle:e("subtitle"),export:{title:e("exportTitle"),description:e("exportDescription"),exportButton:e("exportButton"),exporting:e("exporting")},import:{title:e("importTitle"),description:e("importDescription"),dropzoneLabel:e("dropzoneLabel"),dropzoneActive:e("dropzoneActive"),detectedFormat:e("detectedFormat"),statsPreview:e("statsPreview"),importButton:e("importButton"),importing:e("importing"),importConfirmTitle:e("importConfirmTitle"),importConfirmMessage:e("importConfirmMessage"),confirmImport:e("confirmImport"),cancelImport:e("cancelImport")},progress:{phaseStarted:e("phaseStarted"),phaseEntityTypes:e("phaseEntityTypes"),phaseResources:e("phaseResources"),phaseAnnotations:e("phaseAnnotations"),phaseComplete:e("phaseComplete"),phaseError:e("phaseError"),hashChainValid:e("hashChainValid"),hashChainInvalid:e("hashChainInvalid"),streams:e("streams"),events:e("events"),blobs:e("blobs")}},ToolbarPanels:j,Toolbar:N})}export{Q as default};
|
|
2
|
-
//# sourceMappingURL=client-BsHptwGn.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as P,j as k}from"./query-ATBhtd3K.js";import{r as u}from"./vendor-EnoIVk-c.js";import{d as D,e as E,f as N,g as S,w as j,x as w,b as F,T as Q}from"./en-IUV4ZXKH-eHunUM2g.js";import{T as q}from"./ToolbarPanels-Drd8QG61.js";import{u as K}from"./i18n-BYxb14hm.js";import"./index-DKq_l4UW.js";import"./useAuth-CAJolYxw.js";import"./AuthContext-CUx-cP7W.js";import"./routing-BLuuVVPN.js";import"./KnowledgeBaseContext-CgnF8K-_.js";import"./PlusIcon-qGFPUzg0.js";function V(){const{t:d}=K(),e=(s,a)=>d(`AdminUsers.${s}`,a),o=P(),{activePanel:m}=D(),{theme:c,setTheme:i}=E(),{showLineNumbers:U,toggleLineNumbers:l}=N(),p=u.useCallback(({theme:s})=>{i(s)},[i]),g=u.useCallback(()=>{l()},[l]);S({"settings:theme-changed":p,"settings:line-numbers-toggled":g});const t=j(),{data:n,isLoading:h}=t.users.list.useQuery(),{data:r,isLoading:v}=t.users.stats.useQuery(),C=t.users.update.useMutation(),b=(n==null?void 0:n.users)??[],y=(r==null?void 0:r.stats)??null,A=async(s,a)=>{try{await C.mutateAsync({id:s,data:a}),o.invalidateQueries({queryKey:["admin.users.list"]}),o.invalidateQueries({queryKey:["admin.users.stats"]})}catch(T){console.error("Failed to update user:",T)}},L=async s=>{console.warn("Delete user not implemented:",s),alert("Delete user functionality is not currently available")},x=()=>{console.log("Add user clicked")},f=()=>{console.log("Export users clicked")};return k.jsx(w,{users:b,userStats:y,isLoadingUsers:h,isLoadingStats:v,onUpdateUser:A,onDeleteUser:L,onAddUser:x,onExportUsers:f,theme:c,showLineNumbers:U,activePanel:m,translations:{title:e("title"),subtitle:e("subtitle"),addUser:e("addUser"),totalUsers:e("totalUsers"),activeUsers:e("activeUsers"),administrators:e("administrators"),recentUsers:e("recentUsers"),searchUsers:e("searchUsers"),searchPlaceholder:e("searchPlaceholder"),role:e("role"),allRoles:e("allRoles"),admin:e("admin"),user:e("user"),status:e("status"),allStatus:e("allStatus"),active:e("active"),inactive:e("inactive"),exportUsers:e("exportUsers"),loadingUsers:e("loadingUsers"),userColumn:e("userColumn"),domainColumn:e("domainColumn"),roleColumn:e("roleColumn"),statusColumn:e("statusColumn"),lastLoginColumn:e("lastLoginColumn"),joinedColumn:e("joinedColumn"),actionsColumn:e("actionsColumn"),noUsersFound:e("noUsersFound"),noUsersFoundDescription:e("noUsersFoundDescription"),noName:e("noName"),never:e("never"),removeAdmin:e("removeAdmin"),makeAdmin:e("makeAdmin"),deactivateUser:e("deactivateUser"),activateUser:e("activateUser"),deleteUser:e("deleteUser")},ToolbarPanels:q,Toolbar:Q,buttonStyles:F})}export{V as default};
|
|
2
|
-
//# sourceMappingURL=client-COY1ucYF.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as w}from"./query-ATBhtd3K.js";import{r as o}from"./vendor-EnoIVk-c.js";import{d as z,e as D,f as F,g as y,D as A,L as B,T as R}from"./en-IUV4ZXKH-eHunUM2g.js";import{T as N}from"./ToolbarPanels-Drd8QG61.js";import{u as j}from"./i18n-BYxb14hm.js";import"./index-DKq_l4UW.js";import"./useAuth-CAJolYxw.js";import"./AuthContext-CUx-cP7W.js";import"./routing-BLuuVVPN.js";import"./KnowledgeBaseContext-CgnF8K-_.js";import"./PlusIcon-qGFPUzg0.js";function Q(){const{t:h}=j(),e=(t,M)=>h(`ModerationLinkedData.${t}`,M),{activePanel:g}=z(),{theme:b,setTheme:p}=D(),{showLineNumbers:C,toggleLineNumbers:m}=F(),x=o.useCallback(({theme:t})=>{p(t)},[p]),f=o.useCallback(()=>{m()},[m]);y({"settings:theme-changed":x,"settings:line-numbers-toggled":f});const u=A(),i=u.exchange.export.useMutation(),l=u.exchange.import.useMutation(),[s,c]=o.useState(null),[v,d]=o.useState(null),[I,n]=o.useState(null),[T,a]=o.useState(),[P,r]=o.useState(),k=o.useCallback(()=>{i.mutate({})},[i]),S=o.useCallback(async t=>{c(t),n(null),a(void 0),r(void 0),d({format:t.name.endsWith(".tar.gz")||t.name.endsWith(".gz")?"semiont-linked-data":"unknown",version:1,sourceUrl:"",stats:{}})},[]),E=o.useCallback(()=>{s&&(n("started"),a(void 0),r(void 0),l.mutate({file:s,onProgress:t=>{n(t.phase),a(t.message),t.result&&r(t.result)}}))},[s,l]),L=o.useCallback(()=>{c(null),d(null),n(null),a(void 0),r(void 0)},[]);return w.jsx(B,{onExport:k,isExporting:i.isPending,onFileSelected:S,onImport:E,onCancelImport:L,selectedFile:s,preview:v,isImporting:l.isPending,importPhase:I,importMessage:T,importResult:P,theme:b,showLineNumbers:C,activePanel:g,translations:{title:e("title"),subtitle:e("subtitle"),export:{title:e("exportTitle"),description:e("exportDescription"),exportButton:e("exportButton"),exporting:e("exporting")},import:{title:e("importTitle"),description:e("importDescription"),dropzoneLabel:e("dropzoneLabel"),dropzoneActive:e("dropzoneActive"),detectedFormat:e("detectedFormat"),statsPreview:e("statsPreview"),importButton:e("importButton"),importing:e("importing"),importConfirmTitle:e("importConfirmTitle"),importConfirmMessage:e("importConfirmMessage"),confirmImport:e("confirmImport"),cancelImport:e("cancelImport")},progress:{phaseStarted:e("phaseStarted"),phaseEntityTypes:e("phaseEntityTypes"),phaseResources:e("phaseResources"),phaseAnnotations:e("phaseAnnotations"),phaseComplete:e("phaseComplete"),phaseError:e("phaseError"),hashChainValid:e("hashChainValid"),hashChainInvalid:e("hashChainInvalid"),streams:e("streams"),events:e("events"),blobs:e("blobs")}},ToolbarPanels:N,Toolbar:R})}export{Q as default};
|
|
2
|
-
//# sourceMappingURL=client-DZ-DNAU-.js.map
|