@semiont/frontend 0.4.11 → 0.4.13
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/assets/{AuthContext-CYne_gJM.js → AuthContext-CqopYuY9.js} +2 -2
- package/dist/assets/{AuthContext-CYne_gJM.js.map → AuthContext-CqopYuY9.js.map} +1 -1
- package/dist/assets/{CookiePreferences-DxD0u90z.js → CookiePreferences-DIUP_g1S.js} +2 -2
- package/dist/assets/{CookiePreferences-DxD0u90z.js.map → CookiePreferences-DIUP_g1S.js.map} +1 -1
- package/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-CVmEpRfP.js → PdfAnnotationCanvas.client-CW6SKH2U-Ct60nVWs.js} +2 -2
- package/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-CVmEpRfP.js.map → PdfAnnotationCanvas.client-CW6SKH2U-Ct60nVWs.js.map} +1 -1
- package/dist/assets/{ToolbarPanels-tcvPzqNN.js → ToolbarPanels-CtBfzYcP.js} +2 -2
- package/dist/assets/{ToolbarPanels-tcvPzqNN.js.map → ToolbarPanels-CtBfzYcP.js.map} +1 -1
- package/dist/assets/{client-CKEJUXXb.js → client-B-4-Nmfd.js} +2 -2
- package/dist/assets/{client-CKEJUXXb.js.map → client-B-4-Nmfd.js.map} +1 -1
- package/dist/assets/{client-DWcJNpII.js → client-CTdkaDl6.js} +2 -2
- package/dist/assets/{client-DWcJNpII.js.map → client-CTdkaDl6.js.map} +1 -1
- package/dist/assets/{client-BZBaSaZ0.js → client-DvSa4CTk.js} +2 -2
- package/dist/assets/{client-BZBaSaZ0.js.map → client-DvSa4CTk.js.map} +1 -1
- package/dist/assets/{client-87q-RlKa.js → client-rUyzJlA6.js} +2 -2
- package/dist/assets/{client-87q-RlKa.js.map → client-rUyzJlA6.js.map} +1 -1
- package/dist/assets/{en-IUV4ZXKH-BjYNERUx.js → en-IUV4ZXKH-b_r0oyRV.js} +45 -45
- package/dist/assets/en-IUV4ZXKH-b_r0oyRV.js.map +1 -0
- package/dist/assets/index-CwQxZp6g.css +1 -0
- package/dist/assets/{index-D4SjcYxX.js → index-dFCLrpeL.js} +3 -3
- package/dist/assets/index-dFCLrpeL.js.map +1 -0
- package/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
- package/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
- package/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
- package/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
- package/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
- package/dist/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
- package/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
- package/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
- package/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/dist/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
- package/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
- package/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
- package/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
- package/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- package/dist/assets/{layout-C4uWiY4F.js → layout-BwurEG3I.js} +2 -2
- package/dist/assets/{layout-C4uWiY4F.js.map → layout-BwurEG3I.js.map} +1 -1
- package/dist/assets/{layout-DYXeBZ7E.js → layout-CCNyNXfP.js} +2 -2
- package/dist/assets/{layout-DYXeBZ7E.js.map → layout-CCNyNXfP.js.map} +1 -1
- package/dist/assets/{layout-D9y4fNSa.js → layout-CHfFscVU.js} +2 -2
- package/dist/assets/{layout-D9y4fNSa.js.map → layout-CHfFscVU.js.map} +1 -1
- package/dist/assets/{layout-B-TMNLm1.js → layout-CL9MSbhu.js} +2 -2
- package/dist/assets/{layout-B-TMNLm1.js.map → layout-CL9MSbhu.js.map} +1 -1
- package/dist/assets/{not-found-D39eX95i.js → not-found-DE1pkuFl.js} +2 -2
- package/dist/assets/{not-found-D39eX95i.js.map → not-found-DE1pkuFl.js.map} +1 -1
- package/dist/assets/orbitron-latin-400-normal-DBk4Dmer.woff +0 -0
- package/dist/assets/orbitron-latin-400-normal-U6xZUhur.woff2 +0 -0
- package/dist/assets/{page-B8rInMTj.js → page-B-TRTXbV.js} +2 -2
- package/dist/assets/{page-B8rInMTj.js.map → page-B-TRTXbV.js.map} +1 -1
- package/dist/assets/{page-D9kiPafj.js → page-B3h2_PT5.js} +2 -2
- package/dist/assets/{page-D9kiPafj.js.map → page-B3h2_PT5.js.map} +1 -1
- package/dist/assets/page-BfUI7FZJ.js +2 -0
- package/dist/assets/{page-kM0Ep9uD.js.map → page-BfUI7FZJ.js.map} +1 -1
- package/dist/assets/{page-DU4gR5Xo.js → page-C-os3U8h.js} +2 -2
- package/dist/assets/{page-DU4gR5Xo.js.map → page-C-os3U8h.js.map} +1 -1
- package/dist/assets/{page-BBEm8LmA.js → page-C02dLWb8.js} +2 -2
- package/dist/assets/{page-BBEm8LmA.js.map → page-C02dLWb8.js.map} +1 -1
- package/dist/assets/{page-Bs0m7wcI.js → page-CGDUl5-d.js} +2 -2
- package/dist/assets/{page-Bs0m7wcI.js.map → page-CGDUl5-d.js.map} +1 -1
- package/dist/assets/{page-m23deNER.js → page-CHq5JMOn.js} +2 -2
- package/dist/assets/{page-m23deNER.js.map → page-CHq5JMOn.js.map} +1 -1
- package/dist/assets/{page-CnBwmYIE.js → page-CUbbBytS.js} +2 -2
- package/dist/assets/{page-CnBwmYIE.js.map → page-CUbbBytS.js.map} +1 -1
- package/dist/assets/{page-DfClTFD9.js → page-C_L33_wR.js} +2 -2
- package/dist/assets/{page-DfClTFD9.js.map → page-C_L33_wR.js.map} +1 -1
- package/dist/assets/{page-eebHZHg3.js → page-CaVtCo4z.js} +2 -2
- package/dist/assets/{page-eebHZHg3.js.map → page-CaVtCo4z.js.map} +1 -1
- package/dist/assets/{page-DX3FJ71G.js → page-CjTcoHSS.js} +2 -2
- package/dist/assets/{page-DX3FJ71G.js.map → page-CjTcoHSS.js.map} +1 -1
- package/dist/assets/{page-B68iiwby.js → page-CtRMzwE_.js} +2 -2
- package/dist/assets/{page-B68iiwby.js.map → page-CtRMzwE_.js.map} +1 -1
- package/dist/assets/{page-C2ievByA.js → page-Cu2tT5mi.js} +2 -2
- package/dist/assets/{page-C2ievByA.js.map → page-Cu2tT5mi.js.map} +1 -1
- package/dist/assets/{page-BjjPEFxE.js → page-D5i-uRGy.js} +2 -2
- package/dist/assets/{page-BjjPEFxE.js.map → page-D5i-uRGy.js.map} +1 -1
- package/dist/assets/{page-CEDbSdpB.js → page-DXACCazr.js} +2 -2
- package/dist/assets/{page-CEDbSdpB.js.map → page-DXACCazr.js.map} +1 -1
- package/dist/assets/{page-fN3EjI48.js → page-DiKTriTX.js} +2 -2
- package/dist/assets/{page-fN3EjI48.js.map → page-DiKTriTX.js.map} +1 -1
- package/dist/assets/page-eJup0RrB.js +2 -0
- package/dist/assets/page-eJup0RrB.js.map +1 -0
- package/dist/assets/{page-DVuwkaR0.js → page-qhHVLOTR.js} +2 -2
- package/dist/assets/{page-DVuwkaR0.js.map → page-qhHVLOTR.js.map} +1 -1
- package/dist/assets/{privacy-QEJYcmMw.js → privacy-BMKdYFGC.js} +2 -2
- package/dist/assets/{privacy-QEJYcmMw.js.map → privacy-BMKdYFGC.js.map} +1 -1
- package/dist/assets/{routing-BgsGBuSe.js → routing-BBQqTcTn.js} +2 -2
- package/dist/assets/{routing-BgsGBuSe.js.map → routing-BBQqTcTn.js.map} +1 -1
- package/dist/assets/{routing-nZgBtxly.js → routing-BPQO9e8a.js} +2 -2
- package/dist/assets/{routing-nZgBtxly.js.map → routing-BPQO9e8a.js.map} +1 -1
- package/dist/assets/{useAuth-CqtZE9nt.js → useAuth-B9hvtwrc.js} +2 -2
- package/dist/assets/{useAuth-CqtZE9nt.js.map → useAuth-B9hvtwrc.js.map} +1 -1
- package/dist/index.html +3 -3
- package/dist/messages/ar.json +1 -1
- package/dist/messages/bn.json +1 -1
- package/dist/messages/cs.json +1 -1
- package/dist/messages/da.json +1 -1
- package/dist/messages/de.json +1 -1
- package/dist/messages/el.json +1 -1
- package/dist/messages/en.json +1 -1
- package/dist/messages/es.json +1 -1
- package/dist/messages/fa.json +1 -1
- package/dist/messages/fi.json +1 -1
- package/dist/messages/fr.json +1 -1
- package/dist/messages/he.json +1 -1
- package/dist/messages/hi.json +1 -1
- package/dist/messages/id.json +1 -1
- package/dist/messages/it.json +1 -1
- package/dist/messages/ja.json +1 -1
- package/dist/messages/ko.json +1 -1
- package/dist/messages/ms.json +1 -1
- package/dist/messages/nl.json +1 -1
- package/dist/messages/no.json +1 -1
- package/dist/messages/pl.json +1 -1
- package/dist/messages/pt.json +1 -1
- package/dist/messages/ro.json +1 -1
- package/dist/messages/sv.json +1 -1
- package/dist/messages/th.json +1 -1
- package/dist/messages/tr.json +1 -1
- package/dist/messages/uk.json +1 -1
- package/dist/messages/vi.json +1 -1
- package/dist/messages/zh.json +1 -1
- package/package.json +1 -1
- package/dist/assets/en-IUV4ZXKH-BjYNERUx.js.map +0 -1
- package/dist/assets/index-D4SjcYxX.js.map +0 -1
- package/dist/assets/index-x79a-Q1-.css +0 -1
- package/dist/assets/page-KDTjODvy.js +0 -2
- package/dist/assets/page-KDTjODvy.js.map +0 -1
- package/dist/assets/page-kM0Ep9uD.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as t}from"./query-ATBhtd3K.js";import{u as n,L as i}from"./routing-
|
|
2
|
-
//# sourceMappingURL=not-found-
|
|
1
|
+
import{j as t}from"./query-ATBhtd3K.js";import{u as n,L as i}from"./routing-BPQO9e8a.js";import{u as l}from"./i18n-BYxb14hm.js";import"./vendor-EnoIVk-c.js";import"./index-dFCLrpeL.js";function u(){const{t:s}=l(),e=(a,o)=>s(`NotFound.${a}`,o),r=n();return t.jsx("div",{className:"flex min-h-screen items-center justify-center bg-gray-50 dark:bg-gray-900",children:t.jsxs("div",{className:"text-center px-4",children:[t.jsx("h1",{className:"text-6xl font-bold text-gray-900 dark:text-white mb-4",children:e("title")}),t.jsx("h2",{className:"text-2xl font-semibold text-gray-700 dark:text-gray-300 mb-4",children:e("heading")}),t.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-8",children:e("message")}),t.jsx(i,{to:`/${r}`,className:"inline-block px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:e("goHome")})]})})}export{u as default};
|
|
2
|
+
//# sourceMappingURL=not-found-DE1pkuFl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not-found-
|
|
1
|
+
{"version":3,"file":"not-found-DE1pkuFl.js","sources":["../../src/app/[locale]/not-found.tsx"],"sourcesContent":["import React from 'react';\nimport { Link } from '@/i18n/routing';\nimport { useTranslation } from 'react-i18next';\nimport { useLocale } from '@/i18n/routing';\n\nexport default function NotFound() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`NotFound.${k}`, p as any) as string;\n const locale = useLocale();\n\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 dark:bg-gray-900\">\n <div className=\"text-center px-4\">\n <h1 className=\"text-6xl font-bold text-gray-900 dark:text-white mb-4\">{t('title')}</h1>\n <h2 className=\"text-2xl font-semibold text-gray-700 dark:text-gray-300 mb-4\">\n {t('heading')}\n </h2>\n <p className=\"text-gray-600 dark:text-gray-400 mb-8\">\n {t('message')}\n </p>\n <Link\n to={`/${locale}`}\n className=\"inline-block px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors\"\n >\n {t('goHome')}\n </Link>\n </div>\n </div>\n );\n}\n"],"names":["NotFound","_t","useTranslation","t","k","p","locale","useLocale","jsxs","jsx","Link"],"mappings":"yLAKA,SAAwBA,GAAW,CACjC,KAAM,CAAE,EAAGC,CAAA,EAAOC,EAAA,EACZC,EAAI,CAACC,EAAWC,IAAgCJ,EAAG,YAAYG,CAAC,GAAIC,CAAQ,EAC5EC,EAASC,EAAA,EAEf,aACG,MAAA,CAAI,UAAU,4EACb,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,mBACb,SAAA,CAAAC,MAAC,KAAA,CAAG,UAAU,wDAAyD,SAAAN,EAAE,OAAO,EAAE,QACjF,KAAA,CAAG,UAAU,+DACX,SAAAA,EAAE,SAAS,EACd,QACC,IAAA,CAAE,UAAU,wCACV,SAAAA,EAAE,SAAS,EACd,EACAM,EAAAA,IAACC,EAAA,CACC,GAAI,IAAIJ,CAAM,GACd,UAAU,+FAET,WAAE,QAAQ,CAAA,CAAA,CACb,CAAA,CACF,CAAA,CACF,CAEJ"}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{j as i}from"./query-ATBhtd3K.js";import{r as x}from"./vendor-EnoIVk-c.js";import{u as j,L as u}from"./routing-
|
|
1
|
+
import{j as i}from"./query-ATBhtd3K.js";import{r as x}from"./vendor-EnoIVk-c.js";import{u as j,L as u}from"./routing-BPQO9e8a.js";import{P as f}from"./en-IUV4ZXKH-b_r0oyRV.js";import{C as b}from"./CookiePreferences-DIUP_g1S.js";import{K as T}from"./privacy-BMKdYFGC.js";import{r as v,L as y}from"./routing-BBQqTcTn.js";import{u as l}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";function I(){const{t:r}=l(),e=(t,s)=>r(`Terms.${t}`,s),{t:a}=l(),c=(t,s)=>a(`Footer.${t}`,s),{t:o}=l(),p=(t,s)=>o(`Navigation.${t}`,s),{t:d}=l(),h=(t,s)=>d(`Home.${t}`,s),m=j(),n=x.useContext(T);return i.jsx(f,{Link:y,routes:v,t:c,tNav:p,tHome:h,CookiePreferences:b,...(n==null?void 0:n.openKeyboardHelp)&&{onOpenKeyboardHelp:n.openKeyboardHelp},className:"semiont-static-page",children:i.jsx("div",{className:"semiont-static-container",children:i.jsxs("div",{className:"semiont-static-content",children:[i.jsxs("header",{className:"semiont-static-header",children:[i.jsx("h1",{className:"semiont-static-title",children:e("pageTitle")}),i.jsx("p",{className:"semiont-static-subtitle",children:e("pageSubtitle")})]}),i.jsxs("article",{className:"semiont-static-article",children:[i.jsx("h2",{children:e("aupTitle")}),i.jsx("p",{children:e("aup")}),i.jsx("h3",{children:e("prohibitedTitle")}),i.jsx("p",{children:e("prohibitedIntro")}),i.jsx("ul",{children:e("prohibited").split(`
|
|
2
2
|
`).map((t,s)=>i.jsx("li",{children:t},s))}),i.jsx("h3",{children:e("aiAllianceTitle")}),i.jsxs("p",{children:[e("aiAllianceIntro")," ",i.jsx("a",{href:"https://ai-alliance.cdn.prismic.io/ai-alliance/Zl-MG5m069VX1dgH_AIAllianceCodeofConduct.pdf",target:"_blank",rel:"noopener noreferrer",className:"semiont-static-link",children:e("aiAllianceLink")}),e("aiAllianceIncludes")]}),i.jsx("ul",{children:e("aiAlliance").split(`
|
|
3
3
|
`).map((t,s)=>i.jsx("li",{children:t},s))}),i.jsx("h3",{children:e("responsibilitiesTitle")}),i.jsx("p",{children:e("responsibilitiesIntro")}),i.jsx("ul",{children:e("responsibilities").split(`
|
|
4
4
|
`).map((t,s)=>i.jsx("li",{children:t},s))}),i.jsx("h3",{children:e("moderationTitle")}),i.jsx("p",{children:e("moderation")}),i.jsx("h3",{children:e("privacyTitle")}),i.jsxs("p",{children:[e("privacy").split(e("privacyLink"))[0],i.jsx(u,{to:`/${m}/privacy`,className:"semiont-static-link",children:e("privacyLink")}),e("privacy").split(e("privacyLink"))[1]]}),i.jsx("h3",{children:e("ipTitle")}),i.jsx("p",{children:e("ip")}),i.jsx("h3",{children:e("liabilityTitle")}),i.jsx("p",{children:e("liability")}),i.jsx("h3",{children:e("changesTitle")}),i.jsx("p",{children:e("changes")}),i.jsx("h3",{children:e("contactTitle")}),i.jsx("p",{children:e("contact")}),i.jsx("footer",{className:"semiont-static-footer",children:i.jsx("p",{children:e("lastUpdated",{date:new Date().toLocaleDateString()})})})]})]})})})}export{I as default};
|
|
5
|
-
//# sourceMappingURL=page-
|
|
5
|
+
//# sourceMappingURL=page-B-TRTXbV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-B-TRTXbV.js","sources":["../../src/app/[locale]/terms/page.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { Link } from '@/i18n/routing';\nimport { useTranslation } from 'react-i18next';\nimport { useLocale } from '@/i18n/routing';\nimport { PageLayout } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link as RoutingLink, routes } from '@/lib/routing';\n\nexport default function TermsOfService() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Terms.${k}`, p as any) as string;\n const { t: _tFooter } = useTranslation();\n const tFooter = (k: string, p?: Record<string, unknown>) => _tFooter(`Footer.${k}`, p as any) as string;\n const { t: _tNav } = useTranslation();\n const tNav = (k: string, p?: Record<string, unknown>) => _tNav(`Navigation.${k}`, p as any) as string;\n const { t: _tHome } = useTranslation();\n const tHome = (k: string, p?: Record<string, unknown>) => _tHome(`Home.${k}`, p as any) as string;\n const locale = useLocale();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n\n return (\n <PageLayout\n Link={RoutingLink}\n routes={routes}\n t={tFooter}\n tNav={tNav}\n tHome={tHome}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n className=\"semiont-static-page\"\n >\n <div className=\"semiont-static-container\">\n <div className=\"semiont-static-content\">\n <header className=\"semiont-static-header\">\n <h1 className=\"semiont-static-title\">\n {t('pageTitle')}\n </h1>\n <p className=\"semiont-static-subtitle\">\n {t('pageSubtitle')}\n </p>\n </header>\n\n <article className=\"semiont-static-article\">\n <h2>{t('aupTitle')}</h2>\n\n <p>\n {t('aup')}\n </p>\n\n <h3>{t('prohibitedTitle')}</h3>\n <p>{t('prohibitedIntro')}</p>\n <ul>\n {t('prohibited').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n\n <h3>{t('aiAllianceTitle')}</h3>\n <p>\n {t('aiAllianceIntro')}{' '}\n <a\n href=\"https://ai-alliance.cdn.prismic.io/ai-alliance/Zl-MG5m069VX1dgH_AIAllianceCodeofConduct.pdf\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"semiont-static-link\"\n >\n {t('aiAllianceLink')}\n </a>\n {t('aiAllianceIncludes')}\n </p>\n <ul>\n {t('aiAlliance').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n\n <h3>{t('responsibilitiesTitle')}</h3>\n <p>{t('responsibilitiesIntro')}</p>\n <ul>\n {t('responsibilities').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n\n <h3>{t('moderationTitle')}</h3>\n <p>\n {t('moderation')}\n </p>\n\n <h3>{t('privacyTitle')}</h3>\n <p>\n {t('privacy').split(t('privacyLink'))[0]}\n <Link to={`/${locale}/privacy`} className=\"semiont-static-link\">\n {t('privacyLink')}\n </Link>\n {t('privacy').split(t('privacyLink'))[1]}\n </p>\n\n <h3>{t('ipTitle')}</h3>\n <p>\n {t('ip')}\n </p>\n\n <h3>{t('liabilityTitle')}</h3>\n <p>\n {t('liability')}\n </p>\n\n <h3>{t('changesTitle')}</h3>\n <p>\n {t('changes')}\n </p>\n\n <h3>{t('contactTitle')}</h3>\n <p>\n {t('contact')}\n </p>\n\n <footer className=\"semiont-static-footer\">\n <p>\n {t('lastUpdated', { date: new Date().toLocaleDateString() })}\n </p>\n </footer>\n </article>\n\n </div>\n </div>\n </PageLayout>\n );\n}"],"names":["TermsOfService","_t","useTranslation","t","k","p","_tFooter","tFooter","_tNav","tNav","_tHome","tHome","locale","useLocale","keyboardContext","useContext","KeyboardShortcutsContext","jsx","PageLayout","RoutingLink","routes","CookiePreferences","jsxs","item","i","Link"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as d}from"./query-ATBhtd3K.js";import{r as i,u as ne}from"./vendor-EnoIVk-c.js";import{u as se,a as re}from"./routing-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{j as d}from"./query-ATBhtd3K.js";import{r as i,u as ne}from"./vendor-EnoIVk-c.js";import{u as se,a as re}from"./routing-BPQO9e8a.js";import{u as ce}from"./useAuth-B9hvtwrc.js";import{C as A,u as ie,d as ae,e as ue,f as le,j as de,g as pe,h as me,k as fe,i as ge,l as ye,m as he,n as Ce,T as Re,r as L,o as ke,p as Te,q as ve}from"./en-IUV4ZXKH-b_r0oyRV.js";import{T as we}from"./ToolbarPanels-CtBfzYcP.js";import{u as M}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";import"./AuthContext-CqopYuY9.js";import"./KnowledgeBaseContext-CgnF8K-_.js";import"./PlusIcon-qGFPUzg0.js";function Ie(){const{t:f}=M(),e=(t,n)=>f(`Compose.${t}`,n),g=se(),c=re(),[o]=ne(),{isAuthenticated:y,isLoading:p,token:U}=ce(),{showError:u,showSuccess:E}=ie(),D=o==null?void 0:o.get("mode"),l=o==null?void 0:o.get("token");i.useEffect(()=>{p||y||c.push("/")},[p,y,c]);const m=o==null?void 0:o.get("annotationUri"),h=o==null?void 0:o.get("sourceDocumentId"),C=o==null?void 0:o.get("name"),R=o==null?void 0:o.get("entityTypes"),[N,k]=i.useState(!0),[j,B]=i.useState(null),[O,$]=i.useState(null),[P,Q]=i.useState(null),{activePanel:_}=ae(),{theme:xe,setTheme:q,resolvedTheme:G}=ue(),{showLineNumbers:H,toggleLineNumbers:J}=le(),{hoverDelayMs:K}=de();pe({"settings:theme-changed":({theme:t})=>q(t),"settings:line-numbers-toggled":()=>J()});const T=me(),W=fe(),Y=ge(),F=ye(),b=he(),{data:v}=Y.list.useQuery(),z=(v==null?void 0:v.entityTypes)||[],V=T.create.useMutation(),X=W.updateBody.useMutation(),{data:a}=T.getByToken.useQuery(l||""),Z=T.createFromToken.useMutation(),S=!!(m&&h&&C),w=D==="clone"&&!!l,ee=w?"clone":S?"reference":"new";i.useEffect(()=>{(async()=>{if(S){const n=R?R.split(","):[];$({annotationUri:m,sourceDocumentId:h,name:C,entityTypes:n});const s=`gather-context:${m}`,r=sessionStorage.getItem(s);if(r){try{Q(JSON.parse(r))}catch{}sessionStorage.removeItem(s)}k(!1);return}if(w&&a){if(a.sourceResource&&F&&b)try{const n=L(a.sourceResource["@id"]),s=ke(a.sourceResource)||"text/plain",{data:r}=await F.getResourceRepresentation(n,{accept:s,auth:b}),I=Te(r,s);B({sourceResource:a.sourceResource,sourceContent:I})}catch(n){console.error("Failed to fetch representation:",n),u("Failed to load resource representation")}else u("Invalid or expired clone token"),c.push("/know/discover");k(!1)}else w&&!l?(u("Clone token not found. Please try cloning again."),c.push("/know/discover")):k(!1)})()},[D,l,a,m,h,C,R,U]);const te=async t=>{try{let n;if(t.mode==="clone")n=(await Z.mutateAsync({token:l,name:t.name,content:t.content,archiveOriginal:t.archiveOriginal??!0})).resourceId;else{let s,r;if(t.file)s=t.file,r=t.format??"application/octet-stream";else{const x=new Blob([t.content||""],{type:t.format??"application/octet-stream"}),oe=t.format==="text/plain"?".txt":t.format==="text/html"?".html":".md";s=new File([x],t.name+oe,{type:t.format??"application/octet-stream"}),r=t.format??"application/octet-stream"}const I=t.charset&&!t.file?`${r}; charset=${t.charset}`:r;if(n=(await V.mutateAsync({name:t.name,file:s,format:I,entityTypes:t.entityTypes||[],language:t.language,creationMethod:"ui",storageUri:t.storageUri})).resourceId,t.mode==="reference"&&t.annotationUri&&t.sourceDocumentId)try{await X.mutateAsync({resourceId:L(t.sourceDocumentId),annotationId:ve(t.annotationUri),data:{resourceId:t.sourceDocumentId,operations:[{op:"add",item:{type:"SpecificResource",source:n,purpose:"linking"}}]}}),E("Reference successfully linked to the new resource")}catch(x){console.error("Failed to update reference:",x),u("Resource created but failed to update reference. You may need to manually link it.")}}c.push(`/know/resource/${encodeURIComponent(n)}`)}catch(n){console.error("Failed to save resource:",n);const s=n instanceof Error?n.message:"Failed to save resource. Please try again.";throw u(s),n}};return p||N?d.jsx(A,{message:p?"Checking authentication...":"Loading cloned resource..."}):y?d.jsx(Ce,{mode:ee,cloneData:j,referenceData:O,gatheredContext:P,availableEntityTypes:z,initialLocale:g,theme:G,showLineNumbers:H,hoverDelayMs:K,activePanel:_,onSaveResource:te,onCancel:()=>c.push("/know/discover"),translations:{title:e("title"),titleEditClone:e("titleEditClone"),titleCompleteReference:e("titleCompleteReference"),subtitleClone:e("subtitleClone"),subtitleReference:e("subtitleReference"),linkedNoticePrefix:e("linkedNoticePrefix"),resourceName:e("resourceName"),resourceNamePlaceholder:e("resourceNamePlaceholder"),entityTypes:e("entityTypes"),language:e("language"),contentSource:e("contentSource"),uploadFile:e("uploadFile"),uploadFileDescription:e("uploadFileDescription"),writeContent:e("writeContent"),writeContentDescription:e("writeContentDescription"),dropFileOrClick:e("dropFileOrClick"),supportedFormats:e("supportedFormats"),mediaType:e("mediaType"),autoDetected:e("autoDetected"),format:e("format"),content:e("content"),resourceContent:e("resourceContent"),encoding:e("encoding"),archiveOriginal:e("archiveOriginal"),cancel:e("cancel"),saving:e("saving"),creating:e("creating"),creatingAndLinking:e("creatingAndLinking"),saveClonedResource:e("saveClonedResource"),createAndLinkResource:e("createAndLinkResource"),createResource:e("createResource")},ToolbarPanels:we,Toolbar:Re}):null}function Oe(){const{t:f}=M(),e=(g,c)=>f(`Compose.${g}`,c);return d.jsx(i.Suspense,{fallback:d.jsx(A,{message:e("loading")}),children:d.jsx(Ie,{})})}export{Oe as default};
|
|
2
|
+
//# sourceMappingURL=page-B3h2_PT5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-D9kiPafj.js","sources":["../../src/app/[locale]/know/compose/page.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * Resource Compose Page - Thin Next.js wrapper\n *\n * This page handles Next.js-specific concerns (routing, auth, data loading, hooks)\n * and delegates rendering to the pure React ResourceComposePage component.\n */\n\nimport React, { useState, useEffect, Suspense } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocale } from '@/i18n/routing';\nimport { useRouter } from '@/i18n/routing';\nimport { useSearchParams } from 'react-router-dom';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useResources, useAnnotations, useEntityTypes, useApiClient, useAuthToken } from '@semiont/react-ui';\nimport { useToast } from '@semiont/react-ui';\nimport { useTheme } from '@semiont/react-ui';\nimport { usePanelBrowse } from '@semiont/react-ui';\nimport { useLineNumbers } from '@semiont/react-ui';\nimport { useHoverDelay } from '@semiont/react-ui';\nimport { useEventSubscriptions } from '@semiont/react-ui';\nimport { Toolbar } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { resourceId as toResourceId, annotationId as toAnnotationId, ContentFormat, AccessToken, type GatheredContext } from '@semiont/core';\nimport { getPrimaryMediaType } from '@semiont/api-client';\nimport { decodeWithCharset } from '@semiont/api-client';\nimport { ComposeLoadingState } from '@semiont/react-ui';\nimport { ResourceComposePage } from '@semiont/react-ui';\nimport type { SaveResourceParams } from '@semiont/react-ui';\n\nfunction ComposeResourceContent() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Compose.${k}`, p as any) as string;\n const locale = useLocale();\n const router = useRouter();\n const [searchParams] = useSearchParams();\n const { isAuthenticated, isLoading: authLoading, token: authToken } = useAuth();\n const { showError, showSuccess } = useToast();\n const mode = searchParams?.get('mode');\n const tokenFromUrl = searchParams?.get('token');\n\n // Authentication guard - redirect to home if not authenticated\n useEffect(() => {\n if (authLoading) return;\n if (!isAuthenticated) {\n router.push('/');\n }\n }, [authLoading, isAuthenticated, router]);\n\n // Reference completion parameters\n const annotationUriParam = searchParams?.get('annotationUri');\n const sourceDocumentId = searchParams?.get('sourceDocumentId');\n const nameFromUrl = searchParams?.get('name');\n const entityTypesFromUrl = searchParams?.get('entityTypes');\n\n const [isLoading, setIsLoading] = useState(true);\n const [cloneData, setCloneData] = useState<any>(null);\n const [referenceData, setReferenceData] = useState<any>(null);\n const [gatheredContext, setGatheredContext] = useState<GatheredContext | null>(null);\n\n // Toolbar and settings state\n const { activePanel } = usePanelBrowse();\n const { theme, setTheme, resolvedTheme } = useTheme();\n const { showLineNumbers, toggleLineNumbers } = useLineNumbers();\n const { hoverDelayMs } = useHoverDelay();\n\n // Subscribe to settings events\n useEventSubscriptions({\n 'settings:theme-changed': ({ theme }: { theme: 'light' | 'dark' | 'system' }) => setTheme(theme),\n 'settings:line-numbers-toggled': () => toggleLineNumbers(),\n });\n\n // API hooks\n const resources = useResources();\n const annotations = useAnnotations();\n const entityTypesAPI = useEntityTypes();\n const client = useApiClient();\n const token = useAuthToken();\n\n // Fetch available entity types\n const { data: entityTypesData } = entityTypesAPI.list.useQuery();\n const availableEntityTypes = (entityTypesData as { entityTypes: string[] } | undefined)?.entityTypes || [];\n\n // Set up mutation hooks\n const createResourceMutation = resources.create.useMutation();\n const updateAnnotationBodyMutation = annotations.updateBody.useMutation();\n\n // Fetch cloned resource data if in clone mode\n const { data: cloneDataResponse } = resources.getByToken.useQuery(tokenFromUrl || '');\n const createFromTokenMutation = resources.createFromToken.useMutation();\n\n // Determine mode\n const isReferenceMode = Boolean(annotationUriParam && sourceDocumentId && nameFromUrl);\n const isCloneMode = mode === 'clone' && Boolean(tokenFromUrl);\n const pageMode = isCloneMode ? 'clone' : isReferenceMode ? 'reference' : 'new';\n\n // Load cloned resource data or reference completion data\n useEffect(() => {\n const loadInitialData = async () => {\n // Handle reference completion mode\n if (isReferenceMode) {\n const entityTypes = entityTypesFromUrl ? entityTypesFromUrl.split(',') : [];\n setReferenceData({\n annotationUri: annotationUriParam!,\n sourceDocumentId: sourceDocumentId!,\n name: nameFromUrl!,\n entityTypes,\n });\n\n // Read gathered context from sessionStorage (stored by wizard)\n const contextKey = `gather-context:${annotationUriParam}`;\n const stored = sessionStorage.getItem(contextKey);\n if (stored) {\n try {\n setGatheredContext(JSON.parse(stored));\n } catch {\n // Ignore malformed context\n }\n sessionStorage.removeItem(contextKey);\n }\n\n setIsLoading(false);\n return;\n }\n\n // Handle clone mode\n if (isCloneMode && cloneDataResponse) {\n if (cloneDataResponse.sourceResource && client && token) {\n try {\n const rId = toResourceId(cloneDataResponse.sourceResource['@id']);\n const mediaType = getPrimaryMediaType(cloneDataResponse.sourceResource) || 'text/plain';\n const { data } = await client.getResourceRepresentation(rId, {\n accept: mediaType as ContentFormat,\n auth: token as AccessToken,\n });\n const content = decodeWithCharset(data, mediaType);\n\n setCloneData({\n sourceResource: cloneDataResponse.sourceResource,\n sourceContent: content,\n });\n } catch (error) {\n console.error('Failed to fetch representation:', error);\n showError('Failed to load resource representation');\n }\n } else {\n showError('Invalid or expired clone token');\n router.push('/know/discover');\n }\n setIsLoading(false);\n } else if (isCloneMode && !tokenFromUrl) {\n showError('Clone token not found. Please try cloning again.');\n router.push('/know/discover');\n } else {\n setIsLoading(false);\n }\n };\n\n loadInitialData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, tokenFromUrl, cloneDataResponse, annotationUriParam, sourceDocumentId, nameFromUrl, entityTypesFromUrl, authToken]);\n\n // Handle save resource\n const handleSaveResource = async (params: SaveResourceParams) => {\n try {\n let newResourceId: string;\n\n if (params.mode === 'clone') {\n // Create resource from clone token with edited content\n const response = await createFromTokenMutation.mutateAsync({\n token: tokenFromUrl!,\n name: params.name,\n content: params.content!,\n archiveOriginal: params.archiveOriginal ?? true,\n });\n\n newResourceId = response.resourceId;\n } else {\n // Create a new resource with entity types\n let fileToUpload: File;\n let mimeType: string;\n\n if (params.file) {\n fileToUpload = params.file;\n mimeType = params.format ?? 'application/octet-stream';\n } else {\n const blob = new Blob([params.content || ''], { type: params.format ?? 'application/octet-stream' });\n const extension = params.format === 'text/plain' ? '.txt' : params.format === 'text/html' ? '.html' : '.md';\n fileToUpload = new File([blob], params.name + extension, { type: params.format ?? 'application/octet-stream' });\n mimeType = params.format ?? 'application/octet-stream';\n }\n\n const format = params.charset && !params.file ? `${mimeType}; charset=${params.charset}` : mimeType;\n\n const response = await createResourceMutation.mutateAsync({\n name: params.name,\n file: fileToUpload,\n format,\n entityTypes: params.entityTypes || [],\n language: params.language,\n creationMethod: 'ui',\n storageUri: params.storageUri,\n });\n\n newResourceId = response.resourceId;\n\n // If this is a reference completion, update the reference\n if (params.mode === 'reference' && params.annotationUri && params.sourceDocumentId) {\n try {\n await updateAnnotationBodyMutation.mutateAsync({\n resourceId: toResourceId(params.sourceDocumentId),\n annotationId: toAnnotationId(params.annotationUri),\n data: {\n resourceId: params.sourceDocumentId,\n operations: [{\n op: 'add',\n item: {\n type: 'SpecificResource',\n source: newResourceId,\n purpose: 'linking',\n },\n }],\n },\n });\n showSuccess('Reference successfully linked to the new resource');\n } catch (error) {\n console.error('Failed to update reference:', error);\n showError('Resource created but failed to update reference. You may need to manually link it.');\n }\n }\n }\n\n // Navigate to the new resource\n router.push(`/know/resource/${encodeURIComponent(newResourceId)}`);\n } catch (error) {\n console.error('Failed to save resource:', error);\n const errorMessage = error instanceof Error ? error.message : 'Failed to save resource. Please try again.';\n showError(errorMessage);\n throw error;\n }\n };\n\n // Show loading state\n if (authLoading || isLoading) {\n return (\n <ComposeLoadingState\n message={authLoading ? 'Checking authentication...' : 'Loading cloned resource...'}\n />\n );\n }\n\n // Don't render if not authenticated\n if (!isAuthenticated) {\n return null;\n }\n\n // Render the pure component\n return (\n <ResourceComposePage\n mode={pageMode}\n cloneData={cloneData}\n referenceData={referenceData}\n gatheredContext={gatheredContext}\n availableEntityTypes={availableEntityTypes}\n initialLocale={locale}\n theme={resolvedTheme}\n showLineNumbers={showLineNumbers}\n hoverDelayMs={hoverDelayMs}\n activePanel={activePanel}\n onSaveResource={handleSaveResource}\n onCancel={() => router.push('/know/discover')}\n translations={{\n title: t('title'),\n titleEditClone: t('titleEditClone'),\n titleCompleteReference: t('titleCompleteReference'),\n subtitleClone: t('subtitleClone'),\n subtitleReference: t('subtitleReference'),\n linkedNoticePrefix: t('linkedNoticePrefix'),\n resourceName: t('resourceName'),\n resourceNamePlaceholder: t('resourceNamePlaceholder'),\n entityTypes: t('entityTypes'),\n language: t('language'),\n contentSource: t('contentSource'),\n uploadFile: t('uploadFile'),\n uploadFileDescription: t('uploadFileDescription'),\n writeContent: t('writeContent'),\n writeContentDescription: t('writeContentDescription'),\n dropFileOrClick: t('dropFileOrClick'),\n supportedFormats: t('supportedFormats'),\n mediaType: t('mediaType'),\n autoDetected: t('autoDetected'),\n format: t('format'),\n content: t('content'),\n resourceContent: t('resourceContent'),\n encoding: t('encoding'),\n archiveOriginal: t('archiveOriginal'),\n cancel: t('cancel'),\n saving: t('saving'),\n creating: t('creating'),\n creatingAndLinking: t('creatingAndLinking'),\n saveClonedResource: t('saveClonedResource'),\n createAndLinkResource: t('createAndLinkResource'),\n createResource: t('createResource'),\n }}\n ToolbarPanels={ToolbarPanels}\n Toolbar={Toolbar}\n />\n );\n}\n\nexport default function ComposeResourcePage() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Compose.${k}`, p as any) as string;\n\n return (\n <Suspense fallback={<ComposeLoadingState message={t('loading')} />}>\n <ComposeResourceContent />\n </Suspense>\n );\n}\n"],"names":["ComposeResourceContent","_t","useTranslation","t","k","p","locale","useLocale","router","useRouter","searchParams","useSearchParams","isAuthenticated","authLoading","authToken","useAuth","showError","showSuccess","useToast","mode","tokenFromUrl","useEffect","annotationUriParam","sourceDocumentId","nameFromUrl","entityTypesFromUrl","isLoading","setIsLoading","useState","cloneData","setCloneData","referenceData","setReferenceData","gatheredContext","setGatheredContext","activePanel","usePanelBrowse","theme","setTheme","resolvedTheme","useTheme","showLineNumbers","toggleLineNumbers","useLineNumbers","hoverDelayMs","useHoverDelay","useEventSubscriptions","resources","useResources","annotations","useAnnotations","entityTypesAPI","useEntityTypes","client","useApiClient","token","useAuthToken","entityTypesData","availableEntityTypes","createResourceMutation","updateAnnotationBodyMutation","cloneDataResponse","createFromTokenMutation","isReferenceMode","isCloneMode","pageMode","entityTypes","contextKey","stored","rId","toResourceId","mediaType","getPrimaryMediaType","data","content","decodeWithCharset","error","handleSaveResource","params","newResourceId","fileToUpload","mimeType","blob","extension","format","toAnnotationId","errorMessage","jsx","ComposeLoadingState","ResourceComposePage","ToolbarPanels","Toolbar","ComposeResourcePage","Suspense"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-B3h2_PT5.js","sources":["../../src/app/[locale]/know/compose/page.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * Resource Compose Page - Thin Next.js wrapper\n *\n * This page handles Next.js-specific concerns (routing, auth, data loading, hooks)\n * and delegates rendering to the pure React ResourceComposePage component.\n */\n\nimport React, { useState, useEffect, Suspense } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocale } from '@/i18n/routing';\nimport { useRouter } from '@/i18n/routing';\nimport { useSearchParams } from 'react-router-dom';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useResources, useAnnotations, useEntityTypes, useApiClient, useAuthToken } from '@semiont/react-ui';\nimport { useToast } from '@semiont/react-ui';\nimport { useTheme } from '@semiont/react-ui';\nimport { usePanelBrowse } from '@semiont/react-ui';\nimport { useLineNumbers } from '@semiont/react-ui';\nimport { useHoverDelay } from '@semiont/react-ui';\nimport { useEventSubscriptions } from '@semiont/react-ui';\nimport { Toolbar } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { resourceId as toResourceId, annotationId as toAnnotationId, ContentFormat, AccessToken, type GatheredContext } from '@semiont/core';\nimport { getPrimaryMediaType } from '@semiont/api-client';\nimport { decodeWithCharset } from '@semiont/api-client';\nimport { ComposeLoadingState } from '@semiont/react-ui';\nimport { ResourceComposePage } from '@semiont/react-ui';\nimport type { SaveResourceParams } from '@semiont/react-ui';\n\nfunction ComposeResourceContent() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Compose.${k}`, p as any) as string;\n const locale = useLocale();\n const router = useRouter();\n const [searchParams] = useSearchParams();\n const { isAuthenticated, isLoading: authLoading, token: authToken } = useAuth();\n const { showError, showSuccess } = useToast();\n const mode = searchParams?.get('mode');\n const tokenFromUrl = searchParams?.get('token');\n\n // Authentication guard - redirect to home if not authenticated\n useEffect(() => {\n if (authLoading) return;\n if (!isAuthenticated) {\n router.push('/');\n }\n }, [authLoading, isAuthenticated, router]);\n\n // Reference completion parameters\n const annotationUriParam = searchParams?.get('annotationUri');\n const sourceDocumentId = searchParams?.get('sourceDocumentId');\n const nameFromUrl = searchParams?.get('name');\n const entityTypesFromUrl = searchParams?.get('entityTypes');\n\n const [isLoading, setIsLoading] = useState(true);\n const [cloneData, setCloneData] = useState<any>(null);\n const [referenceData, setReferenceData] = useState<any>(null);\n const [gatheredContext, setGatheredContext] = useState<GatheredContext | null>(null);\n\n // Toolbar and settings state\n const { activePanel } = usePanelBrowse();\n const { theme, setTheme, resolvedTheme } = useTheme();\n const { showLineNumbers, toggleLineNumbers } = useLineNumbers();\n const { hoverDelayMs } = useHoverDelay();\n\n // Subscribe to settings events\n useEventSubscriptions({\n 'settings:theme-changed': ({ theme }: { theme: 'light' | 'dark' | 'system' }) => setTheme(theme),\n 'settings:line-numbers-toggled': () => toggleLineNumbers(),\n });\n\n // API hooks\n const resources = useResources();\n const annotations = useAnnotations();\n const entityTypesAPI = useEntityTypes();\n const client = useApiClient();\n const token = useAuthToken();\n\n // Fetch available entity types\n const { data: entityTypesData } = entityTypesAPI.list.useQuery();\n const availableEntityTypes = (entityTypesData as { entityTypes: string[] } | undefined)?.entityTypes || [];\n\n // Set up mutation hooks\n const createResourceMutation = resources.create.useMutation();\n const updateAnnotationBodyMutation = annotations.updateBody.useMutation();\n\n // Fetch cloned resource data if in clone mode\n const { data: cloneDataResponse } = resources.getByToken.useQuery(tokenFromUrl || '');\n const createFromTokenMutation = resources.createFromToken.useMutation();\n\n // Determine mode\n const isReferenceMode = Boolean(annotationUriParam && sourceDocumentId && nameFromUrl);\n const isCloneMode = mode === 'clone' && Boolean(tokenFromUrl);\n const pageMode = isCloneMode ? 'clone' : isReferenceMode ? 'reference' : 'new';\n\n // Load cloned resource data or reference completion data\n useEffect(() => {\n const loadInitialData = async () => {\n // Handle reference completion mode\n if (isReferenceMode) {\n const entityTypes = entityTypesFromUrl ? entityTypesFromUrl.split(',') : [];\n setReferenceData({\n annotationUri: annotationUriParam!,\n sourceDocumentId: sourceDocumentId!,\n name: nameFromUrl!,\n entityTypes,\n });\n\n // Read gathered context from sessionStorage (stored by wizard)\n const contextKey = `gather-context:${annotationUriParam}`;\n const stored = sessionStorage.getItem(contextKey);\n if (stored) {\n try {\n setGatheredContext(JSON.parse(stored));\n } catch {\n // Ignore malformed context\n }\n sessionStorage.removeItem(contextKey);\n }\n\n setIsLoading(false);\n return;\n }\n\n // Handle clone mode\n if (isCloneMode && cloneDataResponse) {\n if (cloneDataResponse.sourceResource && client && token) {\n try {\n const rId = toResourceId(cloneDataResponse.sourceResource['@id']);\n const mediaType = getPrimaryMediaType(cloneDataResponse.sourceResource) || 'text/plain';\n const { data } = await client.getResourceRepresentation(rId, {\n accept: mediaType as ContentFormat,\n auth: token as AccessToken,\n });\n const content = decodeWithCharset(data, mediaType);\n\n setCloneData({\n sourceResource: cloneDataResponse.sourceResource,\n sourceContent: content,\n });\n } catch (error) {\n console.error('Failed to fetch representation:', error);\n showError('Failed to load resource representation');\n }\n } else {\n showError('Invalid or expired clone token');\n router.push('/know/discover');\n }\n setIsLoading(false);\n } else if (isCloneMode && !tokenFromUrl) {\n showError('Clone token not found. Please try cloning again.');\n router.push('/know/discover');\n } else {\n setIsLoading(false);\n }\n };\n\n loadInitialData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, tokenFromUrl, cloneDataResponse, annotationUriParam, sourceDocumentId, nameFromUrl, entityTypesFromUrl, authToken]);\n\n // Handle save resource\n const handleSaveResource = async (params: SaveResourceParams) => {\n try {\n let newResourceId: string;\n\n if (params.mode === 'clone') {\n // Create resource from clone token with edited content\n const response = await createFromTokenMutation.mutateAsync({\n token: tokenFromUrl!,\n name: params.name,\n content: params.content!,\n archiveOriginal: params.archiveOriginal ?? true,\n });\n\n newResourceId = response.resourceId;\n } else {\n // Create a new resource with entity types\n let fileToUpload: File;\n let mimeType: string;\n\n if (params.file) {\n fileToUpload = params.file;\n mimeType = params.format ?? 'application/octet-stream';\n } else {\n const blob = new Blob([params.content || ''], { type: params.format ?? 'application/octet-stream' });\n const extension = params.format === 'text/plain' ? '.txt' : params.format === 'text/html' ? '.html' : '.md';\n fileToUpload = new File([blob], params.name + extension, { type: params.format ?? 'application/octet-stream' });\n mimeType = params.format ?? 'application/octet-stream';\n }\n\n const format = params.charset && !params.file ? `${mimeType}; charset=${params.charset}` : mimeType;\n\n const response = await createResourceMutation.mutateAsync({\n name: params.name,\n file: fileToUpload,\n format,\n entityTypes: params.entityTypes || [],\n language: params.language,\n creationMethod: 'ui',\n storageUri: params.storageUri,\n });\n\n newResourceId = response.resourceId;\n\n // If this is a reference completion, update the reference\n if (params.mode === 'reference' && params.annotationUri && params.sourceDocumentId) {\n try {\n await updateAnnotationBodyMutation.mutateAsync({\n resourceId: toResourceId(params.sourceDocumentId),\n annotationId: toAnnotationId(params.annotationUri),\n data: {\n resourceId: params.sourceDocumentId,\n operations: [{\n op: 'add',\n item: {\n type: 'SpecificResource',\n source: newResourceId,\n purpose: 'linking',\n },\n }],\n },\n });\n showSuccess('Reference successfully linked to the new resource');\n } catch (error) {\n console.error('Failed to update reference:', error);\n showError('Resource created but failed to update reference. You may need to manually link it.');\n }\n }\n }\n\n // Navigate to the new resource\n router.push(`/know/resource/${encodeURIComponent(newResourceId)}`);\n } catch (error) {\n console.error('Failed to save resource:', error);\n const errorMessage = error instanceof Error ? error.message : 'Failed to save resource. Please try again.';\n showError(errorMessage);\n throw error;\n }\n };\n\n // Show loading state\n if (authLoading || isLoading) {\n return (\n <ComposeLoadingState\n message={authLoading ? 'Checking authentication...' : 'Loading cloned resource...'}\n />\n );\n }\n\n // Don't render if not authenticated\n if (!isAuthenticated) {\n return null;\n }\n\n // Render the pure component\n return (\n <ResourceComposePage\n mode={pageMode}\n cloneData={cloneData}\n referenceData={referenceData}\n gatheredContext={gatheredContext}\n availableEntityTypes={availableEntityTypes}\n initialLocale={locale}\n theme={resolvedTheme}\n showLineNumbers={showLineNumbers}\n hoverDelayMs={hoverDelayMs}\n activePanel={activePanel}\n onSaveResource={handleSaveResource}\n onCancel={() => router.push('/know/discover')}\n translations={{\n title: t('title'),\n titleEditClone: t('titleEditClone'),\n titleCompleteReference: t('titleCompleteReference'),\n subtitleClone: t('subtitleClone'),\n subtitleReference: t('subtitleReference'),\n linkedNoticePrefix: t('linkedNoticePrefix'),\n resourceName: t('resourceName'),\n resourceNamePlaceholder: t('resourceNamePlaceholder'),\n entityTypes: t('entityTypes'),\n language: t('language'),\n contentSource: t('contentSource'),\n uploadFile: t('uploadFile'),\n uploadFileDescription: t('uploadFileDescription'),\n writeContent: t('writeContent'),\n writeContentDescription: t('writeContentDescription'),\n dropFileOrClick: t('dropFileOrClick'),\n supportedFormats: t('supportedFormats'),\n mediaType: t('mediaType'),\n autoDetected: t('autoDetected'),\n format: t('format'),\n content: t('content'),\n resourceContent: t('resourceContent'),\n encoding: t('encoding'),\n archiveOriginal: t('archiveOriginal'),\n cancel: t('cancel'),\n saving: t('saving'),\n creating: t('creating'),\n creatingAndLinking: t('creatingAndLinking'),\n saveClonedResource: t('saveClonedResource'),\n createAndLinkResource: t('createAndLinkResource'),\n createResource: t('createResource'),\n }}\n ToolbarPanels={ToolbarPanels}\n Toolbar={Toolbar}\n />\n );\n}\n\nexport default function ComposeResourcePage() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Compose.${k}`, p as any) as string;\n\n return (\n <Suspense fallback={<ComposeLoadingState message={t('loading')} />}>\n <ComposeResourceContent />\n </Suspense>\n );\n}\n"],"names":["ComposeResourceContent","_t","useTranslation","t","k","p","locale","useLocale","router","useRouter","searchParams","useSearchParams","isAuthenticated","authLoading","authToken","useAuth","showError","showSuccess","useToast","mode","tokenFromUrl","useEffect","annotationUriParam","sourceDocumentId","nameFromUrl","entityTypesFromUrl","isLoading","setIsLoading","useState","cloneData","setCloneData","referenceData","setReferenceData","gatheredContext","setGatheredContext","activePanel","usePanelBrowse","theme","setTheme","resolvedTheme","useTheme","showLineNumbers","toggleLineNumbers","useLineNumbers","hoverDelayMs","useHoverDelay","useEventSubscriptions","resources","useResources","annotations","useAnnotations","entityTypesAPI","useEntityTypes","client","useApiClient","token","useAuthToken","entityTypesData","availableEntityTypes","createResourceMutation","updateAnnotationBodyMutation","cloneDataResponse","createFromTokenMutation","isReferenceMode","isCloneMode","pageMode","entityTypes","contextKey","stored","rId","toResourceId","mediaType","getPrimaryMediaType","data","content","decodeWithCharset","error","handleSaveResource","params","newResourceId","fileToUpload","mimeType","blob","extension","format","toAnnotationId","errorMessage","jsx","ComposeLoadingState","ResourceComposePage","ToolbarPanels","Toolbar","ComposeResourcePage","Suspense"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as r}from"./query-ATBhtd3K.js";import{u as t}from"./routing-BPQO9e8a.js";import{N as e}from"./vendor-EnoIVk-c.js";import"./index-dFCLrpeL.js";import"./i18n-BYxb14hm.js";function u(){const o=t();return r.jsx(e,{to:`/${o}/admin/users`,replace:!0})}export{u as default};
|
|
2
|
+
//# sourceMappingURL=page-BfUI7FZJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-BfUI7FZJ.js","sources":["../../src/app/[locale]/admin/page.tsx"],"sourcesContent":["import { Navigate } from 'react-router-dom';\nimport { useLocale } from '@/i18n/routing';\n\nexport default function AdminPage() {\n const locale = useLocale();\n return <Navigate to={`/${locale}/admin/users`} replace />;\n}\n"],"names":["AdminPage","locale","useLocale","Navigate"],"mappings":"kLAGA,SAAwBA,GAAY,CAClC,MAAMC,EAASC,EAAA,EACf,aAAQC,EAAA,CAAS,GAAI,IAAIF,CAAM,eAAgB,QAAO,GAAC,CACzD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as y}from"./query-ATBhtd3K.js";import{r as d}from"./vendor-EnoIVk-c.js";import{u as S}from"./useAuth-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{j as y}from"./query-ATBhtd3K.js";import{r as d}from"./vendor-EnoIVk-c.js";import{u as S}from"./useAuth-B9hvtwrc.js";import{u as P}from"./AuthContext-CqopYuY9.js";import{a as C,L as v}from"./routing-BPQO9e8a.js";import{u as w,c as U,W as R,P as I}from"./en-IUV4ZXKH-b_r0oyRV.js";import{u as x}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";function N(){var u;const{t:b}=x(),e=(c,n)=>b(`AuthWelcome.${c}`,n),{isAuthenticated:o,isLoading:r,user:s}=S(),{clearSession:h}=P(),i=C(),[A,T]=d.useState(!1),f=w(),p=U(),{data:t}=p.me.useQuery(),a=p.acceptTerms.useMutation();d.useEffect(()=>{if(!r){if(!o){i.push("/auth/connect");return}if(t!=null&&t.termsAcceptedAt){i.push("/");return}if(o&&t!==void 0&&(t!=null&&t.termsAcceptedAt)){i.push("/");return}}},[r,o,i,t]);const l=async c=>{if(!c){h(),i.push("/");return}try{await a.mutateAsync(),T(!0),setTimeout(()=>{i.push("/")},1e3)}catch(n){console.error("Terms acceptance error:",n),f.showError(e("errorAcceptingTerms"))}},g=r?"loading":A?"accepted":"form",m=((u=s==null?void 0:s.name)==null?void 0:u.split(" ")[0])??"";return y.jsx(R,{userName:m,termsAcceptedAt:(t==null?void 0:t.termsAcceptedAt)??null,isNewUser:!(t!=null&&t.termsAcceptedAt),status:g,isProcessing:a.isPending,onAccept:()=>l(!0),onDecline:()=>l(!1),translations:{loading:e("loading"),welcomeTitle:e("welcomeTitle"),thanksForAccepting:e("thanksForAccepting"),welcomeUser:e("welcomeUser",{firstName:m}),reviewTermsPrompt:e("reviewTermsPrompt"),termsSummaryTitle:e("termsSummaryTitle"),termsSummaryIntro:e("termsSummaryIntro"),acceptableUseTitle:e("acceptableUseTitle"),acceptableUseResponsible:e("acceptableUseResponsible"),acceptableUseRespect:e("acceptableUseRespect"),acceptableUseConduct:e("acceptableUseConduct"),prohibitedContentTitle:e("prohibitedContentTitle"),prohibitedContentIntro:e("prohibitedContentIntro"),prohibitedIllegal:e("prohibitedIllegal"),prohibitedAdult:e("prohibitedAdult"),prohibitedHate:e("prohibitedHate"),prohibitedViolence:e("prohibitedViolence"),prohibitedMisinformation:e("prohibitedMisinformation"),prohibitedPrivacy:e("prohibitedPrivacy"),prohibitedCopyright:e("prohibitedCopyright"),prohibitedMalware:e("prohibitedMalware"),prohibitedSpam:e("prohibitedSpam"),conductTitle:e("conductTitle"),conductDescription:e("conductDescription"),conductLink:e("conductLink"),conductPromotion:e("conductPromotion"),responsibilitiesTitle:e("responsibilitiesTitle"),responsibilitiesSecure:e("responsibilitiesSecure"),responsibilitiesReport:e("responsibilitiesReport"),responsibilitiesAccurate:e("responsibilitiesAccurate"),responsibilitiesComply:e("responsibilitiesComply"),violationsWarning:e("violationsWarning"),readFullTerms:e("readFullTerms"),termsOfService:e("termsOfService"),and:e("and"),privacyPolicy:e("privacyPolicy"),declineAndSignOut:e("declineAndSignOut"),acceptAndContinue:e("acceptAndContinue"),processing:e("processing"),legallyBound:e("legallyBound")},PageLayout:I,Link:v})}export{N as default};
|
|
2
|
+
//# sourceMappingURL=page-C-os3U8h.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-C-os3U8h.js","sources":["../../src/app/[locale]/auth/welcome/page.tsx"],"sourcesContent":["/**\n * Welcome Page - Thin Next.js wrapper\n *\n * This page handles Next.js-specific concerns (routing, auth, API calls)\n * and delegates rendering to the pure React WelcomePage component.\n */\n\nimport React, { useState, useEffect } from 'react';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useAuthContext } from '@/contexts/AuthContext';\nimport { useRouter } from '@/i18n/routing';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { PageLayout, useToast, useAuthApi } from '@semiont/react-ui';\nimport { WelcomePage } from '@semiont/react-ui';\n\nexport default function Welcome() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`AuthWelcome.${k}`, p as any) as string;\n const { isAuthenticated, isLoading, user } = useAuth();\n const { clearSession } = useAuthContext();\n const router = useRouter();\n const [termsAccepted, setTermsAccepted] = useState(false);\n const toast = useToast();\n\n // API hooks\n const authAPI = useAuthApi();\n\n // Query user data to check if terms already accepted\n const { data: userData } = authAPI.me.useQuery();\n\n // Mutation for accepting terms\n const acceptTermsMutation = authAPI.acceptTerms.useMutation();\n\n // Redirect if not authenticated or if terms already accepted\n useEffect(() => {\n if (isLoading) return;\n if (!isAuthenticated) {\n router.push('/auth/connect');\n return;\n }\n\n // Check if user has accepted terms\n if (userData?.termsAcceptedAt) {\n router.push('/');\n return;\n }\n\n // If terms already accepted, redirect to main app\n if (isAuthenticated && userData !== undefined && userData?.termsAcceptedAt) {\n router.push('/');\n return;\n }\n }, [isLoading, isAuthenticated, router, userData]);\n\n const handleTermsAcceptance = async (accepted: boolean) => {\n if (!accepted) {\n // User declined terms - clear session and redirect to home\n clearSession();\n router.push('/');\n return;\n }\n\n try {\n await acceptTermsMutation.mutateAsync();\n setTermsAccepted(true);\n\n // Small delay to show the acceptance state\n setTimeout(() => {\n router.push('/');\n }, 1000);\n } catch (error) {\n console.error('Terms acceptance error:', error);\n toast.showError(t('errorAcceptingTerms'));\n }\n };\n\n // Determine status\n const pageStatus = isLoading ? 'loading' : termsAccepted ? 'accepted' : 'form';\n const firstName = user?.name?.split(' ')[0] ?? '';\n\n return (\n <WelcomePage\n userName={firstName}\n termsAcceptedAt={userData?.termsAcceptedAt ?? null}\n isNewUser={!userData?.termsAcceptedAt}\n status={pageStatus}\n isProcessing={acceptTermsMutation.isPending}\n onAccept={() => handleTermsAcceptance(true)}\n onDecline={() => handleTermsAcceptance(false)}\n translations={{\n loading: t('loading'),\n welcomeTitle: t('welcomeTitle'),\n thanksForAccepting: t('thanksForAccepting'),\n welcomeUser: t('welcomeUser', { firstName }),\n reviewTermsPrompt: t('reviewTermsPrompt'),\n termsSummaryTitle: t('termsSummaryTitle'),\n termsSummaryIntro: t('termsSummaryIntro'),\n acceptableUseTitle: t('acceptableUseTitle'),\n acceptableUseResponsible: t('acceptableUseResponsible'),\n acceptableUseRespect: t('acceptableUseRespect'),\n acceptableUseConduct: t('acceptableUseConduct'),\n prohibitedContentTitle: t('prohibitedContentTitle'),\n prohibitedContentIntro: t('prohibitedContentIntro'),\n prohibitedIllegal: t('prohibitedIllegal'),\n prohibitedAdult: t('prohibitedAdult'),\n prohibitedHate: t('prohibitedHate'),\n prohibitedViolence: t('prohibitedViolence'),\n prohibitedMisinformation: t('prohibitedMisinformation'),\n prohibitedPrivacy: t('prohibitedPrivacy'),\n prohibitedCopyright: t('prohibitedCopyright'),\n prohibitedMalware: t('prohibitedMalware'),\n prohibitedSpam: t('prohibitedSpam'),\n conductTitle: t('conductTitle'),\n conductDescription: t('conductDescription'),\n conductLink: t('conductLink'),\n conductPromotion: t('conductPromotion'),\n responsibilitiesTitle: t('responsibilitiesTitle'),\n responsibilitiesSecure: t('responsibilitiesSecure'),\n responsibilitiesReport: t('responsibilitiesReport'),\n responsibilitiesAccurate: t('responsibilitiesAccurate'),\n responsibilitiesComply: t('responsibilitiesComply'),\n violationsWarning: t('violationsWarning'),\n readFullTerms: t('readFullTerms'),\n termsOfService: t('termsOfService'),\n and: t('and'),\n privacyPolicy: t('privacyPolicy'),\n declineAndSignOut: t('declineAndSignOut'),\n acceptAndContinue: t('acceptAndContinue'),\n processing: t('processing'),\n legallyBound: t('legallyBound'),\n }}\n PageLayout={PageLayout}\n Link={Link}\n />\n );\n}\n"],"names":["Welcome","_t","useTranslation","t","k","p","isAuthenticated","isLoading","user","useAuth","clearSession","useAuthContext","router","useRouter","termsAccepted","setTermsAccepted","useState","toast","useToast","authAPI","useAuthApi","userData","acceptTermsMutation","useEffect","handleTermsAcceptance","accepted","error","pageStatus","firstName","_a","jsx","WelcomePage","PageLayout","Link"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as j,j as r}from"./query-ATBhtd3K.js";import{r as s}from"./vendor-EnoIVk-c.js";import{d as v,e as w,f as A,g as C,i as L,E as k,T as I}from"./en-IUV4ZXKH-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{u as j,j as r}from"./query-ATBhtd3K.js";import{r as s}from"./vendor-EnoIVk-c.js";import{d as v,e as w,f as A,g as C,i as L,E as k,T as I}from"./en-IUV4ZXKH-b_r0oyRV.js";import{T as D}from"./ToolbarPanels-CtBfzYcP.js";import{u as M}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";import"./useAuth-B9hvtwrc.js";import"./AuthContext-CqopYuY9.js";import"./routing-BPQO9e8a.js";import"./KnowledgeBaseContext-CgnF8K-_.js";import"./PlusIcon-qGFPUzg0.js";function G(){const{t:m}=M(),e=(t,N)=>m(`ModerateEntityTags.${t}`,N),[a,i]=s.useState(""),[p,o]=s.useState(""),T=j(),{activePanel:y}=v(),{theme:h,setTheme:c}=w(),{showLineNumbers:f,toggleLineNumbers:d}=A(),E=s.useCallback(({theme:t})=>{c(t)},[c]),b=s.useCallback(()=>{d()},[d]);C({"settings:theme-changed":E,"settings:line-numbers-toggled":b});const l=L(),{data:n,isLoading:u}=l.list.useQuery({refetchInterval:3e4,refetchIntervalInBackground:!0}),x=(n==null?void 0:n.entityTypes)||[],g=l.add.useMutation(),P=async()=>{if(a.trim()){o("");try{await g.mutateAsync(a.trim()),T.invalidateQueries({queryKey:["/api/entity-types"]}),i("")}catch(t){o(t instanceof Error?t.message:e("errorFailedToAdd"))}}};return u?r.jsx("div",{className:"flex items-center justify-center py-20",children:r.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:e("loading")})}):r.jsx(k,{entityTypes:x,isLoading:u,error:p,newTag:a,onNewTagChange:i,onAddTag:P,isAddingTag:g.isPending,theme:h,showLineNumbers:f,activePanel:y,translations:{pageTitle:e("pageTitle"),pageDescription:e("pageDescription"),sectionTitle:e("sectionTitle"),sectionDescription:e("sectionDescription"),inputPlaceholder:e("inputPlaceholder"),addTag:e("addTag"),adding:e("adding")},ToolbarPanels:D,Toolbar:I})}export{G as default};
|
|
2
|
+
//# sourceMappingURL=page-C02dLWb8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-C02dLWb8.js","sources":["../../src/app/[locale]/moderate/entity-tags/page.tsx"],"sourcesContent":["/**\n * Entity Tags Page - Thin Next.js wrapper\n *\n * This page handles Next.js-specific concerns (translations, API calls)\n * and delegates rendering to the pure React EntityTagsPage component.\n */\n\nimport { useState, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useEntityTypes, Toolbar } from '@semiont/react-ui';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { useTheme, usePanelBrowse, useLineNumbers, useEventSubscriptions } from '@semiont/react-ui';\nimport { EntityTagsPage } from '@semiont/react-ui';\n\n// Authentication is handled by middleware (proxy.ts)\n// Only authenticated moderators/admins can reach this page\n\nexport default function EntityTagsPageWrapper() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`ModerateEntityTags.${k}`, p as any) as string;\n const [newTag, setNewTag] = useState('');\n const [error, setError] = useState('');\n const queryClient = useQueryClient();\n\n // Toolbar and settings state\n const { activePanel } = usePanelBrowse();\n const { theme, setTheme } = useTheme();\n const { showLineNumbers, toggleLineNumbers } = useLineNumbers();\n\n const handleThemeChanged = useCallback(({ theme }: { theme: 'light' | 'dark' | 'system' }) => {\n setTheme(theme);\n }, [setTheme]);\n\n const handleLineNumbersToggled = useCallback(() => {\n toggleLineNumbers();\n }, [toggleLineNumbers]);\n\n useEventSubscriptions({\n 'settings:theme-changed': handleThemeChanged,\n 'settings:line-numbers-toggled': handleLineNumbersToggled,\n });\n\n // API hooks\n const entityTypesAPI = useEntityTypes();\n\n // Query entity types with auto-refetch for cross-browser updates\n const { data: entityTypesData, isLoading } = entityTypesAPI.list.useQuery({\n refetchInterval: 30000,\n refetchIntervalInBackground: true,\n });\n const entityTypes = entityTypesData?.entityTypes || [];\n\n // Mutation for creating new entity type\n const createEntityTypeMutation = entityTypesAPI.add.useMutation();\n\n const handleAddTag = async () => {\n if (!newTag.trim()) return;\n\n setError('');\n\n try {\n await createEntityTypeMutation.mutateAsync(newTag.trim());\n queryClient.invalidateQueries({ queryKey: ['/api/entity-types'] });\n setNewTag('');\n } catch (err) {\n setError(err instanceof Error ? err.message : t('errorFailedToAdd'));\n }\n };\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center py-20\">\n <p className=\"text-gray-600 dark:text-gray-300\">{t('loading')}</p>\n </div>\n );\n }\n\n return (\n <EntityTagsPage\n entityTypes={entityTypes as string[]}\n isLoading={isLoading}\n error={error}\n newTag={newTag}\n onNewTagChange={setNewTag}\n onAddTag={handleAddTag}\n isAddingTag={createEntityTypeMutation.isPending}\n theme={theme}\n showLineNumbers={showLineNumbers}\n activePanel={activePanel}\n translations={{\n pageTitle: t('pageTitle'),\n pageDescription: t('pageDescription'),\n sectionTitle: t('sectionTitle'),\n sectionDescription: t('sectionDescription'),\n inputPlaceholder: t('inputPlaceholder'),\n addTag: t('addTag'),\n adding: t('adding'),\n }}\n ToolbarPanels={ToolbarPanels}\n Toolbar={Toolbar}\n />\n );\n}\n"],"names":["EntityTagsPageWrapper","_t","useTranslation","t","k","p","newTag","setNewTag","useState","error","setError","queryClient","useQueryClient","activePanel","usePanelBrowse","theme","setTheme","useTheme","showLineNumbers","toggleLineNumbers","useLineNumbers","handleThemeChanged","useCallback","handleLineNumbersToggled","useEventSubscriptions","entityTypesAPI","useEntityTypes","entityTypesData","isLoading","entityTypes","createEntityTypeMutation","handleAddTag","err","jsx","EntityTagsPage","ToolbarPanels","Toolbar"],"mappings":"2cAkBA,SAAwBA,GAAwB,CAC9C,KAAM,CAAE,EAAGC,CAAA,EAAOC,EAAA,EACZC,EAAI,CAACC,EAAWC,IAAgCJ,EAAG,sBAAsBG,CAAC,GAAIC,CAAQ,EACtF,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAAS,EAAE,EACjC,CAACC,EAAOC,CAAQ,EAAIF,EAAAA,SAAS,EAAE,EAC/BG,EAAcC,EAAA,EAGd,CAAE,YAAAC,CAAA,EAAgBC,EAAA,EAClB,CAAE,MAAAC,EAAO,SAAAC,CAAA,EAAaC,EAAA,EACtB,CAAE,gBAAAC,EAAiB,kBAAAC,CAAA,EAAsBC,EAAA,EAEzCC,EAAqBC,EAAAA,YAAY,CAAC,CAAE,MAAAP,KAAoD,CAC5FC,EAASD,CAAK,CAChB,EAAG,CAACC,CAAQ,CAAC,EAEPO,EAA2BD,EAAAA,YAAY,IAAM,CACjDH,EAAA,CACF,EAAG,CAACA,CAAiB,CAAC,EAEtBK,EAAsB,CACpB,yBAA0BH,EAC1B,gCAAiCE,CAAA,CAClC,EAGD,MAAME,EAAiBC,EAAA,EAGjB,CAAE,KAAMC,EAAiB,UAAAC,GAAcH,EAAe,KAAK,SAAS,CACxE,gBAAiB,IACjB,4BAA6B,EAAA,CAC9B,EACKI,GAAcF,GAAA,YAAAA,EAAiB,cAAe,CAAA,EAG9CG,EAA2BL,EAAe,IAAI,YAAA,EAE9CM,EAAe,SAAY,CAC/B,GAAKzB,EAAO,OAEZ,CAAAI,EAAS,EAAE,EAEX,GAAI,CACF,MAAMoB,EAAyB,YAAYxB,EAAO,KAAA,CAAM,EACxDK,EAAY,kBAAkB,CAAE,SAAU,CAAC,mBAAmB,EAAG,EACjEJ,EAAU,EAAE,CACd,OAASyB,EAAK,CACZtB,EAASsB,aAAe,MAAQA,EAAI,QAAU7B,EAAE,kBAAkB,CAAC,CACrE,EACF,EAEA,OAAIyB,EAEAK,EAAAA,IAAC,MAAA,CAAI,UAAU,yCACb,SAAAA,MAAC,IAAA,CAAE,UAAU,mCAAoC,SAAA9B,EAAE,SAAS,CAAA,CAAE,EAChE,EAKF8B,EAAAA,IAACC,EAAA,CACC,YAAAL,EACA,UAAAD,EACA,MAAAnB,EACA,OAAAH,EACA,eAAgBC,EAChB,SAAUwB,EACV,YAAaD,EAAyB,UACtC,MAAAf,EACA,gBAAAG,EACA,YAAAL,EACA,aAAc,CACZ,UAAWV,EAAE,WAAW,EACxB,gBAAiBA,EAAE,iBAAiB,EACpC,aAAcA,EAAE,cAAc,EAC9B,mBAAoBA,EAAE,oBAAoB,EAC1C,iBAAkBA,EAAE,kBAAkB,EACtC,OAAQA,EAAE,QAAQ,EAClB,OAAQA,EAAE,QAAQ,CAAA,EAEpB,cAAAgC,EACA,QAAAC,CAAA,CAAA,CAGN"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as r}from"./query-ATBhtd3K.js";import{u as f,r as h}from"./vendor-EnoIVk-c.js";import{a as U,L as d}from"./routing-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{j as r}from"./query-ATBhtd3K.js";import{u as f,r as h}from"./vendor-EnoIVk-c.js";import{a as U,L as d}from"./routing-BPQO9e8a.js";import{P as k,a as H}from"./en-IUV4ZXKH-b_r0oyRV.js";import{C as b}from"./CookiePreferences-DIUP_g1S.js";import{K as x}from"./privacy-BMKdYFGC.js";import{r as y,L as A}from"./routing-BBQqTcTn.js";import{u as L}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";function S(){const{t:n}=L(),o=(t,e)=>n(`AuthSignUp.${t}`,e),i=(t,e)=>n(`Footer.${t}`,e),c=(t,e)=>n(`Navigation.${t}`,e),s=(t,e)=>n(`Home.${t}`,e),[p]=f(),m=U(),a=h.useContext(x),l=p.get("callbackUrl")??"/auth/welcome",u=async()=>{m.push(`/auth/connect?callbackUrl=${encodeURIComponent(l)}`)},g={pageTitle:o("pageTitle"),signUpPrompt:o("signUpPrompt"),signUpWithGoogle:o("signUpWithGoogle"),creatingAccount:o("creatingAccount"),approvedDomainsInfo:o("approvedDomainsInfo"),termsAgreement:o("termsAgreement"),alreadyHaveAccount:o("alreadyHaveAccount"),tagline:s("tagline"),backToHome:o("backToHome")};return r.jsx(k,{Link:A,routes:y,t:i,tNav:c,tHome:s,CookiePreferences:b,...(a==null?void 0:a.openKeyboardHelp)&&{onOpenKeyboardHelp:a.openKeyboardHelp},className:"semiont-page-layout--auth",showAuthLinks:!1,children:r.jsx(H,{onSignUp:u,Link:d,translations:g})})}function N(){return r.jsx(S,{})}export{N as default};
|
|
2
|
+
//# sourceMappingURL=page-CGDUl5-d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-CGDUl5-d.js","sources":["../../src/app/[locale]/auth/signup/page.tsx"],"sourcesContent":["import { useContext } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useRouter } from '@/i18n/routing';\nimport { PageLayout, SignUpForm } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link as RoutingLink, routes } from '@/lib/routing';\nimport { Link } from '@/i18n/routing';\n\nfunction SignUpContent() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`AuthSignUp.${k}`, p as any) as string;\n const tFooter = (k: string, p?: Record<string, unknown>) => _t(`Footer.${k}`, p as any) as string;\n const tNav = (k: string, p?: Record<string, unknown>) => _t(`Navigation.${k}`, p as any) as string;\n const tHome = (k: string, p?: Record<string, unknown>) => _t(`Home.${k}`, p as any) as string;\n const [searchParams] = useSearchParams();\n const router = useRouter();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n\n const callbackUrl = searchParams.get('callbackUrl') ?? '/auth/welcome';\n\n const handleSignUp = async () => {\n router.push(`/auth/connect?callbackUrl=${encodeURIComponent(callbackUrl)}`);\n };\n\n const translations = {\n pageTitle: t('pageTitle'),\n signUpPrompt: t('signUpPrompt'),\n signUpWithGoogle: t('signUpWithGoogle'),\n creatingAccount: t('creatingAccount'),\n approvedDomainsInfo: t('approvedDomainsInfo'),\n termsAgreement: t('termsAgreement'),\n alreadyHaveAccount: t('alreadyHaveAccount'),\n tagline: tHome('tagline'),\n backToHome: t('backToHome'),\n };\n\n return (\n <PageLayout\n Link={RoutingLink}\n routes={routes}\n t={tFooter}\n tNav={tNav}\n tHome={tHome}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n className=\"semiont-page-layout--auth\"\n showAuthLinks={false}\n >\n <SignUpForm onSignUp={handleSignUp} Link={Link} translations={translations} />\n </PageLayout>\n );\n}\n\nexport default function SignUp() {\n return <SignUpContent />;\n}\n"],"names":["SignUpContent","_t","useTranslation","t","k","p","tFooter","tNav","tHome","searchParams","useSearchParams","router","useRouter","keyboardContext","useContext","KeyboardShortcutsContext","callbackUrl","handleSignUp","translations","jsx","PageLayout","RoutingLink","routes","CookiePreferences","SignUpForm","Link","SignUp"],"mappings":"gZAUA,SAASA,GAAgB,CACvB,KAAM,CAAE,EAAGC,CAAA,EAAOC,EAAA,EACZC,EAAI,CAACC,EAAWC,IAAgCJ,EAAG,cAAcG,CAAC,GAAIC,CAAQ,EAC9EC,EAAU,CAACF,EAAWC,IAAgCJ,EAAG,UAAUG,CAAC,GAAIC,CAAQ,EAChFE,EAAO,CAACH,EAAWC,IAAgCJ,EAAG,cAAcG,CAAC,GAAIC,CAAQ,EACjFG,EAAQ,CAACJ,EAAWC,IAAgCJ,EAAG,QAAQG,CAAC,GAAIC,CAAQ,EAC5E,CAACI,CAAY,EAAIC,EAAA,EACjBC,EAASC,EAAA,EACTC,EAAkBC,EAAAA,WAAWC,CAAwB,EAErDC,EAAcP,EAAa,IAAI,aAAa,GAAK,gBAEjDQ,EAAe,SAAY,CAC/BN,EAAO,KAAK,6BAA6B,mBAAmBK,CAAW,CAAC,EAAE,CAC5E,EAEME,EAAe,CACnB,UAAWf,EAAE,WAAW,EACxB,aAAcA,EAAE,cAAc,EAC9B,iBAAkBA,EAAE,kBAAkB,EACtC,gBAAiBA,EAAE,iBAAiB,EACpC,oBAAqBA,EAAE,qBAAqB,EAC5C,eAAgBA,EAAE,gBAAgB,EAClC,mBAAoBA,EAAE,oBAAoB,EAC1C,QAASK,EAAM,SAAS,EACxB,WAAYL,EAAE,YAAY,CAAA,EAG5B,OACEgB,EAAAA,IAACC,EAAA,CACC,KAAMC,EACN,OAAAC,EACA,EAAGhB,EACH,KAAAC,EACA,MAAAC,EACA,kBAAAe,EACC,IAAIV,GAAA,YAAAA,EAAiB,mBAAoB,CAAE,mBAAoBA,EAAgB,gBAAA,EAChF,UAAU,4BACV,cAAe,GAEf,SAAAM,EAAAA,IAACK,EAAA,CAAW,SAAUP,EAAA,KAAcQ,EAAY,aAAAP,CAAA,CAA4B,CAAA,CAAA,CAGlF,CAEA,SAAwBQ,GAAS,CAC/B,aAAQ1B,EAAA,EAAc,CACxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as u}from"./query-ATBhtd3K.js";import{r as n}from"./vendor-EnoIVk-c.js";import{d as g,e as T,f as d,g as h,B as b,T as f}from"./en-IUV4ZXKH-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{j as u}from"./query-ATBhtd3K.js";import{r as n}from"./vendor-EnoIVk-c.js";import{d as g,e as T,f as d,g as h,B as b,T as f}from"./en-IUV4ZXKH-b_r0oyRV.js";import{T as D}from"./ToolbarPanels-CtBfzYcP.js";import{u as x}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";import"./useAuth-B9hvtwrc.js";import"./AuthContext-CqopYuY9.js";import"./routing-BPQO9e8a.js";import"./KnowledgeBaseContext-CgnF8K-_.js";import"./PlusIcon-qGFPUzg0.js";function y(){const{t:i}=x(),e=(t,p)=>i(`ModerateRecent.${t}`,p),{activePanel:a}=g(),{theme:r,setTheme:s}=T(),{showLineNumbers:m,toggleLineNumbers:o}=d(),c=n.useCallback(({theme:t})=>{s(t)},[s]),l=n.useCallback(()=>{o()},[o]);return h({"settings:theme-changed":c,"settings:line-numbers-toggled":l}),u.jsx(b,{hasDocuments:!1,isLoading:!1,theme:r,showLineNumbers:m,activePanel:a,translations:{pageTitle:e("pageTitle"),pageDescription:e("pageDescription"),sectionTitle:e("sectionTitle"),sectionDescription:e("sectionDescription"),noDocuments:e("noDocuments"),activityWillAppear:e("activityWillAppear"),loading:e("loading")},ToolbarPanels:D,Toolbar:f})}export{y as default};
|
|
2
|
+
//# sourceMappingURL=page-CHq5JMOn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-CHq5JMOn.js","sources":["../../src/app/[locale]/moderate/recent/page.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Toolbar } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { useTheme, usePanelBrowse, useLineNumbers, useEventSubscriptions } from '@semiont/react-ui';\nimport { RecentDocumentsPage } from '@semiont/react-ui';\n\n// Authentication is handled by middleware (proxy.ts)\n// Only authenticated moderators/admins can reach this page\n\nexport default function RecentDocumentsPageWrapper() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`ModerateRecent.${k}`, p as any) as string;\n\n // Toolbar and settings state\n const { activePanel } = usePanelBrowse();\n const { theme, setTheme } = useTheme();\n const { showLineNumbers, toggleLineNumbers } = useLineNumbers();\n\n const handleThemeChanged = useCallback(({ theme }: { theme: 'light' | 'dark' | 'system' }) => {\n setTheme(theme);\n }, [setTheme]);\n\n const handleLineNumbersToggled = useCallback(() => {\n toggleLineNumbers();\n }, [toggleLineNumbers]);\n\n useEventSubscriptions({\n 'settings:theme-changed': handleThemeChanged,\n 'settings:line-numbers-toggled': handleLineNumbersToggled,\n });\n\n return (\n <RecentDocumentsPage\n hasDocuments={false}\n isLoading={false}\n theme={theme}\n showLineNumbers={showLineNumbers}\n activePanel={activePanel}\n translations={{\n pageTitle: t('pageTitle'),\n pageDescription: t('pageDescription'),\n sectionTitle: t('sectionTitle'),\n sectionDescription: t('sectionDescription'),\n noDocuments: t('noDocuments'),\n activityWillAppear: t('activityWillAppear'),\n loading: t('loading'),\n }}\n ToolbarPanels={ToolbarPanels}\n Toolbar={Toolbar}\n />\n );\n}\n"],"names":["RecentDocumentsPageWrapper","_t","useTranslation","t","k","activePanel","usePanelBrowse","theme","setTheme","useTheme","showLineNumbers","toggleLineNumbers","useLineNumbers","handleThemeChanged","useCallback","handleLineNumbersToggled","useEventSubscriptions","jsx","RecentDocumentsPage","ToolbarPanels","Toolbar"],"mappings":"6bAUA,SAAwBA,GAA6B,CACnD,KAAM,CAAE,EAAGC,CAAA,EAAOC,EAAA,EACZC,EAAI,CAACC,EAAW,IAAgCH,EAAG,kBAAkBG,CAAC,GAAI,CAAQ,EAGlF,CAAE,YAAAC,CAAA,EAAgBC,EAAA,EAClB,CAAE,MAAAC,EAAO,SAAAC,CAAA,EAAaC,EAAA,EACtB,CAAE,gBAAAC,EAAiB,kBAAAC,CAAA,EAAsBC,EAAA,EAEzCC,EAAqBC,EAAAA,YAAY,CAAC,CAAE,MAAAP,KAAoD,CAC5FC,EAASD,CAAK,CAChB,EAAG,CAACC,CAAQ,CAAC,EAEPO,EAA2BD,EAAAA,YAAY,IAAM,CACjDH,EAAA,CACF,EAAG,CAACA,CAAiB,CAAC,EAEtB,OAAAK,EAAsB,CACpB,yBAA0BH,EAC1B,gCAAiCE,CAAA,CAClC,EAGCE,EAAAA,IAACC,EAAA,CACC,aAAc,GACd,UAAW,GACX,MAAAX,EACA,gBAAAG,EACA,YAAAL,EACA,aAAc,CACZ,UAAWF,EAAE,WAAW,EACxB,gBAAiBA,EAAE,iBAAiB,EACpC,aAAcA,EAAE,cAAc,EAC9B,mBAAoBA,EAAE,oBAAoB,EAC1C,YAAaA,EAAE,aAAa,EAC5B,mBAAoBA,EAAE,oBAAoB,EAC1C,QAASA,EAAE,SAAS,CAAA,EAEtB,cAAAgB,EACA,QAAAC,CAAA,CAAA,CAGN"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e}from"./query-ATBhtd3K.js";import{r as m}from"./vendor-EnoIVk-c.js";import{P as u}from"./en-IUV4ZXKH-
|
|
1
|
+
import{j as e}from"./query-ATBhtd3K.js";import{r as m}from"./vendor-EnoIVk-c.js";import{P as u}from"./en-IUV4ZXKH-b_r0oyRV.js";import{C as T}from"./CookiePreferences-DIUP_g1S.js";import{K as f}from"./privacy-BMKdYFGC.js";import{r as g,L as k}from"./routing-BBQqTcTn.js";import{u as c}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";import"./routing-BPQO9e8a.js";function b(){const{t:r}=c(),s=(t,i)=>r(`Privacy.${t}`,i),{t:l}=c(),o=(t,i)=>l(`Footer.${t}`,i),{t:a}=c(),d=(t,i)=>a(`Navigation.${t}`,i),{t:h}=c(),x=(t,i)=>h(`Home.${t}`,i),n=m.useContext(f);return e.jsx(u,{Link:k,routes:g,t:o,tNav:d,tHome:x,CookiePreferences:T,...(n==null?void 0:n.openKeyboardHelp)&&{onOpenKeyboardHelp:n.openKeyboardHelp},className:"semiont-static-page",children:e.jsx("div",{className:"semiont-static-container",children:e.jsxs("div",{className:"semiont-static-content",children:[e.jsx("header",{className:"semiont-static-header",children:e.jsx("h1",{className:"semiont-static-title",children:s("pageTitle")})}),e.jsxs("article",{className:"semiont-static-article",children:[e.jsxs("section",{children:[e.jsx("h2",{children:s("introTitle")}),s("intro").split(`
|
|
2
2
|
|
|
3
3
|
`).map((t,i)=>e.jsx("p",{children:t},i))]}),e.jsxs("section",{children:[e.jsx("h2",{children:s("infoCollectTitle")}),e.jsx("h3",{children:s("personalInfoTitle")}),e.jsx("ul",{children:s("personalInfo").split(`
|
|
4
4
|
`).map((t,i)=>e.jsx("li",{children:t},i))}),e.jsx("h3",{children:s("autoCollectTitle")}),e.jsx("ul",{children:s("autoCollect").split(`
|
|
@@ -17,4 +17,4 @@ import{j as e}from"./query-ATBhtd3K.js";import{r as m}from"./vendor-EnoIVk-c.js"
|
|
|
17
17
|
|
|
18
18
|
`).map((t,i)=>i===0?e.jsx("p",{children:t},i):e.jsx("ul",{children:t.split(`
|
|
19
19
|
`).map((j,p)=>e.jsx("li",{children:j},p))},i))]}),e.jsxs("section",{children:[e.jsx("h2",{children:s("dataRetentionTitle")}),e.jsx("p",{children:s("dataRetention")})]}),e.jsxs("section",{children:[e.jsx("h2",{children:s("internationalTransfersTitle")}),e.jsx("p",{children:s("internationalTransfers")})]}),e.jsxs("section",{children:[e.jsx("h2",{children:s("contactTitle")}),e.jsx("p",{children:s("contactIntro")}),e.jsx("div",{className:"semiont-static-info-box",children:e.jsxs("p",{children:[e.jsx("strong",{children:s("contactEmail")})," privacy@semiont.com",e.jsx("br",{}),e.jsx("strong",{children:s("contactAddress")})," [Your Company Address]"]})})]}),e.jsxs("section",{children:[e.jsx("h2",{children:s("updatesTitle")}),e.jsx("p",{children:s("updates")}),e.jsx("footer",{className:"semiont-static-footer",children:e.jsx("p",{children:e.jsx("strong",{children:s("lastUpdated",{date:new Date().toLocaleDateString()})})})})]})]})]})})})}export{b as default};
|
|
20
|
-
//# sourceMappingURL=page-
|
|
20
|
+
//# sourceMappingURL=page-CUbbBytS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-CnBwmYIE.js","sources":["../../src/app/[locale]/privacy/page.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { PageLayout } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link as RoutingLink, routes } from '@/lib/routing';\n\nexport default function PrivacyPolicyPage() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Privacy.${k}`, p as any) as string;\n const { t: _tFooter } = useTranslation();\n const tFooter = (k: string, p?: Record<string, unknown>) => _tFooter(`Footer.${k}`, p as any) as string;\n const { t: _tNav } = useTranslation();\n const tNav = (k: string, p?: Record<string, unknown>) => _tNav(`Navigation.${k}`, p as any) as string;\n const { t: _tHome } = useTranslation();\n const tHome = (k: string, p?: Record<string, unknown>) => _tHome(`Home.${k}`, p as any) as string;\n const keyboardContext = useContext(KeyboardShortcutsContext);\n\n return (\n <PageLayout\n Link={RoutingLink}\n routes={routes}\n t={tFooter}\n tNav={tNav}\n tHome={tHome}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n className=\"semiont-static-page\"\n >\n <div className=\"semiont-static-container\">\n <div className=\"semiont-static-content\">\n <header className=\"semiont-static-header\">\n <h1 className=\"semiont-static-title\">{t('pageTitle')}</h1>\n </header>\n\n <article className=\"semiont-static-article\">\n <section>\n <h2>{t('introTitle')}</h2>\n {t('intro').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </section>\n\n <section>\n <h2>{t('infoCollectTitle')}</h2>\n\n <h3>{t('personalInfoTitle')}</h3>\n <ul>\n {t('personalInfo').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n\n <h3>{t('autoCollectTitle')}</h3>\n <ul>\n {t('autoCollect').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n </section>\n\n <section>\n <h2>{t('howWeUseTitle')}</h2>\n <ul>\n {t('howWeUse').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n </section>\n\n <section>\n <h2>{t('cookiePolicyTitle')}</h2>\n <p>\n {t('cookiePolicyIntro')}\n </p>\n\n <h3>{t('cookieCategoriesTitle')}</h3>\n\n <div className=\"semiont-static-cookie-grid\">\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('necessaryCookiesTitle')}</h4>\n {t('necessaryCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('analyticsCookiesTitle')}</h4>\n {t('analyticsCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('marketingCookiesTitle')}</h4>\n {t('marketingCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('preferenceCookiesTitle')}</h4>\n {t('preferenceCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n </div>\n </section>\n\n <section>\n <h2>{t('yourRightsTitle')}</h2>\n\n <h3>{t('gdprRightsTitle')}</h3>\n <ul>\n {t('gdprRights').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n\n <h3>{t('ccpaRightsTitle')}</h3>\n <ul>\n {t('ccpaRights').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n </section>\n\n <section>\n <h2>{t('dataSecurityTitle')}</h2>\n {t('dataSecurity').split('\\n\\n').map((block, i) => {\n if (i === 0) {\n return (\n <p key={i}>\n {block}\n </p>\n );\n }\n return (\n <ul key={i}>\n {block.split('\\n').map((item, j) => (\n <li key={j}>{item}</li>\n ))}\n </ul>\n );\n })}\n </section>\n\n <section>\n <h2>{t('dataRetentionTitle')}</h2>\n <p>\n {t('dataRetention')}\n </p>\n </section>\n\n <section>\n <h2>{t('internationalTransfersTitle')}</h2>\n <p>\n {t('internationalTransfers')}\n </p>\n </section>\n\n <section>\n <h2>{t('contactTitle')}</h2>\n <p>\n {t('contactIntro')}\n </p>\n <div className=\"semiont-static-info-box\">\n <p>\n <strong>{t('contactEmail')}</strong> privacy@semiont.com<br />\n <strong>{t('contactAddress')}</strong> [Your Company Address]\n </p>\n </div>\n </section>\n\n <section>\n <h2>{t('updatesTitle')}</h2>\n <p>\n {t('updates')}\n </p>\n <footer className=\"semiont-static-footer\">\n <p>\n <strong>{t('lastUpdated', { date: new Date().toLocaleDateString() })}</strong>\n </p>\n </footer>\n </section>\n </article>\n </div>\n </div>\n </PageLayout>\n );\n}"],"names":["PrivacyPolicyPage","_t","useTranslation","t","k","p","_tFooter","tFooter","_tNav","tNav","_tHome","tHome","keyboardContext","useContext","KeyboardShortcutsContext","jsx","PageLayout","RoutingLink","routes","CookiePreferences","jsxs","para","item","block","j"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-CUbbBytS.js","sources":["../../src/app/[locale]/privacy/page.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { PageLayout } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link as RoutingLink, routes } from '@/lib/routing';\n\nexport default function PrivacyPolicyPage() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Privacy.${k}`, p as any) as string;\n const { t: _tFooter } = useTranslation();\n const tFooter = (k: string, p?: Record<string, unknown>) => _tFooter(`Footer.${k}`, p as any) as string;\n const { t: _tNav } = useTranslation();\n const tNav = (k: string, p?: Record<string, unknown>) => _tNav(`Navigation.${k}`, p as any) as string;\n const { t: _tHome } = useTranslation();\n const tHome = (k: string, p?: Record<string, unknown>) => _tHome(`Home.${k}`, p as any) as string;\n const keyboardContext = useContext(KeyboardShortcutsContext);\n\n return (\n <PageLayout\n Link={RoutingLink}\n routes={routes}\n t={tFooter}\n tNav={tNav}\n tHome={tHome}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n className=\"semiont-static-page\"\n >\n <div className=\"semiont-static-container\">\n <div className=\"semiont-static-content\">\n <header className=\"semiont-static-header\">\n <h1 className=\"semiont-static-title\">{t('pageTitle')}</h1>\n </header>\n\n <article className=\"semiont-static-article\">\n <section>\n <h2>{t('introTitle')}</h2>\n {t('intro').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </section>\n\n <section>\n <h2>{t('infoCollectTitle')}</h2>\n\n <h3>{t('personalInfoTitle')}</h3>\n <ul>\n {t('personalInfo').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n\n <h3>{t('autoCollectTitle')}</h3>\n <ul>\n {t('autoCollect').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n </section>\n\n <section>\n <h2>{t('howWeUseTitle')}</h2>\n <ul>\n {t('howWeUse').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n </section>\n\n <section>\n <h2>{t('cookiePolicyTitle')}</h2>\n <p>\n {t('cookiePolicyIntro')}\n </p>\n\n <h3>{t('cookieCategoriesTitle')}</h3>\n\n <div className=\"semiont-static-cookie-grid\">\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('necessaryCookiesTitle')}</h4>\n {t('necessaryCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('analyticsCookiesTitle')}</h4>\n {t('analyticsCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('marketingCookiesTitle')}</h4>\n {t('marketingCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n\n <div className=\"semiont-static-cookie-card\">\n <h4>{t('preferenceCookiesTitle')}</h4>\n {t('preferenceCookies').split('\\n\\n').map((para, i) => (\n <p key={i}>\n {para}\n </p>\n ))}\n </div>\n </div>\n </section>\n\n <section>\n <h2>{t('yourRightsTitle')}</h2>\n\n <h3>{t('gdprRightsTitle')}</h3>\n <ul>\n {t('gdprRights').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n\n <h3>{t('ccpaRightsTitle')}</h3>\n <ul>\n {t('ccpaRights').split('\\n').map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n </section>\n\n <section>\n <h2>{t('dataSecurityTitle')}</h2>\n {t('dataSecurity').split('\\n\\n').map((block, i) => {\n if (i === 0) {\n return (\n <p key={i}>\n {block}\n </p>\n );\n }\n return (\n <ul key={i}>\n {block.split('\\n').map((item, j) => (\n <li key={j}>{item}</li>\n ))}\n </ul>\n );\n })}\n </section>\n\n <section>\n <h2>{t('dataRetentionTitle')}</h2>\n <p>\n {t('dataRetention')}\n </p>\n </section>\n\n <section>\n <h2>{t('internationalTransfersTitle')}</h2>\n <p>\n {t('internationalTransfers')}\n </p>\n </section>\n\n <section>\n <h2>{t('contactTitle')}</h2>\n <p>\n {t('contactIntro')}\n </p>\n <div className=\"semiont-static-info-box\">\n <p>\n <strong>{t('contactEmail')}</strong> privacy@semiont.com<br />\n <strong>{t('contactAddress')}</strong> [Your Company Address]\n </p>\n </div>\n </section>\n\n <section>\n <h2>{t('updatesTitle')}</h2>\n <p>\n {t('updates')}\n </p>\n <footer className=\"semiont-static-footer\">\n <p>\n <strong>{t('lastUpdated', { date: new Date().toLocaleDateString() })}</strong>\n </p>\n </footer>\n </section>\n </article>\n </div>\n </div>\n </PageLayout>\n );\n}"],"names":["PrivacyPolicyPage","_t","useTranslation","t","k","p","_tFooter","tFooter","_tNav","tNav","_tHome","tHome","keyboardContext","useContext","KeyboardShortcutsContext","jsx","PageLayout","RoutingLink","routes","CookiePreferences","jsxs","para","item","block","j"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as s}from"./query-ATBhtd3K.js";import{u as f,r as g}from"./vendor-EnoIVk-c.js";import{P as l,A as y}from"./en-IUV4ZXKH-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{j as s}from"./query-ATBhtd3K.js";import{u as f,r as g}from"./vendor-EnoIVk-c.js";import{P as l,A as y}from"./en-IUV4ZXKH-b_r0oyRV.js";import{C as d}from"./CookiePreferences-DIUP_g1S.js";import{K as A}from"./privacy-BMKdYFGC.js";import{r as h,L as x}from"./routing-BBQqTcTn.js";import{L}from"./routing-BPQO9e8a.js";import{u as b}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";function D(){const{t}=b(),e=(r,o)=>t(`AuthError.${r}`,o),n=(r,o)=>t(`Footer.${r}`,o),i=(r,o)=>t(`Navigation.${r}`,o),c=(r,o)=>t(`Home.${r}`,o),[m]=f(),a=g.useContext(A),p=m.get("error")??null,u={pageTitle:e("pageTitle"),tryAgain:e("tryAgain"),errorConfiguration:e("errorConfiguration"),errorAccessDenied:e("errorAccessDenied"),errorVerification:e("errorVerification"),errorGeneric:e("errorGeneric")};return s.jsx(l,{Link:x,routes:h,t:n,tNav:i,tHome:c,CookiePreferences:d,...(a==null?void 0:a.openKeyboardHelp)&&{onOpenKeyboardHelp:a.openKeyboardHelp},className:"bg-gray-50 dark:bg-gray-900",children:s.jsx(y,{errorType:p,Link:L,translations:u})})}export{D as default};
|
|
2
|
+
//# sourceMappingURL=page-C_L33_wR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-C_L33_wR.js","sources":["../../src/app/[locale]/auth/error/page.tsx"],"sourcesContent":["import { useContext } from 'react';\nimport { useSearchParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { PageLayout, AuthErrorDisplay } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link as RoutingLink, routes } from '@/lib/routing';\nimport { Link } from '@/i18n/routing';\n\nexport default function AuthError() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`AuthError.${k}`, p as any) as string;\n const tFooter = (k: string, p?: Record<string, unknown>) => _t(`Footer.${k}`, p as any) as string;\n const tNav = (k: string, p?: Record<string, unknown>) => _t(`Navigation.${k}`, p as any) as string;\n const tHome = (k: string, p?: Record<string, unknown>) => _t(`Home.${k}`, p as any) as string;\n const [searchParams] = useSearchParams();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n\n const errorType = searchParams.get('error') ?? null;\n\n const translations = {\n pageTitle: t('pageTitle'),\n tryAgain: t('tryAgain'),\n errorConfiguration: t('errorConfiguration'),\n errorAccessDenied: t('errorAccessDenied'),\n errorVerification: t('errorVerification'),\n errorGeneric: t('errorGeneric'),\n };\n\n return (\n <PageLayout\n Link={RoutingLink}\n routes={routes}\n t={tFooter}\n tNav={tNav}\n tHome={tHome}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n className=\"bg-gray-50 dark:bg-gray-900\"\n >\n <AuthErrorDisplay errorType={errorType} Link={Link} translations={translations} />\n </PageLayout>\n );\n}\n"],"names":["AuthError","_t","useTranslation","t","k","p","tFooter","tNav","tHome","searchParams","useSearchParams","keyboardContext","useContext","KeyboardShortcutsContext","errorType","translations","jsx","PageLayout","RoutingLink","routes","CookiePreferences","AuthErrorDisplay","Link"],"mappings":"oYASA,SAAwBA,GAAY,CAClC,KAAM,CAAEC,CAAG,EAAOC,EAAA,EACZC,EAAI,CAACC,EAAWC,IAAgCJ,EAAG,aAAaG,CAAC,GAAIC,CAAQ,EAC7EC,EAAU,CAACF,EAAWC,IAAgCJ,EAAG,UAAUG,CAAC,GAAIC,CAAQ,EAChFE,EAAO,CAACH,EAAWC,IAAgCJ,EAAG,cAAcG,CAAC,GAAIC,CAAQ,EACjFG,EAAQ,CAACJ,EAAWC,IAAgCJ,EAAG,QAAQG,CAAC,GAAIC,CAAQ,EAC5E,CAACI,CAAY,EAAIC,EAAA,EACjBC,EAAkBC,EAAAA,WAAWC,CAAwB,EAErDC,EAAYL,EAAa,IAAI,OAAO,GAAK,KAEzCM,EAAe,CACnB,UAAWZ,EAAE,WAAW,EACxB,SAAUA,EAAE,UAAU,EACtB,mBAAoBA,EAAE,oBAAoB,EAC1C,kBAAmBA,EAAE,mBAAmB,EACxC,kBAAmBA,EAAE,mBAAmB,EACxC,aAAcA,EAAE,cAAc,CAAA,EAGhC,OACEa,EAAAA,IAACC,EAAA,CACC,KAAMC,EACN,OAAAC,EACA,EAAGb,EACH,KAAAC,EACA,MAAAC,EACA,kBAAAY,EACC,IAAIT,GAAA,YAAAA,EAAiB,mBAAoB,CAAE,mBAAoBA,EAAgB,gBAAA,EAChF,UAAU,8BAEV,SAAAK,EAAAA,IAACK,EAAA,CAAiB,UAAAP,EAAA,KAAsBQ,EAAY,aAAAP,CAAA,CAA4B,CAAA,CAAA,CAGtF"}
|