@semiont/cli 0.4.13 → 0.4.14
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/cli.mjs +9 -9
- package/dist/dashboard/dashboard.css +1 -1
- package/dist/dashboard/dashboard.css.map +2 -2
- package/dist/frontend/dist/assets/CookiePreferences-Cbur0STI.js +2 -0
- package/dist/frontend/dist/assets/CookiePreferences-Cbur0STI.js.map +1 -0
- package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-Ct60nVWs.js → PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js} +2 -2
- package/dist/frontend/dist/assets/{PdfAnnotationCanvas.client-CW6SKH2U-Ct60nVWs.js.map → PdfAnnotationCanvas.client-CW6SKH2U-DIkAGn7X.js.map} +1 -1
- package/dist/frontend/dist/assets/ToolbarPanels-rN1MIRTV.js +2 -0
- package/dist/frontend/dist/assets/ToolbarPanels-rN1MIRTV.js.map +1 -0
- package/dist/frontend/dist/assets/XMarkIcon-6m9KVFaj.js +2 -0
- package/dist/frontend/dist/assets/XMarkIcon-6m9KVFaj.js.map +1 -0
- package/dist/frontend/dist/assets/client-BPbsU2tc.js +2 -0
- package/dist/frontend/dist/assets/{client-DvSa4CTk.js.map → client-BPbsU2tc.js.map} +1 -1
- package/dist/frontend/dist/assets/client-BiL3eI7d.js +2 -0
- package/dist/frontend/dist/assets/{client-B-4-Nmfd.js.map → client-BiL3eI7d.js.map} +1 -1
- package/dist/frontend/dist/assets/client-BnL1es01.js +2 -0
- package/dist/frontend/dist/assets/{client-CTdkaDl6.js.map → client-BnL1es01.js.map} +1 -1
- package/dist/frontend/dist/assets/client-DrQUcCJy.js +2 -0
- package/dist/frontend/dist/assets/{client-rUyzJlA6.js.map → client-DrQUcCJy.js.map} +1 -1
- package/dist/frontend/dist/assets/en-IUV4ZXKH-BY1RKeLS.js +135 -0
- package/dist/frontend/dist/assets/en-IUV4ZXKH-BY1RKeLS.js.map +1 -0
- package/dist/frontend/dist/assets/{index-CwQxZp6g.css → index-CNb3PHS7.css} +1 -1
- package/dist/frontend/dist/assets/{index-dFCLrpeL.js → index-DA31r_0s.js} +3 -3
- package/dist/frontend/dist/assets/index-DA31r_0s.js.map +1 -0
- package/dist/frontend/dist/assets/layout-B8IinUdt.js +2 -0
- package/dist/frontend/dist/assets/layout-B8IinUdt.js.map +1 -0
- package/dist/frontend/dist/assets/layout-BjpW078f.js +2 -0
- package/dist/frontend/dist/assets/layout-BjpW078f.js.map +1 -0
- package/dist/frontend/dist/assets/{layout-CL9MSbhu.js → layout-CDIjxs5a.js} +4 -4
- package/dist/frontend/dist/assets/layout-CDIjxs5a.js.map +1 -0
- package/dist/frontend/dist/assets/layout-DKm9XdRr.js +2 -0
- package/dist/frontend/dist/assets/{layout-CCNyNXfP.js.map → layout-DKm9XdRr.js.map} +1 -1
- package/dist/frontend/dist/assets/{not-found-DE1pkuFl.js → not-found-CwWw1pZc.js} +2 -2
- package/dist/frontend/dist/assets/{not-found-DE1pkuFl.js.map → not-found-CwWw1pZc.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-D5i-uRGy.js → page-1BwlyTUj.js} +2 -2
- package/dist/frontend/dist/assets/{page-D5i-uRGy.js.map → page-1BwlyTUj.js.map} +1 -1
- package/dist/frontend/dist/assets/page-BQ00VxR5.js +2 -0
- package/dist/frontend/dist/assets/page-BQ00VxR5.js.map +1 -0
- package/dist/frontend/dist/assets/page-BmHLf-7O.js +2 -0
- package/dist/frontend/dist/assets/{page-DiKTriTX.js.map → page-BmHLf-7O.js.map} +1 -1
- package/dist/frontend/dist/assets/page-C5bIvv1V.js +2 -0
- package/dist/frontend/dist/assets/{page-BfUI7FZJ.js.map → page-C5bIvv1V.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-B-TRTXbV.js → page-CelRTchO.js} +3 -3
- package/dist/frontend/dist/assets/{page-B-TRTXbV.js.map → page-CelRTchO.js.map} +1 -1
- package/dist/frontend/dist/assets/page-Cf9cnqhC.js +2 -0
- package/dist/frontend/dist/assets/{page-B3h2_PT5.js.map → page-Cf9cnqhC.js.map} +1 -1
- package/dist/frontend/dist/assets/page-CslYhbgz.js +2 -0
- package/dist/frontend/dist/assets/{page-qhHVLOTR.js.map → page-CslYhbgz.js.map} +1 -1
- package/dist/frontend/dist/assets/page-DEjlNEY0.js +2 -0
- package/dist/frontend/dist/assets/{page-Cu2tT5mi.js.map → page-DEjlNEY0.js.map} +1 -1
- package/dist/frontend/dist/assets/page-DLtwpo78.js +2 -0
- package/dist/frontend/dist/assets/{page-C-os3U8h.js.map → page-DLtwpo78.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-DXACCazr.js → page-D_nHe9FT.js} +2 -2
- package/dist/frontend/dist/assets/{page-DXACCazr.js.map → page-D_nHe9FT.js.map} +1 -1
- package/dist/frontend/dist/assets/page-Deep7E5d.js +2 -0
- package/dist/frontend/dist/assets/{page-C_L33_wR.js.map → page-Deep7E5d.js.map} +1 -1
- package/dist/frontend/dist/assets/{page-CUbbBytS.js → page-Dv386AZD.js} +3 -3
- package/dist/frontend/dist/assets/{page-CUbbBytS.js.map → page-Dv386AZD.js.map} +1 -1
- package/dist/frontend/dist/assets/page-E99MPOn5.js +8 -0
- package/dist/frontend/dist/assets/{page-CaVtCo4z.js.map → page-E99MPOn5.js.map} +1 -1
- package/dist/frontend/dist/assets/page-KtkB4tEv.js +2 -0
- package/dist/frontend/dist/assets/{page-C02dLWb8.js.map → page-KtkB4tEv.js.map} +1 -1
- package/dist/frontend/dist/assets/page-ZBwMTeR-.js +2 -0
- package/dist/frontend/dist/assets/page-ZBwMTeR-.js.map +1 -0
- package/dist/frontend/dist/assets/page-Zq6ARIvg.js +2 -0
- package/dist/frontend/dist/assets/{page-CGDUl5-d.js.map → page-Zq6ARIvg.js.map} +1 -1
- package/dist/frontend/dist/assets/page-iSL5E639.js +2 -0
- package/dist/frontend/dist/assets/page-iSL5E639.js.map +1 -0
- package/dist/frontend/dist/assets/page-xdXYx3nl.js +2 -0
- package/dist/frontend/dist/assets/{page-CHq5JMOn.js.map → page-xdXYx3nl.js.map} +1 -1
- package/dist/frontend/dist/assets/{privacy-BMKdYFGC.js → privacy-DO1oxJpM.js} +2 -2
- package/dist/frontend/dist/assets/{privacy-BMKdYFGC.js.map → privacy-DO1oxJpM.js.map} +1 -1
- package/dist/frontend/dist/assets/routing-DMdXWYXo.js +2 -0
- package/dist/frontend/dist/assets/{routing-BPQO9e8a.js.map → routing-DMdXWYXo.js.map} +1 -1
- package/dist/frontend/dist/assets/{routing-BBQqTcTn.js → routing-tJ_HbFRP.js} +2 -2
- package/dist/frontend/dist/assets/{routing-BBQqTcTn.js.map → routing-tJ_HbFRP.js.map} +1 -1
- package/dist/frontend/dist/assets/useAuth-yUx5lBP5.js +2 -0
- package/dist/frontend/dist/assets/useAuth-yUx5lBP5.js.map +1 -0
- package/dist/frontend/dist/index.html +2 -2
- package/dist/frontend/dist/messages/ar.json +28 -6
- package/dist/frontend/dist/messages/bn.json +28 -6
- package/dist/frontend/dist/messages/cs.json +28 -6
- package/dist/frontend/dist/messages/da.json +28 -6
- package/dist/frontend/dist/messages/de.json +28 -6
- package/dist/frontend/dist/messages/el.json +28 -6
- package/dist/frontend/dist/messages/en.json +28 -6
- package/dist/frontend/dist/messages/es.json +28 -6
- package/dist/frontend/dist/messages/fa.json +28 -6
- package/dist/frontend/dist/messages/fi.json +28 -6
- package/dist/frontend/dist/messages/fr.json +28 -6
- package/dist/frontend/dist/messages/he.json +28 -6
- package/dist/frontend/dist/messages/hi.json +28 -6
- package/dist/frontend/dist/messages/id.json +28 -6
- package/dist/frontend/dist/messages/it.json +28 -6
- package/dist/frontend/dist/messages/ja.json +28 -6
- package/dist/frontend/dist/messages/ko.json +28 -6
- package/dist/frontend/dist/messages/ms.json +28 -6
- package/dist/frontend/dist/messages/nl.json +28 -6
- package/dist/frontend/dist/messages/no.json +28 -6
- package/dist/frontend/dist/messages/pl.json +28 -6
- package/dist/frontend/dist/messages/pt.json +28 -6
- package/dist/frontend/dist/messages/ro.json +28 -6
- package/dist/frontend/dist/messages/sv.json +28 -6
- package/dist/frontend/dist/messages/th.json +28 -6
- package/dist/frontend/dist/messages/tr.json +28 -6
- package/dist/frontend/dist/messages/uk.json +28 -6
- package/dist/frontend/dist/messages/vi.json +28 -6
- package/dist/frontend/dist/messages/zh.json +28 -6
- package/dist/frontend/package.json +1 -1
- package/package.json +7 -7
- package/dist/frontend/dist/assets/AuthContext-CqopYuY9.js +0 -2
- package/dist/frontend/dist/assets/AuthContext-CqopYuY9.js.map +0 -1
- package/dist/frontend/dist/assets/CookiePreferences-DIUP_g1S.js +0 -2
- package/dist/frontend/dist/assets/CookiePreferences-DIUP_g1S.js.map +0 -1
- package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js +0 -2
- package/dist/frontend/dist/assets/KnowledgeBaseContext-CgnF8K-_.js.map +0 -1
- package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js +0 -2
- package/dist/frontend/dist/assets/PlusIcon-qGFPUzg0.js.map +0 -1
- package/dist/frontend/dist/assets/ToolbarPanels-CtBfzYcP.js +0 -2
- package/dist/frontend/dist/assets/ToolbarPanels-CtBfzYcP.js.map +0 -1
- package/dist/frontend/dist/assets/client-B-4-Nmfd.js +0 -2
- package/dist/frontend/dist/assets/client-CTdkaDl6.js +0 -2
- package/dist/frontend/dist/assets/client-DvSa4CTk.js +0 -2
- package/dist/frontend/dist/assets/client-rUyzJlA6.js +0 -2
- package/dist/frontend/dist/assets/en-IUV4ZXKH-b_r0oyRV.js +0 -135
- package/dist/frontend/dist/assets/en-IUV4ZXKH-b_r0oyRV.js.map +0 -1
- package/dist/frontend/dist/assets/index-dFCLrpeL.js.map +0 -1
- package/dist/frontend/dist/assets/layout-BwurEG3I.js +0 -2
- package/dist/frontend/dist/assets/layout-BwurEG3I.js.map +0 -1
- package/dist/frontend/dist/assets/layout-CCNyNXfP.js +0 -2
- package/dist/frontend/dist/assets/layout-CHfFscVU.js +0 -2
- package/dist/frontend/dist/assets/layout-CHfFscVU.js.map +0 -1
- package/dist/frontend/dist/assets/layout-CL9MSbhu.js.map +0 -1
- package/dist/frontend/dist/assets/page-B3h2_PT5.js +0 -2
- package/dist/frontend/dist/assets/page-BfUI7FZJ.js +0 -2
- package/dist/frontend/dist/assets/page-C-os3U8h.js +0 -2
- package/dist/frontend/dist/assets/page-C02dLWb8.js +0 -2
- package/dist/frontend/dist/assets/page-CGDUl5-d.js +0 -2
- package/dist/frontend/dist/assets/page-CHq5JMOn.js +0 -2
- package/dist/frontend/dist/assets/page-C_L33_wR.js +0 -2
- package/dist/frontend/dist/assets/page-CaVtCo4z.js +0 -8
- package/dist/frontend/dist/assets/page-CjTcoHSS.js +0 -2
- package/dist/frontend/dist/assets/page-CjTcoHSS.js.map +0 -1
- package/dist/frontend/dist/assets/page-CtRMzwE_.js +0 -2
- package/dist/frontend/dist/assets/page-CtRMzwE_.js.map +0 -1
- package/dist/frontend/dist/assets/page-Cu2tT5mi.js +0 -2
- package/dist/frontend/dist/assets/page-DiKTriTX.js +0 -2
- package/dist/frontend/dist/assets/page-eJup0RrB.js +0 -2
- package/dist/frontend/dist/assets/page-eJup0RrB.js.map +0 -1
- package/dist/frontend/dist/assets/page-qhHVLOTR.js +0 -2
- package/dist/frontend/dist/assets/routing-BPQO9e8a.js +0 -2
- package/dist/frontend/dist/assets/useAuth-B9hvtwrc.js +0 -2
- package/dist/frontend/dist/assets/useAuth-B9hvtwrc.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"./query-ATBhtd3K.js";import{r as s,O as b}from"./vendor-EnoIVk-c.js";import{b as g,L as 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
|
|
@@ -0,0 +1 @@
|
|
|
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]}
|
|
@@ -0,0 +1,2 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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 +1,6 @@
|
|
|
1
|
-
import{j as c,Q as ln,M as an,a as un,b as cn}from"./query-ATBhtd3K.js";import{r as a,R as y,j as dn,t as lt,O as fn}from"./vendor-EnoIVk-c.js";import{g as mn,a8 as pn,ak as hn,al as vn,a9 as gn,am as Be,an as at,ao as ut,ap as yn,aq as bn,ar as xn,as as wn,at as En,au as jn,av as Sn,aw as $n,ax as $t,ay as Ct,az as Cn,aA as kn}from"./en-IUV4ZXKH-b_r0oyRV.js";import{a as Tn,C as Pn,b as Nn,i as An,c as Fn,s as Ue}from"./privacy-BMKdYFGC.js";import{a as kt}from"./routing-BPQO9e8a.js";import{A as Rn,u as On}from"./AuthContext-CqopYuY9.js";import{K as Ln,u as Mn}from"./KnowledgeBaseContext-CgnF8K-_.js";import{u as Dn}from"./useAuth-B9hvtwrc.js";import{u as Tt}from"./i18n-BYxb14hm.js";import"./index-dFCLrpeL.js";function In(){const e=kt(),t=a.useCallback(({url:r,cancelFallback:o})=>{o(),e.push(r)},[e]),n=a.useCallback(({path:r})=>{e.push(r)},[e]);return mn({"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 Bn=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<Bn&&r>0}}class Un{constructor(){this.state$=new pn(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(hn(n=>n[t]),vn())}}function Wn(){const{token:e}=Dn(),t=a.useMemo(()=>new Un,[]);return a.useEffect(()=>{t.setToken(e??null)},[t,e]),gn(t.session$)??t.state}function Hn(){const{i18n:e}=Tt();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 Gn(){return new ln({queryCache:new un({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 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 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 dt({children:e,queryClient:t}){const n=Wn(),r=Hn();return c.jsx(_n,{children:c.jsx(yn,{sessionManager:n,children:c.jsx(bn,{translationManager:r,children:c.jsx(cn,{client:t,children:c.jsx(xn,{children:c.jsx(wn,{children:c.jsx(Tn,{children:c.jsx(En,{children:c.jsxs(jn,{children:[c.jsx(In,{}),e]})})})})})})})})})}function zn({children:e,queryClient:t}){const{activeKnowledgeBase:n}=Mn();return n?c.jsx(Rn,{backendUrl:n.backendUrl,children:c.jsx(dt,{queryClient:t,children:e})},n.id):c.jsx(dt,{queryClient:t,children:e})}function Yn({children:e}){const[t]=a.useState(()=>Gn());return c.jsx(Ln,{children:c.jsx(zn,{queryClient:t,children:e})})}function Vn({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 qn=a.forwardRef(Vn);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}=Tt(),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(Nn()){o(!0);try{const[w,N]=await Promise.all([An(),Fn()]);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(Ue(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(Ue(h)),o(!1)}catch(h){console.error("Failed to save cookie consent:",h)}finally{l(!1)}},x=async()=>{l(!0);try{await Promise.resolve(Ue(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]}))},$=()=>{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 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:S.title}),c.jsx("p",{style:{fontSize:"var(--semiont-text-sm, 0.875rem)",color:"var(--semiont-text-secondary)",marginBottom:"0.25rem"},children:S.description}),c.jsx("p",{style:{fontSize:"var(--semiont-text-xs, 0.75rem)",color:"var(--semiont-text-tertiary)"},children:S.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(qn,{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:Pn.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,We=(e,t,n)=>(Jn(e,typeof t!="symbol"?t+"":t,n),n);let er=class{constructor(){We(this,"current",this.detect()),We(this,"handoffState","pending"),We(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 Pt(e){var t,n;return(n=(t=Ye(e))==null?void 0:t.activeElement)!=null?n:null}function tr(e){return Pt(e)===e}function Te(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function W(){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=W();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(W);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 j=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 Ve(...e){return Array.from(new Set(e.flatMap(t=>typeof t=="string"?t.split(" "):[]))).filter(Boolean).join(" ")}function U(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,U),r}var $e=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))($e||{}),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=Nt(t,e);if(i)return je(l,n,r,u,s);let d=o??0;if(d&2){let{static:f=!1,...p}=l;if(f)return je(p,n,r,u,s)}if(d&1){let{unmount:f=!0,...p}=l;return U(f?0:1,{0(){return null},1(){return je({...p,hidden:!0,style:{display:"none"}},n,r,u,s)}})}return je(l,n,r,u,s)}function je(e,t={},n,r,o){let{as:i=n,children:u,refName:s="ref",...l}=He(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(`
|
|
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
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
3
|
`)].join(`
|
|
4
|
-
`))}else{let m=f.props,v=m==null?void 0:m.className,g=typeof v=="function"?(...$)=>Ve(v(...$),l.className):Ve(v,l.className),x=g?{className:g}:{},b=Nt(f.props,X(He(l,["ref"])));for(let $ in p)$ in b&&delete p[$];return a.cloneElement(f,Object.assign({},b,p,d,{ref:o(lr(f),d.ref)},x))}return a.createElement(i,Object.assign({},He(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 Nt(...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 He(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 qe=T(cr);function dr(e){return typeof e!="object"||e===null?!1:"nodeType"in e}function V(e){return dr(e)&&"tagName"in e}function J(e){return V(e)&&"accessKey"in e}function Y(e){return V(e)&&"tabIndex"in e}function fr(e){return V(e)&&"style"in e}function mr(e){return J(e)&&e.nodeName==="IFRAME"}function pr(e){return J(e)&&e.nodeName==="INPUT"}let At=Symbol();function hr(e,t=!0){return Object.assign(e,{[At]:t})}function D(...e){let t=a.useRef(e);a.useEffect(()=>{t.current=e},[e]);let n=j(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[At]))?void 0:n}let Je=a.createContext(null);Je.displayName="DescriptionContext";function Ft(){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,Ft),t}return e}function vr(){let[e,t]=a.useState([]);return[e.length>0?e.join(" "):void 0,a.useMemo(()=>function(n){let r=j(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=Ft(),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 Rt=(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))(Rt||{});let wr=a.createContext(()=>{});function Er({value:e,children:t}){return y.createElement(wr.Provider,{value:e},t)}let Ot=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 jr=Object.defineProperty,Sr=(e,t,n)=>t in e?jr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$r=(e,t,n)=>(Sr(e,t+"",n),n),Lt=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)},A=(e,t,n)=>(Lt(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)},ft=(e,t,n,r)=>(Lt(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 Ot(()=>new Set)),Ge(this,ue,new Set),$r(this,"disposables",W()),ft(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)){ft(this,L,n);for(let r of A(this,ue)){let o=r.selector(A(this,L));Mt(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 Mt(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()):mt(e)&&mt(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 mt(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,pt=(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 Dt extends Cr{constructor(){super(...arguments),pt(this,"actions",{push:t=>this.send({type:0,id:t}),pop:t=>this.send({type:1,id:t})}),pt(this,"selectors",{isTop:(t,n)=>t.stack[t.stack.length-1]===n,inStack:(t,n)=>t.stack.includes(n)})}static new(){return new Dt({stack:[]})}reduce(t,n){return U(n.type,Nr,t,n)}};const It=new Ot(()=>Ar.new());function _t(e,t,n=Mt){return Sn.useSyncExternalStoreWithSelector(j(r=>e.subscribe(Fr,r)),j(()=>e.state),j(()=>e.state),j(t),n)}function Fr(e){return e}function ve(e,t){let n=a.useId(),r=It.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 ht(e){var t;let n=(t=fe.get(e))!=null?t:0;return fe.set(e,n+1),n!==0?()=>vt(e):(Ke.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),e.setAttribute("aria-hidden","true"),e.inert=!0,()=>vt(e))}function vt(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=W();for(let l of(o=n==null?void 0:n())!=null?o:[])l&&u.add(ht(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(ht(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=W();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 _=(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))(_||{}),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 Ir(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 Bt=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(Bt||{});function _r(e,t=0){var n;return e===((n=pe(e))==null?void 0:n.body)?!1:U(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 Ur=["textarea","input"].join(",");function Wr(e){var t,n;return(n=(t=e==null?void 0:e.matches)==null?void 0:t.call(e,Ur))!=null?n:!1}function Hr(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?Hr(e):e:t&64?Ir(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!==Pt(m));return t&6&&Wr(m)&&m.select(),2}function Ut(){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 gt(){return Ut()||Gr()}function Se(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 yt=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!_r(d,Bt.Loose)&&d.tabIndex!==-1&&s.preventDefault(),r.current(s,d)},[r,t]),i=a.useRef(null);Se(e,"pointerdown",s=>{var l,d;gt()||(i.current=((d=(l=s.composedPath)==null?void 0:l.call(s))==null?void 0:d[0])||s.target)},!0),Se(e,"pointerup",s=>{if(gt()||!i.current)return;let l=i.current;return i.current=null,o(s,()=>l)},!0);let u=a.useRef({x:0,y:0});Se(e,"touchstart",s=>{u.current.x=s.touches[0].clientX,u.current.y=s.touches[0].clientY},!0),Se(e,"touchend",s=>{let l={x:s.changedTouches[0].clientX,y:s.changedTouches[0].clientY};if(!(Math.abs(l.x-u.current.x)>=yt||Math.abs(l.y-u.current.y)>=yt))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 Vr(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 qr(){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 Ut()?{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=W();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 bt(e){let t={};for(let n of e)Object.assign(t,n(t));return t}let Z=Vr(()=>new Map,{PUSH(e,t){var n;let r=(n=this.get(e))!=null?n:{doc:e,count:0,d:W(),meta:new Set,computedMeta:{}};return r.count++,r.meta.add(t),r.computedMeta=bt(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=bt(n.meta)),this},SCROLL_PREVENT(e){let t={doc:e.doc,d:e.d,meta(){return e.computedMeta}},n=[Kr(),qr(),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={},xt,wt;typeof process<"u"&&typeof globalThis<"u"&&typeof Element<"u"&&((xt=process==null?void 0:eo)==null?void 0:xt.NODE_ENV)==="test"&&typeof((wt=Element==null?void 0:Element.prototype)==null?void 0:wt.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=W();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=W();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=j(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 Gt(e){let t=j(e),n=a.useRef(!1);a.useEffect(()=>(n.current=!1,()=>{n.current=!0,Te(()=>{n.current&&t()})}),[t])}let zt=a.createContext(!1);function fo(){return a.useContext(zt)}function Et(e){return y.createElement(zt.Provider,{value:e.force},e.children)}function mo(e){let t=fo(),n=a.useContext(Vt),[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 Yt=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 Gt(()=>{var m;l&&l.childNodes.length<=0&&((m=l.parentElement)==null||m.removeChild(l))}),l?dn.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:Yt,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:Yt,name:"Portal"})}let vo=a.Fragment,Vt=a.createContext(null);function go(e,t){let{target:n,...r}=e,o={ref:D(t)},i=F();return y.createElement(Vt.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=j(i=>(t.current.push(i),e&&e.register(i),()=>r(i))),r=j(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===Rt.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 jo({defaultContainers:e=[],portals:t,mainTreeNode:n}={}){let r=j(()=>{var o,i;let u=pe(n),s=[];for(let l of e)l!==null&&(V(l)?s.push(l):"current"in l&&V(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&&V(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:j(o=>r().some(i=>i.contains(o)))}}let Kt=a.createContext(null);function jt({children:e,node:t}){let[n,r]=a.useState(null),o=Xt(t??n);return y.createElement(Kt.Provider,{value:o},e,o===null&&y.createElement(qe,{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&&V(l)&&l!=null&&l.contains(i)){r(l);break}}}}))}function Xt(e=null){var t;return(t=a.useContext(Kt))!=null?t:e}function So(){let e=typeof document>"u";return"useSyncExternalStore"in lt?(t=>t.useSyncExternalStore)(lt)(()=>()=>{},()=>!1,()=>!e):!1}function Fe(){let e=So(),[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 $o(){let e=a.useRef(0);return Wt(!0,"keydown",t=>{t.key==="Tab"&&(e.current=t.shiftKey?1:0)},!0),e}function Qt(e){if(!e)return new Set;if(typeof e=="function")return new Set(e());let t=new Set;for(let n of e.current)V(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=$o(),m=j(S=>{if(!J(n.current))return;let h=n.current;(w=>w())(()=>{U(p.current,{[ce.Forwards]:()=>{me(h,_.First,{skipElements:[S.relatedTarget,i]})},[ce.Backwards]:()=>{me(h,_.Last,{skipElements:[S.relatedTarget,i]})}})})}),v=ve(!!(s&2),"focus-trap#tab-lock"),g=Pe(),x=a.useRef(!1),b={ref:r,onKeyDown(S){S.key=="Tab"&&(x.current=!0,g.requestAnimationFrame(()=>{x.current=!1}))},onBlur(S){if(!(s&4))return;let h=Qt(u);J(n.current)&&h.add(n.current);let w=S.relatedTarget;Y(w)&&w.dataset.headlessuiFocusGuard!=="true"&&(Zt(h,w)||(x.current?me(n.current,U(p.current,{[ce.Forwards]:()=>_.Next,[ce.Backwards]:()=>_.Previous})|_.WrapAround,{relativeTo:S.target}):Y(S.target)&&B(S.target)))}},$=F();return y.createElement(y.Fragment,null,v&&y.createElement(qe,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:m,features:Ce.Focusable}),$({ourProps:b,theirProps:l,defaultTag:Co,name:"FocusTrap"}),v&&y.createElement(qe,{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]),j(()=>{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]),Gt(()=>{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,_.First|_.AutoFocus)!==Xe.Error)return}else if(me(l,_.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=Qt(r);J(n.current)&&l.add(n.current);let d=o.current;if(!d)return;let f=s.target;J(f)?Zt(l,f)?(o.current=f,B(f)):(s.preventDefault(),s.stopPropagation(),B(d)):B(o.current)},!0)}function Zt(e,t){for(let n of e)if(n.contains(t))return!0;return!1}function Jt(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||!de((t=e.as)!=null?t:tn)||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 en(e,t){let n=te(e),r=a.useRef([]),o=nt(),i=Pe(),u=j((v,g=z.Hidden)=>{let x=r.current.findIndex(({el:b})=>b===v);x!==-1&&(U(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=j(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=j((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])=>S)).then(()=>b())})]),g==="enter"?d.current=d.current.then(()=>t==null?void 0:t.wait.current).then(()=>x(g)):x(g)}),m=j((v,g,x)=>{Promise.all(f.current[g].splice(0).map(([b,$])=>$)).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 tn=a.Fragment,nn=$e.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]=a.useState(null),h=a.useRef(null),w=Jt(e),N=D(...w?[h,t,S]:t===null?[]:[t]),I=(n=b.unmount)==null||n?z.Unmount:z.Hidden,{show:P,appear:ge,initial:ye}=Lo(),[C,q]=a.useState(P?"visible":"hidden"),oe=Mo(),{register:R,unregister:K}=oe;k(()=>R(h),[R,h]),k(()=>{if(I===z.Hidden&&h.current){if(P&&C!=="visible"){q("visible");return}return U(C,{hidden:()=>K(h),visible:()=>R(h)})}},[C,h,R,K,P,I]);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=en(()=>{ne.current||(q("hidden"),K(h))},oe),xe=j(_e=>{ne.current=!0;let Ee=_e?"enter":"leave";re.onStart(h,Ee,le=>{le==="enter"?i==null||i():le==="leave"&&(s==null||s())})}),H=j(_e=>{let Ee=_e?"enter":"leave";ne.current=!1,re.onStop(h,Ee,le=>{le==="enter"?u==null||u():le==="leave"&&(l==null||l())}),Ee==="leave"&&!Le(re)&&(q("hidden"),K(h))});a.useEffect(()=>{w&&o||(xe(P),H(P))},[P,w,o]);let Ie=!(!o||!w||!ie||De),[,E]=ro(Ie,$,P,{start:xe,end:H}),we=X({ref:N,className:((r=Ve(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 sn=F();return y.createElement(Oe.Provider,{value:re},y.createElement(ao,{value:se},sn({ourProps:we,theirProps:b,defaultTag:tn,features:nn,visible:C==="visible",name:"Transition.Child"})))}function Io(e,t){let{show:n,appear:r=!1,unmount:o=!0,...i}=e,u=a.useRef(null),s=Jt(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=en(()=>{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 $={unmount:o},S=j(()=>{var N;v&&g(!1),(N=e.beforeEnter)==null||N.call(e)}),h=j(()=>{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:{...$,as:a.Fragment,children:y.createElement(rn,{ref:l,...$,...i,beforeEnter:S,beforeLeave:h})},theirProps:{},defaultTag:a.Fragment,features:nn,visible:f==="visible",name:"Transition"})))}function _o(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(rn,{ref:t,...e}))}let Ze=T(Io),rn=T(Do),ee=T(_o),rt=Object.assign(Ze,{Child:ee,Root:Ze});var Bo=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(Bo||{}),Uo=(e=>(e[e.SetTitleId=0]="SetTitleId",e))(Uo||{});let Wo={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 Ho(e,t){return U(t.type,Wo,e,t)}let St=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),$=o?0:1,[S,h]=a.useReducer(Ho,{titleId:null,descriptionId:null,panelRef:a.createRef()}),w=j(()=>i(!1)),N=j(E=>h({type:0,id:E})),I=Fe()?$===0:!1,[P,ge]=yo(),ye={get current(){var E;return(E=S.panelRef.current)!=null?E:g.current}},C=Xt(),{resolveContainers:q}=jo({mainTreeNode:C,portals:P,defaultContainers:[ye]}),oe=v!==null?(v&O.Closing)===O.Closing:!1;Rr(d||oe?!1:I,{allowed:j(()=>{var E,we;return[(we=(E=g.current)==null?void 0:E.closest("[data-headlessui-portal]"))!=null?we:null]}),disallowed:j(()=>{var E;return[(E=C==null?void 0:C.closest("body > *:not(#headlessui-portal-root)"))!=null?E:null]})});let R=It.get(null);k(()=>{if(I)return R.actions.push(r),()=>R.actions.pop(r)},[R,r,I]);let K=_t(R,a.useCallback(E=>R.selectors.isTop(E,r),[R,r]));zr(K,q,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:I,b,q),Or(I,g,w);let[ie,De]=vr(),be=a.useMemo(()=>[{dialogState:$,close:w,setTitleId:N,unmount:f},S],[$,w,N,f,S]),ne=he({open:$===0}),re={ref:x,id:r,role:s,tabIndex:-1,"aria-modal":d?void 0:$===0?!0:void 0,"aria-labelledby":S.titleId,"aria-describedby":ie,unmount:f},xe=!Eo(),H=Q.None;I&&!d&&(H|=Q.RestoreFocus,H|=Q.TabLock,l&&(H|=Q.AutoFocus),xe&&(H|=Q.InitialFocus));let Ie=F();return y.createElement(uo,null,y.createElement(Et,{force:!0},y.createElement(xo,null,y.createElement(ot.Provider,{value:be},y.createElement(qt,{target:g},y.createElement(Et,{force:!1},y.createElement(De,{slot:ne},y.createElement(ge,null,y.createElement(Po,{initialFocus:u,initialFocusFallback:g,containers:q,features:H},y.createElement(Er,{value:w},Ie({ourProps:re,theirProps:p,slot:ne,defaultTag:Go,features:zo,visible:$===0,name:"Dialog"})))))))))))}),Go="div",zo=$e.RenderStrategy|$e.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(jt,null,y.createElement(rt,{show:r,transition:n,unmount:o.unmount},y.createElement(St,{ref:t,...o}))):y.createElement(jt,null,y.createElement(St,{ref:t,open:r,...o}))}let Vo="div";function qo(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=j(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:Vo,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(qo);T(Xo);let st=T(Zo),on=Object.assign(Jo,{Panel:it,Title:st,Description:xr});function ei(){const{isAuthenticated:e}=$n(),[t,n]=a.useState(e),[r,o]=a.useState(!1);a.useEffect(()=>{t&&!e&&o(!0),n(e)},[e,t]),a.useEffect(()=>$t(Ct.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(on,{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=kt(),{session:i}=On();a.useEffect(()=>$t(Ct.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(on,{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(Cn,{}),c.jsx(ei,{}),c.jsx(ti,{})]})}function vi(){return c.jsxs(Yn,{children:[c.jsx(kn,{}),c.jsx(ni,{}),c.jsx(fn,{}),c.jsx(Qn,{})]})}export{vi as default};
|
|
6
|
-
//# sourceMappingURL=layout-
|
|
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
|