@semiont/frontend 0.4.14 → 0.4.15
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/{ArrowsRightLeftIcon-CMDe963r.js → ArrowsRightLeftIcon-BzLgl5o9.js} +2 -2
- package/dist/assets/{ArrowsRightLeftIcon-CMDe963r.js.map → ArrowsRightLeftIcon-BzLgl5o9.js.map} +1 -1
- package/dist/assets/{ChevronLeftIcon-CMXd_XZQ.js → ChevronLeftIcon-BLyRNZuL.js} +2 -2
- package/dist/assets/{ChevronLeftIcon-CMXd_XZQ.js.map → ChevronLeftIcon-BLyRNZuL.js.map} +1 -1
- package/dist/assets/{CommandLineIcon-BBerq9Nd.js → CommandLineIcon-Ba4gpk8e.js} +2 -2
- package/dist/assets/{CommandLineIcon-BBerq9Nd.js.map → CommandLineIcon-Ba4gpk8e.js.map} +1 -1
- package/dist/assets/{CookiePreferences-Cbur0STI.js → CookiePreferences-CO_BNHwm.js} +2 -2
- package/dist/assets/{CookiePreferences-Cbur0STI.js.map → CookiePreferences-CO_BNHwm.js.map} +1 -1
- package/dist/assets/PdfAnnotationCanvas.client-CHDCGQBR-BLaEAPe0.js +2 -0
- package/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js.map → PdfAnnotationCanvas.client-CHDCGQBR-BLaEAPe0.js.map} +1 -1
- package/dist/assets/StreamStatusContext-BNiTXRfJ.js +2 -0
- package/dist/assets/{StreamStatusContext-BuPATpTz.js.map → StreamStatusContext-BNiTXRfJ.js.map} +1 -1
- package/dist/assets/ToolbarPanels-DRHyLUHl.js +2 -0
- package/dist/assets/ToolbarPanels-DRHyLUHl.js.map +1 -0
- package/dist/assets/{XMarkIcon-6m9KVFaj.js → XMarkIcon-KMKD47CF.js} +2 -2
- package/dist/assets/{XMarkIcon-6m9KVFaj.js.map → XMarkIcon-KMKD47CF.js.map} +1 -1
- package/dist/assets/{browser-ponyfill-DkbQZCyF.js → browser-ponyfill-D2ngVqWO.js} +2 -2
- package/dist/assets/{browser-ponyfill-DkbQZCyF.js.map → browser-ponyfill-D2ngVqWO.js.map} +1 -1
- package/dist/assets/client-RpFyflU_.js +2 -0
- package/dist/assets/{client-BiL3eI7d.js.map → client-RpFyflU_.js.map} +1 -1
- package/dist/assets/{client-BnL1es01.js → client-bqO7W1Xj.js} +2 -2
- package/dist/assets/{client-BnL1es01.js.map → client-bqO7W1Xj.js.map} +1 -1
- package/dist/assets/{client-DrQUcCJy.js → client-ekxuarKC.js} +2 -2
- package/dist/assets/{client-DrQUcCJy.js.map → client-ekxuarKC.js.map} +1 -1
- package/dist/assets/{client-BPbsU2tc.js → client-xJTgSko3.js} +2 -2
- package/dist/assets/{client-BPbsU2tc.js.map → client-xJTgSko3.js.map} +1 -1
- package/dist/assets/{i18n-BYxb14hm.js → i18n-BbpF47i1.js} +2 -2
- package/dist/assets/{i18n-BYxb14hm.js.map → i18n-BbpF47i1.js.map} +1 -1
- package/dist/assets/{index-CNb3PHS7.css → index-BUe9tsov.css} +1 -1
- package/dist/assets/index-XWcEpo5a.js +159 -0
- package/dist/assets/index-XWcEpo5a.js.map +1 -0
- package/dist/assets/layout-BFanPfv_.js +2 -0
- package/dist/assets/layout-BFanPfv_.js.map +1 -0
- package/dist/assets/layout-BN0UEIdX.js +2 -0
- package/dist/assets/layout-BN0UEIdX.js.map +1 -0
- package/dist/assets/layout-ChyKFPPP.js +2 -0
- package/dist/assets/layout-ChyKFPPP.js.map +1 -0
- package/dist/assets/layout-DmjP6diV.js +2 -0
- package/dist/assets/layout-DmjP6diV.js.map +1 -0
- package/dist/assets/{not-found-CwWw1pZc.js → not-found-BboGygIW.js} +2 -2
- package/dist/assets/{not-found-CwWw1pZc.js.map → not-found-BboGygIW.js.map} +1 -1
- package/dist/assets/page-8F47gNEm.js +2 -0
- package/dist/assets/page-8F47gNEm.js.map +1 -0
- package/dist/assets/page-8x98ZAYe.js +2 -0
- package/dist/assets/{page-iSL5E639.js.map → page-8x98ZAYe.js.map} +1 -1
- package/dist/assets/page-BaqIbrus.js +2 -0
- package/dist/assets/{page-Deep7E5d.js.map → page-BaqIbrus.js.map} +1 -1
- package/dist/assets/page-BfhPRgzq.js +2 -0
- package/dist/assets/{page-ZBwMTeR-.js.map → page-BfhPRgzq.js.map} +1 -1
- package/dist/assets/page-Bht4dePL.js +5 -0
- package/dist/assets/{page-CelRTchO.js.map → page-Bht4dePL.js.map} +1 -1
- package/dist/assets/page-BtqPeWyh.js +2 -0
- package/dist/assets/page-BtqPeWyh.js.map +1 -0
- package/dist/assets/{page-Dv386AZD.js → page-CG7C0ib3.js} +3 -3
- package/dist/assets/{page-Dv386AZD.js.map → page-CG7C0ib3.js.map} +1 -1
- package/dist/assets/page-CJnfSnRg.js +2 -0
- package/dist/assets/page-CJnfSnRg.js.map +1 -0
- package/dist/assets/page-Cct5hwIU.js +8 -0
- package/dist/assets/{page-E99MPOn5.js.map → page-Cct5hwIU.js.map} +1 -1
- package/dist/assets/page-CnJVZMgv.js +2 -0
- package/dist/assets/page-CnJVZMgv.js.map +1 -0
- package/dist/assets/page-CpbZG7nR.js +2 -0
- package/dist/assets/{page-C5bIvv1V.js.map → page-CpbZG7nR.js.map} +1 -1
- package/dist/assets/{page-D_nHe9FT.js → page-CzvERJKF.js} +2 -2
- package/dist/assets/{page-D_nHe9FT.js.map → page-CzvERJKF.js.map} +1 -1
- package/dist/assets/page-DB8grXzl.js +2 -0
- package/dist/assets/{page-Zq6ARIvg.js.map → page-DB8grXzl.js.map} +1 -1
- package/dist/assets/page-DI1MUp4X.js +2 -0
- package/dist/assets/{page-xdXYx3nl.js.map → page-DI1MUp4X.js.map} +1 -1
- package/dist/assets/{page-CslYhbgz.js → page-Dhi8hP-S.js} +2 -2
- package/dist/assets/{page-CslYhbgz.js.map → page-Dhi8hP-S.js.map} +1 -1
- package/dist/assets/{page-BmHLf-7O.js → page-FovvpNWp.js} +2 -2
- package/dist/assets/{page-BmHLf-7O.js.map → page-FovvpNWp.js.map} +1 -1
- package/dist/assets/{page-KtkB4tEv.js → page-T424mvNp.js} +2 -2
- package/dist/assets/{page-KtkB4tEv.js.map → page-T424mvNp.js.map} +1 -1
- package/dist/assets/{page-1BwlyTUj.js → page-knhbwxzQ.js} +2 -2
- package/dist/assets/{page-1BwlyTUj.js.map → page-knhbwxzQ.js.map} +1 -1
- package/dist/assets/privacy-B5TeXaed.js +2 -0
- package/dist/assets/{privacy-DO1oxJpM.js.map → privacy-B5TeXaed.js.map} +1 -1
- package/dist/assets/{query-ATBhtd3K.js → query-B6BuIB0M.js} +3 -3
- package/dist/assets/{query-ATBhtd3K.js.map → query-B6BuIB0M.js.map} +1 -1
- package/dist/assets/{routing-DMdXWYXo.js → routing-By_4TZHr.js} +2 -2
- package/dist/assets/{routing-DMdXWYXo.js.map → routing-By_4TZHr.js.map} +1 -1
- package/dist/assets/{routing-tJ_HbFRP.js → routing-vcvYfuPO.js} +2 -2
- package/dist/assets/{routing-tJ_HbFRP.js.map → routing-vcvYfuPO.js.map} +1 -1
- package/dist/assets/{vendor-EnoIVk-c.js → vendor-DJo4KD8w.js} +2 -2
- package/dist/assets/{vendor-EnoIVk-c.js.map → vendor-DJo4KD8w.js.map} +1 -1
- package/dist/index.html +5 -5
- package/package.json +1 -1
- package/dist/assets/PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js +0 -2
- package/dist/assets/StreamStatusContext-BuPATpTz.js +0 -2
- package/dist/assets/ToolbarPanels-rN1MIRTV.js +0 -2
- package/dist/assets/ToolbarPanels-rN1MIRTV.js.map +0 -1
- package/dist/assets/client-BiL3eI7d.js +0 -2
- package/dist/assets/en-IUV4ZXKH-BY1RKeLS.js +0 -135
- package/dist/assets/en-IUV4ZXKH-BY1RKeLS.js.map +0 -1
- package/dist/assets/index-DA31r_0s.js +0 -27
- package/dist/assets/index-DA31r_0s.js.map +0 -1
- package/dist/assets/layout-B8IinUdt.js +0 -2
- package/dist/assets/layout-B8IinUdt.js.map +0 -1
- package/dist/assets/layout-BjpW078f.js +0 -2
- package/dist/assets/layout-BjpW078f.js.map +0 -1
- package/dist/assets/layout-CDIjxs5a.js +0 -6
- package/dist/assets/layout-CDIjxs5a.js.map +0 -1
- package/dist/assets/layout-DKm9XdRr.js +0 -2
- package/dist/assets/layout-DKm9XdRr.js.map +0 -1
- package/dist/assets/page-BQ00VxR5.js +0 -2
- package/dist/assets/page-BQ00VxR5.js.map +0 -1
- package/dist/assets/page-C5bIvv1V.js +0 -2
- package/dist/assets/page-CelRTchO.js +0 -5
- package/dist/assets/page-Cf9cnqhC.js +0 -2
- package/dist/assets/page-Cf9cnqhC.js.map +0 -1
- package/dist/assets/page-DEjlNEY0.js +0 -2
- package/dist/assets/page-DEjlNEY0.js.map +0 -1
- package/dist/assets/page-DLtwpo78.js +0 -2
- package/dist/assets/page-DLtwpo78.js.map +0 -1
- package/dist/assets/page-Deep7E5d.js +0 -2
- package/dist/assets/page-E99MPOn5.js +0 -8
- package/dist/assets/page-ZBwMTeR-.js +0 -2
- package/dist/assets/page-Zq6ARIvg.js +0 -2
- package/dist/assets/page-iSL5E639.js +0 -2
- package/dist/assets/page-xdXYx3nl.js +0 -2
- package/dist/assets/privacy-DO1oxJpM.js +0 -2
- package/dist/assets/useAuth-yUx5lBP5.js +0 -2
- package/dist/assets/useAuth-yUx5lBP5.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e}from"./query-ATBhtd3K.js";import{r as s,O as b}from"./vendor-EnoIVk-c.js";import{b as g,L as k,u as v}from"./routing-DMdXWYXo.js";import{g as w,I as j,J as L,K as S,M as F,N as $}from"./en-IUV4ZXKH-BY1RKeLS.js";import{u as f}from"./i18n-BYxb14hm.js";import{F as y,C as A}from"./CookiePreferences-Cbur0STI.js";import{F as K}from"./ArrowsRightLeftIcon-CMDe963r.js";import{F as R}from"./CommandLineIcon-BBerq9Nd.js";import{F as C,a as N}from"./ChevronLeftIcon-CMXd_XZQ.js";import{K as E}from"./privacy-DO1oxJpM.js";import{r as x,L as h}from"./routing-tJ_HbFRP.js";import{u as H,b as M,k as P}from"./useAuth-yUx5lBP5.js";import"./index-DA31r_0s.js";import"./XMarkIcon-6m9KVFaj.js";function B({title:t,titleId:r,...n},i){return s.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:i,"aria-labelledby":r},n),t?s.createElement("title",{id:r},t):null,s.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"}))}const D=s.forwardRef(B);function O({href:t,to:r,...n}){return e.jsx(k,{to:t??"",...n})}function T({isCollapsed:t,toggleCollapsed:r,navigationMenu:n}){const{t:i}=f(),o=(l,u)=>i(`Administration.${l}`,u),{t:m}=f(),c=(l,u)=>m(`Sidebar.${l}`,u),p=g(),a=s.useCallback(()=>{r()},[r]);w({"browse:sidebar-toggle":a});const d=[{name:o("users"),href:"/admin/users",icon:D,description:o("usersDescription")},{name:o("oauthSettings"),href:"/admin/security",icon:y,description:o("oauthSettingsDescription")},{name:o("exchange"),href:"/admin/exchange",icon:K,description:o("exchangeDescription")},{name:o("devops"),href:"/admin/devops",icon:R,description:o("devopsDescription")}];return e.jsx(j,{title:o("title"),items:d,currentPath:p,LinkComponent:O,...n&&{dropdownContent:n},isCollapsed:t,icons:{chevronLeft:N,bars:C},collapseSidebarLabel:c("collapseSidebar"),expandSidebarLabel:c("expandSidebar")})}function re(){const{t}=f(),r=s.useContext(E),{isAuthenticated:n,isAdmin:i,isModerator:o,token:m}=H(),{activeKnowledgeBase:c}=M(),p=v();return c?e.jsx(L,{token:m,children:e.jsx(S,{baseUrl:P(c),children:e.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col",children:[e.jsxs("div",{className:"flex flex-1",children:[e.jsx(F,{Link:h,routes:x,t:a=>t(`Navigation.${a}`),tHome:a=>t(`Home.${a}`),brandingLink:"/",collapsible:!0,storageKey:"admin-sidebar-collapsed",isAuthenticated:n,isAdmin:i,isModerator:o,children:(a,d,l)=>e.jsx(T,{isCollapsed:a,toggleCollapsed:d,navigationMenu:l})}),e.jsx("main",{className:"flex-1 p-6 flex flex-col",children:e.jsx("div",{className:"max-w-7xl mx-auto flex-1 flex flex-col w-full",children:e.jsx(b,{})})})]}),e.jsx($,{Link:h,routes:x,t:(a,d)=>t(`Footer.${a}`,d),CookiePreferences:A,...(r==null?void 0:r.openKeyboardHelp)&&{onOpenKeyboardHelp:r.openKeyboardHelp}})]})})}):(p.push("/know"),null)}export{re as default};
|
|
2
|
-
//# sourceMappingURL=layout-B8IinUdt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout-B8IinUdt.js","sources":["../../../../node_modules/@heroicons/react/24/outline/esm/UsersIcon.js","../../src/components/admin/AdminNavigation.tsx","../../src/app/[locale]/admin/layout.tsx"],"sourcesContent":["import * as React from \"react\";\nfunction UsersIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(UsersIcon);\nexport default ForwardRef;","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname } from '@/i18n/routing';\nimport { SimpleNavigation, useEventSubscriptions } from '@semiont/react-ui';\nimport type { SimpleNavigationItem } from '@semiont/react-ui';\nimport {\n UsersIcon,\n ShieldCheckIcon,\n CommandLineIcon,\n ArrowsRightLeftIcon,\n ChevronLeftIcon,\n Bars3Icon\n} from '@heroicons/react/24/outline';\n\ninterface AdminNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: SimpleNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function AdminNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: AdminNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Administration.${k}`, p as any) as string;\n const { t: _tSidebar } = useTranslation();\n const tSidebar = (k: string, p?: Record<string, unknown>) => _tSidebar(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Subscribe to sidebar toggle events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n });\n\n const navigation: SimpleNavigationItem[] = [\n {\n name: t('users'),\n href: '/admin/users',\n icon: UsersIcon,\n description: t('usersDescription')\n },\n {\n name: t('oauthSettings'),\n href: '/admin/security',\n icon: ShieldCheckIcon,\n description: t('oauthSettingsDescription')\n },\n {\n name: t('exchange'),\n href: '/admin/exchange',\n icon: ArrowsRightLeftIcon,\n description: t('exchangeDescription')\n },\n {\n name: t('devops'),\n href: '/admin/devops',\n icon: CommandLineIcon,\n description: t('devopsDescription')\n },\n ];\n\n return (\n <SimpleNavigation\n title={t('title')}\n items={navigation}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n {...(navigationMenu && { dropdownContent: navigationMenu })}\n isCollapsed={isCollapsed}\n icons={{\n chevronLeft: ChevronLeftIcon as React.ComponentType<{ className?: string }>,\n bars: Bars3Icon as React.ComponentType<{ className?: string }>\n }}\n collapseSidebarLabel={tSidebar('collapseSidebar')}\n expandSidebarLabel={tSidebar('expandSidebar')}\n />\n );\n}","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { AdminNavigation } from '@/components/admin/AdminNavigation';\nimport { LeftSidebar, Footer, ApiClientProvider, AuthTokenProvider } from '@semiont/react-ui';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useRouter } from '@/i18n/routing';\nimport { useKnowledgeBaseContext, kbBackendUrl } from '@/contexts/KnowledgeBaseContext';\n\nexport default function AdminLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const { isAuthenticated, isAdmin, isModerator, token: authToken } = useAuth();\n const { activeKnowledgeBase } = useKnowledgeBaseContext();\n const router = useRouter();\n\n if (!activeKnowledgeBase) {\n router.push('/know');\n return null;\n }\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={kbBackendUrl(activeKnowledgeBase)}>\n <div className=\"min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col\">\n <div className=\"flex flex-1\">\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={(key: string) => t(`Navigation.${key}`)}\n tHome={(key: string) => t(`Home.${key}`)}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"admin-sidebar-collapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <AdminNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n <main className=\"flex-1 p-6 flex flex-col\">\n <div className=\"max-w-7xl mx-auto flex-1 flex flex-col w-full\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string, params?: Record<string, unknown>) => t(`Footer.${key}`, params as any) as string}\n CookiePreferences={CookiePreferences}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["UsersIcon","title","titleId","props","svgRef","React.createElement","ForwardRef","React.forwardRef","HrefLink","href","_to","Link","AdminNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","p","_tSidebar","tSidebar","pathname","usePathname","handleSidebarToggle","useCallback","useEventSubscriptions","navigation","ShieldCheckIcon","ArrowsRightLeftIcon","CommandLineIcon","jsx","SimpleNavigation","ChevronLeftIcon","Bars3Icon","AdminLayout","keyboardContext","useContext","KeyboardShortcutsContext","isAuthenticated","isAdmin","isModerator","authToken","useAuth","activeKnowledgeBase","useKnowledgeBaseContext","router","useRouter","AuthTokenProvider","ApiClientProvider","kbBackendUrl","jsxs","LeftSidebar","routes","key","Outlet","Footer","params","CookiePreferences"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as s,u as A}from"./query-ATBhtd3K.js";import{r as u,O as E}from"./vendor-EnoIVk-c.js";import{Z as _,g as H,_ as O,M as P,$ as T,a0 as C,J as M,K as F,a1 as B,a2 as I,a3 as z,N as w,d as D,e as W,f as J,T as q,a4 as G,a5 as Q,a6 as U}from"./en-IUV4ZXKH-BY1RKeLS.js";import{b as V,u as g,L as Y}from"./routing-DMdXWYXo.js";import{u as f}from"./i18n-BYxb14hm.js";import{F as Z,T as X}from"./ToolbarPanels-rN1MIRTV.js";import{F as ee}from"./XMarkIcon-6m9KVFaj.js";import{F as se,a as te}from"./ChevronLeftIcon-CMXd_XZQ.js";import{r as p,L as v}from"./routing-tJ_HbFRP.js";import{u as j,b,k as oe,g as ne}from"./useAuth-yUx5lBP5.js";import{C as y}from"./CookiePreferences-Cbur0STI.js";import{K as re}from"./privacy-DO1oxJpM.js";import{S as ae}from"./StreamStatusContext-BuPATpTz.js";import"./index-DA31r_0s.js";const ie=({className:t})=>s.jsx("span",{className:t,style:{fontSize:"1.25rem",lineHeight:"1"},children:"🔭"});function le({href:t,to:e,...n}){return s.jsx(Y,{to:t??"",...n})}function ce({isCollapsed:t,toggleCollapsed:e,navigationMenu:n}){const{t:o}=f(),r=(d,h)=>o(`Sidebar.${d}`,h),a=V(),l=g(),{openResources:i,removeResource:c,reorderResources:m}=_(),N=[{name:r("discover"),href:"/know/discover",icon:ie,description:r("searchAndBrowse")},{name:r("compose"),href:"/know/compose",icon:Z,description:r("composeNewResource")}],R=u.useCallback(()=>{e()},[e]),k=u.useCallback(({resourceId:d})=>{c(d),a===`/know/resource/${d}`&&l.push("/know/discover")},[c,a,l]),$=u.useCallback(({oldIndex:d,newIndex:h})=>{m(d,h)},[m]);H({"browse:sidebar-toggle":R,"browse:resource-close":k,"browse:resource-reorder":$});const L=d=>{l.push(d)},K=d=>`/know/resource/${d}`;return s.jsx("div",{className:"flex flex-col h-full",children:s.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:s.jsx(O,{fixedItems:N,resources:i,isCollapsed:t,currentPath:a,LinkComponent:le,onNavigate:L,getResourceHref:K,className:"knowledge-navigation",translations:{title:r("title")},icons:{chevronLeft:te,bars:se,close:ee},navigationMenu:n})})})}function de(){const{t}=f(),e=(i,c)=>t(`Navigation.${i}`,c),{t:n}=f(),o=(i,c)=>n(`Home.${i}`,c),{isAuthenticated:r,isAdmin:a,isModerator:l}=j();return s.jsx(P,{Link:v,routes:p,t:e,tHome:o,brandingLink:"/",collapsible:!0,storageKey:"knowledgeNavCollapsed",isAuthenticated:r,isAdmin:a,isModerator:l,children:(i,c,m)=>s.jsx(ce,{isCollapsed:i,toggleCollapsed:c,navigationMenu:m})})}const x="openDocuments";function S(t){return[...t].sort((e,n)=>e.order!==void 0&&n.order!==void 0?e.order-n.order:e.openedAt-n.openedAt)}function ue(){if(typeof localStorage>"u")return[];try{const t=localStorage.getItem(x);if(t)return S(JSON.parse(t))}catch{}return[]}class fe{constructor(){this.state$=new T(ue()),this.resources$=this.state$.asObservable(),this.handleStorageEvent=e=>{if(e.key===x&&e.newValue)try{this.state$.next(S(JSON.parse(e.newValue)))}catch{}},this.state$.subscribe(e=>{typeof localStorage<"u"&&localStorage.setItem(x,JSON.stringify(e))}),typeof window<"u"&&window.addEventListener("storage",this.handleStorageEvent)}get resources(){return this.state$.value}add(e,n,o,r){const a=this.state$.value;if(a.find(i=>i.id===e))this.state$.next(a.map(i=>i.id===e?{...i,name:n,...o&&{mediaType:o},...r&&{storageUri:r}}:i));else{const i=a.length>0?Math.max(...a.map(c=>c.order??c.openedAt)):0;this.state$.next([...a,{id:e,name:n,openedAt:Date.now(),order:i+1,...o&&{mediaType:o},...r&&{storageUri:r}}])}}remove(e){this.state$.next(this.state$.value.filter(n=>n.id!==e))}updateName(e,n){this.state$.next(this.state$.value.map(o=>o.id===e?{...o,name:n}:o))}reorder(e,n){const o=[...this.state$.value],r=o.splice(e,1)[0];o.splice(n,0,r),this.state$.next(o.map((a,l)=>({...a,order:l})))}destroy(){typeof window<"u"&&window.removeEventListener("storage",this.handleStorageEvent)}}function me(){const t=u.useMemo(()=>new fe,[]);u.useEffect(()=>()=>t.destroy(),[t]);const e=C(t.resources$)??t.resources,n=u.useMemo(()=>({addResource:(o,r,a,l)=>t.add(o,r,a,l),removeResource:o=>t.remove(o),updateResourceName:(o,r)=>t.updateName(o,r),reorderResources:(o,r)=>t.reorder(o,r)}),[t]);return u.useMemo(()=>({openResources:e,...n}),[e,n])}function he(){const t=A();return u.useMemo(()=>({invalidateAnnotations:e=>{t.invalidateQueries({queryKey:["resources",e,"annotations"]})},invalidateEvents:e=>{t.invalidateQueries({queryKey:["resources",e,"events"]})}}),[t])}function xe(){return G(),Q(),null}function pe(){const{t}=f(),e=a=>t(`DiscoverEmptyState.${a}`),{knowledgeBases:n,activeKnowledgeBase:o}=b(),r=o?ne(o.id):null;return n.length===0?s.jsxs("div",{style:{textAlign:"center",maxWidth:"24rem"},children:[s.jsx("h2",{style:{fontSize:"1.1rem",fontWeight:600,marginBottom:"0.5rem"},children:e("noKnowledgeBases")}),s.jsx("p",{style:{color:"var(--semiont-color-neutral-400)",fontSize:"0.85rem",lineHeight:1.5},children:e("noKnowledgeBasesHint")})]}):r==="authenticated"?null:s.jsxs("div",{style:{textAlign:"center",maxWidth:"24rem"},children:[s.jsx("h2",{style:{fontSize:"1.1rem",fontWeight:600,marginBottom:"0.5rem"},children:(o==null?void 0:o.label)??""}),s.jsxs("p",{style:{color:"var(--semiont-color-neutral-400)",fontSize:"0.85rem",lineHeight:1.5},children:[e(r==="expired"?"sessionExpired":"signedOut")," ",e("signInHint")]})]})}function ve({t,keyboardContext:e}){const{activePanel:n}=D(),{theme:o}=W(),{showLineNumbers:r}=J();return s.jsxs("div",{className:"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden",children:[s.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[s.jsx("main",{className:"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden",children:s.jsx("div",{className:"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden items-center justify-center",children:s.jsx(pe,{})})}),s.jsx(X,{activePanel:n,showLineNumbers:r,theme:o,hoverDelayMs:150}),s.jsx(q,{activePanel:n,context:"simple"})]}),s.jsx(w,{Link:v,routes:p,t:(a,l)=>t(`Footer.${a}`,l),CookiePreferences:y,showPolicyLinks:!("__TAURI_INTERNALS__"in window),...(e==null?void 0:e.openKeyboardHelp)&&{onOpenKeyboardHelp:e.openKeyboardHelp}})]})}function we({children:t}){const{status:e}=U();return s.jsx(ae.Provider,{value:e,children:t})}function He(){const{t}=f(),e=u.useContext(re),n=me(),o=he(),{token:r,isLoading:a}=j();g();const{activeKnowledgeBase:l}=b();return a?s.jsx("div",{className:"h-screen flex items-center justify-center",children:s.jsxs("div",{className:"text-center",children:[s.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),s.jsx("p",{className:"text-gray-600 dark:text-gray-400",children:"Loading..."})]})}):!l||!r?s.jsx(ve,{t:(i,c)=>t(i,c),keyboardContext:e}):s.jsx(M,{token:r,children:s.jsx(F,{baseUrl:oe(l),children:s.jsx(B,{cacheManager:o,children:s.jsx(I,{openResourcesManager:n,children:s.jsxs(z,{children:[s.jsx(xe,{}),s.jsx(we,{children:s.jsxs("div",{className:"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden",children:[s.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[s.jsx(de,{}),s.jsx("main",{className:"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden",children:s.jsx("div",{className:"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden",children:s.jsx(E,{})})})]}),s.jsx(w,{Link:v,routes:p,t:(i,c)=>t(`Footer.${i}`,c),CookiePreferences:y,showPolicyLinks:!("__TAURI_INTERNALS__"in window),...(e==null?void 0:e.openKeyboardHelp)&&{onOpenKeyboardHelp:e.openKeyboardHelp}})]})})]})})})})})}export{He as default};
|
|
2
|
-
//# sourceMappingURL=layout-BjpW078f.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"layout-BjpW078f.js","sources":["../../src/components/knowledge/KnowledgeNavigation.tsx","../../src/components/knowledge/KnowledgeSidebarWrapper.tsx","../../src/stores/open-resources-store.ts","../../src/hooks/useOpenResourcesManager.ts","../../src/hooks/useCacheManager.ts","../../src/app/[locale]/know/layout.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from '@/i18n/routing';\nimport { usePathname, useRouter } from '@/i18n/routing';\nimport { PlusIcon, ChevronLeftIcon, Bars3Icon, XMarkIcon } from '@heroicons/react/24/outline';\nimport {\n useOpenResources,\n useEventSubscriptions,\n CollapsibleResourceNavigation,\n type NavigationItem,\n type OpenResource\n} from '@semiont/react-ui';\n\n// Custom telescope icon component\nconst TelescopeIcon = ({ className }: { className?: string }) => (\n <span className={className} style={{ fontSize: '1.25rem', lineHeight: '1' }}>🔭</span>\n);\n\ninterface KnowledgeNavigationProps {\n isCollapsed: boolean;\n toggleCollapsed: () => void;\n navigationMenu?: (onClose: () => void) => React.ReactNode;\n}\n\n// Adapter: CollapsibleResourceNavigation passes href, but our Link uses `to`\nfunction HrefLink({ href, to: _to, ...props }: React.ComponentProps<typeof Link> & { href?: string }) {\n return <Link to={(href ?? '') as string} {...props} />;\n}\n\nexport function KnowledgeNavigation({ isCollapsed, toggleCollapsed, navigationMenu }: KnowledgeNavigationProps) {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`Sidebar.${k}`, p as any) as string;\n const pathname = usePathname();\n const router = useRouter();\n const { openResources, removeResource, reorderResources } = useOpenResources();\n\n const fixedNavigation: NavigationItem[] = [\n {\n name: t('discover'),\n href: '/know/discover',\n icon: TelescopeIcon,\n description: t('searchAndBrowse')\n },\n {\n name: t('compose'),\n href: '/know/compose',\n icon: PlusIcon,\n description: t('composeNewResource')\n }\n ];\n\n // Handle sidebar toggle events\n const handleSidebarToggle = useCallback(() => {\n toggleCollapsed();\n }, [toggleCollapsed]);\n\n // Handle resource close events\n const handleResourceClose = useCallback(({ resourceId }: { resourceId: string }) => {\n removeResource(resourceId);\n\n // If we're closing the currently viewed document, navigate to Discover\n if (pathname === `/know/resource/${resourceId}`) {\n router.push('/know/discover');\n }\n }, [removeResource, pathname, router]);\n\n // Handle resource reorder events\n const handleResourceReorder = useCallback(({ oldIndex, newIndex }: { oldIndex: number; newIndex: number }) => {\n reorderResources(oldIndex, newIndex);\n }, [reorderResources]);\n\n // Subscribe to navigation events\n useEventSubscriptions({\n 'browse:sidebar-toggle': handleSidebarToggle,\n 'browse:resource-close': handleResourceClose,\n 'browse:resource-reorder': handleResourceReorder,\n });\n\n // Handle navigation\n const handleNavigate = (path: string) => {\n router.push(path);\n };\n\n // Build resource href\n const getResourceHref = (resourceId: string) => {\n return `/know/resource/${resourceId}`;\n };\n\n return (\n <div className=\"flex flex-col h-full\">\n <div className=\"flex-1 min-h-0 overflow-y-auto\">\n <CollapsibleResourceNavigation\n fixedItems={fixedNavigation}\n resources={openResources as OpenResource[]}\n isCollapsed={isCollapsed}\n currentPath={pathname}\n LinkComponent={HrefLink as any}\n onNavigate={handleNavigate}\n getResourceHref={getResourceHref}\n className=\"knowledge-navigation\"\n translations={{\n title: t('title')\n }}\n icons={{\n chevronLeft: ChevronLeftIcon,\n bars: Bars3Icon,\n close: XMarkIcon\n }}\n navigationMenu={navigationMenu}\n />\n </div>\n </div>\n );\n}","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { LeftSidebar } from '@semiont/react-ui';\nimport { KnowledgeNavigation } from './KnowledgeNavigation';\nimport { Link, routes } from '@/lib/routing';\nimport { useAuth } from '@/hooks/useAuth';\n\nexport function KnowledgeSidebarWrapper() {\n const { t: _t } = useTranslation();\n const t = (k: string, p?: Record<string, unknown>) => _t(`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 { isAuthenticated, isAdmin, isModerator } = useAuth();\n\n return (\n <LeftSidebar\n Link={Link}\n routes={routes}\n t={t}\n tHome={tHome}\n brandingLink=\"/\"\n collapsible={true}\n storageKey=\"knowledgeNavCollapsed\"\n isAuthenticated={isAuthenticated}\n isAdmin={isAdmin}\n isModerator={isModerator}\n >\n {(isCollapsed, toggleCollapsed, navigationMenu) => (\n <KnowledgeNavigation\n isCollapsed={isCollapsed}\n toggleCollapsed={toggleCollapsed}\n navigationMenu={navigationMenu}\n />\n )}\n </LeftSidebar>\n );\n}\n","/**\n * OpenResourcesStore — per-workspace observable store for open resources\n *\n * BehaviorSubject-backed store for the list of open documents (tabs).\n * Replaces useState in useOpenResourcesManager with a reactive store that:\n * - Persists to localStorage\n * - Syncs across tabs via StorageEvent\n */\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport type { OpenResource } from '@semiont/react-ui';\n\nconst STORAGE_KEY = 'openDocuments';\n\nfunction sortResources(resources: OpenResource[]): OpenResource[] {\n return [...resources].sort((a, b) => {\n if (a.order !== undefined && b.order !== undefined) return a.order - b.order;\n return a.openedAt - b.openedAt;\n });\n}\n\nfunction loadFromStorage(): OpenResource[] {\n if (typeof localStorage === 'undefined') return [];\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) return sortResources(JSON.parse(stored) as OpenResource[]);\n } catch {\n // Ignore parse errors\n }\n return [];\n}\n\nexport class OpenResourcesStore {\n private readonly state$ = new BehaviorSubject<OpenResource[]>(loadFromStorage());\n\n /** Observable of the current open resources list */\n readonly resources$: Observable<OpenResource[]> = this.state$.asObservable();\n\n constructor() {\n // Persist to localStorage on every change\n this.state$.subscribe(resources => {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(resources));\n }\n });\n\n // Sync from other tabs\n if (typeof window !== 'undefined') {\n window.addEventListener('storage', this.handleStorageEvent);\n }\n }\n\n private readonly handleStorageEvent = (e: StorageEvent): void => {\n if (e.key === STORAGE_KEY && e.newValue) {\n try {\n this.state$.next(sortResources(JSON.parse(e.newValue) as OpenResource[]));\n } catch {\n // Ignore parse errors\n }\n }\n };\n\n get resources(): OpenResource[] {\n return this.state$.value;\n }\n\n add(id: string, name: string, mediaType?: string, storageUri?: string): void {\n const current = this.state$.value;\n const existing = current.find(r => r.id === id);\n if (existing) {\n this.state$.next(current.map(r =>\n r.id === id\n ? { ...r, name, ...(mediaType && { mediaType }), ...(storageUri && { storageUri }) }\n : r\n ));\n } else {\n const maxOrder = current.length > 0\n ? Math.max(...current.map(r => r.order ?? r.openedAt))\n : 0;\n this.state$.next([\n ...current,\n { id, name, openedAt: Date.now(), order: maxOrder + 1, ...(mediaType && { mediaType }), ...(storageUri && { storageUri }) },\n ]);\n }\n }\n\n remove(id: string): void {\n this.state$.next(this.state$.value.filter(r => r.id !== id));\n }\n\n updateName(id: string, name: string): void {\n this.state$.next(this.state$.value.map(r => r.id === id ? { ...r, name } : r));\n }\n\n reorder(oldIndex: number, newIndex: number): void {\n const current = [...this.state$.value];\n const moved = current.splice(oldIndex, 1)[0]!;\n current.splice(newIndex, 0, moved);\n this.state$.next(current.map((r, index) => ({ ...r, order: index })));\n }\n\n /** Release event listener — call when the workspace is torn down */\n destroy(): void {\n if (typeof window !== 'undefined') {\n window.removeEventListener('storage', this.handleStorageEvent);\n }\n }\n}\n","import { useMemo, useEffect } from 'react';\nimport type { OpenResourcesManager } from '@semiont/react-ui';\nimport { useObservable } from '@semiont/react-ui';\nimport { OpenResourcesStore } from '@/stores/open-resources-store';\n\n/**\n * Hook that provides OpenResourcesManager delegating to OpenResourcesStore.\n * State lives in a BehaviorSubject; React re-renders via useObservable subscription.\n */\nexport function useOpenResourcesManager(): OpenResourcesManager {\n const store = useMemo(() => new OpenResourcesStore(), []);\n\n useEffect(() => () => store.destroy(), [store]);\n\n const openResources = useObservable(store.resources$) ?? store.resources;\n\n const callbacks = useMemo(\n () => ({\n addResource: (id: string, name: string, mediaType?: string, storageUri?: string) =>\n store.add(id, name, mediaType, storageUri),\n removeResource: (id: string) => store.remove(id),\n updateResourceName: (id: string, name: string) => store.updateName(id, name),\n reorderResources: (oldIndex: number, newIndex: number) => store.reorder(oldIndex, newIndex),\n }),\n [store],\n );\n\n return useMemo(\n () => ({ openResources, ...callbacks }),\n [openResources, callbacks],\n );\n}\n","import { useMemo } from 'react';\nimport { useQueryClient } from '@tanstack/react-query';\nimport type { CacheManager } from '@semiont/react-ui';\nimport type { ResourceId } from '@semiont/core';\n\n/**\n * Frontend implementation of CacheManager using React Query\n *\n * Usage:\n * ```typescript\n * const cacheManager = useCacheManager();\n * <CacheProvider cacheManager={cacheManager}>\n * <YourComponents />\n * </CacheProvider>\n * ```\n */\nexport function useCacheManager(): CacheManager {\n const queryClient = useQueryClient();\n\n return useMemo(() => ({\n invalidateAnnotations: (rUri: ResourceId) => {\n queryClient.invalidateQueries({ queryKey: ['resources', rUri, 'annotations'] });\n },\n invalidateEvents: (rUri: ResourceId) => {\n queryClient.invalidateQueries({ queryKey: ['resources', rUri, 'events'] });\n }\n }), [queryClient]);\n}\n","import { useContext } from 'react';\nimport { Outlet } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { KnowledgeSidebarWrapper } from '@/components/knowledge/KnowledgeSidebarWrapper';\nimport { Footer, ResourceAnnotationsProvider, OpenResourcesProvider, CacheProvider, ApiClientProvider, AuthTokenProvider, Toolbar, useGlobalEvents, useAttentionStream, useStoreTokenSync, usePanelBrowse, useTheme, useLineNumbers } from '@semiont/react-ui';\nimport { ToolbarPanels } from '@/components/toolbar/ToolbarPanels';\nimport { CookiePreferences } from '@/components/CookiePreferences';\nimport { KeyboardShortcutsContext } from '@/contexts/KeyboardShortcutsContext';\nimport { Link, routes } from '@/lib/routing';\nimport { useOpenResourcesManager } from '@/hooks/useOpenResourcesManager';\nimport { useCacheManager } from '@/hooks/useCacheManager';\nimport { useAuth } from '@/hooks/useAuth';\nimport { useRouter } from '@/i18n/routing';\nimport { useKnowledgeBaseContext, kbBackendUrl, getKbSessionStatus } from '@/contexts/KnowledgeBaseContext';\nimport { StreamStatusContext } from '@/contexts/StreamStatusContext';\n\nfunction GlobalEventsConnector() {\n useStoreTokenSync();\n useGlobalEvents();\n return null;\n}\n\n/**\n * Empty state for the main content area when no KB is connected or authenticated.\n * Shows contextual guidance based on whether any KBs exist.\n */\nfunction DiscoverEmptyState() {\n const { t: _t } = useTranslation();\n const t = (k: string) => _t(`DiscoverEmptyState.${k}`) as string;\n const { knowledgeBases, activeKnowledgeBase } = useKnowledgeBaseContext();\n const status = activeKnowledgeBase\n ? getKbSessionStatus(activeKnowledgeBase.id)\n : null;\n\n if (knowledgeBases.length === 0) {\n return (\n <div style={{ textAlign: 'center', maxWidth: '24rem' }}>\n <h2 style={{ fontSize: '1.1rem', fontWeight: 600, marginBottom: '0.5rem' }}>{t('noKnowledgeBases')}</h2>\n <p style={{ color: 'var(--semiont-color-neutral-400)', fontSize: '0.85rem', lineHeight: 1.5 }}>\n {t('noKnowledgeBasesHint')}\n </p>\n </div>\n );\n }\n\n if (status === 'authenticated') {\n return null;\n }\n\n return (\n <div style={{ textAlign: 'center', maxWidth: '24rem' }}>\n <h2 style={{ fontSize: '1.1rem', fontWeight: 600, marginBottom: '0.5rem' }}>\n {activeKnowledgeBase?.label ?? ''}\n </h2>\n <p style={{ color: 'var(--semiont-color-neutral-400)', fontSize: '0.85rem', lineHeight: 1.5 }}>\n {status === 'expired' ? t('sessionExpired') : t('signedOut')}\n {' '}{t('signInHint')}\n </p>\n </div>\n );\n}\n\nfunction UnauthenticatedKnowledgeLayout({ t, keyboardContext }: { t: (key: string, params?: Record<string, unknown>) => string; keyboardContext: { openKeyboardHelp?: () => void } | null }) {\n const { activePanel } = usePanelBrowse();\n const { theme } = useTheme();\n const { showLineNumbers } = useLineNumbers();\n\n return (\n <div className=\"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden\">\n <div className=\"flex flex-1 overflow-hidden\">\n <main className=\"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden\">\n <div className=\"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden items-center justify-center\">\n <DiscoverEmptyState />\n </div>\n </main>\n <ToolbarPanels\n activePanel={activePanel}\n showLineNumbers={showLineNumbers}\n theme={theme}\n hoverDelayMs={150}\n />\n <Toolbar activePanel={activePanel} context=\"simple\" />\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string, params?: Record<string, unknown>) => t(`Footer.${key}`, params as any) as string}\n CookiePreferences={CookiePreferences}\n showPolicyLinks={!('__TAURI_INTERNALS__' in window)}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n );\n}\n\nfunction KnowledgeLayoutInner({ children }: { children: React.ReactNode }) {\n const { status } = useAttentionStream();\n return (\n <StreamStatusContext.Provider value={status}>\n {children}\n </StreamStatusContext.Provider>\n );\n}\n\nexport default function KnowledgeLayout() {\n const { t } = useTranslation();\n const keyboardContext = useContext(KeyboardShortcutsContext);\n const openResourcesManager = useOpenResourcesManager();\n const cacheManager = useCacheManager();\n const { token: authToken, isLoading } = useAuth();\n const router = useRouter();\n const { activeKnowledgeBase } = useKnowledgeBaseContext();\n\n if (isLoading) {\n return (\n <div className=\"h-screen flex items-center justify-center\">\n <div className=\"text-center\">\n <div className=\"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4\"></div>\n <p className=\"text-gray-600 dark:text-gray-400\">Loading...</p>\n </div>\n </div>\n );\n }\n\n if (!activeKnowledgeBase || !authToken) {\n return (\n <UnauthenticatedKnowledgeLayout t={(key: string, params?: Record<string, unknown>) => t(key, params as any) as string} keyboardContext={keyboardContext} />\n );\n }\n\n return (\n <AuthTokenProvider token={authToken}>\n <ApiClientProvider baseUrl={kbBackendUrl(activeKnowledgeBase)}>\n <CacheProvider cacheManager={cacheManager}>\n <OpenResourcesProvider openResourcesManager={openResourcesManager}>\n <ResourceAnnotationsProvider>\n <GlobalEventsConnector />\n <KnowledgeLayoutInner>\n <div className=\"h-screen semiont-knowledge-layout semiont-layout-with-footer flex flex-col overflow-hidden\">\n <div className=\"flex flex-1 overflow-hidden\">\n <KnowledgeSidebarWrapper />\n <main className=\"flex-1 w-full px-2 pb-6 flex flex-col overflow-hidden\">\n <div className=\"w-full mx-auto flex-1 flex flex-col h-full overflow-hidden\">\n <Outlet />\n </div>\n </main>\n </div>\n <Footer\n Link={Link}\n routes={routes}\n t={(key: string, params?: Record<string, unknown>) => t(`Footer.${key}`, params as any) as string}\n CookiePreferences={CookiePreferences}\n showPolicyLinks={!('__TAURI_INTERNALS__' in window)}\n {...(keyboardContext?.openKeyboardHelp && { onOpenKeyboardHelp: keyboardContext.openKeyboardHelp })}\n />\n </div>\n </KnowledgeLayoutInner>\n </ResourceAnnotationsProvider>\n </OpenResourcesProvider>\n </CacheProvider>\n </ApiClientProvider>\n </AuthTokenProvider>\n );\n}\n"],"names":["TelescopeIcon","className","jsx","HrefLink","href","_to","props","Link","KnowledgeNavigation","isCollapsed","toggleCollapsed","navigationMenu","_t","useTranslation","t","k","p","pathname","usePathname","router","useRouter","openResources","removeResource","reorderResources","useOpenResources","fixedNavigation","PlusIcon","handleSidebarToggle","useCallback","handleResourceClose","resourceId","handleResourceReorder","oldIndex","newIndex","useEventSubscriptions","handleNavigate","path","getResourceHref","CollapsibleResourceNavigation","ChevronLeftIcon","Bars3Icon","XMarkIcon","KnowledgeSidebarWrapper","_tHome","tHome","isAuthenticated","isAdmin","isModerator","useAuth","LeftSidebar","routes","STORAGE_KEY","sortResources","resources","a","b","loadFromStorage","stored","OpenResourcesStore","BehaviorSubject","id","name","mediaType","storageUri","current","r","maxOrder","moved","index","useOpenResourcesManager","store","useMemo","useEffect","useObservable","callbacks","useCacheManager","queryClient","useQueryClient","rUri","GlobalEventsConnector","useStoreTokenSync","useGlobalEvents","DiscoverEmptyState","knowledgeBases","activeKnowledgeBase","useKnowledgeBaseContext","status","getKbSessionStatus","jsxs","UnauthenticatedKnowledgeLayout","keyboardContext","activePanel","usePanelBrowse","theme","useTheme","showLineNumbers","useLineNumbers","ToolbarPanels","Toolbar","Footer","key","params","CookiePreferences","KnowledgeLayoutInner","children","useAttentionStream","StreamStatusContext","KnowledgeLayout","useContext","KeyboardShortcutsContext","openResourcesManager","cacheManager","authToken","isLoading","AuthTokenProvider","ApiClientProvider","kbBackendUrl","CacheProvider","OpenResourcesProvider","ResourceAnnotationsProvider","Outlet"],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{j as c,Q as sn,M as ln,a as an,b as un}from"./query-ATBhtd3K.js";import{r as a,R as y,j as cn,t as lt,O as dn}from"./vendor-EnoIVk-c.js";import{g as fn,$ as mn,aj as pn,ak as hn,a0 as vn,al as Be,am as at,an as ut,ao as gn,ap as yn,aq as bn,ar as xn,as as wn,at as En,au as $n,av as jn,aw as jt,ax as St,ay as Sn,az as Cn}from"./en-IUV4ZXKH-BY1RKeLS.js";import{a as kn,C as Tn,b as Pn,i as Nn,c as An,s as We}from"./privacy-DO1oxJpM.js";import{u as Ct}from"./routing-DMdXWYXo.js";import{u as Fn,K as Rn,b as On,A as Ln,a as Mn}from"./useAuth-yUx5lBP5.js";import{u as kt}from"./i18n-BYxb14hm.js";import"./index-DA31r_0s.js";function Dn(){const e=Ct(),t=a.useCallback(({url:r,cancelFallback:o})=>{o(),e.push(r)},[e]),n=a.useCallback(({path:r})=>{e.push(r)},[e]);return fn({"browse:external-navigate":t,"browse:router-push":n}),null}class _n extends y.Component{constructor(t){super(t),this.handleReset=()=>{this.setState({hasError:!1,error:null})},this.handleSignIn=()=>{window.location.href=`/auth/connect?callbackUrl=${encodeURIComponent(window.location.pathname)}`},this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){}render(){var t,n,r,o,i,u;if(this.state.hasError){const s=((n=(t=this.state.error)==null?void 0:t.message)==null?void 0:n.toLowerCase().includes("auth"))||((o=(r=this.state.error)==null?void 0:r.message)==null?void 0:o.toLowerCase().includes("session"))||((u=(i=this.state.error)==null?void 0:i.message)==null?void 0:u.toLowerCase().includes("token"));return c.jsx("div",{className:"min-h-[400px] flex items-center justify-center p-4",children:c.jsxs("div",{className:"max-w-md w-full bg-white dark:bg-gray-800 rounded-lg shadow-lg p-6",children:[c.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[c.jsx("div",{className:"flex-shrink-0 w-10 h-10 bg-red-100 dark:bg-red-900/30 rounded-full flex items-center justify-center",children:c.jsx("svg",{className:"w-6 h-6 text-red-600 dark:text-red-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),c.jsx("h2",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:s?"Authentication Error":"Something went wrong"})]}),c.jsx("p",{className:"text-gray-600 dark:text-gray-300 mb-6",children:s?"There was a problem with your authentication. Please try signing in again.":"An unexpected error occurred. Please try refreshing the page."}),!1,c.jsx("div",{className:"flex gap-3",children:s?c.jsxs(c.Fragment,{children:[c.jsx("button",{onClick:this.handleReset,className:"flex-1 px-4 py-2 text-gray-600 hover:text-gray-800 dark:text-gray-400 dark:hover:text-gray-200 transition-colors",children:"Try Again"}),c.jsx("button",{onClick:this.handleSignIn,className:"flex-1 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Sign In"})]}):c.jsx("button",{onClick:()=>window.location.reload(),className:"w-full px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:"Refresh Page"})})]})})}return this.props.children}}const In=300*1e3;function ct(e){if(!e)return{isAuthenticated:!1,expiresAt:null,timeUntilExpiry:null,isExpiringSoon:!1};let t=null;try{const o=e.split(".");if(o.length===3&&o[1]){const i=JSON.parse(atob(o[1]));i.exp&&(t=new Date(i.exp*1e3))}}catch{}const n=Date.now(),r=t?t.getTime()-n:null;return{isAuthenticated:!0,expiresAt:t,timeUntilExpiry:r,isExpiringSoon:r!==null&&r<In&&r>0}}class Bn{constructor(){this.state$=new mn(ct(null)),this.session$=this.state$.asObservable()}setToken(t){this.state$.next(ct(t))}get state(){return this.state$.value}select(t){return this.session$.pipe(pn(n=>n[t]),hn())}}function Wn(){const{token:e}=Fn(),t=a.useMemo(()=>new Bn,[]);return a.useEffect(()=>{t.setToken(e??null)},[t,e]),vn(t.session$)??t.state}function Hn(){const{i18n:e}=kt();return a.useMemo(()=>({t:(t,n,r)=>{var u;const o=e.getResourceBundle(e.language,"translation");let i=(u=o==null?void 0:o[t])==null?void 0:u[n];if(!i)return`${t}.${n}`;if(r&&typeof i=="string"){let s=i;return Object.entries(r).forEach(([l,d])=>{s=s.replace(new RegExp(`\\{${l}\\}`,"g"),String(d))}),s}return i}}),[e,e.language])}function Un(){return new sn({queryCache:new an({onError:e=>{e instanceof Be&&(e.status===401?at("Your session has expired. Please sign in again."):e.status===403&&ut("You do not have permission to access this resource."))}}),mutationCache:new ln({onError:e=>{e instanceof Be&&(e.status===401?at("Your session has expired. Please sign in again."):e.status===403&&ut("You do not have permission to perform this action."))}}),defaultOptions:{queries:{retry:(e,t)=>t instanceof Be&&(t.status===401||t.status===403||t.status>=400&&t.status<500)?!1:e<3,retryDelay:e=>Math.min(1e3*2**e,3e4),staleTime:300*1e3,refetchOnWindowFocus:!1}}})}function Gn({children:e,queryClient:t}){const n=Wn(),r=Hn();return c.jsx(_n,{children:c.jsx(gn,{sessionManager:n,children:c.jsx(yn,{translationManager:r,children:c.jsx(un,{client:t,children:c.jsx(bn,{children:c.jsx(xn,{children:c.jsx(kn,{children:c.jsx(wn,{children:c.jsxs(En,{children:[c.jsx(Dn,{}),e]})})})})})})})})})}function zn({children:e,queryClient:t}){const{activeKnowledgeBase:n}=On();return c.jsx(Ln,{children:c.jsx(Gn,{queryClient:t,children:e})},(n==null?void 0:n.id)??"__none__")}function Yn({children:e}){const[t]=a.useState(()=>Un());return c.jsx(Rn,{children:c.jsx(zn,{queryClient:t,children:e})})}function qn({title:e,titleId:t,...n},r){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?a.createElement("title",{id:t},e):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const Vn=a.forwardRef(qn);function Kn({title:e,titleId:t,...n},r){return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?a.createElement("title",{id:t},e):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const Xn=a.forwardRef(Kn);function Qn({className:e=""}){const{t}=kt(),n=(h,w)=>t(`CookieBanner.${h}`,w),[r,o]=a.useState(!1),[i,u]=a.useState(!1),[s,l]=a.useState(!1),[d,f]=a.useState("GENERAL"),[p,m]=a.useState({necessary:!0,analytics:!1,marketing:!1,preferences:!1});a.useEffect(()=>{(async()=>{if(Pn()){o(!0);try{const[w,N]=await Promise.all([Nn(),An()]);f(w?"GDPR":N?"CCPA":"GENERAL")}catch(w){console.error("Failed to detect region:",w),f("GENERAL")}}})()},[]);const v=async()=>{l(!0);try{const h={necessary:!0,analytics:!0,marketing:!0,preferences:!0};await Promise.resolve(We(h)),o(!1)}catch(h){console.error("Failed to save cookie consent:",h)}finally{l(!1)}},g=async()=>{l(!0);try{const h={necessary:!0,analytics:!1,marketing:!1,preferences:!1};await Promise.resolve(We(h)),o(!1)}catch(h){console.error("Failed to save cookie consent:",h)}finally{l(!1)}},x=async()=>{l(!0);try{await Promise.resolve(We(p)),o(!1)}catch(h){console.error("Failed to save cookie consent:",h)}finally{l(!1)}},b=h=>{h!=="necessary"&&m(w=>({...w,[h]:!w[h]}))},S=()=>{switch(d){case"GDPR":return{title:n("gdprTitle"),description:n("gdprDescription"),learnMore:n("gdprLearnMore")};case"CCPA":return{title:n("ccpaTitle"),description:n("ccpaDescription"),learnMore:n("ccpaLearnMore")};default:return{title:n("generalTitle"),description:n("generalDescription"),learnMore:n("generalLearnMore")}}};if(!r)return null;const j=S();return c.jsx("div",{className:e,style:{position:"fixed",bottom:0,left:0,right:0,zIndex:50,backgroundColor:"var(--semiont-bg-primary)",borderTop:"1px solid var(--semiont-border-primary)",boxShadow:"var(--semiont-shadow-lg)"},children:c.jsx("div",{style:{maxWidth:"80rem",margin:"0 auto",padding:"1rem 1.5rem"},children:c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"1.5rem",flexWrap:"wrap"},children:[c.jsxs("div",{style:{flex:1,minWidth:"300px"},children:[c.jsx("h3",{style:{fontSize:"1.125rem",fontWeight:600,color:"var(--semiont-text-primary)",marginBottom:"0.5rem"},children:j.title}),c.jsx("p",{style:{fontSize:"var(--semiont-text-sm, 0.875rem)",color:"var(--semiont-text-secondary)",marginBottom:"0.25rem"},children:j.description}),c.jsx("p",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)"},children:j.learnMore})]}),c.jsxs("div",{style:{display:"flex",gap:"0.75rem",alignItems:"center",flexWrap:"wrap"},children:[c.jsxs("button",{type:"button",onClick:()=>u(!i),className:"semiont-button--secondary",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[n("customize"),i?c.jsx(Xn,{style:{width:"1rem",height:"1rem"}}):c.jsx(Vn,{style:{width:"1rem",height:"1rem"}})]}),d!=="GDPR"&&c.jsx("button",{type:"button",onClick:g,disabled:s,className:"semiont-button--secondary",children:n(s?"saving":"rejectAll")}),c.jsx("button",{type:"button",onClick:v,disabled:s,className:"semiont-button--primary",children:n(s?"saving":"acceptAll")})]})]}),i&&c.jsx("div",{style:{borderTop:"1px solid var(--semiont-border-primary)",paddingTop:"1rem"},children:c.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"1rem"},children:[c.jsx("h4",{style:{fontSize:"1rem",fontWeight:500,color:"var(--semiont-text-primary)"},children:n("cookiePreferences")}),c.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:Tn.map(h=>c.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:"0.75rem"},children:[c.jsx("div",{style:{display:"flex",alignItems:"center",height:"1.25rem"},children:c.jsx("input",{id:`cookie-${h.id}`,type:"checkbox",checked:p[h.id]||!1,onChange:()=>b(h.id),disabled:h.required||s,style:{accentColor:"var(--semiont-color-primary-600, #2563eb)"}})}),c.jsxs("div",{style:{flex:1,minWidth:0},children:[c.jsxs("label",{htmlFor:`cookie-${h.id}`,style:{fontSize:"var(--semiont-text-sm, 0.875rem)",fontWeight:500,color:"var(--semiont-text-primary)",cursor:"pointer"},children:[h.name,h.required&&c.jsx("span",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)",marginLeft:"0.25rem"},children:n("required")})]}),c.jsx("p",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-secondary)",marginTop:"0.25rem"},children:h.description}),c.jsxs("details",{style:{marginTop:"0.25rem"},children:[c.jsx("summary",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-color-primary-600, #2563eb)",cursor:"pointer"},children:n("viewCookies")}),c.jsx("div",{style:{marginTop:"0.25rem",fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)"},children:h.cookies.join(", ")})]})]})]},h.id))}),c.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem",paddingTop:"1rem"},children:[c.jsx("button",{type:"button",onClick:()=>u(!1),className:"semiont-button--secondary",children:n("cancel")}),c.jsx("button",{type:"button",onClick:x,disabled:s,className:"semiont-button--primary",children:n(s?"saving":"savePreferences")})]})]})})]})})})}var Zn=Object.defineProperty,Jn=(e,t,n)=>t in e?Zn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,He=(e,t,n)=>(Jn(e,typeof t!="symbol"?t+"":t,n),n);let er=class{constructor(){He(this,"current",this.detect()),He(this,"handoffState","pending"),He(this,"currentId",0)}set(t){this.current!==t&&(this.handoffState="pending",this.currentId=0,this.current=t)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},M=new er;function pe(e){var t;return M.isServer?null:e==null?document:(t=e==null?void 0:e.ownerDocument)!=null?t:document}function Ye(e){var t,n;return M.isServer?null:e==null?document:(n=(t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))!=null?n:document}function Tt(e){var t,n;return(n=(t=Ye(e))==null?void 0:t.activeElement)!=null?n:null}function tr(e){return Tt(e)===e}function Te(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function H(){let e=[],t={addEventListener(n,r,o,i){return n.addEventListener(r,o,i),t.add(()=>n.removeEventListener(r,o,i))},requestAnimationFrame(...n){let r=requestAnimationFrame(...n);return t.add(()=>cancelAnimationFrame(r))},nextFrame(...n){return t.requestAnimationFrame(()=>t.requestAnimationFrame(...n))},setTimeout(...n){let r=setTimeout(...n);return t.add(()=>clearTimeout(r))},microTask(...n){let r={current:!0};return Te(()=>{r.current&&n[0]()}),t.add(()=>{r.current=!1})},style(n,r,o){let i=n.style.getPropertyValue(r);return Object.assign(n.style,{[r]:o}),this.add(()=>{Object.assign(n.style,{[r]:i})})},group(n){let r=H();return n(r),this.add(()=>r.dispose())},add(n){return e.includes(n)||e.push(n),()=>{let r=e.indexOf(n);if(r>=0)for(let o of e.splice(r,1))o()}},dispose(){for(let n of e.splice(0))n()}};return t}function Pe(){let[e]=a.useState(H);return a.useEffect(()=>()=>e.dispose(),[e]),e}let k=(e,t)=>{M.isServer?a.useEffect(e,t):a.useLayoutEffect(e,t)};function te(e){let t=a.useRef(e);return k(()=>{t.current=e},[e]),t}let $=function(e){let t=te(e);return y.useCallback((...n)=>t.current(...n),[t])};function he(e){return a.useMemo(()=>e,Object.values(e))}let nr=a.createContext(void 0);function rr(){return a.useContext(nr)}function qe(...e){return Array.from(new Set(e.flatMap(t=>typeof t=="string"?t.split(" "):[]))).filter(Boolean).join(" ")}function W(e,t,...n){if(e in t){let o=t[e];return typeof o=="function"?o(...n):o}let r=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(o=>`"${o}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,W),r}var Se=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(Se||{}),z=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(z||{});function F(){let e=ir();return a.useCallback(t=>or({mergeRefs:e,...t}),[e])}function or({ourProps:e,theirProps:t,slot:n,defaultTag:r,features:o,visible:i=!0,name:u,mergeRefs:s}){s=s??sr;let l=Pt(t,e);if(i)return $e(l,n,r,u,s);let d=o??0;if(d&2){let{static:f=!1,...p}=l;if(f)return $e(p,n,r,u,s)}if(d&1){let{unmount:f=!0,...p}=l;return W(f?0:1,{0(){return null},1(){return $e({...p,hidden:!0,style:{display:"none"}},n,r,u,s)}})}return $e(l,n,r,u,s)}function $e(e,t={},n,r,o){let{as:i=n,children:u,refName:s="ref",...l}=Ue(e,["unmount","static"]),d=e.ref!==void 0?{[s]:e.ref}:{},f=typeof u=="function"?u(t):u;"className"in l&&l.className&&typeof l.className=="function"&&(l.className=l.className(t)),l["aria-labelledby"]&&l["aria-labelledby"]===l.id&&(l["aria-labelledby"]=void 0);let p={};if(t){let m=!1,v=[];for(let[g,x]of Object.entries(t))typeof x=="boolean"&&(m=!0),x===!0&&v.push(g.replace(/([A-Z])/g,b=>`-${b.toLowerCase()}`));if(m){p["data-headlessui-state"]=v.join(" ");for(let g of v)p[`data-${g}`]=""}}if(de(i)&&(Object.keys(X(l)).length>0||Object.keys(X(p)).length>0))if(!a.isValidElement(f)||Array.isArray(f)&&f.length>1||ar(f)){if(Object.keys(X(l)).length>0)throw new Error(['Passing props on "Fragment"!',"",`The current component <${r} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(X(l)).concat(Object.keys(X(p))).map(m=>` - ${m}`).join(`
|
|
2
|
-
`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(m=>` - ${m}`).join(`
|
|
3
|
-
`)].join(`
|
|
4
|
-
`))}else{let m=f.props,v=m==null?void 0:m.className,g=typeof v=="function"?(...S)=>qe(v(...S),l.className):qe(v,l.className),x=g?{className:g}:{},b=Pt(f.props,X(Ue(l,["ref"])));for(let S in p)S in b&&delete p[S];return a.cloneElement(f,Object.assign({},b,p,d,{ref:o(lr(f),d.ref)},x))}return a.createElement(i,Object.assign({},Ue(l,["ref"]),!de(i)&&d,!de(i)&&p),f)}function ir(){let e=a.useRef([]),t=a.useCallback(n=>{for(let r of e.current)r!=null&&(typeof r=="function"?r(n):r.current=n)},[]);return(...n)=>{if(!n.every(r=>r==null))return e.current=n,t}}function sr(...e){return e.every(t=>t==null)?void 0:t=>{for(let n of e)n!=null&&(typeof n=="function"?n(t):n.current=t)}}function Pt(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},n={};for(let r of e)for(let o in r)o.startsWith("on")&&typeof r[o]=="function"?(n[o]!=null||(n[o]=[]),n[o].push(r[o])):t[o]=r[o];if(t.disabled||t["aria-disabled"])for(let r in n)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(r)&&(n[r]=[o=>{var i;return(i=o==null?void 0:o.preventDefault)==null?void 0:i.call(o)}]);for(let r in n)Object.assign(t,{[r](o,...i){let u=n[r];for(let s of u){if((o instanceof Event||(o==null?void 0:o.nativeEvent)instanceof Event)&&o.defaultPrevented)return;s(o,...i)}}});return t}function T(e){var t;return Object.assign(a.forwardRef(e),{displayName:(t=e.displayName)!=null?t:e.name})}function X(e){let t=Object.assign({},e);for(let n in t)t[n]===void 0&&delete t[n];return t}function Ue(e,t=[]){let n=Object.assign({},e);for(let r of t)r in n&&delete n[r];return n}function lr(e){return y.version.split(".")[0]>="19"?e.props.ref:e.ref}function de(e){return e===a.Fragment||e===Symbol.for("react.fragment")}function ar(e){return de(e.type)}let ur="span";var Ce=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(Ce||{});function cr(e,t){var n;let{features:r=1,...o}=e,i={ref:t,"aria-hidden":(r&2)===2?!0:(n=o["aria-hidden"])!=null?n:void 0,hidden:(r&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(r&4)===4&&(r&2)!==2&&{display:"none"}}};return F()({ourProps:i,theirProps:o,slot:{},defaultTag:ur,name:"Hidden"})}let Ve=T(cr);function dr(e){return typeof e!="object"||e===null?!1:"nodeType"in e}function q(e){return dr(e)&&"tagName"in e}function J(e){return q(e)&&"accessKey"in e}function Y(e){return q(e)&&"tabIndex"in e}function fr(e){return q(e)&&"style"in e}function mr(e){return J(e)&&e.nodeName==="IFRAME"}function pr(e){return J(e)&&e.nodeName==="INPUT"}let Nt=Symbol();function hr(e,t=!0){return Object.assign(e,{[Nt]:t})}function D(...e){let t=a.useRef(e);a.useEffect(()=>{t.current=e},[e]);let n=$(r=>{for(let o of t.current)o!=null&&(typeof o=="function"?o(r):o.current=r)});return e.every(r=>r==null||(r==null?void 0:r[Nt]))?void 0:n}let Je=a.createContext(null);Je.displayName="DescriptionContext";function At(){let e=a.useContext(Je);if(e===null){let t=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,At),t}return e}function vr(){let[e,t]=a.useState([]);return[e.length>0?e.join(" "):void 0,a.useMemo(()=>function(n){let r=$(i=>(t(u=>[...u,i]),()=>t(u=>{let s=u.slice(),l=s.indexOf(i);return l!==-1&&s.splice(l,1),s}))),o=a.useMemo(()=>({register:r,slot:n.slot,name:n.name,props:n.props,value:n.value}),[r,n.slot,n.name,n.props,n.value]);return y.createElement(Je.Provider,{value:o},n.children)},[t])]}let gr="p";function yr(e,t){let n=a.useId(),r=rr(),{id:o=`headlessui-description-${n}`,...i}=e,u=At(),s=D(t);k(()=>u.register(o),[o,u.register]);let l=he({...u.slot,disabled:r||!1}),d={ref:s,...u.props,id:o};return F()({ourProps:d,theirProps:i,slot:l,defaultTag:gr,name:u.name||"Description"})}let br=T(yr),xr=Object.assign(br,{});var Ft=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(Ft||{});let wr=a.createContext(()=>{});function Er({value:e,children:t}){return y.createElement(wr.Provider,{value:e},t)}let Rt=class extends Map{constructor(t){super(),this.factory=t}get(t){let n=super.get(t);return n===void 0&&(n=this.factory(t),this.set(t,n)),n}};var $r=Object.defineProperty,jr=(e,t,n)=>t in e?$r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Sr=(e,t,n)=>(jr(e,t+"",n),n),Ot=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},A=(e,t,n)=>(Ot(e,t,"read from private field"),n?n.call(e):t.get(e)),Ge=(e,t,n)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,n)},dt=(e,t,n,r)=>(Ot(e,t,"write to private field"),t.set(e,n),n),L,ae,ue;let Cr=class{constructor(t){Ge(this,L,{}),Ge(this,ae,new Rt(()=>new Set)),Ge(this,ue,new Set),Sr(this,"disposables",H()),dt(this,L,t),M.isServer&&this.disposables.microTask(()=>{this.dispose()})}dispose(){this.disposables.dispose()}get state(){return A(this,L)}subscribe(t,n){if(M.isServer)return()=>{};let r={selector:t,callback:n,current:t(A(this,L))};return A(this,ue).add(r),this.disposables.add(()=>{A(this,ue).delete(r)})}on(t,n){return M.isServer?()=>{}:(A(this,ae).get(t).add(n),this.disposables.add(()=>{A(this,ae).get(t).delete(n)}))}send(t){let n=this.reduce(A(this,L),t);if(n!==A(this,L)){dt(this,L,n);for(let r of A(this,ue)){let o=r.selector(A(this,L));Lt(r.current,o)||(r.current=o,r.callback(o))}for(let r of A(this,ae).get(t.type))r(A(this,L),t)}}};L=new WeakMap,ae=new WeakMap,ue=new WeakMap;function Lt(e,t){return Object.is(e,t)?!0:typeof e!="object"||e===null||typeof t!="object"||t===null?!1:Array.isArray(e)&&Array.isArray(t)?e.length!==t.length?!1:ze(e[Symbol.iterator](),t[Symbol.iterator]()):e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set?e.size!==t.size?!1:ze(e.entries(),t.entries()):ft(e)&&ft(t)?ze(Object.entries(e)[Symbol.iterator](),Object.entries(t)[Symbol.iterator]()):!1}function ze(e,t){do{let n=e.next(),r=t.next();if(n.done&&r.done)return!0;if(n.done||r.done||!Object.is(n.value,r.value))return!1}while(!0)}function ft(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}var kr=Object.defineProperty,Tr=(e,t,n)=>t in e?kr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,mt=(e,t,n)=>(Tr(e,typeof t!="symbol"?t+"":t,n),n),Pr=(e=>(e[e.Push=0]="Push",e[e.Pop=1]="Pop",e))(Pr||{});let Nr={0(e,t){let n=t.id,r=e.stack,o=e.stack.indexOf(n);if(o!==-1){let i=e.stack.slice();return i.splice(o,1),i.push(n),r=i,{...e,stack:r}}return{...e,stack:[...e.stack,n]}},1(e,t){let n=t.id,r=e.stack.indexOf(n);if(r===-1)return e;let o=e.stack.slice();return o.splice(r,1),{...e,stack:o}}},Ar=class Mt extends Cr{constructor(){super(...arguments),mt(this,"actions",{push:t=>this.send({type:0,id:t}),pop:t=>this.send({type:1,id:t})}),mt(this,"selectors",{isTop:(t,n)=>t.stack[t.stack.length-1]===n,inStack:(t,n)=>t.stack.includes(n)})}static new(){return new Mt({stack:[]})}reduce(t,n){return W(n.type,Nr,t,n)}};const Dt=new Rt(()=>Ar.new());function _t(e,t,n=Lt){return $n.useSyncExternalStoreWithSelector($(r=>e.subscribe(Fr,r)),$(()=>e.state),$(()=>e.state),$(t),n)}function Fr(e){return e}function ve(e,t){let n=a.useId(),r=Dt.get(t),[o,i]=_t(r,a.useCallback(u=>[r.selectors.isTop(u,n),r.selectors.inStack(u,n)],[r,n]));return k(()=>{if(e)return r.actions.push(n),()=>r.actions.pop(n)},[r,e,n]),e?i?o:!0:!1}let Ke=new Map,fe=new Map;function pt(e){var t;let n=(t=fe.get(e))!=null?t:0;return fe.set(e,n+1),n!==0?()=>ht(e):(Ke.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),e.setAttribute("aria-hidden","true"),e.inert=!0,()=>ht(e))}function ht(e){var t;let n=(t=fe.get(e))!=null?t:1;if(n===1?fe.delete(e):fe.set(e,n-1),n!==1)return;let r=Ke.get(e);r&&(r["aria-hidden"]===null?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",r["aria-hidden"]),e.inert=r.inert,Ke.delete(e))}function Rr(e,{allowed:t,disallowed:n}={}){let r=ve(e,"inert-others");k(()=>{var o,i;if(!r)return;let u=H();for(let l of(o=n==null?void 0:n())!=null?o:[])l&&u.add(pt(l));let s=(i=t==null?void 0:t())!=null?i:[];for(let l of s){if(!l)continue;let d=pe(l);if(!d)continue;let f=l.parentElement;for(;f&&f!==d.body;){for(let p of f.children)s.some(m=>p.contains(m))||u.add(pt(p));f=f.parentElement}}return u.dispose},[r,t,n])}function Or(e,t,n){let r=te(o=>{let i=o.getBoundingClientRect();i.x===0&&i.y===0&&i.width===0&&i.height===0&&n()});a.useEffect(()=>{if(!e)return;let o=t===null?null:J(t)?t:t.current;if(!o)return;let i=H();if(typeof ResizeObserver<"u"){let u=new ResizeObserver(()=>r.current(o));u.observe(o),i.add(()=>u.disconnect())}if(typeof IntersectionObserver<"u"){let u=new IntersectionObserver(()=>r.current(o));u.observe(o),i.add(()=>u.disconnect())}return()=>i.dispose()},[t,r,e])}let ke=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","details>summary","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(","),Lr=["[data-autofocus]"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var I=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e[e.AutoFocus=64]="AutoFocus",e))(I||{}),Xe=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(Xe||{}),Mr=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(Mr||{});function Dr(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(ke)).sort((t,n)=>Math.sign((t.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}function _r(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(Lr)).sort((t,n)=>Math.sign((t.tabIndex||Number.MAX_SAFE_INTEGER)-(n.tabIndex||Number.MAX_SAFE_INTEGER)))}var It=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(It||{});function Ir(e,t=0){var n;return e===((n=pe(e))==null?void 0:n.body)?!1:W(t,{0(){return e.matches(ke)},1(){let r=e;for(;r!==null;){if(r.matches(ke))return!0;r=r.parentElement}return!1}})}var Br=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(Br||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function B(e){e==null||e.focus({preventScroll:!0})}let Wr=["textarea","input"].join(",");function Hr(e){var t,n;return(n=(t=e==null?void 0:e.matches)==null?void 0:t.call(e,Wr))!=null?n:!1}function Ur(e,t=n=>n){return e.slice().sort((n,r)=>{let o=t(n),i=t(r);if(o===null||i===null)return 0;let u=o.compareDocumentPosition(i);return u&Node.DOCUMENT_POSITION_FOLLOWING?-1:u&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function me(e,t,{sorted:n=!0,relativeTo:r=null,skipElements:o=[]}={}){let i=Array.isArray(e)?e.length>0?Ye(e[0]):document:Ye(e),u=Array.isArray(e)?n?Ur(e):e:t&64?_r(e):Dr(e);o.length>0&&u.length>1&&(u=u.filter(v=>!o.some(g=>g!=null&&"current"in g?(g==null?void 0:g.current)===v:g===v))),r=r??(i==null?void 0:i.activeElement);let s=(()=>{if(t&5)return 1;if(t&10)return-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),l=(()=>{if(t&1)return 0;if(t&2)return Math.max(0,u.indexOf(r))-1;if(t&4)return Math.max(0,u.indexOf(r))+1;if(t&8)return u.length-1;throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),d=t&32?{preventScroll:!0}:{},f=0,p=u.length,m;do{if(f>=p||f+p<=0)return 0;let v=l+f;if(t&16)v=(v+p)%p;else{if(v<0)return 3;if(v>=p)return 1}m=u[v],m==null||m.focus(d),f+=s}while(m!==Tt(m));return t&6&&Hr(m)&&m.select(),2}function Bt(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function Gr(){return/Android/gi.test(window.navigator.userAgent)}function vt(){return Bt()||Gr()}function je(e,t,n,r){let o=te(n);a.useEffect(()=>{if(!e)return;function i(u){o.current(u)}return document.addEventListener(t,i,r),()=>document.removeEventListener(t,i,r)},[e,t,r])}function Wt(e,t,n,r){let o=te(n);a.useEffect(()=>{if(!e)return;function i(u){o.current(u)}return window.addEventListener(t,i,r),()=>window.removeEventListener(t,i,r)},[e,t,r])}const gt=30;function zr(e,t,n){let r=te(n),o=a.useCallback(function(s,l){if(s.defaultPrevented)return;let d=l(s);if(d===null||!d.getRootNode().contains(d)||!d.isConnected)return;let f=(function p(m){return typeof m=="function"?p(m()):Array.isArray(m)||m instanceof Set?m:[m]})(t);for(let p of f)if(p!==null&&(p.contains(d)||s.composed&&s.composedPath().includes(p)))return;return!Ir(d,It.Loose)&&d.tabIndex!==-1&&s.preventDefault(),r.current(s,d)},[r,t]),i=a.useRef(null);je(e,"pointerdown",s=>{var l,d;vt()||(i.current=((d=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:d[0])||s.target)},!0),je(e,"pointerup",s=>{if(vt()||!i.current)return;let l=i.current;return i.current=null,o(s,()=>l)},!0);let u=a.useRef({x:0,y:0});je(e,"touchstart",s=>{u.current.x=s.touches[0].clientX,u.current.y=s.touches[0].clientY},!0),je(e,"touchend",s=>{let l={x:s.changedTouches[0].clientX,y:s.changedTouches[0].clientY};if(!(Math.abs(l.x-u.current.x)>=gt||Math.abs(l.y-u.current.y)>=gt))return o(s,()=>Y(s.target)?s.target:null)},!0),Wt(e,"blur",s=>o(s,()=>mr(window.document.activeElement)?window.document.activeElement:null),!0)}function et(...e){return a.useMemo(()=>pe(...e),[...e])}function Ht(e,t,n,r){let o=te(n);a.useEffect(()=>{e=e??window;function i(u){o.current(u)}return e.addEventListener(t,i,r),()=>e.removeEventListener(t,i,r)},[e,t,r])}function Yr(e){return a.useSyncExternalStore(e.subscribe,e.getSnapshot,e.getSnapshot)}function qr(e,t){let n=e(),r=new Set;return{getSnapshot(){return n},subscribe(o){return r.add(o),()=>r.delete(o)},dispatch(o,...i){let u=t[o].call(n,...i);u&&(n=u,r.forEach(s=>s()))}}}function Vr(){let e;return{before({doc:t}){var n;let r=t.documentElement,o=(n=t.defaultView)!=null?n:window;e=Math.max(0,o.innerWidth-r.clientWidth)},after({doc:t,d:n}){let r=t.documentElement,o=Math.max(0,r.clientWidth-r.offsetWidth),i=Math.max(0,e-o);n.style(r,"paddingRight",`${i}px`)}}}function Kr(){return Bt()?{before({doc:e,d:t,meta:n}){function r(o){for(let i of n().containers)for(let u of i())if(u.contains(o))return!0;return!1}t.microTask(()=>{var o;if(window.getComputedStyle(e.documentElement).scrollBehavior!=="auto"){let s=H();s.style(e.documentElement,"scrollBehavior","auto"),t.add(()=>t.microTask(()=>s.dispose()))}let i=(o=window.scrollY)!=null?o:window.pageYOffset,u=null;t.addEventListener(e,"click",s=>{if(Y(s.target))try{let l=s.target.closest("a");if(!l)return;let{hash:d}=new URL(l.href),f=e.querySelector(d);Y(f)&&!r(f)&&(u=f)}catch{}},!0),t.group(s=>{t.addEventListener(e,"touchstart",l=>{if(s.dispose(),Y(l.target)&&fr(l.target))if(r(l.target)){let d=l.target;for(;d.parentElement&&r(d.parentElement);)d=d.parentElement;s.style(d,"overscrollBehavior","contain")}else s.style(l.target,"touchAction","none")})}),t.addEventListener(e,"touchmove",s=>{if(Y(s.target)){if(pr(s.target))return;if(r(s.target)){let l=s.target;for(;l.parentElement&&l.dataset.headlessuiPortal!==""&&!(l.scrollHeight>l.clientHeight||l.scrollWidth>l.clientWidth);)l=l.parentElement;l.dataset.headlessuiPortal===""&&s.preventDefault()}else s.preventDefault()}},{passive:!1}),t.add(()=>{var s;let l=(s=window.scrollY)!=null?s:window.pageYOffset;i!==l&&window.scrollTo(0,i),u&&u.isConnected&&(u.scrollIntoView({block:"nearest"}),u=null)})})}}:{}}function Xr(){return{before({doc:e,d:t}){t.style(e.documentElement,"overflow","hidden")}}}function yt(e){let t={};for(let n of e)Object.assign(t,n(t));return t}let Z=qr(()=>new Map,{PUSH(e,t){var n;let r=(n=this.get(e))!=null?n:{doc:e,count:0,d:H(),meta:new Set,computedMeta:{}};return r.count++,r.meta.add(t),r.computedMeta=yt(r.meta),this.set(e,r),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t),n.computedMeta=yt(n.meta)),this},SCROLL_PREVENT(e){let t={doc:e.doc,d:e.d,meta(){return e.computedMeta}},n=[Kr(),Vr(),Xr()];n.forEach(({before:r})=>r==null?void 0:r(t)),n.forEach(({after:r})=>r==null?void 0:r(t))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});Z.subscribe(()=>{let e=Z.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let r=t.get(n.doc)==="hidden",o=n.count!==0;(o&&!r||!o&&r)&&Z.dispatch(n.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",n),n.count===0&&Z.dispatch("TEARDOWN",n)}});function Qr(e,t,n=()=>({containers:[]})){let r=Yr(Z),o=t?r.get(t):void 0,i=o?o.count>0:!1;return k(()=>{if(!(!t||!e))return Z.dispatch("PUSH",t,n),()=>Z.dispatch("POP",t,n)},[e,t]),i}function Zr(e,t,n=()=>[document.body]){let r=ve(e,"scroll-lock");Qr(r,t,o=>{var i;return{containers:[...(i=o.containers)!=null?i:[],n]}})}function Jr(e=0){let[t,n]=a.useState(e),r=a.useCallback(l=>n(l),[]),o=a.useCallback(l=>n(d=>d|l),[]),i=a.useCallback(l=>(t&l)===l,[t]),u=a.useCallback(l=>n(d=>d&~l),[]),s=a.useCallback(l=>n(d=>d^l),[]);return{flags:t,setFlag:r,addFlag:o,hasFlag:i,removeFlag:u,toggleFlag:s}}var eo={},bt,xt;typeof process<"u"&&typeof globalThis<"u"&&typeof Element<"u"&&((bt=process==null?void 0:eo)==null?void 0:bt.NODE_ENV)==="test"&&typeof((xt=Element==null?void 0:Element.prototype)==null?void 0:xt.getAnimations)>"u"&&(Element.prototype.getAnimations=function(){return console.warn(["Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.","Please install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.","","Example usage:","```js","import { mockAnimationsApi } from 'jsdom-testing-mocks'","mockAnimationsApi()","```"].join(`
|
|
5
|
-
`)),[]});var to=(e=>(e[e.None=0]="None",e[e.Closed=1]="Closed",e[e.Enter=2]="Enter",e[e.Leave=4]="Leave",e))(to||{});function no(e){let t={};for(let n in e)e[n]===!0&&(t[`data-${n}`]="");return t}function ro(e,t,n,r){let[o,i]=a.useState(n),{hasFlag:u,addFlag:s,removeFlag:l}=Jr(e&&o?3:0),d=a.useRef(!1),f=a.useRef(!1),p=Pe();return k(()=>{var m;if(e){if(n&&i(!0),!t){n&&s(3);return}return(m=r==null?void 0:r.start)==null||m.call(r,n),oo(t,{inFlight:d,prepare(){f.current?f.current=!1:f.current=d.current,d.current=!0,!f.current&&(n?(s(3),l(4)):(s(4),l(2)))},run(){f.current?n?(l(3),s(4)):(l(4),s(3)):n?l(1):s(1)},done(){var v;f.current&&lo(t)||(d.current=!1,l(7),n||i(!1),(v=r==null?void 0:r.end)==null||v.call(r,n))}})}},[e,n,t,p]),e?[o,{closed:u(1),enter:u(2),leave:u(4),transition:u(2)||u(4)}]:[n,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function oo(e,{prepare:t,run:n,done:r,inFlight:o}){let i=H();return so(e,{prepare:t,inFlight:o}),i.nextFrame(()=>{n(),i.requestAnimationFrame(()=>{i.add(io(e,r))})}),i.dispose}function io(e,t){var n,r;let o=H();if(!e)return o.dispose;let i=!1;o.add(()=>{i=!0});let u=(r=(n=e.getAnimations)==null?void 0:n.call(e).filter(s=>s instanceof CSSTransition))!=null?r:[];return u.length===0?(t(),o.dispose):(Promise.allSettled(u.map(s=>s.finished)).then(()=>{i||t()}),o.dispose)}function so(e,{inFlight:t,prepare:n}){if(t!=null&&t.current){n();return}let r=e.style.transition;e.style.transition="none",n(),e.offsetHeight,e.style.transition=r}function lo(e){var t,n;return((n=(t=e.getAnimations)==null?void 0:t.call(e))!=null?n:[]).some(r=>r instanceof CSSTransition&&r.playState!=="finished")}function tt(e,t){let n=a.useRef([]),r=$(e);a.useEffect(()=>{let o=[...n.current];for(let[i,u]of t.entries())if(n.current[i]!==u){let s=r(t,o);return n.current=t,s}},[r,...t])}let Ne=a.createContext(null);Ne.displayName="OpenClosedContext";var O=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(O||{});function Ae(){return a.useContext(Ne)}function ao({value:e,children:t}){return y.createElement(Ne.Provider,{value:e},t)}function uo({children:e}){return y.createElement(Ne.Provider,{value:null},e)}function co(e){function t(){document.readyState!=="loading"&&(e(),document.removeEventListener("DOMContentLoaded",t))}typeof window<"u"&&typeof document<"u"&&(document.addEventListener("DOMContentLoaded",t),t())}let G=[];co(()=>{function e(t){if(!Y(t.target)||t.target===document.body||G[0]===t.target)return;let n=t.target;n=n.closest(ke),G.unshift(n??t.target),G=G.filter(r=>r!=null&&r.isConnected),G.splice(10)}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});function Ut(e){let t=$(e),n=a.useRef(!1);a.useEffect(()=>(n.current=!1,()=>{n.current=!0,Te(()=>{n.current&&t()})}),[t])}let Gt=a.createContext(!1);function fo(){return a.useContext(Gt)}function wt(e){return y.createElement(Gt.Provider,{value:e.force},e.children)}function mo(e){let t=fo(),n=a.useContext(Yt),[r,o]=a.useState(()=>{var i;if(!t&&n!==null)return(i=n.current)!=null?i:null;if(M.isServer)return null;let u=e==null?void 0:e.getElementById("headlessui-portal-root");if(u)return u;if(e===null)return null;let s=e.createElement("div");return s.setAttribute("id","headlessui-portal-root"),e.body.appendChild(s)});return a.useEffect(()=>{r!==null&&(e!=null&&e.body.contains(r)||e==null||e.body.appendChild(r))},[r,e]),a.useEffect(()=>{t||n!==null&&o(n.current)},[n,o,t]),r}let zt=a.Fragment,po=T(function(e,t){let{ownerDocument:n=null,...r}=e,o=a.useRef(null),i=D(hr(m=>{o.current=m}),t),u=et(o.current),s=n??u,l=mo(s),d=a.useContext(Qe),f=Pe(),p=F();return Ut(()=>{var m;l&&l.childNodes.length<=0&&((m=l.parentElement)==null||m.removeChild(l))}),l?cn.createPortal(y.createElement("div",{"data-headlessui-portal":"",ref:m=>{f.dispose(),d&&m&&f.add(d.register(m))}},p({ourProps:{ref:i},theirProps:r,slot:{},defaultTag:zt,name:"Portal"})),l):null});function ho(e,t){let n=D(t),{enabled:r=!0,ownerDocument:o,...i}=e,u=F();return r?y.createElement(po,{...i,ownerDocument:o,ref:n}):u({ourProps:{ref:n},theirProps:i,slot:{},defaultTag:zt,name:"Portal"})}let vo=a.Fragment,Yt=a.createContext(null);function go(e,t){let{target:n,...r}=e,o={ref:D(t)},i=F();return y.createElement(Yt.Provider,{value:n},i({ourProps:o,theirProps:r,defaultTag:vo,name:"Popover.Group"}))}let Qe=a.createContext(null);function yo(){let e=a.useContext(Qe),t=a.useRef([]),n=$(i=>(t.current.push(i),e&&e.register(i),()=>r(i))),r=$(i=>{let u=t.current.indexOf(i);u!==-1&&t.current.splice(u,1),e&&e.unregister(i)}),o=a.useMemo(()=>({register:n,unregister:r,portals:t}),[n,r,t]);return[t,a.useMemo(()=>function({children:i}){return y.createElement(Qe.Provider,{value:o},i)},[o])]}let bo=T(ho),qt=T(go),xo=Object.assign(bo,{Group:qt});function wo(e,t=typeof document<"u"?document.defaultView:null,n){let r=ve(e,"escape");Ht(t,"keydown",o=>{r&&(o.defaultPrevented||o.key===Ft.Escape&&n(o))})}function Eo(){var e;let[t]=a.useState(()=>typeof window<"u"&&typeof window.matchMedia=="function"?window.matchMedia("(pointer: coarse)"):null),[n,r]=a.useState((e=t==null?void 0:t.matches)!=null?e:!1);return k(()=>{if(!t)return;function o(i){r(i.matches)}return t.addEventListener("change",o),()=>t.removeEventListener("change",o)},[t]),n}function $o({defaultContainers:e=[],portals:t,mainTreeNode:n}={}){let r=$(()=>{var o,i;let u=pe(n),s=[];for(let l of e)l!==null&&(q(l)?s.push(l):"current"in l&&q(l.current)&&s.push(l.current));if(t!=null&&t.current)for(let l of t.current)s.push(l);for(let l of(o=u==null?void 0:u.querySelectorAll("html > *, body > *"))!=null?o:[])l!==document.body&&l!==document.head&&q(l)&&l.id!=="headlessui-portal-root"&&(n&&(l.contains(n)||l.contains((i=n==null?void 0:n.getRootNode())==null?void 0:i.host))||s.some(d=>l.contains(d))||s.push(l));return s});return{resolveContainers:r,contains:$(o=>r().some(i=>i.contains(o)))}}let Vt=a.createContext(null);function Et({children:e,node:t}){let[n,r]=a.useState(null),o=Kt(t??n);return y.createElement(Vt.Provider,{value:o},e,o===null&&y.createElement(Ve,{features:Ce.Hidden,ref:i=>{var u,s;if(i){for(let l of(s=(u=pe(i))==null?void 0:u.querySelectorAll("html > *, body > *"))!=null?s:[])if(l!==document.body&&l!==document.head&&q(l)&&l!=null&&l.contains(i)){r(l);break}}}}))}function Kt(e=null){var t;return(t=a.useContext(Vt))!=null?t:e}function jo(){let e=typeof document>"u";return"useSyncExternalStore"in lt?(t=>t.useSyncExternalStore)(lt)(()=>()=>{},()=>!1,()=>!e):!1}function Fe(){let e=jo(),[t,n]=a.useState(M.isHandoffComplete);return t&&M.isHandoffComplete===!1&&n(!1),a.useEffect(()=>{t!==!0&&n(!0)},[t]),a.useEffect(()=>M.handoff(),[]),e?!1:t}function nt(){let e=a.useRef(!1);return k(()=>(e.current=!0,()=>{e.current=!1}),[]),e}var ce=(e=>(e[e.Forwards=0]="Forwards",e[e.Backwards=1]="Backwards",e))(ce||{});function So(){let e=a.useRef(0);return Wt(!0,"keydown",t=>{t.key==="Tab"&&(e.current=t.shiftKey?1:0)},!0),e}function Xt(e){if(!e)return new Set;if(typeof e=="function")return new Set(e());let t=new Set;for(let n of e.current)q(n.current)&&t.add(n.current);return t}let Co="div";var Q=(e=>(e[e.None=0]="None",e[e.InitialFocus=1]="InitialFocus",e[e.TabLock=2]="TabLock",e[e.FocusLock=4]="FocusLock",e[e.RestoreFocus=8]="RestoreFocus",e[e.AutoFocus=16]="AutoFocus",e))(Q||{});function ko(e,t){let n=a.useRef(null),r=D(n,t),{initialFocus:o,initialFocusFallback:i,containers:u,features:s=15,...l}=e;Fe()||(s=0);let d=et(n.current);Ao(s,{ownerDocument:d});let f=Fo(s,{ownerDocument:d,container:n,initialFocus:o,initialFocusFallback:i});Ro(s,{ownerDocument:d,container:n,containers:u,previousActiveElement:f});let p=So(),m=$(j=>{if(!J(n.current))return;let h=n.current;(w=>w())(()=>{W(p.current,{[ce.Forwards]:()=>{me(h,I.First,{skipElements:[j.relatedTarget,i]})},[ce.Backwards]:()=>{me(h,I.Last,{skipElements:[j.relatedTarget,i]})}})})}),v=ve(!!(s&2),"focus-trap#tab-lock"),g=Pe(),x=a.useRef(!1),b={ref:r,onKeyDown(j){j.key=="Tab"&&(x.current=!0,g.requestAnimationFrame(()=>{x.current=!1}))},onBlur(j){if(!(s&4))return;let h=Xt(u);J(n.current)&&h.add(n.current);let w=j.relatedTarget;Y(w)&&w.dataset.headlessuiFocusGuard!=="true"&&(Qt(h,w)||(x.current?me(n.current,W(p.current,{[ce.Forwards]:()=>I.Next,[ce.Backwards]:()=>I.Previous})|I.WrapAround,{relativeTo:j.target}):Y(j.target)&&B(j.target)))}},S=F();return y.createElement(y.Fragment,null,v&&y.createElement(Ve,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:m,features:Ce.Focusable}),S({ourProps:b,theirProps:l,defaultTag:Co,name:"FocusTrap"}),v&&y.createElement(Ve,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:m,features:Ce.Focusable}))}let To=T(ko),Po=Object.assign(To,{features:Q});function No(e=!0){let t=a.useRef(G.slice());return tt(([n],[r])=>{r===!0&&n===!1&&Te(()=>{t.current.splice(0)}),r===!1&&n===!0&&(t.current=G.slice())},[e,G,t]),$(()=>{var n;return(n=t.current.find(r=>r!=null&&r.isConnected))!=null?n:null})}function Ao(e,{ownerDocument:t}){let n=!!(e&8),r=No(n);tt(()=>{n||tr(t==null?void 0:t.body)&&B(r())},[n]),Ut(()=>{n&&B(r())})}function Fo(e,{ownerDocument:t,container:n,initialFocus:r,initialFocusFallback:o}){let i=a.useRef(null),u=ve(!!(e&1),"focus-trap#initial-focus"),s=nt();return tt(()=>{if(e===0)return;if(!u){o!=null&&o.current&&B(o.current);return}let l=n.current;l&&Te(()=>{if(!s.current)return;let d=t==null?void 0:t.activeElement;if(r!=null&&r.current){if((r==null?void 0:r.current)===d){i.current=d;return}}else if(l.contains(d)){i.current=d;return}if(r!=null&&r.current)B(r.current);else{if(e&16){if(me(l,I.First|I.AutoFocus)!==Xe.Error)return}else if(me(l,I.First)!==Xe.Error)return;if(o!=null&&o.current&&(B(o.current),(t==null?void 0:t.activeElement)===o.current))return;console.warn("There are no focusable elements inside the <FocusTrap />")}i.current=t==null?void 0:t.activeElement})},[o,u,e]),i}function Ro(e,{ownerDocument:t,container:n,containers:r,previousActiveElement:o}){let i=nt(),u=!!(e&4);Ht(t==null?void 0:t.defaultView,"focus",s=>{if(!u||!i.current)return;let l=Xt(r);J(n.current)&&l.add(n.current);let d=o.current;if(!d)return;let f=s.target;J(f)?Qt(l,f)?(o.current=f,B(f)):(s.preventDefault(),s.stopPropagation(),B(d)):B(o.current)},!0)}function Qt(e,t){for(let n of e)if(n.contains(t))return!0;return!1}function Zt(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||!de((t=e.as)!=null?t:en)||y.Children.count(e.children)===1}let Re=a.createContext(null);Re.displayName="TransitionContext";var Oo=(e=>(e.Visible="visible",e.Hidden="hidden",e))(Oo||{});function Lo(){let e=a.useContext(Re);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}function Mo(){let e=a.useContext(Oe);if(e===null)throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");return e}let Oe=a.createContext(null);Oe.displayName="NestingContext";function Le(e){return"children"in e?Le(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t==="visible").length>0}function Jt(e,t){let n=te(e),r=a.useRef([]),o=nt(),i=Pe(),u=$((v,g=z.Hidden)=>{let x=r.current.findIndex(({el:b})=>b===v);x!==-1&&(W(g,{[z.Unmount](){r.current.splice(x,1)},[z.Hidden](){r.current[x].state="hidden"}}),i.microTask(()=>{var b;!Le(r)&&o.current&&((b=n.current)==null||b.call(n))}))}),s=$(v=>{let g=r.current.find(({el:x})=>x===v);return g?g.state!=="visible"&&(g.state="visible"):r.current.push({el:v,state:"visible"}),()=>u(v,z.Unmount)}),l=a.useRef([]),d=a.useRef(Promise.resolve()),f=a.useRef({enter:[],leave:[]}),p=$((v,g,x)=>{l.current.splice(0),t&&(t.chains.current[g]=t.chains.current[g].filter(([b])=>b!==v)),t==null||t.chains.current[g].push([v,new Promise(b=>{l.current.push(b)})]),t==null||t.chains.current[g].push([v,new Promise(b=>{Promise.all(f.current[g].map(([S,j])=>j)).then(()=>b())})]),g==="enter"?d.current=d.current.then(()=>t==null?void 0:t.wait.current).then(()=>x(g)):x(g)}),m=$((v,g,x)=>{Promise.all(f.current[g].splice(0).map(([b,S])=>S)).then(()=>{var b;(b=l.current.shift())==null||b()}).then(()=>x(g))});return a.useMemo(()=>({children:r,register:s,unregister:u,onStart:p,onStop:m,wait:d,chains:f}),[s,u,r,p,m,f,d])}let en=a.Fragment,tn=Se.RenderStrategy;function Do(e,t){var n,r;let{transition:o=!0,beforeEnter:i,afterEnter:u,beforeLeave:s,afterLeave:l,enter:d,enterFrom:f,enterTo:p,entered:m,leave:v,leaveFrom:g,leaveTo:x,...b}=e,[S,j]=a.useState(null),h=a.useRef(null),w=Zt(e),N=D(...w?[h,t,j]:t===null?[]:[t]),_=(n=b.unmount)==null||n?z.Unmount:z.Hidden,{show:P,appear:ge,initial:ye}=Lo(),[C,V]=a.useState(P?"visible":"hidden"),oe=Mo(),{register:R,unregister:K}=oe;k(()=>R(h),[R,h]),k(()=>{if(_===z.Hidden&&h.current){if(P&&C!=="visible"){V("visible");return}return W(C,{hidden:()=>K(h),visible:()=>R(h)})}},[C,h,R,K,P,_]);let ie=Fe();k(()=>{if(w&&ie&&C==="visible"&&h.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[h,C,ie,w]);let De=ye&&!ge,be=ge&&P&&ye,ne=a.useRef(!1),re=Jt(()=>{ne.current||(V("hidden"),K(h))},oe),xe=$(Ie=>{ne.current=!0;let Ee=Ie?"enter":"leave";re.onStart(h,Ee,le=>{le==="enter"?i==null||i():le==="leave"&&(s==null||s())})}),U=$(Ie=>{let Ee=Ie?"enter":"leave";ne.current=!1,re.onStop(h,Ee,le=>{le==="enter"?u==null||u():le==="leave"&&(l==null||l())}),Ee==="leave"&&!Le(re)&&(V("hidden"),K(h))});a.useEffect(()=>{w&&o||(xe(P),U(P))},[P,w,o]);let _e=!(!o||!w||!ie||De),[,E]=ro(_e,S,P,{start:xe,end:U}),we=X({ref:N,className:((r=qe(b.className,be&&d,be&&f,E.enter&&d,E.enter&&E.closed&&f,E.enter&&!E.closed&&p,E.leave&&v,E.leave&&!E.closed&&g,E.leave&&E.closed&&x,!E.transition&&P&&m))==null?void 0:r.trim())||void 0,...no(E)}),se=0;C==="visible"&&(se|=O.Open),C==="hidden"&&(se|=O.Closed),P&&C==="hidden"&&(se|=O.Opening),!P&&C==="visible"&&(se|=O.Closing);let on=F();return y.createElement(Oe.Provider,{value:re},y.createElement(ao,{value:se},on({ourProps:we,theirProps:b,defaultTag:en,features:tn,visible:C==="visible",name:"Transition.Child"})))}function _o(e,t){let{show:n,appear:r=!1,unmount:o=!0,...i}=e,u=a.useRef(null),s=Zt(e),l=D(...s?[u,t]:t===null?[]:[t]);Fe();let d=Ae();if(n===void 0&&d!==null&&(n=(d&O.Open)===O.Open),n===void 0)throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");let[f,p]=a.useState(n?"visible":"hidden"),m=Jt(()=>{n||p("hidden")}),[v,g]=a.useState(!0),x=a.useRef([n]);k(()=>{v!==!1&&x.current[x.current.length-1]!==n&&(x.current.push(n),g(!1))},[x,n]);let b=a.useMemo(()=>({show:n,appear:r,initial:v}),[n,r,v]);k(()=>{n?p("visible"):!Le(m)&&u.current!==null&&p("hidden")},[n,m]);let S={unmount:o},j=$(()=>{var N;v&&g(!1),(N=e.beforeEnter)==null||N.call(e)}),h=$(()=>{var N;v&&g(!1),(N=e.beforeLeave)==null||N.call(e)}),w=F();return y.createElement(Oe.Provider,{value:m},y.createElement(Re.Provider,{value:b},w({ourProps:{...S,as:a.Fragment,children:y.createElement(nn,{ref:l,...S,...i,beforeEnter:j,beforeLeave:h})},theirProps:{},defaultTag:a.Fragment,features:tn,visible:f==="visible",name:"Transition"})))}function Io(e,t){let n=a.useContext(Re)!==null,r=Ae()!==null;return y.createElement(y.Fragment,null,!n&&r?y.createElement(Ze,{ref:t,...e}):y.createElement(nn,{ref:t,...e}))}let Ze=T(_o),nn=T(Do),ee=T(Io),rt=Object.assign(Ze,{Child:ee,Root:Ze});var Bo=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Bo||{}),Wo=(e=>(e[e.SetTitleId=0]="SetTitleId",e))(Wo||{});let Ho={0(e,t){return e.titleId===t.id?e:{...e,titleId:t.id}}},ot=a.createContext(null);ot.displayName="DialogContext";function Me(e){let t=a.useContext(ot);if(t===null){let n=new Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,Me),n}return t}function Uo(e,t){return W(t.type,Ho,e,t)}let $t=T(function(e,t){let n=a.useId(),{id:r=`headlessui-dialog-${n}`,open:o,onClose:i,initialFocus:u,role:s="dialog",autoFocus:l=!0,__demoMode:d=!1,unmount:f=!1,...p}=e,m=a.useRef(!1);s=(function(){return s==="dialog"||s==="alertdialog"?s:(m.current||(m.current=!0,console.warn(`Invalid role [${s}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`)),"dialog")})();let v=Ae();o===void 0&&v!==null&&(o=(v&O.Open)===O.Open);let g=a.useRef(null),x=D(g,t),b=et(g.current),S=o?0:1,[j,h]=a.useReducer(Uo,{titleId:null,descriptionId:null,panelRef:a.createRef()}),w=$(()=>i(!1)),N=$(E=>h({type:0,id:E})),_=Fe()?S===0:!1,[P,ge]=yo(),ye={get current(){var E;return(E=j.panelRef.current)!=null?E:g.current}},C=Kt(),{resolveContainers:V}=$o({mainTreeNode:C,portals:P,defaultContainers:[ye]}),oe=v!==null?(v&O.Closing)===O.Closing:!1;Rr(d||oe?!1:_,{allowed:$(()=>{var E,we;return[(we=(E=g.current)==null?void 0:E.closest("[data-headlessui-portal]"))!=null?we:null]}),disallowed:$(()=>{var E;return[(E=C==null?void 0:C.closest("body > *:not(#headlessui-portal-root)"))!=null?E:null]})});let R=Dt.get(null);k(()=>{if(_)return R.actions.push(r),()=>R.actions.pop(r)},[R,r,_]);let K=_t(R,a.useCallback(E=>R.selectors.isTop(E,r),[R,r]));zr(K,V,E=>{E.preventDefault(),w()}),wo(K,b==null?void 0:b.defaultView,E=>{E.preventDefault(),E.stopPropagation(),document.activeElement&&"blur"in document.activeElement&&typeof document.activeElement.blur=="function"&&document.activeElement.blur(),w()}),Zr(d||oe?!1:_,b,V),Or(_,g,w);let[ie,De]=vr(),be=a.useMemo(()=>[{dialogState:S,close:w,setTitleId:N,unmount:f},j],[S,w,N,f,j]),ne=he({open:S===0}),re={ref:x,id:r,role:s,tabIndex:-1,"aria-modal":d?void 0:S===0?!0:void 0,"aria-labelledby":j.titleId,"aria-describedby":ie,unmount:f},xe=!Eo(),U=Q.None;_&&!d&&(U|=Q.RestoreFocus,U|=Q.TabLock,l&&(U|=Q.AutoFocus),xe&&(U|=Q.InitialFocus));let _e=F();return y.createElement(uo,null,y.createElement(wt,{force:!0},y.createElement(xo,null,y.createElement(ot.Provider,{value:be},y.createElement(qt,{target:g},y.createElement(wt,{force:!1},y.createElement(De,{slot:ne},y.createElement(ge,null,y.createElement(Po,{initialFocus:u,initialFocusFallback:g,containers:V,features:U},y.createElement(Er,{value:w},_e({ourProps:re,theirProps:p,slot:ne,defaultTag:Go,features:zo,visible:S===0,name:"Dialog"})))))))))))}),Go="div",zo=Se.RenderStrategy|Se.Static;function Yo(e,t){let{transition:n=!1,open:r,...o}=e,i=Ae(),u=e.hasOwnProperty("open")||i!==null,s=e.hasOwnProperty("onClose");if(!u&&!s)throw new Error("You have to provide an `open` and an `onClose` prop to the `Dialog` component.");if(!u)throw new Error("You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.");if(!s)throw new Error("You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.");if(!i&&typeof e.open!="boolean")throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${e.open}`);if(typeof e.onClose!="function")throw new Error(`You provided an \`onClose\` prop to the \`Dialog\`, but the value is not a function. Received: ${e.onClose}`);return(r!==void 0||n)&&!o.static?y.createElement(Et,null,y.createElement(rt,{show:r,transition:n,unmount:o.unmount},y.createElement($t,{ref:t,...o}))):y.createElement(Et,null,y.createElement($t,{ref:t,open:r,...o}))}let qo="div";function Vo(e,t){let n=a.useId(),{id:r=`headlessui-dialog-panel-${n}`,transition:o=!1,...i}=e,[{dialogState:u,unmount:s},l]=Me("Dialog.Panel"),d=D(t,l.panelRef),f=he({open:u===0}),p=$(b=>{b.stopPropagation()}),m={ref:d,id:r,onClick:p},v=o?ee:a.Fragment,g=o?{unmount:s}:{},x=F();return y.createElement(v,{...g},x({ourProps:m,theirProps:i,slot:f,defaultTag:qo,name:"Dialog.Panel"}))}let Ko="div";function Xo(e,t){let{transition:n=!1,...r}=e,[{dialogState:o,unmount:i}]=Me("Dialog.Backdrop"),u=he({open:o===0}),s={ref:t,"aria-hidden":!0},l=n?ee:a.Fragment,d=n?{unmount:i}:{},f=F();return y.createElement(l,{...d},f({ourProps:s,theirProps:r,slot:u,defaultTag:Ko,name:"Dialog.Backdrop"}))}let Qo="h2";function Zo(e,t){let n=a.useId(),{id:r=`headlessui-dialog-title-${n}`,...o}=e,[{dialogState:i,setTitleId:u}]=Me("Dialog.Title"),s=D(t);a.useEffect(()=>(u(r),()=>u(null)),[r,u]);let l=he({open:i===0}),d={ref:s,id:r};return F()({ourProps:d,theirProps:o,slot:l,defaultTag:Qo,name:"Dialog.Title"})}let Jo=T(Yo),it=T(Vo);T(Xo);let st=T(Zo),rn=Object.assign(Jo,{Panel:it,Title:st,Description:xr});function ei(){const{isAuthenticated:e}=jn(),[t,n]=a.useState(e),[r,o]=a.useState(!1);a.useEffect(()=>{t&&!e&&o(!0),n(e)},[e,t]),a.useEffect(()=>jt(St.UNAUTHORIZED,()=>{o(!0)}),[]);const i=()=>{window.location.href=`/auth/connect?callbackUrl=${encodeURIComponent(window.location.pathname)}`},u=()=>{o(!1),window.location.href="/"};return c.jsx(rt,{appear:!0,show:r,children:c.jsxs(rn,{as:"div",className:"semiont-modal",onClose:u,children:[c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-150",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:c.jsx("div",{className:"semiont-modal__backdrop"})}),c.jsx("div",{className:"semiont-modal__container",children:c.jsx("div",{className:"semiont-modal__wrapper",children:c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0 scale-95",enterTo:"opacity-100 scale-100",leave:"ease-in duration-150",leaveFrom:"opacity-100 scale-100",leaveTo:"opacity-0 scale-95",children:c.jsxs(it,{className:"semiont-modal__panel semiont-modal__panel--medium",children:[c.jsx("div",{className:"semiont-modal__icon-wrapper",children:c.jsx("div",{className:"semiont-modal__icon",style:{background:"linear-gradient(to bottom right, var(--semiont-color-red-100, #fee2e2), var(--semiont-color-red-300, #fca5a5))"},children:c.jsx("svg",{style:{width:"1.5rem",height:"1.5rem",color:"var(--semiont-color-red-600, #dc2626)"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})})})}),c.jsxs("div",{className:"semiont-modal__content",children:[c.jsx(st,{className:"semiont-modal__title semiont-modal__title--centered",children:"Session Expired"}),c.jsx("p",{className:"semiont-modal__description",children:"Your session has expired for security reasons. Please sign in again to continue working."})]}),c.jsxs("div",{className:"semiont-modal__actions",children:[c.jsx("button",{type:"button",onClick:u,className:"semiont-button--secondary semiont-button--flex",children:"Go to Home"}),c.jsx("button",{type:"button",onClick:i,className:"semiont-button--primary semiont-button--flex",children:"Sign In Again"})]})]})})})})]})})}function ti(){var d;const[e,t]=a.useState(!1),[n,r]=a.useState(""),o=Ct(),{session:i}=Mn();a.useEffect(()=>jt(St.FORBIDDEN,p=>{r(p.detail.message||"You do not have permission to perform this action."),t(!0)}),[]);const u=()=>{t(!1),o.back()},s=()=>{t(!1),o.push("/")},l=()=>{t(!1),window.location.href=`/auth/connect?callbackUrl=${encodeURIComponent(window.location.pathname)}`};return c.jsx(rt,{appear:!0,show:e,children:c.jsxs(rn,{as:"div",className:"semiont-modal",onClose:u,children:[c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-150",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:c.jsx("div",{className:"semiont-modal__backdrop"})}),c.jsx("div",{className:"semiont-modal__container",children:c.jsx("div",{className:"semiont-modal__wrapper",children:c.jsx(ee,{enter:"ease-out duration-200",enterFrom:"opacity-0 scale-95",enterTo:"opacity-100 scale-100",leave:"ease-in duration-150",leaveFrom:"opacity-100 scale-100",leaveTo:"opacity-0 scale-95",children:c.jsxs(it,{className:"semiont-modal__panel semiont-modal__panel--medium",children:[c.jsx("div",{className:"semiont-modal__icon-wrapper",children:c.jsx("div",{className:"semiont-modal__icon",children:c.jsx("svg",{style:{width:"1.5rem",height:"1.5rem",color:"var(--semiont-color-amber-600, #d97706)"},fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:c.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})})})}),c.jsxs("div",{className:"semiont-modal__content",children:[c.jsx(st,{className:"semiont-modal__title semiont-modal__title--centered",children:"Access Denied"}),c.jsx("p",{className:"semiont-modal__description",children:n})]}),c.jsxs("div",{style:{padding:"0.75rem",backgroundColor:"var(--semiont-bg-secondary)",borderRadius:"var(--semiont-radius-md, 0.375rem)",border:"1px solid var(--semiont-border-primary)",fontSize:"var(--semiont-text-sm, 0.875rem)",marginBottom:"1rem"},children:[c.jsx("p",{style:{color:"var(--semiont-text-secondary)",marginBottom:"0.5rem"},children:"This could be because:"}),c.jsxs("ul",{style:{listStyle:"disc",listStylePosition:"inside",color:"var(--semiont-text-tertiary)",display:"flex",flexDirection:"column",gap:"0.25rem"},children:[c.jsx("li",{children:"You don't have the required permissions"}),c.jsx("li",{children:"The resource is restricted to specific users or teams"}),c.jsx("li",{children:"Your account type doesn't include this feature"})]})]}),((d=i==null?void 0:i.user)==null?void 0:d.email)&&c.jsxs("p",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)",marginBottom:"1rem"},children:["Currently signed in as: ",c.jsx("span",{style:{fontWeight:500},children:i.user.email})]}),c.jsxs("div",{className:"semiont-modal__actions",children:[c.jsx("button",{type:"button",onClick:u,className:"semiont-button--primary semiont-button--flex",children:"Go Back"}),c.jsx("button",{type:"button",onClick:s,className:"semiont-button--secondary semiont-button--flex",children:"Go to Home"})]}),c.jsx("div",{className:"semiont-modal__actions",style:{marginTop:"0.5rem",paddingTop:"0.5rem",borderTop:"1px solid var(--semiont-border-primary)"},children:c.jsx("button",{type:"button",onClick:l,className:"semiont-button--secondary semiont-button--flex",style:{fontSize:"var(--semiont-text-sm, 0.875rem)"},children:"Switch Account"})})]})})})})]})})}function ni(){return c.jsxs(c.Fragment,{children:[c.jsx(Sn,{}),c.jsx(ei,{}),c.jsx(ti,{})]})}function pi(){return c.jsxs(Yn,{children:[c.jsx(Cn,{}),c.jsx(ni,{}),c.jsx(dn,{}),c.jsx(Qn,{})]})}export{pi as default};
|
|
6
|
-
//# sourceMappingURL=layout-CDIjxs5a.js.map
|