@semiont/frontend 0.4.6 → 0.4.7

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.
Files changed (80) hide show
  1. package/dist/assets/AuthContext-xM132UqD.js +2 -0
  2. package/dist/assets/AuthContext-xM132UqD.js.map +1 -0
  3. package/dist/assets/{CookiePreferences-C35ds4bQ.js → CookiePreferences-L69Zja-8.js} +2 -2
  4. package/dist/assets/{CookiePreferences-C35ds4bQ.js.map → CookiePreferences-L69Zja-8.js.map} +1 -1
  5. package/dist/assets/{PdfAnnotationCanvas.client-LF6DDTCV-B4G1hSau.js → PdfAnnotationCanvas.client-LF6DDTCV-DjnFutDo.js} +2 -2
  6. package/dist/assets/{PdfAnnotationCanvas.client-LF6DDTCV-B4G1hSau.js.map → PdfAnnotationCanvas.client-LF6DDTCV-DjnFutDo.js.map} +1 -1
  7. package/dist/assets/{ToolbarPanels-zXxZM4bL.js → ToolbarPanels-Dq0eXjjR.js} +2 -2
  8. package/dist/assets/{ToolbarPanels-zXxZM4bL.js.map → ToolbarPanels-Dq0eXjjR.js.map} +1 -1
  9. package/dist/assets/{client-CgVU9eN0.js → client-CmvSjN3K.js} +2 -2
  10. package/dist/assets/{client-CgVU9eN0.js.map → client-CmvSjN3K.js.map} +1 -1
  11. package/dist/assets/{client-BFN4OqK0.js → client-Cxt1NUWp.js} +2 -2
  12. package/dist/assets/{client-BFN4OqK0.js.map → client-Cxt1NUWp.js.map} +1 -1
  13. package/dist/assets/{client-CF_pv0rC.js → client-D1NYe5bc.js} +2 -2
  14. package/dist/assets/{client-CF_pv0rC.js.map → client-D1NYe5bc.js.map} +1 -1
  15. package/dist/assets/{client-Di531MRg.js → client-D5mudL5R.js} +2 -2
  16. package/dist/assets/{client-Di531MRg.js.map → client-D5mudL5R.js.map} +1 -1
  17. package/dist/assets/{en-LNW2A3RA-BUa1vcQc.js → en-LNW2A3RA-CQBvSBCl.js} +5 -5
  18. package/dist/assets/{en-LNW2A3RA-BUa1vcQc.js.map → en-LNW2A3RA-CQBvSBCl.js.map} +1 -1
  19. package/dist/assets/{index-DsKSr5Q5.js → index-IyxbPWuo.js} +3 -3
  20. package/dist/assets/{index-DsKSr5Q5.js.map → index-IyxbPWuo.js.map} +1 -1
  21. package/dist/assets/{layout-CdHgzhHf.js → layout-5_En-vLB.js} +2 -2
  22. package/dist/assets/{layout-CdHgzhHf.js.map → layout-5_En-vLB.js.map} +1 -1
  23. package/dist/assets/{layout-CYimsq_V.js → layout-DF8lLIQx.js} +2 -2
  24. package/dist/assets/{layout-CYimsq_V.js.map → layout-DF8lLIQx.js.map} +1 -1
  25. package/dist/assets/{layout-BRiOZEGL.js → layout-DYaEHeqB.js} +2 -2
  26. package/dist/assets/{layout-BRiOZEGL.js.map → layout-DYaEHeqB.js.map} +1 -1
  27. package/dist/assets/{layout-C-7nzim0.js → layout-QdxLp1Jq.js} +2 -2
  28. package/dist/assets/{layout-C-7nzim0.js.map → layout-QdxLp1Jq.js.map} +1 -1
  29. package/dist/assets/{not-found-D_yWa0eC.js → not-found-BjlzlRT_.js} +2 -2
  30. package/dist/assets/{not-found-D_yWa0eC.js.map → not-found-BjlzlRT_.js.map} +1 -1
  31. package/dist/assets/{page-Dnixz6NY.js → page-4vdCvEL0.js} +2 -2
  32. package/dist/assets/{page-Dnixz6NY.js.map → page-4vdCvEL0.js.map} +1 -1
  33. package/dist/assets/{page-BItZqEKs.js → page-6Y-lDxnu.js} +2 -2
  34. package/dist/assets/{page-BItZqEKs.js.map → page-6Y-lDxnu.js.map} +1 -1
  35. package/dist/assets/{page-BKC4knAP.js → page-B8hAUDzt.js} +2 -2
  36. package/dist/assets/{page-BKC4knAP.js.map → page-B8hAUDzt.js.map} +1 -1
  37. package/dist/assets/{page-aXQvfZxG.js → page-BUPqapmo.js} +2 -2
  38. package/dist/assets/{page-aXQvfZxG.js.map → page-BUPqapmo.js.map} +1 -1
  39. package/dist/assets/{page-KzkTaHkN.js → page-Bb2aSxYZ.js} +2 -2
  40. package/dist/assets/{page-KzkTaHkN.js.map → page-Bb2aSxYZ.js.map} +1 -1
  41. package/dist/assets/{page-Nxgrl4fs.js → page-CG2brhZf.js} +2 -2
  42. package/dist/assets/{page-Nxgrl4fs.js.map → page-CG2brhZf.js.map} +1 -1
  43. package/dist/assets/{page-aAjfohhi.js → page-CPxgvPSe.js} +2 -2
  44. package/dist/assets/{page-aAjfohhi.js.map → page-CPxgvPSe.js.map} +1 -1
  45. package/dist/assets/{page-OQxske5w.js → page-CTn7lGDa.js} +2 -2
  46. package/dist/assets/{page-OQxske5w.js.map → page-CTn7lGDa.js.map} +1 -1
  47. package/dist/assets/page-CkeyIRf4.js +2 -0
  48. package/dist/assets/{page-amCJRFD1.js.map → page-CkeyIRf4.js.map} +1 -1
  49. package/dist/assets/{page-CRyuR46S.js → page-D77AjrZW.js} +2 -2
  50. package/dist/assets/{page-CRyuR46S.js.map → page-D77AjrZW.js.map} +1 -1
  51. package/dist/assets/{page-DayDCUEn.js → page-D7qEC0QY.js} +2 -2
  52. package/dist/assets/{page-DayDCUEn.js.map → page-D7qEC0QY.js.map} +1 -1
  53. package/dist/assets/{page-DnbS5nGR.js → page-DA0znMx6.js} +2 -2
  54. package/dist/assets/{page-DnbS5nGR.js.map → page-DA0znMx6.js.map} +1 -1
  55. package/dist/assets/{page-ciRM605J.js → page-DwQP9ZTM.js} +2 -2
  56. package/dist/assets/{page-ciRM605J.js.map → page-DwQP9ZTM.js.map} +1 -1
  57. package/dist/assets/{page-BBlT4pdR.js → page-MyIklHT7.js} +2 -2
  58. package/dist/assets/{page-BBlT4pdR.js.map → page-MyIklHT7.js.map} +1 -1
  59. package/dist/assets/{page-B209dGEN.js → page-VpcpXQSK.js} +2 -2
  60. package/dist/assets/{page-B209dGEN.js.map → page-VpcpXQSK.js.map} +1 -1
  61. package/dist/assets/{page-BZ2PDkOm.js → page-bnSUmwNQ.js} +2 -2
  62. package/dist/assets/{page-BZ2PDkOm.js.map → page-bnSUmwNQ.js.map} +1 -1
  63. package/dist/assets/{page-C8k0U1_B.js → page-kZNdnhdh.js} +2 -2
  64. package/dist/assets/{page-C8k0U1_B.js.map → page-kZNdnhdh.js.map} +1 -1
  65. package/dist/assets/{page-QmDs_FHZ.js → page-n2Dj9C-v.js} +2 -2
  66. package/dist/assets/{page-QmDs_FHZ.js.map → page-n2Dj9C-v.js.map} +1 -1
  67. package/dist/assets/{privacy-B1CWCygr.js → privacy-D5H-YTl9.js} +2 -2
  68. package/dist/assets/{privacy-B1CWCygr.js.map → privacy-D5H-YTl9.js.map} +1 -1
  69. package/dist/assets/{routing-BhiBwewL.js → routing-CBiIPmyX.js} +2 -2
  70. package/dist/assets/{routing-BhiBwewL.js.map → routing-CBiIPmyX.js.map} +1 -1
  71. package/dist/assets/{routing-QElszVRP.js → routing-tt0MahYa.js} +2 -2
  72. package/dist/assets/{routing-QElszVRP.js.map → routing-tt0MahYa.js.map} +1 -1
  73. package/dist/assets/{useAuth-ByOA13lp.js → useAuth-Bw_w8L0H.js} +2 -2
  74. package/dist/assets/{useAuth-ByOA13lp.js.map → useAuth-Bw_w8L0H.js.map} +1 -1
  75. package/dist/index.html +1 -1
  76. package/package.json +1 -1
  77. package/server.js +18 -2
  78. package/dist/assets/AuthContext-BVzUcaCU.js +0 -2
  79. package/dist/assets/AuthContext-BVzUcaCU.js.map +0 -1
  80. package/dist/assets/page-amCJRFD1.js +0 -2
@@ -1,2 +1,2 @@
1
- import{j as a}from"./query-ATBhtd3K.js";import{r as t,O as b}from"./vendor-EnoIVk-c.js";import{l as k,$ as g,a0 as w,a1 as v,a2 as L,F as j}from"./en-LNW2A3RA-BUa1vcQc.js";import{b as E,L as S}from"./routing-QElszVRP.js";import{u as p}from"./i18n-BYxb14hm.js";import{F as y}from"./ArrowsRightLeftIcon-CMDe963r.js";import{F as R,a as $}from"./ChevronLeftIcon-CMXd_XZQ.js";import{C as A}from"./CookiePreferences-C35ds4bQ.js";import{K as C}from"./privacy-B1CWCygr.js";import{r as u,L as h}from"./routing-BhiBwewL.js";import{u as F}from"./useAuth-ByOA13lp.js";import{a as N}from"./AuthContext-BVzUcaCU.js";import"./index-DsKSr5Q5.js";function H({title:r,titleId:e,...o},s){return t.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:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25"}))}const M=t.forwardRef(H);function O({title:r,titleId:e,...o},s){return t.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:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const T=t.forwardRef(O);function D({title:r,titleId:e,...o},s){return t.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:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 6h.008v.008H6V6Z"}))}const K=t.forwardRef(D);function B({href:r,to:e,...o}){return a.jsx(S,{to:r??"",...o})}function P({isCollapsed:r,toggleCollapsed:e,navigationMenu:o}){const{t:s}=p(),n=(m,f)=>s(`Moderation.${m}`,f),{t:c}=p(),i=(m,f)=>c(`Sidebar.${m}`,f),l=E(),d=t.useCallback(()=>{e()},[e]);k({"browse:sidebar-toggle":d});const x=[{name:n("recentResources"),href:"/moderate/recent",icon:T,description:n("recentResourcesDescription")},{name:n("entityTags"),href:"/moderate/entity-tags",icon:K,description:n("entityTagsDescription")},{name:n("tagSchemas"),href:"/moderate/tag-schemas",icon:M,description:n("tagSchemasDescription")},{name:n("linkedData"),href:"/moderate/linked-data",icon:y,description:n("linkedDataDescription")}];return a.jsx(g,{title:n("title"),items:x,currentPath:l,LinkComponent:B,...o&&{dropdownContent:o},isCollapsed:r,icons:{chevronLeft:$,bars:R},collapseSidebarLabel:i("collapseSidebar"),expandSidebarLabel:i("expandSidebar")})}function ee(){const{t:r}=p(),e=t.useContext(C),{isAuthenticated:o,isAdmin:s,isModerator:n,token:c}=F();return a.jsx(w,{token:c,children:a.jsx(v,{baseUrl:N,children:a.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",children:[a.jsxs("div",{className:"flex flex-1",children:[a.jsx(L,{Link:h,routes:u,t:i=>r(`Navigation.${i}`),tHome:i=>r(`Home.${i}`),brandingLink:"/",collapsible:!0,storageKey:"moderation-sidebar-collapsed",isAuthenticated:o,isAdmin:s,isModerator:n,children:(i,l,d)=>a.jsx(P,{isCollapsed:i,toggleCollapsed:l,navigationMenu:d})}),a.jsx("main",{className:"flex-1 p-6 flex flex-col",children:a.jsx("div",{className:"max-w-7xl mx-auto flex-1 flex flex-col w-full",children:a.jsx(b,{})})})]}),a.jsx(j,{Link:h,routes:u,t:i=>r(`Footer.${i}`),CookiePreferences:A,...(e==null?void 0:e.openKeyboardHelp)&&{onOpenKeyboardHelp:e.openKeyboardHelp}})]})})})}export{ee as default};
2
- //# sourceMappingURL=layout-CdHgzhHf.js.map
1
+ import{j as a}from"./query-ATBhtd3K.js";import{r as t,O as b}from"./vendor-EnoIVk-c.js";import{l as k,$ as g,a0 as w,a1 as v,a2 as L,F as j}from"./en-LNW2A3RA-CQBvSBCl.js";import{b as E,L as S}from"./routing-tt0MahYa.js";import{u as p}from"./i18n-BYxb14hm.js";import{F as y}from"./ArrowsRightLeftIcon-CMDe963r.js";import{F as R,a as $}from"./ChevronLeftIcon-CMXd_XZQ.js";import{C as A}from"./CookiePreferences-L69Zja-8.js";import{K as C}from"./privacy-D5H-YTl9.js";import{r as u,L as h}from"./routing-CBiIPmyX.js";import{u as F}from"./useAuth-Bw_w8L0H.js";import{a as N}from"./AuthContext-xM132UqD.js";import"./index-IyxbPWuo.js";function H({title:r,titleId:e,...o},s){return t.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:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25"}))}const M=t.forwardRef(H);function O({title:r,titleId:e,...o},s){return t.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:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}))}const T=t.forwardRef(O);function D({title:r,titleId:e,...o},s){return t.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:s,"aria-labelledby":e},o),r?t.createElement("title",{id:e},r):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"}),t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 6h.008v.008H6V6Z"}))}const K=t.forwardRef(D);function B({href:r,to:e,...o}){return a.jsx(S,{to:r??"",...o})}function P({isCollapsed:r,toggleCollapsed:e,navigationMenu:o}){const{t:s}=p(),n=(m,f)=>s(`Moderation.${m}`,f),{t:c}=p(),i=(m,f)=>c(`Sidebar.${m}`,f),l=E(),d=t.useCallback(()=>{e()},[e]);k({"browse:sidebar-toggle":d});const x=[{name:n("recentResources"),href:"/moderate/recent",icon:T,description:n("recentResourcesDescription")},{name:n("entityTags"),href:"/moderate/entity-tags",icon:K,description:n("entityTagsDescription")},{name:n("tagSchemas"),href:"/moderate/tag-schemas",icon:M,description:n("tagSchemasDescription")},{name:n("linkedData"),href:"/moderate/linked-data",icon:y,description:n("linkedDataDescription")}];return a.jsx(g,{title:n("title"),items:x,currentPath:l,LinkComponent:B,...o&&{dropdownContent:o},isCollapsed:r,icons:{chevronLeft:$,bars:R},collapseSidebarLabel:i("collapseSidebar"),expandSidebarLabel:i("expandSidebar")})}function ee(){const{t:r}=p(),e=t.useContext(C),{isAuthenticated:o,isAdmin:s,isModerator:n,token:c}=F();return a.jsx(w,{token:c,children:a.jsx(v,{baseUrl:N,children:a.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",children:[a.jsxs("div",{className:"flex flex-1",children:[a.jsx(L,{Link:h,routes:u,t:i=>r(`Navigation.${i}`),tHome:i=>r(`Home.${i}`),brandingLink:"/",collapsible:!0,storageKey:"moderation-sidebar-collapsed",isAuthenticated:o,isAdmin:s,isModerator:n,children:(i,l,d)=>a.jsx(P,{isCollapsed:i,toggleCollapsed:l,navigationMenu:d})}),a.jsx("main",{className:"flex-1 p-6 flex flex-col",children:a.jsx("div",{className:"max-w-7xl mx-auto flex-1 flex flex-col w-full",children:a.jsx(b,{})})})]}),a.jsx(j,{Link:h,routes:u,t:i=>r(`Footer.${i}`),CookiePreferences:A,...(e==null?void 0:e.openKeyboardHelp)&&{onOpenKeyboardHelp:e.openKeyboardHelp}})]})})})}export{ee as default};
2
+ //# sourceMappingURL=layout-5_En-vLB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout-CdHgzhHf.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js","../../src/components/moderation/ModerationNavigation.tsx","../../src/app/[locale]/moderate/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction BookOpenIcon({\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: \"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(BookOpenIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ClockIcon({\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: \"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ClockIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction TagIcon({\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: \"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 6h.008v.008H6V6Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(TagIcon);\nexport default ForwardRef;","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname } from '@/i18n/routing';\nimport { SimpleNavigation, useEventSubscriptions } from '@semiont/react-ui';\nimport type { SimpleNavigationItem } from '@semiont/react-ui';\nimport {\n ClockIcon,\n TagIcon,\n BookOpenIcon,\n ArrowsRightLeftIcon,\n ChevronLeftIcon,\n Bars3Icon\n} from '@heroicons/react/24/outline';\n\ninterface ModerationNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: SimpleNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: ModerationNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Moderation.${k}`, p as any) as string;\n const { t: _tSidebar } = useTranslation();\n const tSidebar = (k: string, p?: Record<string, unknown>) => _tSidebar(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Subscribe to sidebar toggle events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n });\n\n const navigation: SimpleNavigationItem[] = [\n {\n name: t('recentResources'),\n href: '/moderate/recent',\n icon: ClockIcon,\n description: t('recentResourcesDescription')\n },\n {\n name: t('entityTags'),\n href: '/moderate/entity-tags',\n icon: TagIcon,\n description: t('entityTagsDescription')\n },\n {\n name: t('tagSchemas'),\n href: '/moderate/tag-schemas',\n icon: BookOpenIcon,\n description: t('tagSchemasDescription')\n },\n {\n name: t('linkedData'),\n href: '/moderate/linked-data',\n icon: ArrowsRightLeftIcon,\n description: t('linkedDataDescription')\n }\n ];\n\n return (\n <SimpleNavigation\n title={t('title')}\n items={navigation}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n {...(navigationMenu && { dropdownContent: navigationMenu })}\n isCollapsed={isCollapsed}\n icons={{\n chevronLeft: ChevronLeftIcon as React.ComponentType<{ className?: string }>,\n bars: Bars3Icon as React.ComponentType<{ className?: string }>\n }}\n collapseSidebarLabel={tSidebar('collapseSidebar')}\n expandSidebarLabel={tSidebar('expandSidebar')}\n />\n );\n}","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { LeftSidebar, Footer, ApiClientProvider, AuthTokenProvider } from '@semiont/react-ui';\nimport { ModerationNavigation } from '@/components/moderation/ModerationNavigation';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\nimport { SEMIONT_BACKEND_URL } from '@/lib/env';\n\nexport default function ModerateLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const { isAuthenticated, isAdmin, isModerator, token: authToken } = useAuth();\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={SEMIONT_BACKEND_URL}>\n <div className=\"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col\">\n <div className=\"flex flex-1\">\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Navigation.${key}`)}\n tHome={(key: string) => t(`Home.${key}`)}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"moderation-sidebar-collapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <ModerationNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n <main className=\"flex-1 p-6 flex flex-col\">\n <div className=\"max-w-7xl mx-auto flex-1 flex flex-col w-full\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Footer.${key}`)}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["BookOpenIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","ClockIcon","TagIcon","HrefLink","href","_to","Link","ModerationNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","p","_tSidebar","tSidebar","pathname","usePathname","handleSidebarToggle","useCallback","useEventSubscriptions","navigation","ArrowsRightLeftIcon","jsx","SimpleNavigation","ChevronLeftIcon","Bars3Icon","ModerateLayout","keyboardContext","useContext","KeyboardShortcutsContext","isAuthenticated","isAdmin","isModerator","authToken","useAuth","AuthTokenProvider","ApiClientProvider","SEMIONT_BACKEND_URL","jsxs","LeftSidebar","routes","key","Outlet","Footer","CookiePreferences"],"mappings":"snBACA,SAASA,EAAa,CACpB,MAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,gBAAoB,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAAA,cAAoB,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAAA,cAAoB,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,oPACP,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BC,EAAAA,WAAiBP,CAAY,ECvB9D,SAASQ,EAAU,CACjB,MAAAP,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,gBAAoB,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAAA,cAAoB,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAAA,cAAoB,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,kDACP,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BC,EAAAA,WAAiBC,CAAS,ECvB3D,SAASC,EAAQ,CACf,MAAAR,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,gBAAoB,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,KAAM,OACN,QAAS,YACT,YAAa,IACb,OAAQ,eACR,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAAA,cAAoB,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAAA,cAAoB,OAAQ,CACzD,cAAe,QACf,eAAgB,QAChB,EAAG,+MACP,CAAG,EAAgBA,EAAAA,cAAoB,OAAQ,CAC3C,cAAe,QACf,eAAgB,QAChB,EAAG,qBACP,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BC,EAAAA,WAAiBE,CAAO,ECNzD,SAASC,EAAS,CAAE,KAAAC,EAAM,GAAIC,EAAK,GAAGT,GAAgE,CACpG,aAAQU,EAAA,CAAK,GAAKF,GAAQ,GAAgB,GAAGR,EAAO,CACtD,CAEO,SAASW,EAAqB,CAAE,YAAAC,EAAa,gBAAAC,EAAiB,eAAAC,GAA6C,CAChH,KAAM,CAAE,EAAGC,CAAA,EAAOC,EAAA,EACZC,EAAI,CAACC,EAAWC,IAAgCJ,EAAG,cAAcG,CAAC,GAAIC,CAAQ,EAC9E,CAAE,EAAGC,CAAA,EAAcJ,EAAA,EACnBK,EAAW,CAACH,EAAWC,IAAgCC,EAAU,WAAWF,CAAC,GAAIC,CAAQ,EACzFG,EAAWC,EAAA,EAGXC,EAAsBC,EAAAA,YAAY,IAAM,CAC5CZ,EAAA,CACF,EAAG,CAACA,CAAe,CAAC,EAGpBa,EAAsB,CACpB,wBAAyBF,CAAA,CAC1B,EAED,MAAMG,EAAqC,CACzC,CACE,KAAMV,EAAE,iBAAiB,EACzB,KAAM,mBACN,KAAMZ,EACN,YAAaY,EAAE,4BAA4B,CAAA,EAE7C,CACE,KAAMA,EAAE,YAAY,EACpB,KAAM,wBACN,KAAMX,EACN,YAAaW,EAAE,uBAAuB,CAAA,EAExC,CACE,KAAMA,EAAE,YAAY,EACpB,KAAM,wBACN,KAAMpB,EACN,YAAaoB,EAAE,uBAAuB,CAAA,EAExC,CACE,KAAMA,EAAE,YAAY,EACpB,KAAM,wBACN,KAAMW,EACN,YAAaX,EAAE,uBAAuB,CAAA,CACxC,EAGF,OACEY,EAAAA,IAACC,EAAA,CACC,MAAOb,EAAE,OAAO,EAChB,MAAOU,EACP,YAAaL,EACb,cAAef,EACd,GAAIO,GAAkB,CAAE,gBAAiBA,CAAA,EAC1C,YAAAF,EACA,MAAO,CACL,YAAamB,EACb,KAAMC,CAAA,EAER,qBAAsBX,EAAS,iBAAiB,EAChD,mBAAoBA,EAAS,eAAe,CAAA,CAAA,CAGlD,CC3EA,SAAwBY,IAAiB,CACvC,KAAM,CAAE,EAAAhB,CAAA,EAAMD,EAAA,EACRkB,EAAkBC,EAAAA,WAAWC,CAAwB,EACrD,CAAE,gBAAAC,EAAiB,QAAAC,EAAS,YAAAC,EAAa,MAAOC,CAAA,EAAcC,EAAA,EAEpE,OACEZ,EAAAA,IAACa,EAAA,CAAkB,MAAOF,EACxB,SAAAX,EAAAA,IAACc,EAAA,CAAkB,QAASC,EAC1B,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,yDACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAhB,EAAAA,IAACiB,EAAA,CAAA,KACCpC,EACA,OAAAqC,EACA,EAAIC,GAAgB/B,EAAE,cAAc+B,CAAG,EAAE,EACzC,MAAQA,GAAgB/B,EAAE,QAAQ+B,CAAG,EAAE,EACvC,aAAa,IACb,YAAa,GACb,WAAW,+BACX,gBAAAX,EACA,QAAAC,EACA,YAAAC,EAEC,SAAA,CAAC3B,EAAaC,EAAiBC,IAC9Be,EAAAA,IAAClB,EAAA,CACC,YAAAC,EACA,gBAAAC,EACA,eAAAC,CAAA,CAAA,CACF,CAAA,EAGJe,EAAAA,IAAC,OAAA,CAAK,UAAU,2BACd,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,gDACb,SAAAA,EAAAA,IAACoB,EAAA,CAAA,CAAO,CAAA,CACV,CAAA,CACF,CAAA,EACF,EACApB,EAAAA,IAACqB,EAAA,CAAA,KACCxC,EACA,OAAAqC,EACA,EAAIC,GAAgB/B,EAAE,UAAU+B,CAAG,EAAE,EACrC,kBAAAG,EACC,IAAIjB,GAAA,YAAAA,EAAiB,mBAAoB,CAAE,mBAAoBA,EAAgB,gBAAA,CAAiB,CAAA,CACnG,CAAA,CACF,EACF,EACF,CAEJ","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"layout-5_En-vLB.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/BookOpenIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/ClockIcon.js","../../../../node_modules/@heroicons/react/24/outline/esm/TagIcon.js","../../src/components/moderation/ModerationNavigation.tsx","../../src/app/[locale]/moderate/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction BookOpenIcon({\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: \"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(BookOpenIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ClockIcon({\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: \"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ClockIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction TagIcon({\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: \"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M6 6h.008v.008H6V6Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(TagIcon);\nexport default ForwardRef;","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname } from '@/i18n/routing';\nimport { SimpleNavigation, useEventSubscriptions } from '@semiont/react-ui';\nimport type { SimpleNavigationItem } from '@semiont/react-ui';\nimport {\n ClockIcon,\n TagIcon,\n BookOpenIcon,\n ArrowsRightLeftIcon,\n ChevronLeftIcon,\n Bars3Icon\n} from '@heroicons/react/24/outline';\n\ninterface ModerationNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: SimpleNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function ModerationNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: ModerationNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Moderation.${k}`, p as any) as string;\n const { t: _tSidebar } = useTranslation();\n const tSidebar = (k: string, p?: Record<string, unknown>) => _tSidebar(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Subscribe to sidebar toggle events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n });\n\n const navigation: SimpleNavigationItem[] = [\n {\n name: t('recentResources'),\n href: '/moderate/recent',\n icon: ClockIcon,\n description: t('recentResourcesDescription')\n },\n {\n name: t('entityTags'),\n href: '/moderate/entity-tags',\n icon: TagIcon,\n description: t('entityTagsDescription')\n },\n {\n name: t('tagSchemas'),\n href: '/moderate/tag-schemas',\n icon: BookOpenIcon,\n description: t('tagSchemasDescription')\n },\n {\n name: t('linkedData'),\n href: '/moderate/linked-data',\n icon: ArrowsRightLeftIcon,\n description: t('linkedDataDescription')\n }\n ];\n\n return (\n <SimpleNavigation\n title={t('title')}\n items={navigation}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n {...(navigationMenu && { dropdownContent: navigationMenu })}\n isCollapsed={isCollapsed}\n icons={{\n chevronLeft: ChevronLeftIcon as React.ComponentType<{ className?: string }>,\n bars: Bars3Icon as React.ComponentType<{ className?: string }>\n }}\n collapseSidebarLabel={tSidebar('collapseSidebar')}\n expandSidebarLabel={tSidebar('expandSidebar')}\n />\n );\n}","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { LeftSidebar, Footer, ApiClientProvider, AuthTokenProvider } from '@semiont/react-ui';\nimport { ModerationNavigation } from '@/components/moderation/ModerationNavigation';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\nimport { SEMIONT_BACKEND_URL } from '@/lib/env';\n\nexport default function ModerateLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const { isAuthenticated, isAdmin, isModerator, token: authToken } = useAuth();\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={SEMIONT_BACKEND_URL}>\n <div className=\"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col\">\n <div className=\"flex flex-1\">\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Navigation.${key}`)}\n tHome={(key: string) => t(`Home.${key}`)}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"moderation-sidebar-collapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <ModerationNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n <main className=\"flex-1 p-6 flex flex-col\">\n <div className=\"max-w-7xl mx-auto flex-1 flex flex-col w-full\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Footer.${key}`)}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["BookOpenIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","ClockIcon","TagIcon","HrefLink","href","_to","Link","ModerationNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","p","_tSidebar","tSidebar","pathname","usePathname","handleSidebarToggle","useCallback","useEventSubscriptions","navigation","ArrowsRightLeftIcon","jsx","SimpleNavigation","ChevronLeftIcon","Bars3Icon","ModerateLayout","keyboardContext","useContext","KeyboardShortcutsContext","isAuthenticated","isAdmin","isModerator","authToken","useAuth","AuthTokenProvider","ApiClientProvider","SEMIONT_BACKEND_URL","jsxs","LeftSidebar","routes","key","Outlet","Footer","CookiePreferences"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,2 +1,2 @@
1
- import{j as e}from"./query-ATBhtd3K.js";import{r as s,O as b}from"./vendor-EnoIVk-c.js";import{b as g,L as v}from"./routing-QElszVRP.js";import{l as k,$ as L,a0 as j,a1 as w,a2 as S,F}from"./en-LNW2A3RA-BUa1vcQc.js";import{u as f}from"./i18n-BYxb14hm.js";import{F as $,C as A}from"./CookiePreferences-C35ds4bQ.js";import{F as y}from"./ArrowsRightLeftIcon-CMDe963r.js";import{F as N}from"./CommandLineIcon-BBerq9Nd.js";import{F as R,a as C}from"./ChevronLeftIcon-CMXd_XZQ.js";import{K as E}from"./privacy-B1CWCygr.js";import{r as u,L as x}from"./routing-BhiBwewL.js";import{u as K}from"./useAuth-ByOA13lp.js";import{a as H}from"./AuthContext-BVzUcaCU.js";import"./index-DsKSr5Q5.js";function D({title:a,titleId:r,...n},i){return s.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:i,"aria-labelledby":r},n),a?s.createElement("title",{id:r},a):null,s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"}))}const M=s.forwardRef(D);function O({href:a,to:r,...n}){return e.jsx(v,{to:a??"",...n})}function P({isCollapsed:a,toggleCollapsed:r,navigationMenu:n}){const{t:i}=f(),o=(m,p)=>i(`Administration.${m}`,p),{t:c}=f(),t=(m,p)=>c(`Sidebar.${m}`,p),d=g(),l=s.useCallback(()=>{r()},[r]);k({"browse:sidebar-toggle":l});const h=[{name:o("users"),href:"/admin/users",icon:M,description:o("usersDescription")},{name:o("oauthSettings"),href:"/admin/security",icon:$,description:o("oauthSettingsDescription")},{name:o("exchange"),href:"/admin/exchange",icon:y,description:o("exchangeDescription")},{name:o("devops"),href:"/admin/devops",icon:N,description:o("devopsDescription")}];return e.jsx(L,{title:o("title"),items:h,currentPath:d,LinkComponent:O,...n&&{dropdownContent:n},isCollapsed:a,icons:{chevronLeft:C,bars:R},collapseSidebarLabel:t("collapseSidebar"),expandSidebarLabel:t("expandSidebar")})}function Y(){const{t:a}=f(),r=s.useContext(E),{isAuthenticated:n,isAdmin:i,isModerator:o,token:c}=K();return e.jsx(j,{token:c,children:e.jsx(w,{baseUrl:H,children:e.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",children:[e.jsxs("div",{className:"flex flex-1",children:[e.jsx(S,{Link:x,routes:u,t:t=>a(`Navigation.${t}`),tHome:t=>a(`Home.${t}`),brandingLink:"/",collapsible:!0,storageKey:"admin-sidebar-collapsed",isAuthenticated:n,isAdmin:i,isModerator:o,children:(t,d,l)=>e.jsx(P,{isCollapsed:t,toggleCollapsed:d,navigationMenu:l})}),e.jsx("main",{className:"flex-1 p-6 flex flex-col",children:e.jsx("div",{className:"max-w-7xl mx-auto flex-1 flex flex-col w-full",children:e.jsx(b,{})})})]}),e.jsx(F,{Link:x,routes:u,t:t=>a(`Footer.${t}`),CookiePreferences:A,...(r==null?void 0:r.openKeyboardHelp)&&{onOpenKeyboardHelp:r.openKeyboardHelp}})]})})})}export{Y as default};
2
- //# sourceMappingURL=layout-CYimsq_V.js.map
1
+ import{j as e}from"./query-ATBhtd3K.js";import{r as s,O as b}from"./vendor-EnoIVk-c.js";import{b as g,L as v}from"./routing-tt0MahYa.js";import{l as k,$ as L,a0 as j,a1 as w,a2 as S,F}from"./en-LNW2A3RA-CQBvSBCl.js";import{u as f}from"./i18n-BYxb14hm.js";import{F as $,C as A}from"./CookiePreferences-L69Zja-8.js";import{F as y}from"./ArrowsRightLeftIcon-CMDe963r.js";import{F as N}from"./CommandLineIcon-BBerq9Nd.js";import{F as R,a as C}from"./ChevronLeftIcon-CMXd_XZQ.js";import{K as E}from"./privacy-D5H-YTl9.js";import{r as u,L as x}from"./routing-CBiIPmyX.js";import{u as K}from"./useAuth-Bw_w8L0H.js";import{a as H}from"./AuthContext-xM132UqD.js";import"./index-IyxbPWuo.js";function D({title:a,titleId:r,...n},i){return s.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:i,"aria-labelledby":r},n),a?s.createElement("title",{id:r},a):null,s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"}))}const M=s.forwardRef(D);function O({href:a,to:r,...n}){return e.jsx(v,{to:a??"",...n})}function P({isCollapsed:a,toggleCollapsed:r,navigationMenu:n}){const{t:i}=f(),o=(m,p)=>i(`Administration.${m}`,p),{t:c}=f(),t=(m,p)=>c(`Sidebar.${m}`,p),d=g(),l=s.useCallback(()=>{r()},[r]);k({"browse:sidebar-toggle":l});const h=[{name:o("users"),href:"/admin/users",icon:M,description:o("usersDescription")},{name:o("oauthSettings"),href:"/admin/security",icon:$,description:o("oauthSettingsDescription")},{name:o("exchange"),href:"/admin/exchange",icon:y,description:o("exchangeDescription")},{name:o("devops"),href:"/admin/devops",icon:N,description:o("devopsDescription")}];return e.jsx(L,{title:o("title"),items:h,currentPath:d,LinkComponent:O,...n&&{dropdownContent:n},isCollapsed:a,icons:{chevronLeft:C,bars:R},collapseSidebarLabel:t("collapseSidebar"),expandSidebarLabel:t("expandSidebar")})}function Y(){const{t:a}=f(),r=s.useContext(E),{isAuthenticated:n,isAdmin:i,isModerator:o,token:c}=K();return e.jsx(j,{token:c,children:e.jsx(w,{baseUrl:H,children:e.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",children:[e.jsxs("div",{className:"flex flex-1",children:[e.jsx(S,{Link:x,routes:u,t:t=>a(`Navigation.${t}`),tHome:t=>a(`Home.${t}`),brandingLink:"/",collapsible:!0,storageKey:"admin-sidebar-collapsed",isAuthenticated:n,isAdmin:i,isModerator:o,children:(t,d,l)=>e.jsx(P,{isCollapsed:t,toggleCollapsed:d,navigationMenu:l})}),e.jsx("main",{className:"flex-1 p-6 flex flex-col",children:e.jsx("div",{className:"max-w-7xl mx-auto flex-1 flex flex-col w-full",children:e.jsx(b,{})})})]}),e.jsx(F,{Link:x,routes:u,t:t=>a(`Footer.${t}`),CookiePreferences:A,...(r==null?void 0:r.openKeyboardHelp)&&{onOpenKeyboardHelp:r.openKeyboardHelp}})]})})})}export{Y as default};
2
+ //# sourceMappingURL=layout-DF8lLIQx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout-CYimsq_V.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/UsersIcon.js","../../src/components/admin/AdminNavigation.tsx","../../src/app/[locale]/admin/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction UsersIcon({\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: \"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(UsersIcon);\nexport default ForwardRef;","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname } from '@/i18n/routing';\nimport { SimpleNavigation, useEventSubscriptions } from '@semiont/react-ui';\nimport type { SimpleNavigationItem } from '@semiont/react-ui';\nimport {\n UsersIcon,\n ShieldCheckIcon,\n CommandLineIcon,\n ArrowsRightLeftIcon,\n ChevronLeftIcon,\n Bars3Icon\n} from '@heroicons/react/24/outline';\n\ninterface AdminNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: SimpleNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function AdminNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: AdminNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Administration.${k}`, p as any) as string;\n const { t: _tSidebar } = useTranslation();\n const tSidebar = (k: string, p?: Record<string, unknown>) => _tSidebar(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Subscribe to sidebar toggle events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n });\n\n const navigation: SimpleNavigationItem[] = [\n {\n name: t('users'),\n href: '/admin/users',\n icon: UsersIcon,\n description: t('usersDescription')\n },\n {\n name: t('oauthSettings'),\n href: '/admin/security',\n icon: ShieldCheckIcon,\n description: t('oauthSettingsDescription')\n },\n {\n name: t('exchange'),\n href: '/admin/exchange',\n icon: ArrowsRightLeftIcon,\n description: t('exchangeDescription')\n },\n {\n name: t('devops'),\n href: '/admin/devops',\n icon: CommandLineIcon,\n description: t('devopsDescription')\n },\n ];\n\n return (\n <SimpleNavigation\n title={t('title')}\n items={navigation}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n {...(navigationMenu && { dropdownContent: navigationMenu })}\n isCollapsed={isCollapsed}\n icons={{\n chevronLeft: ChevronLeftIcon as React.ComponentType<{ className?: string }>,\n bars: Bars3Icon as React.ComponentType<{ className?: string }>\n }}\n collapseSidebarLabel={tSidebar('collapseSidebar')}\n expandSidebarLabel={tSidebar('expandSidebar')}\n />\n );\n}","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { AdminNavigation } from '@/components/admin/AdminNavigation';\nimport { LeftSidebar, Footer, ApiClientProvider, AuthTokenProvider } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\nimport { SEMIONT_BACKEND_URL } from '@/lib/env';\n\nexport default function AdminLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const { isAuthenticated, isAdmin, isModerator, token: authToken } = useAuth();\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={SEMIONT_BACKEND_URL}>\n <div className=\"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col\">\n <div className=\"flex flex-1\">\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Navigation.${key}`)}\n tHome={(key: string) => t(`Home.${key}`)}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"admin-sidebar-collapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <AdminNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n <main className=\"flex-1 p-6 flex flex-col\">\n <div className=\"max-w-7xl mx-auto flex-1 flex flex-col w-full\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Footer.${key}`)}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["UsersIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","HrefLink","href","_to","Link","AdminNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","_tSidebar","tSidebar","pathname","usePathname","handleSidebarToggle","useCallback","useEventSubscriptions","navigation","ShieldCheckIcon","ArrowsRightLeftIcon","CommandLineIcon","jsx","SimpleNavigation","ChevronLeftIcon","Bars3Icon","AdminLayout","keyboardContext","useContext","KeyboardShortcutsContext","isAuthenticated","isAdmin","isModerator","authToken","useAuth","AuthTokenProvider","ApiClientProvider","SEMIONT_BACKEND_URL","jsxs","LeftSidebar","routes","key","Outlet","Footer","CookiePreferences"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"layout-DF8lLIQx.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/UsersIcon.js","../../src/components/admin/AdminNavigation.tsx","../../src/app/[locale]/admin/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction UsersIcon({\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: \"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(UsersIcon);\nexport default ForwardRef;","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname } from '@/i18n/routing';\nimport { SimpleNavigation, useEventSubscriptions } from '@semiont/react-ui';\nimport type { SimpleNavigationItem } from '@semiont/react-ui';\nimport {\n UsersIcon,\n ShieldCheckIcon,\n CommandLineIcon,\n ArrowsRightLeftIcon,\n ChevronLeftIcon,\n Bars3Icon\n} from '@heroicons/react/24/outline';\n\ninterface AdminNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: SimpleNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function AdminNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: AdminNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Administration.${k}`, p as any) as string;\n const { t: _tSidebar } = useTranslation();\n const tSidebar = (k: string, p?: Record<string, unknown>) => _tSidebar(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Subscribe to sidebar toggle events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n });\n\n const navigation: SimpleNavigationItem[] = [\n {\n name: t('users'),\n href: '/admin/users',\n icon: UsersIcon,\n description: t('usersDescription')\n },\n {\n name: t('oauthSettings'),\n href: '/admin/security',\n icon: ShieldCheckIcon,\n description: t('oauthSettingsDescription')\n },\n {\n name: t('exchange'),\n href: '/admin/exchange',\n icon: ArrowsRightLeftIcon,\n description: t('exchangeDescription')\n },\n {\n name: t('devops'),\n href: '/admin/devops',\n icon: CommandLineIcon,\n description: t('devopsDescription')\n },\n ];\n\n return (\n <SimpleNavigation\n title={t('title')}\n items={navigation}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n {...(navigationMenu && { dropdownContent: navigationMenu })}\n isCollapsed={isCollapsed}\n icons={{\n chevronLeft: ChevronLeftIcon as React.ComponentType<{ className?: string }>,\n bars: Bars3Icon as React.ComponentType<{ className?: string }>\n }}\n collapseSidebarLabel={tSidebar('collapseSidebar')}\n expandSidebarLabel={tSidebar('expandSidebar')}\n />\n );\n}","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { AdminNavigation } from '@/components/admin/AdminNavigation';\nimport { LeftSidebar, Footer, ApiClientProvider, AuthTokenProvider } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\nimport { SEMIONT_BACKEND_URL } from '@/lib/env';\n\nexport default function AdminLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const { isAuthenticated, isAdmin, isModerator, token: authToken } = useAuth();\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={SEMIONT_BACKEND_URL}>\n <div className=\"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col\">\n <div className=\"flex flex-1\">\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Navigation.${key}`)}\n tHome={(key: string) => t(`Home.${key}`)}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"admin-sidebar-collapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <AdminNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n <main className=\"flex-1 p-6 flex flex-col\">\n <div className=\"max-w-7xl mx-auto flex-1 flex flex-col w-full\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Footer.${key}`)}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["UsersIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","HrefLink","href","_to","Link","AdminNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","_tSidebar","tSidebar","pathname","usePathname","handleSidebarToggle","useCallback","useEventSubscriptions","navigation","ShieldCheckIcon","ArrowsRightLeftIcon","CommandLineIcon","jsx","SimpleNavigation","ChevronLeftIcon","Bars3Icon","AdminLayout","keyboardContext","useContext","KeyboardShortcutsContext","isAuthenticated","isAdmin","isModerator","authToken","useAuth","AuthTokenProvider","ApiClientProvider","SEMIONT_BACKEND_URL","jsxs","LeftSidebar","routes","key","Outlet","Footer","CookiePreferences"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{j as o,u as I}from"./query-ATBhtd3K.js";import{r as a,O as M}from"./vendor-EnoIVk-c.js";import{a9 as P,l as $,aa as B,a2 as H,a0 as T,a1 as K,ab as U,ac as _,ad as q,F as W,ae as J,af as Q}from"./en-LNW2A3RA-BUa1vcQc.js";import{b as V,a as S,L as G}from"./routing-QElszVRP.js";import{u as b}from"./i18n-BYxb14hm.js";import{a as X,C as Y}from"./CookiePreferences-C35ds4bQ.js";import{F as Z,a as ee}from"./ChevronLeftIcon-CMXd_XZQ.js";import{r as z,L as F}from"./routing-BhiBwewL.js";import{u as A}from"./useAuth-ByOA13lp.js";import{K as re}from"./privacy-B1CWCygr.js";import{a as ne}from"./AuthContext-BVzUcaCU.js";import"./index-DsKSr5Q5.js";function oe({title:e,titleId:r,...c},l){return a.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:l,"aria-labelledby":r},c),e?a.createElement("title",{id:r},e):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const te=a.forwardRef(oe),se=({className:e})=>o.jsx("span",{className:e,style:{fontSize:"1.25rem",lineHeight:"1"},children:"🔭"});function ae({href:e,to:r,...c}){return o.jsx(G,{to:e??"",...c})}function ie({isCollapsed:e,toggleCollapsed:r,navigationMenu:c}){const{t:l}=b(),d=(w,R)=>l(`Sidebar.${w}`,R),g=V(),m=S(),{openResources:f,removeResource:n,reorderResources:t}=P(),s=[{name:d("discover"),href:"/know/discover",icon:se,description:d("searchAndBrowse")},{name:d("compose"),href:"/know/compose",icon:te,description:d("composeNewResource")}],i=a.useCallback(()=>{r()},[r]),u=a.useCallback(({resourceId:w})=>{n(w),g===`/know/resource/${w}`&&m.push("/know/discover")},[n,g,m]),v=a.useCallback(({oldIndex:w,newIndex:R})=>{t(w,R)},[t]);$({"browse:sidebar-toggle":i,"browse:resource-close":u,"browse:resource-reorder":v});const k=w=>{m.push(w)},h=w=>`/know/resource/${w}`;return o.jsx(B,{fixedItems:s,resources:f,isCollapsed:e,currentPath:g,LinkComponent:ae,onNavigate:k,getResourceHref:h,className:"knowledge-navigation",translations:{title:d("title")},icons:{chevronLeft:ee,bars:Z,close:X},navigationMenu:c})}function ce(){const{t:e}=b(),r=(f,n)=>e(`Navigation.${f}`,n),{t:c}=b(),l=(f,n)=>c(`Home.${f}`,n),{isAuthenticated:d,isAdmin:g,isModerator:m}=A();return o.jsx(H,{Link:F,routes:z,t:r,tHome:l,brandingLink:"/",collapsible:!0,storageKey:"knowledgeNavCollapsed",isAuthenticated:d,isAdmin:g,isModerator:m,children:(f,n,t)=>o.jsx(ie,{isCollapsed:f,toggleCollapsed:n,navigationMenu:t})})}var D;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(D||(D={}));const le=Object.freeze({x:0,y:0});var x;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(x||(x={}));var y;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(y||(y={}));var p;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(p||(p={}));p.Space,p.Enter,p.Esc,p.Space,p.Enter,p.Tab;var L;(function(e){e[e.RightClick=2]="RightClick"})(L||(L={}));var E;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(E||(E={}));var O;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(O||(O={}));x.Backward+"",x.Forward+"",x.Backward+"",x.Forward+"";var j;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(j||(j={}));var C;(function(e){e.Optimized="optimized"})(C||(C={}));j.WhileDragging,C.Optimized;({...le});var N;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(N||(N={}));function de(e,r,c){const l=e.slice();return l.splice(c<0?l.length+c:c,0,l.splice(r,1)[0]),l}p.Down,p.Right,p.Up,p.Left;function ue(){const[e,r]=a.useState([]),[c,l]=a.useState(!1);a.useEffect(()=>{const n=localStorage.getItem("openDocuments");if(n)try{const t=JSON.parse(n);r(t.sort((s,i)=>s.order!==void 0&&i.order!==void 0?s.order-i.order:s.openedAt-i.openedAt))}catch(t){console.error("Failed to parse open resources:",t)}l(!0)},[]),a.useEffect(()=>{c&&localStorage.setItem("openDocuments",JSON.stringify(e))},[e,c]),a.useEffect(()=>{const n=t=>{if(t.key==="openDocuments"&&t.newValue)try{const s=JSON.parse(t.newValue);r(s.sort((i,u)=>i.order!==void 0&&u.order!==void 0?i.order-u.order:i.openedAt-u.openedAt))}catch(s){console.error("Failed to parse open resources from storage event:",s)}};return window.addEventListener("storage",n),()=>window.removeEventListener("storage",n)},[]);const d=a.useCallback((n,t,s,i)=>{r(u=>{if(u.find(h=>h.id===n))return u.map(h=>h.id===n?{...h,name:t,...s&&{mediaType:s},...i&&{storageUri:i}}:h);const k=u.length>0?Math.max(...u.map(h=>h.order??h.openedAt)):0;return[...u,{id:n,name:t,openedAt:Date.now(),order:k+1,...s&&{mediaType:s},...i&&{storageUri:i}}]})},[]),g=a.useCallback(n=>{r(t=>t.filter(s=>s.id!==n))},[]),m=a.useCallback((n,t)=>{r(s=>s.map(i=>i.id===n?{...i,name:t}:i))},[]),f=a.useCallback((n,t)=>{r(s=>de(s,n,t).map((u,v)=>({...u,order:v})))},[]);return a.useMemo(()=>({openResources:e,addResource:d,removeResource:g,updateResourceName:m,reorderResources:f}),[e,d,g,m,f])}function fe(){const e=I();return a.useMemo(()=>({invalidateAnnotations:r=>{e.invalidateQueries({queryKey:["resources",r,"annotations"]})},invalidateEvents:r=>{e.invalidateQueries({queryKey:["resources",r,"events"]})}}),[e])}function pe(){return J(),null}function ge(){return Q(),null}function Le(){const{t:e}=b(),r=a.useContext(re),c=ue(),l=fe(),{token:d,isLoading:g}=A(),m=S();return g?o.jsx("div",{className:"h-screen flex items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),o.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Loading..."})]})}):d?o.jsx(T,{token:d,children:o.jsx(K,{baseUrl:ne,children:o.jsx(U,{cacheManager:l,children:o.jsx(_,{openResourcesManager:c,children:o.jsxs(q,{children:[o.jsx(pe,{}),o.jsx(ge,{}),o.jsxs("div",{className:"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden",children:[o.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[o.jsx(ce,{}),o.jsx("main",{className:"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden",children:o.jsx("div",{className:"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden",children:o.jsx(M,{})})})]}),o.jsx(W,{Link:F,routes:z,t:f=>e(`Footer.${f}`),CookiePreferences:Y,...(r==null?void 0:r.openKeyboardHelp)&&{onOpenKeyboardHelp:r.openKeyboardHelp}})]})]})})})})}):(m.push(`/auth/signin?callbackUrl=${encodeURIComponent(typeof window<"u"?window.location.pathname:"/know")}`),null)}export{Le as default};
2
- //# sourceMappingURL=layout-BRiOZEGL.js.map
1
+ import{j as o,u as I}from"./query-ATBhtd3K.js";import{r as a,O as M}from"./vendor-EnoIVk-c.js";import{a9 as P,l as $,aa as B,a2 as H,a0 as T,a1 as K,ab as U,ac as _,ad as q,F as W,ae as J,af as Q}from"./en-LNW2A3RA-CQBvSBCl.js";import{b as V,a as S,L as G}from"./routing-tt0MahYa.js";import{u as b}from"./i18n-BYxb14hm.js";import{a as X,C as Y}from"./CookiePreferences-L69Zja-8.js";import{F as Z,a as ee}from"./ChevronLeftIcon-CMXd_XZQ.js";import{r as z,L as F}from"./routing-CBiIPmyX.js";import{u as A}from"./useAuth-Bw_w8L0H.js";import{K as re}from"./privacy-D5H-YTl9.js";import{a as ne}from"./AuthContext-xM132UqD.js";import"./index-IyxbPWuo.js";function oe({title:e,titleId:r,...c},l){return a.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:l,"aria-labelledby":r},c),e?a.createElement("title",{id:r},e):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const te=a.forwardRef(oe),se=({className:e})=>o.jsx("span",{className:e,style:{fontSize:"1.25rem",lineHeight:"1"},children:"🔭"});function ae({href:e,to:r,...c}){return o.jsx(G,{to:e??"",...c})}function ie({isCollapsed:e,toggleCollapsed:r,navigationMenu:c}){const{t:l}=b(),d=(w,R)=>l(`Sidebar.${w}`,R),g=V(),m=S(),{openResources:f,removeResource:n,reorderResources:t}=P(),s=[{name:d("discover"),href:"/know/discover",icon:se,description:d("searchAndBrowse")},{name:d("compose"),href:"/know/compose",icon:te,description:d("composeNewResource")}],i=a.useCallback(()=>{r()},[r]),u=a.useCallback(({resourceId:w})=>{n(w),g===`/know/resource/${w}`&&m.push("/know/discover")},[n,g,m]),v=a.useCallback(({oldIndex:w,newIndex:R})=>{t(w,R)},[t]);$({"browse:sidebar-toggle":i,"browse:resource-close":u,"browse:resource-reorder":v});const k=w=>{m.push(w)},h=w=>`/know/resource/${w}`;return o.jsx(B,{fixedItems:s,resources:f,isCollapsed:e,currentPath:g,LinkComponent:ae,onNavigate:k,getResourceHref:h,className:"knowledge-navigation",translations:{title:d("title")},icons:{chevronLeft:ee,bars:Z,close:X},navigationMenu:c})}function ce(){const{t:e}=b(),r=(f,n)=>e(`Navigation.${f}`,n),{t:c}=b(),l=(f,n)=>c(`Home.${f}`,n),{isAuthenticated:d,isAdmin:g,isModerator:m}=A();return o.jsx(H,{Link:F,routes:z,t:r,tHome:l,brandingLink:"/",collapsible:!0,storageKey:"knowledgeNavCollapsed",isAuthenticated:d,isAdmin:g,isModerator:m,children:(f,n,t)=>o.jsx(ie,{isCollapsed:f,toggleCollapsed:n,navigationMenu:t})})}var D;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(D||(D={}));const le=Object.freeze({x:0,y:0});var x;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(x||(x={}));var y;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(y||(y={}));var p;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(p||(p={}));p.Space,p.Enter,p.Esc,p.Space,p.Enter,p.Tab;var L;(function(e){e[e.RightClick=2]="RightClick"})(L||(L={}));var E;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(E||(E={}));var O;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(O||(O={}));x.Backward+"",x.Forward+"",x.Backward+"",x.Forward+"";var j;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(j||(j={}));var C;(function(e){e.Optimized="optimized"})(C||(C={}));j.WhileDragging,C.Optimized;({...le});var N;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(N||(N={}));function de(e,r,c){const l=e.slice();return l.splice(c<0?l.length+c:c,0,l.splice(r,1)[0]),l}p.Down,p.Right,p.Up,p.Left;function ue(){const[e,r]=a.useState([]),[c,l]=a.useState(!1);a.useEffect(()=>{const n=localStorage.getItem("openDocuments");if(n)try{const t=JSON.parse(n);r(t.sort((s,i)=>s.order!==void 0&&i.order!==void 0?s.order-i.order:s.openedAt-i.openedAt))}catch(t){console.error("Failed to parse open resources:",t)}l(!0)},[]),a.useEffect(()=>{c&&localStorage.setItem("openDocuments",JSON.stringify(e))},[e,c]),a.useEffect(()=>{const n=t=>{if(t.key==="openDocuments"&&t.newValue)try{const s=JSON.parse(t.newValue);r(s.sort((i,u)=>i.order!==void 0&&u.order!==void 0?i.order-u.order:i.openedAt-u.openedAt))}catch(s){console.error("Failed to parse open resources from storage event:",s)}};return window.addEventListener("storage",n),()=>window.removeEventListener("storage",n)},[]);const d=a.useCallback((n,t,s,i)=>{r(u=>{if(u.find(h=>h.id===n))return u.map(h=>h.id===n?{...h,name:t,...s&&{mediaType:s},...i&&{storageUri:i}}:h);const k=u.length>0?Math.max(...u.map(h=>h.order??h.openedAt)):0;return[...u,{id:n,name:t,openedAt:Date.now(),order:k+1,...s&&{mediaType:s},...i&&{storageUri:i}}]})},[]),g=a.useCallback(n=>{r(t=>t.filter(s=>s.id!==n))},[]),m=a.useCallback((n,t)=>{r(s=>s.map(i=>i.id===n?{...i,name:t}:i))},[]),f=a.useCallback((n,t)=>{r(s=>de(s,n,t).map((u,v)=>({...u,order:v})))},[]);return a.useMemo(()=>({openResources:e,addResource:d,removeResource:g,updateResourceName:m,reorderResources:f}),[e,d,g,m,f])}function fe(){const e=I();return a.useMemo(()=>({invalidateAnnotations:r=>{e.invalidateQueries({queryKey:["resources",r,"annotations"]})},invalidateEvents:r=>{e.invalidateQueries({queryKey:["resources",r,"events"]})}}),[e])}function pe(){return J(),null}function ge(){return Q(),null}function Le(){const{t:e}=b(),r=a.useContext(re),c=ue(),l=fe(),{token:d,isLoading:g}=A(),m=S();return g?o.jsx("div",{className:"h-screen flex items-center justify-center",children:o.jsxs("div",{className:"text-center",children:[o.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),o.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Loading..."})]})}):d?o.jsx(T,{token:d,children:o.jsx(K,{baseUrl:ne,children:o.jsx(U,{cacheManager:l,children:o.jsx(_,{openResourcesManager:c,children:o.jsxs(q,{children:[o.jsx(pe,{}),o.jsx(ge,{}),o.jsxs("div",{className:"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden",children:[o.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[o.jsx(ce,{}),o.jsx("main",{className:"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden",children:o.jsx("div",{className:"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden",children:o.jsx(M,{})})})]}),o.jsx(W,{Link:F,routes:z,t:f=>e(`Footer.${f}`),CookiePreferences:Y,...(r==null?void 0:r.openKeyboardHelp)&&{onOpenKeyboardHelp:r.openKeyboardHelp}})]})]})})})})}):(m.push(`/auth/signin?callbackUrl=${encodeURIComponent(typeof window<"u"?window.location.pathname:"/know")}`),null)}export{Le as default};
2
+ //# sourceMappingURL=layout-DYaEHeqB.js.map