{"version":3,"file":"js/chunk.4153.f0d1379d.js","mappings":"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","sources":["webpack://@affine/web/../core/src/components/affine/awareness/index.tsx","webpack://@affine/web/../core/src/modules/explorer/views/sections/tags/empty.tsx","webpack://@affine/web/../core/src/modules/explorer/views/sections/tags/index.tsx","webpack://@affine/web/../core/src/modules/explorer/views/sections/tags/styles.css.ts","webpack://@affine/web/../core/src/components/root-app-sidebar/import-page.tsx","webpack://@affine/web/../core/src/components/root-app-sidebar/index.css.ts","webpack://@affine/web/../core/src/components/root-app-sidebar/journal-button.tsx","webpack://@affine/web/../core/src/components/root-app-sidebar/trash-button.tsx","webpack://@affine/web/../core/src/components/root-app-sidebar/unknow-user.tsx","webpack://@affine/web/../core/src/components/root-app-sidebar/user-info.tsx","webpack://@affine/web/../core/src/components/root-app-sidebar/index.tsx","webpack://@affine/web/../core/src/components/workspace-upgrade/upgrade-icon.tsx","webpack://@affine/web/../core/src/components/workspace-upgrade/upgrade.tsx","webpack://@affine/web/../core/src/components/workspace-upgrade/upgrade.css.ts","webpack://@affine/web/../core/src/modules/app-tabs-header/services/app-tabs-header-service.ts","webpack://@affine/web/../core/src/components/pure/header/windows-app-controls.tsx","webpack://@affine/web/../core/src/modules/workbench/constants.tsx","webpack://@affine/web/../core/src/modules/app-tabs-header/views/app-tabs-header.tsx","webpack://@affine/web/../core/src/modules/app-tabs-header/views/styles.css.ts","webpack://@affine/web/../core/src/providers/swr-config-provider.tsx","webpack://@affine/web/../core/src/layouts/workspace-layout.tsx","webpack://@affine/web/../core/src/hooks/use-register-workspace-commands.ts","webpack://@affine/web/../core/src/modules/navigation/view/use-register-navigation-commands.ts","webpack://@affine/web/../core/src/hooks/affine/use-register-find-in-page-commands.ts","webpack://@affine/web/../core/src/layouts/styles.css.ts","webpack://@affine/web/../core/src/pages/workspace/index.tsx"],"sourcesContent":["import { useLiveData, useService, WorkspaceService } from '@toeverything/infra';\nimport { useEffect } from 'react';\n\nimport { AuthService } from '../../../modules/cloud';\n\nconst SyncAwarenessInnerLoggedIn = () => {\n const authService = useService(AuthService);\n const account = useLiveData(authService.session.account$);\n const currentWorkspace = useService(WorkspaceService).workspace;\n\n useEffect(() => {\n if (account && currentWorkspace) {\n currentWorkspace.docCollection.awarenessStore.awareness.setLocalStateField(\n 'user',\n {\n name: account.label,\n // TODO(@eyhn): add avatar?\n }\n );\n\n return () => {\n currentWorkspace.docCollection.awarenessStore.awareness.setLocalStateField(\n 'user',\n null\n );\n };\n }\n return;\n }, [currentWorkspace, account]);\n\n return null;\n};\n\nconst SyncAwarenessInner = () => {\n const session = useService(AuthService).session;\n const loginStatus = useLiveData(session.status$);\n\n if (loginStatus === 'authenticated') {\n return ;\n }\n\n return null;\n};\n\n// TODO(@eyhn): we could do something more interesting here, e.g., show where the current user is\nexport const SyncAwareness = () => {\n return ;\n};\n","import { useI18n } from '@affine/i18n';\nimport { TagIcon } from '@blocksuite/icons/rc';\n\nimport { ExplorerEmptySection } from '../../layouts/empty-section';\n\nexport const RootEmpty = () => {\n const t = useI18n();\n\n return (\n \n );\n};\n","import { IconButton } from '@affine/component';\nimport { track } from '@affine/core/mixpanel';\nimport { ExplorerTreeRoot } from '@affine/core/modules/explorer/views/tree';\nimport type { Tag } from '@affine/core/modules/tag';\nimport { TagService } from '@affine/core/modules/tag';\nimport { useI18n } from '@affine/i18n';\nimport { PlusIcon } from '@blocksuite/icons/rc';\nimport { useLiveData, useServices } from '@toeverything/infra';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { ExplorerService } from '../../../services/explorer';\nimport { CollapsibleSection } from '../../layouts/collapsible-section';\nimport { ExplorerTagNode } from '../../nodes/tag';\nimport { RootEmpty } from './empty';\nimport * as styles from './styles.css';\n\nexport const ExplorerTags = () => {\n const { tagService, explorerService } = useServices({\n TagService,\n ExplorerService,\n });\n const explorerSection = explorerService.sections.tags;\n const collapsed = useLiveData(explorerSection.collapsed$);\n const [createdTag, setCreatedTag] = useState(null);\n const tags = useLiveData(tagService.tagList.tags$);\n\n const t = useI18n();\n\n const handleCreateNewFavoriteDoc = useCallback(() => {\n const newTags = tagService.tagList.createTag(\n t['com.arms.rootAppSidebar.tags.new-tag'](),\n tagService.randomTagColor()\n );\n setCreatedTag(newTags);\n track.$.navigationPanel.organize.createOrganizeItem({ type: 'tag' });\n explorerSection.setCollapsed(false);\n }, [explorerSection, t, tagService]);\n\n useEffect(() => {\n if (collapsed) setCreatedTag(null); // reset created tag to clear the renaming state\n }, [collapsed]);\n\n return (\n \n \n \n }\n >\n }>\n {tags.map(tag => (\n \n ))}\n \n \n );\n};\n","import \"../core/src/modules/explorer/views/sections/tags/styles.css.ts.vanilla.css!=!../../../../../../../../../node_modules/@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../core/src/modules/explorer/views/sections/tags/styles.css.ts.vanilla.css\\\",\\\"source\\\":\\\"LnJoejdsaDBbZGF0YS1kcmFnZ2VkLW92ZXI9InRydWUiXSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYWZmaW5lLWhvdmVyLWNvbG9yKTsKICBib3JkZXItcmFkaXVzOiA0cHg7Cn0=\\\"}!../../../../../../../../../node_modules/@vanilla-extract/webpack-plugin/extracted.js\"\nexport var draggedOverHighlight = 'rhz7lh0';","import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';\nimport { track } from '@affine/core/mixpanel';\nimport { useI18n } from '@affine/i18n';\nimport { ImportIcon } from '@blocksuite/icons/rc';\n\nimport type { DocCollection } from '../../shared';\nimport { MenuItem } from '../app-sidebar';\nimport { usePageHelper } from '../blocksuite/block-suite-page-list/utils';\n\nconst ImportPage = ({ docCollection }: { docCollection: DocCollection }) => {\n const t = useI18n();\n const { importFile } = usePageHelper(docCollection);\n\n const onImportFile = useAsyncCallback(async () => {\n const options = await importFile();\n track.$.navigationPanel.workspaceList[\n options.isWorkspaceFile ? 'createWorkspace' : 'createDoc'\n ]({\n control: 'import',\n });\n }, [importFile]);\n\n return (\n } onClick={onImportFile}>\n {t['Import']()}\n \n );\n};\n\nexport default ImportPage;\n","import \"../core/src/components/root-app-sidebar/index.css.ts.vanilla.css!=!../../../../../../node_modules/@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../core/src/components/root-app-sidebar/index.css.ts.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA51Ty27bMBC8+yvYAAXiAw3ZlVObBvojRQ6UuJI2kUiCXPnRIv9eiJQfktU06cUylsPZmd3hoky32022ZL9njCn0tpYnwYoajrsZY7LGUnMkaLxgOWgC15VfWk9YnHhuNIEmwbyVOfAM6ACgO0QprWAbe9zN3maL2GL1qRYTBN8CwQEVVYIlHajjEGx5g0k/gFlPC+m+XKGDnNBowXJTt83VTDrQsmY/mMK90IYefypJkivcowL3PA/sjXQlap4ZItMIlrAv2FjjSGraXY/J2PHZpcPT/6tkLDNOgeNOKmz9WPv3wGylUqhLwZareCdvnTdOMGswLuF6ITq0zjzfX40/5z83tzZDbHqP2AZEYTTxA2BZkWBpEpZWowZe9bVVEgUGoMdfINheukfOZVF0uFA/+nkwYerOw+Cc4EjcQ260kq4LbW1cAN8N99+5nkzrxZAMhv6qwTpshgr6HLhoNFmsobmhywLdeQzLZHK361g1e3BFbQ6CVahUFGuNx5gSB7Uk3EPoiZr3D2T1lAwWkgmRQWEc9D76KTw8DNlk5k3dUmBD7YH6p5bJ/LV0ptWKT80gq2X+GmwbK3OkU+c4SW/65yPDydcJw6grcEjvNYxsyfyGWg2oz5G6pDOxx/feziil65jSjwRyMslT07GtA36okGA+tDbGjUL09geYXmjMwgUAAA==\\\"}!../../../../../../node_modules/@vanilla-extract/webpack-plugin/extracted.js\"\nexport var aiUsageBlock = 'g4998b7';\nexport var cloudUsageBar = 'g4998bb';\nexport var cloudUsageBarInner = 'g4998bc';\nexport var cloudUsageBlock = 'g4998b8';\nexport var freeTag = 'g4998bd';\nexport var operationMenu = 'g4998b5';\nexport var progressColorVar = 'var(--g4998b0)';\nexport var quickSearch = 'g4998b3';\nexport var quickSearchAndNewPage = 'g4998b2';\nexport var usageBlock = 'g4998b6';\nexport var usageLabel = 'g4998b9';\nexport var usageLabelTitle = 'g4998ba';\nexport var workspaceAndUserWrapper = 'g4998b1';\nexport var workspaceWrapper = 'g4998b4';","import { useCatchEventCallback } from '@affine/core/hooks/use-catch-event-hook';\nimport {\n useJournalInfoHelper,\n useJournalRouteHelper,\n} from '@affine/core/hooks/use-journal';\nimport { WorkbenchService } from '@affine/core/modules/workbench';\nimport type { DocCollection } from '@affine/core/shared';\nimport { isNewTabTrigger } from '@affine/core/utils';\nimport { useI18n } from '@affine/i18n';\nimport { TodayIcon, TomorrowIcon, YesterdayIcon } from '@blocksuite/icons/rc';\nimport { useLiveData, useService } from '@toeverything/infra';\nimport { type MouseEvent } from 'react';\n\nimport { MenuItem } from '../app-sidebar';\n\ninterface AppSidebarJournalButtonProps {\n docCollection: DocCollection;\n}\n\nexport const AppSidebarJournalButton = ({\n docCollection,\n}: AppSidebarJournalButtonProps) => {\n const t = useI18n();\n const workbench = useService(WorkbenchService).workbench;\n const location = useLiveData(workbench.location$);\n const { openToday } = useJournalRouteHelper(docCollection);\n const { journalDate, isJournal } = useJournalInfoHelper(\n docCollection,\n location.pathname.split('/')[1]\n );\n\n const handleOpenToday = useCatchEventCallback(\n (e: MouseEvent) => {\n openToday(isNewTabTrigger(e));\n },\n [openToday]\n );\n\n const Icon =\n isJournal && journalDate\n ? journalDate.isBefore(new Date(), 'day')\n ? YesterdayIcon\n : journalDate.isAfter(new Date(), 'day')\n ? TomorrowIcon\n : TodayIcon\n : TodayIcon;\n\n return (\n }\n >\n {t['com.arms.journal.app-sidebar-title']()}\n \n );\n};\n","import {\n AnimatedDeleteIcon,\n useConfirmModal,\n useDropTarget,\n} from '@affine/component';\nimport type { AffineDNDData } from '@affine/core/types/dnd';\nimport { useI18n } from '@affine/i18n';\nimport {\n DocsService,\n GlobalContextService,\n useLiveData,\n useService,\n} from '@toeverything/infra';\n\nimport { MenuLinkItem } from '../app-sidebar';\n\nexport const TrashButton = () => {\n const t = useI18n();\n const docsService = useService(DocsService);\n const { openConfirmModal } = useConfirmModal();\n const globalContextService = useService(GlobalContextService);\n const trashActive = useLiveData(globalContextService.globalContext.isTrash.$);\n\n const { dropTargetRef, draggedOver } = useDropTarget(\n () => ({\n data: {\n at: 'app-sidebar:trash',\n },\n canDrop(data) {\n return data.source.data.entity?.type === 'doc';\n },\n onDrop(data) {\n if (data.source.data.entity?.type === 'doc') {\n const docId = data.source.data.entity.id;\n const docRecord = docsService.list.doc$(docId).value;\n if (docRecord) {\n openConfirmModal({\n title: t['com.arms.moveToTrash.confirmModal.title'](),\n description: t['com.arms.moveToTrash.confirmModal.description']({\n title: docRecord.title$.value || t['Untitled'](),\n }),\n confirmText: t.Delete(),\n confirmButtonOptions: {\n variant: 'error',\n },\n onConfirm() {\n docRecord.moveToTrash();\n },\n });\n }\n }\n },\n }),\n [docsService.list, openConfirmModal, t]\n );\n\n return (\n }\n active={trashActive || draggedOver}\n to={'/trash'}\n >\n \n {t['com.arms.workspaceSubPath.trash']()}\n \n \n );\n};\n","import { memo } from 'react';\n\nexport const UnknownUserIcon = memo(\n ({ width = 20, height = 20 }: { width?: number; height?: number }) => {\n const svgRaw = `\n \n \n \n \n \n \n \n \n \n \n`;\n\n return (\n \n );\n }\n);\nUnknownUserIcon.displayName = 'UnknownUserIcon';\n","import {\n Avatar,\n Divider,\n ErrorMessage,\n IconButton,\n Menu,\n MenuIcon,\n MenuItem,\n type MenuProps,\n Skeleton,\n} from '@affine/component';\nimport {\n authAtom,\n openSettingModalAtom,\n openSignOutModalAtom,\n} from '@affine/core/atoms';\nimport { track } from '@affine/core/mixpanel';\nimport { useI18n } from '@affine/i18n';\nimport { AccountIcon, SignOutIcon } from '@blocksuite/icons/rc';\nimport { useLiveData, useService } from '@toeverything/infra';\nimport { cssVar } from '@toeverything/theme';\nimport { assignInlineVars } from '@vanilla-extract/dynamic';\nimport clsx from 'clsx';\nimport { useSetAtom } from 'jotai';\nimport { useCallback, useEffect } from 'react';\n\nimport {\n type AuthAccountInfo,\n AuthService,\n ServerConfigService,\n SubscriptionService,\n UserCopilotQuotaService,\n UserQuotaService,\n} from '../../modules/cloud';\nimport { UserPlanButton } from '../affine/auth/user-plan-button';\nimport * as styles from './index.css';\nimport { UnknownUserIcon } from './unknow-user';\n\nexport const UserInfo = () => {\n const session = useService(AuthService).session;\n const account = useLiveData(session.account$);\n return account ? (\n \n ) : (\n \n );\n};\n\nconst menuContentOptions: MenuProps['contentOptions'] = {\n className: styles.operationMenu,\n};\nconst AuthorizedUserInfo = ({ account }: { account: AuthAccountInfo }) => {\n return (\n } contentOptions={menuContentOptions}>\n \n \n \n \n );\n};\n\nconst UnauthorizedUserInfo = () => {\n const setOpen = useSetAtom(authAtom);\n\n const openSignInModal = useCallback(() => {\n setOpen(state => ({ ...state, openModal: true }));\n }, [setOpen]);\n\n return (\n \n \n \n );\n};\n\nconst AccountMenu = () => {\n const setSettingModalAtom = useSetAtom(openSettingModalAtom);\n const setOpenSignOutModalAtom = useSetAtom(openSignOutModalAtom);\n\n const onOpenAccountSetting = useCallback(() => {\n track.$.navigationPanel.profileAndBadge.openSettings({ to: 'account' });\n setSettingModalAtom(prev => ({\n ...prev,\n open: true,\n activeTab: 'account',\n }));\n }, [setSettingModalAtom]);\n\n const onOpenSignOutModal = useCallback(() => {\n setOpenSignOutModalAtom(true);\n }, [setOpenSignOutModalAtom]);\n\n const t = useI18n();\n\n return (\n <>\n \n \n \n }\n data-testid=\"workspace-modal-account-settings-option\"\n onClick={onOpenAccountSetting}\n >\n {t['com.arms.workspace.cloud.account.settings']()}\n \n \n \n \n }\n data-testid=\"workspace-modal-sign-out-option\"\n onClick={onOpenSignOutModal}\n >\n {t['com.arms.workspace.cloud.account.logout']()}\n \n \n );\n};\n\nconst CloudUsage = () => {\n const t = useI18n();\n const quota = useService(UserQuotaService).quota;\n const quotaError = useLiveData(quota.error$);\n\n useEffect(() => {\n // revalidate quota to get the latest status\n quota.revalidate();\n }, [quota]);\n const color = useLiveData(quota.color$);\n const usedFormatted = useLiveData(quota.usedFormatted$);\n const maxFormatted = useLiveData(quota.maxFormatted$);\n const percent = useLiveData(quota.percent$);\n\n if (percent === null) {\n if (quotaError) {\n return Failed to load quota;\n }\n return (\n
\n \n \n
\n );\n }\n\n return (\n \n
\n
\n \n {t['com.arms.user-info.usage.cloud']()}\n \n {usedFormatted}\n  / \n {maxFormatted}\n
\n \n
\n\n
\n \n
\n \n );\n};\n\nconst AIUsage = () => {\n const t = useI18n();\n const copilotQuotaService = useService(UserCopilotQuotaService);\n const subscriptionService = useService(SubscriptionService);\n\n useEffect(() => {\n // revalidate latest subscription status\n subscriptionService.subscription.revalidate();\n }, [subscriptionService]);\n useEffect(() => {\n copilotQuotaService.copilotQuota.revalidate();\n }, [copilotQuotaService]);\n\n const copilotActionLimit = useLiveData(\n copilotQuotaService.copilotQuota.copilotActionLimit$\n );\n const copilotActionUsed = useLiveData(\n copilotQuotaService.copilotQuota.copilotActionUsed$\n );\n const loading = copilotActionLimit === null || copilotActionUsed === null;\n const loadError = useLiveData(copilotQuotaService.copilotQuota.error$);\n\n const setSettingModalAtom = useSetAtom(openSettingModalAtom);\n\n const goToAIPlanPage = useCallback(() => {\n setSettingModalAtom({\n open: true,\n activeTab: 'plans',\n scrollAnchor: 'aiPricingPlan',\n });\n }, [setSettingModalAtom]);\n\n const goToAccountSetting = useCallback(() => {\n setSettingModalAtom({\n open: true,\n activeTab: 'account',\n });\n }, [setSettingModalAtom]);\n\n if (loading) {\n if (loadError) console.error(loadError);\n return null;\n }\n\n // unlimited\n if (copilotActionLimit === 'unlimited') {\n return (\n \n
\n
\n {t['com.arms.user-info.usage.ai']()}\n
\n
\n
\n {t['com.arms.payment.ai.usage-description-purchased']()}\n
\n \n );\n }\n\n const percent = Math.min(\n 100,\n Math.max(\n 0.5,\n Number(((copilotActionUsed / copilotActionLimit) * 100).toFixed(4))\n )\n );\n\n const color = percent > 80 ? cssVar('errorColor') : cssVar('processingColor');\n\n return (\n \n
\n
\n \n {t['com.arms.user-info.usage.ai']()}\n \n {copilotActionUsed}\n  / \n {copilotActionLimit}\n
\n\n
Free
\n
\n\n
\n \n
\n \n );\n};\n\nconst OperationMenu = () => {\n const serverConfigService = useService(ServerConfigService);\n const serverFeatures = useLiveData(\n serverConfigService.serverConfig.features$\n );\n\n return (\n <>\n {serverFeatures?.copilot ? : null}\n \n \n \n \n );\n};\n","import { openSettingModalAtom } from '@affine/core/atoms';\nimport { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';\nimport { track } from '@affine/core/mixpanel';\nimport {\n ExplorerCollections,\n ExplorerFavorites,\n ExplorerMigrationFavorites,\n ExplorerOrganize,\n} from '@affine/core/modules/explorer';\nimport { ExplorerTags } from '@affine/core/modules/explorer/views/sections/tags';\nimport { CMDKQuickSearchService } from '@affine/core/modules/quicksearch/services/cmdk';\nimport { isNewTabTrigger } from '@affine/core/utils';\nimport { events } from '@affine/electron-api';\nimport { useI18n } from '@affine/i18n';\nimport { AllDocsIcon, SettingsIcon } from '@blocksuite/icons/rc';\nimport type { Doc } from '@blocksuite/store';\nimport type { Workspace } from '@toeverything/infra';\nimport { useLiveData, useService, WorkspaceService } from '@toeverything/infra';\nimport { useSetAtom } from 'jotai';\nimport type { MouseEvent, ReactElement } from 'react';\nimport { useCallback, useEffect } from 'react';\n\nimport { useAppSettingHelper } from '../../hooks/affine/use-app-setting-helper';\nimport { WorkbenchService } from '../../modules/workbench';\nimport {\n AddPageButton,\n AppSidebar,\n CategoryDivider,\n MenuItem,\n MenuLinkItem,\n QuickSearchInput,\n SidebarContainer,\n SidebarScrollableContainer,\n} from '../app-sidebar';\nimport { usePageHelper } from '../blocksuite/block-suite-page-list/utils';\nimport { WorkspaceSelector } from '../workspace-selector';\nimport ImportPage from './import-page';\nimport {\n quickSearch,\n quickSearchAndNewPage,\n workspaceAndUserWrapper,\n workspaceWrapper,\n} from './index.css';\nimport { AppSidebarJournalButton } from './journal-button';\nimport { TrashButton } from './trash-button';\nimport { UserInfo } from './user-info';\n\nexport type RootAppSidebarProps = {\n isPublicWorkspace: boolean;\n onOpenQuickSearchModal: () => void;\n onOpenSettingModal: () => void;\n currentWorkspace: Workspace;\n openPage: (pageId: string) => void;\n createPage: () => Doc;\n paths: {\n all: (workspaceId: string) => string;\n trash: (workspaceId: string) => string;\n shared: (workspaceId: string) => string;\n };\n};\n\n/**\n * This is for the whole affine app sidebar.\n * This component wraps the app sidebar in `@affine/component` with logic and data.\n *\n */\nexport const RootAppSidebar = (): ReactElement => {\n const currentWorkspace = useService(WorkspaceService).workspace;\n const { appSettings } = useAppSettingHelper();\n const docCollection = currentWorkspace.docCollection;\n const t = useI18n();\n const workbench = useService(WorkbenchService).workbench;\n const currentPath = useLiveData(\n workbench.location$.map(location => location.pathname)\n );\n const cmdkQuickSearchService = useService(CMDKQuickSearchService);\n const onOpenQuickSearchModal = useCallback(() => {\n cmdkQuickSearchService.toggle();\n }, [cmdkQuickSearchService]);\n\n const allPageActive = currentPath === '/all';\n\n const pageHelper = usePageHelper(currentWorkspace.docCollection);\n\n const onClickNewPage = useAsyncCallback(\n async (e?: MouseEvent) => {\n const page = pageHelper.createPage(isNewTabTrigger(e) ? 'new-tab' : true);\n page.load();\n track.$.navigationPanel.$.createDoc();\n },\n [pageHelper]\n );\n useEffect(() => {\n if (environment.isDesktop) {\n return events?.applicationMenu.onNewPageAction(() => onClickNewPage());\n }\n return;\n }, [onClickNewPage]);\n\n const setOpenSettingModalAtom = useSetAtom(openSettingModalAtom);\n\n const onOpenSettingModal = useCallback(() => {\n setOpenSettingModalAtom({\n activeTab: 'appearance',\n open: true,\n });\n track.$.navigationPanel.$.openSettings();\n }, [setOpenSettingModalAtom]);\n\n return (\n \n \n
\n
\n \n
\n \n
\n
\n \n \n
\n } active={allPageActive} to={'/all'}>\n \n {t['com.arms.workspaceSubPath.all']()}\n \n \n \n }\n onClick={onOpenSettingModal}\n >\n \n {t['com.arms.settingSidebar.title']()}\n \n \n
\n \n \n {runtimeConfig.enableOrganize && }\n \n \n \n \n
\n \n \n
\n
\n\n {/* removed download button */}\n {/* \n {environment.isDesktop ? : }\n */}\n \n );\n};\n\nRootAppSidebar.displayName = 'memo(RootAppSidebar)';\n","import type React from 'react';\n\n/**\n * TODO(@eyhn): move to icons package\n */\nexport const ArrowCircleIcon = (props: React.SVGProps) => {\n return (\n \n \n \n );\n};\n\nexport const HeartBreakIcon = (props: React.SVGProps) => {\n return (\n \n \n \n );\n};\n","import { Button } from '@affine/component/ui/button';\nimport { AffineShapeIcon } from '@affine/core/components/page-list'; // TODO(@eyhn): import from page-list temporarily, need to defined common svg icon/images management.\nimport { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';\nimport { useNavigateHelper } from '@affine/core/hooks/use-navigate-helper';\nimport { track } from '@affine/core/mixpanel';\nimport { WorkspaceSubPath } from '@affine/core/shared';\nimport { useI18n } from '@affine/i18n';\nimport { useLiveData, useService, WorkspaceService } from '@toeverything/infra';\nimport { useState } from 'react';\n\nimport * as styles from './upgrade.css';\nimport { ArrowCircleIcon, HeartBreakIcon } from './upgrade-icon';\n\n/**\n * TODO(@eyhn): Help info is not implemented yet.\n */\nexport const WorkspaceUpgrade = function WorkspaceUpgrade() {\n const [error, setError] = useState(null);\n const currentWorkspace = useService(WorkspaceService).workspace;\n const upgrading = useLiveData(currentWorkspace.upgrade.upgrading$);\n const t = useI18n();\n const { openPage } = useNavigateHelper();\n\n const onButtonClick = useAsyncCallback(async () => {\n if (upgrading) {\n return;\n }\n\n track.workspace.$.$.upgradeWorkspace();\n\n try {\n const newWorkspace = await currentWorkspace.upgrade.upgrade();\n if (newWorkspace) {\n openPage(newWorkspace.id, WorkspaceSubPath.ALL);\n } else {\n // blocksuite may enter an incorrect state, reload to reset it.\n location.reload();\n }\n } catch (error) {\n setError(error instanceof Error ? error.message : '' + error);\n }\n }, [upgrading, currentWorkspace.upgrade, openPage]);\n\n return (\n
\n
\n \n

\n {error ? error : t['com.arms.upgrade.tips.normal']()}\n

\n : }\n variant={error ? 'error' : 'secondary'}\n >\n {error\n ? t['com.arms.upgrade.button-text.error']()\n : upgrading\n ? t['com.arms.upgrade.button-text.upgrading']()\n : t['com.arms.upgrade.button-text.pending']()}\n \n
\n
\n );\n};\n","import \"../core/src/components/workspace-upgrade/upgrade.css.ts.vanilla.css!=!../../../../../../node_modules/@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../core/src/components/workspace-upgrade/upgrade.css.ts.vanilla.css\\\",\\\"source\\\":\\\"Ll8xM2F4ZDRtMCB7CiAgbWFyZ2luOiA4MHB4IGF1dG87CiAgbWF4LXdpZHRoOiA1MzZweDsKfQouXzEzYXhkNG0xIHsKICBwYWRkaW5nOiA0OHB4IDUycHg7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLl8xM2F4ZDRtMiB7CiAgbWFyZ2luOiAyMHB4IDA7CiAgY29sb3I6IHZhcigtLWFmZmluZS10ZXh0LXNlY29uZGFyeS1jb2xvcik7CiAgZm9udC1zaXplOiAxMnB4OwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIGxpbmUtaGVpZ2h0OiAyMHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKfQ==\\\"}!../../../../../../node_modules/@vanilla-extract/webpack-plugin/extracted.js\"\nexport var layout = '_13axd4m0';\nexport var upgradeBox = '_13axd4m1';\nexport var upgradeTips = '_13axd4m2';","import { apis, events } from '@affine/electron-api';\nimport { LiveData, Service } from '@toeverything/infra';\nimport { Observable } from 'rxjs';\n\nexport type TabStatus = Parameters<\n Parameters['ui']['onTabsStatusChange']>[0]\n>[0][number];\n\nexport class AppTabsHeaderService extends Service {\n constructor() {\n super();\n }\n\n tabsStatus$ = LiveData.from(\n new Observable(subscriber => {\n let unsub: (() => void) | undefined;\n apis?.ui\n .getTabsStatus()\n .then(tabs => {\n subscriber.next(tabs);\n unsub = events?.ui.onTabsStatusChange(tabs => {\n subscriber.next(tabs);\n });\n })\n .catch(console.error);\n\n return () => {\n unsub?.();\n };\n }),\n []\n );\n\n showContextMenu = apis?.ui.showTabContextMenu;\n\n activateView = apis?.ui.activateView;\n\n closeTab = apis?.ui.closeTab;\n\n onAddTab = apis?.ui.addTab;\n\n onAddDocTab = async (\n docId: string,\n targetTabId?: string,\n edge?: 'left' | 'right'\n ) => {\n await apis?.ui.addTab({\n view: {\n path: {\n pathname: '/' + docId,\n },\n },\n target: targetTabId,\n edge,\n });\n };\n\n onAddTagTab = async (\n tagId: string,\n targetTabId?: string,\n edge?: 'left' | 'right'\n ) => {\n await apis?.ui.addTab({\n view: {\n path: {\n pathname: '/tag/' + tagId,\n },\n },\n target: targetTabId,\n edge,\n });\n };\n\n onAddCollectionTab = async (\n collectionId: string,\n targetTabId?: string,\n edge?: 'left' | 'right'\n ) => {\n await apis?.ui.addTab({\n view: {\n path: {\n pathname: '/collection/' + collectionId,\n },\n },\n target: targetTabId,\n edge,\n });\n };\n\n onToggleRightSidebar = apis?.ui.toggleRightSidebar;\n\n moveTab = apis?.ui.moveTab;\n}\n","import { apis, events } from '@affine/electron-api';\nimport { useAtomValue } from 'jotai';\nimport { atomWithObservable } from 'jotai/utils';\nimport { useCallback } from 'react';\nimport { combineLatest, map, Observable } from 'rxjs';\n\nimport * as style from './style.css';\n\nconst maximized$ = new Observable(subscriber => {\n subscriber.next(false);\n if (events) {\n return events.ui.onMaximized(res => {\n subscriber.next(res);\n });\n }\n return () => {};\n});\n\nconst fullscreen$ = new Observable(subscriber => {\n subscriber.next(false);\n if (events) {\n return events.ui.onFullScreen(res => {\n subscriber.next(res);\n });\n }\n return () => {};\n});\n\nconst maximizedAtom = atomWithObservable(() => {\n return combineLatest([maximized$, fullscreen$]).pipe(\n map(([maximized, fullscreen]) => maximized || fullscreen)\n );\n});\n\nconst minimizeSVG = (\n \n \n \n);\n\nconst closeSVG = (\n \n \n \n);\n\nconst maximizeSVG = (\n \n \n \n);\n\nconst unmaximizedSVG = (\n \n \n \n);\n\nexport const WindowsAppControls = () => {\n const handleMinimizeApp = useCallback(() => {\n apis?.ui.handleMinimizeApp().catch(err => {\n console.error(err);\n });\n }, []);\n const handleMaximizeApp = useCallback(() => {\n apis?.ui.handleMaximizeApp().catch(err => {\n console.error(err);\n });\n }, []);\n const handleCloseApp = useCallback(() => {\n apis?.ui.handleCloseApp().catch(err => {\n console.error(err);\n });\n }, []);\n\n const maximized = useAtomValue(maximizedAtom);\n\n return (\n \n \n {minimizeSVG}\n \n \n {maximized ? unmaximizedSVG : maximizeSVG}\n \n \n {closeSVG}\n \n \n );\n};\n","import {\n AllDocsIcon,\n DeleteIcon,\n EdgelessIcon,\n PageIcon,\n TagIcon,\n TodayIcon,\n ViewLayersIcon,\n} from '@blocksuite/icons/rc';\nimport type { ReactNode } from 'react';\n\nexport const iconNameToIcon = {\n allDocs: ,\n collection: ,\n doc: ,\n page: ,\n edgeless: ,\n journal: ,\n tag: ,\n trash: ,\n} satisfies Record;\n\nexport type ViewIconName = keyof typeof iconNameToIcon;\n","import {\n type DropTargetDropEvent,\n type DropTargetOptions,\n IconButton,\n Loading,\n useDraggable,\n useDropTarget,\n} from '@affine/component';\nimport {\n appSidebarOpenAtom,\n appSidebarResizingAtom,\n} from '@affine/core/components/app-sidebar';\nimport { appSidebarWidthAtom } from '@affine/core/components/app-sidebar/index.jotai';\nimport { WindowsAppControls } from '@affine/core/components/pure/header/windows-app-controls';\nimport { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';\nimport { useCatchEventCallback } from '@affine/core/hooks/use-catch-event-hook';\nimport { track } from '@affine/core/mixpanel';\nimport type { AffineDNDData } from '@affine/core/types/dnd';\nimport { apis, events } from '@affine/electron-api';\nimport { useI18n } from '@affine/i18n';\nimport { CloseIcon, PlusIcon, RightSidebarIcon } from '@blocksuite/icons/rc';\nimport {\n useLiveData,\n useService,\n useServiceOptional,\n} from '@toeverything/infra';\nimport clsx from 'clsx';\nimport { useAtomValue } from 'jotai';\nimport { partition } from 'lodash-es';\nimport {\n Fragment,\n type MouseEventHandler,\n type ReactNode,\n useEffect,\n useState,\n} from 'react';\n\nimport { iconNameToIcon } from '../../workbench/constants';\nimport { DesktopStateSynchronizer } from '../../workbench/services/desktop-state-synchronizer';\nimport {\n AppTabsHeaderService,\n type TabStatus,\n} from '../services/app-tabs-header-service';\nimport * as styles from './styles.css';\n\nconst TabSupportType = ['collection', 'tag', 'doc'];\n\nconst tabCanDrop =\n (tab?: TabStatus): NonNullable['canDrop']> =>\n ctx => {\n if (\n ctx.source.data.from?.at === 'app-header:tabs' &&\n ctx.source.data.from.tabId !== tab?.id\n ) {\n return true;\n }\n\n if (\n ctx.source.data.entity?.type &&\n TabSupportType.includes(ctx.source.data.entity?.type)\n ) {\n return true;\n }\n\n return false;\n };\n\nconst WorkbenchTab = ({\n workbench,\n active: tabActive,\n tabsLength,\n dnd,\n onDrop,\n}: {\n workbench: TabStatus;\n active: boolean;\n tabsLength: number;\n dnd?: boolean;\n onDrop?: (data: DropTargetDropEvent) => void;\n}) => {\n useServiceOptional(DesktopStateSynchronizer);\n const tabsHeaderService = useService(AppTabsHeaderService);\n const activeViewIndex = workbench.activeViewIndex ?? 0;\n const onContextMenu = useAsyncCallback(\n async (viewIdx: number) => {\n const action = await tabsHeaderService.showContextMenu?.(\n workbench.id,\n viewIdx\n );\n switch (action?.type) {\n case 'open-in-split-view': {\n track.$.appTabsHeader.$.tabAction({\n control: 'contextMenu',\n action: 'openInSplitView',\n });\n break;\n }\n case 'separate-view': {\n track.$.appTabsHeader.$.tabAction({\n control: 'contextMenu',\n action: 'separateTabs',\n });\n break;\n }\n case 'pin-tab': {\n if (action.payload.shouldPin) {\n track.$.appTabsHeader.$.tabAction({\n control: 'contextMenu',\n action: 'pin',\n });\n } else {\n track.$.appTabsHeader.$.tabAction({\n control: 'contextMenu',\n action: 'unpin',\n });\n }\n break;\n }\n // fixme: when close tab the view may already be gc'ed\n case 'close-tab': {\n track.$.appTabsHeader.$.tabAction({\n control: 'contextMenu',\n action: 'close',\n });\n break;\n }\n default:\n break;\n }\n },\n [tabsHeaderService, workbench.id]\n );\n const onActivateView = useAsyncCallback(\n async (viewIdx: number) => {\n await tabsHeaderService.activateView?.(workbench.id, viewIdx);\n if (tabActive) {\n track.$.appTabsHeader.$.tabAction({\n control: 'click',\n action: 'switchSplitView',\n });\n } else {\n track.$.appTabsHeader.$.tabAction({\n control: 'click',\n action: 'switchTab',\n });\n }\n },\n [tabActive, tabsHeaderService, workbench.id]\n );\n const handleAuxClick: MouseEventHandler = useCatchEventCallback(\n async e => {\n if (e.button === 1) {\n await tabsHeaderService.closeTab?.(workbench.id);\n track.$.appTabsHeader.$.tabAction({\n control: 'midClick',\n action: 'close',\n });\n }\n },\n [tabsHeaderService, workbench.id]\n );\n\n const handleCloseTab = useCatchEventCallback(async () => {\n await tabsHeaderService.closeTab?.(workbench.id);\n track.$.appTabsHeader.$.tabAction({\n control: 'xButton',\n action: 'close',\n });\n }, [tabsHeaderService, workbench.id]);\n\n const { dropTargetRef, closestEdge } = useDropTarget(\n () => ({\n closestEdge: {\n allowedEdges: ['left', 'right'],\n },\n onDrop,\n dropEffect: 'move',\n canDrop: tabCanDrop(workbench),\n isSticky: true,\n }),\n [onDrop, workbench]\n );\n\n const { dragRef } = useDraggable(\n () => ({\n canDrag: dnd,\n data: {\n from: {\n at: 'app-header:tabs',\n tabId: workbench.id,\n },\n },\n dragPreviewPosition: 'pointer-outside',\n }),\n [dnd, workbench.id]\n );\n\n return (\n {\n dropTargetRef.current = node;\n dragRef.current = node;\n }}\n >\n 1 && !workbench.pinned}\n className={styles.tab}\n >\n {workbench.views.map((view, viewIdx) => {\n return (\n \n {\n onContextMenu(viewIdx);\n }}\n onAuxClick={handleAuxClick}\n onClick={e => {\n e.stopPropagation();\n onActivateView(viewIdx);\n }}\n >\n
\n {workbench.ready || !workbench.loaded ? (\n iconNameToIcon[view.iconName ?? 'allDocs']\n ) : (\n \n )}\n
\n {workbench.pinned || !view.title ? null : (\n
\n {view.title}\n
\n )}\n \n\n {viewIdx !== workbench.views.length - 1 ? (\n
\n ) : null}\n \n );\n })}\n {!workbench.pinned ? (\n
\n {tabsLength > 1 ? (\n \n \n \n ) : null}\n
\n ) : null}\n
\n
\n
\n );\n};\n\nconst useIsFullScreen = () => {\n const [fullScreen, setFullScreen] = useState(false);\n\n useEffect(() => {\n apis?.ui\n .isFullScreen()\n .then(setFullScreen)\n .then(() => {\n events?.ui.onFullScreen(setFullScreen);\n })\n .catch(console.error);\n }, []);\n return fullScreen;\n};\n\nexport const AppTabsHeader = ({\n style,\n mode = 'app',\n className,\n left,\n}: {\n style?: React.CSSProperties;\n mode?: 'app' | 'shell';\n className?: string;\n left?: ReactNode;\n}) => {\n const t = useI18n();\n const sidebarWidth = useAtomValue(appSidebarWidthAtom);\n const sidebarOpen = useAtomValue(appSidebarOpenAtom);\n const sidebarResizing = useAtomValue(appSidebarResizingAtom);\n const isMacosDesktop = environment.isDesktop && environment.isMacOs;\n const fullScreen = useIsFullScreen();\n\n const tabsHeaderService = useService(AppTabsHeaderService);\n const tabs = useLiveData(tabsHeaderService.tabsStatus$);\n\n const [pinned, unpinned] = partition(tabs, tab => tab.pinned);\n\n const onAddTab = useAsyncCallback(async () => {\n await tabsHeaderService.onAddTab?.();\n track.$.appTabsHeader.$.tabAction({\n control: 'click',\n action: 'openInNewTab',\n });\n }, [tabsHeaderService]);\n\n const onToggleRightSidebar = useAsyncCallback(async () => {\n await tabsHeaderService.onToggleRightSidebar?.();\n }, [tabsHeaderService]);\n\n useEffect(() => {\n if (mode === 'app') {\n apis?.ui.pingAppLayoutReady().catch(console.error);\n }\n }, [mode]);\n\n const onDrop = useAsyncCallback(\n async (data: DropTargetDropEvent, targetId?: string) => {\n const edge = data.closestEdge ?? 'right';\n targetId = targetId ?? tabs.at(-1)?.id;\n\n if (!targetId || edge === 'top' || edge === 'bottom') {\n return;\n }\n\n if (data.source.data.from?.at === 'app-header:tabs') {\n if (targetId === data.source.data.from.tabId) {\n return;\n }\n track.$.appTabsHeader.$.tabAction({\n control: 'dnd',\n action: 'moveTab',\n });\n return await tabsHeaderService.moveTab?.(\n data.source.data.from.tabId,\n targetId,\n edge\n );\n }\n\n if (data.source.data.entity?.type === 'doc') {\n track.$.appTabsHeader.$.tabAction({\n control: 'dnd',\n action: 'openInNewTab',\n type: 'doc',\n });\n return await tabsHeaderService.onAddDocTab?.(\n data.source.data.entity.id,\n targetId,\n edge\n );\n }\n\n if (data.source.data.entity?.type === 'tag') {\n track.$.appTabsHeader.$.tabAction({\n type: 'tag',\n control: 'dnd',\n action: 'openInNewTab',\n });\n return await tabsHeaderService.onAddTagTab?.(\n data.source.data.entity.id,\n targetId,\n edge\n );\n }\n\n if (data.source.data.entity?.type === 'collection') {\n track.$.appTabsHeader.$.tabAction({\n type: 'collection',\n control: 'dnd',\n action: 'openInNewTab',\n });\n return await tabsHeaderService.onAddCollectionTab?.(\n data.source.data.entity.id,\n targetId,\n edge\n );\n }\n },\n [tabs, tabsHeaderService]\n );\n\n const { dropTargetRef: spacerDropTargetRef, draggedOver } =\n useDropTarget(\n () => ({\n onDrop,\n dropEffect: 'move',\n canDrop: tabCanDrop(),\n }),\n [onDrop]\n );\n\n const trafficLightOffset = isMacosDesktop && !fullScreen ? 70 : 0;\n\n return (\n \n \n {left}\n \n
\n {pinned.map(tab => {\n return (\n onDrop(data, tab.id)}\n active={tab.active}\n />\n );\n })}\n {pinned.length > 0 && unpinned.length > 0 && (\n
\n )}\n {unpinned.map(tab => {\n return (\n onDrop(data, tab.id)}\n active={tab.active}\n />\n );\n })}\n
\n \n }\n />\n
\n \n \n \n {environment.isDesktop && environment.isWindows ? (\n \n ) : null}\n \n );\n};\n","import \"../core/src/modules/app-tabs-header/views/styles.css.ts.vanilla.css!=!../../../../../../../node_modules/@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../core/src/modules/app-tabs-header/views/styles.css.ts.vanilla.css\\\",\\\"source\\\":\\\"#H4sIAAAAAAAAA61X0WrrOBB971eIwIUUquCkSZqr0v9YWMoiW2NHW0cSklI3u+y/L5LsxJZlk14uhdCMo5k5Z87MyKu/1s1JGMsz9O8DQg1n9kjQOst+vD4gdAReHS1Bu436ct8ZN6qmF4LKGryB1rwSmFs4GYIKEBa0M7vHmHENheVSEKRl48wVVQQdgiv5CbqsZUNQUXPlLEpydx7DJwhrCKJnK50dN5B/cIupUlhD5R0yTavXh/8eVtf0/2TUUswNbrhgsjFvi5LWBhbvHpeijHFRYR3w+Bx6p9f+RyN0HkZIskUwgffvs7G8vOBCCgvCEmQULQDnYBsA8TpOYN0S6hlZZ+oWzhw1Fx8EZSl4J8ngbUGVWryjKHmrqTA80E3rGmWrZzNwsZnBOC7VBNAORg2lnSllp5ugo34SAYfiQgB7W1h97io0A/7Z/yCnxUel5Vkwgj6pXmJMy5ILwLyQAhsopGBUXx5fezIO+V2z2ad5RuhEdcXFlDq28/FzqRloXMha6rnobU/NAN2lSzRRi9hxqqM6RWioqeWf0KshQRlqCQnwnQHvI+x7n1IX6rmV7YkL3KK8muhXZ9pk2ZQwpkm8PriVskfpiJNRxwVaLdV2hjLvMIps4csmY54NaGyghsISJKTw5LXF1pTxsyFoG4CmiU4NLiHxaHbtUET3vBz3oYdo4eIMeugedpXmpyHOXDo9UubqNDgVjHj9mAo/GGiDLKJRt8nS+X9vBuzCIcddxUV1PRYx18eS+b+1+hqiignoBXkJ7I/F3WuZQ7qrRwL1k72VRymFxU23S7NsTqFnbZxEGZT0XNtheqSmxmJZYntRkOJ6yNkhhuMDe73fOhPqmivDTbpfmyO3gP02c9ptNFXf7iOP3vB/IDrg7V8mKgE5uixQBGIy4Fw1k31yh+M5n8MSRM4iagOJvdM/J0Mmdti9a2A0CbtHvcB0cLnbT6zFW52mNuUku47cHrf0l7gdePS3t/dYDdOOPYMJr3nok+hu2Y3z2+CmuZH12XrrrZsQslK1/+XSWnlqv8T9362+7dTmu7ecUUe3/tLrDgQbTlbCzXJclycUaHy88ZgTIe2SwEnZy2NfHNuJaZ2ucz5aOzUXQDWu3IIEYZebl4xB9XTnOkK7zeqw//GEdJXT5Wa3e0K3j2yVZY+e8ORCGujmd6YYzzS0361e1tckt9sn1H7MJFkkZdi94kx1ZrxcOtl+pwHuF0WRun72PLHbkq600/b6rk04IfT2khPeJPBh+iLVz6B3CwDmR21AQ2hpQbfDoW2RxWK6w31Xd+9d8e22TWkXvvWHQdfl4Ul0F+ysU5ewmdHXLvNkqnF2g9TvSUgqWnB76abYr6QXaAdWwdvCsdPe166evRD8G2gp9YmEf2tq4Y+lo3HGm2e3dddn+i7XP4Pr/wF5EDxwxBAAAA==\\\"}!../../../../../../../node_modules/@vanilla-extract/webpack-plugin/extracted.js\"\nexport var dropIndicator = '_1wmnstie';\nexport var headerLeft = '_1wmnsti1';\nexport var labelIcon = '_1wmnstia _1wmnsti9';\nexport var pinSeparator = '_1wmnsti3';\nexport var root = '_1wmnsti0';\nexport var spacer = '_1wmnstid';\nexport var splitViewLabel = '_1wmnsti7';\nexport var splitViewLabelText = '_1wmnsti8';\nexport var splitViewSeparator = '_1wmnsti4';\nexport var tab = '_1wmnsti6';\nexport var tabCloseButton = '_1wmnstic _1wmnsti9';\nexport var tabCloseButtonWrapper = '_1wmnstib';\nexport var tabIcon = '_1wmnsti9';\nexport var tabWrapper = '_1wmnsti5';\nexport var tabs = '_1wmnsti2';","import { notify } from '@affine/component';\nimport { GraphQLError } from '@affine/graphql';\nimport { assertExists } from '@blocksuite/global/utils';\nimport type { PropsWithChildren, ReactNode } from 'react';\nimport { useCallback } from 'react';\nimport type { SWRConfiguration } from 'swr';\nimport { SWRConfig } from 'swr';\n\nconst swrConfig: SWRConfiguration = {\n suspense: true,\n use: [\n useSWRNext => (key, fetcher, config) => {\n const fetcherWrapper = useCallback(\n async (...args: any[]) => {\n assertExists(fetcher);\n const d = fetcher(...args);\n if (d instanceof Promise) {\n return d.catch(e => {\n if (\n e instanceof GraphQLError ||\n (Array.isArray(e) && e[0] instanceof GraphQLError)\n ) {\n const graphQLError = e instanceof GraphQLError ? e : e[0];\n notify.error({\n title: 'GraphQL Error',\n message: graphQLError.toString(),\n });\n } else {\n notify.error({\n title: 'Error',\n message: e.toString(),\n });\n }\n throw e;\n });\n }\n return d;\n },\n [fetcher]\n );\n return useSWRNext(key, fetcher ? fetcherWrapper : fetcher, config);\n },\n ],\n};\n\nexport const SWRConfigProvider = (props: PropsWithChildren): ReactNode => {\n return {props.children};\n};\n","import { toast } from '@affine/component';\nimport {\n pushGlobalLoadingEventAtom,\n resolveGlobalLoadingEventAtom,\n} from '@affine/component/global-loading';\nimport { useI18n } from '@affine/i18n';\nimport { ZipTransformer } from '@blocksuite/blocks';\nimport {\n type DocMode,\n DocsService,\n effect,\n fromPromise,\n LiveData,\n onStart,\n throwIfAborted,\n useLiveData,\n useService,\n WorkspaceService,\n} from '@toeverything/infra';\nimport { useAtomValue, useSetAtom } from 'jotai';\nimport type { PropsWithChildren } from 'react';\nimport { useEffect } from 'react';\nimport {\n catchError,\n EMPTY,\n finalize,\n mergeMap,\n switchMap,\n timeout,\n} from 'rxjs';\nimport { Map as YMap } from 'yjs';\n\nimport { AIProvider } from '../blocksuite/presets/ai';\n// import { WorkspaceAIOnboarding } from '../components/affine/ai-onboarding'; 24-10-02 삭제\nimport { AppContainer } from '../components/affine/app-container';\nimport { SyncAwareness } from '../components/affine/awareness';\nimport {\n appSidebarResizingAtom,\n SidebarSwitch,\n} from '../components/app-sidebar';\n// import { AIIsland } from '../components/pure/ai-island'; 24-10-02 삭제\nimport { RootAppSidebar } from '../components/root-app-sidebar';\nimport { MainContainer } from '../components/workspace';\nimport { WorkspaceUpgrade } from '../components/workspace-upgrade';\nimport { useRegisterFindInPageCommands } from '../hooks/affine/use-register-find-in-page-commands';\nimport { useSubscriptionNotifyReader } from '../hooks/affine/use-subscription-notify';\nimport { useRegisterWorkspaceCommands } from '../hooks/use-register-workspace-commands';\nimport { AppTabsHeader } from '../modules/app-tabs-header';\nimport { NavigationButtons } from '../modules/navigation';\nimport { useRegisterNavigationCommands } from '../modules/navigation/view/use-register-navigation-commands';\nimport { QuickSearchContainer } from '../modules/quicksearch';\nimport { WorkbenchService } from '../modules/workbench';\nimport {\n AllWorkspaceModals,\n CurrentWorkspaceModals,\n} from '../providers/modal-provider';\nimport { SWRConfigProvider } from '../providers/swr-config-provider';\nimport * as styles from './styles.css';\n\nexport const WorkspaceLayout = function WorkspaceLayout({\n children,\n}: PropsWithChildren) {\n return (\n \n {/* load all workspaces is costly, do not block the whole UI */}\n \n \n {children}\n {/* should show after workspace loaded */}\n {/* 24-10-24 삭제 */}\n {/* 24-10-24 삭제 */}\n \n );\n};\n\nconst WorkspaceLayoutProviders = ({ children }: PropsWithChildren) => {\n const t = useI18n();\n const pushGlobalLoadingEvent = useSetAtom(pushGlobalLoadingEventAtom);\n const resolveGlobalLoadingEvent = useSetAtom(resolveGlobalLoadingEventAtom);\n const currentWorkspace = useService(WorkspaceService).workspace;\n const docsList = useService(DocsService).list;\n\n const workbench = useService(WorkbenchService).workbench;\n useEffect(() => {\n const insertTemplate = effect(\n switchMap(({ template, mode }: { template: string; mode: string }) => {\n return fromPromise(async abort => {\n const templateZip = await fetch(template, { signal: abort });\n const templateBlob = await templateZip.blob();\n throwIfAborted(abort);\n const [doc] = await ZipTransformer.importDocs(\n currentWorkspace.docCollection,\n templateBlob\n );\n if (doc) {\n doc.resetHistory();\n }\n\n return { doc, mode };\n }).pipe(\n timeout(10000 /* 10s */),\n mergeMap(({ mode, doc }) => {\n if (doc) {\n docsList.setMode(doc.id, mode as DocMode);\n workbench.openDoc(doc.id);\n }\n return EMPTY;\n }),\n onStart(() => {\n pushGlobalLoadingEvent({\n key: 'insert-template',\n });\n }),\n catchError(err => {\n console.error(err);\n toast(t['com.arms.ai.template-insert.failed']());\n return EMPTY;\n }),\n finalize(() => {\n resolveGlobalLoadingEvent('insert-template');\n })\n );\n })\n );\n\n const disposable = AIProvider.slots.requestInsertTemplate.on(\n ({ template, mode }) => {\n insertTemplate({ template, mode });\n }\n );\n return () => {\n disposable.dispose();\n insertTemplate.unsubscribe();\n };\n }, [\n currentWorkspace.docCollection,\n docsList,\n pushGlobalLoadingEvent,\n resolveGlobalLoadingEvent,\n t,\n workbench,\n ]);\n\n useSubscriptionNotifyReader();\n useRegisterWorkspaceCommands();\n useRegisterNavigationCommands();\n useRegisterFindInPageCommands();\n\n useEffect(() => {\n // hotfix for blockVersions\n // this is a mistake in the\n // 0.8.0 ~ 0.8.1\n // 0.8.0-beta.0 ~ 0.8.0-beta.3\n // 0.8.0-canary.17 ~ 0.9.0-canary.3\n const meta = currentWorkspace.docCollection.doc.getMap('meta');\n const blockVersions = meta.get('blockVersions');\n if (\n !(blockVersions instanceof YMap) &&\n blockVersions !== null &&\n blockVersions !== undefined &&\n typeof blockVersions === 'object'\n ) {\n meta.set(\n 'blockVersions',\n new YMap(Object.entries(blockVersions as Record))\n );\n }\n }, [currentWorkspace.docCollection.doc]);\n\n return (\n <>\n {/* This DndContext is used for drag page from all-pages list into a folder in sidebar */}\n {children}\n \n \n \n );\n};\n\nconst DesktopLayout = ({ children }: PropsWithChildren) => {\n return (\n
\n
\n \n \n \n \n }\n />\n
\n
\n \n {children}\n
\n
\n );\n};\n\nconst BrowserLayout = ({ children }: PropsWithChildren) => {\n return (\n
\n \n {children}\n
\n );\n};\n\n/**\n * Wraps the workspace layout main router view\n */\nconst WorkspaceLayoutUIContainer = ({ children }: PropsWithChildren) => {\n const workbench = useService(WorkbenchService).workbench;\n const currentPath = useLiveData(\n LiveData.computed(get => {\n return get(workbench.basename$) + get(workbench.location$).pathname;\n })\n );\n\n const resizing = useAtomValue(appSidebarResizingAtom);\n const LayoutComponent = environment.isDesktop ? DesktopLayout : BrowserLayout;\n\n return (\n \n {children}\n \n );\n};\nexport const WorkspaceLayoutInner = ({ children }: PropsWithChildren) => {\n const currentWorkspace = useService(WorkspaceService).workspace;\n\n const upgrading = useLiveData(currentWorkspace.upgrade.upgrading$);\n const needUpgrade = useLiveData(currentWorkspace.upgrade.needUpgrade$);\n\n return (\n \n \n {needUpgrade || upgrading ? : children}\n \n \n );\n};\n","import { useI18n } from '@affine/i18n';\nimport type { AffineEditorContainer } from '@blocksuite/presets';\nimport { useService, WorkspaceService } from '@toeverything/infra';\nimport { useStore } from 'jotai';\nimport { useTheme } from 'next-themes';\nimport { useEffect } from 'react';\n\nimport {\n PreconditionStrategy,\n registerAffineCommand,\n registerAffineCreationCommands,\n registerAffineHelpCommands,\n registerAffineLayoutCommands,\n registerAffineNavigationCommands,\n registerAffineSettingsCommands,\n registerAffineUpdatesCommands,\n} from '../commands';\nimport { usePageHelper } from '../components/blocksuite/block-suite-page-list/utils';\nimport { CMDKQuickSearchService } from '../modules/quicksearch/services/cmdk';\nimport { useLanguageHelper } from './affine/use-language-helper';\nimport { useActiveBlocksuiteEditor } from './use-block-suite-editor';\nimport { useNavigateHelper } from './use-navigate-helper';\n\nfunction hasLinkPopover(editor: AffineEditorContainer | null) {\n const textSelection = editor?.host?.std.selection.find('text');\n if (editor && textSelection && textSelection.from.length > 0) {\n const formatBar = editor.host?.querySelector('affine-format-bar-widget');\n if (formatBar) {\n return true;\n }\n }\n return false;\n}\n\nfunction registerCMDKCommand(\n service: CMDKQuickSearchService,\n editor: AffineEditorContainer | null\n) {\n return registerAffineCommand({\n id: 'affine:show-quick-search',\n preconditionStrategy: PreconditionStrategy.Never,\n category: 'affine:general',\n keyBinding: {\n binding: '$mod+K',\n capture: true,\n },\n label: '',\n icon: '',\n run() {\n // Due to a conflict with the shortcut for creating a link after selecting text in blocksuite,\n // opening the quick search modal is disabled when link-popup is visitable.\n if (hasLinkPopover(editor)) {\n return;\n }\n service.toggle();\n },\n });\n}\n\nexport function useRegisterWorkspaceCommands() {\n const store = useStore();\n const t = useI18n();\n const theme = useTheme();\n const currentWorkspace = useService(WorkspaceService).workspace;\n const languageHelper = useLanguageHelper();\n const pageHelper = usePageHelper(currentWorkspace.docCollection);\n const navigationHelper = useNavigateHelper();\n const [editor] = useActiveBlocksuiteEditor();\n const cmdkQuickSearchService = useService(CMDKQuickSearchService);\n\n useEffect(() => {\n const unsub = registerCMDKCommand(cmdkQuickSearchService, editor);\n\n return () => {\n unsub();\n };\n }, [cmdkQuickSearchService, editor]);\n\n // register AffineUpdatesCommands\n useEffect(() => {\n const unsub = registerAffineUpdatesCommands({\n store,\n t,\n });\n\n return () => {\n unsub();\n };\n }, [store, t]);\n\n // register AffineNavigationCommands\n useEffect(() => {\n const unsub = registerAffineNavigationCommands({\n store,\n t,\n docCollection: currentWorkspace.docCollection,\n navigationHelper,\n });\n\n return () => {\n unsub();\n };\n }, [store, t, currentWorkspace.docCollection, navigationHelper]);\n\n // register AffineSettingsCommands\n useEffect(() => {\n const unsub = registerAffineSettingsCommands({\n store,\n t,\n theme,\n languageHelper,\n editor,\n });\n\n return () => {\n unsub();\n };\n }, [store, t, theme, languageHelper, editor]);\n\n // register AffineLayoutCommands\n useEffect(() => {\n const unsub = registerAffineLayoutCommands({ t, store });\n\n return () => {\n unsub();\n };\n }, [store, t]);\n\n // register AffineCreationCommands\n useEffect(() => {\n const unsub = registerAffineCreationCommands({\n store,\n pageHelper: pageHelper,\n t,\n });\n\n return () => {\n unsub();\n };\n }, [store, pageHelper, t]);\n\n // register AffineHelpCommands\n useEffect(() => {\n const unsub = registerAffineHelpCommands({\n store,\n t,\n });\n\n return () => {\n unsub();\n };\n }, [store, t]);\n}\n","import {\n PreconditionStrategy,\n registerAffineCommand,\n} from '@affine/core/commands';\nimport { track } from '@affine/core/mixpanel';\nimport { useService } from '@toeverything/infra';\nimport { useEffect } from 'react';\n\nimport { NavigatorService } from '../services/navigator';\n\nexport function useRegisterNavigationCommands() {\n const navigator = useService(NavigatorService).navigator;\n useEffect(() => {\n const unsubs: Array<() => void> = [];\n\n unsubs.push(\n registerAffineCommand({\n id: 'affine:shortcut-history-go-back',\n category: 'affine:general',\n preconditionStrategy: PreconditionStrategy.Never,\n icon: 'none',\n label: 'go back',\n keyBinding: {\n binding: '$mod+[',\n },\n run() {\n track.$.cmdk.general.goBack();\n\n navigator.back();\n },\n })\n );\n unsubs.push(\n registerAffineCommand({\n id: 'affine:shortcut-history-go-forward',\n category: 'affine:general',\n preconditionStrategy: PreconditionStrategy.Never,\n icon: 'none',\n label: 'go forward',\n keyBinding: {\n binding: '$mod+]',\n },\n run() {\n track.$.cmdk.general.goForward();\n\n navigator.forward();\n },\n })\n );\n\n return () => {\n unsubs.forEach(unsub => unsub());\n };\n }, [navigator]);\n}\n","import {\n PreconditionStrategy,\n registerAffineCommand,\n} from '@affine/core/commands';\nimport { track } from '@affine/core/mixpanel';\nimport { FindInPageService } from '@affine/core/modules/find-in-page/services/find-in-page';\nimport { useService } from '@toeverything/infra';\nimport { useCallback, useEffect } from 'react';\n\nexport function useRegisterFindInPageCommands() {\n const findInPage = useService(FindInPageService).findInPage;\n const toggleVisible = useCallback(() => {\n // get the selected text in page\n const selection = window.getSelection();\n const selectedText = selection?.toString();\n\n findInPage.toggleVisible(selectedText);\n }, [findInPage]);\n\n useEffect(() => {\n if (!environment.isDesktop) {\n return;\n }\n const unsubs: Array<() => void> = [];\n unsubs.push(\n registerAffineCommand({\n preconditionStrategy: PreconditionStrategy.Never,\n id: `affine:find-in-page`,\n keyBinding: {\n binding: '$mod+f',\n },\n icon: null,\n label: '',\n run() {\n track.$.cmdk.general.findInPage();\n\n toggleVisible();\n },\n })\n );\n\n return () => {\n unsubs.forEach(unsub => unsub());\n };\n }, [toggleVisible]);\n}\n","import \"../core/src/layouts/styles.css.ts.vanilla.css!=!../../../../../node_modules/@vanilla-extract/webpack-plugin/virtualFileLoader/dist/vanilla-extract-webpack-plugin-virtualFileLoader.cjs.js?{\\\"fileName\\\":\\\"../core/src/layouts/styles.css.ts.vanilla.css\\\",\\\"source\\\":\\\"LmhveTR4NDAgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1mbG93OiByb3c7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiAxMDAlOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouaG95NHg0MSB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWZsb3c6IGNvbHVtbjsKICBoZWlnaHQ6IDEwMCU7CiAgd2lkdGg6IDEwMCU7Cn0KLmhveTR4NDIgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1mbG93OiByb3c7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1MnB4KTsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLmhveTR4NDMgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1mbG93OiByb3c7CiAgaGVpZ2h0OiA1MnB4OwogIHotaW5kZXg6IDE7CiAgd2lkdGg6IDEwMCU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQ==\\\"}!../../../../../node_modules/@vanilla-extract/webpack-plugin/extracted.js\"\nexport var browserAppViewContainer = 'hoy4x40';\nexport var desktopAppViewContainer = 'hoy4x41';\nexport var desktopAppViewMain = 'hoy4x42';\nexport var desktopTabsHeader = 'hoy4x43';","import { AppFallback } from '@affine/core/components/affine/app-container';\nimport { useWorkspace } from '@affine/core/hooks/use-workspace';\nimport { ZipTransformer } from '@blocksuite/blocks';\nimport type { Workspace } from '@toeverything/infra';\nimport {\n FrameworkScope,\n GlobalContextService,\n useLiveData,\n useService,\n WorkspacesService,\n} from '@toeverything/infra';\nimport type { ReactElement } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { AffineErrorBoundary } from '../../components/affine/affine-error-boundary';\nimport { WorkspaceLayout } from '../../layouts/workspace-layout';\nimport { WorkbenchRoot } from '../../modules/workbench';\nimport { AllWorkspaceModals } from '../../providers/modal-provider';\nimport { performanceRenderLogger } from '../../shared';\nimport { PageNotFound } from '../404';\n\ndeclare global {\n /**\n * @internal debug only\n */\n // eslint-disable-next-line no-var\n var currentWorkspace: Workspace | undefined;\n // eslint-disable-next-line no-var\n var exportWorkspaceSnapshot: (docs?: string[]) => Promise;\n // eslint-disable-next-line no-var\n var importWorkspaceSnapshot: () => Promise;\n interface WindowEventMap {\n 'affine:workspace:change': CustomEvent<{ id: string }>;\n }\n}\n\nexport const Component = (): ReactElement => {\n performanceRenderLogger.debug('WorkspaceLayout');\n\n const params = useParams();\n\n const [showNotFound, setShowNotFound] = useState(false);\n const workspacesService = useService(WorkspacesService);\n const listLoading = useLiveData(workspacesService.list.isLoading$);\n const workspaces = useLiveData(workspacesService.list.workspaces$);\n\n const meta = useMemo(() => {\n return workspaces.find(({ id }) => id === params.workspaceId);\n }, [workspaces, params.workspaceId]);\n\n const workspace = useWorkspace(meta);\n const globalContext = useService(GlobalContextService).globalContext;\n\n useEffect(() => {\n workspacesService.list.revalidate();\n }, [workspacesService]);\n\n useEffect(() => {\n if (workspace) {\n // for debug purpose\n window.currentWorkspace = workspace ?? undefined;\n window.dispatchEvent(\n new CustomEvent('affine:workspace:change', {\n detail: {\n id: workspace.id,\n },\n })\n );\n window.exportWorkspaceSnapshot = async (docs?: string[]) => {\n const zip = await ZipTransformer.exportDocs(\n workspace.docCollection,\n Array.from(workspace.docCollection.docs.values())\n .filter(doc => (docs ? docs.includes(doc.id) : true))\n .map(doc => doc.getDoc())\n );\n const url = URL.createObjectURL(zip);\n // download url\n const a = document.createElement('a');\n a.href = url;\n a.download = `${workspace.docCollection.meta.name}.zip`;\n a.click();\n URL.revokeObjectURL(url);\n };\n window.importWorkspaceSnapshot = async () => {\n const input = document.createElement('input');\n input.type = 'file';\n input.accept = '.zip';\n input.onchange = async () => {\n if (input.files && input.files.length > 0) {\n const file = input.files[0];\n const blob = new Blob([file], { type: 'application/zip' });\n const newDocs = await ZipTransformer.importDocs(\n workspace.docCollection,\n blob\n );\n console.log(\n 'imported docs',\n newDocs\n .filter(doc => !!doc)\n .map(doc => ({\n id: doc.id,\n title: doc.meta?.title,\n }))\n );\n }\n };\n input.click();\n };\n localStorage.setItem('last_workspace_id', workspace.id);\n globalContext.workspaceId.set(workspace.id);\n return () => {\n window.currentWorkspace = undefined;\n globalContext.workspaceId.set(null);\n };\n }\n return;\n }, [globalContext, meta, workspace]);\n\n // avoid doing operation, before workspace is loaded\n const isRootDocReady =\n useLiveData(workspace?.engine.rootDocState$.map(v => v.ready)) ?? false;\n\n // if listLoading is false, we can show 404 page, otherwise we should show loading page.\n useEffect(() => {\n if (listLoading === false && meta === undefined) {\n setShowNotFound(true);\n }\n if (meta) {\n setShowNotFound(false);\n }\n }, [listLoading, meta, workspacesService]);\n\n useEffect(() => {\n if (showNotFound) {\n const timer = setInterval(() => {\n workspacesService.list.revalidate();\n }, 3000);\n return () => {\n clearInterval(timer);\n };\n }\n return;\n }, [showNotFound, workspacesService]);\n\n if (showNotFound) {\n return ;\n }\n if (!workspace) {\n return ;\n }\n\n if (!isRootDocReady) {\n return (\n \n \n \n \n );\n }\n\n return (\n \n \n \n \n \n \n \n );\n};\n"],"names":["SyncAwarenessInnerLoggedIn","authService","useService","AuthService","account","useLiveData","session","account$","currentWorkspace","WorkspaceService","workspace","useEffect","docCollection","awarenessStore","awareness","setLocalStateField","name","label","SyncAwarenessInner","status$","SyncAwareness","RootEmpty","t","useI18n","ExplorerEmptySection","icon","TagIcon","message","messageTestId","ExplorerTags","tagService","explorerService","useServices","TagService","ExplorerService","explorerSection","sections","tags","collapsed","collapsed$","createdTag","setCreatedTag","useState","tagList","tags$","handleCreateNewFavoriteDoc","useCallback","createTag","randomTagColor","track","$","navigationPanel","organize","createOrganizeItem","type","setCollapsed","CollapsibleSection","headerClassName","title","actions","IconButton","data-testid","onClick","size","tooltip","PlusIcon","ExplorerTreeRoot","placeholder","map","tag","ExplorerTagNode","tagId","id","reorderable","location","at","defaultRenaming","importFile","usePageHelper","onImportFile","useAsyncCallback","options","workspaceList","isWorkspaceFile","control","MenuItem","ImportIcon","aiUsageBlock","cloudUsageBar","cloudUsageBarInner","progressColorVar","usageBlock","usageLabel","usageLabelTitle","AppSidebarJournalButton","workbench","WorkbenchService","location$","openToday","useJournalRouteHelper","journalDate","isJournal","useJournalInfoHelper","pathname","split","handleOpenToday","useCatchEventCallback","isNewTabTrigger","e","Icon","isBefore","Date","YesterdayIcon","isAfter","TomorrowIcon","TodayIcon","active","onAuxClick","TrashButton","docsService","DocsService","openConfirmModal","useConfirmModal","globalContextService","GlobalContextService","trashActive","globalContext","isTrash","dropTargetRef","draggedOver","useDropTarget","data","canDrop","source","entity","onDrop","docId","docRecord","list","doc$","value","description","title$","confirmText","Delete","confirmButtonOptions","variant","onConfirm","moveToTrash","MenuLinkItem","ref","AnimatedDeleteIcon","closed","to","span","UnknownUserIcon","memo","width","height","svgRaw","div","style","lineHeight","dangerouslySetInnerHTML","__html","displayName","UserInfo","AuthorizedUserInfo","UnauthorizedUserInfo","menuContentOptions","className","Menu","items","OperationMenu","contentOptions","Avatar","url","avatar","setOpen","useSetAtom","authAtom","openSignInModal","state","openModal","AccountMenu","setSettingModalAtom","openSettingModalAtom","setOpenSignOutModalAtom","openSignOutModalAtom","onOpenAccountSetting","profileAndBadge","openSettings","prev","open","activeTab","onOpenSignOutModal","preFix","MenuIcon","AccountIcon","SignOutIcon","CloudUsage","quota","UserQuotaService","quotaError","error$","revalidate","color","color$","usedFormatted","usedFormatted$","maxFormatted","maxFormatted$","percent","percent$","ErrorMessage","Skeleton","marginTop","clsx","styles","assignInlineVars","UserPlanButton","AIUsage","copilotQuotaService","UserCopilotQuotaService","subscriptionService","SubscriptionService","subscription","copilotQuota","copilotActionLimit","copilotActionLimit$","copilotActionUsed","copilotActionUsed$","loading","loadError","goToAIPlanPage","scrollAnchor","goToAccountSetting","console","error","data-pro","Math","min","max","Number","toFixed","cssVar","serverConfigService","ServerConfigService","serverFeatures","serverConfig","features$","copilot","Divider","RootAppSidebar","appSettings","useAppSettingHelper","currentPath","cmdkQuickSearchService","CMDKQuickSearchService","onOpenQuickSearchModal","toggle","pageHelper","onClickNewPage","page","createPage","load","createDoc","environment","isDesktop","events","applicationMenu","onNewPageAction","setOpenSettingModalAtom","onOpenSettingModal","AppSidebar","clientBorder","translucentUI","enableBlurBackground","SidebarContainer","WorkspaceSelector","QuickSearchInput","data-event-props","AddPageButton","AllDocsIcon","SettingsIcon","SidebarScrollableContainer","ExplorerFavorites","ExplorerOrganize","ExplorerMigrationFavorites","ExplorerCollections","CategoryDivider","padding","ImportPage","ArrowCircleIcon","svg","viewBox","fill","xmlns","props","path","fillRule","clipRule","d","HeartBreakIcon","WorkspaceUpgrade","setError","upgrading","upgrade","upgrading$","openPage","useNavigateHelper","onButtonClick","upgradeWorkspace","newWorkspace","WorkspaceSubPath","ALL","reload","Error","AffineShapeIcon","p","Button","prefix","AppTabsHeaderService","Service","constructor","tabsStatus$","LiveData","from","Observable","subscriber","unsub","apis","ui","getTabsStatus","then","tabs","next","onTabsStatusChange","catch","showContextMenu","showTabContextMenu","activateView","closeTab","onAddTab","addTab","onAddDocTab","targetTabId","edge","view","target","onAddTagTab","onAddCollectionTab","collectionId","onToggleRightSidebar","toggleRightSidebar","moveTab","maximized$","onMaximized","res","fullscreen$","onFullScreen","maximizedAtom","atomWithObservable","combineLatest","pipe","maximized","fullscreen","minimizeSVG","closeSVG","maximizeSVG","unmaximizedSVG","WindowsAppControls","handleMinimizeApp","err","handleMaximizeApp","handleCloseApp","useAtomValue","data-platform-target","button","data-type","iconNameToIcon","allDocs","collection","ViewLayersIcon","doc","PageIcon","edgeless","EdgelessIcon","journal","trash","DeleteIcon","TabSupportType","tabCanDrop","ctx","tabId","tab","includes","WorkbenchTab","tabActive","tabsLength","dnd","useServiceOptional","DesktopStateSynchronizer","tabsHeaderService","activeViewIndex","onContextMenu","viewIdx","action","appTabsHeader","tabAction","payload","shouldPin","onActivateView","handleAuxClick","handleCloseTab","closestEdge","allowedEdges","dropEffect","isSticky","dragRef","useDraggable","canDrag","dragPreviewPosition","node","current","data-active","data-pinned","pinned","data-padding-right","views","Fragment","stopPropagation","ready","loaded","iconName","Loading","length","CloseIcon","data-edge","useIsFullScreen","fullScreen","setFullScreen","isFullScreen","AppTabsHeader","mode","left","sidebarWidth","appSidebarWidthAtom","sidebarOpen","appSidebarOpenAtom","sidebarResizing","appSidebarResizingAtom","isMacosDesktop","isMacOs","unpinned","partition","pingAppLayoutReady","targetId","spacerDropTargetRef","trafficLightOffset","data-mode","data-is-windows","isWindows","transition","undefined","paddingLeft","marginRight","data-dragged-over","tooltipShortcut","RightSidebarIcon","swrConfig","suspense","use","useSWRNext","key","fetcher","config","fetcherWrapper","args","assertExists","Promise","GraphQLError","Array","isArray","graphQLError","notify","toString","SWRConfigProvider","SWRConfig","children","WorkspaceLayout","AllWorkspaceModals","CurrentWorkspaceModals","WorkspaceLayoutInner","WorkspaceLayoutProviders","pushGlobalLoadingEvent","pushGlobalLoadingEventAtom","resolveGlobalLoadingEvent","resolveGlobalLoadingEventAtom","docsList","insertTemplate","effect","switchMap","template","fromPromise","abort","templateZip","fetch","signal","templateBlob","blob","throwIfAborted","ZipTransformer","importDocs","resetHistory","timeout","mergeMap","setMode","openDoc","EMPTY","onStart","catchError","toast","finalize","disposable","AIProvider","slots","requestInsertTemplate","on","dispose","unsubscribe","useSubscriptionNotifyReader","useRegisterWorkspaceCommands","store","useStore","theme","useTheme","languageHelper","useLanguageHelper","navigationHelper","editor","useActiveBlocksuiteEditor","registerAffineCommand","preconditionStrategy","PreconditionStrategy","Never","category","keyBinding","binding","capture","run","hasLinkPopover","textSelection","host","std","selection","find","querySelector","service","registerAffineUpdatesCommands","registerAffineNavigationCommands","registerAffineSettingsCommands","registerAffineLayoutCommands","registerAffineCreationCommands","registerAffineHelpCommands","useRegisterNavigationCommands","navigator","NavigatorService","unsubs","push","cmdk","general","goBack","back","goForward","forward","forEach","useRegisterFindInPageCommands","findInPage","FindInPageService","toggleVisible","window","getSelection","selectedText","meta","getMap","blockVersions","get","YMap","set","Object","entries","QuickSearchContainer","DesktopLayout","SidebarSwitch","show","NavigationButtons","MainContainer","BrowserLayout","WorkspaceLayoutUIContainer","computed","basename$","resizing","LayoutComponent","AppContainer","data-current-path","needUpgrade","needUpgrade$","Component","performanceRenderLogger","debug","params","useParams","showNotFound","setShowNotFound","workspacesService","WorkspacesService","listLoading","isLoading$","workspaces","workspaces$","useMemo","workspaceId","useWorkspace","dispatchEvent","CustomEvent","detail","exportWorkspaceSnapshot","docs","zip","exportDocs","values","filter","getDoc","URL","createObjectURL","a","document","createElement","href","download","click","revokeObjectURL","importWorkspaceSnapshot","input","accept","onchange","files","Blob","log","newDocs","localStorage","setItem","isRootDocReady","engine","rootDocState$","v","timer","setInterval","clearInterval","PageNotFound","noPermission","FrameworkScope","scope","AffineErrorBoundary","WorkbenchRoot","AppFallback"],"sourceRoot":""}