@semiont/cli 0.5.10 → 0.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +1 -0
  2. package/dist/cli.mjs +332 -131
  3. package/dist/dashboard/dashboard.css +1 -1
  4. package/dist/dashboard/dashboard.css.map +2 -2
  5. package/dist/frontend/dist/assets/{ArrowsRightLeftIcon-qe5-bw6c.js → ArrowsRightLeftIcon-BAptRmrb.js} +2 -2
  6. package/dist/frontend/dist/assets/{ArrowsRightLeftIcon-qe5-bw6c.js.map → ArrowsRightLeftIcon-BAptRmrb.js.map} +1 -1
  7. package/dist/frontend/dist/assets/{ChevronLeftIcon-FJT3xRR7.js → ChevronLeftIcon-AP4JA3_n.js} +2 -2
  8. package/dist/frontend/dist/assets/{ChevronLeftIcon-FJT3xRR7.js.map → ChevronLeftIcon-AP4JA3_n.js.map} +1 -1
  9. package/dist/frontend/dist/assets/{CommandLineIcon-D3DqthqG.js → CommandLineIcon-DkeF_y-i.js} +2 -2
  10. package/dist/frontend/dist/assets/{CommandLineIcon-D3DqthqG.js.map → CommandLineIcon-DkeF_y-i.js.map} +1 -1
  11. package/dist/frontend/dist/assets/{CookiePreferences-Dt8tnn37.js → CookiePreferences-DulRn1Ad.js} +2 -2
  12. package/dist/frontend/dist/assets/{CookiePreferences-Dt8tnn37.js.map → CookiePreferences-DulRn1Ad.js.map} +1 -1
  13. package/dist/frontend/dist/assets/{KeyboardShortcutsContext-DuPrCuAy.js → KeyboardShortcutsContext-_SYsNsgM.js} +2 -2
  14. package/dist/frontend/dist/assets/{KeyboardShortcutsContext-DuPrCuAy.js.map → KeyboardShortcutsContext-_SYsNsgM.js.map} +1 -1
  15. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-KWQ7XDWT-_iZ0YQWT.js +2 -0
  16. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-KWQ7XDWT-_iZ0YQWT.js.map +1 -0
  17. package/dist/frontend/dist/assets/{ToolbarPanels-CafIWhrJ.js → ToolbarPanels-CJP-kOex.js} +2 -2
  18. package/dist/frontend/dist/assets/{ToolbarPanels-CafIWhrJ.js.map → ToolbarPanels-CJP-kOex.js.map} +1 -1
  19. package/dist/frontend/dist/assets/{XMarkIcon-C17nOvTt.js → XMarkIcon-BUKaQwJf.js} +2 -2
  20. package/dist/frontend/dist/assets/{XMarkIcon-C17nOvTt.js.map → XMarkIcon-BUKaQwJf.js.map} +1 -1
  21. package/dist/frontend/dist/assets/{client-D0zS75_0.js → client-BrDEpGKw.js} +2 -2
  22. package/dist/frontend/dist/assets/{client-D0zS75_0.js.map → client-BrDEpGKw.js.map} +1 -1
  23. package/dist/frontend/dist/assets/{client-BIkTmQdO.js → client-C7bo_8D-.js} +2 -2
  24. package/dist/frontend/dist/assets/{client-BIkTmQdO.js.map → client-C7bo_8D-.js.map} +1 -1
  25. package/dist/frontend/dist/assets/{client-BykyYEVk.js → client-DwyJWkCL.js} +2 -2
  26. package/dist/frontend/dist/assets/{client-BykyYEVk.js.map → client-DwyJWkCL.js.map} +1 -1
  27. package/dist/frontend/dist/assets/{client-B-eX6OX_.js → client-szDQ4r9k.js} +2 -2
  28. package/dist/frontend/dist/assets/{client-B-eX6OX_.js.map → client-szDQ4r9k.js.map} +1 -1
  29. package/dist/frontend/dist/assets/{en-P2L4X27N-0z6KilQ7.js → en-P2L4X27N-CUjpZEjK.js} +1 -1
  30. package/dist/frontend/dist/assets/i18n-C4Z9Yn3V.js +2 -0
  31. package/dist/frontend/dist/assets/i18n-C4Z9Yn3V.js.map +1 -0
  32. package/dist/frontend/dist/assets/index-Db2g3DPc.css +1 -0
  33. package/dist/frontend/dist/assets/index-qVNtMzC0.js +140 -0
  34. package/dist/frontend/dist/assets/index-qVNtMzC0.js.map +1 -0
  35. package/dist/frontend/dist/assets/{layout-BY31-yeN.js → layout-DTmqSMaD.js} +2 -2
  36. package/dist/frontend/dist/assets/{layout-BY31-yeN.js.map → layout-DTmqSMaD.js.map} +1 -1
  37. package/dist/frontend/dist/assets/{layout-DGTYBtjJ.js → layout-Du8P32Vd.js} +2 -2
  38. package/dist/frontend/dist/assets/{layout-DGTYBtjJ.js.map → layout-Du8P32Vd.js.map} +1 -1
  39. package/dist/frontend/dist/assets/{layout-Cxdm1QSw.js → layout-bfsd3hAb.js} +2 -2
  40. package/dist/frontend/dist/assets/{layout-Cxdm1QSw.js.map → layout-bfsd3hAb.js.map} +1 -1
  41. package/dist/frontend/dist/assets/{layout-BD701NmF.js → layout-vhDZbfjy.js} +2 -2
  42. package/dist/frontend/dist/assets/{layout-BD701NmF.js.map → layout-vhDZbfjy.js.map} +1 -1
  43. package/dist/frontend/dist/assets/{not-found-Dh1Haw3Q.js → not-found-Bvki2-z5.js} +2 -2
  44. package/dist/frontend/dist/assets/{not-found-Dh1Haw3Q.js.map → not-found-Bvki2-z5.js.map} +1 -1
  45. package/dist/frontend/dist/assets/{page-DIWUAnia.js → page-B2mIxjOM.js} +2 -2
  46. package/dist/frontend/dist/assets/{page-DIWUAnia.js.map → page-B2mIxjOM.js.map} +1 -1
  47. package/dist/frontend/dist/assets/{page-Detb5S1i.js → page-B5mEdf46.js} +2 -2
  48. package/dist/frontend/dist/assets/{page-Detb5S1i.js.map → page-B5mEdf46.js.map} +1 -1
  49. package/dist/frontend/dist/assets/page-BJR7WHXg.js +2 -0
  50. package/dist/frontend/dist/assets/{page-B_8uan5K.js.map → page-BJR7WHXg.js.map} +1 -1
  51. package/dist/frontend/dist/assets/{page-CwXyG2mE.js → page-Baj4wmy7.js} +2 -2
  52. package/dist/frontend/dist/assets/{page-CwXyG2mE.js.map → page-Baj4wmy7.js.map} +1 -1
  53. package/dist/frontend/dist/assets/{page-CbiBBpNp.js → page-BbIr9jHP.js} +2 -2
  54. package/dist/frontend/dist/assets/{page-CbiBBpNp.js.map → page-BbIr9jHP.js.map} +1 -1
  55. package/dist/frontend/dist/assets/{page-BulxfVIh.js → page-Bc9V6mf9.js} +2 -2
  56. package/dist/frontend/dist/assets/{page-BulxfVIh.js.map → page-Bc9V6mf9.js.map} +1 -1
  57. package/dist/frontend/dist/assets/{page-bULE4fbO.js → page-C-3mAlWS.js} +2 -2
  58. package/dist/frontend/dist/assets/{page-bULE4fbO.js.map → page-C-3mAlWS.js.map} +1 -1
  59. package/dist/frontend/dist/assets/{page-CNKRCNFf2.js → page-CECOHOJV2.js} +2 -2
  60. package/dist/frontend/dist/assets/{page-CNKRCNFf2.js.map → page-CECOHOJV2.js.map} +1 -1
  61. package/dist/frontend/dist/assets/{page-DwgJ-g4v.js → page-CFCQC-1H.js} +2 -2
  62. package/dist/frontend/dist/assets/{page-DwgJ-g4v.js.map → page-CFCQC-1H.js.map} +1 -1
  63. package/dist/frontend/dist/assets/{page-D7vCOwQw.js → page-CW-IRz2J.js} +2 -2
  64. package/dist/frontend/dist/assets/{page-D7vCOwQw.js.map → page-CW-IRz2J.js.map} +1 -1
  65. package/dist/frontend/dist/assets/{page-Bu_Nr4-h.js → page-ChXxpqyF.js} +2 -2
  66. package/dist/frontend/dist/assets/{page-Bu_Nr4-h.js.map → page-ChXxpqyF.js.map} +1 -1
  67. package/dist/frontend/dist/assets/{page-BpQsrL4J.js → page-CwVdaXSz.js} +2 -2
  68. package/dist/frontend/dist/assets/{page-BpQsrL4J.js.map → page-CwVdaXSz.js.map} +1 -1
  69. package/dist/frontend/dist/assets/{page-DFLjp4jy.js → page-D3S88nw6.js} +2 -2
  70. package/dist/frontend/dist/assets/{page-DFLjp4jy.js.map → page-D3S88nw6.js.map} +1 -1
  71. package/dist/frontend/dist/assets/{page-ClVer5m1.js → page-DA_80CZf.js} +2 -2
  72. package/dist/frontend/dist/assets/{page-ClVer5m1.js.map → page-DA_80CZf.js.map} +1 -1
  73. package/dist/frontend/dist/assets/{page-D7nHNi_l.js → page-DrjzWWIE.js} +2 -2
  74. package/dist/frontend/dist/assets/{page-D7nHNi_l.js.map → page-DrjzWWIE.js.map} +1 -1
  75. package/dist/frontend/dist/assets/{page-BV7Fcp6v.js → page-DtiXtJ-l.js} +2 -2
  76. package/dist/frontend/dist/assets/{page-BV7Fcp6v.js.map → page-DtiXtJ-l.js.map} +1 -1
  77. package/dist/frontend/dist/assets/{page-CGXJMtNl.js → page-RGbKfKB9.js} +2 -2
  78. package/dist/frontend/dist/assets/{page-CGXJMtNl.js.map → page-RGbKfKB9.js.map} +1 -1
  79. package/dist/frontend/dist/assets/{page-31Agm8Zw.js → page-lMAxop92.js} +2 -2
  80. package/dist/frontend/dist/assets/{page-31Agm8Zw.js.map → page-lMAxop92.js.map} +1 -1
  81. package/dist/frontend/dist/assets/pdf-KENrED1p.js +55 -0
  82. package/dist/frontend/dist/assets/pdf-KENrED1p.js.map +1 -0
  83. package/dist/frontend/dist/assets/pdf.worker.min-DEtVeC4l.mjs +29 -0
  84. package/dist/frontend/dist/assets/{routing-C4nGqdKk.js → routing-DWK3zAt3.js} +2 -2
  85. package/dist/frontend/dist/assets/{routing-C4nGqdKk.js.map → routing-DWK3zAt3.js.map} +1 -1
  86. package/dist/frontend/dist/assets/{routing-BcJzThkn.js → routing-aCi3P9yE.js} +2 -2
  87. package/dist/frontend/dist/assets/{routing-BcJzThkn.js.map → routing-aCi3P9yE.js.map} +1 -1
  88. package/dist/frontend/dist/assets/{vendor-B3B3_s0C.js → vendor-6KmH4nv9.js} +2 -2
  89. package/dist/frontend/dist/assets/{vendor-B3B3_s0C.js.map → vendor-6KmH4nv9.js.map} +1 -1
  90. package/dist/frontend/dist/assets/{web-DBB_8PTg.js → web-BE6xPuyf.js} +2 -2
  91. package/dist/frontend/dist/assets/{web-DBB_8PTg.js.map → web-BE6xPuyf.js.map} +1 -1
  92. package/dist/frontend/dist/index.html +4 -4
  93. package/dist/frontend/package.json +1 -1
  94. package/package.json +24 -24
  95. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-P37SXBWQ-BOxU-1Jy.js +0 -2
  96. package/dist/frontend/dist/assets/PdfAnnotationCanvas.client-P37SXBWQ-BOxU-1Jy.js.map +0 -1
  97. package/dist/frontend/dist/assets/i18n-SpKnqnTp.js +0 -2
  98. package/dist/frontend/dist/assets/i18n-SpKnqnTp.js.map +0 -1
  99. package/dist/frontend/dist/assets/index-BXSJHlqj.js +0 -140
  100. package/dist/frontend/dist/assets/index-BXSJHlqj.js.map +0 -1
  101. package/dist/frontend/dist/assets/index-Cx0aNta6.css +0 -1
  102. package/dist/frontend/dist/assets/page-B_8uan5K.js +0 -2
  103. package/dist/frontend/dist/assets/pdf-m5kKOgoq.js +0 -55
  104. package/dist/frontend/dist/assets/pdf-m5kKOgoq.js.map +0 -1
  105. package/dist/frontend/dist/assets/pdf.worker.min-CrMmvqMo.mjs +0 -29
@@ -1 +1 @@
1
- {"version":3,"file":"page-BV7Fcp6v.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 { useStateUnit } 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 semiont = useSemiont();\n const activeKbId = useObservable(semiont.activeKbId$);\n const session = useObservable(semiont.activeSession$);\n const user = useObservable(session?.user$) ?? null;\n const activeKnowledgeBase = session?.kb ?? null;\n const isAuthenticated = !!user;\n // \"Loading\" = KB is selected but session not yet constructed.\n const isLoading = activeKbId != null && session == null;\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 client = session?.client;\n const stateUnit = useStateUnit(() => createWelcomeStateUnit(client!));\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 (isLoading) return;\n if (!isAuthenticated) {\n router.push('/auth/connect');\n return;\n }\n\n if (userData?.termsAcceptedAt) {\n router.push('/');\n return;\n }\n }, [isLoading, 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 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 = 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={isProcessing}\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"],"mappings":"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"}
1
+ {"version":3,"file":"page-DtiXtJ-l.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 { useStateUnit } 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 semiont = useSemiont();\n const activeKbId = useObservable(semiont.activeKbId$);\n const session = useObservable(semiont.activeSession$);\n const user = useObservable(session?.user$) ?? null;\n const activeKnowledgeBase = session?.kb ?? null;\n const isAuthenticated = !!user;\n // \"Loading\" = KB is selected but session not yet constructed.\n const isLoading = activeKbId != null && session == null;\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 client = session?.client;\n const stateUnit = useStateUnit(() => createWelcomeStateUnit(client!));\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 (isLoading) return;\n if (!isAuthenticated) {\n router.push('/auth/connect');\n return;\n }\n\n if (userData?.termsAcceptedAt) {\n router.push('/');\n return;\n }\n }, [isLoading, 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 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 = 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={isProcessing}\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"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,n}from"./i18n-SpKnqnTp.js";import{t as r}from"./vendor-B3B3_s0C.js";import{J as i,N as a,Q as o,R as s,Y as c,Z as l,c as u,ct as d,nt as f,rt as p,st as m,tt as h,un as g,y as _}from"./index-BXSJHlqj.js";import{t as v}from"./ToolbarPanels-CafIWhrJ.js";import{i as y,n as b}from"./routing-C4nGqdKk.js";var x=e(t()),S=r();function C(){let{t:e}=n(),t=(t,n)=>e(`Compose.${t}`,n),r=b(),C=y(),[w]=g(),T=m(),E=o(T.activeKbId$),D=o(T.activeSession$),O=o(D?.user$),k=o(D?.token$),A=!!O,j=E!=null&&D==null,{showError:M,showSuccess:N}=d(),P=D?.client;(0,x.useEffect)(()=>{j||A||C.push(`/`)},[j,A,C]);let F=h(),I=w?.get(`annotationUri`)?`gather-context:${w.get(`annotationUri`)}`:null,L=I&&typeof sessionStorage<`u`?sessionStorage.getItem(I)??void 0:void 0;I&&L&&typeof sessionStorage<`u`&&sessionStorage.removeItem(I);let R=f(()=>s(P,F,{mode:w?.get(`mode`)??void 0,token:w?.get(`token`)??void 0,annotationUri:w?.get(`annotationUri`)??void 0,sourceDocumentId:w?.get(`sourceDocumentId`)??void 0,name:w?.get(`name`)??void 0,entityTypes:w?.get(`entityTypes`)??void 0,storedContext:L},k??void 0)),z=o(R.browse.activePanel$)??null,B=o(R.mode$)??`new`,V=o(R.loading$)??!0,H=o(R.cloneData$)??null,U=o(R.referenceData$)??null,W=o(R.gatheredContext$)??null,G=o(R.entityTypes$)??[],K=o(R.uploadProgress$)??null,{setTheme:q,resolvedTheme:J}=p(),{showLineNumbers:Y,toggleLineNumbers:X}=l(),{hoverDelayMs:Z}=c();return i({"settings:theme-changed":({theme:e})=>q(e),"settings:line-numbers-toggled":()=>X()}),j||V?(0,S.jsx)(u,{message:j?`Checking authentication...`:`Loading cloned resource...`}):A?(0,S.jsx)(_,{mode:B,cloneData:H,referenceData:U,gatheredContext:W,availableEntityTypes:G,initialLocale:r,theme:J,showLineNumbers:Y,hoverDelayMs:Z,activePanel:z,onSaveResource:async e=>{try{let t=await R.save(e);e.mode===`reference`&&e.annotationUri&&N(`Reference successfully linked to the new resource`),C.push(`/know/resource/${encodeURIComponent(t)}`)}catch(e){throw M(e instanceof Error?e.message:`Failed to save resource. Please try again.`),e}},onCancel:()=>C.push(`/know/discover`),uploadProgress:K,translations:{title:t(`title`),titleEditClone:t(`titleEditClone`),titleCompleteReference:t(`titleCompleteReference`),subtitleClone:t(`subtitleClone`),subtitleReference:t(`subtitleReference`),linkedNoticePrefix:t(`linkedNoticePrefix`),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`),creatingAndLinking:t(`creatingAndLinking`),saveClonedResource:t(`saveClonedResource`),createAndLinkResource:t(`createAndLinkResource`),createResource:t(`createResource`)},ToolbarPanels:v,Toolbar:a}):null}function w(){let{t:e}=n();return(0,S.jsx)(x.Suspense,{fallback:(0,S.jsx)(u,{message:((t,n)=>e(`Compose.${t}`,n))(`loading`)}),children:(0,S.jsx)(C,{})})}export{w as default};
2
- //# sourceMappingURL=page-CGXJMtNl.js.map
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,n}from"./i18n-C4Z9Yn3V.js";import{t as r}from"./vendor-6KmH4nv9.js";import{J as i,N as a,Q as o,R as s,Y as c,Z as l,c as u,ct as d,nt as f,rt as p,st as m,tt as h,un as g,y as _}from"./index-qVNtMzC0.js";import{t as v}from"./ToolbarPanels-CJP-kOex.js";import{i as y,n as b}from"./routing-DWK3zAt3.js";var x=e(t()),S=r();function C(){let{t:e}=n(),t=(t,n)=>e(`Compose.${t}`,n),r=b(),C=y(),[w]=g(),T=m(),E=o(T.activeKbId$),D=o(T.activeSession$),O=o(D?.user$),k=o(D?.token$),A=!!O,j=E!=null&&D==null,{showError:M,showSuccess:N}=d(),P=D?.client;(0,x.useEffect)(()=>{j||A||C.push(`/`)},[j,A,C]);let F=h(),I=w?.get(`annotationUri`)?`gather-context:${w.get(`annotationUri`)}`:null,L=I&&typeof sessionStorage<`u`?sessionStorage.getItem(I)??void 0:void 0;I&&L&&typeof sessionStorage<`u`&&sessionStorage.removeItem(I);let R=f(()=>s(P,F,{mode:w?.get(`mode`)??void 0,token:w?.get(`token`)??void 0,annotationUri:w?.get(`annotationUri`)??void 0,sourceDocumentId:w?.get(`sourceDocumentId`)??void 0,name:w?.get(`name`)??void 0,entityTypes:w?.get(`entityTypes`)??void 0,storedContext:L},k??void 0)),z=o(R.browse.activePanel$)??null,B=o(R.mode$)??`new`,V=o(R.loading$)??!0,H=o(R.cloneData$)??null,U=o(R.referenceData$)??null,W=o(R.gatheredContext$)??null,G=o(R.entityTypes$)??[],K=o(R.uploadProgress$)??null,{setTheme:q,resolvedTheme:J}=p(),{showLineNumbers:Y,toggleLineNumbers:X}=l(),{hoverDelayMs:Z}=c();return i({"settings:theme-changed":({theme:e})=>q(e),"settings:line-numbers-toggled":()=>X()}),j||V?(0,S.jsx)(u,{message:j?`Checking authentication...`:`Loading cloned resource...`}):A?(0,S.jsx)(_,{mode:B,cloneData:H,referenceData:U,gatheredContext:W,availableEntityTypes:G,initialLocale:r,theme:J,showLineNumbers:Y,hoverDelayMs:Z,activePanel:z,onSaveResource:async e=>{try{let t=await R.save(e);e.mode===`reference`&&e.annotationUri&&N(`Reference successfully linked to the new resource`),C.push(`/know/resource/${encodeURIComponent(t)}`)}catch(e){throw M(e instanceof Error?e.message:`Failed to save resource. Please try again.`),e}},onCancel:()=>C.push(`/know/discover`),uploadProgress:K,translations:{title:t(`title`),titleEditClone:t(`titleEditClone`),titleCompleteReference:t(`titleCompleteReference`),subtitleClone:t(`subtitleClone`),subtitleReference:t(`subtitleReference`),linkedNoticePrefix:t(`linkedNoticePrefix`),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`),creatingAndLinking:t(`creatingAndLinking`),saveClonedResource:t(`saveClonedResource`),createAndLinkResource:t(`createAndLinkResource`),createResource:t(`createResource`)},ToolbarPanels:v,Toolbar:a}):null}function w(){let{t:e}=n();return(0,S.jsx)(x.Suspense,{fallback:(0,S.jsx)(u,{message:((t,n)=>e(`Compose.${t}`,n))(`loading`)}),children:(0,S.jsx)(C,{})})}export{w as default};
2
+ //# sourceMappingURL=page-RGbKfKB9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-CGXJMtNl.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-dom';\nimport {\n useSemiont,\n useToast,\n useTheme,\n useShellStateUnit,\n useObservable,\n useLineNumbers,\n useHoverDelay,\n useEventSubscriptions,\n useStateUnit,\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, showSuccess } = useToast();\n const client = session?.client;\n\n useEffect(() => {\n if (authLoading) return;\n if (!isAuthenticated) router.push('/');\n }, [authLoading, isAuthenticated, router]);\n\n const browseStateUnit = useShellStateUnit();\n\n const contextKey = searchParams?.get('annotationUri')\n ? `gather-context:${searchParams.get('annotationUri')}`\n : null;\n const storedContext = contextKey && typeof sessionStorage !== 'undefined'\n ? sessionStorage.getItem(contextKey) ?? undefined\n : undefined;\n if (contextKey && storedContext && typeof sessionStorage !== 'undefined') {\n sessionStorage.removeItem(contextKey);\n }\n\n const stateUnit = useStateUnit(() => createComposePageStateUnit(client!, browseStateUnit, {\n mode: searchParams?.get('mode') ?? undefined,\n token: searchParams?.get('token') ?? undefined,\n annotationUri: searchParams?.get('annotationUri') ?? undefined,\n sourceDocumentId: searchParams?.get('sourceDocumentId') ?? undefined,\n name: searchParams?.get('name') ?? undefined,\n entityTypes: searchParams?.get('entityTypes') ?? undefined,\n storedContext,\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 referenceData = useObservable(stateUnit.referenceData$) ?? null;\n const gatheredContext = useObservable(stateUnit.gatheredContext$) ?? null;\n const availableEntityTypes = useObservable(stateUnit.entityTypes$) ?? [];\n const uploadProgress = useObservable(stateUnit.uploadProgress$) ?? null;\n\n const { setTheme, resolvedTheme } = useTheme();\n const { showLineNumbers, toggleLineNumbers } = useLineNumbers();\n const { hoverDelayMs } = useHoverDelay();\n\n useEventSubscriptions({\n 'settings:theme-changed': ({ theme }: { theme: 'light' | 'dark' | 'system' }) => setTheme(theme),\n 'settings:line-numbers-toggled': () => toggleLineNumbers(),\n });\n\n const handleSaveResource = async (params: UISaveResourceParams) => {\n try {\n const newResourceId = await stateUnit.save(params);\n if (params.mode === 'reference' && params.annotationUri) {\n showSuccess('Reference successfully linked to the new resource');\n }\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 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 uploadProgress={uploadProgress}\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"],"mappings":"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"}
1
+ {"version":3,"file":"page-RGbKfKB9.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-dom';\nimport {\n useSemiont,\n useToast,\n useTheme,\n useShellStateUnit,\n useObservable,\n useLineNumbers,\n useHoverDelay,\n useEventSubscriptions,\n useStateUnit,\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, showSuccess } = useToast();\n const client = session?.client;\n\n useEffect(() => {\n if (authLoading) return;\n if (!isAuthenticated) router.push('/');\n }, [authLoading, isAuthenticated, router]);\n\n const browseStateUnit = useShellStateUnit();\n\n const contextKey = searchParams?.get('annotationUri')\n ? `gather-context:${searchParams.get('annotationUri')}`\n : null;\n const storedContext = contextKey && typeof sessionStorage !== 'undefined'\n ? sessionStorage.getItem(contextKey) ?? undefined\n : undefined;\n if (contextKey && storedContext && typeof sessionStorage !== 'undefined') {\n sessionStorage.removeItem(contextKey);\n }\n\n const stateUnit = useStateUnit(() => createComposePageStateUnit(client!, browseStateUnit, {\n mode: searchParams?.get('mode') ?? undefined,\n token: searchParams?.get('token') ?? undefined,\n annotationUri: searchParams?.get('annotationUri') ?? undefined,\n sourceDocumentId: searchParams?.get('sourceDocumentId') ?? undefined,\n name: searchParams?.get('name') ?? undefined,\n entityTypes: searchParams?.get('entityTypes') ?? undefined,\n storedContext,\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 referenceData = useObservable(stateUnit.referenceData$) ?? null;\n const gatheredContext = useObservable(stateUnit.gatheredContext$) ?? null;\n const availableEntityTypes = useObservable(stateUnit.entityTypes$) ?? [];\n const uploadProgress = useObservable(stateUnit.uploadProgress$) ?? null;\n\n const { setTheme, resolvedTheme } = useTheme();\n const { showLineNumbers, toggleLineNumbers } = useLineNumbers();\n const { hoverDelayMs } = useHoverDelay();\n\n useEventSubscriptions({\n 'settings:theme-changed': ({ theme }: { theme: 'light' | 'dark' | 'system' }) => setTheme(theme),\n 'settings:line-numbers-toggled': () => toggleLineNumbers(),\n });\n\n const handleSaveResource = async (params: UISaveResourceParams) => {\n try {\n const newResourceId = await stateUnit.save(params);\n if (params.mode === 'reference' && params.annotationUri) {\n showSuccess('Reference successfully linked to the new resource');\n }\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 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 uploadProgress={uploadProgress}\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"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,n}from"./i18n-SpKnqnTp.js";import{t as r}from"./vendor-B3B3_s0C.js";import{J as i,N as a,Q as o,Z as s,j as c,rt as l,st as u,tt as d}from"./index-BXSJHlqj.js";import{t as f}from"./ToolbarPanels-CafIWhrJ.js";var p=e(t()),m=r();function h(){let{t:e}=n(),t=(t,n)=>e(`ModerateTagSchemas.${t}`,n),r=o(d().activePanel$)??null,{theme:h,setTheme:g}=l(),{showLineNumbers:_,toggleLineNumbers:v}=s();i({"settings:theme-changed":(0,p.useCallback)(({theme:e})=>{g(e)},[g]),"settings:line-numbers-toggled":(0,p.useCallback)(()=>{v()},[v])});let y=o(u().activeSession$),b=o((0,p.useMemo)(()=>y?.client.browse.tagSchemas()??null,[y]));return(0,m.jsx)(c,{schemas:b??[],isLoading:b===void 0,theme:h,showLineNumbers:_,activePanel:r,translations:{pageTitle:t(`pageTitle`),pageDescription:t(`pageDescription`),categories:t(`categories`),loading:t(`loading`)},ToolbarPanels:f,Toolbar:a})}export{h as default};
2
- //# sourceMappingURL=page-31Agm8Zw.js.map
1
+ import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,n}from"./i18n-C4Z9Yn3V.js";import{t as r}from"./vendor-6KmH4nv9.js";import{J as i,N as a,Q as o,Z as s,j as c,rt as l,st as u,tt as d}from"./index-qVNtMzC0.js";import{t as f}from"./ToolbarPanels-CJP-kOex.js";var p=e(t()),m=r();function h(){let{t:e}=n(),t=(t,n)=>e(`ModerateTagSchemas.${t}`,n),r=o(d().activePanel$)??null,{theme:h,setTheme:g}=l(),{showLineNumbers:_,toggleLineNumbers:v}=s();i({"settings:theme-changed":(0,p.useCallback)(({theme:e})=>{g(e)},[g]),"settings:line-numbers-toggled":(0,p.useCallback)(()=>{v()},[v])});let y=o(u().activeSession$),b=o((0,p.useMemo)(()=>y?.client.browse.tagSchemas()??null,[y]));return(0,m.jsx)(c,{schemas:b??[],isLoading:b===void 0,theme:h,showLineNumbers:_,activePanel:r,translations:{pageTitle:t(`pageTitle`),pageDescription:t(`pageDescription`),categories:t(`categories`),loading:t(`loading`)},ToolbarPanels:f,Toolbar:a})}export{h as default};
2
+ //# sourceMappingURL=page-lMAxop92.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-31Agm8Zw.js","names":[],"sources":["../../src/app/[locale]/moderate/tag-schemas/page.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Toolbar } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { useTheme, useShellStateUnit, useObservable, useLineNumbers, useEventSubscriptions, 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, 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 // 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 const schemas = schemasObserved ?? [];\n const isLoading = schemasObserved === undefined;\n\n return (\n <TagSchemasPage\n schemas={schemas}\n isLoading={isLoading}\n theme={theme}\n showLineNumbers={showLineNumbers}\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":"oSAUA,SAAwB,GAAwB,CAC9C,GAAM,CAAE,EAAG,GAAO,EAAe,EAC3B,GAAK,EAAW,IAAgC,EAAG,sBAAsB,IAAK,CAAQ,EAItF,EAAc,EADI,EACU,CAAA,CAAgB,YAAY,GAAK,KAC7D,CAAE,QAAO,YAAa,EAAS,EAC/B,CAAE,kBAAiB,qBAAsB,EAAe,EAU9D,EAAsB,CACpB,0BAAA,EAAA,EAAA,YAAA,EATsC,CAAE,WAAoD,CAC5F,EAAS,CAAK,CAChB,EAAG,CAAC,CAAQ,CAOgB,EAC1B,iCAAA,EAAA,EAAA,YAAA,KANiD,CACjD,EAAkB,CACpB,EAAG,CAAC,CAAiB,CAIc,CACnC,CAAC,EAMD,IAAM,EAAU,EAAc,EAAW,CAAC,CAAC,cAAc,EAKnD,EAAkB,GAAA,EAAA,EAAA,QAAA,KAHhB,GAAS,OAAO,OAAO,WAAW,GAAK,KAC7C,CAAC,CAAO,CAE4B,CAAW,EAIjD,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACW,QALG,GAAmB,CAAC,EAMrB,UALG,IAAoB,IAAA,GAM3B,QACU,kBACJ,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
+ {"version":3,"file":"page-lMAxop92.js","names":[],"sources":["../../src/app/[locale]/moderate/tag-schemas/page.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Toolbar } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { useTheme, useShellStateUnit, useObservable, useLineNumbers, useEventSubscriptions, 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, 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 // 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 const schemas = schemasObserved ?? [];\n const isLoading = schemasObserved === undefined;\n\n return (\n <TagSchemasPage\n schemas={schemas}\n isLoading={isLoading}\n theme={theme}\n showLineNumbers={showLineNumbers}\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":"oSAUA,SAAwB,GAAwB,CAC9C,GAAM,CAAE,EAAG,GAAO,EAAe,EAC3B,GAAK,EAAW,IAAgC,EAAG,sBAAsB,IAAK,CAAQ,EAItF,EAAc,EADI,EACU,CAAA,CAAgB,YAAY,GAAK,KAC7D,CAAE,QAAO,YAAa,EAAS,EAC/B,CAAE,kBAAiB,qBAAsB,EAAe,EAU9D,EAAsB,CACpB,0BAAA,EAAA,EAAA,YAAA,EATsC,CAAE,WAAoD,CAC5F,EAAS,CAAK,CAChB,EAAG,CAAC,CAAQ,CAOgB,EAC1B,iCAAA,EAAA,EAAA,YAAA,KANiD,CACjD,EAAkB,CACpB,EAAG,CAAC,CAAiB,CAIc,CACnC,CAAC,EAMD,IAAM,EAAU,EAAc,EAAW,CAAC,CAAC,cAAc,EAKnD,EAAkB,GAAA,EAAA,EAAA,QAAA,KAHhB,GAAS,OAAO,OAAO,WAAW,GAAK,KAC7C,CAAC,CAAO,CAE4B,CAAW,EAIjD,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACW,QALG,GAAmB,CAAC,EAMrB,UALG,IAAoB,IAAA,GAM3B,QACU,kBACJ,cACb,aAAc,CACZ,UAAW,EAAE,WAAW,EACxB,gBAAiB,EAAE,iBAAiB,EACpC,WAAY,EAAE,YAAY,EAC1B,QAAS,EAAE,SAAS,CACtB,EACe,gBACN,SACV,CAAA,CAEL"}