@semiont/browser 0.5.28 → 0.5.29
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/{CookiePreferences-UVUl27XP.js → CookiePreferences-CinujnVd.js} +2 -2
- package/dist/assets/{CookiePreferences-UVUl27XP.js.map → CookiePreferences-CinujnVd.js.map} +1 -1
- package/dist/assets/{KeyboardShortcutsContext-D8VjaYfK.js → KeyboardShortcutsContext-BwQ1iude.js} +2 -2
- package/dist/assets/{KeyboardShortcutsContext-D8VjaYfK.js.map → KeyboardShortcutsContext-BwQ1iude.js.map} +1 -1
- package/dist/assets/{PdfAnnotationCanvas.client-LSH3PZPY-B8dnEIps.js → PdfAnnotationCanvas.client-LSH3PZPY-CcbBYgYn.js} +2 -2
- package/dist/assets/{PdfAnnotationCanvas.client-LSH3PZPY-B8dnEIps.js.map → PdfAnnotationCanvas.client-LSH3PZPY-CcbBYgYn.js.map} +1 -1
- package/dist/assets/{ToolbarPanels-Bf3f6THq.js → ToolbarPanels-D4AQa4cH.js} +2 -2
- package/dist/assets/{ToolbarPanels-Bf3f6THq.js.map → ToolbarPanels-D4AQa4cH.js.map} +1 -1
- package/dist/assets/{client-B2rbsRTh.js → client--3y6Y86L.js} +2 -2
- package/dist/assets/{client-B2rbsRTh.js.map → client--3y6Y86L.js.map} +1 -1
- package/dist/assets/{client-kvvQzQsd.js → client-DQkvuP6s.js} +2 -2
- package/dist/assets/{client-kvvQzQsd.js.map → client-DQkvuP6s.js.map} +1 -1
- package/dist/assets/{en-R5XA26NF-Cuox0uQn.js → en-R5XA26NF-BqWytpwo.js} +1 -1
- package/dist/assets/{index-BkTRe71w.js → index-vecxWX4w.js} +5 -5
- package/dist/assets/{index-BkTRe71w.js.map → index-vecxWX4w.js.map} +1 -1
- package/dist/assets/{layout-ChREg3PD.js → layout-9e1YcaDw.js} +2 -2
- package/dist/assets/{layout-ChREg3PD.js.map → layout-9e1YcaDw.js.map} +1 -1
- package/dist/assets/{layout-DmBlX8Wv.js → layout-CO_NB7xj.js} +2 -2
- package/dist/assets/{layout-DmBlX8Wv.js.map → layout-CO_NB7xj.js.map} +1 -1
- package/dist/assets/{layout-5m7ZN_sv.js → layout-GLK_QIQs.js} +2 -2
- package/dist/assets/{layout-5m7ZN_sv.js.map → layout-GLK_QIQs.js.map} +1 -1
- package/dist/assets/layout-ITFI0_HA.js +2 -0
- package/dist/assets/layout-ITFI0_HA.js.map +1 -0
- package/dist/assets/{not-found-BOkh1PJR.js → not-found-CSMLdCX4.js} +2 -2
- package/dist/assets/{not-found-BOkh1PJR.js.map → not-found-CSMLdCX4.js.map} +1 -1
- package/dist/assets/{page-DXZrFCmr.js → page-BS3gQcjY.js} +2 -2
- package/dist/assets/{page-DXZrFCmr.js.map → page-BS3gQcjY.js.map} +1 -1
- package/dist/assets/{page-Bfk44QuW.js → page-C5nD_mRH.js} +2 -2
- package/dist/assets/{page-Bfk44QuW.js.map → page-C5nD_mRH.js.map} +1 -1
- package/dist/assets/{page-_daGpD2K.js → page-CBZ9-Qv0.js} +2 -2
- package/dist/assets/{page-_daGpD2K.js.map → page-CBZ9-Qv0.js.map} +1 -1
- package/dist/assets/{page-CrXiz4-J.js → page-CEOfOFJn.js} +2 -2
- package/dist/assets/{page-CrXiz4-J.js.map → page-CEOfOFJn.js.map} +1 -1
- package/dist/assets/{page-C45jnN3u.js → page-Cc3JDJuA.js} +2 -2
- package/dist/assets/{page-C45jnN3u.js.map → page-Cc3JDJuA.js.map} +1 -1
- package/dist/assets/{page-BOgSgEl-.js → page-CcV8oPXf.js} +2 -2
- package/dist/assets/{page-BOgSgEl-.js.map → page-CcV8oPXf.js.map} +1 -1
- package/dist/assets/{page-BiEYKai0.js → page-Cykwm5Xf.js} +2 -2
- package/dist/assets/{page-BiEYKai0.js.map → page-Cykwm5Xf.js.map} +1 -1
- package/dist/assets/{page-DL5wQ3pG.js → page-D1Ih1hX6.js} +2 -2
- package/dist/assets/{page-DL5wQ3pG.js.map → page-D1Ih1hX6.js.map} +1 -1
- package/dist/assets/{page-B2tTEfKp.js → page-D3YhksUZ.js} +2 -2
- package/dist/assets/{page-B2tTEfKp.js.map → page-D3YhksUZ.js.map} +1 -1
- package/dist/assets/{page-C7fj48Yd.js → page-DLvE0SQg.js} +2 -2
- package/dist/assets/{page-C7fj48Yd.js.map → page-DLvE0SQg.js.map} +1 -1
- package/dist/assets/{page-ZPLCKgGQ.js → page-Dc5_AoKR.js} +2 -2
- package/dist/assets/{page-ZPLCKgGQ.js.map → page-Dc5_AoKR.js.map} +1 -1
- package/dist/assets/{page-KrH4sIjg.js → page-Dgd7xLD8.js} +2 -2
- package/dist/assets/{page-KrH4sIjg.js.map → page-Dgd7xLD8.js.map} +1 -1
- package/dist/assets/{page-CgiAumZ6.js → page-Dyw4kLBQ.js} +2 -2
- package/dist/assets/{page-CgiAumZ6.js.map → page-Dyw4kLBQ.js.map} +1 -1
- package/dist/assets/{page-C76A3Tvm.js → page-Ek9VUv2q.js} +2 -2
- package/dist/assets/{page-C76A3Tvm.js.map → page-Ek9VUv2q.js.map} +1 -1
- package/dist/assets/{page-De2leEHb.js → page-Kb_PxACs.js} +2 -2
- package/dist/assets/{page-De2leEHb.js.map → page-Kb_PxACs.js.map} +1 -1
- package/dist/assets/{page-DGXyF1RD.js → page-OcQ2uaAq.js} +2 -2
- package/dist/assets/{page-DGXyF1RD.js.map → page-OcQ2uaAq.js.map} +1 -1
- package/dist/assets/{page-zpMXForS.js → page-ZW2LvDvY.js} +2 -2
- package/dist/assets/{page-zpMXForS.js.map → page-ZW2LvDvY.js.map} +1 -1
- package/dist/assets/{page-CQJx-JXR.js → page-zWVJIy5v.js} +2 -2
- package/dist/assets/{page-CQJx-JXR.js.map → page-zWVJIy5v.js.map} +1 -1
- package/dist/assets/{routing-CygMogfF.js → routing-DDD7UWam.js} +2 -2
- package/dist/assets/{routing-CygMogfF.js.map → routing-DDD7UWam.js.map} +1 -1
- package/dist/assets/{routing-BJiyORAR.js → routing-HOPiOt_q.js} +2 -2
- package/dist/assets/{routing-BJiyORAR.js.map → routing-HOPiOt_q.js.map} +1 -1
- package/dist/assets/{web-D6kqUluK.js → web-D1HVvdzi.js} +2 -2
- package/dist/assets/{web-D6kqUluK.js.map → web-D1HVvdzi.js.map} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/layout-xM3HYPpK.js +0 -2
- package/dist/assets/layout-xM3HYPpK.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-CEOfOFJn.js","names":[],"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 { useState, useEffect } from 'react';\nimport { useRouter } from '@/i18n/routing';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { PageLayout, useToast, useSemiont, useObservable } from '@semiont/react-ui';\nimport { WelcomePage } from '@semiont/react-ui';\nimport { createWelcomeStateUnit } from '@semiont/react-ui';\nimport { useSessionStateUnit } from '@semiont/react-ui';\nimport type { SemiontSession } from '@semiont/sdk';\n\n/**\n * The session gate is API shape now (SESSION-TYPED-FACTORIES.md):\n * `createWelcomeStateUnit` takes the SESSION, and `useSessionStateUnit`\n * constructs only when one exists and rebuilds (dispose-first) when it is\n * replaced — a KB switch or re-auth can no longer leave this page holding a\n * disposed client. This route is where that crashed in production: the user\n * lands here immediately after connecting, mid-activation.\n * See .plans/bugs/resource-page-frozen-on-disposed-client-after-kb-switch.md\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 semiont = useSemiont();\n const session = useObservable(semiont.activeSession$) ?? null;\n\n if (!session) {\n return <WelcomeShell status=\"loading\" t={t} />;\n }\n return <WelcomeInner key={session.id} session={session} t={t} />;\n}\n\nfunction WelcomeInner({\n session,\n t,\n}: {\n session: SemiontSession;\n t: (k: string, p?: Record<string, unknown>) => string;\n}) {\n const semiont = useSemiont();\n const user = useObservable(session.user$) ?? null;\n const activeKnowledgeBase = session.kb;\n const isAuthenticated = !!user;\n const signOut = (id: string) => { void semiont.signOut(id); };\n const router = useRouter();\n const [termsAccepted, setTermsAccepted] = useState(false);\n const toast = useToast();\n\n const stateUnit = useSessionStateUnit(session, createWelcomeStateUnit);\n\n const userData = useObservable(stateUnit?.userData$);\n const isProcessing = useObservable(stateUnit?.isProcessing$) ?? false;\n\n // Redirect if not authenticated or if terms already accepted\n useEffect(() => {\n if (!isAuthenticated) {\n router.push('/auth/connect');\n return;\n }\n\n if (userData?.termsAcceptedAt) {\n router.push('/');\n return;\n }\n }, [isAuthenticated, router, userData]);\n\n const handleTermsAcceptance = async (accepted: boolean) => {\n if (!accepted) {\n if (activeKnowledgeBase) {\n signOut(activeKnowledgeBase.id);\n }\n router.push('/');\n return;\n }\n\n if (!stateUnit) return;\n try {\n await stateUnit.acceptTerms();\n setTermsAccepted(true);\n\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 const pageStatus = termsAccepted ? 'accepted' : 'form';\n const firstName = user?.name?.split(' ')[0] ?? '';\n\n return (\n <WelcomeShell\n t={t}\n userName={firstName}\n termsAcceptedAt={userData?.termsAcceptedAt ?? null}\n status={pageStatus}\n isProcessing={isProcessing}\n onAccept={() => handleTermsAcceptance(true)}\n onDecline={() => handleTermsAcceptance(false)}\n />\n );\n}\n\n/**\n * The presentational half: every translation the WelcomePage needs, in one\n * place, so the pre-session loading render and the real one cannot drift.\n */\nfunction WelcomeShell({\n t,\n status,\n userName = '',\n termsAcceptedAt = null,\n isProcessing = false,\n onAccept = () => {},\n onDecline = () => {},\n}: {\n t: (k: string, p?: Record<string, unknown>) => string;\n status: 'loading' | 'accepted' | 'form';\n userName?: string;\n termsAcceptedAt?: string | null;\n isProcessing?: boolean;\n onAccept?: () => void;\n onDecline?: () => void;\n}) {\n return (\n <WelcomePage\n userName={userName}\n termsAcceptedAt={termsAcceptedAt}\n isNewUser={!termsAcceptedAt}\n status={status}\n isProcessing={isProcessing}\n onAccept={onAccept}\n onDecline={onDecline}\n translations={{\n loading: t('loading'),\n welcomeTitle: t('welcomeTitle'),\n thanksForAccepting: t('thanksForAccepting'),\n welcomeUser: t('welcomeUser', { firstName: userName }),\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"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./i18n-zIDJOEfo.js";import{f as n,t as r}from"./vendor-BVP6ONpk.js";import{At as i,Q as a,Y as o,b as s,in as c,x as l,y as u,z as d}from"./index-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./i18n-zIDJOEfo.js";import{f as n,t as r}from"./vendor-BVP6ONpk.js";import{At as i,Q as a,Y as o,b as s,in as c,x as l,y as u,z as d}from"./index-vecxWX4w.js";import{t as f}from"./ToolbarPanels-D4AQa4cH.js";import{n as p}from"./routing-HOPiOt_q.js";import{n as m,t as h}from"./routing-DDD7UWam.js";import g from"./not-found-CSMLdCX4.js";var _=e(t()),v=r();function y(){let e=n(),t=o(i().activeSession$)??null,r=e.id;if(!r)return(0,v.jsx)(g,{});if(!t)return(0,v.jsx)(s,{});let a=c(r);return(0,v.jsx)(b,{session:t,rId:a},`${t.id}:${a}`)}function b({session:e,rId:t}){let n=p(),r=o(e.streamState$)??`initial`,i=e.kb,g=a(e,e=>d(e,t)),y=o(g?.resource$),b=o(g?.isLoading$)??!0,x=o(g?.error$)??null;(0,_.useEffect)(()=>{x?console.error(`[Document] Resource ${t} failed to load:`,x.message):!b&&!y&&console.error(`[Document] Resource ${t} not found`)},[b,x,t,y]);let S=(0,_.useCallback)(async()=>{g?.invalidate()},[g]);if(x)return(0,v.jsx)(u,{error:x,onRetry:S});if(b)return(0,v.jsx)(s,{});if(!y)return(0,v.jsx)(u,{error:Error(`Resource ${t} not found`),onRetry:S});let C=y,w=c(C[`@id`]);return(0,v.jsx)(l,{resource:C,rUri:w,locale:n,Link:h,routes:m,ToolbarPanels:f,refetchDocument:S,streamStatus:r,knowledgeBaseName:i.label})}export{y as default};
|
|
2
|
+
//# sourceMappingURL=page-Cc3JDJuA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-Cc3JDJuA.js","names":[],"sources":["../../src/app/[locale]/know/resource/[id]/page.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * Resource Viewer Page - Minimal Next.js routing wrapper\n *\n * Handles only Next.js routing and initial resource loading.\n * All other concerns (data loading, events, UI state) are handled by ResourceViewerPage.\n */\n\nimport { useEffect, useCallback } from 'react';\nimport { useParams } from 'react-router';\nimport { useLocale } from '@/i18n/routing';\nimport { useSemiont, useObservable, useSessionStateUnit, createResourceLoaderStateUnit } from '@semiont/react-ui';\nimport { resourceId } from '@semiont/core';\nimport type { SemiontSession } from '@semiont/sdk';\nimport { Link, routes } from '@/lib/routing';\n\n// Feature components\nimport { ResourceLoadingState, ResourceErrorState, ResourceViewerPage } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport NotFound from '../../../not-found';\nimport type { SemiontResource } from '@semiont/react-ui';\n\n/**\n * Main page component — routing, session gating, and initial resource load.\n *\n * `useSessionStateUnit` runs its factory exactly once per mount, and React Router\n * keeps this component mounted across BOTH a `:id` param change and an\n * `activeSession$` swap. So the inner component is keyed on the pair\n * `${session.id}:${rId}` — either changing forces a full remount:\n *\n * - `rId` — otherwise the URL changes and the content stays on the\n * first-loaded resource (tab-to-tab navigation in the left nav).\n * - `session.id` — otherwise the loader keeps a DISPOSED client after a KB\n * switch or a re-authentication, and a disposed cache is inert by B16:\n * no fetch, no emission, \"Loading resource...\" forever. `kb.id` is not\n * enough here; `signIn` rebuilds the session under an unchanged `kb.id`.\n * See .plans/bugs/resource-page-frozen-on-disposed-client-after-kb-switch.md\n *\n * Rendering is gated on a live session, so the inner component receives a\n * real one as a prop and can never read a session other than the one it is\n * keyed on.\n */\nexport default function KnowledgeResourcePage() {\n const params = useParams<{ id: string }>();\n const session = useObservable(useSemiont().activeSession$) ?? null;\n\n // `App.tsx` declares this route as `resource/:id`, so React Router cannot\n // match it without the param. That used to be written `params?.id as string`\n // — an assertion, which reads as harmless precisely because it is usually\n // true. It is not harmless: `resourceId()` takes a `string` and calls\n // `.includes('/')` on it immediately, so the one time the assumption broke\n // (a route-pattern rename) the page would throw a TypeError and white-screen\n // rather than degrade. Branching lets the compiler prove `id` is a string,\n // and turns that rename into a visible not-found.\n const id = params.id;\n if (!id) return <NotFound />;\n\n // Leaving a resource route on a KB switch is the SWITCH INITIATOR's job\n // (`KnowledgeBasePanel`), not this page's. A latch here cannot work:\n // `KnowledgeLayout` gates `<Outlet />` on a live session, so this component\n // is unmounted the instant `activeSession$` goes null and remounts fresh\n // against the new KB — it never observes the transition it would need to\n // detect. A previous attempt did exactly that and was dead in production\n // while its unit test (which renders this page WITHOUT the layout) passed.\n // See .plans/bugs/resource-page-frozen-on-disposed-client-after-kb-switch.md\n if (!session) return <ResourceLoadingState />;\n\n const rId = resourceId(id);\n return <KnowledgeResourcePageInner key={`${session.id}:${rId}`} session={session} rId={rId} />;\n}\n\nfunction KnowledgeResourcePageInner({\n session,\n rId,\n}: {\n session: SemiontSession;\n rId: ReturnType<typeof resourceId>;\n}) {\n const locale = useLocale();\n\n const streamStatus = useObservable(session.streamState$) ?? 'initial';\n const activeKnowledgeBase = session.kb;\n\n const loader = useSessionStateUnit(session, (s) => createResourceLoaderStateUnit(s, rId));\n const resourceData = useObservable(loader?.resource$);\n const isLoading = useObservable(loader?.isLoading$) ?? true;\n const loadError = useObservable(loader?.error$) ?? null;\n\n // Log error for debugging\n useEffect(() => {\n if (loadError) {\n console.error(`[Document] Resource ${rId} failed to load:`, loadError.message);\n } else if (!isLoading && !resourceData) {\n console.error(`[Document] Resource ${rId} not found`);\n }\n }, [isLoading, loadError, rId, resourceData]);\n\n const refetchDocument = useCallback(async () => {\n loader?.invalidate();\n }, [loader]);\n\n // Early return: a terminal failure carries the reason, so it beats both the\n // spinner and the generic not-found. Without this branch the load is stuck\n // in \"loading\" forever — a failed key has no value either.\n if (loadError) {\n return <ResourceErrorState error={loadError} onRetry={refetchDocument} />;\n }\n if (isLoading) {\n return <ResourceLoadingState />;\n }\n if (!resourceData) {\n return <ResourceErrorState error={new Error(`Resource ${rId} not found`)} onRetry={refetchDocument} />;\n }\n\n const resource = resourceData as SemiontResource;\n // resource['@id'] is now a bare ID\n const canonicalId = resourceId(resource['@id']);\n\n // Render with minimal props - all data loading/events handled inside ResourceViewerPage\n return (\n <ResourceViewerPage\n resource={resource}\n rUri={canonicalId}\n locale={locale}\n Link={Link}\n routes={routes}\n ToolbarPanels={ToolbarPanels}\n refetchDocument={refetchDocument}\n streamStatus={streamStatus}\n knowledgeBaseName={activeKnowledgeBase.label}\n />\n );\n}\n"],"mappings":"0aA2CA,SAAwB,GAAwB,CAC9C,IAAM,EAAS,EAA0B,EACnC,EAAU,EAAc,EAAW,CAAC,CAAC,cAAc,GAAK,KAUxD,EAAK,EAAO,GAClB,GAAI,CAAC,EAAI,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAW,CAAA,EAU3B,GAAI,CAAC,EAAS,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAuB,CAAA,EAE5C,IAAM,EAAM,EAAW,CAAE,EACzB,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAkE,UAAc,KAAM,EAArD,GAAG,EAAQ,GAAG,GAAG,GAAoC,CAC/F,CAEA,SAAS,EAA2B,CAClC,UACA,OAIC,CACD,IAAM,EAAS,EAAU,EAEnB,EAAe,EAAc,EAAQ,YAAY,GAAK,UACtD,EAAsB,EAAQ,GAE9B,EAAS,EAAoB,EAAU,GAAM,EAA8B,EAAG,CAAG,CAAC,EAClF,EAAe,EAAc,GAAQ,SAAS,EAC9C,EAAY,EAAc,GAAQ,UAAU,GAAK,GACjD,EAAY,EAAc,GAAQ,MAAM,GAAK,MAGnD,EAAA,EAAA,UAAA,KAAgB,CACV,EACF,QAAQ,MAAM,uBAAuB,EAAI,kBAAmB,EAAU,OAAO,EACpE,CAAC,GAAa,CAAC,GACxB,QAAQ,MAAM,uBAAuB,EAAI,WAAW,CAExD,EAAG,CAAC,EAAW,EAAW,EAAK,CAAY,CAAC,EAE5C,IAAM,GAAA,EAAkB,EAAA,YAAA,CAAY,SAAY,CAC9C,GAAQ,WAAW,CACrB,EAAG,CAAC,CAAM,CAAC,EAKX,GAAI,EACF,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAoB,MAAO,EAAW,QAAS,CAAkB,CAAA,EAE1E,GAAI,EACF,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAuB,CAAA,EAEhC,GAAI,CAAC,EACH,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAoB,MAAW,MAAM,YAAY,EAAI,WAAW,EAAG,QAAS,CAAkB,CAAA,EAGvG,IAAM,EAAW,EAEX,EAAc,EAAW,EAAS,MAAM,EAG9C,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACY,WACV,KAAM,EACE,SACF,OACE,SACO,gBACE,kBACH,eACd,kBAAmB,EAAoB,KACxC,CAAA,CAEL"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./i18n-zIDJOEfo.js";import{i as n}from"./routing-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./i18n-zIDJOEfo.js";import{i as n}from"./routing-HOPiOt_q.js";var r=e(t());function i(){let e=n();return(0,r.useEffect)(()=>{e.replace(`/know/discover`)},[e]),null}export{i as default};
|
|
2
|
+
//# sourceMappingURL=page-CcV8oPXf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-CcV8oPXf.js","names":[],"sources":["../../src/app/[locale]/auth/connect/page.tsx"],"sourcesContent":["import { useEffect } from 'react';\nimport { useRouter } from '@/i18n/routing';\n\n/**\n * Legacy connect page — redirects to /know/discover.\n * Authentication is now handled inline in the Knowledge Base Panel.\n */\nexport default function ConnectPage() {\n const router = useRouter();\n\n useEffect(() => {\n router.replace('/know/discover');\n }, [router]);\n\n return null;\n}\n"],"mappings":"iJAOA,SAAwB,GAAc,CACpC,IAAM,EAAS,EAAU,EAMzB,OAJA,EAAA,EAAA,UAAA,KAAgB,CACd,EAAO,QAAQ,gBAAgB,CACjC,EAAG,CAAC,CAAM,CAAC,EAEJ,IACT"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{N as i,p as a}from"./index-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{N as i,p as a}from"./index-vecxWX4w.js";import{t as o}from"./KeyboardShortcutsContext-BwQ1iude.js";import{t as s}from"./CookiePreferences-CinujnVd.js";import{t as c}from"./routing-HOPiOt_q.js";import{n as l,t as u}from"./routing-DDD7UWam.js";var d=e(t()),f=r();function p(){let{t:e}=n(),t=(t,n)=>e(`About.${t}`,n),{t:r}=n(),p=(e,t)=>r(`Footer.${e}`,t),{t:m}=n(),h=(e,t)=>m(`Navigation.${e}`,t),{t:g}=n(),_=(e,t)=>g(`Home.${e}`,t),v=(0,d.useContext)(o);return(0,f.jsx)(a,{Link:u,routes:l,t:p,tNav:h,tHome:_,showAuthLinks:!1,CookiePreferences:s,...v?.openKeyboardHelp&&{onOpenKeyboardHelp:v.openKeyboardHelp},className:`semiont-static-page`,children:(0,f.jsx)(`div`,{className:`semiont-static-container`,children:(0,f.jsxs)(`div`,{className:`semiont-static-content`,children:[(0,f.jsxs)(`header`,{className:`semiont-static-header`,children:[(0,f.jsx)(`h1`,{className:`semiont-static-title`,children:t(`pageTitle`)}),(0,f.jsx)(`p`,{className:`semiont-static-subtitle`,children:t(`tagline`)})]}),(0,f.jsxs)(`div`,{className:`semiont-static-action-buttons`,children:[(0,f.jsx)(c,{to:`/auth/signup`,className:i.primary.base,children:t(`signUp`)}),(0,f.jsx)(c,{to:`/auth/connect?callbackUrl=/know`,className:i.primary.base,children:t(`signIn`)})]}),(0,f.jsxs)(`article`,{className:`semiont-static-article`,children:[(0,f.jsxs)(`section`,{children:[(0,f.jsx)(`h2`,{children:t(`missionTitle`)}),(0,f.jsx)(`p`,{children:t(`mission`)})]}),(0,f.jsxs)(`section`,{children:[(0,f.jsx)(`h2`,{children:t(`coreFeaturesTitle`)}),(0,f.jsxs)(`div`,{className:`semiont-static-feature-grid`,children:[(0,f.jsxs)(`div`,{className:`semiont-static-feature-card`,children:[(0,f.jsx)(`span`,{className:`semiont-static-feature-icon`,children:`📊`}),(0,f.jsx)(`h3`,{children:t(`semanticContentTitle`)}),(0,f.jsx)(`p`,{className:`semiont-static-feature-subtitle`,children:t(`semanticContentSubtitle`)}),t(`semanticContent`).split(`
|
|
2
2
|
|
|
3
3
|
`).map((e,t)=>(0,f.jsx)(`p`,{children:e},t)),(0,f.jsx)(`span`,{className:`semiont-static-badge semiont-static-badge-planned`,children:t(`planned`)})]}),(0,f.jsxs)(`div`,{className:`semiont-static-feature-card`,children:[(0,f.jsx)(`span`,{className:`semiont-static-feature-icon`,children:`🤝`}),(0,f.jsx)(`h3`,{children:t(`collaborationTitle`)}),(0,f.jsx)(`p`,{className:`semiont-static-feature-subtitle`,children:t(`collaborationSubtitle`)}),t(`collaboration`).split(`
|
|
4
4
|
|
|
5
5
|
`).map((e,t)=>(0,f.jsx)(`p`,{children:e},t)),(0,f.jsx)(`span`,{className:`semiont-static-badge semiont-static-badge-planned`,children:t(`planned`)})]}),(0,f.jsxs)(`div`,{className:`semiont-static-feature-card`,children:[(0,f.jsx)(`span`,{className:`semiont-static-feature-icon`,children:`🔐`}),(0,f.jsx)(`h3`,{children:t(`rbacTitle`)}),(0,f.jsx)(`p`,{className:`semiont-static-feature-subtitle`,children:t(`rbacSubtitle`)}),t(`rbac`).split(`
|
|
6
6
|
|
|
7
7
|
`).map((e,t)=>(0,f.jsx)(`p`,{children:e},t)),(0,f.jsx)(`span`,{className:`semiont-static-badge semiont-static-badge-planned`,children:t(`planned`)})]})]})]}),(0,f.jsxs)(`section`,{className:`semiont-static-highlight`,children:[(0,f.jsx)(`h2`,{children:t(`openSourceTitle`)}),(0,f.jsx)(`p`,{children:t(`openSource`)}),(0,f.jsx)(`div`,{className:`semiont-static-action-buttons`,children:(0,f.jsx)(`a`,{href:`https://github.com/The-AI-Alliance/semiont`,target:`_blank`,rel:`noopener noreferrer`,className:i.secondary.base,children:t(`viewOnGitHub`)})})]}),(0,f.jsxs)(`section`,{children:[(0,f.jsx)(`h2`,{children:t(`futureVisionTitle`)}),(0,f.jsx)(`p`,{children:t(`futureVision`)})]})]})]})})})}export{p as default};
|
|
8
|
-
//# sourceMappingURL=page-
|
|
8
|
+
//# sourceMappingURL=page-Cykwm5Xf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-Cykwm5Xf.js","names":[],"sources":["../../src/app/[locale]/about/page.tsx"],"sourcesContent":["import { useContext } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { PageLayout, buttonStyles } 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 AboutPage() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`About.${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 showAuthLinks={false}\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 */}\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('tagline')}\n </p>\n </header>\n\n {/* Action Buttons */}\n <div className=\"semiont-static-action-buttons\">\n <Link\n to=\"/auth/signup\"\n className={buttonStyles.primary.base}\n >\n {t('signUp')}\n </Link>\n <Link\n to=\"/auth/connect?callbackUrl=/know\"\n className={buttonStyles.primary.base}\n >\n {t('signIn')}\n </Link>\n </div>\n\n <article className=\"semiont-static-article\">\n {/* Mission Section */}\n <section>\n <h2>{t('missionTitle')}</h2>\n <p>\n {t('mission')}\n </p>\n </section>\n\n {/* Features Section */}\n <section>\n <h2>{t('coreFeaturesTitle')}</h2>\n\n <div className=\"semiont-static-feature-grid\">\n {/* Semantic Content */}\n <div className=\"semiont-static-feature-card\">\n <span className=\"semiont-static-feature-icon\">📊</span>\n <h3>{t('semanticContentTitle')}</h3>\n <p className=\"semiont-static-feature-subtitle\">\n {t('semanticContentSubtitle')}\n </p>\n {t('semanticContent').split('\\n\\n').map((para, i) => (\n <p key={i}>{para}</p>\n ))}\n <span className=\"semiont-static-badge semiont-static-badge-planned\">\n {t('planned')}\n </span>\n </div>\n\n {/* Real-time Collaboration */}\n <div className=\"semiont-static-feature-card\">\n <span className=\"semiont-static-feature-icon\">🤝</span>\n <h3>{t('collaborationTitle')}</h3>\n <p className=\"semiont-static-feature-subtitle\">\n {t('collaborationSubtitle')}\n </p>\n {t('collaboration').split('\\n\\n').map((para, i) => (\n <p key={i}>{para}</p>\n ))}\n <span className=\"semiont-static-badge semiont-static-badge-planned\">\n {t('planned')}\n </span>\n </div>\n\n {/* Advanced RBAC */}\n <div className=\"semiont-static-feature-card\">\n <span className=\"semiont-static-feature-icon\">🔐</span>\n <h3>{t('rbacTitle')}</h3>\n <p className=\"semiont-static-feature-subtitle\">\n {t('rbacSubtitle')}\n </p>\n {t('rbac').split('\\n\\n').map((para, i) => (\n <p key={i}>{para}</p>\n ))}\n <span className=\"semiont-static-badge semiont-static-badge-planned\">\n {t('planned')}\n </span>\n </div>\n </div>\n </section>\n\n {/* Open Source Section */}\n <section className=\"semiont-static-highlight\">\n <h2>{t('openSourceTitle')}</h2>\n <p>\n {t('openSource')}\n </p>\n <div className=\"semiont-static-action-buttons\">\n <a\n href=\"https://github.com/The-AI-Alliance/semiont\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={buttonStyles.secondary.base}\n >\n {t('viewOnGitHub')}\n </a>\n </div>\n </section>\n\n {/* Future Vision */}\n <section>\n <h2>{t('futureVisionTitle')}</h2>\n <p>\n {t('futureVision')}\n </p>\n </section>\n </article>\n </div>\n </div>\n </PageLayout>\n );\n}"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{p as i}from"./index-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{p as i}from"./index-vecxWX4w.js";import{t as a}from"./KeyboardShortcutsContext-BwQ1iude.js";import{t as o}from"./CookiePreferences-CinujnVd.js";import{n as s,t as c}from"./routing-DDD7UWam.js";var l=e(t()),u=r();function d(){let{t:e}=n(),t=(t,n)=>e(`Privacy.${t}`,n),{t:r}=n(),d=(e,t)=>r(`Footer.${e}`,t),{t:f}=n(),p=(e,t)=>f(`Navigation.${e}`,t),{t:m}=n(),h=(e,t)=>m(`Home.${e}`,t),g=(0,l.useContext)(a);return(0,u.jsx)(i,{Link:c,routes:s,t:d,tNav:p,tHome:h,CookiePreferences:o,...g?.openKeyboardHelp&&{onOpenKeyboardHelp:g.openKeyboardHelp},className:`semiont-static-page`,children:(0,u.jsx)(`div`,{className:`semiont-static-container`,children:(0,u.jsxs)(`div`,{className:`semiont-static-content`,children:[(0,u.jsx)(`header`,{className:`semiont-static-header`,children:(0,u.jsx)(`h1`,{className:`semiont-static-title`,children:t(`pageTitle`)})}),(0,u.jsxs)(`article`,{className:`semiont-static-article`,children:[(0,u.jsxs)(`section`,{children:[(0,u.jsx)(`h2`,{children:t(`introTitle`)}),t(`intro`).split(`
|
|
2
2
|
|
|
3
3
|
`).map((e,t)=>(0,u.jsx)(`p`,{children:e},t))]}),(0,u.jsxs)(`section`,{children:[(0,u.jsx)(`h2`,{children:t(`infoCollectTitle`)}),(0,u.jsx)(`h3`,{children:t(`personalInfoTitle`)}),(0,u.jsx)(`ul`,{children:t(`personalInfo`).split(`
|
|
4
4
|
`).map((e,t)=>(0,u.jsx)(`li`,{children:e},t))}),(0,u.jsx)(`h3`,{children:t(`autoCollectTitle`)}),(0,u.jsx)(`ul`,{children:t(`autoCollect`).split(`
|
|
@@ -17,4 +17,4 @@ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i
|
|
|
17
17
|
|
|
18
18
|
`).map((e,t)=>t===0?(0,u.jsx)(`p`,{children:e},t):(0,u.jsx)(`ul`,{children:e.split(`
|
|
19
19
|
`).map((e,t)=>(0,u.jsx)(`li`,{children:e},t))},t))]}),(0,u.jsxs)(`section`,{children:[(0,u.jsx)(`h2`,{children:t(`dataRetentionTitle`)}),(0,u.jsx)(`p`,{children:t(`dataRetention`)})]}),(0,u.jsxs)(`section`,{children:[(0,u.jsx)(`h2`,{children:t(`internationalTransfersTitle`)}),(0,u.jsx)(`p`,{children:t(`internationalTransfers`)})]}),(0,u.jsxs)(`section`,{children:[(0,u.jsx)(`h2`,{children:t(`contactTitle`)}),(0,u.jsx)(`p`,{children:t(`contactIntro`)}),(0,u.jsx)(`div`,{className:`semiont-static-info-box`,children:(0,u.jsxs)(`p`,{children:[(0,u.jsx)(`strong`,{children:t(`contactEmail`)}),` privacy@semiont.com`,(0,u.jsx)(`br`,{}),(0,u.jsx)(`strong`,{children:t(`contactAddress`)}),` [Your Company Address]`]})})]}),(0,u.jsxs)(`section`,{children:[(0,u.jsx)(`h2`,{children:t(`updatesTitle`)}),(0,u.jsx)(`p`,{children:t(`updates`)}),(0,u.jsx)(`footer`,{className:`semiont-static-footer`,children:(0,u.jsx)(`p`,{children:(0,u.jsx)(`strong`,{children:t(`lastUpdated`,{date:new Date().toLocaleDateString()})})})})]})]})]})})})}export{d as default};
|
|
20
|
-
//# sourceMappingURL=page-
|
|
20
|
+
//# sourceMappingURL=page-D1Ih1hX6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-DL5wQ3pG.js","names":[],"sources":["../../src/app/[locale]/privacy/page.tsx"],"sourcesContent":["import { 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}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"page-D1Ih1hX6.js","names":[],"sources":["../../src/app/[locale]/privacy/page.tsx"],"sourcesContent":["import { 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}"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{i as r,t as i}from"./vendor-BVP6ONpk.js";import{$ as a,At as o,I as s,K as c,Q as l,Y as u,_ as d,et as f,j as p,jt as m,s as h}from"./index-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{i as r,t as i}from"./vendor-BVP6ONpk.js";import{$ as a,At as o,I as s,K as c,Q as l,Y as u,_ as d,et as f,j as p,jt as m,s as h}from"./index-vecxWX4w.js";import{t as g}from"./ToolbarPanels-D4AQa4cH.js";import{i as _,n as v}from"./routing-HOPiOt_q.js";var y=e(t()),b=i();function x(){let{t:e}=n(),t=(t,n)=>e(`Compose.${t}`,n),i=v(),x=_(),[S]=r(),C=o(),w=u(C.activeKbId$),T=u(C.activeSession$),E=u(T?.user$),D=u(T?.token$),O=!!E,k=w!=null&&T==null,{showError:A}=m();(0,y.useEffect)(()=>{k||O||x.push(`/`)},[k,O,x]);let j=a(),M=l(T??void 0,e=>s(e,j,{mode:S?.get(`mode`)??void 0,token:S?.get(`token`)??void 0},D??void 0)),N=u(M?.browse.activePanel$)??null,P=u(M?.mode$)??`new`,F=u(M?.loading$)??!0,I=u(M?.cloneData$)??null,L=u(M?.entityTypes.value$)??[],R=u(M?.uploadProgress$)??null,{resolvedTheme:z}=f(),{hoverDelayMs:B}=c();return k||F?(0,b.jsx)(h,{message:k?`Checking authentication...`:`Loading cloned resource...`}):O?(0,b.jsx)(d,{mode:P,cloneData:I,availableEntityTypes:L,initialLocale:i,theme:z,hoverDelayMs:B,activePanel:N,onSaveResource:async e=>{if(M)try{let t=await M.save(e);x.push(`/know/resource/${encodeURIComponent(t)}`)}catch(e){let t=e instanceof Error?e.message:`Failed to save resource. Please try again.`;throw A(t),e}},onCancel:()=>x.push(`/know/discover`),uploadProgress:R,translations:{title:t(`title`),titleEditClone:t(`titleEditClone`),subtitleClone:t(`subtitleClone`),resourceName:t(`resourceName`),resourceNamePlaceholder:t(`resourceNamePlaceholder`),entityTypes:t(`entityTypes`),language:t(`language`),contentSource:t(`contentSource`),uploadFile:t(`uploadFile`),uploadFileDescription:t(`uploadFileDescription`),writeContent:t(`writeContent`),writeContentDescription:t(`writeContentDescription`),dropFileOrClick:t(`dropFileOrClick`),supportedFormats:t(`supportedFormats`),mediaType:t(`mediaType`),autoDetected:t(`autoDetected`),format:t(`format`),content:t(`content`),resourceContent:t(`resourceContent`),encoding:t(`encoding`),archiveOriginal:t(`archiveOriginal`),cancel:t(`cancel`),saving:t(`saving`),creating:t(`creating`),saveClonedResource:t(`saveClonedResource`),createResource:t(`createResource`)},ToolbarPanels:g,Toolbar:p}):null}function S(){let{t:e}=n();return(0,b.jsx)(y.Suspense,{fallback:(0,b.jsx)(h,{message:((t,n)=>e(`Compose.${t}`,n))(`loading`)}),children:(0,b.jsx)(x,{})})}export{S as default};
|
|
2
|
+
//# sourceMappingURL=page-D3YhksUZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-D3YhksUZ.js","names":[],"sources":["../../src/app/[locale]/know/compose/page.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, Suspense } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocale } from '@/i18n/routing';\nimport { useRouter } from '@/i18n/routing';\nimport { useSearchParams } from 'react-router';\nimport {\n useSemiont,\n useToast,\n useTheme,\n useShellStateUnit,\n useObservable,\n useHoverDelay,\n useSessionStateUnit,\n Toolbar,\n ComposeLoadingState,\n ResourceComposePage,\n} from '@semiont/react-ui';\nimport type { SaveResourceParams as UISaveResourceParams } from '@semiont/react-ui';\nimport { createComposePageStateUnit } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\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 semiont = useSemiont();\n const activeKbId = useObservable(semiont.activeKbId$);\n const session = useObservable(semiont.activeSession$);\n const user = useObservable(session?.user$);\n const authToken = useObservable(session?.token$);\n const isAuthenticated = !!user;\n // \"Loading\" = a KB is selected but the session hasn't finished constructing\n // yet, so we don't know if auth succeeded.\n const authLoading = activeKbId != null && session == null;\n const { showError } = useToast();\n\n useEffect(() => {\n if (authLoading) return;\n if (!isAuthenticated) router.push('/');\n }, [authLoading, isAuthenticated, router]);\n\n const browseStateUnit = useShellStateUnit();\n\n const stateUnit = useSessionStateUnit(session ?? undefined, (s) => createComposePageStateUnit(s, browseStateUnit, {\n mode: searchParams?.get('mode') ?? undefined,\n token: searchParams?.get('token') ?? undefined,\n }, authToken ?? undefined));\n\n const activePanel = useObservable(stateUnit?.browse.activePanel$) ?? null;\n const pageMode = useObservable(stateUnit?.mode$) ?? 'new';\n const isLoading = useObservable(stateUnit?.loading$) ?? true;\n const cloneData = useObservable(stateUnit?.cloneData$) ?? null;\n const availableEntityTypes = useObservable(stateUnit?.entityTypes.value$) ?? [];\n const uploadProgress = useObservable(stateUnit?.uploadProgress$) ?? null;\n\n const { resolvedTheme } = useTheme();\n const { hoverDelayMs } = useHoverDelay();\n\n const handleSaveResource = async (params: UISaveResourceParams) => {\n if (!stateUnit) return;\n try {\n const newResourceId = await stateUnit.save(params);\n router.push(`/know/resource/${encodeURIComponent(newResourceId)}`);\n } catch (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 if (authLoading || isLoading) {\n return <ComposeLoadingState message={authLoading ? 'Checking authentication...' : 'Loading cloned resource...'} />;\n }\n\n if (!isAuthenticated) return null;\n\n return (\n <ResourceComposePage\n mode={pageMode}\n cloneData={cloneData}\n availableEntityTypes={availableEntityTypes}\n initialLocale={locale}\n theme={resolvedTheme}\n hoverDelayMs={hoverDelayMs}\n activePanel={activePanel}\n onSaveResource={handleSaveResource}\n onCancel={() => router.push('/know/discover')}\n uploadProgress={uploadProgress}\n translations={{\n title: t('title'),\n titleEditClone: t('titleEditClone'),\n subtitleClone: t('subtitleClone'),\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 saveClonedResource: t('saveClonedResource'),\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"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./i18n-zIDJOEfo.js";import{t}from"./vendor-BVP6ONpk.js";import{$ as n,Y as r,et as i,j as a,m as o}from"./index-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{t as e}from"./i18n-zIDJOEfo.js";import{t}from"./vendor-BVP6ONpk.js";import{$ as n,Y as r,et as i,j as a,m as o}from"./index-vecxWX4w.js";import{t as s}from"./ToolbarPanels-D4AQa4cH.js";var c=t();function l(){let{t}=e(),l=(e,n)=>t(`ModerateRecent.${e}`,n),u=n(),d=r(u.activePanel$)??null,{theme:f}=i();return(0,c.jsx)(o,{hasDocuments:!1,isLoading:!1,theme:f,activePanel:d,translations:{pageTitle:l(`pageTitle`),pageDescription:l(`pageDescription`),sectionTitle:l(`sectionTitle`),sectionDescription:l(`sectionDescription`),noDocuments:l(`noDocuments`),activityWillAppear:l(`activityWillAppear`),loading:l(`loading`)},ToolbarPanels:s,Toolbar:a})}export{l as default};
|
|
2
|
+
//# sourceMappingURL=page-DLvE0SQg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-DLvE0SQg.js","names":[],"sources":["../../src/app/[locale]/moderate/recent/page.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next';\nimport { Toolbar } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { useTheme, useShellStateUnit, useObservable } 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 browseStateUnit = useShellStateUnit();\n const activePanel = useObservable(browseStateUnit.activePanel$) ?? null;\n const { theme } = useTheme();\n\n\n\n return (\n <RecentDocumentsPage\n hasDocuments={false}\n isLoading={false}\n theme={theme}\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"],"mappings":"0MASA,SAAwB,GAA6B,CACnD,GAAM,CAAK,GAAO,EAAe,EAC3B,GAAK,EAAW,IAAgC,EAAG,kBAAkB,IAAK,CAAQ,EAGlF,EAAkB,EAAkB,EACpC,EAAc,EAAc,EAAgB,YAAY,GAAK,KAC7D,CAAE,SAAU,EAAS,EAI3B,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,aAAc,GACd,UAAW,GACJ,QACM,cACb,aAAc,CACZ,UAAW,EAAE,WAAW,EACxB,gBAAiB,EAAE,iBAAiB,EACpC,aAAc,EAAE,cAAc,EAC9B,mBAAoB,EAAE,oBAAoB,EAC1C,YAAa,EAAE,aAAa,EAC5B,mBAAoB,EAAE,oBAAoB,EAC1C,QAAS,EAAE,SAAS,CACtB,EACe,gBACN,SACV,CAAA,CAEL"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{p as i}from"./index-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{p as i}from"./index-vecxWX4w.js";import{t as a}from"./KeyboardShortcutsContext-BwQ1iude.js";import{t as o}from"./CookiePreferences-CinujnVd.js";import{n as s,t as c}from"./routing-HOPiOt_q.js";import{n as l,t as u}from"./routing-DDD7UWam.js";var d=e(t()),f=r();function p(){let{t:e}=n(),t=(t,n)=>e(`Terms.${t}`,n),{t:r}=n(),p=(e,t)=>r(`Footer.${e}`,t),{t:m}=n(),h=(e,t)=>m(`Navigation.${e}`,t),{t:g}=n(),_=(e,t)=>g(`Home.${e}`,t),v=s(),y=(0,d.useContext)(a);return(0,f.jsx)(i,{Link:u,routes:l,t:p,tNav:h,tHome:_,CookiePreferences:o,...y?.openKeyboardHelp&&{onOpenKeyboardHelp:y.openKeyboardHelp},className:`semiont-static-page`,children:(0,f.jsx)(`div`,{className:`semiont-static-container`,children:(0,f.jsxs)(`div`,{className:`semiont-static-content`,children:[(0,f.jsxs)(`header`,{className:`semiont-static-header`,children:[(0,f.jsx)(`h1`,{className:`semiont-static-title`,children:t(`pageTitle`)}),(0,f.jsx)(`p`,{className:`semiont-static-subtitle`,children:t(`pageSubtitle`)})]}),(0,f.jsxs)(`article`,{className:`semiont-static-article`,children:[(0,f.jsx)(`h2`,{children:t(`aupTitle`)}),(0,f.jsx)(`p`,{children:t(`aup`)}),(0,f.jsx)(`h3`,{children:t(`prohibitedTitle`)}),(0,f.jsx)(`p`,{children:t(`prohibitedIntro`)}),(0,f.jsx)(`ul`,{children:t(`prohibited`).split(`
|
|
2
2
|
`).map((e,t)=>(0,f.jsx)(`li`,{children:e},t))}),(0,f.jsx)(`h3`,{children:t(`aiAllianceTitle`)}),(0,f.jsxs)(`p`,{children:[t(`aiAllianceIntro`),` `,(0,f.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:t(`aiAllianceLink`)}),t(`aiAllianceIncludes`)]}),(0,f.jsx)(`ul`,{children:t(`aiAlliance`).split(`
|
|
3
3
|
`).map((e,t)=>(0,f.jsx)(`li`,{children:e},t))}),(0,f.jsx)(`h3`,{children:t(`responsibilitiesTitle`)}),(0,f.jsx)(`p`,{children:t(`responsibilitiesIntro`)}),(0,f.jsx)(`ul`,{children:t(`responsibilities`).split(`
|
|
4
4
|
`).map((e,t)=>(0,f.jsx)(`li`,{children:e},t))}),(0,f.jsx)(`h3`,{children:t(`moderationTitle`)}),(0,f.jsx)(`p`,{children:t(`moderation`)}),(0,f.jsx)(`h3`,{children:t(`privacyTitle`)}),(0,f.jsxs)(`p`,{children:[t(`privacy`).split(t(`privacyLink`))[0],(0,f.jsx)(c,{to:`/${v}/privacy`,className:`semiont-static-link`,children:t(`privacyLink`)}),t(`privacy`).split(t(`privacyLink`))[1]]}),(0,f.jsx)(`h3`,{children:t(`ipTitle`)}),(0,f.jsx)(`p`,{children:t(`ip`)}),(0,f.jsx)(`h3`,{children:t(`liabilityTitle`)}),(0,f.jsx)(`p`,{children:t(`liability`)}),(0,f.jsx)(`h3`,{children:t(`changesTitle`)}),(0,f.jsx)(`p`,{children:t(`changes`)}),(0,f.jsx)(`h3`,{children:t(`contactTitle`)}),(0,f.jsx)(`p`,{children:t(`contact`)}),(0,f.jsx)(`footer`,{className:`semiont-static-footer`,children:(0,f.jsx)(`p`,{children:t(`lastUpdated`,{date:new Date().toLocaleDateString()})})})]})]})})})}export{p as default};
|
|
5
|
-
//# sourceMappingURL=page-
|
|
5
|
+
//# sourceMappingURL=page-Dc5_AoKR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-Dc5_AoKR.js","names":[],"sources":["../../src/app/[locale]/terms/page.tsx"],"sourcesContent":["import { 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}"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{$ as i,At as a,Ft as o,Y as s,et as c,j as l,k as u}from"./index-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{$ as i,At as a,Ft as o,Y as s,et as c,j as l,k as u}from"./index-vecxWX4w.js";import{t as d}from"./ToolbarPanels-D4AQa4cH.js";var f=e(t()),p=r();function m(){let{t:e}=n(),t=(t,n)=>e(`ModerateTagSchemas.${t}`,n),r=i(),m=s(r.activePanel$)??null,{theme:h}=c(),g=s(a().activeSession$),_=(0,f.useMemo)(()=>g?.client.browse.tagSchemas()??null,[g]),v=s(_),y=v&&o(v)?v.value:[],b=v===void 0||v.status===`pending`;return(0,p.jsx)(u,{schemas:y,isLoading:b,theme:h,activePanel:m,translations:{pageTitle:t(`pageTitle`),pageDescription:t(`pageDescription`),categories:t(`categories`),loading:t(`loading`)},ToolbarPanels:d,Toolbar:l})}export{m as default};
|
|
2
|
+
//# sourceMappingURL=page-Dgd7xLD8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-Dgd7xLD8.js","names":[],"sources":["../../src/app/[locale]/moderate/tag-schemas/page.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { isReady } from '@semiont/sdk';\nimport { useTranslation } from 'react-i18next';\nimport { Toolbar } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { useTheme, useShellStateUnit, useObservable, useSemiont } from '@semiont/react-ui';\nimport { TagSchemasPage } 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 TagSchemasPageWrapper() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`ModerateTagSchemas.${k}`, p as any) as string;\n\n // Toolbar and settings state\n const browseStateUnit = useShellStateUnit();\n const activePanel = useObservable(browseStateUnit.activePanel$) ?? null;\n const { theme } = useTheme();\n\n\n\n // Subscribe to the per-KB tag-schema registry. Schemas are runtime-\n // registered by the KB at session start (frame.addTagSchema). The\n // observable yields `undefined` during the initial fetch — surfaced as\n // `isLoading` to the page component.\n const session = useObservable(useSemiont().activeSession$);\n const tagSchemas$ = useMemo(\n () => session?.client.browse.tagSchemas() ?? null,\n [session],\n );\n const schemasObserved = useObservable(tagSchemas$);\n // D1 unwrap: the third outcome is explicit — a failed registry read shows\n // as not-loading with an empty list here (failure UI is follow-up work).\n const schemas = schemasObserved && isReady(schemasObserved) ? schemasObserved.value : [];\n const isLoading = schemasObserved === undefined || schemasObserved.status === 'pending';\n\n return (\n <TagSchemasPage\n schemas={schemas}\n isLoading={isLoading}\n theme={theme}\n activePanel={activePanel}\n translations={{\n pageTitle: t('pageTitle'),\n pageDescription: t('pageDescription'),\n categories: t('categories'),\n loading: t('loading'),\n }}\n ToolbarPanels={ToolbarPanels}\n Toolbar={Toolbar}\n />\n );\n}\n"],"mappings":"kSAWA,SAAwB,GAAwB,CAC9C,GAAM,CAAE,EAAG,GAAO,EAAe,EAC3B,GAAK,EAAW,IAAgC,EAAG,sBAAsB,IAAK,CAAQ,EAGtF,EAAkB,EAAkB,EACpC,EAAc,EAAc,EAAgB,YAAY,GAAK,KAC7D,CAAE,SAAU,EAAS,EAQrB,EAAU,EAAc,EAAW,CAAC,CAAC,cAAc,EACnD,GAAA,EAAc,EAAA,QAAA,KACZ,GAAS,OAAO,OAAO,WAAW,GAAK,KAC7C,CAAC,CAAO,CACV,EACM,EAAkB,EAAc,CAAW,EAG3C,EAAU,GAAmB,EAAQ,CAAe,EAAI,EAAgB,MAAQ,CAAC,EACjF,EAAY,IAAoB,IAAA,IAAa,EAAgB,SAAW,UAE9E,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACW,UACE,YACJ,QACM,cACb,aAAc,CACZ,UAAW,EAAE,WAAW,EACxB,gBAAiB,EAAE,iBAAiB,EACpC,WAAY,EAAE,YAAY,EAC1B,QAAS,EAAE,SAAS,CACtB,EACe,gBACN,SACV,CAAA,CAEL"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{i as r,t as i}from"./vendor-BVP6ONpk.js";import{i as a,p as o}from"./index-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{i as r,t as i}from"./vendor-BVP6ONpk.js";import{i as a,p as o}from"./index-vecxWX4w.js";import{t as s}from"./KeyboardShortcutsContext-BwQ1iude.js";import{t as c}from"./CookiePreferences-CinujnVd.js";import{t as l}from"./routing-HOPiOt_q.js";import{n as u,t as d}from"./routing-DDD7UWam.js";var f=e(t()),p=i();function m(){let{t:e}=n(),t=(t,n)=>e(`AuthError.${t}`,n),i=(t,n)=>e(`Footer.${t}`,n),m=(t,n)=>e(`Navigation.${t}`,n),h=(t,n)=>e(`Home.${t}`,n),[g]=r(),_=(0,f.useContext)(s),v=g.get(`error`)??null,y={pageTitle:t(`pageTitle`),tryAgain:t(`tryAgain`),errorConfiguration:t(`errorConfiguration`),errorAccessDenied:t(`errorAccessDenied`),errorVerification:t(`errorVerification`),errorGeneric:t(`errorGeneric`)};return(0,p.jsx)(o,{Link:d,routes:u,t:i,tNav:m,tHome:h,CookiePreferences:c,..._?.openKeyboardHelp&&{onOpenKeyboardHelp:_.openKeyboardHelp},className:`bg-gray-50 dark:bg-gray-900`,children:(0,p.jsx)(a,{errorType:v,Link:l,translations:y})})}export{m as default};
|
|
2
|
+
//# sourceMappingURL=page-Dyw4kLBQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-Dyw4kLBQ.js","names":[],"sources":["../../src/app/[locale]/auth/error/page.tsx"],"sourcesContent":["import { useContext } from 'react';\nimport { useSearchParams } from 'react-router';\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"],"mappings":"6ZASA,SAAwB,GAAY,CAClC,GAAM,CAAE,EAAG,GAAO,EAAe,EAC3B,GAAK,EAAW,IAAgC,EAAG,aAAa,IAAK,CAAQ,EAC7E,GAAW,EAAW,IAAgC,EAAG,UAAU,IAAK,CAAQ,EAChF,GAAQ,EAAW,IAAgC,EAAG,cAAc,IAAK,CAAQ,EACjF,GAAS,EAAW,IAAgC,EAAG,QAAQ,IAAK,CAAQ,EAC5E,CAAC,GAAgB,EAAgB,EACjC,GAAA,EAAkB,EAAA,WAAA,CAAW,CAAwB,EAErD,EAAY,EAAa,IAAI,OAAO,GAAK,KAEzC,EAAe,CACnB,UAAW,EAAE,WAAW,EACxB,SAAU,EAAE,UAAU,EACtB,mBAAoB,EAAE,oBAAoB,EAC1C,kBAAmB,EAAE,mBAAmB,EACxC,kBAAmB,EAAE,mBAAmB,EACxC,aAAc,EAAE,cAAc,CAChC,EAEA,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,KAAM,EACE,SACR,EAAG,EACG,OACC,QACY,oBACnB,GAAK,GAAiB,kBAAoB,CAAE,mBAAoB,EAAgB,gBAAiB,EACjG,UAAU,8BAEV,UAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAA6B,YAAiB,OAAoB,cAAe,CAAA,CACvE,CAAA,CAEhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{C as i,N as a}from"./index-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./i18n-zIDJOEfo.js";import{t as r}from"./vendor-BVP6ONpk.js";import{C as i,N as a}from"./index-vecxWX4w.js";import{i as o}from"./routing-HOPiOt_q.js";var s=e(t()),c=r(),l=5e3;function u(){let{t:e}=n(),t=t=>e(`Home.${t}`),r=o(),u=(0,s.useRef)(null),d=()=>{u.current&&clearTimeout(u.current),r.push(`/know/discover`)};return(0,s.useEffect)(()=>(u.current=setTimeout(d,l),()=>{u.current&&clearTimeout(u.current)}),[]),(0,c.jsxs)(`main`,{role:`main`,style:{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,minHeight:`100vh`,gap:`2rem`},children:[(0,c.jsx)(i,{t,size:`xl`,animated:!0}),(0,c.jsx)(`button`,{onClick:d,className:a.primary.base,children:t(`begin`)})]})}export{u as default};
|
|
2
|
+
//# sourceMappingURL=page-Ek9VUv2q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-Ek9VUv2q.js","names":[],"sources":["../../src/app/[locale]/page.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { SemiontBranding, buttonStyles } from '@semiont/react-ui';\nimport { useRouter } from '@/i18n/routing';\n\nconst AUTO_TRANSITION_MS = 5000;\n\nexport default function Home() {\n const { t: _t } = useTranslation();\n const t = (k: string) => _t(`Home.${k}`) as string;\n const router = useRouter();\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const goToWorkspace = () => {\n if (timerRef.current) clearTimeout(timerRef.current);\n router.push('/know/discover');\n };\n\n useEffect(() => {\n timerRef.current = setTimeout(goToWorkspace, AUTO_TRANSITION_MS);\n return () => { if (timerRef.current) clearTimeout(timerRef.current); };\n }, []);\n\n return (\n <main\n role=\"main\"\n style={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100vh',\n gap: '2rem',\n }}\n >\n <SemiontBranding t={t} size=\"xl\" animated={true} />\n <button onClick={goToWorkspace} className={buttonStyles.primary.base}>\n {t('begin')}\n </button>\n </main>\n );\n}\n"],"mappings":"sPAKM,EAAqB,IAE3B,SAAwB,GAAO,CAC7B,GAAM,CAAE,EAAG,GAAO,EAAe,EAC3B,EAAK,GAAc,EAAG,QAAQ,GAAG,EACjC,EAAS,EAAU,EACnB,GAAA,EAAW,EAAA,OAAA,CAA6C,IAAI,EAE5D,MAAsB,CACtB,EAAS,SAAS,aAAa,EAAS,OAAO,EACnD,EAAO,KAAK,gBAAgB,CAC9B,EAOA,OALA,EAAA,EAAA,UAAA,MACE,EAAS,QAAU,WAAW,EAAe,CAAkB,MAClD,CAAM,EAAS,SAAS,aAAa,EAAS,OAAO,CAAG,GACpE,CAAC,CAAC,GAGH,EAAA,EAAA,KAAA,CAAC,OAAD,CACE,KAAK,OACL,MAAO,CACL,QAAS,OACT,cAAe,SACf,WAAY,SACZ,eAAgB,SAChB,UAAW,QACX,IAAK,MACP,EATF,SAAA,EAWE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAoB,EAAG,KAAK,KAAK,SAAU,EAAO,CAAA,GAClD,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,QAAS,EAAe,UAAW,EAAa,QAAQ,KAC7D,SAAA,EAAE,OAAO,CACJ,CAAA,CACJ,GAEV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{o as e,t}from"./vendor-BVP6ONpk.js";import{n}from"./routing-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{o as e,t}from"./vendor-BVP6ONpk.js";import{n}from"./routing-HOPiOt_q.js";var r=t();function i(){let t=n();return(0,r.jsx)(e,{to:`/${t}/admin/users`,replace:!0})}export{i as default};
|
|
2
|
+
//# sourceMappingURL=page-Kb_PxACs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-Kb_PxACs.js","names":[],"sources":["../../src/app/[locale]/admin/page.tsx"],"sourcesContent":["import { Navigate } from 'react-router';\nimport { useLocale } from '@/i18n/routing';\n\nexport default function AdminPage() {\n const locale = useLocale();\n return <Navigate to={`/${locale}/admin/users`} replace />;\n}\n"],"mappings":"0FAGA,SAAwB,GAAY,CAClC,IAAM,EAAS,EAAU,EACzB,OAAO,EAAA,EAAA,IAAA,CAAC,EAAD,CAAU,GAAI,IAAI,EAAO,cAAe,QAAA,EAAS,CAAA,CAC1D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./i18n-zIDJOEfo.js";import{t}from"./vendor-BVP6ONpk.js";import{$ as n,At as r,L as i,Q as a,Y as o,et as s,v as c}from"./index-
|
|
2
|
-
//# sourceMappingURL=page-
|
|
1
|
+
import{t as e}from"./i18n-zIDJOEfo.js";import{t}from"./vendor-BVP6ONpk.js";import{$ as n,At as r,L as i,Q as a,Y as o,et as s,v as c}from"./index-vecxWX4w.js";import{t as l}from"./ToolbarPanels-D4AQa4cH.js";import{i as u}from"./routing-HOPiOt_q.js";var d=t();function f(){let{t}=e(),f=(e,n)=>t(`Discover.${e}`,n),p=u(),m=o(r().activeSession$)??void 0,h=n(),g=a(m,e=>i(e,h)),_=o(g?.browse.activePanel$)??null,v=o(g?.recent.value$)??[],y=o(g?.entityTypes.value$)??[],b=o(g?.recent.error$)??null,x=o(g?.recent.loading$)??!0,S=o(g?.search.query$)??``,C=o(g?.search.state$),w=C?.results??[],T=C?.isSearching??!1,E=C?.matchKind,D=o(g?.selectedEntityType$)??``,{resolvedTheme:O}=s();return g?(0,d.jsx)(c,{recentDocuments:v,searchDocuments:w,entityTypes:y,isLoadingRecent:x,recentError:b,onRetryRecent:g?.recent.retry,isSearching:T,...E?{searchMatchKind:E}:{},searchQuery:S,onSearchQueryChange:g?.search.setQuery,selectedEntityType:D,onSelectedEntityTypeChange:g?.setSelectedEntityType,theme:O,activePanel:_,onNavigateToResource:e=>p.push(`/know/resource/${encodeURIComponent(e)}`),onNavigateToCompose:()=>p.push(`/know/compose`),translations:{title:f(`title`),subtitle:f(`subtitle`),searchPlaceholder:f(`searchPlaceholder`),searchButton:f(`searchButton`),searching:f(`searching`),semanticFallbackNotice:f(`semanticFallbackNotice`),filterByEntityType:f(`filterByEntityType`),all:f(`all`),recentResources:f(`recentResources`),searchResults:e=>f(`searchResults`,{count:e}),documentsTaggedWith:e=>f(`documentsTaggedWith`,{entityType:e}),noResultsFound:e=>f(`noResultsFound`,{query:e}),noResourcesAvailable:f(`noResourcesAvailable`),composeFirstResource:f(`composeFirstResource`),archived:f(`archived`),created:f(`created`),loadingKnowledgeBase:f(`loadingKnowledgeBase`),recentFailed:f(`recentFailed`),retry:f(`retry`)},ToolbarPanels:l}):null}export{f as default};
|
|
2
|
+
//# sourceMappingURL=page-OcQ2uaAq.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-
|
|
1
|
+
{"version":3,"file":"page-OcQ2uaAq.js","names":[],"sources":["../../src/app/[locale]/know/discover/page.tsx"],"sourcesContent":["\"use client\";\n\nimport { useTranslation } from 'react-i18next';\nimport { useRouter } from '@/i18n/routing';\nimport {\n useTheme,\n useObservable,\n useSemiont,\n useSessionStateUnit,\n ResourceDiscoveryPage,\n} from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { useShellStateUnit } from '@semiont/react-ui';\nimport { createDiscoverStateUnit } from '@semiont/react-ui';\nexport default function DiscoverPage() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Discover.${k}`, p as any) as string;\n const router = useRouter();\n const session = useObservable(useSemiont().activeSession$) ?? undefined;\n\n const browseStateUnit = useShellStateUnit();\n const stateUnit = useSessionStateUnit(session, (s) => createDiscoverStateUnit(s, browseStateUnit));\n\n const activePanel = useObservable(stateUnit?.browse.activePanel$) ?? null;\n const recentDocuments = useObservable(stateUnit?.recent.value$) ?? [];\n const entityTypes = useObservable(stateUnit?.entityTypes.value$) ?? [];\n // Three states: a terminally failed list has no value either, so deriving\n // \"loading\" from `undefined` left this route spinning for ever.\n // See .plans/PANEL-FAILURE-STATES.md\n const recentError = useObservable(stateUnit?.recent.error$) ?? null;\n const isLoadingRecent = useObservable(stateUnit?.recent.loading$) ?? true;\n const searchQuery = useObservable(stateUnit?.search.query$) ?? '';\n const searchState = useObservable(stateUnit?.search.state$);\n const searchDocuments = searchState?.results ?? [];\n const isSearching = searchState?.isSearching ?? false;\n // Read off the SAME value as the results, never a sibling observable (S10).\n const searchMatchKind = searchState?.matchKind;\n const selectedEntityType = useObservable(stateUnit?.selectedEntityType$) ?? '';\n\n const { resolvedTheme } = useTheme();\n\n if (!stateUnit) return null;\n\n return (\n <ResourceDiscoveryPage\n recentDocuments={recentDocuments}\n searchDocuments={searchDocuments}\n entityTypes={entityTypes}\n isLoadingRecent={isLoadingRecent}\n recentError={recentError}\n onRetryRecent={stateUnit?.recent.retry}\n isSearching={isSearching}\n {...(searchMatchKind ? { searchMatchKind } : {})}\n searchQuery={searchQuery}\n onSearchQueryChange={stateUnit?.search.setQuery}\n selectedEntityType={selectedEntityType}\n onSelectedEntityTypeChange={stateUnit?.setSelectedEntityType}\n theme={resolvedTheme}\n activePanel={activePanel}\n onNavigateToResource={(resourceId) => router.push(`/know/resource/${encodeURIComponent(resourceId)}`)}\n onNavigateToCompose={() => router.push('/know/compose')}\n translations={{\n title: t('title'),\n subtitle: t('subtitle'),\n searchPlaceholder: t('searchPlaceholder'),\n searchButton: t('searchButton'),\n searching: t('searching'),\n semanticFallbackNotice: t('semanticFallbackNotice'),\n filterByEntityType: t('filterByEntityType'),\n all: t('all'),\n recentResources: t('recentResources'),\n searchResults: (count: number) => t('searchResults', { count }),\n documentsTaggedWith: (entityType: string) => t('documentsTaggedWith', { entityType }),\n noResultsFound: (query: string) => t('noResultsFound', { query }),\n noResourcesAvailable: t('noResourcesAvailable'),\n composeFirstResource: t('composeFirstResource'),\n archived: t('archived'),\n created: t('created'),\n loadingKnowledgeBase: t('loadingKnowledgeBase'),\n recentFailed: t('recentFailed'),\n retry: t('retry'),\n }}\n ToolbarPanels={ToolbarPanels}\n />\n );\n}\n"],"mappings":"mQAcA,SAAwB,GAAe,CACrC,GAAM,CAAK,GAAO,EAAe,EAC3B,GAAK,EAAW,IAAgC,EAAG,YAAY,IAAK,CAAQ,EAC5E,EAAS,EAAU,EACnB,EAAU,EAAc,EAAW,CAAC,CAAC,cAAc,GAAK,IAAA,GAExD,EAAkB,EAAkB,EACpC,EAAY,EAAoB,EAAU,GAAM,EAAwB,EAAG,CAAe,CAAC,EAE3F,EAAc,EAAc,GAAW,OAAO,YAAY,GAAK,KAC/D,EAAkB,EAAc,GAAW,OAAO,MAAM,GAAK,CAAC,EAC9D,EAAc,EAAc,GAAW,YAAY,MAAM,GAAK,CAAC,EAI/D,EAAc,EAAc,GAAW,OAAO,MAAM,GAAK,KACzD,EAAkB,EAAc,GAAW,OAAO,QAAQ,GAAK,GAC/D,EAAc,EAAc,GAAW,OAAO,MAAM,GAAK,GACzD,EAAc,EAAc,GAAW,OAAO,MAAM,EACpD,EAAkB,GAAa,SAAW,CAAC,EAC3C,EAAc,GAAa,aAAe,GAE1C,EAAkB,GAAa,UAC/B,EAAqB,EAAc,GAAW,mBAAmB,GAAK,GAEtE,CAAE,iBAAkB,EAAS,EAInC,OAFK,GAGH,EAAA,EAAA,IAAA,CAAC,EAAD,CACmB,kBACA,kBACJ,cACI,kBACJ,cACb,cAAe,GAAW,OAAO,MACpB,cACb,GAAK,EAAkB,CAAE,iBAAgB,EAAI,CAAC,EACjC,cACb,oBAAqB,GAAW,OAAO,SACnB,qBACpB,2BAA4B,GAAW,sBACvC,MAAO,EACM,cACb,qBAAuB,GAAe,EAAO,KAAK,kBAAkB,mBAAmB,CAAU,GAAG,EACpG,wBAA2B,EAAO,KAAK,eAAe,EACtD,aAAc,CACZ,MAAO,EAAE,OAAO,EAChB,SAAU,EAAE,UAAU,EACtB,kBAAmB,EAAE,mBAAmB,EACxC,aAAc,EAAE,cAAc,EAC9B,UAAW,EAAE,WAAW,EACxB,uBAAwB,EAAE,wBAAwB,EAClD,mBAAoB,EAAE,oBAAoB,EAC1C,IAAK,EAAE,KAAK,EACZ,gBAAiB,EAAE,iBAAiB,EACpC,cAAgB,GAAkB,EAAE,gBAAiB,CAAE,OAAM,CAAC,EAC9D,oBAAsB,GAAuB,EAAE,sBAAuB,CAAE,YAAW,CAAC,EACpF,eAAiB,GAAkB,EAAE,iBAAkB,CAAE,OAAM,CAAC,EAChE,qBAAsB,EAAE,sBAAsB,EAC9C,qBAAsB,EAAE,sBAAsB,EAC9C,SAAU,EAAE,UAAU,EACtB,QAAS,EAAE,SAAS,EACpB,qBAAsB,EAAE,sBAAsB,EAC9C,aAAc,EAAE,cAAc,EAC9B,MAAO,EAAE,OAAO,CAClB,EACe,eAChB,CAAA,EA1CoB,IA4CzB"}
|